whatsup_github 0.1.1 → 0.4.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: da5ac25ee48ecbeb1219dae8e22c966ea1d3954b04c6cec344b1698095020671
4
- data.tar.gz: f11b3a4b544675cc37cde564950b30b9162f3933335d44ae6e831408b8ed53db
3
+ metadata.gz: d76d974b6feb2663b6234906cde7aee2011f6fe1c87c2e90f7e4791e4f2b04a7
4
+ data.tar.gz: fb62023682520d065cfdf326300f576b38e85fea9fcf7e203b8105cae4278b94
5
5
  SHA512:
6
- metadata.gz: f159bfdf36cd305cdbf2bfb7c16ce0aeae27e8405a87c0cc999fb0866f7a395d7de68e20e622a8b2dd69483a54bf2d7f7ab415b2523fa3b6af9241d179fe005a
7
- data.tar.gz: 19275e16e836a8ef676cf03a8e0a98fd41b60699772c7d3890efd15f01cf67a08bdc54ebc808ef45af46d5875c2a47b912db4dc317b9d726565152b2a64db36d
6
+ metadata.gz: d50707d1f9eb818a36aec8bdc46d19d3543b037b94f9452b3734888184cf77c319364bdd5dc1a5675a4cd90718c808ad7b12052ffcba80d0ac43bd4652eb3d70
7
+ data.tar.gz: 2032e86160a162ba96521fcb3f7f4ae042c9494e12786e22e28ac4a75d0fcb0ae5c3154f03fe69c1616e0f1cd81eacc2c4166393287708d9535dd1e79eaf46cd
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- ruby-2.6.5
1
+ ruby-2.5.8
data/.travis.yml CHANGED
@@ -2,4 +2,5 @@
2
2
  sudo: false
3
3
  language: ruby
4
4
  cache: bundler
