Octokit-GithubAPI的官方Ruby实现

1.什么是Octokit

Octokit是Github API的客户端实现,主要有两个版本,一个Ruby的,一个Object C的。之前这个库是由 Wynn Netherland 和 Adam Stacoviak维护的,2013年5月份,变为Github官方维护了,可以参考后面的链接。所以说,如果用Ruby语言的话,使用Octokit应该是不二之选了。

2. 在Ruby中使用Octokit

1. gem install octokit

如果是Rails的话,在Gemfile里添加gem octokit即可。

2. 测试程序

这里我们简单使用如下程序测试:

#!/usr/bin/env ruby
require 'octokit'
require 'pp'

login = ENV['GITHUB_LOGIN']
token = ENV['GITHUB_TOKEN']
client = Octokit::Client.new(:login => login, :oauth_token => token)

# puts self info
me = client.user login
#pp me

branches = client.branches 'liubin0329/for-github-api-test'

#pp branches
commits = []
branches.each { |b|
  commits = commits | client.commits('liubin0329/for-github-api-test',nil,{:sha => b.name})
}
#pp commits


commits.each { |c|
  #pp c
  puts "------------------------------"
  #puts "author #{c.commit.author.name}"
  #puts "sha #{c.sha}"
  puts "message #{c.commit.message}"
  #puts "html_url #{c.html_url}"
}

简单来说Github的API还是比较容易上手,而且功能比较全,比如能取得所有branch的信息,还能根据commit时间和author等来取得特定的提交信息,这个还是非常方便的。当然,我也只做了如此的测试而已。

3. 执行

首先在命令行下设置用户名和token。Github的API虽然用了Oauth,但是好像并没有secret,所以需要用户米和token两个参数。当然也有用户名和password的认证方法,但是一般来说如果是第三方程序,一般不会采用保存用户密码的策略。

$ export GITHUB_LOGIN=liubin0329

$ export GITHUB_TOKEN=18ed

./test.rb

上述代码可以从这里取得: https://github.com/liubin0329/for-github-api-test

官方信息:
Ruby 版:https://github.com/octokit/octokit.rb

octokit主页: http://octokit.github.io/

Github 官方release 声明: https://github.com/blog/1517-introducing-octokit



Posted in Rails, Ruby, Tech, Web Tagged with: , , , , ,

无觅相关文章插件,快速提升流量