From 6770158229cfccd6a03d4b80fd539c47f44ab5e1 Mon Sep 17 00:00:00 2001 From: Lorenzo Buitizon Date: Fri, 3 Oct 2025 11:32:05 +0800 Subject: [PATCH] Added handle ready_for_review action for draft PR conversion. Signed-off-by: Lorenzo Buitizon --- backend/controllers/github_pull_request.go | 2 +- go.work.sum | 3 ++ libs/ci/github/github.go | 33 ++++++++++++++++++++++ 3 files changed, 37 insertions(+), 1 deletion(-) diff --git a/backend/controllers/github_pull_request.go b/backend/controllers/github_pull_request.go index 5b48c01f5..ce6ad2ba3 100644 --- a/backend/controllers/github_pull_request.go +++ b/backend/controllers/github_pull_request.go @@ -124,7 +124,7 @@ func handlePullRequestEvent(gh utils.GithubClientProvider, payload *github.PullR } } - if !slices.Contains([]string{"closed", "opened", "reopened", "synchronize", "converted_to_draft"}, action) { + if !slices.Contains([]string{"closed", "opened", "reopened", "synchronize", "converted_to_draft", "ready_for_review"}, action) { slog.Info("Ignoring event with action not requiring processing", "action", action, "prNumber", prNumber) return nil } diff --git a/go.work.sum b/go.work.sum index 1e3b7a1a4..c6c4486dc 100644 --- a/go.work.sum +++ b/go.work.sum @@ -947,6 +947,7 @@ github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSV github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f h1:lBNOc5arjvs8E5mO2tbpBpLoyyu8B6e44T7hJy6potg= github.com/cpuguy83/go-md2man v1.0.10 h1:BSKMNlYxDvnunlTymqtgONjNnaRV1sTpcovwwjF22jk= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= +github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v0.0.0-20161028175848-04cdfd42973b/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.0-20210816181553-5444fa50b93d h1:1iy2qD6JEhHKKhUOA9IWs7mjco7lnw2qx8FsRI2wirE= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.0-20210816181553-5444fa50b93d/go.mod h1:tmAIfUFEirG/Y8jhZ9M+h36obRZAk/1fcSpXwAVlfqE= @@ -1100,6 +1101,7 @@ github.com/google/go-pkcs11 v0.3.0/go.mod h1:6eQoGcuNJpa7jnd5pMGdkSaQpNDYvPlXWMc github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec= github.com/google/renameio v0.1.0 h1:GOZbcHa3HfsPKPlmyPyN2KEohoMXOhdMbHrvbpl2QaA= github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/cloud-bigtable-clients-test v0.0.2 h1:S+sCHWAiAc+urcEnvg5JYJUOdlQEm/SEzQ/c/IdAH5M= github.com/googleapis/cloud-bigtable-clients-test v0.0.2/go.mod h1:mk3CrkrouRgtnhID6UZQDK3DrFFa7cYCAJcEmNsHYrY= github.com/googleapis/enterprise-certificate-proxy v0.3.3/go.mod h1:YKe7cfqYXjKGpGvmSg28/fFvhNzinZQm8DGnaburhGA= @@ -1462,6 +1464,7 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.10.0/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= +github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= github.com/spf13/jwalterweatherman v0.0.0-20180109140146-7c0cea34c8ec h1:2ZXvIUGghLpdTVHR1UfvfrzoVlZaE/yOWC5LueIHZig= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= diff --git a/libs/ci/github/github.go b/libs/ci/github/github.go index 4eafed79e..97867caa8 100644 --- a/libs/ci/github/github.go +++ b/libs/ci/github/github.go @@ -577,6 +577,39 @@ func ConvertGithubPullRequestEventToJobs(payload *github.PullRequestEvent, impac "project", project.Name, "action", *payload.Action) + jobs = append(jobs, scheduler.Job{ + ProjectName: project.Name, + ProjectAlias: project.Alias, + ProjectDir: project.Dir, + ProjectWorkspace: project.Workspace, + ProjectWorkflow: project.Workflow, + Layer: project.Layer, + Terragrunt: project.Terragrunt, + OpenTofu: project.OpenTofu, + Pulumi: project.Pulumi, + Commands: workflow.Configuration.OnPullRequestPushed, + ApplyStage: scheduler.ToConfigStage(workflow.Apply), + PlanStage: scheduler.ToConfigStage(workflow.Plan), + RunEnvVars: runEnvVars, + CommandEnvVars: commandEnvVars, + StateEnvVars: stateEnvVars, + PullRequestNumber: pullRequestNumber, + EventName: "pull_request", + Namespace: *payload.Repo.FullName, + RequestedBy: *payload.Sender.Login, + CommandEnvProvider: CommandEnvProvider, + CommandRoleArn: cmdRole, + StateRoleArn: stateRole, + StateEnvProvider: StateEnvProvider, + CognitoOidcConfig: project.AwsCognitoOidcConfig, + SkipMergeCheck: skipMerge, + }) + } else if *payload.Action == "ready_for_review" { + slog.Info("processing PR ready for review", + "prNumber", *pullRequestNumber, + "project", project.Name, + "action", *payload.Action) + jobs = append(jobs, scheduler.Job{ ProjectName: project.Name, ProjectAlias: project.Alias,