Skip to content

Instantly share code, notes, and snippets.

@844196
Last active August 29, 2015 14:23
Show Gist options
  • Select an option

  • Save 844196/1b25e8b294beafdf9403 to your computer and use it in GitHub Desktop.

Select an option

Save 844196/1b25e8b294beafdf9403 to your computer and use it in GitHub Desktop.
GitHubリポジトリのリリースを見るやつ
#!/usr/bin/env ruby
require 'json'
require 'open-uri'
require 'optparse'
require 'time'
me = File.basename(__FILE__)
option = ARGV.getopts('h', 'help')
if option['h'] || option['help']
puts "#{me}: [Username] [Repository]"
exit
end
exit 1 if ARGV[1].nil?
user = ARGV[0]
repo = ARGV[1]
token = ENV['GITHUB_API_TOKEN']
url = "https://api.github.com/repos/#{user}/#{repo}/releases"
begin
unless token.nil?
res = open(url, "Authorization" => "token #{token}")
else
res = open(url)
end
rescue => err
STDERR.puts "#{me}: #{err.message}"
exit 1
end
json = JSON.parse(res.read)
if json.size.zero?
STDERR.puts "#{me}: No releases"
exit
end
json.each_with_index {|a, c|
puts "Date\tTag\tURL" if c.zero?
puts "#{Time.parse(a['created_at'])}\t#{a['tag_name']}\t#{a['html_url']}"
}
$ release -h # ヘルプ
release: [Username] [Repository]
$ release 844196 renge # タブ区切り出力
Date Tag URL
2015-06-20 14:24:55 UTC 15w25a https://github.com/844196/Renge/releases/tag/15w25a
2015-06-17 15:34:31 UTC v1.2.2 https://github.com/844196/Renge/releases/tag/v1.2.2
2015-06-17 03:16:28 UTC v1.2.1 https://github.com/844196/Renge/releases/tag/v1.2.1
2015-06-16 15:31:25 UTC v1.2 https://github.com/844196/Renge/releases/tag/v1.2
2015-06-15 15:35:08 UTC v1.1 https://github.com/844196/Renge/releases/tag/v1.1
2015-02-06 17:36:36 UTC v1.0 https://github.com/844196/Renge/releases/tag/v1.0
2015-01-23 04:33:52 UTC v0.9 https://github.com/844196/Renge/releases/tag/v0.9
2015-01-22 09:18:36 UTC v0.8 https://github.com/844196/Renge/releases/tag/v0.8
2015-01-21 16:01:10 UTC v0.7 https://github.com/844196/Renge/releases/tag/v0.7
2015-01-21 10:46:28 UTC v0.6.1 https://github.com/844196/Renge/releases/tag/v0.6.1
2015-01-21 09:59:39 UTC v0.6 https://github.com/844196/Renge/releases/tag/v0.6
2015-01-21 08:38:22 UTC v0.5 https://github.com/844196/Renge/releases/tag/v0.5
2015-01-20 03:40:03 UTC v0.4 https://github.com/844196/Renge/releases/tag/v0.4
2015-01-18 11:17:23 UTC v0.3 https://github.com/844196/Renge/releases/tag/v0.3
2015-01-15 20:57:23 UTC v0.2 https://github.com/844196/Renge/releases/tag/v0.2
2015-01-15 19:18:44 UTC v0.1 https://github.com/844196/Renge/releases/tag/v0.1
$ release 844196 dotfiles # リリースのない実在するリポジトリ
release: No releases
$ release 844196 hoge # 存在しないリポジトリ
release: 404 Not Found
$ echo $?
1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment