multi_repo 0.5.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bfc3d56275cbe25e40cecabf411913805b1a83f59395ac0bf721b52130bc1795
4
- data.tar.gz: b10b82500c86b84030488e687e86bfed2283b83de8911092211dae510c8eb22b
3
+ metadata.gz: a65fcbfd465cabf43b5382db582a7516ad14d37ddaccb9dde5de7522879bf28a
4
+ data.tar.gz: eebc43a34102d63149ec5ca32369576814ec9182b402c0e823178b7b4f4c90ea
5
5
  SHA512:
6
- metadata.gz: 551aad598181333a741eeb5ab881642f8e455645acb9eea1870494c3f5ce83d5d7a2e7fcbfaf1fa797e652ac8a4c3513907b211db4c5d37560e229bb62c40064
7
- data.tar.gz: 352099fa70f24b0bd5ecd5493fc7d62dd9ec3c2eb6cdad3b7dde9bef8803b69d1532e303dfe8e37b27a007f9b298a61b515437413e492b21e70eb0bf3eb25c83
6
+ metadata.gz: 51f252cfde3038b0cc51c8c254b45e9153d3e09ad535493b1a978e1dc7a3408d26aabbadf4f81fead3e7c93d2f9995c59f6d4eacd700736081a134e98e70ebdb
7
+ data.tar.gz: 1bdcbab162f091ea83e96db96a81252e866f8aa87a50b9f96ec64239d54b8f9805c676d8c02544ba0f3f031ae11d472d03bf831c00fc8628b16a8292ea2439c3
data/CHANGELOG.md CHANGED
@@ -4,6 +4,17 @@ This project adheres to [Semantic Versioning](http://semver.org/).
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [1.0.0] - 2025-04-24
8
+ ### Added
9
+ - Allow blank overrides on the command line [[#46](https://github.com/ManageIQ/multi_repo/pull/46)]
10
+
11
+ ### Removed
12
+ - **BREAKING**: Remove travis gem dependency and service helper [[#48](https://github.com/ManageIQ/multi_repo/pull/48)]
13
+
14
+ ## [0.6.0] - 2025-02-27
15
+ ### Added
16
+ - [pull_request_blaster_outer] Option to force creation of the pull request without asking [[#40](https://github.com/ManageIQ/multi_repo/pull/40)]
17
+
7
18
  ## [0.5.1] - 2025-02-20
8
19
  ### Added
9
20
  - Add debugging of octokit request/response if DEBUG env var set [[#38](https://github.com/ManageIQ/multi_repo/pull/38)]
@@ -40,8 +51,10 @@ This project adheres to [Semantic Versioning](http://semver.org/).
40
51
  - [show_commit_history] Prevent missing ranges from failing the entire run [[#20](https://github.com/ManageIQ/multi_repo/pull/20)]
41
52
  - [pull_request_merger] Fixing issue passing kwargs on Ruby 3 [[#23](https://github.com/ManageIQ/multi_repo/pull/23)]
42
53
 
43
- [Unreleased]: https://github.com/ManageIQ/more_core_extensions/compare/v0.5.1...HEAD
44
- [0.5.1]: https://github.com/ManageIQ/more_core_extensions/compare/v0.5.0...v0.5.1
45
- [0.5.0]: https://github.com/ManageIQ/more_core_extensions/compare/v0.4.0...v0.5.0
46
- [0.4.0]: https://github.com/ManageIQ/more_core_extensions/compare/v0.3.1...v0.4.0
47
- [0.3.1]: https://github.com/ManageIQ/more_core_extensions/compare/v0.3.0...v0.3.1
54
+ [Unreleased]: https://github.com/ManageIQ/multi_repo/compare/v1.0.0...HEAD
55
+ [1.0.0]: https://github.com/ManageIQ/multi_repo/compare/v0.6.0...v1.0.0
56
+ [0.6.0]: https://github.com/ManageIQ/multi_repo/compare/v0.5.1...v0.6.0
57
+ [0.5.1]: https://github.com/ManageIQ/multi_repo/compare/v0.5.0...v0.5.1
58
+ [0.5.0]: https://github.com/ManageIQ/multi_repo/compare/v0.4.0...v0.5.0
59
+ [0.4.0]: https://github.com/ManageIQ/multi_repo/compare/v0.3.1...v0.4.0
60
+ [0.3.1]: https://github.com/ManageIQ/multi_repo/compare/v0.3.0...v0.3.1
@@ -1,6 +1,7 @@
1
1
  require "multi_repo"
2
2
  require "optimist"
3
3
  require "colorize"
4
+ require "more_core_extensions/core_ext/array/deletes"
4
5
 
5
6
  module MultiRepo
6
7
  module CLI
@@ -15,14 +16,15 @@ module MultiRepo
15
16
  end
16
17
 
17
18
  def self.repos_for(repo: nil, repo_set: nil, dry_run: false, **_)
18
- Optimist.die("options --repo or --repo_set must be specified") unless repo || repo_set
19
+ repo = Array(repo).delete_blanks
20
+ Optimist.die("options --repo or --repo_set must be specified") if repo.blank? && repo_set.blank?
19
21
 
20
- if repo_set
22
+ if repo_set.present?
21
23
  repos = MultiRepo::RepoSet[repo_set]&.deep_dup
22
24
  Optimist.die(:repo_set, "#{repo_set.inspect} was not found in the config") if repos.nil?
23
25
 
24
- if repo
25
- repo_names = Set.new(Array(repo))
26
+ if repo.any?
27
+ repo_names = Set.new(repo)
26
28
  repos.select! { |r| repo_names.include?(r.name) }
27
29
  end
28
30
 
@@ -30,7 +32,7 @@ module MultiRepo
30
32
 
31
33
  repos
32
34
  else
33
- Array(repo).map { |n| MultiRepo::Repo.new(n, dry_run: dry_run) }
35
+ repo.map { |n| MultiRepo::Repo.new(n, dry_run: dry_run) }
34
36
  end
35
37
  end
36
38
 
@@ -53,7 +55,7 @@ module MultiRepo
53
55
  msg = "Individual repo(s) to work with"
54
56
  if subset.include?(:repo_set)
55
57
  sub_opts = {}
56
- msg << "; Overrides --repo-set"
58
+ msg << " from the --repo-set"
57
59
  else
58
60
  sub_opts = {:required => true}
59
61
  end
@@ -2,9 +2,9 @@ require 'pathname'
2
2
 
3
3
  module MultiRepo::Helpers
4
4
  class PullRequestBlasterOuter
5
- attr_reader :repo, :base, :head, :script, :dry_run, :message, :title
5
+ attr_reader :repo, :base, :head, :script, :dry_run, :message, :title, :force
6
6
 
7
- def initialize(repo, base:, head:, script:, dry_run:, message:, title: nil, **)
7
+ def initialize(repo, base:, head:, script:, dry_run:, message:, title: nil, force: false, **)
8
8
  @repo = repo
9
9
  @base = base
10
10
  @head = head
@@ -16,6 +16,7 @@ module MultiRepo::Helpers
16
16
  @dry_run = dry_run
17
17
  @message = message
18
18
  @title = (title || message)[0, 72]
19
+ @force = force
19
20
  end
20
21
 
21
22
  def blast
@@ -43,8 +44,14 @@ module MultiRepo::Helpers
43
44
  puts "** dry-run: Skipping opening pull request".light_black
44
45
  result = "dry run".light_black
45
46
  else
46
- print "Do you want to open a pull request on #{repo.name} with the above changes? (y/N): "
47
- answer = $stdin.gets.chomp
47
+ answer =
48
+ if force
49
+ "Y"
50
+ else
51
+ print "Do you want to open a pull request on #{repo.name} with the above changes? (y/N): "
52
+ $stdin.gets.chomp
53
+ end
54
+
48
55
  if answer.upcase.start_with?("Y")
49
56
  fork_repo unless forked?
50
57
  push_branch
@@ -1,3 +1,3 @@
1
1
  module MultiRepo
2
- VERSION = "0.5.1".freeze
2
+ VERSION = "1.0.0".freeze
3
3
  end
data/lib/multi_repo.rb CHANGED
@@ -1,6 +1,9 @@
1
1
  require 'pathname'
2
2
  require 'pp'
3
3
 
4
+ require 'logger'
5
+ require 'active_support'
6
+
4
7
  require 'multi_repo/version'
5
8
 
6
9
  require 'multi_repo/labels'
@@ -13,7 +16,6 @@ require 'multi_repo/service/docker'
13
16
  require 'multi_repo/service/git'
14
17
  require 'multi_repo/service/github'
15
18
  require 'multi_repo/service/rubygems_stub'
16
- require 'multi_repo/service/travis'
17
19
 
18
20
  require 'multi_repo/helpers/git_mirror'
19
21
  require 'multi_repo/helpers/license'
data/multi_repo.gemspec CHANGED
@@ -25,7 +25,6 @@ Gem::Specification.new do |spec|
25
25
  spec.add_runtime_dependency "activesupport"
26
26
  spec.add_runtime_dependency "colorize"
27
27
  spec.add_runtime_dependency "config"
28
- spec.add_runtime_dependency "json", "~> 2.9.1" # Pin json due to https://github.com/ruby/json/issues/752
29
28
  spec.add_runtime_dependency "licensee"
30
29
  spec.add_runtime_dependency "minigit"
31
30
  spec.add_runtime_dependency "more_core_extensions"
@@ -35,10 +34,9 @@ Gem::Specification.new do |spec|
35
34
  spec.add_runtime_dependency "psych", ">=3"
36
35
  spec.add_runtime_dependency "rbnacl"
37
36
  spec.add_runtime_dependency "rest-client"
38
- spec.add_runtime_dependency "travis"
39
37
 
40
38
  spec.add_development_dependency "bundler"
41
- spec.add_development_dependency "manageiq-style"
39
+ spec.add_development_dependency "manageiq-style", ">= 1.5.4"
42
40
  spec.add_development_dependency "rake"
43
41
  spec.add_development_dependency "rspec", ">= 3.0"
44
42
  spec.add_development_dependency "simplecov", ">= 0.21.2"
@@ -17,6 +17,8 @@ opts = Optimist.options do
17
17
  opt :message, "The commit message for this change.", :type => :string, :required => true
18
18
  opt :title, "The PR title for this change. (default is --message)", :type => :string
19
19
 
20
+ opt :force, "Force creation of the pull request without asking.", :default => false
21
+
20
22
  MultiRepo::CLI.common_options(self)
21
23
  end
22
24
 
@@ -4,6 +4,7 @@ require "bundler/inline"
4
4
  gemfile do
5
5
  source "https://rubygems.org"
6
6
  gem "multi_repo", require: "multi_repo/cli", path: File.expand_path("..", __dir__)
7
+ gem "travis"
7
8
  end
8
9
  require 'travis'
9
10
  require 'travis/pro/auto_login'
@@ -5,6 +5,7 @@ gemfile do
5
5
  source "https://rubygems.org"
6
6
  gem "multi_repo", require: "multi_repo/cli", path: File.expand_path("..", __dir__)
7
7
  gem "action_view"
8
+ gem "travis"
8
9
  end
9
10
 
10
11
  require 'more_core_extensions/core_ext/array/tableize'
metadata CHANGED
@@ -1,13 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: multi_repo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ManageIQ Authors
8
+ autorequire:
8
9
  bindir: exe
9
10
  cert_chain: []
10
- date: 2025-02-20 00:00:00.000000000 Z
11
+ date: 2025-04-24 00:00:00.000000000 Z
11
12
  dependencies:
12
13
  - !ruby/object:Gem::Dependency
13
14
  name: activesupport
@@ -51,20 +52,6 @@ dependencies:
51
52
  - - ">="
52
53
  - !ruby/object:Gem::Version
53
54
  version: '0'
54
- - !ruby/object:Gem::Dependency
55
- name: json
56
- requirement: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - "~>"
59
- - !ruby/object:Gem::Version
60
- version: 2.9.1
61
- type: :runtime
62
- prerelease: false
63
- version_requirements: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - "~>"
66
- - !ruby/object:Gem::Version
67
- version: 2.9.1
68
55
  - !ruby/object:Gem::Dependency
69
56
  name: licensee
70
57
  requirement: !ruby/object:Gem::Requirement
@@ -191,20 +178,6 @@ dependencies:
191
178
  - - ">="
192
179
  - !ruby/object:Gem::Version
193
180
  version: '0'
194
- - !ruby/object:Gem::Dependency
195
- name: travis
196
- requirement: !ruby/object:Gem::Requirement
197
- requirements:
198
- - - ">="
199
- - !ruby/object:Gem::Version
200
- version: '0'
201
- type: :runtime
202
- prerelease: false
203
- version_requirements: !ruby/object:Gem::Requirement
204
- requirements:
205
- - - ">="
206
- - !ruby/object:Gem::Version
207
- version: '0'
208
181
  - !ruby/object:Gem::Dependency
209
182
  name: bundler
210
183
  requirement: !ruby/object:Gem::Requirement
@@ -225,14 +198,14 @@ dependencies:
225
198
  requirements:
226
199
  - - ">="
227
200
  - !ruby/object:Gem::Version
228
- version: '0'
201
+ version: 1.5.4
229
202
  type: :development
230
203
  prerelease: false
231
204
  version_requirements: !ruby/object:Gem::Requirement
232
205
  requirements:
233
206
  - - ">="
234
207
  - !ruby/object:Gem::Version
235
- version: '0'
208
+ version: 1.5.4
236
209
  - !ruby/object:Gem::Dependency
237
210
  name: rake
238
211
  requirement: !ruby/object:Gem::Requirement
@@ -320,7 +293,6 @@ files:
320
293
  - lib/multi_repo/service/git/minigit_capturing_patch.rb
321
294
  - lib/multi_repo/service/github.rb
322
295
  - lib/multi_repo/service/rubygems_stub.rb
323
- - lib/multi_repo/service/travis.rb
324
296
  - lib/multi_repo/version.rb
325
297
  - multi_repo.gemspec
326
298
  - renovate.json
@@ -358,6 +330,7 @@ homepage: http://github.com/ManageIQ/multi_repo
358
330
  licenses:
359
331
  - MIT
360
332
  metadata: {}
333
+ post_install_message:
361
334
  rdoc_options: []
362
335
  require_paths:
363
336
  - lib
@@ -372,7 +345,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
372
345
  - !ruby/object:Gem::Version
373
346
  version: '0'
374
347
  requirements: []
375
- rubygems_version: 3.6.5
348
+ rubygems_version: 3.5.22
349
+ signing_key:
376
350
  specification_version: 4
377
351
  summary: MultiRepo is a library for managing multiple repositiories and running scripts
378
352
  against them.
@@ -1,68 +0,0 @@
1
- require 'yaml'
2
-
3
- module MultiRepo::Service
4
- class Travis
5
- def self.api_token
6
- @api_token ||= ENV["TRAVIS_API_TOKEN"]
7
- end
8
-
9
- def self.api_token=(token)
10
- @api_token = token
11
- end
12
-
13
- def self.client
14
- @client ||= begin
15
- raise "Missing Travis API Token" if travis_api_token.nil?
16
-
17
- require 'travis/client'
18
- ::Travis::Client.new(
19
- :uri => ::Travis::Client::COM_URI,
20
- :access_token => api_token
21
- )
22
- end
23
- end
24
-
25
- def self.badge_name
26
- "Build Status"
27
- end
28
-
29
- def self.badge_details(repo, branch)
30
- {
31
- "description" => badge_name,
32
- "image" => "https://travis-ci.com/#{repo.name}.svg?branch=#{branch}",
33
- "url" => "https://travis-ci.com/#{repo.name}"
34
- }
35
- end
36
-
37
- attr_reader :repo, :dry_run
38
-
39
- def initialize(repo, dry_run: false, **_)
40
- @repo = repo
41
- @dry_run = dry_run
42
- end
43
-
44
- def badge_details
45
- self.class.badge_details(repo, "master")
46
- end
47
-
48
- def enable
49
- if dry_run
50
- puts "** dry-run: travis login --com --github-token $GITHUB_API_TOKEN".light_black
51
- puts "** dry-run: travis enable --com".light_black
52
- else
53
- `travis login --com --github-token $GITHUB_API_TOKEN`
54
- `travis enable --com`
55
- end
56
- end
57
-
58
- def set_env(hash)
59
- hash.each do |key, value|
60
- if dry_run
61
- puts "** dry-run: travis env set #{key} #{value}".light_black
62
- else
63
- `travis env set #{key} #{value}`
64
- end
65
- end
66
- end
67
- end
68
- end