feat: Add audit logging (#38189)

Co-authored-by: bircni <bircni@users.noreply.github.com>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
This commit is contained in:
bircni
2026-09-12 10:15:23 +02:00
committed by GitHub
parent 4d43445532
commit da37b7916b
136 changed files with 3864 additions and 209 deletions
+14 -24
View File
@@ -702,18 +702,7 @@ jobs:
assert.NoError(t, err)
assert.NotEmpty(t, addFileResp)
sha = addFileResp.Commit.SHA
assert.Eventually(t, func() bool {
latestCommitStatuses, err := git_model.GetLatestCommitStatus(t.Context(), repo.ID, sha, db.ListOptionsAll)
assert.NoError(t, err)
if len(latestCommitStatuses) == 0 {
return false
}
if latestCommitStatuses[0].State == commitstatus.CommitStatusPending {
insertFakeStatus(t, repo, sha, latestCommitStatuses[0])
return true
}
return false
}, 1*time.Second, 100*time.Millisecond)
waitCommitStatusAndInsertFakeStatus(t, repo, sha)
// milestoned
milestone := &issues_model.Milestone{
@@ -754,6 +743,18 @@ func checkCommitStatusAndInsertFakeStatus(t *testing.T, repo *repo_model.Reposit
insertFakeStatus(t, repo, sha, latestCommitStatuses[0])
}
// waitCommitStatusAndInsertFakeStatus is the async counterpart of
// checkCommitStatusAndInsertFakeStatus, for events whose run is created off the
// request path (push/review) and may lag behind on a loaded CI runner.
func waitCommitStatusAndInsertFakeStatus(t *testing.T, repo *repo_model.Repository, sha string) {
t.Helper()
require.Eventually(t, func() bool {
latestCommitStatuses, err := git_model.GetLatestCommitStatus(t.Context(), repo.ID, sha, db.ListOptionsAll)
return err == nil && len(latestCommitStatuses) == 1 && latestCommitStatuses[0].State == commitstatus.CommitStatusPending
}, 10*time.Second, 50*time.Millisecond, "no pending commit status for commit %s", sha)
checkCommitStatusAndInsertFakeStatus(t, repo, sha)
}
// insertFakeStatus inserts a success status that lands in the same dedupe
// group as `prev` — the actions runner mixes the workflow file path into
// ContextHash, so we must reuse it (rather than recomputing from Context).
@@ -889,18 +890,7 @@ jobs:
assert.NoError(t, err)
// verify that a commit status was created for the review event
assert.Eventually(t, func() bool {
latestCommitStatuses, err := git_model.GetLatestCommitStatus(t.Context(), repo.ID, sha, db.ListOptionsAll)
assert.NoError(t, err)
if len(latestCommitStatuses) == 0 {
return false
}
if latestCommitStatuses[0].State == commitstatus.CommitStatusPending {
insertFakeStatus(t, repo, sha, latestCommitStatuses[0])
return true
}
return false
}, 1*time.Second, 100*time.Millisecond)
waitCommitStatusAndInsertFakeStatus(t, repo, sha)
})
}