neetob 0.5.69 → 0.5.92

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.

Potentially problematic release.


This version of neetob might be problematic. Click here for more details.

Files changed (94) hide show
  1. checksums.yaml +4 -4
  2. data/.env +2 -1
  3. data/.neetoci/default.yml +1 -1
  4. data/.ruby-version +1 -1
  5. data/Gemfile.lock +47 -22
  6. data/README.md +65 -50
  7. data/bookmarks.md +113 -113
  8. data/data/github-labels.json +80 -45
  9. data/data/repo-team-leads.json +82 -0
  10. data/docs/development.md +1 -1
  11. data/docs/testing.md +1 -1
  12. data/exe/neetob +1 -1
  13. data/lib/neetob/cli/base.rb +37 -7
  14. data/lib/neetob/cli/cloudflare/automatic_https_rewrites.rb +34 -0
  15. data/lib/neetob/cli/cloudflare/base.rb +3 -3
  16. data/lib/neetob/cli/cloudflare/commands.rb +7 -0
  17. data/lib/neetob/cli/fetchorupdate_repos/execute.rb +10 -4
  18. data/lib/neetob/cli/github/active_record_doctor.rb +1 -1
  19. data/lib/neetob/cli/github/brakeman.rb +1 -1
  20. data/lib/neetob/cli/github/bundle_audit.rb +1 -1
  21. data/lib/neetob/cli/github/gems/release.rb +1 -1
  22. data/lib/neetob/cli/github/issues/create_product_sub_issues.rb +1 -1
  23. data/lib/neetob/cli/github/issues/helpers.rb +17 -4
  24. data/lib/neetob/cli/github/make_pr/base.rb +2 -2
  25. data/lib/neetob/cli/github/protect_branch.rb +1 -1
  26. data/lib/neetob/cli/github/repositories/pull_requests.rb +19 -0
  27. data/lib/neetob/cli/github/repositories/team_leads.rb +34 -0
  28. data/lib/neetob/cli/github/unused_assets_audit.rb +99 -23
  29. data/lib/neetob/cli/github/yarn_audit.rb +1 -1
  30. data/lib/neetob/cli/heroku/base.rb +1 -1
  31. data/lib/neetob/cli/monthly_audit/commands.rb +2 -1
  32. data/lib/neetob/cli/monthly_audit/github_issue_creation.rb +80 -18
  33. data/lib/neetob/cli/monthly_audit/instances_and_addons/cloudflare/always_use_https_is_enabled.rb +1 -1
  34. data/lib/neetob/cli/monthly_audit/instances_and_addons/cloudflare/{bot_protection_enabled.rb → automatic_https_rewrites_is_enabled.rb} +11 -9
  35. data/lib/neetob/cli/monthly_audit/instances_and_addons/cloudflare/cdn_dns_entry_has_proxy_disabled.rb +62 -0
  36. data/lib/neetob/cli/monthly_audit/instances_and_addons/cloudflare/main.rb +7 -4
  37. data/lib/neetob/cli/monthly_audit/instances_and_addons/cloudflare/minimum_tls_version_is_one_point_two.rb +1 -1
  38. data/lib/neetob/cli/monthly_audit/instances_and_addons/cloudflare/spf_records_are_valid.rb +1 -1
  39. data/lib/neetob/cli/monthly_audit/instances_and_addons/cloudflare/{dns_entry_has_proxy_status.rb → wildcard_dns_entry_has_proxy_enabled.rb} +2 -2
  40. data/lib/neetob/cli/monthly_audit/instances_and_addons/cronitor/setup_correctly_for_landing_pages.rb +3 -2
  41. data/lib/neetob/cli/monthly_audit/instances_and_addons/honeybadger/setup_correctly_for_apps.rb +28 -29
  42. data/lib/neetob/cli/monthly_audit/instances_and_addons/main.rb +9 -4
  43. data/lib/neetob/cli/monthly_audit/instances_and_addons/neeto_deploy_or_heroku/cloudfront_cdn_enabled.rb +0 -17
  44. data/lib/neetob/cli/monthly_audit/instances_and_addons/neeto_deploy_or_heroku/essential_environment_variables_set.rb +0 -15
  45. data/lib/neetob/cli/monthly_audit/instances_and_addons/neeto_deploy_or_heroku/main.rb +0 -3
  46. data/lib/neetob/cli/monthly_audit/instances_and_addons/neeto_deploy_or_heroku/scheduled_exports_enabled.rb +2 -4
  47. data/lib/neetob/cli/monthly_audit/instances_and_addons/neeto_deploy_or_heroku/ssl_certificates_over_thirty_days_from_expiry.rb +67 -34
  48. data/lib/neetob/cli/monthly_audit/instances_and_addons/neeto_status/constants.rb +16 -0
  49. data/lib/neetob/cli/monthly_audit/instances_and_addons/neeto_status/main.rb +23 -0
  50. data/lib/neetob/cli/monthly_audit/instances_and_addons/neeto_status/up_and_has_neetocal_text.rb +98 -0
  51. data/lib/neetob/cli/monthly_audit/misc/main.rb +1 -1
  52. data/lib/neetob/cli/monthly_audit/misc/sparkpost_sub_account_used_for_all_apps.rb +24 -18
  53. data/lib/neetob/cli/monthly_audit/perform.rb +7 -2
  54. data/lib/neetob/cli/monthly_audit/security/code/active_record_doctor.rb +2 -2
  55. data/lib/neetob/cli/monthly_audit/security/code/brakeman.rb +7 -4
  56. data/lib/neetob/cli/monthly_audit/security/code/bundle_audit.rb +173 -12
  57. data/lib/neetob/cli/monthly_audit/security/code/fasterer.rb +2 -2
  58. data/lib/neetob/cli/monthly_audit/security/code/yarn_audit.rb +374 -16
  59. data/lib/neetob/cli/monthly_audit/security/github/dependabot_prs_merged.rb +20 -5
  60. data/lib/neetob/cli/monthly_audit/security/github/dependabot_turned_on.rb +25 -21
  61. data/lib/neetob/cli/neeto_deploy/autoscaling_config.rb +1 -1
  62. data/lib/neetob/cli/neeto_deploy/certificates.rb +1 -1
  63. data/lib/neetob/cli/neeto_deploy/commands.rb +7 -0
  64. data/lib/neetob/cli/neeto_deploy/config_vars/list.rb +1 -1
  65. data/lib/neetob/cli/neeto_deploy/config_vars/remove.rb +1 -1
  66. data/lib/neetob/cli/neeto_deploy/config_vars/upsert.rb +1 -1
  67. data/lib/neetob/cli/neeto_deploy/scheduled_exports.rb +1 -1
  68. data/lib/neetob/cli/neeto_deploy/unique_email_domains.rb +165 -0
  69. data/lib/neetob/cli/sre/base.rb +13 -13
  70. data/lib/neetob/cli/sre/check_essential_env.rb +10 -4
  71. data/lib/neetob/cli/sre/checklist.rb +2 -2
  72. data/lib/neetob/cli/users/audit.rb +1 -1
  73. data/lib/neetob/cli/users/commits.rb +1 -1
  74. data/lib/neetob/cli.rb +6 -0
  75. data/lib/neetob/exception_handler.rb +1 -1
  76. data/lib/neetob/version.rb +1 -1
  77. data/neetob.gemspec +5 -4
  78. data/package.json +30 -0
  79. data/playwright.config.ts +39 -0
  80. data/scripts/config/.env.local +17 -0
  81. data/scripts/constants/auditData.ts +402 -0
  82. data/scripts/constants/routes.ts +30 -0
  83. data/scripts/constants/selectors.ts +4 -0
  84. data/scripts/constants/table.ts +30 -0
  85. data/scripts/constants/texts.ts +46 -0
  86. data/scripts/constants/userAgents.ts +14 -0
  87. data/scripts/utils/markdown.ts +23 -0
  88. data/scripts/workflows/dependabot.ts +104 -0
  89. data/scripts/workflows/honeybadger.ts +169 -0
  90. data/scripts/workflows/sparkpost.ts +204 -0
  91. data/tsconfig.json +35 -0
  92. data/yarn.lock +2216 -0
  93. metadata +47 -11
  94. data/lib/neetob/cli/monthly_audit/instances_and_addons/neeto_deploy_or_heroku/auto_scaling_enabled.rb +0 -67
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1fe5407c19ee902b9471fcd4c0774823a93e43a84dbd6ca26d017a4f0fe300dc
4
- data.tar.gz: 2c0f79f96f0bfe02b6c4bc4c2c755381556aef67f046282850f8854f5d0e1cc3
3
+ metadata.gz: 272effa1363abebcc226f9aef2998f1f98c184a3653ff3f3e82d18cb3c899e0c
4
+ data.tar.gz: 15550b5d184601bfb80ca53eeadd8991ddd77347d32921d88a3ce6df7151975a
5
5
  SHA512:
