refactor(automerge): fix error handling, populate recent automerge tasks on restart (#39001)

* Refactor "automerge" related code, clarify many details (including "unique queue item", start check by pull head or commit)
* Fix automerge queue handler's error handling, clarify error messages
* Populate recent automerge tasks on restart to restore the previous aborted automerge tasks

Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
This commit is contained in:
Willem Kokke
2026-08-28 14:17:01 -07:00
committed by GitHub
co-authored by wxiaoguang
parent 1652dfe62a
commit 60326ca03d
15 changed files with 246 additions and 176 deletions
+4 -2
View File
@@ -19,10 +19,12 @@ func TestRefName(t *testing.T) {
assert.Equal(t, "release/foo", RefName("refs/tags/release/foo").TagName())
// Test pull names
assert.Equal(t, "1", RefName("refs/pull/1/head").PullName())
pullIndex, ok := RefName("refs/pull/1/head").PullIndex()
assert.True(t, ok)
assert.EqualValues(t, 1, pullIndex)
assert.True(t, RefName("refs/pull/1/head").IsPull())
assert.True(t, RefName("refs/pull/1/merge").IsPull())
assert.Equal(t, "my/pull", RefName("refs/pull/my/pull/head").PullName())
assert.Equal(t, "my/pull", RefName("refs/pull/my/pull/head").ShortName())
// Test for branch names
assert.Equal(t, "main", RefName("refs/for/main").ForBranchName())