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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c2078d82a92c19e8450d3d034843901c81f77805ed5906bc2b9d8ca4e3d7820d
4
- data.tar.gz: 46a6c2b2c276b0536c5c2104d5bcb2fea0965bbdbca2238e02a4f361d95e0a0f
3
+ metadata.gz: 00fdf33b252e1cbb7f953e344f211cf8867c15005afddc99898416895b9b64cf
4
+ data.tar.gz: 53e614ac7ad8b0fcbab00cabfa4bdf02be7a122b1fe3886e98bdf16a63c709e4
5
5
  SHA512:
6
- metadata.gz: 901559f80f10d7586c22b20df3b305fc4f7d620b4efdea287a21b7a9d9875c754b9a9e43979e2e4d3a5acd15e1332a267a34bf8d68e2e7aab83fc971a32538e0
7
- data.tar.gz: bad7815466c7e482c5e1bb8b3e4a608e0ce18a5ce7fb24537ed81b0e18a1978a9d606d889098582dd39505bdf880dd5c101687cd4ecb47a3cf0efc5c62c8cf19
6
+ metadata.gz: b2356ab260a0829fe6010ee141794783eb75062896d93c6ba448af1716c6345605506b756c7ef921ad29779124b079239493b38b95d60ee02f0031d45a7d31be
7
+ data.tar.gz: 5c086664b84d3fe1013a76028d4308f338636d4c657991c8c2a7c1af37260bc075af46efff76b7b373e7acf094bfd3909ca501d7792df9bc66648c06237b253f
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.5.3
1
+ 2.7.2
@@ -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.19"
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
 
@@ -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 :start
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
- checkout_master
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
- trello_board = Trello::Board.find(project_config["trello_board_id"])
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
- unless project_config && project_config["oauth_token"] && project_config["user_and_repo"]
237
- failure('Please add `.github` file containing `{ "oauth_token": "TOKEN", "user_and_repo": "user/repo" }`')
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] || "master",
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 rebase_master
344
- say_info("Fetching changes and rebasing master")
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
 
@@ -1,3 +1,3 @@
1
1
  module GithubWorkflow
2
- VERSION = "0.2.6"
2
+ VERSION = "0.3.3"
3
3
  end
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.2.6
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: 2020-02-03 00:00:00.000000000 Z
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: '0.19'
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: '0.19'
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
- rubyforge_project:
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