neetob 0.1.4 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
![Commit message update](images/commit-message-update.png)
|
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.
|