lock_diff 0.1.4 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +35 -3
- data/exe/lock_diff +1 -1
- data/exe/lock_diff_for_tachikoma +19 -0
- data/lib/lock_diff/github/client.rb +5 -0
- data/lib/lock_diff/github/pull_request.rb +12 -0
- data/lib/lock_diff/version.rb +1 -1
- data/lib/lock_diff.rb +11 -1
- data/lock_diff.gemspec +2 -2
- metadata +7 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8c0b8383d775ad39dbd93fff93530652b7e60e3d
|
4
|
+
data.tar.gz: 34ef1bd10ad27bb846e4ba47c7926dd9a0281ae4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f2885f2572e82adffed6fa073a2f1fa7b7ae0500a0f8aca59039fe4a52b2da2163f764c0357978016c133e1592a60fedf2da8273b4e8c66a36e39808d086eff4
|
7
|
+
data.tar.gz: c076daeb953b7da33bb7a20fc2e2e607791261b15cedc41b862493f8fb9b4043e30b4b33647c940ad01b33d10a055913cb2c8bca36dccde52421a2ea9f1b3e50
|
data/README.md
CHANGED
@@ -2,7 +2,12 @@
|
|
2
2
|
|
3
3
|
[](https://circleci.com/gh/vividmuimui/lock_diff)
|
4
4
|
|
5
|
-
This
|
5
|
+
This gem detects changes to your package manager (e.g. Gemfile) and generates a Markdown-formatted diff including:
|
6
|
+
|
7
|
+
* links to the corresponding package's change logs
|
8
|
+
* Github `...`-delineated diff links for the relevant changes
|
9
|
+
|
10
|
+
It also optionally posts the diff as a comment to the pull request responsible for the package update.
|
6
11
|
|
7
12
|
Like this.
|
8
13
|
|
@@ -31,7 +36,7 @@ Or install it yourself as:
|
|
31
36
|
|
32
37
|
## Usage
|
33
38
|
|
34
|
-
|
39
|
+
lock_diff requires you to provide a `GITHUB_ACCESS_TOKEN` as an environment variable.
|
35
40
|
|
36
41
|
### Command line
|
37
42
|
|
@@ -40,9 +45,11 @@ $ lock_diff
|
|
40
45
|
Usage: lock_diff [options]
|
41
46
|
-r, --repository=REPOSITORY required. Like as "user/repository"
|
42
47
|
-n, --number=PULL_REQUEST_NUMBER required
|
43
|
-
--post-comment=true or false
|
48
|
+
--post-comment=true or false (default=false. Print result to stdout when false.)
|
44
49
|
```
|
45
50
|
|
51
|
+
For example, to comment on https://github.com/vividmuimui/rails_tutorial/pull/26#issuecomment-312491272, run this command:
|
52
|
+
|
46
53
|
```sh
|
47
54
|
$ lock_diff -r "vividmuimui/rails_tutorial" -n 26 --post-comment=false
|
48
55
|
```
|
@@ -54,6 +61,31 @@ require 'lock_diff'
|
|
54
61
|
LockDiff.run(repository: "vividmuimui/rails_tutorial", number: 26, post_comment: false)
|
55
62
|
```
|
56
63
|
|
64
|
+
### For Tachikoma pull request
|
65
|
+
|
66
|
+
When used in conjunction with [tachikoma](https://rubygems.org/gems/tachikoma), use the `lock_diff_for_tachikoma` command instead of `lock_diff`.
|
67
|
+
`lock_diff_for_tachikoma` automatically detects and comments on the most recent tachikoma pull request.
|
68
|
+
|
69
|
+
#### Command line
|
70
|
+
|
71
|
+
```sh
|
72
|
+
$ lock_diff
|
73
|
+
Usage: lock_diff_for_tachikoma [options]
|
74
|
+
-r, --repository=REPOSITORY required. Like as "user/repository"
|
75
|
+
--post-comment=true or false default=false
|
76
|
+
```
|
77
|
+
|
78
|
+
```sh
|
79
|
+
$ lock_diff_for_tachikoma -r "vividmuimui/rails_tutorial" --post-comment=false
|
80
|
+
```
|
81
|
+
|
82
|
+
#### Ruby
|
83
|
+
|
84
|
+
```ruby
|
85
|
+
require 'lock_diff'
|
86
|
+
LockDiff.lock_diff_for_tachikoma(repository: "vividmuimui/rails_tutorial", post_comment: false)
|
87
|
+
```
|
88
|
+
|
57
89
|
## Development
|
58
90
|
|
59
91
|
TODO:
|
data/exe/lock_diff
CHANGED
@@ -10,7 +10,7 @@ opt = OptionParser.new
|
|
10
10
|
|
11
11
|
opt.on('-r', '--repository=REPOSITORY', 'required. Like as "user/repository"') { |v| options[:repository] = v }
|
12
12
|
opt.on('-n', '--number=PULL_REQUEST_NUMBER', 'required') { |v| options[:number] = v }
|
13
|
-
opt.on('--post-comment=true or false', '
|
13
|
+
opt.on('--post-comment=true or false', '(default=false. Print result to stdout when false.)') { |v| options[:post_comment] = v }
|
14
14
|
opt.parse!
|
15
15
|
|
16
16
|
unless options[:repository] && options[:number]
|
@@ -0,0 +1,19 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "lock_diff"
|
4
|
+
require "optparse"
|
5
|
+
|
6
|
+
options = {
|
7
|
+
post_comment: false
|
8
|
+
}
|
9
|
+
opt = OptionParser.new
|
10
|
+
|
11
|
+
opt.on('-r', '--repository=REPOSITORY', 'required. Like as "user/repository"') { |v| options[:repository] = v }
|
12
|
+
opt.on('--post-comment=true or false', '(default=false. Print result to stdout when false.)') { |v| options[:post_comment] = v }
|
13
|
+
opt.parse!
|
14
|
+
|
15
|
+
unless options[:repository]
|
16
|
+
$stdout.puts opt.help
|
17
|
+
else
|
18
|
+
LockDiff.run_by_latest_tachikoma(options)
|
19
|
+
end
|
@@ -24,6 +24,11 @@ module LockDiff
|
|
24
24
|
Github::PullRequest.new(@client.pull_request(repository, number))
|
25
25
|
end
|
26
26
|
|
27
|
+
def latest_pull_request(repository, limit: 3)
|
28
|
+
@client.pull_requests(repository).first(limit).
|
29
|
+
map { |pull_request| Github::PullRequest.new(pull_request) }
|
30
|
+
end
|
31
|
+
|
27
32
|
def pull_request_content_path(repository, number, file_name)
|
28
33
|
content = @client.pull_request_files(repository, number).
|
29
34
|
find { |file| file.filename.include?(file_name) }
|
data/lib/lock_diff/version.rb
CHANGED
data/lib/lock_diff.rb
CHANGED
@@ -26,10 +26,20 @@ module LockDiff
|
|
26
26
|
$stdout.puts result
|
27
27
|
end
|
28
28
|
end
|
29
|
+
|
30
|
+
def run_by_latest_tachikoma(repository:, post_comment: false)
|
31
|
+
pr = Github.client.latest_pull_request(repository, limit: 10).
|
32
|
+
find { |pull_request| pull_request.head_ref.include?("tachikoma") }
|
33
|
+
if pr
|
34
|
+
run(repository: repository, number: pr.number, post_comment: post_comment)
|
35
|
+
else
|
36
|
+
LockDiff.logger.info("Not found pull request by tachikoma.")
|
37
|
+
end
|
38
|
+
end
|
29
39
|
end
|
30
40
|
|
31
41
|
self.client_class = Github
|
32
42
|
self.formatter = Formatter::GithubMarkdown
|
33
43
|
self.strategy = Gem
|
34
|
-
self.logger = Logger.new(
|
44
|
+
self.logger = Logger.new($stdout)
|
35
45
|
end
|
data/lock_diff.gemspec
CHANGED
@@ -9,8 +9,8 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.authors = ["vividmuimui"]
|
10
10
|
spec.email = ["vivid.muimui@gmail.com"]
|
11
11
|
|
12
|
-
spec.summary = %q{
|
13
|
-
spec.description = %q{
|
12
|
+
spec.summary = %q{This gem detects changes to your package manager (e.g. Gemfile) and generates a Markdown-formatted diff.}
|
13
|
+
spec.description = %q{This gem detects changes to your package manager (e.g. Gemfile) and generates a Markdown-formatted diff.}
|
14
14
|
# spec.homepage = "https://github.com/vividmuimui/lock_diff"
|
15
15
|
spec.homepage = ""
|
16
16
|
spec.license = "MIT"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lock_diff
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- vividmuimui
|
@@ -108,11 +108,13 @@ dependencies:
|
|
108
108
|
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
|
-
description:
|
111
|
+
description: This gem detects changes to your package manager (e.g. Gemfile) and generates
|
112
|
+
a Markdown-formatted diff.
|
112
113
|
email:
|
113
114
|
- vivid.muimui@gmail.com
|
114
115
|
executables:
|
115
116
|
- lock_diff
|
117
|
+
- lock_diff_for_tachikoma
|
116
118
|
extensions: []
|
117
119
|
extra_rdoc_files: []
|
118
120
|
files:
|
@@ -127,6 +129,7 @@ files:
|
|
127
129
|
- bin/console
|
128
130
|
- bin/setup
|
129
131
|
- exe/lock_diff
|
132
|
+
- exe/lock_diff_for_tachikoma
|
130
133
|
- lib/lock_diff.rb
|
131
134
|
- lib/lock_diff/formatter/github_markdown.rb
|
132
135
|
- lib/lock_diff/gem.rb
|
@@ -171,5 +174,6 @@ rubyforge_project:
|
|
171
174
|
rubygems_version: 2.6.11
|
172
175
|
signing_key:
|
173
176
|
specification_version: 4
|
174
|
-
summary:
|
177
|
+
summary: This gem detects changes to your package manager (e.g. Gemfile) and generates
|
178
|
+
a Markdown-formatted diff.
|
175
179
|
test_files: []
|