neetob 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/.rubocop.yml +1 -1
- data/.ruby-version +1 -1
- data/.semaphore/semaphore.yml +1 -1
- data/CHANGELOG.md +7 -0
- data/Gemfile.lock +2 -1
- data/README.md +145 -94
- data/bookmarks.md +25 -0
- data/data/github-labels.json +49 -29
- data/images/commit-message-update.png +0 -0
- data/lib/neetob/cli/github/auth.rb +3 -3
- data/lib/neetob/cli/github/labels/update.rb +11 -1
- data/lib/neetob/cli/github/labels/upsert.rb +2 -0
- data/lib/neetob/cli/ui.rb +1 -1
- data/lib/neetob/cli/users/commits.rb +1 -1
- data/lib/neetob/exception_handler.rb +3 -1
- data/lib/neetob/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 641eee79e8d05537132030cc9db2ca8d4a57e60e480552dcb1a904fd00e542f5
|
4
|
+
data.tar.gz: a4c674222429b42cff84e1eeb7a66212b32da60f4248a36a4dae5b03439cc649
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 57951a8d15b4514b7468b7994094c42ff8b0786f6dee034091db26b71d909094c90235855f208a1b1bbc1cc4125add4a53afb6869e82e255baadbe22846220a7
|
7
|
+
data.tar.gz: e47da7744b3a4d92aa23881673f88d6cd9e1b795d92ddb67d0be5676229b82ea194b43125d0f8904bbf009c054f52884d1e5e43e2ecdff4d06eccea9e6bf227b
|
data/.rubocop.yml
CHANGED
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.
|
1
|
+
3.1.3
|
data/.semaphore/semaphore.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
## [Unreleased]
|
2
2
|
|
3
|
+
### [0.1.5](https://www.github.com/bigbinary/neetob/compare/v0.1.4...v0.1.5) (2023-03-01)
|
4
|
+
|
5
|
+
|
6
|
+
### Bug Fixes
|
7
|
+
|
8
|
+
* handled some edge cases in the update and upsert labels cmd ([#192](https://www.github.com/bigbinary/neetob/issues/192)) ([dc87d19](https://www.github.com/bigbinary/neetob/commit/dc87d198a6a22850f3e04659413bed41d9db454f))
|
9
|
+
|
3
10
|
### [0.1.4](https://www.github.com/bigbinary/neetob/compare/v0.1.3...v0.1.4) (2023-02-23)
|
4
11
|
|
5
12
|
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
neetob (0.1.
|
4
|
+
neetob (0.1.5)
|
5
5
|
dotenv (~> 2.8.1)
|
6
6
|
launchy (~> 2.5.0)
|
7
7
|
octokit (~> 4.0)
|
@@ -237,6 +237,7 @@ GEM
|
|
237
237
|
|
238
238
|
PLATFORMS
|
239
239
|
x86_64-darwin-21
|
240
|
+
x86_64-darwin-22
|
240
241
|
x86_64-linux
|
241
242
|
|
242
243
|
DEPENDENCIES
|
data/README.md
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
# neetob
|
2
2
|
|
3
|
-
The `neetob` gem gives different commands for interacting with Github repos
|
3
|
+
The `neetob` gem gives different commands for interacting with Github repos, Heroku instances and other tools to manage the workflow of neeto products.
|
4
4
|
|
5
5
|
## Table of Contents
|
6
6
|
|
7
|
-
1. [
|
8
|
-
1. [
|
9
|
-
2. [
|
7
|
+
1. [Usage](#usage)
|
8
|
+
1. [Installing neetob for use](#installing-neetob-for-use)
|
9
|
+
2. [For development](#for-development)
|
10
|
+
2. [Source of truth](#source-of-truth)
|
10
11
|
3. [Working with GitHub](#working-with-github)
|
11
12
|
1. [Issues](#issues)
|
12
13
|
2. [Labels](#labels)
|
@@ -21,36 +22,22 @@ The `neetob` gem gives different commands for interacting with Github repos and
|
|
21
22
|
5. [Working with Users](#working-with-users)
|
22
23
|
1. [Audit](#audit)
|
23
24
|
2. [Commits](#commits)
|
24
|
-
6. [
|
25
|
+
6. [Make Repos Uptodate](#make-repos-uptodate)
|
25
26
|
7. [Working with local Repos](#working-with-local-repos)
|
26
27
|
1. [ls](#ls)
|
27
28
|
8. [Testing](#testing)
|
28
29
|
|
29
|
-
##
|
30
|
-
|
31
|
-
### Installation
|
32
|
-
|
33
|
-
Clone the repository onto your system using the following command:
|
34
|
-
|
35
|
-
```sh
|
36
|
-
git clone https://github.com/bigbinary/neetob.git
|
37
|
-
```
|
38
|
-
|
39
|
-
Navigate to the root of the application directory.
|
30
|
+
## Usage
|
40
31
|
|
41
|
-
|
42
|
-
cd neetob
|
43
|
-
```
|
32
|
+
### Installing neetob for use
|
44
33
|
|
45
|
-
|
34
|
+
Install and update the gem using the following command:
|
46
35
|
|
47
36
|
```sh
|
48
|
-
|
37
|
+
gem install neetob && gem update neetob
|
49
38
|
```
|
50
39
|
|
51
|
-
|
52
|
-
|
53
|
-
Utilize the `help` keyword to access a comprehensive list of all the available commands and options.
|
40
|
+
Use the `help` keyword to access a list of all the available commands and options.
|
54
41
|
|
55
42
|
```
|
56
43
|
neetob help
|
@@ -66,9 +53,7 @@ Options:
|
|
66
53
|
[--sandbox] # All the commands in sandbox mode will run only on the "neeto-dummy" app.
|
67
54
|
```
|
68
55
|
|
69
|
-
|
70
|
-
|
71
|
-
### Useful command-line options
|
56
|
+
#### Useful command-line options
|
72
57
|
|
73
58
|
| Option | Meaning |
|
74
59
|
| ------------ | --------------------------------- |
|
@@ -77,11 +62,85 @@ Options:
|
|
77
62
|
| --no-sandbox | Non-Sandbox mode |
|
78
63
|
| --help | Provides information on a command |
|
79
64
|
|
80
|
-
|
65
|
+
The commands within `neetob` should be used with caution, as improper usage may result in unintended consequences, and some actions may not be reversible. By default, all commands will be executed in non-sandbox mode.
|
66
|
+
|
67
|
+
### For development
|
68
|
+
|
69
|
+
Clone the repository onto your system using the following command:
|
70
|
+
|
71
|
+
```sh
|
72
|
+
git clone https://github.com/bigbinary/neetob.git
|
73
|
+
```
|
74
|
+
|
75
|
+
Navigate to the root of the application directory.
|
76
|
+
|
77
|
+
```sh
|
78
|
+
cd neetob
|
79
|
+
```
|
80
|
+
|
81
|
+
To check and use the latest changes in the local repository install `neetob` like so:
|
82
|
+
|
83
|
+
```sh
|
84
|
+
bin/setup
|
85
|
+
```
|
86
|
+
|
87
|
+
We can use, check or debug the `neetob` locally by directly invoking the `neetob` class like so:
|
88
|
+
|
89
|
+
```sh
|
90
|
+
ruby exe/neeetob
|
91
|
+
```
|
92
|
+
|
93
|
+
#### Conventional commit messages
|
94
|
+
|
95
|
+
In `neetob` we are using the Google's [release please](https://github.com/googleapis/release-please) Github action to auto update the version and release the latest gem.
|
96
|
+
|
97
|
+
In order to make this action work we have to use the [conventional commit messages](https://www.conventionalcommits.org/en/v1.0.0/).
|
98
|
+
|
99
|
+
The Conventional commits specification is a lightweight convention on top of commit messages. It provides an easy set of rules for creating an explicit commit history.
|
100
|
+
|
101
|
+
Generally, we use three types of suffix in the commit messages that are as follows:
|
102
|
+
|
103
|
+
1. `fix:` for the commit that fixes a bug in the codebase. This updates the third digit in the version. For example, `0.1.0` version will be updated to `0.1.1`.
|
104
|
+
|
105
|
+
2. `feat:` for the commit that introduces a new feature to the codebase. This updates the second digit in the version. For example, `0.1.0` version will be updated to `0.2.0`.
|
106
|
+
|
107
|
+
3. `BREAKING CHANGE:` for the commit that introduces a breaking API change. This updates the first digit in the version. For example, `0.1.0` version will be updated to `1.0.0`.
|
108
|
+
|
109
|
+
For more details please refer [official docs](https://www.conventionalcommits.org/en/v1.0.0/) from Conventional commits.
|
110
|
+
|
111
|
+
In `neetob` we use "squash and merge" option while merging the PR. So we have to update the commit message while squash and merge so that Github action can track that merge commit.
|
112
|
+
|
113
|
+
For example:
|
114
|
+
|
115
|
+

|
116
|
+
|
117
|
+
## Source of truth
|
118
|
+
|
119
|
+
This [list of repos](https://github.com/bigbinary/neeto-compliance/blob/main/data/neeto_repos.json) is used as the "source of truth".
|
120
|
+
|
121
|
+
## Passing list of heroku apps as option
|
122
|
+
|
123
|
+
`neetob` allows you to pass list of apps in the following three formats.
|
124
|
+
|
125
|
+
```
|
126
|
+
// all staging heroku instances
|
127
|
+
--apps "neeto-*-staging"
|
128
|
+
|
129
|
+
// all production heroku instances
|
130
|
+
--apps "neeto-*-production"
|
131
|
+
|
132
|
+
// all staging and production instances
|
133
|
+
--apps "neeto-*-web"
|
134
|
+
|
135
|
+
// for local testing
|
136
|
+
--apps neeto-dummy
|
137
|
+
```
|
138
|
+
|
139
|
+
For safety reasons all the examples given below would be using `--apps neeto-*-staging`.
|
81
140
|
|
82
141
|
## Working with GitHub
|
83
142
|
|
84
|
-
|
143
|
+
Check the list of all the available subcommands for the `github` command by utilizing the `help` keyword.
|
85
144
|
|
86
145
|
```sh
|
87
146
|
neetob github help
|
@@ -91,10 +150,11 @@ neetob github help
|
|
91
150
|
|
92
151
|
```sh
|
93
152
|
# Lists and counts all the open issues that are currently unassigned
|
94
|
-
neetob github issues list --count --state open --assignee none --apps "neeto-*-
|
153
|
+
neetob github issues list --count --state open --assignee none --apps "neeto-*-staging"
|
95
154
|
|
96
155
|
# Lists, counts and filters all unassigned open issues that are labeled as "bug"
|
97
|
-
neetob github issues list --count --label bug --state open --assignee none
|
156
|
+
neetob github issues list --count --label bug --state open --assignee none \
|
157
|
+
--apps "neeto-*-staging"
|
98
158
|
```
|
99
159
|
|
100
160
|
### Labels
|
@@ -103,10 +163,10 @@ The `labels` command provides an interface for interacting with Github labels.
|
|
103
163
|
|
104
164
|
```sh
|
105
165
|
# Lists the details of all the labels in the Github repo
|
106
|
-
neetob github labels list --apps "neeto-*-
|
166
|
+
neetob github labels list --apps "neeto-*-staging"
|
107
167
|
|
108
168
|
# Provides the details for a specific label in the Github repo
|
109
|
-
neetob github labels show --name priority --apps "neeto-*-
|
169
|
+
neetob github labels show --name priority --apps "neeto-*-staging"
|
110
170
|
|
111
171
|
# Changes the name of the label
|
112
172
|
neetob github labels update --old-name "High Priority" --new-name \
|
@@ -116,20 +176,19 @@ neetob github labels update --old-name "High Priority" --new-name \
|
|
116
176
|
neetob github labels upsert --all-neeto-repos
|
117
177
|
|
118
178
|
# Accepts a different JSON file using `path` option
|
119
|
-
neetob github labels upsert --path ~/Desktop/labels.json --apps "neeto-*-
|
179
|
+
neetob github labels upsert --path ~/Desktop/labels.json --apps "neeto-*-staging"
|
120
180
|
|
121
|
-
#
|
122
|
-
# and `description` options
|
181
|
+
# Upsert a single label using `name`, `color`, and `description` options
|
123
182
|
# No `#` is required while adding `color`
|
124
183
|
neetob github labels upsert --name UI --color 8250df --description \
|
125
184
|
"UI work needed" --all-neeto-repos
|
126
185
|
|
127
186
|
# Deletes the given labels from the Github repos
|
128
187
|
neetob github labels delete --labels "High Priority" "Priority 1" "bug" \
|
129
|
-
--apps "neeto-*-
|
188
|
+
--apps "neeto-*-staging"
|
130
189
|
|
131
190
|
# Deletes all the labels from the Github repos
|
132
|
-
neetob github labels delete_all --apps "neeto-*-
|
191
|
+
neetob github labels delete_all --apps "neeto-*-staging"
|
133
192
|
```
|
134
193
|
|
135
194
|
Check out the default labels [file](data/github-labels.json) for the required JSON file structure.
|
@@ -150,7 +209,7 @@ Don't use `#` before the color code.
|
|
150
209
|
Searches for keywords across multiple neeto projects within specified files by utilizing the `search` command.
|
151
210
|
|
152
211
|
```sh
|
153
|
-
neetob github search --keyword neeto --path README.md --apps "neeto-*-
|
212
|
+
neetob github search --keyword neeto --path README.md --apps "neeto-*-staging"
|
154
213
|
```
|
155
214
|
|
156
215
|
### Protect branch
|
@@ -158,7 +217,7 @@ neetob github search --keyword neeto --path README.md --apps "neeto-*-web"
|
|
158
217
|
Updates branch protection rules in neeto repos by using the `protect_branch` command.
|
159
218
|
|
160
219
|
```sh
|
161
|
-
neetob github protect_branch --branch main --apps neeto
|
220
|
+
neetob github protect_branch --branch main --apps "neeto-*-staging"
|
162
221
|
```
|
163
222
|
|
164
223
|
By default, file "data/branch-protection-rules.json" will be used for updating the branch protection rules.
|
@@ -224,37 +283,37 @@ neetob heroku help
|
|
224
283
|
|
225
284
|
### Config vars
|
226
285
|
|
227
|
-
The `config_vars` command
|
286
|
+
The `config_vars` command interacts with Heroku config variables.
|
228
287
|
|
229
288
|
```sh
|
230
289
|
# The `list` command lists all the Heroku config variables
|
231
|
-
neetob heroku config_vars list --apps "neeto-*-
|
290
|
+
neetob heroku config_vars list --apps "neeto-*-staging"
|
232
291
|
|
233
|
-
#
|
234
|
-
neetob heroku config_vars list --apps "neeto-*-
|
292
|
+
# List specific Heroku config variables using `keys` option
|
293
|
+
neetob heroku config_vars list --apps "neeto-*-staging" --keys key1 key2 key3
|
235
294
|
|
236
|
-
#
|
237
|
-
# Checkout the `data/config-vars-list.json` file for the required structure
|
238
|
-
neetob heroku config_vars list --apps "neeto-*-
|
295
|
+
# List specific Heroku config variables using a file
|
296
|
+
# Checkout the `data/config-vars-list.json` file for the required structure
|
297
|
+
neetob heroku config_vars list --apps "neeto-*-staging" --path \
|
239
298
|
neetob/data/config-vars-list.json
|
240
299
|
|
241
|
-
# The `audit` command
|
300
|
+
# The `audit` command checks the config variables against the JSON file named as
|
242
301
|
# `required-config-vars.json` that is present inside the `data` directory at the root of
|
243
|
-
# installed `neetob` gem
|
244
|
-
neetob heroku config_vars audit --apps "neeto-*-
|
302
|
+
# installed `neetob` gem
|
303
|
+
neetob heroku config_vars audit --apps "neeto-*-staging"
|
245
304
|
|
246
|
-
# The `audit` command
|
247
|
-
neetob heroku config_vars audit --path ~/Desktop/config.json --apps "neeto-*-
|
305
|
+
# The `audit` command also works with a different JSON file using `--path` option
|
306
|
+
neetob heroku config_vars audit --path ~/Desktop/config.json --apps "neeto-*-staging"
|
248
307
|
|
249
|
-
# The `upsert` command adds or updates
|
250
|
-
# `data/config-vars-upsert.json` file present at the root of installed `neetob` gem
|
308
|
+
# The `upsert` command adds or updates config variables from the
|
309
|
+
# `data/config-vars-upsert.json` file present at the root of installed `neetob` gem
|
251
310
|
neetob heroku config_vars upsert --apps "neeto-*-staging"
|
252
311
|
|
253
|
-
# The `remove` command
|
312
|
+
# The `remove` command deletes config variables
|
254
313
|
neetob heroku config_vars remove --keys=TEST_KEY_1 TEST_KEY_2 --apps "neeto-*-staging"
|
255
314
|
```
|
256
315
|
|
257
|
-
We can use a custom JSON file with `upsert` command using the
|
316
|
+
We can use a custom JSON file with `upsert` command using the `--path` option.
|
258
317
|
|
259
318
|
For example, assume we have a file named `config.json` on the Desktop, like so:
|
260
319
|
|
@@ -266,13 +325,13 @@ For example, assume we have a file named `config.json` on the Desktop, like so:
|
|
266
325
|
}
|
267
326
|
```
|
268
327
|
|
269
|
-
To update the above-mentioned config variables to all staging apps, we can use the upsert command like so:
|
328
|
+
To update the above-mentioned config variables to all staging apps, we can use the `upsert` command like so:
|
270
329
|
|
271
330
|
```sh
|
272
331
|
neetob heroku config_vars upsert --path ~/Desktop/config.json --apps "neeto-*-staging"
|
273
332
|
```
|
274
333
|
|
275
|
-
The `upsert` command can also
|
334
|
+
The `upsert` command can also update or insert project-specific config variables.
|
276
335
|
|
277
336
|
For example, assume we have a file named `config.json` on the `Desktop` with the following properties:
|
278
337
|
|
@@ -293,79 +352,75 @@ For example, assume we have a file named `config.json` on the `Desktop` with the
|
|
293
352
|
To update the above-mentioned config variables under the defined project, we can use the upsert command like so:
|
294
353
|
|
295
354
|
```sh
|
296
|
-
neetob heroku config_vars upsert --path_with_project_keys ~/Desktop/config.json
|
355
|
+
neetob heroku config_vars upsert --path_with_project_keys ~/Desktop/config.json --apps "neeto-*-staging"
|
297
356
|
```
|
298
357
|
|
299
358
|
### Access
|
300
359
|
|
301
|
-
|
360
|
+
The `access` command list, add and remove users from multiple Heroku apps.
|
302
361
|
|
303
362
|
```sh
|
304
|
-
#
|
305
|
-
neetob heroku access list --apps "neeto-*-
|
363
|
+
# List all the users from Heroku apps
|
364
|
+
neetob heroku access list --apps "neeto-*-staging"
|
306
365
|
|
307
|
-
# Add new users to the Heroku apps
|
366
|
+
# Add new users to the Heroku apps
|
308
367
|
neetob heroku access add --users oliver@bigbinary.com eve@bigbinary.com --apps "neeto-*-staging"
|
309
368
|
|
310
|
-
# Remove the users from the Heroku apps
|
369
|
+
# Remove the users from the Heroku apps
|
311
370
|
neetob heroku access remove --users oliver@bigbinary.com eve@bigbinary.com --apps \
|
312
371
|
"neeto-*-staging"
|
313
372
|
```
|
314
373
|
|
315
374
|
### Execute
|
316
375
|
|
317
|
-
|
376
|
+
The `execute` command executes a Heroku CLI command or a Rails console command for multiple neeto apps in one go.
|
318
377
|
|
319
378
|
```sh
|
320
|
-
#
|
321
|
-
neetob heroku execute -c "heroku access" --apps "neeto-*-
|
379
|
+
# Execute Heroku CLI command
|
380
|
+
neetob heroku execute -c "heroku access" --apps "neeto-*-staging"
|
322
381
|
|
323
|
-
#
|
382
|
+
# Execute Rails console command
|
324
383
|
neetob heroku execute -c "Sidekiq::Cron::Job.destroy \"server_side_worker\"" --apps \
|
325
384
|
"neeto-*-staging" --rails
|
326
385
|
```
|
327
386
|
|
328
387
|
## Working with users
|
329
388
|
|
330
|
-
|
389
|
+
The `users` command interacts with the contributors of neeto applications.
|
331
390
|
|
332
391
|
### Audit
|
333
392
|
|
334
|
-
The `audit` command
|
335
|
-
|
336
|
-
This command will search and use the neeto repos in the current working directory.
|
337
|
-
To fetch and update all neeto repos execute [make_repos_uptodate](#working-with-make-repos-uptodate) command before the `audit` command.
|
393
|
+
The `audit` command checks the contributors across all neeto applications for multiple emails and third-party domain emails.
|
338
394
|
|
339
395
|
```sh
|
396
|
+
# Audit all the contributors
|
340
397
|
neetob users audit
|
341
398
|
```
|
342
399
|
|
343
400
|
### Commits
|
344
401
|
|
345
|
-
|
402
|
+
The `commits` command lists the commits for a user in a defined duration.
|
346
403
|
|
347
404
|
```sh
|
348
405
|
# The below mentioned command will open a list of all the commits across neeto
|
349
|
-
# product repos made by "udai1931" in the duration of last 6 months
|
406
|
+
# product repos made by "udai1931" in the duration of last 6 months
|
350
407
|
neetob users commits --author udai1931 --duration 6.months
|
351
408
|
|
352
|
-
#
|
409
|
+
# List commits for a specific product using `--apps` option
|
353
410
|
neetob users commits --author udai1931 --duration 6.months --apps neeto-kb-web
|
354
411
|
|
355
|
-
#
|
412
|
+
# List commits for all neeto repos using the `--all-neeto-repos` option
|
356
413
|
neetob users commits --author udai1931 --duration 6.months --all-neeto-repos
|
357
414
|
```
|
358
415
|
|
359
|
-
##
|
416
|
+
## Make Repos Uptodate
|
360
417
|
|
361
|
-
|
362
|
-
The list of neeto repos is picked up from [neeto_compliance](https://github.com/bigbinary/neeto-compliance/blob/main/lib/neeto_compliance/neeto_repos.rb).
|
418
|
+
The `make_repos_uptodate` command updates all neeto repos.
|
363
419
|
|
364
420
|
```sh
|
365
421
|
neetob make_repos_uptodate
|
366
422
|
|
367
|
-
#
|
368
|
-
# fetch and update all the neeto repos in the current working directory.
|
423
|
+
# Update all neeto repos with `--all-neeto-repos`
|
369
424
|
neetob make_repos_uptodate --all-neeto-repos
|
370
425
|
```
|
371
426
|
|
@@ -379,25 +434,21 @@ neeto-kb-web
|
|
379
434
|
|
380
435
|
## Working with local Repos
|
381
436
|
|
382
|
-
|
437
|
+
The `local` command interacts with the local neeto repos.
|
383
438
|
|
384
439
|
### ls
|
385
440
|
|
386
|
-
The `ls` command
|
387
|
-
|
388
|
-
This command will search and use the neeto repos in the current working directory.
|
389
|
-
To fetch and update all neeto repos execute [make_repos_uptodate](#working-with-make-repos-uptodate) command before the `ls` command.
|
441
|
+
The `ls` command lists the files from all the local neeto repos.
|
390
442
|
|
391
443
|
```sh
|
392
|
-
#
|
393
|
-
neetob local ls --apps "
|
444
|
+
# List all the files in the root directory of neeto repos
|
445
|
+
neetob local ls --apps "neeto-*-web"
|
394
446
|
|
395
|
-
#
|
396
|
-
|
397
|
-
neetob local ls --dir public --apps "*"
|
447
|
+
# List files in a specific directory with `--dir` option
|
448
|
+
neetob local ls --dir public --apps "neeto-*-web"
|
398
449
|
|
399
|
-
#
|
400
|
-
neetob local ls --dir app/controllers --apps "
|
450
|
+
# List files in a nested directory
|
451
|
+
neetob local ls --dir app/controllers --apps "neeto-*-web"
|
401
452
|
```
|
402
453
|
|
403
454
|
## Testing
|
data/bookmarks.md
CHANGED
@@ -3,3 +3,28 @@
|
|
3
3
|
[All UX issues](https://github.com/issues?q=is%3Aopen+is%3Aissue+org%3Abigbinary+label%3Aux)
|
4
4
|
|
5
5
|
[Engineer needed](https://github.com/issues?q=is%3Aopen+is%3Aissue+org%3Abigbinary+label%3Aengineer-needed)
|
6
|
+
|
7
|
+
- [ ] neeto-chat-web
|
8
|
+
- [ ] neeto-desk-web
|
9
|
+
- [ ] neeto-kb-web
|
10
|
+
- [ ] neeto-invoice-web
|
11
|
+
- [ ] neeto-form-web
|
12
|
+
- [ ] neeto-cal-web
|
13
|
+
- [ ] neeto-planner-web
|
14
|
+
- [ ] neeto-course-web
|
15
|
+
- [ ] neeto-runner-web
|
16
|
+
- [ ] neeto-social-web
|
17
|
+
- [ ] neeto-wireframe-web
|
18
|
+
- [ ] neeto-changelog-web
|
19
|
+
- [ ] neeto-quiz-web
|
20
|
+
- [ ] neeto-site-web
|
21
|
+
- [ ] neeto-crm-web
|
22
|
+
- [ ] neeto-replay-web
|
23
|
+
- [ ] neeto-invisible-web
|
24
|
+
- [ ] neeto-testify-web
|
25
|
+
- [ ] neeto-deploy-web
|
26
|
+
- [ ] neeto-bugtrap-web
|
27
|
+
- [ ] neeto-sign-web
|
28
|
+
- [ ] neeto-monitor-web
|
29
|
+
- [ ] neeto-ci-web
|
30
|
+
- [ ] neeto-git-web
|
data/data/github-labels.json
CHANGED
@@ -44,11 +44,6 @@
|
|
44
44
|
"description": "The issue has been reviewed and considered a valid issue.",
|
45
45
|
"color": "A2D9CE"
|
46
46
|
},
|
47
|
-
{
|
48
|
-
"name": "backend",
|
49
|
-
"description": "Deals with Ruby & Rails code majorly.",
|
50
|
-
"color": "C2E0C6"
|
51
|
-
},
|
52
47
|
{
|
53
48
|
"name": "bug",
|
54
49
|
"description": "Something isn't working.",
|
@@ -106,37 +101,62 @@
|
|
106
101
|
},
|
107
102
|
{
|
108
103
|
"name": "epic",
|
109
|
-
"description": "Will get closed when sub-issues fixed and this issue tracked in monthly milestone.",
|
104
|
+
"description": "Will get closed when sub-issues are fixed and this issue is tracked in a monthly milestone.",
|
110
105
|
"color": "6A5ACD"
|
111
106
|
},
|
107
|
+
{
|
108
|
+
"name": "backend",
|
109
|
+
"description": "Deals with Ruby & Rails code majorly.",
|
110
|
+
"color": "C2E0C6"
|
111
|
+
},
|
112
112
|
{
|
113
113
|
"name": "frontend",
|
114
|
-
"description": "Deals with JS(React or JS configs etc) code majorly.",
|
114
|
+
"description": "Deals with JS(React or JS configs etc) code majorly. It can also include UI fixes without the help of the UI team.",
|
115
115
|
"color": "C2E0C6"
|
116
116
|
},
|
117
|
+
{
|
118
|
+
"name": "UI",
|
119
|
+
"description": "UI/CSS work needed.",
|
120
|
+
"color": "8250df"
|
121
|
+
},
|
122
|
+
{
|
123
|
+
"name": "UX",
|
124
|
+
"description": "UX design needed.",
|
125
|
+
"color": "366FB9"
|
126
|
+
},
|
127
|
+
{
|
128
|
+
"name": "fullstack",
|
129
|
+
"description": "This issue is not just frontend or backend but it's fullstack",
|
130
|
+
"color": "D0ECE7"
|
131
|
+
},
|
117
132
|
{
|
118
133
|
"name": "high-priority",
|
119
134
|
"description": "Urgent fix required. Should be done within a day at max.",
|
120
135
|
"color": "B60205"
|
121
136
|
},
|
122
137
|
{
|
123
|
-
"name": "
|
124
|
-
"description": "
|
125
|
-
"color": "
|
138
|
+
"name": "priority",
|
139
|
+
"description": "Means I am waiting for this issue to be fixed in order to take care of other issues.",
|
140
|
+
"color": "BA080D"
|
126
141
|
},
|
127
142
|
{
|
128
143
|
"name": "low-priority",
|
129
144
|
"description": "Other open issues can be taken up before this one.",
|
130
145
|
"color": "BFDADC"
|
131
146
|
},
|
147
|
+
{
|
148
|
+
"name": "honeybadger",
|
149
|
+
"description": "Issue created by honeybadger.",
|
150
|
+
"color": "D3D3D3"
|
151
|
+
},
|
132
152
|
{
|
133
153
|
"name": "neeto*-dependent",
|
134
|
-
"description": "This issue depends upon some other issue from
|
154
|
+
"description": "This issue depends upon some other issue from nano (engines/frontend packages).",
|
135
155
|
"color": "E54D82"
|
136
156
|
},
|
137
157
|
{
|
138
158
|
"name": "on-hold",
|
139
|
-
"description": "
|
159
|
+
"description": "The issue is on hold as per provided reason. The reason should be specified as a comment before putting the issue/PR on-hold.",
|
140
160
|
"color": "E54D82"
|
141
161
|
},
|
142
162
|
{
|
@@ -154,11 +174,6 @@
|
|
154
174
|
"description": "The issue has a PR associated with it.",
|
155
175
|
"color": "D4C5F9"
|
156
176
|
},
|
157
|
-
{
|
158
|
-
"name": "priority",
|
159
|
-
"description": "Means I am waiting for this issue to be fixed in order to take care of other issues.",
|
160
|
-
"color": "BA080D"
|
161
|
-
},
|
162
177
|
{
|
163
178
|
"name": "refactoring",
|
164
179
|
"description": "Code changes, better way to organize code etc.",
|
@@ -169,21 +184,11 @@
|
|
169
184
|
"description": "Vulnerabilities, security concerns etc.",
|
170
185
|
"color": "BA080D"
|
171
186
|
},
|
172
|
-
{
|
173
|
-
"name": "UI",
|
174
|
-
"description": "UI/CSS work needed.",
|
175
|
-
"color": "8250df"
|
176
|
-
},
|
177
187
|
{
|
178
188
|
"name": "UI-weekly-milestone",
|
179
|
-
"description": "This issue is part of the UI weekly milestone.",
|
189
|
+
"description": "This issue is part of the currently ongoing UI weekly milestone.",
|
180
190
|
"color": "F9D0C4"
|
181
191
|
},
|
182
|
-
{
|
183
|
-
"name": "UX-design-needed",
|
184
|
-
"description": "This issue is part of the UI weekly milestone.",
|
185
|
-
"color": "366FB9"
|
186
|
-
},
|
187
192
|
{
|
188
193
|
"name": "engineer-needed",
|
189
194
|
"description": "Engineer is needed to work on the issue",
|
@@ -191,7 +196,22 @@
|
|
191
196
|
},
|
192
197
|
{
|
193
198
|
"name": "working",
|
194
|
-
"description": "
|
199
|
+
"description": "A branch associated with this issue is created.",
|
195
200
|
"color": "D0ECE7"
|
201
|
+
},
|
202
|
+
{
|
203
|
+
"name": "product-analysis",
|
204
|
+
"description": "This issue is related to product analysis",
|
205
|
+
"color": "D0ECE7"
|
206
|
+
},
|
207
|
+
{
|
208
|
+
"name": "manual-qa-needed",
|
209
|
+
"description": "Manual QA is needed to verify the changes.",
|
210
|
+
"color": "CCDDCD"
|
211
|
+
},
|
212
|
+
{
|
213
|
+
"name": "manual-qa-completed",
|
214
|
+
"description": "Manual QA team has finished verifying the changes.",
|
215
|
+
"color": "CCDDCD"
|
196
216
|
}
|
197
217
|
]
|
Binary file
|
@@ -41,7 +41,7 @@ module Neetob
|
|
41
41
|
end
|
42
42
|
|
43
43
|
def request_authorization
|
44
|
-
post(uris["auth_req"], params: { client_id
|
44
|
+
post(uris["auth_req"], params: { client_id:, scope: })
|
45
45
|
end
|
46
46
|
|
47
47
|
private
|
@@ -87,9 +87,9 @@ module Neetob
|
|
87
87
|
res = post(
|
88
88
|
uris["token_req"],
|
89
89
|
params: {
|
90
|
-
client_id
|
90
|
+
client_id:,
|
91
91
|
device_code: auth_data[:device_code],
|
92
|
-
grant_type:
|
92
|
+
grant_type:
|
93
93
|
}
|
94
94
|
)
|
95
95
|
|
@@ -25,15 +25,25 @@ module Neetob
|
|
25
25
|
matching_apps = find_all_matching_apps(apps, :github, sandbox, false, all_neeto_repos)
|
26
26
|
matching_apps.each do |app|
|
27
27
|
ui.info("\n Updating label for #{app} repo \n")
|
28
|
-
|
28
|
+
begin
|
29
|
+
update_label!(app, old_name, new_name)
|
30
|
+
rescue StandardError => e
|
31
|
+
ExceptionHandler.new(e).process
|
32
|
+
end
|
29
33
|
end
|
30
34
|
end
|
31
35
|
|
32
36
|
private
|
33
37
|
|
34
38
|
def update_label!(app, old_name, new_name)
|
39
|
+
client.label(app, new_name)
|
40
|
+
ui.error("Label with name \"#{new_name}\" already exists.")
|
41
|
+
nil
|
42
|
+
rescue Octokit::NotFound
|
35
43
|
client.update_label(app, old_name, { name: new_name })
|
36
44
|
ui.success("Label \"#{old_name}\" updated to \"#{new_name}\" successfully")
|
45
|
+
rescue StandardError => e
|
46
|
+
ExceptionHandler.new(e).process
|
37
47
|
end
|
38
48
|
end
|
39
49
|
end
|
@@ -77,6 +77,8 @@ module Neetob
|
|
77
77
|
app, label_details["name"], label_details["color"] || WHITE_COLOR_HEX_CODE,
|
78
78
|
label_details)
|
79
79
|
ui.success("Label \"#{label_details["name"]}\" created successfully")
|
80
|
+
rescue StandardError => e
|
81
|
+
ExceptionHandler.new(e).process
|
80
82
|
end
|
81
83
|
end
|
82
84
|
|
data/lib/neetob/cli/ui.rb
CHANGED
@@ -156,7 +156,7 @@ module Neetob
|
|
156
156
|
begin
|
157
157
|
commits = client.commits(
|
158
158
|
app, "main",
|
159
|
-
{ author
|
159
|
+
{ author:, since: since_duration(duration), per_page: 100, page: })
|
160
160
|
rescue => exception
|
161
161
|
ui.error(exception.message)
|
162
162
|
commits = []
|
@@ -26,7 +26,9 @@ module Neetob
|
|
26
26
|
when Octokit::UnprocessableEntity
|
27
27
|
ui.error(
|
28
28
|
"Failed to complete the given request."\
|
29
|
-
" Make sure that the given entity is correct and processable"
|
29
|
+
" Make sure that the given entity is correct and processable"\
|
30
|
+
"#{exception.message}."
|
31
|
+
)
|
30
32
|
when Octokit::Unauthorized
|
31
33
|
ui.error(
|
32
34
|
"You are unauthorized to make API calls,"\
|
data/lib/neetob/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: neetob
|
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
|
- Udai Gupta
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-03-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -107,6 +107,7 @@ files:
|
|
107
107
|
- data/config-vars-upsert.json
|
108
108
|
- data/github-labels.json
|
109
109
|
- exe/neetob
|
110
|
+
- images/commit-message-update.png
|
110
111
|
- install.sh
|
111
112
|
- lib/neetob.rb
|
112
113
|
- lib/neetob/cli.rb
|
@@ -179,7 +180,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
179
180
|
- !ruby/object:Gem::Version
|
180
181
|
version: '0'
|
181
182
|
requirements: []
|
182
|
-
rubygems_version: 3.
|
183
|
+
rubygems_version: 3.3.26
|
183
184
|
signing_key:
|
184
185
|
specification_version: 4
|
185
186
|
summary: Provides a set of helper scripts for Github and Heroku.
|