-
Notifications
You must be signed in to change notification settings - Fork 33
Octokit Documentation
###Octokit Documentation Because Octokit has little documentation at the time of this writing (April 26 2011), I've had to create my own documentation.
All of the tidbits below assume that you have already instantiated the client with
client= Octokit::Client.new({ :username=> "jeffWelling", :token => "omgwtfbbq..." })
where the :username
and :token
values are replaced with your username and Github API token.
The client.issues(repo)
call returns an array of all Github Issues as Hashie::Mash objects.
irb(main):009:0> issues=client.issues("jeffWelling/ticgit")
The Octokit Full Documentation page for client.issues(repo, state='open',, options={})
tells us that if you want to get closed issues you have to use client.issues(repo, 'closed')
.
Here, we use ruby pretty print to show one of the issue objects. Don't forget to require 'pp'
.
irb(main):010:0> pp issues[0]
{"gravatar_id"=>"c787da56bc64ea702d58067f880b3212",
"position"=>1.0,
"number"=>4,
"votes"=>0,
"created_at"=>"2010/11/19 07:13:40 -0800",
"comments"=>2,
"body"=>
"When I add comment, through console, it doesn't appear when I reload ticgitweb page. (It is running locally)",
"title"=>"Comments issue",
"updated_at"=>"2011/04/11 03:20:39 -0700",
"html_url"=>"https://github.com/jeffWelling/ticgit/issues/4",
"user"=>"romanoff",
"labels"=>["Bug"],
"state"=>"open"}
=> nil
The client.issue_comments(repo, issue_num)
call returns comments as an array of Hashie::Mash objects.
irb(main):007:0> pp client.issue_comments("jeffWelling/ticgit", 4)
[{"gravatar_id"=>"96be9ea59dea46616afed434fd07dcf5",
"created_at"=>"2011/02/28 16:20:17 -0800",
"body"=>
"Because my priorities are currently with the console command and not with ticgitweb, I don't plan on resolving this issue in the immediate future.\r\nI will leave this issue open as a reminder though for when my priorities allow me to spend time on it.",
"updated_at"=>"2011/02/28 16:20:17 -0800",
"id"=>820476,
"user"=>"jeffWelling"},
{"gravatar_id"=>"96be9ea59dea46616afed434fd07dcf5",
"created_at"=>"2011/04/11 03:20:39 -0700",
"body"=>
"I just fixed a problem with ticgitweb not running, so while I'm still ticgitweb-ing, I'll take a look at this as well.",
"updated_at"=>"2011/04/11 03:20:39 -0700",
"id"=>982929,
"user"=>"jeffWelling"}]
=> nil
I've run into some strange behaviour trying to use Octokit.
- When trying to use Octokit in my code, it causes a NoMethodError to be thrown unless it's used in a specific way.
/var/lib/gems/1.8/gems/octokit-0.6.1/lib/octokit/client/connection.rb:28:in 'connection': undefined method basic_auth' for #<Faraday::Builder:0xb70d7f20> (NoMethodError)
from /var/lib/gems/1.8/gems/faraday-0.6.0/lib/faraday/connection.rb:36:in 'initialize'
from /var/lib/gems/1.8/gems/faraday-0.6.0/lib/faraday/builder.rb:12:in 'create'
from /var/lib/gems/1.8/gems/faraday-0.6.0/lib/faraday/builder.rb:59:in 'build'
from /var/lib/gems/1.8/gems/faraday-0.6.0/lib/faraday/builder.rb:49:in 'initialize'
from /var/lib/gems/1.8/gems/faraday-0.6.0/lib/faraday/builder.rb:12:in 'new'
from /var/lib/gems/1.8/gems/faraday-0.6.0/lib/faraday/builder.rb:12:in 'create'
from /var/lib/gems/1.8/gems/faraday-0.6.0/lib/faraday/connection.rb:36:in 'initialize'
from /var/lib/gems/1.8/gems/octokit-0.6.1/lib/octokit/client/connection.rb:19:in 'new'
from /var/lib/gems/1.8/gems/octokit-0.6.1/lib/octokit/client/connection.rb:19:in 'connection'
from /var/lib/gems/1.8/gems/octokit-0.6.1/lib/octokit/client/request.rb:23:in 'request'
from /var/lib/gems/1.8/gems/octokit-0.6.1/lib/octokit/client/request.rb:5:in 'get'
from /var/lib/gems/1.8/gems/octokit-0.6.1/lib/octokit/client/issues.rb:10:in 'issues'
from ./bin/../lib/ticgit-ng/sync/github_issues.rb:30:in 'read'
from ./bin/../lib/ticgit-ng/sync.rb:93:in 'external_sync'
from ./bin/../lib/ticgit-ng/command/sync.rb:30:in 'execute'
from ./bin/../lib/ticgit-ng/cli.rb:46:in 'execute!'
from ./bin/../lib/ticgit-ng/cli.rb:9:in 'execute'
from bin/ti:13
Specifically, not the way it was being used here. My code had to be changed so that the client was created and used within the same method. Though, I did not troubleshoot this phenomenon further once I got my code to work.