6
- metadata.gz: b9e1fe5ca8b58144913a7635fc3376b6197f0851659b002cc5403b7c3dbb4d2ee3ee40e624193c81081f43138f23370c174a23dc00c32abef17a783f622283cb
7
- data.tar.gz: 4c98377780c60fa3873155d025353bdddbb96a50329c78c797047c1f97f452ad33368bc52a292284efbb23926855a54dd8a6899ad53569451f3ce8e44bbc0e90
6
+ metadata.gz: 87c0d98afdb1f42f48db39ebb9f68290b14d9601e727d35d63abce8fb4ba73ad1a0605ef8defefc30012979ba9d0e2307cb8be2e532df3dd6f2a11fc910f1e54
7
+ data.tar.gz: 20e1ea805c64c305f9b33dd61fa369f6afb3ab146cd91d185b1753667b84846de3d199b096606f42e27493566a0c95e319e288bed283346dd5b228e07d1ebc02
data/.env CHANGED
@@ -2,6 +2,7 @@ AUTH_PARAMS='{"provider": "github","client_id": "Ov23lio2YRvQdc3SOdHN","grant_ty
2
2
  CLOUDFLARE_API_KEY='Bearer SPJSRAtx5kIIFzeBNb9X2G0PBZWF-pDhRr1gr77A'
