neetob 0.4.16 → 0.4.19
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +5 -5
- data/README.md +1 -0
- data/bookmarks.md +92 -7
- data/data/github-labels.json +45 -0
- data/lib/neetob/cli/base.rb +2 -1
- data/lib/neetob/cli/github/brakeman.rb +1 -1
- data/lib/neetob/cli/github/gems/release.rb +1 -1
- data/lib/neetob/cli/github/make_pr/base.rb +22 -7
- data/lib/neetob/cli/github/make_pr/compliance_fix.rb +7 -3
- data/lib/neetob/cli/github/make_pr/script.rb +2 -2
- data/lib/neetob/cli/github/search.rb +1 -1
- data/lib/neetob/cli/heroku/access/commands.rb +3 -3
- data/lib/neetob/cli/heroku/base.rb +47 -0
- data/lib/neetob/cli/heroku/commands.rb +1 -1
- data/lib/neetob/cli/heroku/config_vars/base.rb +2 -2
- data/lib/neetob/cli/heroku/config_vars/commands.rb +4 -4
- data/lib/neetob/version.rb +1 -1
- data/lib/neetob.rb +6 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a686396058b38413205dc3e15d5f991f80facb9cb07bb1054a620efc524e6264
|
4
|
+
data.tar.gz: b783015458e9441ba5b074cc8d5d11a81bddc75a7bfda3465b8bc844115e4378
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 716df0a02fd3063916d020787d93d432b07f679fa8b30e699295fe6bfae1143dab587114f3104a8776b78f63b28f01ebee21bdcac4252ebb098b4cdbb5eb178a
|
7
|
+
data.tar.gz: b7789ae6654b8935877501fb7e231d0bfc63264c8c260b0e41e900b148e6db5455a032f85a675f8dd6065901b2f0ca68d1fb7c6017db2831e988807bb1ed90a3
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
neetob (0.4.
|
4
|
+
neetob (0.4.19)
|
5
5
|
brakeman (~> 5.0)
|
6
6
|
chronic
|
7
7
|
dotenv (~> 2.8.1)
|
@@ -35,9 +35,9 @@ GEM
|
|
35
35
|
sidekiq-cron
|
36
36
|
sidekiq-failures
|
37
37
|
webmock
|
38
|
-
neeto-compliance (1.1.
|
38
|
+
neeto-compliance (1.1.71)
|
39
39
|
colorize
|
40
|
-
|
40
|
+
hash-deep-merge
|
41
41
|
hashdiff
|
42
42
|
json (~> 2.6.2)
|
43
43
|
|
@@ -136,7 +136,6 @@ GEM
|
|
136
136
|
activerecord (>= 5.a)
|
137
137
|
database_cleaner-core (~> 2.0.0)
|
138
138
|
database_cleaner-core (2.0.1)
|
139
|
-
deep_merge (1.2.2)
|
140
139
|
docile (1.4.0)
|
141
140
|
dotenv (2.8.1)
|
142
141
|
erubi (1.11.0)
|
@@ -156,7 +155,8 @@ GEM
|
|
156
155
|
fury (0.0.1)
|
157
156
|
globalid (1.0.1)
|
158
157
|
activesupport (>= 5.0)
|
159
|
-
|
158
|
+
hash-deep-merge (0.1.1)
|
159
|
+
hashdiff (1.1.0)
|
160
160
|
hashie (5.0.0)
|
161
161
|
honeybadger (5.2.1)
|
162
162
|
htmlentities (4.3.4)
|
data/README.md
CHANGED
data/bookmarks.md
CHANGED
@@ -6,31 +6,116 @@
|
|
6
6
|
|
7
7
|
[Issues across repos in bigbinary excluding client repos](https://github.com/issues?q=is%3Aopen+is%3Aissue+org%3Abigbinary+archived%3Afalse+-repo%3Abigbinary%2Fjacky-winter-web+-repo%3Abigbinary%2Faceinvoice-web+-repo%3Abigbinary%2Ftrtle-rn+-repo%3Abigbinary%2Ftrtle-web+sort%3Acreated-asc+)
|
8
8
|
|
9
|
+
## Project boards for Dec 18 deadline:
|
10
|
+
- [Unni's Board](https://github.com/orgs/bigbinary/projects/66) - [neetoAuth](https://github.com/orgs/bigbinary/projects/66/views/1?filterQuery=repo%3A%22bigbinary%2Fneeto-auth-web%22),
|
11
|
+
[neetoDeploy](https://github.com/orgs/bigbinary/projects/66/views/1?filterQuery=repo%3A%22bigbinary%2Fneeto-deploy-web%22),
|
12
|
+
[neetoCI](https://github.com/orgs/bigbinary/projects/66/views/1?filterQuery=repo%3A%22bigbinary%2Fneeto-ci-web%22),
|
13
|
+
[neetoRecord](https://github.com/orgs/bigbinary/projects/66/views/1?filterQuery=repo%3A%22bigbinary%2Fneeto-record-web%22%2C%22bigbinary%2Fneeto-record-chrome-extension%22+),
|
14
|
+
[neetoInvoice](https://github.com/orgs/bigbinary/projects/66/views/1?filterQuery=repo%3A%22bigbinary%2Fneeto-invoice-web%22),
|
15
|
+
[Compliance & commons backend](https://github.com/orgs/bigbinary/projects/66/views/1?filterQuery=repo%3A%22bigbinary%2Fneeto-commons-backend%22+),
|
16
|
+
- [Sandip's Board](https://github.com/orgs/bigbinary/projects/56): [neeto-desk-web](https://github.com/orgs/bigbinary/projects/56/views/1?filterQuery=repo%3A%22bigbinary%2Fneeto-desk-web%22),
|
17
|
+
[neeto-kb-web](https://github.com/orgs/bigbinary/projects/56/views/1?filterQuery=repo%3A%22bigbinary%2Fneeto-kb-web%22),
|
18
|
+
[neeto-kb-eui](https://github.com/orgs/bigbinary/projects/56/views/1?filterQuery=repo%3A%22bigbinary%2Fneeto-kb-eui%22),
|
19
|
+
[neeto-projects-nano](https://github.com/orgs/bigbinary/projects/56/views/1?filterQuery=repo%3A%22bigbinary%2Fneeto-projects-nano%22),
|
20
|
+
[neeto-activities-nano](https://github.com/orgs/bigbinary/projects/56/views/1?filterQuery=repo%3A%22bigbinary%2Fneeto-activities-nano%22),
|
21
|
+
[neeto-payments-nano](https://github.com/orgs/bigbinary/projects/56/views/1?filterQuery=repo%3A%22bigbinary%2Fneeto-payments-nano%22),
|
22
|
+
[neeto-approvals-nano](https://github.com/orgs/bigbinary/projects/56/views/1?filterQuery=repo%3A%22bigbinary%2Fneeto-approvals-nano%22),
|
23
|
+
[neeto-invite-links-engine](https://github.com/orgs/bigbinary/projects/56/views/1?filterQuery=repo%3A%22bigbinary%2Fneeto-invite-links-engine%22),
|
24
|
+
[neeto-mail-interceptor](https://github.com/orgs/bigbinary/projects/56/views/1?filterQuery=repo%3A%22bigbinary%2Fneeto-mail-interceptor%22)
|
25
|
+
- [Akash's Board](https://github.com/orgs/bigbinary/projects/57/views/2):
|
26
|
+
[neeto-course-web](https://github.com/orgs/bigbinary/projects/57/views/2?filterQuery=repo%3A%22bigbinary%2Fneeto-course-web%22%2C%22bigbinary%2Fneeto-course-site%22%2C%22bigbinary%2Fneeto-course-page%22),
|
27
|
+
[neeto-quiz-web](https://github.com/orgs/bigbinary/projects/57/views/2?filterQuery=repo%3A%22bigbinary%2Fneeto-quiz-web%22),
|
28
|
+
[neeto-code-web](https://github.com/orgs/bigbinary/projects/57/views/2?filterQuery=repo%3A%22bigbinary%2Fneeto-code-web%22),
|
29
|
+
[neeto-email-notifications-nano](https://github.com/orgs/bigbinary/projects/57/views/2?filterQuery=repo%3A%22bigbinary%2Femail-notifications-nano%22),
|
30
|
+
[neeto-code-blocks](https://github.com/orgs/bigbinary/projects/57/views/2?filterQuery=repo%3A%22bigbinary%2Fneeto-code-blocks%22)
|
31
|
+
- [Subin's Board](https://github.com/orgs/bigbinary/projects/67/views/1):
|
32
|
+
[neeto-cal-web](https://github.com/orgs/bigbinary/projects/67/views/1?filterQuery=repo%3A%22bigbinary%2Fneeto-cal-web%22),
|
33
|
+
[neeto-webhooks-nano](https://github.com/orgs/bigbinary/projects/67/views/1?filterQuery=repo%3A%22bigbinary%2Fneeto-webhooks-nano%22),
|
34
|
+
- [Abhay's Board](https://github.com/orgs/bigbinary/projects/64/views/1?filterQuery=):
|
35
|
+
[neeto-changelog-web](https://github.com/orgs/bigbinary/projects/64/views/1?filterQuery=repo%3A%22bigbinary%2Fneeto-changelog-web%22),
|
36
|
+
[neeto-site-web](https://github.com/orgs/bigbinary/projects/64/views/1?filterQuery=repo%3A%22bigbinary%2Fneeto-site-web%22%2C%22bigbinary%2Fneeto-site-blocks%22%2C%22bigbinary%2Fneeto-site-eui%22),
|
37
|
+
[neeto-engineering-web](https://github.com/orgs/bigbinary/projects/64/views/1?filterQuery=repo%3A%22bigbinary%2Fneeto-engineering-web%22),
|
38
|
+
[neeto-wheel-nano](https://github.com/orgs/bigbinary/projects/64/views/1?filterQuery=repo%3A%22bigbinary%2Fneeto-wheel-nano%22),
|
39
|
+
[neeto-image-uploader-nano](https://github.com/orgs/bigbinary/projects/64/views/1?filterQuery=repo%3A%22bigbinary%2Fneeto-image-uploader%22),
|
40
|
+
[neeto-api-keys-nano](https://github.com/orgs/bigbinary/projects/64/views/1?filterQuery=repo%3A%22bigbinary%2Fneeto-api-keys%22),
|
41
|
+
[neeto-templates-nano](https://github.com/orgs/bigbinary/projects/64/views/1?filterQuery=repo%3A%22bigbinary%2Fneeto-templates-nano%22),
|
42
|
+
[neeto-filters-nano](https://github.com/orgs/bigbinary/projects/64/views/1?filterQuery=repo%3A%22bigbinary%2Fneeto-filters-nano%22),
|
43
|
+
[neeto-rules-nano](https://github.com/orgs/bigbinary/projects/64/views/1?filterQuery=repo%3A%22bigbinary%2Fneeto-rules-nano%22),
|
44
|
+
[neeto-area51-engine](https://github.com/orgs/bigbinary/projects/64/views/1?filterQuery=repo%3A%22bigbinary%2Fneeto-area51-engine%22),
|
45
|
+
[neeto-editor-engine](https://github.com/orgs/bigbinary/projects/64/views/1?filterQuery=repo%3A%22bigbinary%2Fneeto-editor-engine%22),
|
46
|
+
[neeto-editor](https://github.com/orgs/bigbinary/projects/64/views/1?filterQuery=repo%3A%22bigbinary%2Fneeto-editor%22),
|
47
|
+
[neetob](https://github.com/orgs/bigbinary/projects/64/views/1?filterQuery=repo%3A%22bigbinary%2Fneetob%22),
|
9
48
|
|
10
|
-
|
49
|
+
- [Chirag's Board](https://github.com/orgs/bigbinary/projects/52/views/3):
|
50
|
+
[RN work](https://github.com/orgs/bigbinary/projects/52/views/3?filterQuery=repo%3A%22bigbinary%2Fneeto-chat-rn%22%2C%22bigbinary%2Fneeto-invoice-rn%22%2C%22bigbinary%2Fneeto-desk-rn%22%2C%22bigbinary%2Fneeto-planner-rn%22%2C%22bigbinary%2Fneeto-form-rn%22%2C%22bigbinary%2Fneeto-cal-rn%22%2C%22bigbinary%2Fneeto-quiz-rn%22%2C%22bigbinary%2Fneeto-wheel-rn%22%2C%22bigbinary%2Fneeto-ui-rn%22%2C%22bigbinary%2Fneeto-commons-rn%22%2C%22bigbinary%2Fneeto-engineering-rn%22),
|
51
|
+
[neeto-form-web](https://github.com/orgs/bigbinary/projects/52/views/3?filterQuery=repo%3A%22bigbinary%2Fneeto-form-web%22),
|
52
|
+
[neeto-crm-web](https://github.com/orgs/bigbinary/projects/52/views/3?filterQuery=repo%3A%22bigbinary%2Fneeto-crm-web%22),
|
53
|
+
[neeto-engineering-web](https://github.com/orgs/bigbinary/projects/52/views/3?filterQuery=repo%3A%22bigbinary%2Fneeto-engineering-web%22),
|
54
|
+
[neeto-testify-web](https://github.com/orgs/bigbinary/projects/52/views/3?filterQuery=repo%3A%22bigbinary%2Fneeto-testify-web%22),
|
55
|
+
[neeto-chatify-web](https://github.com/orgs/bigbinary/projects/52/views/3?filterQuery=repo%3A%22bigbinary%2Fneeto-chatify-web%22),
|
56
|
+
[neeto-tower-web](https://github.com/orgs/bigbinary/projects/52/views/3?filterQuery=repo%3A%22bigbinary%2Fneeto-tower-web%22),
|
57
|
+
[neeto-notifications-web](https://github.com/orgs/bigbinary/projects/52/views/3?filterQuery=repo%3A%22bigbinary%2Fneeto-notifications-web%22),
|
58
|
+
[neeto-message-templates-nano](https://github.com/orgs/bigbinary/projects/52/views/3?filterQuery=repo%3A%22bigbinary%2Fneeto-message-templates%22),
|
59
|
+
[neeto-fields-nano](https://github.com/orgs/bigbinary/projects/52/views/3?filterQuery=repo%3A%22bigbinary%2Fneeto-fields-nano%22),
|
60
|
+
[neeto-tags-nano](https://github.com/orgs/bigbinary/projects/52/views/3?filterQuery=repo%3A%22bigbinary%2Fneeto-tags-nano%22),
|
61
|
+
[neeto-team-members-nano](https://github.com/orgs/bigbinary/projects/52/views/3?filterQuery=repo%3A%22bigbinary%2Fneeto-team-members%22),
|
62
|
+
[neeto-form-nano](https://github.com/orgs/bigbinary/projects/52/views/3?filterQuery=repo%3A%22bigbinary%2Fneeto-form-nano%22),
|
63
|
+
[neeto-slack-nano](https://github.com/orgs/bigbinary/projects/52/views/3?filterQuery=repo%3A%22bigbinary%2Fneeto-slack-nano%22),
|
64
|
+
[neeto-notifications-engine](https://github.com/orgs/bigbinary/projects/52/views/3?filterQuery=repo%3A%22bigbinary%2Fneeto-notifications-engine%22)
|
65
|
+
|
66
|
+
- [Amaljith's Board](https://github.com/orgs/bigbinary/projects/63/views/1):
|
67
|
+
[neeto-engineering-web](https://github.com/orgs/bigbinary/projects/63/views/1?filterQuery=repo%3A%22bigbinary%2Fneeto-engineering-web%22),
|
68
|
+
[neeto-replay-web](https://github.com/orgs/bigbinary/projects/63/views/1?filterQuery=repo%3A%22bigbinary%2Fneeto-replay-web%22),
|
69
|
+
[neeto-invisible-web](https://github.com/orgs/bigbinary/projects/63/views/1?filterQuery=repo%3A%22bigbinary%2Fneeto-invisible-web%22),
|
70
|
+
[neeto-commons-frontend](https://github.com/orgs/bigbinary/projects/63/views/1?filterQuery=repo%3A%22bigbinary%2Fneeto-commons-frontend%22),
|
71
|
+
[eslint-plugin-neeto](https://github.com/orgs/bigbinary/projects/63/views/1?filterQuery=repo%3A%22bigbinary%2Feslint-plugin-neeto%22),
|
72
|
+
[babel-preset-neeto](https://github.com/orgs/bigbinary/projects/63/views/1?filterQuery=repo%3A%22bigbinary%2Fbabel-preset-neeto%22),
|
73
|
+
[neeto-replay-widget](https://github.com/orgs/bigbinary/projects/63/views/1?filterQuery=repo%3A%22bigbinary%2Fneeto-replay-widget%22),
|
74
|
+
[neeto-invisible-chrome-extension](https://github.com/orgs/bigbinary/projects/63/views/1?filterQuery=repo%3A%22bigbinary%2Fneeto-invisible-chrome%22),
|
75
|
+
[neeto-replay-lambda](https://github.com/orgs/bigbinary/projects/63/views/1?filterQuery=repo%3A%22bigbinary%2Fneeto-replay-lambda%22)
|
76
|
+
[neeto-base-widget](https://github.com/orgs/bigbinary/projects/53/views/3?filterQuery=repo%3A%22bigbinary%2Fneeto-base-widget%22),
|
77
|
+
|
78
|
+
- [Yedhin's Board](https://github.com/orgs/bigbinary/projects/68/views/1):
|
79
|
+
[neeto-planner-web](https://github.com/orgs/bigbinary/projects/68/views/1?filterQuery=repo%3A%22bigbinary%2Fneeto-planner-web%22),
|
80
|
+
|
81
|
+
- [Ajmal's Board](https://github.com/orgs/bigbinary/projects/53/views/3):
|
82
|
+
[neeto-commons-frontend](https://github.com/orgs/bigbinary/projects/53/views/3?filterQuery=repo%3A%22bigbinary%2Fneeto-commons-frontend%22),
|
83
|
+
[eslint-plugin-neeto](https://github.com/orgs/bigbinary/projects/53/views/3?filterQuery=repo%3A%22bigbinary%2Feslint-plugin-neeto%22),
|
84
|
+
[neeto-message-templates-nano](https://github.com/orgs/bigbinary/projects/53/views/3?filterQuery=repo%3A%22bigbinary%2Fneeto-message-templates-nano%22),
|
85
|
+
[neeto-ui](https://github.com/orgs/bigbinary/projects/53/views/3?filterQuery=repo%3A%22bigbinary%2Fneeto-ui%22),
|
86
|
+
[neeto-molecules](https://github.com/orgs/bigbinary/projects/53/views/3?filterQuery=repo%3A%22bigbinary%2Fneeto-molecules%22),
|
87
|
+
[neeto-changelog-widget](https://github.com/orgs/bigbinary/projects/53/views/3?filterQuery=repo%3A%22bigbinary%2Fneeto-changelog-widget%22),
|
88
|
+
|
89
|
+
- [Praveen's Board](https://github.com/orgs/bigbinary/projects/65/views/1)
|
90
|
+
|
91
|
+
- [Varun's Board](https://github.com/orgs/bigbinary/projects/73/views/1)
|
92
|
+
|
93
|
+
## Products checklist
|
11
94
|
|
12
95
|
- [ ] neeto-auth-web
|
96
|
+
- [ ] neeto-form-web
|
97
|
+
- [ ] neeto-cal-web
|
13
98
|
- [ ] neeto-chat-web
|
14
99
|
- [ ] neeto-desk-web
|
15
100
|
- [ ] neeto-kb-web
|
101
|
+
- [ ] neeto-replay-web
|
16
102
|
- [ ] neeto-invoice-web
|
17
|
-
- [ ] neeto-form-web
|
18
|
-
- [ ] neeto-cal-web
|
19
103
|
- [ ] neeto-planner-web
|
20
104
|
- [ ] neeto-course-web
|
21
105
|
- [ ] neeto-runner-web
|
22
|
-
- [ ] neeto-social-web
|
23
106
|
- [ ] neeto-wireframe-web
|
24
107
|
- [ ] neeto-changelog-web
|
25
108
|
- [ ] neeto-quiz-web
|
26
109
|
- [ ] neeto-site-web
|
27
110
|
- [ ] neeto-crm-web
|
28
|
-
- [ ] neeto-replay-web
|
29
111
|
- [ ] neeto-invisible-web
|
30
112
|
- [ ] neeto-testify-web
|
31
113
|
- [ ] neeto-deploy-web
|
32
|
-
- [ ] neeto-bugtrap-web
|
33
|
-
- [ ] neeto-sign-web
|
34
114
|
- [ ] neeto-monitor-web
|
35
115
|
- [ ] neeto-ci-web
|
36
116
|
- [ ] neeto-git-web
|
117
|
+
- [ ] neeto-central-web
|
118
|
+
- [ ] neeto-record-web
|
119
|
+
- [ ] neeto-chatify-web
|
120
|
+
- [ ] neeto-tower-web
|
121
|
+
- [ ] neeto-trail-web
|
data/data/github-labels.json
CHANGED
@@ -99,6 +99,51 @@
|
|
99
99
|
"description": "Cypress tests have caught the bug.",
|
100
100
|
"color": "FEF2C0"
|
101
101
|
},
|
102
|
+
{
|
103
|
+
"name": "playwright-completed",
|
104
|
+
"description": "Playwright tests have finished running.",
|
105
|
+
"color": "c2d6d6"
|
106
|
+
},
|
107
|
+
{
|
108
|
+
"name": "playwright-flaky-test",
|
109
|
+
"description": "Fix Playwright flaky tests.",
|
110
|
+
"color": "c2d6d6"
|
111
|
+
},
|
112
|
+
{
|
113
|
+
"name": "playwright-happy-path-completed",
|
114
|
+
"description": "Playwright happy path tests have finished running.",
|
115
|
+
"color": "c2d6d6"
|
116
|
+
},
|
117
|
+
{
|
118
|
+
"name": "playwright-happy-path-run",
|
119
|
+
"description": "Run the Playwright tests with the tag happy-path.",
|
120
|
+
"color": "c2d6d6"
|
121
|
+
},
|
122
|
+
{
|
123
|
+
"name": "playwright-happy-path-triggered",
|
124
|
+
"description": "Playwright happy path tests have been triggered.",
|
125
|
+
"color": "c2d6d6"
|
126
|
+
},
|
127
|
+
{
|
128
|
+
"name": "playwright-needed",
|
129
|
+
"description": "Playwright tests need to be written.",
|
130
|
+
"color": "c2d6d6"
|
131
|
+
},
|
132
|
+
{
|
133
|
+
"name": "playwright-run",
|
134
|
+
"description": "Run the Playwright tests.",
|
135
|
+
"color": "c2d6d6"
|
136
|
+
},
|
137
|
+
{
|
138
|
+
"name": "playwright-triggered",
|
139
|
+
"description": "Playwright tests have been triggered.",
|
140
|
+
"color": "c2d6d6"
|
141
|
+
},
|
142
|
+
{
|
143
|
+
"name": "caught-by-playwright",
|
144
|
+
"description": "Playwright tests have caught the bug.",
|
145
|
+
"color": "c2d6d6"
|
146
|
+
},
|
102
147
|
{
|
103
148
|
"name": "documentation",
|
104
149
|
"description": "Improvements or additions to documentation.",
|
data/lib/neetob/cli/base.rb
CHANGED
@@ -108,7 +108,8 @@ module Neetob
|
|
108
108
|
NeetoCompliance::NeetoRepos::electron_apps +
|
109
109
|
NeetoCompliance::NeetoRepos::executables +
|
110
110
|
NeetoCompliance::NeetoRepos::mobile_apps +
|
111
|
-
NeetoCompliance::NeetoRepos::other_repos
|
111
|
+
NeetoCompliance::NeetoRepos::other_repos +
|
112
|
+
NeetoCompliance::NeetoRepos::nanos_mono_repos
|
112
113
|
end
|
113
114
|
|
114
115
|
def find_all_matching_gems(gems = ["*"])
|
@@ -21,7 +21,7 @@ module Neetob
|
|
21
21
|
begin
|
22
22
|
ui.info("\nWorking on repo #{repo}")
|
23
23
|
clone_repo_in_tmp_dir(repo)
|
24
|
-
bundle_install(repo)
|
24
|
+
bundle_install!(repo)
|
25
25
|
report = run_brakeman(repo)
|
26
26
|
ui.success("Successfully executed brakeman for #{repo}")
|
27
27
|
warnings = report.split("\n\n== Warnings ==\n\n").last&.split("\n\n")
|
@@ -19,8 +19,8 @@ module Neetob
|
|
19
19
|
|
20
20
|
private
|
21
21
|
|
22
|
-
def bundle_install(repo, local_repo)
|
23
|
-
|
22
|
+
def bundle_install!(repo, local_repo)
|
23
|
+
execute_command!("#{cd_to_repo(repo, local_repo)} && bundle install")
|
24
24
|
end
|
25
25
|
|
26
26
|
def delete_and_create_temp_neetob_dir
|
@@ -32,17 +32,27 @@ module Neetob
|
|
32
32
|
repo.split("/").last
|
33
33
|
end
|
34
34
|
|
35
|
-
def shallow_clone_repo_in_tmp_dir(repo)
|
36
|
-
|
35
|
+
def shallow_clone_repo_in_tmp_dir!(repo)
|
36
|
+
execute_command!(
|
37
|
+
"git clone --quiet --depth 1 git@github.com:#{repo}.git /tmp/neetob/#{repo_name_without_org_suffix(repo)}"
|
38
|
+
)
|
37
39
|
end
|
38
40
|
|
39
41
|
def clone_repo_in_tmp_dir(repo)
|
40
42
|
`git clone --quiet git@github.com:#{repo}.git /tmp/neetob/#{repo_name_without_org_suffix(repo)}`
|
41
43
|
end
|
42
44
|
|
43
|
-
def add_commmit_and_push_changes(repo, local_repo = false)
|
44
|
-
|
45
|
-
|
45
|
+
def add_commmit_and_push_changes!(repo, local_repo = false)
|
46
|
+
create_commit!(repo, local_repo)
|
47
|
+
push_changes!(repo, local_repo)
|
48
|
+
end
|
49
|
+
|
50
|
+
def create_commit!(repo, local_repo)
|
51
|
+
execute_command!("#{cd_to_repo(repo, local_repo)} && git add . && git commit -m \"#{pr_title}\"")
|
52
|
+
end
|
53
|
+
|
54
|
+
def push_changes!(repo, local_repo)
|
55
|
+
execute_command!("#{cd_to_repo(repo, local_repo)} && git push -u origin #{branch_name} --force")
|
46
56
|
end
|
47
57
|
|
48
58
|
def delete_local_feature_branch(repo, local_repo = false)
|
@@ -94,6 +104,11 @@ module Neetob
|
|
94
104
|
def warn_about_local_repos
|
95
105
|
ui.say("The above mentioned command will be using the local repos. Local changes will be lost!\n")
|
96
106
|
end
|
107
|
+
|
108
|
+
def execute_command!(command)
|
109
|
+
`#{command}`
|
110
|
+
raise Neetob::CommandExecutionError.new(command, $?.exitstatus) unless $?.success?
|
111
|
+
end
|
97
112
|
end
|
98
113
|
end
|
99
114
|
end
|
@@ -37,11 +37,15 @@ module Neetob
|
|
37
37
|
end
|
38
38
|
stash_local_changes(repo, local)
|
39
39
|
end
|
40
|
-
|
40
|
+
|
41
|
+
shallow_clone_repo_in_tmp_dir!(repo) if !local
|
42
|
+
|
41
43
|
check_and_delete_remote_branch(repo, local)
|
42
|
-
bundle_install(repo, local)
|
44
|
+
bundle_install!(repo, local)
|
45
|
+
|
43
46
|
fix_neeto_audit(repo, local)
|
44
|
-
ui.info(add_commmit_and_push_changes(repo, local))
|
47
|
+
ui.info(add_commmit_and_push_changes!(repo, local))
|
48
|
+
|
45
49
|
delete_local_feature_branch(repo, local)
|
46
50
|
pull_request = client.create_pull_request(repo, "main", BRANCH_NAME, PR_TITLE)
|
47
51
|
ui.success("PR created in \"#{repo}\" project successfully.")
|
@@ -41,11 +41,11 @@ module Neetob
|
|
41
41
|
end
|
42
42
|
stash_local_changes(repo, local)
|
43
43
|
end
|
44
|
-
shallow_clone_repo_in_tmp_dir(repo) if !local
|
44
|
+
shallow_clone_repo_in_tmp_dir!(repo) if !local
|
45
45
|
check_and_delete_remote_branch(repo, local)
|
46
46
|
update_script_file_permissions
|
47
47
|
execute_script(repo, local)
|
48
|
-
ui.info(add_commmit_and_push_changes(repo, local))
|
48
|
+
ui.info(add_commmit_and_push_changes!(repo, local))
|
49
49
|
delete_local_feature_branch(repo, local)
|
50
50
|
pull_request = client.create_pull_request(repo, "main", branch_name, pr_title, pr_description)
|
51
51
|
ui.success("PR created in \"#{repo}\" project successfully.")
|
@@ -32,7 +32,7 @@ module Neetob
|
|
32
32
|
find_and_replace_keyword(repo)
|
33
33
|
ui.say("No changes were made to #{repo}, check if keyword exists.") and next if !are_changes_made?(repo)
|
34
34
|
|
35
|
-
ui.info(add_commmit_and_push_changes(repo))
|
35
|
+
ui.info(add_commmit_and_push_changes!(repo))
|
36
36
|
delete_local_feature_branch(repo)
|
37
37
|
pull_request = client.create_pull_request(repo, "main", branch_name, pr_title)
|
38
38
|
ui.success("Successfully replaced \"#{key_to_search}\" with \"#{replacement_term}\" in #{repo}")
|
@@ -20,19 +20,19 @@ module Neetob
|
|
20
20
|
|
21
21
|
desc "list", "List all the users of the Heroku apps"
|
22
22
|
def list
|
23
|
-
List.new(options[:apps], options[:sandbox]).
|
23
|
+
List.new(options[:apps], options[:sandbox]).process
|
24
24
|
end
|
25
25
|
|
26
26
|
desc "add", "Add new users to the Heroku apps"
|
27
27
|
option :users, type: :array, required: true, desc: "Users' emails that need to be added to Heroku apps"
|
28
28
|
def add
|
29
|
-
Add.new(options[:apps], options[:users], options[:sandbox]).
|
29
|
+
Add.new(options[:apps], options[:users], options[:sandbox]).process
|
30
30
|
end
|
31
31
|
|
32
32
|
desc "remove", "Remove the users from the Heroku apps"
|
33
33
|
option :users, type: :array, required: true, desc: "Users' emails that need to be removed from the Heroku apps"
|
34
34
|
def remove
|
35
|
-
Remove.new(options[:apps], options[:users], options[:sandbox]).
|
35
|
+
Remove.new(options[:apps], options[:users], options[:sandbox]).process
|
36
36
|
end
|
37
37
|
end
|
38
38
|
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../base"
|
4
|
+
|
5
|
+
module Neetob
|
6
|
+
class CLI
|
7
|
+
module Heroku
|
8
|
+
class Base < CLI::Base
|
9
|
+
NEETO_DEPLOY_DOCS = "https://github.com/bigbinary/neetob/#working-with-neetodeploy"
|
10
|
+
|
11
|
+
def initialize
|
12
|
+
super()
|
13
|
+
|
14
|
+
@staging_apps = []
|
15
|
+
end
|
16
|
+
|
17
|
+
def process(*args)
|
18
|
+
run(*args)
|
19
|
+
|
20
|
+
show_matching_staging_apps if @staging_apps.present?
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def find_all_matching_apps_or_repos(*args)
|
26
|
+
apps_list = super(*args)
|
27
|
+
|
28
|
+
@staging_apps, production_apps = apps_list.partition { |app| app.include?("-web-staging") }
|
29
|
+
|
30
|
+
production_apps
|
31
|
+
end
|
32
|
+
|
33
|
+
def show_matching_staging_apps
|
34
|
+
ui.info(
|
35
|
+
"\n\nWe have migrated all the staging apps to neetoDeploy. \
|
36
|
+
\nGiven apps param matches the following app(s) which no longer exist in Heroku:\n\n")
|
37
|
+
|
38
|
+
@staging_apps.map do |app|
|
39
|
+
ui.info(" - #{app}")
|
40
|
+
end
|
41
|
+
|
42
|
+
ui.info("\nPlease find the corresponding command for neetodeploy: #{NEETO_DEPLOY_DOCS}")
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -14,7 +14,7 @@ module Neetob
|
|
14
14
|
option :rails, type: :boolean, aliases: "-r", default: false, desc: "Use this flag to run the given command in the Rails console"
|
15
15
|
option :apps, type: :array, aliases: "-a", required: true, desc: "Heroku app names. Can be matched using the '*' wildcard. Example: \"neeto*\" \"neeto-cal-web-staging\""
|
16
16
|
def execute
|
17
|
-
Execute.new(options[:apps], options[:command], options[:rails], options[:sandbox]).
|
17
|
+
Execute.new(options[:apps], options[:command], options[:rails], options[:sandbox]).process
|
18
18
|
end
|
19
19
|
|
20
20
|
desc "config_vars", "Interact with the config(env) variables on Heroku apps"
|
@@ -1,12 +1,12 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require_relative "
|
3
|
+
require_relative "../base"
|
4
4
|
|
5
5
|
module Neetob
|
6
6
|
class CLI
|
7
7
|
module Heroku
|
8
8
|
module ConfigVars
|
9
|
-
class Base < CLI::Base
|
9
|
+
class Base < CLI::Heroku::Base
|
10
10
|
attr_accessor :client
|
11
11
|
|
12
12
|
def initialize
|
@@ -18,14 +18,14 @@ module Neetob
|
|
18
18
|
option :keys, type: :array, desc: "Array of config vars that needs to be listed."
|
19
19
|
option :path, type: :string, desc: "The JSON file path which has config vars that needs to be listed"
|
20
20
|
def list
|
21
|
-
List.new(options[:apps], options[:keys], options[:path], options[:sandbox]).
|
21
|
+
List.new(options[:apps], options[:keys], options[:path], options[:sandbox]).process
|
22
22
|
end
|
23
23
|
|
24
24
|
desc "audit", "Verify whether config vars set in Heroku apps matches against the conditions specified in JSON file."
|
25
25
|
option :apps, type: :array, aliases: :a, required: true, desc: "Heroku app names. Can be matched using the '*' wildcard. Example: \"neeto*\" \"neeto-cal-web-staging\""
|
26
26
|
option :path, type: :string, desc: "The JSON file path from which config vars will be compared"
|
27
27
|
def audit
|
28
|
-
Audit.new(options[:apps], options[:path], options[:sandbox]).
|
28
|
+
Audit.new(options[:apps], options[:path], options[:sandbox]).process
|
29
29
|
end
|
30
30
|
|
31
31
|
desc "upsert", "Update and insert the config vars in Heroku apps"
|
@@ -33,14 +33,14 @@ module Neetob
|
|
33
33
|
option :path, type: :string, aliases: :p, desc: "The JSON file path from which config vars will be upserted"
|
34
34
|
option :path_with_project_keys, type: :string, desc: "The JSON file path with the project names as the key containing required config vars for each project."
|
35
35
|
def upsert
|
36
|
-
Upsert.new(options[:apps], options[:path], options[:path_with_project_keys], options[:sandbox]).
|
36
|
+
Upsert.new(options[:apps], options[:path], options[:path_with_project_keys], options[:sandbox]).process
|
37
37
|
end
|
38
38
|
|
39
39
|
desc "remove", "Remove the config vars from Heroku apps"
|
40
40
|
option :apps, type: :array, aliases: :a, required: true, desc: "Heroku app names. Can be matched using the '*' wildcard. Example: \"neeto*\" \"neeto-cal-web-staging\""
|
41
41
|
option :keys, type: :array, required: true, desc: "Array of config vars to be removed."
|
42
42
|
def remove
|
43
|
-
Remove.new(options[:apps], options[:keys], options[:sandbox]).
|
43
|
+
Remove.new(options[:apps], options[:keys], options[:sandbox]).process
|
44
44
|
end
|
45
45
|
end
|
46
46
|
end
|
data/lib/neetob/version.rb
CHANGED
data/lib/neetob.rb
CHANGED
@@ -6,5 +6,10 @@ require_relative "neetob/exception_handler"
|
|
6
6
|
|
7
7
|
module Neetob
|
8
8
|
class Error < StandardError; end
|
9
|
-
|
9
|
+
|
10
|
+
class CommandExecutionError < Neetob::Error
|
11
|
+
def initialize(command, status_code)
|
12
|
+
super("Failed to execute: #{command} \nProcess terminated with status code: #{status_code}")
|
13
|
+
end
|
14
|
+
end
|
10
15
|
end
|
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.4.
|
4
|
+
version: 0.4.19
|
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-12-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -187,6 +187,7 @@ files:
|
|
187
187
|
- lib/neetob/cli/heroku/access/commands.rb
|
188
188
|
- lib/neetob/cli/heroku/access/list.rb
|
189
189
|
- lib/neetob/cli/heroku/access/remove.rb
|
190
|
+
- lib/neetob/cli/heroku/base.rb
|
190
191
|
- lib/neetob/cli/heroku/commands.rb
|
191
192
|
- lib/neetob/cli/heroku/config_vars/audit.rb
|
192
193
|
- lib/neetob/cli/heroku/config_vars/base.rb
|