github-nippou 1.0.2 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f0f8444807461575c3b84608f70b188bafbd4af4
4
- data.tar.gz: b3690ae74f197ff76922aa7e34a7aca0293aab29
3
+ metadata.gz: 768b205b4d75ddf857b9b1006ec95cc909169333
4
+ data.tar.gz: b9ea743c90af5b63a70ad2607995266496f23f81
5
5
  SHA512:
6
- metadata.gz: 7bc0194bc43367138171f0d51c614a53eaf9416f15f9d062fd61e732317f907ad81f273874adff878916f39a2e7e1d7e8556c1afef16aca1c8127d9f1fb08227
7
- data.tar.gz: 07501c4a023aca64c3af0fdf05fcedfb68747fd78a9981d89956a6af59d31e49e4fed28a64ce40f91e6a3e2687fa9073b7eb43d1bb8f634b47cd288d29afcc71
6
+ metadata.gz: b31655b73e7a38155244cee3a7d23acbe19d3c882b7a63f118e1198536f495935bababb36dc8463397cddc9c10a039114009aa276ae601bef246dd60f468b4cc
7
+ data.tar.gz: 07c885f154e58c58a68b651e3215956fb49ac7188d68fb8ce2dd012ccfdf7a9733f9a8a551bb804bb36341d79951b7ce7a23c3b3ee8921cf5d9e61ed3d1942f0
@@ -1,30 +1,32 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- github-nippou (1.0.2)
5
- octokit (~> 3.7)
4
+ github-nippou (1.1.0)
5
+ octokit
6
+ thor
6
7
 
7
8
  GEM
8
9
  remote: https://rubygems.org/
9
10
  specs:
10
- addressable (2.3.8)
11
+ addressable (2.4.0)
11
12
  faraday (0.9.2)
12
13
  multipart-post (>= 1.2, < 3)
13
14
  multipart-post (2.0.0)
14
- octokit (3.8.0)
15
- sawyer (~> 0.6.0, >= 0.5.3)
16
- rake (10.4.2)
17
- sawyer (0.6.0)
18
- addressable (~> 2.3.5)
15
+ octokit (4.3.0)
16
+ sawyer (~> 0.7.0, >= 0.5.3)
17
+ rake (11.1.1)
18
+ sawyer (0.7.0)
19
+ addressable (>= 2.3.5, < 2.5)
19
20
  faraday (~> 0.8, < 0.10)
21
+ thor (0.19.1)
20
22
 
21
23
  PLATFORMS
22
24
  ruby
23
25
 
24
26
  DEPENDENCIES
25
- bundler (~> 1.7)
27
+ bundler
26
28
  github-nippou!
27
- rake (~> 10.0)
29
+ rake
28
30
 
29
31
  BUNDLED WITH
30
- 1.10.6
32
+ 1.11.2
data/README.md CHANGED
@@ -1,9 +1,9 @@
1
1
  # Github::Nippou [![Gem Version][gem-badge]][gem-link]
2
2
 
3
- Print today's your GitHub action.
3
+ Displays today's your GitHub action.
4
4
 
5
5
  This is a helpful tool when you write a daily report in reference to
6
- GitHub. nippou is a japanese word which means a daily report.
6
+ GitHub. Nippou is a japanese word which means a daily report.
7
7
 
8
8
  ## Installation
9
9
 
@@ -28,7 +28,17 @@ Or install it yourself as:
28
28
 
29
29
  ## Usage
30
30
 
31
- $ github-nippou
31
+ ```
32
+ $ github-nippou help
33
+ Commands:
34
+ github-nippou help [COMMAND] # Describe available commands or one specific command
35
+ github-nippou list # Displays today's GitHub events formatted for Nippou
36
+
37
+ Options:
38
+ a, [--all], [--no-all] # Displays all events that can retrieve from GitHub
39
+ ```
40
+
41
+ You can omit the sub command `list`.
32
42
 
33
43
  ## Contributing
34
44
 
@@ -2,4 +2,4 @@
2
2
 
3
3
  require 'github/nippou'
4
4
 