3
3
  CRONITOR_ONE_API_KEY='00e1d2ad9d104967af53d42a52b76a1f'
4
4
  CRONITOR_THREE_API_KEY='989733e0eb87407b83ecef6e31768f28'
5
+ NEETO_TOWER_AUTH_TOKEN = "3196ce62de10f78da223e95760dd6c03523cd78204b4d8dc8bb119faf8847adceb70aadce1289ffd8e6232afb3a764c60a75feb024ab937de989322f4e64a335"
5
6
 
6
7
  NEETOENGAGEHELP__NEETOKB_API_KEY="Yrg68NBakBkbQHqc56hdpZBHYHxvFTo8DWKWpGFgDHj4edi3"
7
8
  NEETOCOURSEHELP__NEETOKB_API_KEY="Sq18czzmZZVEqvKwq2CqqtPAmPLuaPEUe162aTtedYmtNH3z"
@@ -625,4 +626,4 @@ NEETOCODEHELP__NEETODEPLOY_API_KEY="cK2bd9QejDdggzXKqWrnAR6LLS8PCT21cL3wPhWJq5K9
625
626
  NEETOINVOICEHELP__NEETODEPLOY_API_KEY="XhuYQf9YbttZBiyZT4cu9pE7EyRV3agJQw5vqrWTpaC3E1LH"
626
627
  NEETOAUTHHELP__NEETODEPLOY_API_KEY="sBySKUznp1d9v9vhcd5kzgJqMHPwLGwbGRWueKFMpkB65Sbn"
627
628
  NEETOCOURSEHELP__NEETODEPLOY_API_KEY="3tDtxzjxycrsYndV2td5EY8PnsbaPr9zXRn85XQXyECyYuf5"
628
- NEETOPLAYDASHHELP__NEETODEPLOY_API_KEY="jJgqPJ3xSqa2SnHDbUieCnMwtTNohmDrEYEw6ctULta7STMo"
629
+ NEETOPLAYDASHHELP__NEETODEPLOY_API_KEY="jJgqPJ3xSqa2SnHDbUieCnMwtTNohmDrEYEw6ctULta7STMo"
data/.neetoci/default.yml CHANGED
@@ -5,7 +5,7 @@ plan: standard-2
5
5
  global_job_config:
6
6
  setup:
7
7
  - checkout
8
- - neetoci-version ruby 3.3.5
8
+ - neetoci-version ruby 3.3.10
9
9
  - bundle config path 'vendor/bundle'
10
10
  - cache restore
11
11
  - bundle install --jobs 1
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 3.3.5
1
+ 3.3.10
data/Gemfile.lock CHANGED
@@ -1,11 +1,12 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- neetob (0.5.69)
4
+ neetob (0.5.92)
5
5
  actionview
