neetob 0.1.5 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 641eee79e8d05537132030cc9db2ca8d4a57e60e480552dcb1a904fd00e542f5
4
- data.tar.gz: a4c674222429b42cff84e1eeb7a66212b32da60f4248a36a4dae5b03439cc649
3
+ metadata.gz: db01d1b2016e6c59d67ae056f53722b919ff42d02a90cad6870c2899dff4936f
4
+ data.tar.gz: e7f7f4d09faa15c778012285c6db15cc257b588951b8b2fdd1946b305131dd75
5
5
  SHA512:
6
- metadata.gz: 57951a8d15b4514b7468b7994094c42ff8b0786f6dee034091db26b71d909094c90235855f208a1b1bbc1cc4125add4a53afb6869e82e255baadbe22846220a7
7
- data.tar.gz: e47da7744b3a4d92aa23881673f88d6cd9e1b795d92ddb67d0be5676229b82ea194b43125d0f8904bbf009c054f52884d1e5e43e2ecdff4d06eccea9e6bf227b
6
+ metadata.gz: e004714a7fc30663a27cdd3c1a0268a6b33ad54476724897a40b10425fa36cedcafb62435a4a97bd8701ec594701b159e60717839b6a20126105777375c1cc55
7
+ data.tar.gz: 373e1262f481fa4a0a5126c15c75ff188830723def4273713710e122df18ecf3df8487075733db6af94ab30b62959dcc3e50b43c4694a5199807d13817f124ea
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.2.0](https://www.github.com/bigbinary/neetob/compare/v0.1.5...v0.2.0) (2023-03-01)
4
+
5
+
6
+ ### Features
7
+
8
+ * Added release gems command ([#188](https://www.github.com/bigbinary/neetob/issues/188)) ([0485cb1](https://www.github.com/bigbinary/neetob/commit/0485cb11e4f13d5eb4f6b7439d34725f509c482d))
9
+
3
10
  ### [0.1.5](https://www.github.com/bigbinary/neetob/compare/v0.1.4...v0.1.5) (2023-03-01)
4
11
 
5
12
 
data/Gemfile CHANGED
@@ -28,6 +28,7 @@ end
28
28
 
29
29
  gem "byebug"
30
30
  gem "chronic"
31
+ gem "fury"
31
32
 
32
33
  source "https://O6Ts9-SVDaUZpHMRs2CpJp22RwbETDE@gems.neeto.com" do
33
34
 
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- neetob (0.1.5)
4
+ neetob (0.2.0)
5
5
  dotenv (~> 2.8.1)
6
6
  launchy (~> 2.5.0)
7
7
  octokit (~> 4.0)
@@ -107,6 +107,7 @@ GEM
107
107
  faraday-net_http (3.0.2)
108
108
  faraday-retry (2.0.0)
109
109
  faraday (~> 2.0)
110
+ fury (0.0.1)
110
111
  globalid (1.0.1)
111
112
  activesupport (>= 5.0)
112
113
  hashdiff (1.0.1)
@@ -245,6 +246,7 @@ DEPENDENCIES
245
246
  chronic
246
247
  dotenv (~> 2.8.1)
247
248
  faraday-retry
249
+ fury
248
250
  minitest (~> 5.0)
249
251
  minitest-reporters
250
252
  mocha
@@ -260,4 +262,4 @@ DEPENDENCIES
260
262
  webmock
261
263
 
262
264
  BUNDLED WITH
263
- 2.2.33
265
+ 2.4.7
data/README.md CHANGED
@@ -14,8 +14,9 @@ The `neetob` gem gives different commands for interacting with Github repos, Her
14
14
  3. [Search](#search)
15
15
  4. [Protect Branch](#protect-branch)
16
16
  5. [Make PR](#make-pr)
17
- 6. [Login](#login)
18
- 4. [Working with Heroku](#working-with-heroku)
17
+ 6. [Gems](#gems)
18
+ 7. [Login](#login)
19
+ 5. [Working with Heroku](#working-with-heroku)
19
20
  1. [Config Vars](#config-vars)
20
21
  2. [Access](#access)
21
22
  3. [Execute](#execute)
@@ -260,11 +261,26 @@ The `make-pr` command creates pull requests across Github repos.
260
261
  # `bundle exec neeto-audit -a` inside all repos and create a PR.
261
262
  neetob github make-pr compliance-fix
262
263
 
264
+ # Fix compliance for nanos
265
+ neetob github make-pr compliance-fix --nanos
266
+
263
267
  # The `script` command runs the given script for each product and create a PR
264
268
  neetob github make-pr script --path ~/Desktop/fix-folders.sh --branch "neetob-test" \
265
269
  --title "PR title" --description "PR description"
266
270
  ```
267
271
 
272
+ ### Gems
273
+
274
+ The `gems release` command releases the lastest gem for all neeto nanos.
275
+
276
+ ```sh
277
+ # Releases the latest gem for all nanos
278
+ neetob github gems release
279
+
280
+ # Releases the latest gem for given nanos
281
+ neetob github gems release --nanos neeto-monitor-ruby neeto-bugtrap-ruby
282
+ ```
283
+
268
284
  ### Login
269
285
 
270
286
  Authenticate through your browser and update your Github access token by utilizing the `login` command.
@@ -93,5 +93,10 @@ module Neetob
93
93
  NeetoCompliance::NeetoRepos::mobile_apps +
94
94
  NeetoCompliance::NeetoRepos::other_repos
95
95
  end
96
+
97
+ def find_all_matching_gems(gems = ["*"])
98
+ all_available_gems = NeetoCompliance::NeetoRepos.nanos_backend
99
+ match_apps(gems || ["*"], all_available_gems)
100
+ end
96
101
  end
97
102
  end
@@ -7,6 +7,7 @@ require_relative "search"
7
7
  require_relative "protect_branch"
8
8
  require_relative "login"
9
9
  require_relative "make_pr/commands"
10
+ require_relative "gems/commands"
10
11
 
11
12
  module Neetob
12
13
  class CLI
@@ -21,6 +22,9 @@ module Neetob
21
22
  desc "make-pr", "Create PRs across multiple Github repos"
22
23
  subcommand "make_pr", MakePr::Commands
23
24
 
25
+ desc "gems", "Interact with the neeto gems"
26
+ subcommand "gems", Gems::Commands
27
+
24
28
  desc "search", "Find the lines matching the given keyword in the specified file across all the neeto apps"
25
29
  option :apps, type: :array, aliases: "-a", required: true, desc: "Github app names. Can be matched using the '*' wildcard. Example: \"neeto*\" \"neeto-cal-web\""
26
30
  option :keyword, type: :string, aliases: "-k", desc: "Keyword which needs to be searched", required: true
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "thor"
4
+
5
+ require_relative "release"
6
+ require_relative "../../sub_command_base"
7
+
8
+ module Neetob
9
+ class CLI
10
+ module Github
11
+ module Gems
12
+ class Commands < SubCommandBase
13
+ desc "release", "Release all the neeto nanos"
14
+ option :nanos, type: :array, aliases: "-n", desc: "List of nanos you want to release"
15
+ def release
16
+ Release.new(options[:nanos], options[:sandbox]).run
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "thor"
4
+
5
+ require_relative "../make_pr/base"
6
+
7
+ module Neetob
8
+ class CLI
9
+ module Github
10
+ module Gems
11
+ class Release < MakePr::Base
12
+ attr_accessor :gems, :sandbox
13
+
14
+ def initialize(gems, sandbox = false)
15
+ super()
16
+ @gems = gems
17
+ @sandbox = sandbox
18
+ end
19
+
20
+ def run
21
+ matching_gems = find_all_matching_gems(gems)
22
+ delete_and_create_temp_neetob_dir
23
+ matching_gems.each do |gem|
24
+ ui.info("\nWorking on #{gem}\n")
25
+ begin
26
+ clone_app_in_tmp_dir("bigbinary/#{gem}")
27
+ build_gem(gem)
28
+ release_gem(gem)
29
+ if $?.success?
30
+ ui.success("Gem \"#{gem}\" released successfully")
31
+ end
32
+ rescue StandardError => e
33
+ ExceptionHandler.new(e).process
34
+ end
35
+ end
36
+ `rm -rf /tmp/neetob`
37
+ end
38
+
39
+ private
40
+
41
+ def build_gem(gem)
42
+ ui.info(`#{cd_to_app_in_tmp_dir(gem)} && gem build`)
43
+ end
44
+
45
+ def release_gem(gem)
46
+ ui.info(`#{cd_to_app_in_tmp_dir(gem)} && fury push #{gem}-*.gem --as unnitallman`)
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
@@ -66,6 +66,10 @@ module Neetob
66
66
  def cd_to_app_in_tmp_dir(app)
67
67
  "cd /tmp/neetob/#{app_name_without_org_suffix(app)}"
68
68
  end
69
+
70
+ def add_org_suffix(apps)
71
+ apps.map { |app| "bigbinary/#{app}" }
72
+ end
69
73
  end
70
74
  end
71
75
  end
@@ -11,15 +11,14 @@ module Neetob
11
11
  module Github
12
12
  module MakePr
13
13
  class Commands < SubCommandBase
14
- class_option :apps,
15
- {
16
- type: :array, aliases: "-a", default: ["*"],
17
- desc: "Github app names. Can be matched using the '*' wildcard. Example: \"neeto*\" \"neeto-cal-web\""
18
- }
14
+ class_option :apps, type: :array, aliases: "-a", default: ["*"],
15
+ desc: "Github app names. Can be matched using the '*' wildcard. Example: \"neeto*\" \"neeto-cal-web\""
16
+ class_option :nanos, type: :boolean, aliases: "-n", default: false,
17
+ desc: "Use this flag to make PRs for the neeto gems"
19
18
 
20
19
  desc "compliance-fix", "Create PRs for fixing neeto compliance in all products"
21
20
  def compliance_fix
22
- ComplianceFix.new(options[:apps], options[:sandbox]).run
21
+ ComplianceFix.new(options[:apps], options[:nanos], options[:sandbox]).run
23
22
  end
24
23
 
25
24
  desc "script", "Create PRs after running the given script for each product."
@@ -30,7 +29,7 @@ module Neetob
30
29
  option :description, type: :string, aliases: "-d", desc: "Description of the PR"
31
30
  def script
32
31
  Script.new(
33
- options[:apps], options[:path], options[:title], options[:branch], options[:description],
32
+ options[:apps], options[:path], options[:title], options[:branch], options[:description], options[:nanos],
34
33
  options[:sandbox]).run
35
34
  end
36
35
  end
@@ -9,19 +9,22 @@ module Neetob
9
9
  module Github
10
10
  module MakePr
11
11
  class ComplianceFix < Base
12
- attr_accessor :apps, :sandbox
12
+ attr_accessor :apps, :sandbox, :should_fix_nanos
13
13
 
14
- def initialize(apps, sandbox = false)
14
+ def initialize(apps, should_fix_nanos = false, sandbox = false)
15
15
  super()
16
16
  @apps = apps
17
17
  @sandbox = sandbox
18
+ @should_fix_nanos = should_fix_nanos
18
19
  end
19
20
 
20
21
  def run
21
- matching_apps = find_all_matching_apps(apps, :github, sandbox)
22
+ matching_apps = should_fix_nanos ?
23
+ add_org_suffix(find_all_matching_gems) :
24
+ find_all_matching_apps(apps, :github, sandbox)
22
25
  delete_and_create_temp_neetob_dir
23
26
  matching_apps.each do |app|
24
- ui.info("\n Working on #{app} \n")
27
+ ui.info("\nWorking on #{app}\n")
25
28
  begin
26
29
  clone_app_in_tmp_dir(app)
27
30
  check_and_delete_remote_branch(app)
@@ -9,18 +9,22 @@ module Neetob
9
9
  module Github
10
10
  module MakePr
11
11
  class Script < Base
12
- attr_accessor :apps, :sandbox, :path_to_the_script_file, :pr_description
12
+ attr_accessor :apps, :sandbox, :path_to_the_script_file, :pr_description, :should_fix_nanos
13
13
 
14
- def initialize(apps, path_to_the_script_file, pr_title, branch_name, pr_description, sandbox = false)
14
+ def initialize(apps, path_to_the_script_file, pr_title,
15
+ branch_name, pr_description, should_fix_nanos, sandbox = false)
15
16
  super(pr_title, branch_name)
16
17
  @apps = apps
17
18
  @sandbox = sandbox
18
19
  @path_to_the_script_file = path_to_the_script_file
19
20
  @pr_description = pr_description
21
+ @should_fix_nanos = should_fix_nanos
20
22
  end
21
23
 
22
24
  def run
23
- matching_apps = find_all_matching_apps(apps, :github, sandbox)
25
+ matching_apps = should_fix_nanos ?
26
+ add_org_suffix(find_all_matching_gems) :
27
+ find_all_matching_apps(apps, :github, sandbox)
24
28
  delete_and_create_temp_neetob_dir
25
29
  matching_apps.each do |app|
26
30
  ui.info("\n Working on #{app} \n")
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Neetob
4
- VERSION = "0.1.5"
4
+ VERSION = "0.2.0"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: neetob
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Udai Gupta
@@ -116,6 +116,8 @@ files:
116
116
  - lib/neetob/cli/github/auth.rb
117
117
  - lib/neetob/cli/github/base.rb
118
118
  - lib/neetob/cli/github/commands.rb
119
+ - lib/neetob/cli/github/gems/commands.rb
120
+ - lib/neetob/cli/github/gems/release.rb
119
121
  - lib/neetob/cli/github/issues/commands.rb
120
122
  - lib/neetob/cli/github/issues/create.rb
121
123
  - lib/neetob/cli/github/issues/list.rb