multi_repo 0.6.0 → 1.1.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 +4 -4
- data/.github/workflows/ci.yaml +1 -1
- data/CHANGELOG.md +24 -5
- data/lib/multi_repo/cli.rb +14 -8
- data/lib/multi_repo/helpers/pull_request_blaster_outer.rb +15 -5
- data/lib/multi_repo/service/git.rb +10 -3
- data/lib/multi_repo/version.rb +1 -1
- data/lib/multi_repo.rb +3 -1
- data/multi_repo.gemspec +2 -4
- data/scripts/pull_request_blaster_outer +1 -0
- data/scripts/restart_travis_builds +1 -0
- data/scripts/show_commit_history +30 -19
- data/scripts/show_travis_status +1 -0
- metadata +7 -39
- data/lib/multi_repo/service/travis.rb +0 -68
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0211dacdb0aaeb7df692cbe637a7ab350e9a5ba8e3408f060caf864bc49f1355
|
4
|
+
data.tar.gz: 33224827cd2be7b34b7892c7eda346e91767c5581f42ef29346d969c201f4aef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c4a3f5db6fa142b395c5a063510656db34d5f4ae8d0667db83bb0e5cf17b6f63d4fd453b16d5601a484fa3d57f3dfead3b6633ca48715fe9cc0d1c9632c975ca
|
7
|
+
data.tar.gz: 646793b26e6a1e952e2f36fa0b88b81dad83b7bd582dbe447847e7327e8f344cc70c3dd463b0d90a3e55153a92c2a0e4e46d188a359ed932f05be926ef30ea62
|
data/.github/workflows/ci.yaml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,22 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
4
4
|
|
5
5
|
## [Unreleased]
|
6
6
|
|
7
|
+
## [1.1.0] - 2025-10-01
|
8
|
+
### Added
|
9
|
+
- [show_commit_history] Add pr-changelog display format [[#49](https://github.com/ManageIQ/multi_repo/pull/49)]
|
10
|
+
- [pull_request_blaster_outer] Prevent git show paging when using --force [[#53](https://github.com/ManageIQ/multi_repo/pull/53)]
|
11
|
+
|
12
|
+
### Changed
|
13
|
+
- Update licensee to at least 9.7.0 [[#54](https://github.com/ManageIQ/multi_repo/pull/54)]
|
14
|
+
- Separate progress bar options from creation of the progress bar [[#55](https://github.com/ManageIQ/multi_repo/pull/55)]
|
15
|
+
|
16
|
+
## [1.0.0] - 2025-04-24
|
17
|
+
### Added
|
18
|
+
- Allow blank overrides on the command line [[#46](https://github.com/ManageIQ/multi_repo/pull/46)]
|
19
|
+
|
20
|
+
### Removed
|
21
|
+
- **BREAKING**: Remove travis gem dependency and service helper [[#48](https://github.com/ManageIQ/multi_repo/pull/48)]
|
22
|
+
|
7
23
|
## [0.6.0] - 2025-02-27
|
8
24
|
### Added
|
9
25
|
- [pull_request_blaster_outer] Option to force creation of the pull request without asking [[#40](https://github.com/ManageIQ/multi_repo/pull/40)]
|
@@ -44,8 +60,11 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
44
60
|
- [show_commit_history] Prevent missing ranges from failing the entire run [[#20](https://github.com/ManageIQ/multi_repo/pull/20)]
|
45
61
|
- [pull_request_merger] Fixing issue passing kwargs on Ruby 3 [[#23](https://github.com/ManageIQ/multi_repo/pull/23)]
|
46
62
|
|
47
|
-
[Unreleased]: https://github.com/ManageIQ/
|
48
|
-
[
|
49
|
-
[0.
|
50
|
-
[0.
|
51
|
-
[0.
|
63
|
+
[Unreleased]: https://github.com/ManageIQ/multi_repo/compare/v1.1.0...HEAD
|
64
|
+
[1.1.0]: https://github.com/ManageIQ/multi_repo/compare/v1.0.0...v1.1.0
|
65
|
+
[1.0.0]: https://github.com/ManageIQ/multi_repo/compare/v0.6.0...v1.0.0
|
66
|
+
[0.6.0]: https://github.com/ManageIQ/multi_repo/compare/v0.5.1...v0.6.0
|
67
|
+
[0.5.1]: https://github.com/ManageIQ/multi_repo/compare/v0.5.0...v0.5.1
|
68
|
+
[0.5.0]: https://github.com/ManageIQ/multi_repo/compare/v0.4.0...v0.5.0
|
69
|
+
[0.4.0]: https://github.com/ManageIQ/multi_repo/compare/v0.3.1...v0.4.0
|
70
|
+
[0.3.1]: https://github.com/ManageIQ/multi_repo/compare/v0.3.0...v0.3.1
|
data/lib/multi_repo/cli.rb
CHANGED
@@ -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
|
-
|
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(
|
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
|
-
|
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 << "
|
58
|
+
msg << " from the --repo-set"
|
57
59
|
else
|
58
60
|
sub_opts = {:required => true}
|
59
61
|
end
|
@@ -82,11 +84,15 @@ module MultiRepo
|
|
82
84
|
|
83
85
|
def self.progress_bar(total = 100)
|
84
86
|
require "progressbar"
|
85
|
-
ProgressBar.create(
|
87
|
+
ProgressBar.create(progress_bar_options(total))
|
88
|
+
end
|
89
|
+
|
90
|
+
def self.progress_bar_options(total = 100)
|
91
|
+
{
|
86
92
|
:format => "%j%% |%B| %E",
|
87
93
|
:length => HEADER_SIZE,
|
88
94
|
:total => total
|
89
|
-
|
95
|
+
}
|
90
96
|
end
|
91
97
|
end
|
92
98
|
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, :force
|
5
|
+
attr_reader :repo, :base, :head, :script, :dry_run, :message, :title, :body, :force
|
6
6
|
|
7
|
-
def initialize(repo, base:, head:, script:, dry_run:, message:, title: nil, force: false, **)
|
7
|
+
def initialize(repo, base:, head:, script:, dry_run:, message:, title: nil, body: 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
|
+
@body = (body || message).gsub("\\n", "\n")
|
19
20
|
@force = force
|
20
21
|
end
|
21
22
|
|
@@ -41,7 +42,12 @@ module MultiRepo::Helpers
|
|
41
42
|
puts
|
42
43
|
|
43
44
|
if dry_run
|
44
|
-
puts "** dry-run: Skipping opening pull request".light_black
|
45
|
+
puts "** dry-run: Skipping opening pull request. The pull request would look like:".light_black
|
46
|
+
puts
|
47
|
+
puts title.light_black
|
48
|
+
puts
|
49
|
+
puts body.light_black
|
50
|
+
|
45
51
|
result = "dry run".light_black
|
46
52
|
else
|
47
53
|
answer =
|
@@ -112,7 +118,11 @@ module MultiRepo::Helpers
|
|
112
118
|
end
|
113
119
|
|
114
120
|
def show_commit
|
115
|
-
|
121
|
+
if force
|
122
|
+
repo.git.raw("--no-pager", "show")
|
123
|
+
else
|
124
|
+
repo.git.client.show
|
125
|
+
end
|
116
126
|
end
|
117
127
|
|
118
128
|
def blast_remote
|
@@ -134,7 +144,7 @@ module MultiRepo::Helpers
|
|
134
144
|
end
|
135
145
|
|
136
146
|
def open_pull_request
|
137
|
-
pr = github.client.create_pull_request(repo.name, base, pr_head, title,
|
147
|
+
pr = github.client.create_pull_request(repo.name, base, pr_head, title, body)
|
138
148
|
pr.html_url
|
139
149
|
rescue => err
|
140
150
|
raise unless err.message.include?("A pull request already exists")
|
@@ -18,18 +18,21 @@ module MultiRepo::Service
|
|
18
18
|
retry
|
19
19
|
end
|
20
20
|
|
21
|
-
def self.
|
21
|
+
def self.raw(*args, quiet: false)
|
22
22
|
require "minigit"
|
23
23
|
require "shellwords"
|
24
24
|
|
25
|
-
args = ["clone", clone_source, path]
|
26
25
|
command = Shellwords.join(["git", *args])
|
27
|
-
command << " &>/dev/null"
|
26
|
+
command << " &>/dev/null" if quiet && !ENV["GIT_DEBUG"]
|
28
27
|
puts "+ #{command}" if ENV["GIT_DEBUG"] # Matches the output of MiniGit
|
29
28
|
|
30
29
|
raise MiniGit::GitError.new(args, $?) unless system(command)
|
31
30
|
end
|
32
31
|
|
32
|
+
def self.clone(clone_source:, path:)
|
33
|
+
raw("clone", clone_source, path, quiet: true)
|
34
|
+
end
|
35
|
+
|
33
36
|
attr_reader :dry_run, :client
|
34
37
|
|
35
38
|
def initialize(path:, clone_source:, dry_run: false)
|
@@ -39,6 +42,10 @@ module MultiRepo::Service
|
|
39
42
|
@client = self.class.client(path: path, clone_source: clone_source)
|
40
43
|
end
|
41
44
|
|
45
|
+
def raw(*args)
|
46
|
+
Dir.chdir(client.git_dir) { self.class.raw(*args) }
|
47
|
+
end
|
48
|
+
|
42
49
|
def fetch(output: false)
|
43
50
|
client = output ? self.client : self.client.capturing
|
44
51
|
|
data/lib/multi_repo/version.rb
CHANGED
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,8 +25,7 @@ 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 "
|
29
|
-
spec.add_runtime_dependency "licensee"
|
28
|
+
spec.add_runtime_dependency "licensee", ">= 9.7.0"
|
30
29
|
spec.add_runtime_dependency "minigit"
|
31
30
|
spec.add_runtime_dependency "more_core_extensions"
|
32
31
|
spec.add_runtime_dependency "octokit", ">= 7.0.0"
|
@@ -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"
|
@@ -16,6 +16,7 @@ opts = Optimist.options do
|
|
16
16
|
opt :script, "The path to the script that will update the desired files.", :type => :string, :required => true
|
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
|
+
opt :body, "The PR body for this change. (default is --message)", :type => :string
|
19
20
|
|
20
21
|
opt :force, "Force creation of the pull request without asking.", :default => false
|
21
22
|
|
data/scripts/show_commit_history
CHANGED
@@ -7,8 +7,9 @@ gemfile do
|
|
7
7
|
end
|
8
8
|
require "active_support/core_ext/object/blank"
|
9
9
|
require "active_support/core_ext/string/inflections"
|
10
|
+
require "more_core_extensions/core_ext/hash/deletes"
|
10
11
|
|
11
|
-
DISPLAY_FORMATS = %w[commit pr-title pr-label]
|
12
|
+
DISPLAY_FORMATS = %w[commit pr-title pr-label pr-changelog]
|
12
13
|
|
13
14
|
opts = Optimist.options do
|
14
15
|
synopsis "Show the git commit log between two refs for all git repos."
|
@@ -33,30 +34,32 @@ repos_with_changes = []
|
|
33
34
|
MultiRepo::CLI.repos_for(**opts).each do |repo|
|
34
35
|
next if opts[:skip].include?(repo.name)
|
35
36
|
|
36
|
-
puts MultiRepo::CLI.header(repo.name)
|
37
|
+
puts MultiRepo::CLI.header(repo.name) unless opts[:display] == "pr-changelog"
|
37
38
|
repo.git.fetch(output: false)
|
38
39
|
|
39
40
|
case opts[:display]
|
40
|
-
when "pr-label", "pr-title"
|
41
|
+
when "pr-label", "pr-title", "pr-changelog"
|
41
42
|
github ||= MultiRepo::Service::Github.client
|
42
|
-
pr_label_display = opts[:display] == "pr-label"
|
43
43
|
|
44
44
|
results = {}
|
45
|
-
if
|
46
|
-
results["bug"] =
|
47
|
-
results["enhancement"] =
|
45
|
+
if %w[pr-label pr-changelog].include?(opts[:display])
|
46
|
+
results["bug"] = Set.new
|
47
|
+
results["enhancement"] = Set.new
|
48
48
|
end
|
49
|
-
results["other"] =
|
49
|
+
results["other"] = Set.new
|
50
50
|
|
51
51
|
log =
|
52
52
|
begin
|
53
53
|
repo.git.client.capturing.log({:oneline => true}, range)
|
54
54
|
rescue MiniGit::GitError
|
55
|
-
|
56
|
-
|
55
|
+
unless opts[:display] == "pr-changelog"
|
56
|
+
puts "ERROR: commit range not found.".light_red
|
57
|
+
puts
|
58
|
+
end
|
57
59
|
next
|
58
60
|
end
|
59
61
|
|
62
|
+
pr_index = {}
|
60
63
|
log.lines.each do |line|
|
61
64
|
next unless (match = line.match(/Merge pull request #(\d+)\b/))
|
62
65
|
|
@@ -66,23 +69,31 @@ MultiRepo::CLI.repos_for(**opts).each do |repo|
|
|
66
69
|
rescue Octokit::NotFound
|
67
70
|
next # PR not found could mean this was a cherry-pick from a different repo, so the PR doesn't exist.
|
68
71
|
end
|
72
|
+
|
73
|
+
pr_index[pr.number] = pr
|
69
74
|
label = pr.labels.detect { |l| results.key?(l.name) }&.name || "other"
|
70
|
-
results[label] << pr
|
75
|
+
results[label] << pr.number
|
71
76
|
end
|
77
|
+
results.delete_blanks
|
72
78
|
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
next if prs.blank?
|
77
|
-
changes_found = true
|
79
|
+
if results.present? && opts[:display] == "pr-changelog"
|
80
|
+
puts "\n## <i class=\"fa-brands fa-github\"></i> [#{repo.name}](https://github.com/#{repo.name}/compare/#{opts[:from]}...#{opts[:to]})"
|
81
|
+
end
|
78
82
|
|
79
|
-
|
80
|
-
|
83
|
+
results.each do |label, pr_numbers|
|
84
|
+
case opts[:display]
|
85
|
+
when "pr-label"
|
86
|
+
puts "\n## #{label.titleize}\n\n"
|
87
|
+
when "pr-changelog"
|
88
|
+
puts "\n### #{label.titleize}\n\n"
|
89
|
+
end
|
90
|
+
pr_numbers.each do |pr_number|
|
91
|
+
pr = pr_index[pr_number]
|
81
92
|
puts "* #{pr.title} [[##{pr.number}]](#{pr.html_url})"
|
82
93
|
end
|
83
94
|
end
|
84
95
|
|
85
|
-
repos_with_changes << repo if
|
96
|
+
repos_with_changes << repo if results.present?
|
86
97
|
when "commit"
|
87
98
|
output =
|
88
99
|
begin
|
data/scripts/show_travis_status
CHANGED
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: multi_repo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ManageIQ Authors
|
8
|
-
autorequire:
|
9
8
|
bindir: exe
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: activesupport
|
@@ -52,34 +51,20 @@ dependencies:
|
|
52
51
|
- - ">="
|
53
52
|
- !ruby/object:Gem::Version
|
54
53
|
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: json
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - "~>"
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: 2.9.1
|
62
|
-
type: :runtime
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - "~>"
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: 2.9.1
|
69
54
|
- !ruby/object:Gem::Dependency
|
70
55
|
name: licensee
|
71
56
|
requirement: !ruby/object:Gem::Requirement
|
72
57
|
requirements:
|
73
58
|
- - ">="
|
74
59
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
60
|
+
version: 9.7.0
|
76
61
|
type: :runtime
|
77
62
|
prerelease: false
|
78
63
|
version_requirements: !ruby/object:Gem::Requirement
|
79
64
|
requirements:
|
80
65
|
- - ">="
|
81
66
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
67
|
+
version: 9.7.0
|
83
68
|
- !ruby/object:Gem::Dependency
|
84
69
|
name: minigit
|
85
70
|
requirement: !ruby/object:Gem::Requirement
|
@@ -192,20 +177,6 @@ dependencies:
|
|
192
177
|
- - ">="
|
193
178
|
- !ruby/object:Gem::Version
|
194
179
|
version: '0'
|
195
|
-
- !ruby/object:Gem::Dependency
|
196
|
-
name: travis
|
197
|
-
requirement: !ruby/object:Gem::Requirement
|
198
|
-
requirements:
|
199
|
-
- - ">="
|
200
|
-
- !ruby/object:Gem::Version
|
201
|
-
version: '0'
|
202
|
-
type: :runtime
|
203
|
-
prerelease: false
|
204
|
-
version_requirements: !ruby/object:Gem::Requirement
|
205
|
-
requirements:
|
206
|
-
- - ">="
|
207
|
-
- !ruby/object:Gem::Version
|
208
|
-
version: '0'
|
209
180
|
- !ruby/object:Gem::Dependency
|
210
181
|
name: bundler
|
211
182
|
requirement: !ruby/object:Gem::Requirement
|
@@ -226,14 +197,14 @@ dependencies:
|
|
226
197
|
requirements:
|
227
198
|
- - ">="
|
228
199
|
- !ruby/object:Gem::Version
|
229
|
-
version:
|
200
|
+
version: 1.5.4
|
230
201
|
type: :development
|
231
202
|
prerelease: false
|
232
203
|
version_requirements: !ruby/object:Gem::Requirement
|
233
204
|
requirements:
|
234
205
|
- - ">="
|
235
206
|
- !ruby/object:Gem::Version
|
236
|
-
version:
|
207
|
+
version: 1.5.4
|
237
208
|
- !ruby/object:Gem::Dependency
|
238
209
|
name: rake
|
239
210
|
requirement: !ruby/object:Gem::Requirement
|
@@ -321,7 +292,6 @@ files:
|
|
321
292
|
- lib/multi_repo/service/git/minigit_capturing_patch.rb
|
322
293
|
- lib/multi_repo/service/github.rb
|
323
294
|
- lib/multi_repo/service/rubygems_stub.rb
|
324
|
-
- lib/multi_repo/service/travis.rb
|
325
295
|
- lib/multi_repo/version.rb
|
326
296
|
- multi_repo.gemspec
|
327
297
|
- renovate.json
|
@@ -359,7 +329,6 @@ homepage: http://github.com/ManageIQ/multi_repo
|
|
359
329
|
licenses:
|
360
330
|
- MIT
|
361
331
|
metadata: {}
|
362
|
-
post_install_message:
|
363
332
|
rdoc_options: []
|
364
333
|
require_paths:
|
365
334
|
- lib
|
@@ -374,8 +343,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
374
343
|
- !ruby/object:Gem::Version
|
375
344
|
version: '0'
|
376
345
|
requirements: []
|
377
|
-
rubygems_version: 3.
|
378
|
-
signing_key:
|
346
|
+
rubygems_version: 3.7.1
|
379
347
|
specification_version: 4
|
380
348
|
summary: MultiRepo is a library for managing multiple repositiories and running scripts
|
381
349
|
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
|