5
- before_install: gem install bundler -v 1.17.3
5
+ before_install: gem install bundler -v 2.2.15
6
+ script: bundle exec rake spec features
data/CHANGELOG.md CHANGED
@@ -1,3 +1,44 @@
1
+ # Changelog
2
+
3
+ ## 0.4.1
4
+
5
+ - Added authentication via an environment variable `WHATSUP_GITHUB_ACCESS_TOKEN`
6
+
7
+ ## 0.4.0
8
+
9
+ ### General
10
+
11
+ - Loading more data about pull requests via API
12
+ - Loading data about configured organization members via API
13
+ - Upgraded gem specs
14
+ - Removed non-working tests. TODO: Add tests for the output file.
15
+
16
+ ### New configuration option
17
+
18
+ Added `membership` to configuration. Value: name of an organization to check membership of a contributor.
19
+
20
+ ### New output data
21
+
22
+ Added `merge_commit`, `labels`, and `membership` to YAML output.
23
+ Values for `membership`:
24
+ - `true` if contributor is a member of the configured organization
25
+ - `false` if not a member
26
+ - empty if not configured
27
+
28
+ ## 0.3.1
29
+
30
+ - Added `contributor` and `profile` output data.
31
+
32
+ ## 0.3.0
33
+
34
+ - Added "magic word" to configuration file
35
+ - Added the requested GitHub query to terminal output (#13)
36
+ - Fixed the issue with empty description (#21)
37
+
38
+ ## 0.2.0
39
+
40
+ - Implemented two types of labels in configuration: 'optional' and 'required'.
41
+
1
42
  ## 0.0.1
2
43
 
3
44
  The tool is released as a gem.
data/Gemfile CHANGED
@@ -1,6 +1,8 @@
1
- source "https://rubygems.org"
1
+ # frozen_string_literal: true
2
2
 
3
- git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
3
+ source 'https://rubygems.org'
4
+
5
+ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
4
6
 
5
7
  # Specify your gem's dependencies in whatsup_github.gemspec
6
8
  gemspec
data/Gemfile.lock CHANGED
@@ -1,91 +1,129 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- whatsup_github (0.1.1)
5
- netrc (~> 0.10)
6
- octokit (~> 4.14)
7
- thor (~> 0.20)
4
+ whatsup_github (0.4.1)
5
+ netrc (~> 0.11)
6
+ octokit (~> 4.20)
7
+ thor (~> 1.1)
8
8
 
9
9
  GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
+ activesupport (6.1.3.1)
13
+ concurrent-ruby (~> 1.0, >= 1.0.2)
14
+ i18n (>= 1.6, < 2)
15
+ minitest (>= 5.1)
16
+ tzinfo (~> 2.0)
17
+ zeitwerk (~> 2.3)
12
18
  addressable (2.7.0)
13
19
  public_suffix (>= 2.0.2, < 5.0)
14
- aruba (0.14.14)
15
- childprocess (>= 0.6.3, < 4.0.0)
16
- contracts (~> 0.9)
17
- cucumber (>= 1.3.19)
18
- ffi (~> 1.9)
19
- rspec-expectations (>= 2.99)
20
- thor (>= 0.19, < 2.0)
21
- backports (3.17.0)
20
+ aruba (1.0.4)
21
+ childprocess (>= 2.0, < 5.0)
22
+ contracts (~> 0.16.0)
23
+ cucumber (>= 2.4, < 6.0)
24
+ rspec-expectations (~> 3.4)
25
+ thor (~> 1.0)
22
26
  builder (3.2.4)
23
- childprocess (3.0.0)
24
- coderay (1.1.2)
27
+ childprocess (4.0.0)
28
+ coderay (1.1.3)
29
+ concurrent-ruby (1.1.8)
25
30
  contracts (0.16.0)
26
- cucumber (3.1.2)
27
- builder (>= 2.1.2)
28
- cucumber-core (~> 3.2.0)
29
- cucumber-expressions (~> 6.0.1)
30
- cucumber-wire (~> 0.0.1)
31
- diff-lcs (~> 1.3)
32
- gherkin (~> 5.1.0)
33
- multi_json (>= 1.7.5, < 2.0)
34
- multi_test (>= 0.1.2)
35
- cucumber-core (3.2.1)
36
- backports (>= 3.8.0)
37
- cucumber-tag_expressions (~> 1.1.0)
38
- gherkin (~> 5.0)
39
- cucumber-expressions (6.0.1)
40
- cucumber-tag_expressions (1.1.1)
41
- cucumber-wire (0.0.1)
42
- diff-lcs (1.3)
43
- faraday (1.0.0)
31
+ cucumber (5.3.0)
32
+ builder (~> 3.2, >= 3.2.4)
33
+ cucumber-core (~> 8.0, >= 8.0.1)
34
+ cucumber-create-meta (~> 2.0, >= 2.0.2)
35
+ cucumber-cucumber-expressions (~> 10.3, >= 10.3.0)
36
+ cucumber-gherkin (~> 15.0, >= 15.0.2)
37
+ cucumber-html-formatter (~> 9.0, >= 9.0.0)
38
+ cucumber-messages (~> 13.1, >= 13.1.0)
39
+ cucumber-wire (~> 4.0, >= 4.0.1)
40
+ diff-lcs (~> 1.4, >= 1.4.4)
41
+ multi_test (~> 0.1, >= 0.1.2)
42
+ sys-uname (~> 1.2, >= 1.2.1)
43
+ cucumber-core (8.0.1)
44
+ cucumber-gherkin (~> 15.0, >= 15.0.2)
45
+ cucumber-messages (~> 13.0, >= 13.0.1)
46
+ cucumber-tag-expressions (~> 2.0, >= 2.0.4)
47
+ cucumber-create-meta (2.0.4)
48
+ cucumber-messages (~> 13.1, >= 13.1.0)
49
+ sys-uname (~> 1.2, >= 1.2.1)
50
+ cucumber-cucumber-expressions (10.3.0)
51
+ cucumber-gherkin (15.0.2)
52
+ cucumber-messages (~> 13.0, >= 13.0.1)
53
+ cucumber-html-formatter (9.0.0)
54
+ cucumber-messages (~> 13.0, >= 13.0.1)
55
+ cucumber-messages (13.2.1)
56
+ protobuf-cucumber (~> 3.10, >= 3.10.8)
57
+ cucumber-tag-expressions (2.0.4)
58
+ cucumber-wire (4.0.1)
59
+ cucumber-core (~> 8.0, >= 8.0.1)
60
+ cucumber-cucumber-expressions (~> 10.3, >= 10.3.0)
61
+ cucumber-messages (~> 13.0, >= 13.0.1)
62
+ diff-lcs (1.4.4)
63
+ faraday (1.3.0)
64
+ faraday-net_http (~> 1.0)
44
65
  multipart-post (>= 1.2, < 3)
45
- ffi (1.12.2)
46
- gherkin (5.1.0)
66
+ ruby2_keywords
67
+ faraday-net_http (1.0.1)
68
+ ffi (1.15.0)
69
+ i18n (1.8.9)
70
+ concurrent-ruby (~> 1.0)
47
71
  method_source (1.0.0)
48
- multi_json (1.14.1)
72
+ middleware (0.1.0)
73
+ minitest (5.14.4)
49
74
  multi_test (0.1.2)
50
75
  multipart-post (2.1.1)
51
76
  netrc (0.11.0)
52
- octokit (4.18.0)
77
+ octokit (4.20.0)
53
78
  faraday (>= 0.9)
54
79
  sawyer (~> 0.8.0, >= 0.5.3)
55
- pry (0.13.0)
80
+ protobuf-cucumber (3.10.8)
81
+ activesupport (>= 3.2)
82
+ middleware
83
+ thor
84
+ thread_safe
85
+ pry (0.14.0)
56
86
  coderay (~> 1.1)
57
87
  method_source (~> 1.0)
58
- public_suffix (4.0.3)
59
- rake (13.0.1)
60
- rspec (3.9.0)
61
- rspec-core (~> 3.9.0)
62
- rspec-expectations (~> 3.9.0)
63
- rspec-mocks (~> 3.9.0)
64
- rspec-core (3.9.1)
65
- rspec-support (~> 3.9.1)
66
- rspec-expectations (3.9.1)
88
+ public_suffix (4.0.6)
89
+ rake (13.0.3)
90
+ rspec (3.10.0)
91
+ rspec-core (~> 3.10.0)
92
+ rspec-expectations (~> 3.10.0)
93
+ rspec-mocks (~> 3.10.0)
94
+ rspec-core (3.10.1)
95
+ rspec-support (~> 3.10.0)
96
+ rspec-expectations (3.10.1)
67
97
  diff-lcs (>= 1.2.0, < 2.0)
68
- rspec-support (~> 3.9.0)
69
- rspec-mocks (3.9.1)
98
+ rspec-support (~> 3.10.0)
99
+ rspec-mocks (3.10.2)
70
100
  diff-lcs (>= 1.2.0, < 2.0)
71
- rspec-support (~> 3.9.0)
72
- rspec-support (3.9.2)
101
+ rspec-support (~> 3.10.0)
102
+ rspec-support (3.10.2)
103
+ ruby2_keywords (0.0.4)
73
104
  sawyer (0.8.2)
74
105
  addressable (>= 2.3.5)
75
106
  faraday (> 0.8, < 2.0)
76
- thor (0.20.3)
107
+ sys-uname (1.2.2)
108
+ ffi (~> 1.1)
109
+ thor (1.1.0)
110
+ thread_safe (0.3.6)
111
+ tzinfo (2.0.4)
112
+ concurrent-ruby (~> 1.0)
113
+ zeitwerk (2.4.2)
77
114
 
78
115
  PLATFORMS
79
116
  ruby
117
+ x86_64-darwin-19
80
118
 
81
119
  DEPENDENCIES
82
- aruba (~> 0.14)
83
- bundler (~> 1.17)
84
- cucumber (~> 3.1)
85
- pry (~> 0.12)
120
+ aruba (~> 1.0)
121
+ bundler (~> 2.2)
122
+ cucumber (~> 5.3)
123
+ pry (~> 0.14)
86
124
  rake (~> 13.0)
87
- rspec (~> 3.0)
125
+ rspec (~> 3.10)
88
126
  whatsup_github!
89
127
 
90
128
  BUNDLED WITH
91
- 1.17.3
129
+ 2.2.15
data/README.md CHANGED
@@ -1,27 +1,29 @@
1
- # WhatsupGithub
1
+ # whatsup_github
2
2
 
3
3
  [![Build status](https://travis-ci.com/dshevtsov/whatsup_github.svg?branch=master)](https://travis-ci.com/dshevtsov/whatsup_github)
4
4
  [![Gem version](https://img.shields.io/gem/v/whatsup_github.svg?style=flat)](https://rubygems.org/gems/whatsup_github)
5
5
 
6
- This tool helps to update data for [Whats New on DevDocs](http://devdocs.magento.com/whats-new.html).
6
+ This tool helps updating data for [Whats New on DevDocs](http://devdocs.magento.com/whats-new.html).
7
7
  It filters GitHub pull requests and generates a data file.
8
- One pull request - one data entity.
8
+ One pull request sources one data entity.
9
9
  All filtering parameters are set in a configuration file, except dates.
10
10
  _Since_ date is set as a CLI argument and the _till_ date is always the moment when the command is run.
11
11
 
12
- ## Prerequisite
12
+ ## What's generated
13
13
 
14
- The resulting data file is generated from data pulled from GitHub.
14
+ A resulting YAML file `tmp/whats-new.yml` is generated from GitHub data.
15
15
 
16
16
  ### `description`
17
17
 
18
- Pull requests that will appear in search must have text that will fill out the _Description_ cell.
19
- The text must follow the `whatsnew` keyword and be located at the very bottom of a pull request description field.
18
+ Text for `description` is taken from individual pull request's description (same as body).
19
+ The text must follow the `whatsnew` keyword and be located at the end.
20
20
 
21
- ```
21
+ Example:
22
+
23
+ ```console
22
24
  This pull request adds ...
23
25
 
24
- ...
26
+ Some other details about this pull request.
25
27
 
26
28
  whatsnew
27
29
  Added documentation about [New Magento feature](https://devdocs.magento.com/new-magento-feature.html).
@@ -29,22 +31,51 @@ Added documentation about [New Magento feature](https://devdocs.magento.com/new-
29
31
 
30
32
  ### `type`
31
33
 
32
- Set as a list of `labels` in `.whatsup.yml`.
34
+ Set as a list of `labels` in `.whatsup.yml`. There are two types of labels in configuration:
35
+
36
+ - `required` are labels that must include `whatsnew`. Otherwise, resulting output will warn about missing `whatsnew`.
37
+ - `optional` are labels that may include `whatsnew`. If `whatsnew` is missing, you won't get any notification about this.
33
38
 
34
39
  ### `versions`
35
40
 
36
- Any GitHub label that starts from a digit followed by a dot (see regex `\d\.`).
41
+ Any GitHub label that starts from a digit followed by a period like in regex `\d\.`.
37
42
  Examples: `2.3.x`, `1.0.3-msi`, `2.x`
38
43
 
39
44
  ### `date`
40
45
 
41
- The date when pull request was merged.
46
+ Date when the pull request was merged.
47
+
48
+ ### `link`
49
+
50
+ URL of the pull request.
51
+
52
+ ### `contributor`
53
+
54
+ An author of a pull request.
55
+
56
+ ### `merge_commit`
57
+
58
+ Merge commit SHA of the pull request.
59
+
60
+ ### `membership`
61
+
62
+ Memebership of the contributor in a configured organization.
63
+
64
+ ### `labels`
65
+
66
+ All labels added to the pull request.
42
67
 
43
68
  ## Installation
44
69
 
45
- Same as any other gem.
70
+ This gem can be installed as a system command-line tool or as a command-line tool available in a project.
46
71
 
47
- ### Using Bundler as a part of your project
72
+ ### System installation
73
+
74
+ ```bash
75
+ gem install whatsup_github
76
+ ```
77
+
78
+ ### Project installation
48
79
 
49
80
  Add to your Gemfile:
50
81
 
@@ -52,26 +83,46 @@ Add to your Gemfile:
52
83
  gem 'whatsup_github'
53
84
  ```
54
85
 
55
- And then execute:
86
+ And install:
56
87
 
57
88
  ```bash
58
89
  bundle
59
90
  ```
60
91
 
61
- ### Separately
62
-
63
- ```
64
- gem install whatsup_github
65
- ```
66
-
67
92
  ## Configuration
68
93
 
69
94
  The configuration file [`.whatsup.yml`](lib/template/.whatsup.yml) will be created automatically after first run unless it's already there.
70
95
 
71
96
  ## Authentication
72
97
 
98
+ ### With the .netrc file
99
+
73
100
  Use [`~/.netrc`](https://github.com/octokit/octokit.rb#using-a-netrc-file) file for authentication.
74
101
 
102
+ ```config
103
+ machine api.github.com
104
+ login <GitHub login>
105
+ password <GitHub token>
106
+ ```
107
+
108
+ Example:
109
+
110
+ ```config
111
+ machine api.github.com
112
+ login dshevtsov
113
+ password y9o6YvEoa7IukRWUFdnkpuxNjJ3uwiDQp4zkAdU0
114
+ ```
115
+
116
+ ### With an environment variable
117
+
118
+ Assign the `WHATSUP_GITHUB_ACCESS_TOKEN` to the GitHub token you want to use, prior the `whatsup_github` command.
119
+
120
+ Example:
121
+
122
+ ```bash
123
+ WHATSUP_GITHUB_ACCESS_TOKEN=askk494nmfodic68mk whatsup_github since 'apr 2'
124
+ ```
125
+
75
126
  ## Usage
76
127
 
77
128
  ```bash
@@ -90,13 +141,13 @@ You can use different date formats like `'April 2'`, `'2 April'`, `'apr 2'`, `'2
90
141
 
91
142
  To install dependencies:
92
143
 
93
- ```
144
+ ```bash
94
145
  bin/setup
95
146
  ```
96
147
 
97
148
  To install the package:
98
149
 
99
- ```
150
+ ```bash
100
151
  rake install
101
152
  ```
102
153
 
@@ -110,25 +161,45 @@ The project contains [rspec](https://rspec.info/) tests in `spec` and [cucumber]
110
161
 
111
162
  To run rspec tests:
112
163
 
113
- ```
164
+ ```bash
114
165
  rake spec
115
166
  ```
116
167
 
117
168
  #### features
118
169
 
119
- To run cucumber tests:
170
+ To run Cucumber tests:
120
171
 
121
- ```
172
+ ```bash
122
173
  rake features
123
174
  ```
124
175
 
125
176
  To pass the `output_file.feature` tests, you need to generate a non-empty `whats-new.yml`.
126
177
  To test just file:
127
178
 
179
+ ```bash
180
+ bundle exec cucumber features/since.feature
128
181
  ```
129
- bundle exec cucumber features/output_file.feature
182
+
183
+ NOTE: Cucumber tests will use the configuration file from code `lib/template/.whatsup.yml`.
184
+
185
+ #### Individual files
186
+
187
+ Individual files can have tests at the end of a file in a format like:
188
+
189
+ ```ruby
190
+ if $PROGRAM_NAME == __FILE__
191
+ # test code here
192
+ end
193
+ ```
194
+
195
+ To run such test, run the corresponding file:
196
+
197
+ ```bash
198
+ ruby lib/whatsup_github/config_reader.rb
130
199
  ```
131
200
 
201
+ The tests use the root `.whatsup.yml` file to read configuration.
202
+
132
203
  ## Contributing
133
204
 
134
205
  Bug reports and pull requests are welcome on GitHub at https://github.com/dshevtsov/whatsup_github. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.