6
6
  activesupport
7
7
  brakeman (~> 5.0)
8
8
  chronic
9
+ csv
9
10
  dotenv (~> 2.8.1)
10
11
  launchy (~> 2.5.0)
11
12
  neeto-compliance
@@ -13,7 +14,7 @@ PATH
13
14
  octokit (~> 4.0)
14
15
  pry
15
16
  terminal-table (~> 3.0.2)
16
- thor (~> 1.3.0)
17
+ thor (~> 1.5.0)
17
18
 
18
19
  GEM
19
20
  remote: https://O6Ts9-SVDaUZpHMRs2CpJp22RwbETDE@gems.neeto.com/
@@ -128,12 +129,30 @@ GEM
128
129
  minitest (>= 5.1)
129
130
  mutex_m
130
131
  tzinfo (~> 2.0)
131
- addressable (2.8.7)
132
- public_suffix (>= 2.0.2, < 7.0)
132
+ addressable (2.8.8)
133
+ public_suffix (>= 2.0.2, < 8.0)
133
134
  ansi (1.5.0)
134
135
  ast (2.4.2)
135
- base64 (0.2.0)
136
- bigdecimal (3.1.8)
136
+ aws-eventstream (1.4.0)
137
+ aws-partitions (1.1209.0)
138
+ aws-sdk-cloudwatchlogs (1.138.0)
139
+ aws-sdk-core (~> 3, >= 3.241.4)
140
+ aws-sigv4 (~> 1.5)
141
+ aws-sdk-cognitoidentity (1.85.0)
142
+ aws-sdk-core (~> 3, >= 3.241.4)
143
+ aws-sigv4 (~> 1.5)
144
+ aws-sdk-core (3.241.4)
145
+ aws-eventstream (~> 1, >= 1.3.0)
146
+ aws-partitions (~> 1, >= 1.992.0)
147
+ aws-sigv4 (~> 1.9)
148
+ base64
149
+ bigdecimal
150
+ jmespath (~> 1, >= 1.6.1)
151
+ logger
152
+ aws-sigv4 (1.12.1)
153
+ aws-eventstream (~> 1, >= 1.0.2)
154
+ base64 (0.3.0)
155
+ bigdecimal (4.0.1)
137
156
  brakeman (5.4.1)
138
157
  builder (3.3.0)
139
158
  bullet (8.0.0)
@@ -154,6 +173,7 @@ GEM
154
173
  unicode (>= 0.4.4.5)
155
174
  css_parser (1.21.0)
156
175
  addressable
176
+ csv (3.3.5)
157
177
  database_cleaner (2.1.0)
158
178
  database_cleaner-active_record (>= 2, < 3)
159
179
  database_cleaner-active_record (2.2.0)
@@ -203,12 +223,13 @@ GEM
203
223
  irb (1.14.2)
204
224
  rdoc (>= 4.0.0)
205
225
  reline (>= 0.4.2)
226
+ jmespath (1.6.2)
206
227
  json (2.6.3)
207
228
  jwt (2.9.3)
208
229
  base64
209
230
  launchy (2.5.2)
210
231
  addressable (~> 2.8)
211
- logger (1.6.3)
232
+ logger (1.7.0)
212
233
  loofah (2.23.1)
213
234
  crass (~> 1.0.2)
214
235
  nokogiri (>= 1.12.0)
@@ -220,7 +241,7 @@ GEM
220
241
  marcel (1.0.4)
221
242
  method_source (1.1.0)
222
243
  mini_mime (1.1.5)
223
- mini_portile2 (2.8.8)
244
+ mini_portile2 (2.8.9)
224
245
  minitest (5.25.4)
225
246
  minitest-reporters (1.5.0)
226
247
  ansi
@@ -230,22 +251,25 @@ GEM
230
251
  mixpanel-ruby (2.3.0)
231
252
  mocha (2.7.1)
232
253
  ruby2_keywords (>= 0.0.5)
233
- multi_xml (0.7.1)
234
- bigdecimal (~> 3.1)
254
+ multi_xml (0.8.1)
255
+ bigdecimal (>= 3.1, < 5)
235
256
  multipart-post (2.4.1)
236
257
  mutex_m (0.3.0)
237
- neetodeploy (1.1.13)
258
+ neetodeploy (1.1.24)
259
+ aws-sdk-cloudwatchlogs
260
+ aws-sdk-cognitoidentity
238
261
  colorize