5
- Github::Nippou.list
5
+ Github::Nippou::Commands.start
@@ -1,4 +1,3 @@
1
- # coding: utf-8
2
1
  lib = File.expand_path('../lib', __FILE__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
3
  require 'github/nippou/version'
@@ -21,8 +20,9 @@ Gem::Specification.new do |spec|
21
20
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
22
21
  spec.require_paths = ['lib']
23
22
 
24
- spec.add_dependency 'octokit', '~> 3.7'
23
+ spec.add_dependency 'octokit'
24
+ spec.add_dependency 'thor'
25
25
 
26
- spec.add_development_dependency 'bundler', '~> 1.7'
27
- spec.add_development_dependency 'rake', '~> 10.0'
26
+ spec.add_development_dependency 'bundler'
27
+ spec.add_development_dependency 'rake'
28
28
  end
@@ -1,74 +1,2 @@
1
+ require 'github/nippou/commands'
1
2
  require 'github/nippou/version'
2
- require 'octokit'
3
-
4
- module Github
5
- module Nippou
6
- def self.list
7
- user = self.user
8
- client = Octokit::Client.new(login: user, access_token: self.access_token)
9
- events = client.user_events(user)
10
-
11
- url_to_detail = {}
12
-
13
- events.each do |_|
14
- break unless _.created_at.getlocal.to_date == Time.now.to_date
15
- case _.type
16
- when 'IssuesEvent', 'IssueCommentEvent'
17
- title = _.payload.issue.title.gsub('`', '\\\`')
18
- merged = client.pull_merged?(_.repo.name, _.payload.issue.number)
19
- url_to_detail[_.payload.issue.html_url] ||= {title: title, repo_basename: _.repo.name, username: _.payload.issue.user.login, merged: merged}
20
- when 'PullRequestEvent', 'PullRequestReviewCommentEvent'
21
- title = _.payload.pull_request.title.gsub('`', '\\\`')
22
- merged = client.pull_merged?(_.repo.name, _.payload.pull_request.number)
23
- url_to_detail[_.payload.pull_request.html_url] ||= {title: title, repo_basename: _.repo.name, username: _.payload.pull_request.user.login, merged: merged}
24
- end
25
- end
26
-
27
- url_to_detail.each do |url, detail|
28
- line = "* [#{detail[:title]} - #{detail[:repo_basename]}](#{url}) by #{detail[:username]}"
29
- line << ' **merged!**' if detail[:merged]
30
- puts line
31
- end
32
- end
33
-
34
- private
35
-
36
- def self.user
37
- case
38
- when ENV['GITHUB_NIPPOU_USER']
39
- ENV['GITHUB_NIPPOU_USER']
40
- when !`git config github-nippou.user`.chomp.empty?
41
- `git config github-nippou.user`.chomp
42
- else
43
- puts <<MESSAGE
44
- ** User required.
45
-
46
- Please set github-nippou.user to your .gitconfig.
47
- $ git config --global github-nippou.user [Your GitHub account]
48
- MESSAGE
49
- exit!
50
- end
51
- end
52
-
53
- def self.access_token
54
- case
55
- when ENV['GITHUB_NIPPOU_ACCESS_TOKEN']
56
- ENV['GITHUB_NIPPOU_ACCESS_TOKEN']
57
- when !`git config github-nippou.token`.chomp.empty?
58
- `git config github-nippou.token`.chomp
59
- else
60
- puts <<MESSAGE
61
- ** Authorization required.
62
-
63
- Please set github-nippou.token to your .gitconfig.
64
- $ git config --global github-nippou.token [Your GitHub access token]
65
-
66
- To get new token, visit
67
- https://github.com/settings/tokens/new
68
-
69
- MESSAGE
70
- exit!
71
- end
72
- end
73
- end
74
- end
@@ -0,0 +1,115 @@
1
+ require 'octokit'
2
+ require 'thor'
3
+
4
+ module StringExMarkdown
5
+ refine String do
6
+ def markdown_escape
7
+ self.gsub(/([`<>])/, '\\\\\1')
8
+ end
9
+ end
10
+ end
11
+
12
+ module Github
13
+ module Nippou
14
+ class Commands < Thor
15
+ using StringExMarkdown
16
+
17
+ default_task :list
18
+ class_option :all, type: :boolean, aliases: :a, desc: 'Displays all events that can retrieve from GitHub'
19
+
20
+ desc 'list', "Displays today's GitHub events formatted for Nippou"
21
+ def list
22
+ nippous.each do |url, detail|
23
+ line = "* [#{detail[:title]} - #{detail[:repo_basename]}](#{url}) by #{detail[:username]}"
24
+ line << ' **merged!**' if detail[:merged]
25
+ puts line
26
+ end
27
+ end
28
+
29
+ private
30
+
31
+ def nippous
32
+ result = {}
33
+ now = Time.now
34
+
35
+ client.user_events(user).each do |event|
36
+ break if skip?(event, now)
37
+
38
+ case event.type
39
+ when 'IssuesEvent', 'IssueCommentEvent'
40
+ issue = event.payload.issue
41
+ result[issue.html_url] ||= hash_for_issue(event.repo, issue)
42
+ when 'PullRequestEvent', 'PullRequestReviewCommentEvent'
43
+ pr = event.payload.pull_request
44
+ result[pr.html_url] ||= hash_for_pr(event.repo, pr)
45
+ end
46
+ end
47
+
48
+ result
49
+ end
50
+
51
+ def skip?(event, now)
52
+ if options[:all]
53
+ false
54
+ else
55
+ event.created_at.getlocal.to_date != now.to_date
56
+ end
57
+ end
58
+
59
+ def client
60
+ @client ||= Octokit::Client.new(login: user, access_token: access_token)
61
+ end
62
+
63
+ def user
64
+ @user ||=
65
+ case
66
+ when ENV['GITHUB_NIPPOU_USER']
67
+ ENV['GITHUB_NIPPOU_USER']
68
+ when !`git config github-nippou.user`.chomp.empty?
69
+ `git config github-nippou.user`.chomp
70
+ else
71
+ puts <<MESSAGE
72
+ ** User required.
73
+
74
+ Please set github-nippou.user to your .gitconfig.
75
+ $ git config --global github-nippou.user [Your GitHub account]
76
+ MESSAGE
77
+ exit!
78
+ end
79
+ end
80
+
81
+ def access_token
82
+ @access_token ||=
83
+ case
84
+ when ENV['GITHUB_NIPPOU_ACCESS_TOKEN']
85
+ ENV['GITHUB_NIPPOU_ACCESS_TOKEN']
86
+ when !`git config github-nippou.token`.chomp.empty?
87
+ `git config github-nippou.token`.chomp
88
+ else
89
+ puts <<MESSAGE
90
+ ** Authorization required.
91
+
92
+ Please set github-nippou.token to your .gitconfig.
93
+ $ git config --global github-nippou.token [Your GitHub access token]
94
+
95
+ To get new token, visit
96
+ https://github.com/settings/tokens/new
97
+ MESSAGE
98
+ exit!
99
+ end
100
+ end
101
+
102
+ def hash_for_issue(repo, issue)
103
+ title = issue.title.markdown_escape
104
+ merged = client.pull_merged?(repo.name, issue.number)
105
+ {title: title, repo_basename: repo.name, username: issue.user.login, merged: merged}
106
+ end
107
+
108
+ def hash_for_pr(repo, pr)
109
+ title = pr.title.markdown_escape
110
+ merged = client.pull_merged?(repo.name, pr.number)
111
+ {title: title, repo_basename: repo.name, username: pr.user.login, merged: merged}
112
+ end
113
+ end
114
+ end
115
+ end
@@ -1,5 +1,5 @@
1
1
  module Github
2
2
  module Nippou
3
- VERSION = '1.0.2'
3
+ VERSION = '1.1.0'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,57 +1,71 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: github-nippou
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Takashi Masuda
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-10 00:00:00.000000000 Z
11
+ date: 2016-03-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: octokit
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '3.7'
19
+ version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '3.7'
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: thor
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: bundler
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
- - - "~>"
45
+ - - ">="
32
46
  - !ruby/object:Gem::Version
33
- version: '1.7'
47
+ version: '0'
34
48
  type: :development
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
- - - "~>"
52
+ - - ">="
39
53
  - !ruby/object:Gem::Version
40
- version: '1.7'
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: rake
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
- - - "~>"
59
+ - - ">="
46
60
  - !ruby/object:Gem::Version
47
- version: '10.0'
61
+ version: '0'
48
62
  type: :development
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
- - - "~>"
66
+ - - ">="
53
67
  - !ruby/object:Gem::Version
54
- version: '10.0'
68
+ version: '0'
55
69
  description: |2
56
70
  This is a helpful tool when you write a daily report in reference to
57
71
  GitHub. nippou is a japanese word which means a daily report.
@@ -71,6 +85,7 @@ files:
71
85
  - bin/github-nippou
72
86
  - github-nippou.gemspec
73
87
  - lib/github/nippou.rb
88
+ - lib/github/nippou/commands.rb
74
89
  - lib/github/nippou/version.rb
75
90
  homepage: https://github.com/masutaka/github-nippou
76
91
  licenses:
@@ -92,7 +107,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
92
107
  version: '0'
93
108
  requirements: []
94
109
  rubyforge_project:
95
- rubygems_version: 2.4.5.1
110
+ rubygems_version: 2.5.1
96
111
  signing_key:
97
112
  specification_version: 4
98
113
  summary: Print today's your GitHub action.