2015-11-19 2 views
1

Я пытаюсь выполнить программу примера командной строки jira-ruby().Получение «Не найдено (JIRA :: HTTPError)» при использовании jira-ruby gem

username = "username" 
    password = "password" 

    options = { 
     :username => username, 
     :password => password, 
     :site => 'https://company.atlassian.net/', 
     :context_path => '/myjira', 
     :auth_type => :basic 
    } 

    client = JIRA::Client.new(options) 

    puts client 
    # Show all projects 
    projects = client.Project.all 

    projects.each do |project| 
     puts "Project -> key: #{project.key}, name: #{project.name}" 
    end 

Я использовал настоящее имя пользователя, пароль и адрес сайта. Я получаю следующее сообщение об ошибке:

/home/tuka/.rvm/gems/ruby-2.2.0/gems/jira-ruby-0.1.16/lib/jira/request_client.rb:16:in `request': Not Found (JIRA::HTTPError) 
     from /home/tuka/.rvm/gems/ruby-2.2.0/gems/jira-ruby-0.1.16/lib/jira/client.rb:159:in `request' 
     from /home/tuka/.rvm/gems/ruby-2.2.0/gems/jira-ruby-0.1.16/lib/jira/client.rb:138:in `get' 
     from /home/tuka/.rvm/gems/ruby-2.2.0/gems/jira-ruby-0.1.16/lib/jira/base.rb:96:in `all' 
     from /home/tuka/.rvm/gems/ruby-2.2.0/gems/jira-ruby-0.1.16/lib/jira/base_factory.rb:33:in `block (2 levels) in delegate_to_target_class' 
     from atoj.rb:28:in `<main>' 

Я сделал отладки ..

/home/tuka/.rvm/gems/ruby-2.2.0/gems/jira-ruby-0.1.16/lib/jira/http_client.rb:38:   http_class = Net::HTTP 
    (rdb:1) n 
    /home/tuka/.rvm/gems/ruby-2.2.0/gems/jira-ruby-0.1.16/lib/jira/http_client.rb:40:  http_conn = http_class.new(uri.host, uri.port) 
    (rdb:1) n 
    /home/tuka/.rvm/gems/ruby-2.2.0/gems/jira-ruby-0.1.16/lib/jira/http_client.rb:41:  http_conn.use_ssl = @options[:use_ssl] 
    (rdb:1) http_conn 
    #<Net::HTTP company.atlassian.net:443 open=false> 
    (rdb:1) n 
    /home/tuka/.rvm/gems/ruby-2.2.0/gems/jira-ruby-0.1.16/lib/jira/http_client.rb:42:  http_conn.verify_mode = @options[:ssl_verify_mode] 
    (rdb:1) http_conn 
    #<Net::HTTP company.atlassian.net:443 open=false> 
    (rdb:1) n 
    /home/tuka/.rvm/gems/ruby-2.2.0/gems/jira-ruby-0.1.16/lib/jira/http_client.rb:43:  http_conn 
    (rdb:1) http_conn 
    #<Net::HTTP company.atlassian.net:443 open=false> 
    (rdb:1) n 
    /home/tuka/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/net/http.rb:1373:  unless started? 
    (rdb:1) n 
    /home/tuka/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/net/http.rb:1374:  start { 
    (rdb:1) n 
    /home/tuka/.rvm/gems/ruby-2.2.0/gems/jira-ruby-0.1.16/lib/jira/http_client.rb:26:  store_cookies(response) if options[:use_cookies] 
    (rdb:1) 
    n 
    /home/tuka/.rvm/gems/ruby-2.2.0/gems/jira-ruby-0.1.16/lib/jira/http_client.rb:27:  response 

Но все выглядит хорошо для меня.

Есть ли что-нибудь, что я делаю неправильно?

ответ

0

Попробуйте установить context_path, чтобы удалить, например. ''. Это сработало для меня.

В случае, если это не работает, попробуйте Jira UI и найдите первый элемент пути URI (показано перед «/ browse» и «/ issues»). Это, скорее всего, также context_path.

0

Вы должны разобрать URL-адрес Jira, чтобы разделить все его компоненты с помощью Ruby URI module.

# Parsing URL 
uri = URI.parse('https://company.atlassian.net/myjira') # Your Jira URL 
site = uri.scheme+'://'+uri.host # Protocol + Domain 

options = { 
    :username => username, 
    :password => password, 
    :site  => site, 
    :context_path => uri.path, # SubURI path 
    :use_ssl => false, 
    :auth_type => :basic, 
    :read_timeout => 120 
} 

JIRA::Client.new(options) 

Это решение работает для меня;)

Смежные вопросы