github_workflow 0.2.6 → 0.3.3
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/.ruby-version +1 -1
- data/github_workflow.gemspec +2 -2
- data/lib/github_workflow/cli.rb +56 -50
- data/lib/github_workflow/version.rb +1 -1
- metadata +11 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 00fdf33b252e1cbb7f953e344f211cf8867c15005afddc99898416895b9b64cf
|
4
|
+
data.tar.gz: 53e614ac7ad8b0fcbab00cabfa4bdf02be7a122b1fe3886e98bdf16a63c709e4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b2356ab260a0829fe6010ee141794783eb75062896d93c6ba448af1716c6345605506b756c7ef921ad29779124b079239493b38b95d60ee02f0031d45a7d31be
|
7
|
+
data.tar.gz: 5c086664b84d3fe1013a76028d4308f338636d4c657991c8c2a7c1af37260bc075af46efff76b7b373e7acf094bfd3909ca501d7792df9bc66648c06237b253f
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.7.2
|
data/github_workflow.gemspec
CHANGED
@@ -17,8 +17,8 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
18
|
spec.require_paths = ["lib"]
|
19
19
|
|
20
|
-
spec.add_dependency "thor", "~> 0.
|
21
|
-
spec.add_dependency "faraday", "~> 0.11"
|
20
|
+
spec.add_dependency "thor", "~> 1.0.1"
|
21
|
+
spec.add_dependency "faraday", "~> 0.11", "< 2.0"
|
22
22
|
spec.add_dependency "terminal-table", "~> 1.5"
|
23
23
|
spec.add_dependency "ruby-trello", "~> 2.1"
|
24
24
|
|
data/lib/github_workflow/cli.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require "rubygems"
|
2
|
+
require "pry"
|
2
3
|
require "faraday"
|
3
4
|
require "thor"
|
4
5
|
require "open3"
|
@@ -10,25 +11,59 @@ module GithubWorkflow
|
|
10
11
|
class Cli < Thor
|
11
12
|
PROCEED_TEXT = "Proceed? [y,yes]: ".freeze
|
12
13
|
|
14
|
+
GITHUB_CONFIG = <<~TEXT
|
15
|
+
{
|
16
|
+
"oauth_token": "TOKEN",
|
17
|
+
"user_and_repo": "ORG/REPO",
|
18
|
+
"trello_key": "KEY",
|
19
|
+
"trello_token": "TOKEN",
|
20
|
+
"trello_board_id": "BOARD_ID",
|
21
|
+
"trello_platform_board_id": "BOARD_ID"
|
22
|
+
}
|
23
|
+
TEXT
|
24
|
+
|
13
25
|
include Thor::Actions
|
14
26
|
|
15
|
-
default_task :
|
27
|
+
default_task :trello
|
28
|
+
|
29
|
+
desc "trello", "Create issue from card"
|
30
|
+
method_option :card_number, aliases: "-i", type: :string, required: true
|
31
|
+
def trello
|
32
|
+
ensure_github_config_present
|
33
|
+
init_trello
|
34
|
+
set_trello_card(type: nil)
|
35
|
+
create_issue_from_trello_card
|
36
|
+
stash
|
37
|
+
rebase_main
|
38
|
+
create_branch
|
39
|
+
stash_pop
|
40
|
+
end
|
41
|
+
|
42
|
+
desc "platform", "Create issue from card"
|
43
|
+
method_option :card_number, aliases: "-i", type: :string, required: true
|
44
|
+
def platform
|
45
|
+
ensure_github_config_present
|
46
|
+
init_trello
|
47
|
+
set_trello_card(type: :platform)
|
48
|
+
create_issue_from_trello_card
|
49
|
+
stash
|
50
|
+
rebase_main
|
51
|
+
create_branch
|
52
|
+
stash_pop
|
53
|
+
end
|
16
54
|
|
17
55
|
desc "start", "Create branch named with issue number and issue title"
|
18
56
|
method_option :issue_id, aliases: "-i", type: :string, required: true
|
19
|
-
|
20
57
|
def start
|
21
58
|
ensure_github_config_present
|
22
59
|
stash
|
23
|
-
|
24
|
-
rebase_master
|
60
|
+
rebase_main
|
25
61
|
create_branch
|
26
62
|
stash_pop
|
27
63
|
end
|
28
64
|
|
29
65
|
desc "create_pr", "Convert Issue to Pull Request"
|
30
66
|
method_option :base_branch, aliases: "-b", type: :string
|
31
|
-
|
32
67
|
def create_pr
|
33
68
|
ensure_github_config_present
|
34
69
|
ensure_origin_exists
|
@@ -134,22 +169,6 @@ module GithubWorkflow
|
|
134
169
|
puts formatted_deploy_notes
|
135
170
|
end
|
136
171
|
|
137
|
-
desc "trello", "Create issue from card"
|
138
|
-
method_option :card_number, aliases: "-i", type: :string, required: true
|
139
|
-
|
140
|
-
def trello
|
141
|
-
ensure_github_config_present
|
142
|
-
ensure_trello_config_present
|
143
|
-
init_trello
|
144
|
-
set_trello_card
|
145
|
-
create_issue_from_trello_card
|
146
|
-
stash
|
147
|
-
checkout_master
|
148
|
-
rebase_master
|
149
|
-
create_branch
|
150
|
-
stash_pop
|
151
|
-
end
|
152
|
-
|
153
172
|
no_tasks do
|
154
173
|
def get_issue(id)
|
155
174
|
JSON.parse(github_client.get("repos/#{user_and_repo}/issues/#{id}?access_token=#{oauth_token}").body)
|
@@ -164,7 +183,7 @@ module GithubWorkflow
|
|
164
183
|
end
|
165
184
|
|
166
185
|
def create_branch
|
167
|
-
`git checkout -b #{branch_name_for_issue_number}`
|
186
|
+
`git checkout -b #{branch_name_for_issue_number} main`
|
168
187
|
end
|
169
188
|
|
170
189
|
def ensure_origin_exists
|
@@ -222,9 +241,16 @@ module GithubWorkflow
|
|
222
241
|
JSON.parse(github_client.get("user?access_token=#{oauth_token}").body)["login"]
|
223
242
|
end
|
224
243
|
|
225
|
-
def set_trello_card
|
244
|
+
def set_trello_card(type:)
|
226
245
|
say_info("Fetching trello card")
|
227
|
-
|
246
|
+
|
247
|
+
trello_board =
|
248
|
+
if type
|
249
|
+
Trello::Board.find(project_config["trello_#{type}_board_id"])
|
250
|
+
else
|
251
|
+
Trello::Board.find(project_config["trello_board_id"])
|
252
|
+
end
|
253
|
+
|
228
254
|
@trello_card = trello_board.cards.detect { |card| card.short_id == options["card_number"].to_i }
|
229
255
|
end
|
230
256
|
|
@@ -233,18 +259,8 @@ module GithubWorkflow
|
|
233
259
|
end
|
234
260
|
|
235
261
|
def ensure_github_config_present
|
236
|
-
|
237
|
-
failure(
|
238
|
-
end
|
239
|
-
end
|
240
|
-
|
241
|
-
def ensure_trello_config_present
|
242
|
-
unless project_config &&
|
243
|
-
project_config["trello_board_id"] &&
|
244
|
-
project_config["trello_key"] &&
|
245
|
-
project_config["trello_token"]
|
246
|
-
|
247
|
-
failure('Please add `.github` file containing `{ "trello_key": "KEY", "trello_token": "TOKEN" }`')
|
262
|
+
if project_config.nil? || (JSON.parse(GITHUB_CONFIG).keys - project_config.keys).any?
|
263
|
+
failure("Please add `.github` file containing:\n#{GITHUB_CONFIG}")
|
248
264
|
end
|
249
265
|
end
|
250
266
|
|
@@ -301,7 +317,7 @@ module GithubWorkflow
|
|
301
317
|
JSON.generate(
|
302
318
|
{
|
303
319
|
head: current_branch,
|
304
|
-
base: options[:base_branch] || "
|
320
|
+
base: options[:base_branch] || "main",
|
305
321
|
issue: issue_number_from_branch.to_i
|
306
322
|
}
|
307
323
|
)
|
@@ -340,26 +356,16 @@ module GithubWorkflow
|
|
340
356
|
end
|
341
357
|
end
|
342
358
|
|
343
|
-
def
|
344
|
-
say_info("Fetching changes and rebasing
|
359
|
+
def rebase_main
|
360
|
+
say_info("Fetching changes and rebasing main")
|
345
361
|
|
346
|
-
if success?("git pull --rebase")
|
362
|
+
if success?("git pull origin main:main --rebase")
|
347
363
|
pass("Fetched and rebased")
|
348
364
|
else
|
349
365
|
failure("Failed to fetch or rebase")
|
350
366
|
end
|
351
367
|
end
|
352
368
|
|
353
|
-
def checkout_master
|
354
|
-
say_info("Checking out master")
|
355
|
-
|
356
|
-
if success?("git checkout master")
|
357
|
-
pass("Checked out master")
|
358
|
-
else
|
359
|
-
failure("Failed to checkout master")
|
360
|
-
end
|
361
|
-
end
|
362
|
-
|
363
369
|
def stash
|
364
370
|
`git diff --quiet`
|
365
371
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: github_workflow
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben Liscio
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-04-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 1.0.1
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 1.0.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: faraday
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -31,6 +31,9 @@ dependencies:
|
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0.11'
|
34
|
+
- - "<"
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: '2.0'
|
34
37
|
type: :runtime
|
35
38
|
prerelease: false
|
36
39
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -38,6 +41,9 @@ dependencies:
|
|
38
41
|
- - "~>"
|
39
42
|
- !ruby/object:Gem::Version
|
40
43
|
version: '0.11'
|
44
|
+
- - "<"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '2.0'
|
41
47
|
- !ruby/object:Gem::Dependency
|
42
48
|
name: terminal-table
|
43
49
|
requirement: !ruby/object:Gem::Requirement
|
@@ -144,8 +150,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
144
150
|
- !ruby/object:Gem::Version
|
145
151
|
version: '0'
|
146
152
|
requirements: []
|
147
|
-
|
148
|
-
rubygems_version: 2.7.6
|
153
|
+
rubygems_version: 3.1.4
|
149
154
|
signing_key:
|
150
155
|
specification_version: 4
|
151
156
|
summary: DaisyBill's internal github workflows
|