Class: GithubWorkflow::Cli
- Inherits:
-
Thor
- Object
- Thor
- GithubWorkflow::Cli
- Includes:
- Thor::Actions
- Defined in:
- lib/github_workflow/cli.rb
Constant Summary collapse
- PROCEED_TEXT =
"Proceed? [y,yes]: ".freeze
Instance Method Summary collapse
- #cleanup ⇒ Object
- #create_and_start ⇒ Object
- #create_pr ⇒ Object
- #info ⇒ Object
- #open ⇒ Object
- #push_and_pr ⇒ Object
- #start ⇒ Object
- #status ⇒ Object
Instance Method Details
#cleanup ⇒ Object
90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
# File 'lib/github_workflow/cli.rb', line 90 def cleanup say_info("Checking merge status") merged_pr_branches puts "\n" if merged_pr_branches.any? say_info("Are you sure you want to delete the branches with checkmarks?") if yes?(PROCEED_TEXT) pass("Deleting Branches") merged_pr_branches.each do |branch| `git branch -D #{branch}` end else failure("Cleanup aborted") end else failure("No merged branches to delete") end end |
#create_and_start ⇒ Object
84 85 86 87 |
# File 'lib/github_workflow/cli.rb', line 84 def create_and_start ensure_github_config_present create_issue end |
#create_pr ⇒ Object
31 32 33 34 35 |
# File 'lib/github_workflow/cli.rb', line 31 def create_pr ensure_github_config_present ensure_origin_exists convert_issue_to_pr end |
#info ⇒ Object
70 71 72 73 |
# File 'lib/github_workflow/cli.rb', line 70 def info ensure_github_config_present puts get_issue(issue_number_from_branch)["body"] end |
#open ⇒ Object
76 77 78 79 80 |
# File 'lib/github_workflow/cli.rb', line 76 def open ensure_github_config_present response = JSON.parse(github_client.get("repos/#{user_and_repo}/issues/#{issue_number_from_branch}?access_token=#{oauth_token}").body) `/usr/bin/open -a "/Applications/Google Chrome.app" '#{response["html_url"]}'` end |
#push_and_pr ⇒ Object
39 40 41 42 43 |
# File 'lib/github_workflow/cli.rb', line 39 def push_and_pr ensure_github_config_present push_and_set_upstream convert_issue_to_pr end |
#start ⇒ Object
19 20 21 22 23 24 25 26 |
# File 'lib/github_workflow/cli.rb', line 19 def start ensure_github_config_present stash checkout_master rebase_master create_branch stash_pop end |
#status ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/github_workflow/cli.rb', line 46 def status ensure_github_config_present ensure_origin_exists response = JSON.parse(github_client.get("repos/#{user_and_repo}/statuses/#{current_branch}?access_token=#{oauth_token}").body) if response.empty? alert "No statuses yet. Have you pushed your branch?" else table = Terminal::Table.new(style: { width: 80 }) do |table_rows| table_rows << %w(CI Status Description) table_rows << :separator response.map { |status| status["context"] }.uniq.map do |status| response.select { |st| st["context"] == status }.sort_by { |st| st["updated_at"] }.last end.each do |status| table_rows << %w(context state description).map { |key| status[key] } end end puts table end end |