Class: Geet::Services::CreatePr
- Inherits:
-
Object
- Object
- Geet::Services::CreatePr
- Includes:
- Helpers::OsHelper
- Defined in:
- lib/geet/services/create_pr.rb
Instance Method Summary collapse
-
#execute(repository, title, description, label_patterns: nil, milestone_pattern: nil, reviewer_patterns: nil, no_open_pr: nil, output: $stdout) ⇒ Object
options: :label_patterns :reviewer_patterns :no_open_pr.
Methods included from Helpers::OsHelper
Instance Method Details
#execute(repository, title, description, label_patterns: nil, milestone_pattern: nil, reviewer_patterns: nil, no_open_pr: nil, output: $stdout) ⇒ Object
options:
:label_patterns
:reviewer_patterns
:no_open_pr
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/geet/services/create_pr.rb', line 15 def execute(repository, title, description, label_patterns: nil, milestone_pattern: nil, reviewer_patterns: nil, no_open_pr: nil, output: $stdout, **) labels_thread = select_labels(repository, label_patterns, output) if label_patterns milestone_thread = find_milestone(repository, milestone_pattern, output) if milestone_pattern reviewers_thread = select_reviewers(repository, reviewer_patterns, output) if reviewer_patterns selected_labels = labels_thread&.join&.value reviewers = reviewers_thread&.join&.value milestone = milestone_thread&.join&.value pr = create_pr(repository, title, description, output) assign_user_thread = assign_authenticated_user(pr, repository, output) add_labels_thread = add_labels(pr, selected_labels, output) if selected_labels set_milestone_thread = set_milestone(pr, milestone, output) if milestone request_review_thread = request_review(pr, reviewers, output) if reviewers assign_user_thread.join add_labels_thread&.join set_milestone_thread&.join request_review_thread&.join if no_open_pr output.puts "PR address: #{pr.link}" else os_open(pr.link) end pr end |