Class: Ocak::LocalMergeManager
- Inherits:
-
Object
- Object
- Ocak::LocalMergeManager
- Defined in:
- lib/ocak/local_merge_manager.rb
Instance Method Summary collapse
- #create_pr_only(issue_number, _worktree) ⇒ Object
-
#initialize(config:, logger:, issues:, **_opts) ⇒ LocalMergeManager
constructor
A new instance of LocalMergeManager.
- #merge(issue_number, worktree) ⇒ Object
Constructor Details
#initialize(config:, logger:, issues:, **_opts) ⇒ LocalMergeManager
Returns a new instance of LocalMergeManager.
9 10 11 12 13 |
# File 'lib/ocak/local_merge_manager.rb', line 9 def initialize(config:, logger:, issues:, **_opts) @config = config @logger = logger @issues = issues end |
Instance Method Details
#create_pr_only(issue_number, _worktree) ⇒ Object
40 41 42 43 |
# File 'lib/ocak/local_merge_manager.rb', line 40 def create_pr_only(issue_number, _worktree) @logger.warn("manual_review is not supported in fully local mode for issue ##{issue_number}") nil end |
#merge(issue_number, worktree) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/ocak/local_merge_manager.rb', line 15 def merge(issue_number, worktree) @logger.info("Starting local merge for issue ##{issue_number}") commit_uncommitted_changes(issue_number, worktree) unless rebase_onto_main(worktree) @logger.error("Rebase failed for issue ##{issue_number}") return false end unless verify_tests(worktree) @logger.error("Tests failed after rebase for issue ##{issue_number}") return false end unless merge_to_main(worktree) @logger.error("Merge to main failed for issue ##{issue_number}") return false end delete_branch(worktree.branch) @logger.info("Issue ##{issue_number} merged to main (local)") true end |