Stay organized with collections
Save and categorize content based on your preferences.
Cloud Build enables you to configure triggers that do not
immediately execute a build but instead mark a build as pending
until approved. If a user with permissions approves a pending
build, the build will start. If the approval is denied,
the build will not start.
This page explains how you can manually approve or reject builds.
To learn how to configure a trigger that requires approval, see Creating a build trigger.
If a user has the Cloud Build Editor role, the user has
permissions to update a trigger to require or not require approval. To learn more
about Cloud Build permissions, see IAM and
permissions. In order to grant
a user permission to approve builds within your project, the user
must have the Cloud Build Approver role.
In the Add principals section, add users to give them permission to
grant approval for pending builds within your project.
You must add one or more principals in this section. If you add yourself as
a principal, note that you will still need to manually approve a pending
build if your trigger is gated by an approval.
In the Assign roles section, select Cloud Build > Cloud Build Approver.
The users you specified now have access to approve or reject pending builds.
Approving builds
Console
To approve a pending build in the Google Cloud console:
Open the Cloud Build Dashboard page in the Google Cloud console.
If you have builds to approve, you will see a message at the top of the page
with the number of builds awaiting your approval. To the right of the message,
click View Builds to view the list of builds awaiting your approval.
Click on the checkboxes of the builds you'd like to approve.
You can select multiple builds to approve or one individual build to
approve.
At the top of the page, click Approve to approve your selected builds.
Before the build starts, you will see the Approve build dialog box.
In the dialog box, you can add an optional message and a URL to be
displayed along with the build's approval. To include a URL, click
Show additional options to enter a URL.
In the dialog box, click Approve to approve the build.
Once you approve, the build will start immediately. If the organization
policy
(constraints/cloudbuild.allowedIntegrations) denies access to
the connected repository, the policy will
override the approval. To learn more, see Gate builds on organization policy.
gcloud
To approve a pending build using gcloud commands, run the following command
in your terminal window:
Replace the placeholder values in the above commands with the following:
BUILD_ID is the ID of the build you'd like to
approve.
PROJECT_ID is your project ID.
[Optional] URL is the URL containing information
about the approval, such as a link to a JIRA ticket.
[Optional] COMMENT is the message you want displayed
upon approval of the build.
Once you approve, the build will start immediately. If the organization
policy to define builds for allowed integrations
(constraints/cloudbuild.allowedIntegrations) is set, the policy will
override the approval. To learn more, see Applying organization
policy to build triggers.
Rejecting builds
Console
To reject a pending build in the Google Cloud console:
Open the Cloud Build Dashboard page in the Google Cloud console.
If you have builds to approve, you will see a message at the top of the page
with the number of builds awaiting your approval. To the right of the message,
click View Builds to view the list of builds awaiting your approval.
You can select multiple builds to reject or one individual build to
reject. Click on the checkboxes of the builds you'd like to reject.
Click Reject at the top of the page to reject the build.
If you reject a build, the build will not start.
gcloud
To reject a pending build using gcloud commands, run the following command
in your terminal window:
Replace the placeholder values in the above commands with the following:
BUILD_ID is the ID of the build you'd like to
reject.
PROJECT_ID is your project ID.
[Optional] URL is the URL containing information
about the rejection, such as a link to a JIRA ticket.
[Optional] COMMENT is the message you want displayed
upon rejection of the build.
If you reject a build, the build will never start.
Receiving notifications for builds waiting for approval
You can use Cloud Build notifiers to receive notifications about
pending builds using a Cloud Build maintained notifier,
such as Slack or SMTP server, or by
creating your own notifier.
To configure notifications:
Follow the instructions on one of following pages to
configure notifications for your desired service:
When configuring notifications using one of the pages above, you must
configure your notifier to filter builds with a PENDING status.
This will send you notifications on builds waiting for approval.
In the following example SMTP notifier configuration file, the filter field
uses Common Expression Language (CEL) to filter build events with a PENDING status:
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-28 UTC."],[[["\u003cp\u003eCloud Build allows builds to be marked as pending, requiring manual approval before they start.\u003c/p\u003e\n"],["\u003cp\u003eUsers with the Cloud Build Approver role can approve or reject pending builds, either through the Google Cloud console or using gcloud commands.\u003c/p\u003e\n"],["\u003cp\u003eApproving a build initiates the build process immediately, while rejecting a build prevents it from ever starting.\u003c/p\u003e\n"],["\u003cp\u003eNotifications for pending builds can be configured through Cloud Build notifiers, allowing users to be alerted when builds are awaiting approval, and can be set up through services such as BigQuery, HTTP, Slack, SMTP and others.\u003c/p\u003e\n"],["\u003cp\u003eUsers will need to create a build trigger configured to require approval before they can approve or reject pending builds.\u003c/p\u003e\n"]]],[],null,["# Gate builds on approval\n\nCloud Build enables you to configure triggers that do not\nimmediately execute a build but instead mark a build as pending\nuntil approved. If a user with permissions approves a pending\nbuild, the build will start. If the approval is denied,\nthe build will not start.\n\nThis page explains how you can manually approve or reject builds.\nTo learn how to configure a trigger that requires approval, see [Creating a build trigger](/build/docs/automating-builds/create-manage-triggers#console).\n| **Note:** You can't approve or reject pending builds older than 2 months. For details, see [Troubleshooting](/build/docs/troubleshooting#pending_build).\n\nBefore you begin\n----------------\n\n-\n\n\n Enable the Cloud Build API.\n\n\n [Enable the API](https://console.cloud.google.com/flows/enableapi?apiid=cloudbuild.googleapis.com&redirect=https://cloud.google.com/build/docs/automating-builds/approve-builds)\n\n\u003c!-- --\u003e\n\n- Install [Google Cloud CLI](/sdk/docs/install-sdk).\n\n | **Note:** If you've already installed gcloud CLI previously, make sure you have the latest available version by running `gcloud components update`.\n- If you have not already, [create a build trigger](/build/docs/automating-builds/create-manage-triggers#console) configured to require approval.\n\n### Granting permissions\n\nIf a user has the **Cloud Build Editor role** , the user has\npermissions to update a trigger to require or not require approval. To learn more\nabout Cloud Build permissions, see [IAM and\npermissions](/build/docs/iam-roles-permissions). In order to grant\na user permission to approve builds within your project, the user\nmust have the **Cloud Build Approver** role.\n\nTo add the **Cloud Build Approver** role:\n\n1. Open the **IAM** page in the Google Cloud console.\n\n [Open the IAM page](https://console.cloud.google.com/iam-admin/iam)\n2. Click **Grant access**.\n\n You will see the **Grant access** panel.\n3. In the **Add principals** section, add users to give them permission to\n grant approval for pending builds within your project.\n\n You *must* add one or more principals in this section. If you add yourself as\n a principal, note that you will still need to manually approve a pending\n build if your trigger is gated by an approval.\n4. In the **Assign roles** section, select **Cloud Build** \\\u003e **Cloud Build Approver**.\n\nThe users you specified now have access to approve or reject pending builds.\n\nApproving builds\n----------------\n\n### Console\n\nTo approve a pending build in the Google Cloud console:\n\n1. Open the **Cloud Build Dashboard** page in the Google Cloud console.\n\n [Open the Cloud Build Dashboard page](https://console.cloud.google.com/cloud-build/dashboard)\n2. If you have builds to approve, you will see a message at the top of the page\n with the number of builds awaiting your approval. To the right of the message,\n click **View Builds** to view the list of builds awaiting your approval.\n\n3. Click on the checkboxes of the builds you'd like to approve.\n You can select multiple builds to approve or one individual build to\n approve.\n\n4. At the top of the page, click **Approve** to approve your selected builds.\n\n5. Before the build starts, you will see the **Approve build** dialog box.\n In the dialog box, you can add an optional message and a URL to be\n displayed along with the build's approval. To include a URL, click\n **Show additional options** to enter a URL.\n\n6. In the dialog box, click **Approve** to approve the build.\n\nOnce you approve, the build will start immediately. If the organization\npolicy\n(`constraints/cloudbuild.allowedIntegrations`) denies access to\nthe connected repository, the policy will\noverride the approval. To learn more, see [Gate builds on organization policy](/build/docs/securing-builds/gate-builds-organization-policy).\n\n### gcloud\n\nTo approve a pending build using `gcloud commands`, run the following command\nin your terminal window: \n\n gcloud builds approve \u003cvar translate=\"no\"\u003eBUILD_ID\u003c/var\u003e \\\n --project=\u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e \\\n --url=\u003cvar translate=\"no\"\u003eURL\u003c/var\u003e \\\n --comment=\u003cvar translate=\"no\"\u003eCOMMENT\u003c/var\u003e\n\nReplace the placeholder values in the above commands with the following:\n\n- \u003cvar translate=\"no\"\u003eBUILD_ID\u003c/var\u003e is the ID of the build you'd like to approve.\n- \u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e is your project ID.\n- \\[Optional\\] \u003cvar translate=\"no\"\u003eURL\u003c/var\u003e is the URL containing information about the approval, such as a link to a JIRA ticket.\n- \\[Optional\\] \u003cvar translate=\"no\"\u003eCOMMENT\u003c/var\u003e is the message you want displayed upon approval of the build.\n\nOnce you approve, the build will start immediately. If the organization\npolicy to define builds for allowed integrations\n(`constraints/cloudbuild.allowedIntegrations`) is set, the policy will\noverride the approval. To learn more, see [Applying organization\npolicy to build triggers](/build/docs/securing-builds/apply-organization-policy-triggers).\n\nRejecting builds\n----------------\n\n### Console\n\nTo reject a pending build in the Google Cloud console:\n\n1. Open the **Cloud Build Dashboard** page in the Google Cloud console.\n\n [Open the Cloud Build Dashboard page](https://console.cloud.google.com/cloud-build/dashboard)\n2. If you have builds to approve, you will see a message at the top of the page\n with the number of builds awaiting your approval. To the right of the message,\n click **View Builds** to view the list of builds awaiting your approval.\n\n3. You can select multiple builds to reject or one individual build to\n reject. Click on the checkboxes of the builds you'd like to reject.\n\n4. Click **Reject** at the top of the page to reject the build.\n\nIf you reject a build, the build will not start.\n\n### gcloud\n\nTo reject a pending build using `gcloud commands`, run the following command\nin your terminal window: \n\n gcloud builds reject \u003cvar translate=\"no\"\u003eBUILD_ID\u003c/var\u003e \\\n --project=\u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e \\\n --url=\u003cvar translate=\"no\"\u003eURL\u003c/var\u003e \\\n --comment=\u003cvar translate=\"no\"\u003eCOMMENT\u003c/var\u003e\n\nReplace the placeholder values in the above commands with the following:\n\n- \u003cvar translate=\"no\"\u003eBUILD_ID\u003c/var\u003e is the ID of the build you'd like to reject.\n- \u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e is your project ID.\n- \\[Optional\\] \u003cvar translate=\"no\"\u003eURL\u003c/var\u003e is the URL containing information about the rejection, such as a link to a JIRA ticket.\n- \\[Optional\\] \u003cvar translate=\"no\"\u003eCOMMENT\u003c/var\u003e is the message you want displayed upon rejection of the build.\n\nIf you reject a build, the build will never start.\n\nReceiving notifications for builds waiting for approval\n-------------------------------------------------------\n\nYou can use Cloud Build notifiers to receive notifications about\npending builds using a Cloud Build maintained notifier,\nsuch as [Slack](/build/docs/configuring-notifications/configure-slack) or [SMTP](/build/docs/configuring-notifications/configure-smtp) server, or by\n[creating your own notifier](/build/docs/configuring-notifications/create-notifier).\n\nTo configure notifications:\n\n1. Follow the instructions on one of following pages to\n configure notifications for your desired service:\n\n - [BigQuery](/build/docs/configuring-notifications/configure-bigquery)\n - [HTTP](/build/docs/configuring-notifications/configure-http)\n - [Slack](/build/docs/configuring-notifications/configure-slack)\n - [SMTP](/build/docs/configuring-notifications/configure-smtp)\n - [Creating your own notifier](/build/docs/configuring-notifications/create-notifier)\n2. When configuring notifications using one of the pages above, you must\n configure your notifier to filter builds with a *PENDING* status.\n This will send you notifications on builds waiting for approval.\n In the following example SMTP notifier configuration file, the filter field\n uses [Common Expression Language](https://github.com/google/cel-spec) (CEL) to filter build events with a PENDING status:\n\n apiVersion: cloud-build-notifiers/v1\n kind: SMTPNotifier\n metadata:\n name: example-smtp-notifier\n spec:\n notification:\n filter: build.status == Build.Status.PENDING\n delivery:\n server: example.gmail.com\n port: 0000\n sender: sender@example.com\n ...\n\n To view the full example, see the [notifier configuration file for the SMTP notifier](https://github.com/GoogleCloudPlatform/cloud-build-notifiers/blob/master/smtp/smtp.yaml.example).\n3. To deploy your notifier, run the `gcloud run` command in your terminal.\n The following example deploys the SMTP notifier using Cloud Run.\n\n gcloud run deploy example.gmail.com \\\n --image=us-east1-docker.pkg.dev/gcb-release/cloud-build-notifiers/smtp:latest \\\n --update-env-vars=CONFIG_PATH=smtp.yaml, PROJECT_ID=my-project\n\nYou should now receive notifications for pending builds to your service.\n\nWhat's next\n-----------\n\n- Learn how to [create and manage build triggers](/build/docs/automating-builds/create-manage-triggers).\n- Learn how to [view build results for build triggers](/build/docs/view-build-results#viewing_build_results_for_build_triggers)"]]