239
262
  dotenv (~> 2.8.1)
240
263
  httparty (~> 0.21.0)
241
264
  launchy (~> 2.5.0)
265
+ rexml
242
266
  terminal-table (~> 3.0.2)
243
- thor (~> 1.3.0)
267
+ thor (~> 1.5.0)
244
268
  tty-spinner
245
269
  websocket-eventmachine-client
246
270
  net-http (0.6.0)
247
271
  uri
248
- net-imap (0.5.6)
272
+ net-imap (0.5.7)
249
273
  date
250
274
  net-protocol
251
275
  net-pop (0.1.2)
@@ -255,12 +279,12 @@ GEM
255
279
  net-smtp (0.5.0)
256
280
  net-protocol
257
281
  nio4r (2.7.4)
258
- nokogiri (1.18.3)
282
+ nokogiri (1.18.9)
259
283
  mini_portile2 (~> 2.8.2)
260
284
  racc (~> 1.4)
261
- nokogiri (1.18.3-x86_64-darwin)
285
+ nokogiri (1.18.9-x86_64-darwin)
262
286
  racc (~> 1.4)
263
- nokogiri (1.18.3-x86_64-linux-gnu)
287
+ nokogiri (1.18.9-x86_64-linux-gnu)
264
288
  racc (~> 1.4)
265
289
  oauth2 (2.0.9)
266
290
  faraday (>= 0.17.3, < 3.0)
@@ -307,12 +331,12 @@ GEM
307
331
  psych (5.2.1)
308
332
  date
309
333
  stringio
310
- public_suffix (6.0.1)
334
+ public_suffix (7.0.2)
311
335
  pundit (2.4.0)
312
336
  activesupport (>= 3.0.0)
313
337
  raabro (1.4.0)
314
338
  racc (1.8.1)
315
- rack (3.1.12)
339
+ rack (3.1.18)
316
340
  rack-attack (6.7.0)
317
341
  rack (>= 1.0, < 4)
318
342
  rack-cors (2.0.2)
@@ -323,7 +347,8 @@ GEM
323
347
  base64 (>= 0.1.0)
324
348
  logger (>= 1.6.0)
325
349
  rack (>= 3.0.0, < 4)
326
- rack-session (2.0.0)
350
+ rack-session (2.1.1)
351
+ base64 (>= 0.1.0)
327
352
  rack (>= 3.0.0)
328
353
  rack-test (2.1.0)
329
354
  rack (>= 1.3)
@@ -377,7 +402,7 @@ GEM
377
402
  io-console (~> 0.5)
378
403
  request_store (1.7.0)
379
404
  rack (>= 1.4)
380
- rexml (3.4.0)
405
+ rexml (3.4.4)
381
406
  rinku (2.0.6)
382
407
  rubocop (1.39.0)
383
408
  json (~> 2.3)
@@ -435,7 +460,7 @@ GEM
435
460
  stringio (3.1.2)
436
461
  terminal-table (3.0.2)
437
462
  unicode-display_width (>= 1.1.1, < 3)
438
- thor (1.3.2)
463
+ thor (1.5.0)
439
464
  tilt (2.4.0)
440
465
  timeout (0.4.3)
441
466
  tty-cursor (0.7.1)
@@ -449,7 +474,7 @@ GEM
449
474
  unicode (0.4.4.5)
450
475
  unicode-display_width (2.6.0)
451
476
  uniform_notifier (1.16.0)
452
- uri (1.0.3)
477
+ uri (1.0.4)
453
478
  version_gem (1.1.4)
454
479
  webmock (3.24.0)
455
480
  addressable (>= 2.8.0)
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # neetob
2
2
 
3
- The `neetob` gem gives a different set of commands for interacting with Github repos, Heroku instances, neetoDeploy instances and other tools to manage the workflow of neeto products.
3
+ The `neetob` gem gives a different set of commands for interacting with GitHub repos, Heroku instances, neetoDeploy instances and other tools to manage the workflow of neeto products.
4
4
 
5
5
  ## Table of Contents
6
6
 
