JIRAの問題を自動的にクローズするようにマークするために、JIRA-rubyスクリプト(コマンドラインからのみ使用)を作成しようとしています。
'jira-ruby' gemを使用しているので、ここから例を借ります。
これは機能しますが、access_tokenを取得するために[許可]をクリックするように求めるブラウザがポップアップ表示されます。これをプログラムで実行したいのですが、APIがこの目的で作成されたとは思いません。access_tokenは毎回変更され、このスクリプトはcronjobで定期的に実行されるため、これを行う方法が必要です。これを行うことができる他の方法はありますか?
require 'jira'
@jira = JIRA::Client.new({:site => 'http://localhost:2990', :context_path => '/jira', :consumer_key => 'test-jira', :private_key_file => "rsakey.pem"})
if ARGV.length == 0
# If not passed any command line arguments, open a browser and prompt the
# user for the OAuth verifier.
request_token = @jira.request_token
puts "Opening #{request_token.authorize_url}"
system "open #{request_token.authorize_url}"
puts "Enter the oauth_verifier: "
oauth_verifier = gets.strip
access_token = @jira.init_access_token(:oauth_verifier => oauth_verifier)
puts "Access token: #{access_token.token} secret: #{access_token.secret}"
elsif ARGV.length == 2
# Otherwise assume the arguments are a previous access token and secret.
access_token = @jira.set_access_token(ARGV[0], ARGV[1])
else
# Script must be passed 0 or 2 arguments
raise "Usage: #{$0} [ token secret ]"
end
# Show all projects
projects = @jira.Project.all
projects.each do |project|
puts "Project -> key: #{project.key}, name: #{project.name}"
end
issue = @jira.Issue.find('DEMO-1')
puts issue
長寿命のアクセストークンを使用する方法があることは知っていますが、Jiraがそれをサポートしている場合は実際には使用しません。