@@ -8,7 +8,8 @@ The `neetob` gem gives a different set of commands for interacting with Github r
8
8
  1. [Installing neetob for use](#installing-neetob-for-use)
9
9
  2. [Installing neetob for development](docs/development.md)
10
10
  2. [Source of truth](#source-of-truth)
11
- 3. [Working with GitHub](#working-with-github)
11
+ 3. [Make Repos Uptodate](#make-repos-uptodate)
12
+ 4. [Working with GitHub](#working-with-github)
12
13
  1. [Issues](#issues)
13
14
  2. [Labels](#labels)
14
15
  3. [Search](#search)
@@ -17,30 +18,30 @@ The `neetob` gem gives a different set of commands for interacting with Github r
17
18
  6. [Make PR](#make-pr)
18
19
  7. [Gems](#gems)
19
20
  8. [Login](#login)
20
- 4. [Working with Heroku](#working-with-heroku)
21
+ 5. [Working with Heroku](#working-with-heroku)
21
22
  1. [Config Vars](#config-vars)
22
23
  2. [Access](#access)
23
24
  3. [Execute](#execute)
24
- 5. [Working with neetoDeploy](#working-with-neetodeploy)
25
+ 6. [Working with neetoDeploy](#working-with-neetodeploy)
25
26
  1. [Config Vars](#config-vars)
26
27
  2. [Autoscaling](#autoscaling)
27
- 6. [Working with Cloudflare](#working-with-cloudflare)
28
+ 3. [Unique email domains](#unique-email-domains)
29
+ 7. [Working with Cloudflare](#working-with-cloudflare)
28
30
  1. [SSL Mode](#ssl-mode)
29
31
  2. [Minimum TLS Version](#minimum-tls-version)
30
32
  3. [Always Use HTTPS](#always-use-https)
31
33
  4. [Verify SPF](#verify-spf)
32
34
  5. [Bot Protection Mode](#bot-protection-mode)
33
35
  6. [DNS Proxy Status](#dns-proxy-status)
34
- 7. [Working with SRE helpers](#working-with-sre-helpers)
36
+ 8. [Working with SRE helpers](#working-with-sre-helpers)
35
37
  1. [Checking essential environment variables](#checking-essential-environment-variables)
36
- 8. [Working with Users](#working-with-users)
38
+ 9. [Working with Users](#working-with-users)
37
39
  1. [Audit](#audit)
38
40
  2. [Commits](#commits)
39
- 9. [Make Repos Uptodate](#make-repos-uptodate)
40
41
  10. [Working with neeto Repos](#working-with-neeto-repos)
41
- 1. [Audit](#audit-1)
42
+ 1. [Audit](#audit-1)
42
43
  11. [Working with local Repos](#working-with-local-repos)
43
- 1. [ls](#ls)
44
+ 1. [ls](#ls)
44
45
  12. [Working with workspace permissions](#working-with-workspace-permissions)
45
46
  1. [Add user to all apps of a specific help workspace](#add-user-to-all-apps-of-a-specific-help-workspace)
46
47
  2. [Add user to all neeto help workspaces for a specific app](#add-user-to-all-neeto-help-workspaces-for-a-specific-app)
@@ -62,7 +63,7 @@ Use the `help` keyword to access a list of all the available commands and option
62
63
  neetob help
63
64
 
64
65
  Commands:
65
- neetob github # Interact with any resource in Github
66
+ neetob github # Interact with any resource in GitHub
66
67
  neetob help [COMMAND] # Describe available commands or one specific command
67
68
  neetob heroku # Interact with any resource in Heroku
68
69
  neetob users # Interact with the contributors of neeto apps
@@ -86,7 +87,27 @@ The commands within `neetob` should be used with caution, as improper usage may
86
87
 
87
88
  ## Source of truth
88
89
 
89
- This [list of repos](https://github.com/bigbinary/neeto-compliance/blob/main/data/neeto_repos.json) is used as the "source of truth".
90
+ This [list of repos](https://github.com/neetozone/neeto-compliance/blob/main/data/neeto_repos.json) is used as the "source of truth".
91
+
92
+ ## Make Repos Uptodate
93
+
94
+ The `make_repos_uptodate` command updates all neeto repos.
95
+
96
+ ```sh
97
+ neetob make_repos_uptodate
98
+
99
+ # Update all neeto repos by passing the value `all` to`--repos` option
100
+ neetob make_repos_uptodate --repos "all"
101
+
102
+ ```
103
+
104
+ Executing the above mentioned command will check and clone all the missing neeto repos in the current working directory and will update all of them to the latest version. After the execution of command the directories will look something like this:
105
+
106
+ ```
107
+ neeto-chat-web
108
+ neeto-desk-web
109
+ neeto-kb-web
110
+ ```
90
111
 
91
112
  ## Passing list of heroku apps as option
92
113
 
@@ -126,7 +147,7 @@ neetob github issues list --count --state open --assignee none --repos "neeto-*-
126
147
  neetob github issues list --count --label bug --state open --assignee none \
127
148
  --repos "neeto-*-staging"
128
149
 
129
- # Creates an issue in Github repos
150
+ # Creates an issue in multiple GitHub repos in one shot
130
151
  # You will be prompted to enter issue title, description etc.
131
152
  neetob github issues create --repos "neeto-*-web"
132
153
 
@@ -139,13 +160,13 @@ neetob github issues create --repos "nanos"
139
160
 
140
161
  ### Labels
141
162
 
142
- The `labels` command provides an interface for interacting with Github labels.
163
+ The `labels` command provides an interface for interacting with GitHub labels.
143
164
 
144
165
  ```sh
145
- # Lists the details of all the labels in the Github repo
166
+ # Lists the details of all the labels in the GitHub repo
146
167
  neetob github labels list --repos "neeto-*-staging"
147
168
 
148
- # Provides the details for a specific label in the Github repo
169
+ # Provides the details for a specific label in the GitHub repo
149
170
  neetob github labels show --name priority --repos "neeto-*-staging"
150
171
 
151
172
  # Changes the name of the label
@@ -163,11 +184,11 @@ neetob github labels upsert --path ~/Desktop/labels.json --repos "neeto-*-stagin
163
184
  neetob github labels upsert --name UI --color 8250df --description \
164
185
  "UI work needed" --repos "all"
165
186
 
166
- # Deletes the given labels from the Github repos
187
+ # Deletes the given labels from the GitHub repos
167
188
  neetob github labels delete --labels "High Priority" "Priority 1" "bug" \
168
189
  --repos "neeto-*-staging"
169
190
 
170
- # Deletes all the labels from the Github repos
191
+ # Deletes all the labels from the GitHub repos
171
192
  neetob github labels delete_all --repos "neeto-*-staging"
172
193
  ```
173
194
 
@@ -205,6 +226,8 @@ We can pass the `--replace` option to replace all found instances of the keyword
205
226
  ### Brakeman
206
227
 
207
228
  Run [brakeman](https://brakemanscanner.org/) on neeto repos & create issues wherever any security vulnerabilities are found.
229
+ Again this command will create GitHub issues if security issues
230
+ are found.
208
231
 
209
232
  ```sh
210
233
  neetob github brakeman --repos "neeto-*-web"
@@ -240,18 +263,18 @@ neetob github protect_branch --branch main --path ~/Desktop/branch-protection-ru
240
263
 
241
264
  We can also pass the value `all` to the option `--repos` with the above mentioned command so that the
242
265
  branch protection rules can be updated for
243
- all [neeto repos](https://github.com/bigbinary/neeto-compliance/blob/main/data/neeto_repos.json).
266
+ all [neeto repos](https://github.com/neetozone/neeto-compliance/blob/main/data/neeto_repos.json).
244
267
 
245
268
  ```sh
246
269
  neetob github protect_branch --branch main --path ~/Desktop/branch-protection-rules.json \
247
270
  --repos "all"
248
271
  ```
249
272
 
250
- **Note:** Unfortunately, utilizing the Github API, we are unable to update the `Require deployments to succeed before merging` rule, as it is currently not defined as a parameter within the API. For further information on available options to update different branch protection rules, kindly refer to the official Github [documentation](https://docs.github.com/en/rest/branches/branch-protection#update-branch-protection).
273
+ **Note:** Unfortunately, utilizing the GitHub API, we are unable to update the `Require deployments to succeed before merging` rule, as it is currently not defined as a parameter within the API. For further information on available options to update different branch protection rules, kindly refer to the official GitHub [documentation](https://docs.github.com/en/rest/branches/branch-protection#update-branch-protection).
251
274
 
252
275
  ### Make PR
253
276
 
254
- The `make-pr` command creates pull requests across Github repos.
277
+ The `make-pr` command creates pull requests across GitHub repos.
255
278
 
256
279
  ```sh
257
280
  # The `compliance-fix` command runs `bundle install` and
@@ -290,7 +313,7 @@ neetob github gems release --nanos neeto-monitor-ruby neeto-bugtrap-ruby
290
313
 
291
314
  ### Login
292
315
 
293
- Authenticate through your browser and update your Github access token by utilizing the `login` command.
316
+ Authenticate through your browser and update your GitHub access token by utilizing the `login` command.
294
317
 
295
318
  ```sh
296
319
  neetob github login
@@ -417,7 +440,7 @@ neetob heroku execute -c "Sidekiq::Cron::Job.destroy \"server_side_worker\"" --a
417
440
  "neeto-*-staging" --rails
418
441
  ```
419
442
 
420
- ## Working with neetoDeploy
443
+ ## Working with NeetoDeploy
421
444
 
422
445
  Utilize the `help` command to list all the available subcommands under the `NeetoDeploy` module for interacting with the neetoDeploy resources.
423
446
 
@@ -497,6 +520,16 @@ This command will print whether or not autoscaling is enabled for all the proces
497
520
  {"release"=>false, "web"=>true, "worker"=>true}
498
521
  ```
499
522
 
523
+ ### Unique email domains
524
+
525
+ Fetch the list of unique email domains for an app deployed on neetoDeploy. This inspects recently active users (last ~6 months) using app-specific activity and prints unique domains.
526
+
527
+ ```sh
528
+ neetob neetodeploy unique_email_domains -a neeto-kb-web-production
529
+ ```
530
+
531
+ Note: You must be logged in to neetoDeploy and have access to the app. If you see an access error, run `neetodeploy login` and try again.
532
+
500
533
  ## Working with Cloudflare
501
534
 
502
535
  The `cloudflare` command interacts with resources in Cloudflare. For all the following commands you need to pass `CLOUDFLARE_API_KEY` as an environment variable.
@@ -635,26 +668,6 @@ neetob users commits --author udai1931 --duration 6.months --apps neeto-kb-web
635
668
  neetob users commits --author udai1931 --duration 6.months --apps "all"
636
669
  ```
637
670
 
638
- ## Make Repos Uptodate
639
-
640
- The `make_repos_uptodate` command updates all neeto repos.
641
-
642
- ```sh
643
- neetob make_repos_uptodate
644
-
645
- # Update all neeto repos by passing the value `all` to`--repos` option
646
- neetob make_repos_uptodate --repos "all"
647
-
648
- ```
649
-
650
- Executing the above mentioned command will check and clone all the missing neeto repos in the current working directory and will update all of them to the latest version. After the execution of command the directories will look something like this:
651
-
652
- ```
653
- neeto-chat-web
654
- neeto-desk-web
655
- neeto-kb-web
656
- ```
657
-
658
671
  ## Working with neeto Repos
659
672
 
660
673
  The `code` command interacts with the remote neeto repos.
@@ -689,18 +702,20 @@ neetob local ls --dir app/controllers --apps "neeto-*-web"
689
702
 
690
703
  ## Working with workspace permissions
691
704
 
692
- ### Add user to all apps of a specific help workspace
705
+ ### Add user to all neeto products of a specific help workspace
693
706
 
694
- The `add_member_to_all_apps` command adds a user to all apps of a specific help workspace.
707
+ The `add_member_to_all_apps` command adds a user to all neeto products of a specific help workspace.
695
708
 
696
709
  ```
697
- neetob workspace_permission add_member_to_all_apps --workspace=neetocoursehelp --email=oliver@example.com --role=Admin
710
+ neetob workspace_permission add_member_to_all_apps --workspace=neetocoursehelp \
711
+ --email=oliver@example.com --role=Admin
698
712
  ```
699
713
 
700
- ### Add user to all neeto help workspaces for a specific app
701
-
702
- The `add_member_to_all_workspaces` command adds a user to all neeto help workspaces for a specific app
714
+ ### Add user to all neeto help products for a given subdomain
703
715
 
716
+ For example the below command will add user to `neetocalhelp.neetokb.com`, `neetocalhelp.neetocal.com`,
717
+ `neetocalhelp.neetodesk.com` etc.
704
718
  ```
705
- neetob workspace_permission add_member_to_all_workspaces --app=neetocal --email=oliver@example.com --role="Admin"
719
+ neetob workspace_permission add_member_to_all_workspaces --app=neetocal \
720
+ --email=oliver@example.com --role=Admin
706
721
  ```