- Resource: BuildTrigger
- Methods
Resource: BuildTrigger
Configuration for an automated build in response to source repository changes.
JSON representation |
---|
{ "resourceName" : string , "id" : string , "description" : string , "name" : string , "tags" : [ string ] , "triggerTemplate" : { object ( |
resourceName
string
The Trigger
name with format: projects/{project}/locations/{location}/triggers/{trigger}
, where {trigger} is a unique identifier generated by the service.
id
string
Output only. Unique identifier of the trigger.
description
string
Human-readable description of this trigger.
name
string
User-assigned name of the trigger. Must be unique within the project. Trigger names must meet the following requirements:
- They must contain only alphanumeric characters and dashes.
- They can be 1-64 characters long.
- They must begin and end with an alphanumeric character.
triggerTemplate
object (
RepoSource
)
Template describing the types of source changes to trigger a build.
Branch and tag names in trigger templates are interpreted as regular expressions. Any branch or tag change that matches that regular expression will trigger a build.
Mutually exclusive with github
.
github
object (
GitHubEventsConfig
)
GitHubEventsConfig describes the configuration of a trigger that creates a build whenever a GitHub event is received.
Mutually exclusive with triggerTemplate
.
pubsubConfig
object (
PubsubConfig
)
PubsubConfig describes the configuration of a trigger that creates a build whenever a Pub/Sub message is published.
webhookConfig
object (
WebhookConfig
)
WebhookConfig describes the configuration of a trigger that creates a build whenever a webhook is sent to a trigger's webhook URL.
bitbucketServerTriggerConfig
object (
BitbucketServerTriggerConfig
)
BitbucketServerTriggerConfig describes the configuration of a trigger that creates a build whenever a Bitbucket Server event is received.
gitlabEnterpriseEventsConfig
object (
GitLabEventsConfig
)
GitLabEnterpriseEventsConfig describes the configuration of a trigger that creates a build whenever a GitLab Enterprise event is received.
createTime
string (
Timestamp
format)
Output only. Time when the trigger was created.
A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z"
and "2014-10-02T15:01:23.045123456Z"
.
disabled
boolean
If true, the trigger will never automatically execute a build.
substitutions
map (key: string, value: string)
Substitutions for Build resource. The keys must match the following regular expression: ^_[A-Z0-9_]+$
.
An object containing a list of "key": value
pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }
.
ignoredFiles[]
string
ignoredFiles and includedFiles are file glob matches using https://golang.org/pkg/path/filepath/#Match extended with support for "**".
If ignoredFiles and changed files are both empty, then they are not used to determine whether or not to trigger a build.
If ignoredFiles is not empty, then we ignore any files that match any of the ignored_file globs. If the change has no files that are outside of the ignoredFiles globs, then we do not trigger a build.
includedFiles[]
string
If any of the files altered in the commit pass the ignoredFiles filter and includedFiles is empty, then as far as this filter is concerned, we should trigger the build.
If any of the files altered in the commit pass the ignoredFiles filter and includedFiles is not empty, then we make sure that at least one of those files matches a includedFiles glob. If not, then we do not trigger a build.
sourceToBuild
object (
GitRepoSource
)
The repo and ref of the repository from which to build. This field is used only for those triggers that do not respond to SCM events. Triggers that respond to such events build source at whatever commit caused the event. This field is currently only used by Webhook, Pub/Sub, Manual, and Cron triggers.
approvalConfig
object (
ApprovalConfig
)
Configuration for manual approval to start a build invocation of this BuildTrigger.
filter
string
A Common Expression Language string.
serviceAccount
string
The service account used for all user-controlled operations including triggers.patch, triggers.run, builds.create, and builds.cancel. If no service account is set and the legacy Cloud Build service account ([PROJECT_NUM]@cloudbuild.gserviceaccount.com) is the default for the project then it will be used instead. Format: projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT_ID_OR_EMAIL}
eventType
enum (
EventType
)
EventType allows the user to explicitly set the type of event to which this BuildTrigger should respond. This field will be validated against the rest of the configuration if it is set.
includeBuildLogs
enum (
IncludeBuildLogs
)
If set to INCLUDE_BUILD_LOGS_WITH_STATUS, log url will be shown on GitHub page when build status is final. Setting this field to INCLUDE_BUILD_LOGS_WITH_STATUS for non GitHub triggers results in INVALID_ARGUMENT error.
repositoryEventConfig
object (
RepositoryEventConfig
)
The configuration of a trigger that creates a build whenever an event from Repo API is received.
build_template
. Template describing the Build request to make when the trigger is matched. At least one of the template fields must be provided. build_template
can be only one of the following:autodetect
boolean
Autodetect build configuration. The following precedence is used (case insensitive):
- cloudbuild.yaml
- cloudbuild.yml
- cloudbuild.json
- Dockerfile
Currently only available for GitHub App Triggers.
build
object (
Build
)
Contents of the build template.
filename
string
Path, from the source root, to the build configuration file (i.e. cloudbuild.yaml).
gitFileSource
object (
GitFileSource
)
The file source describing the local or remote Build template.
GitHubEventsConfig
GitHubEventsConfig describes the configuration of a trigger that creates a build whenever a GitHub event is received.
JSON representation |
---|
{ "installationId" : string , "owner" : string , "name" : string , "enterpriseConfigResourceName" : string , // Union field |
installationId
(deprecated)
string ( int64
format)
The installationID that emits the GitHub event.
owner
string
Owner of the repository. For example: The owner for https://github.com/googlecloudplatform/cloud-builders is "googlecloudplatform".
name
string
Name of the repository. For example: The name for https://github.com/googlecloudplatform/cloud-builders is "cloud-builders".
enterpriseConfigResourceName
string
The resource name of the github enterprise config that should be applied to this installation. For example: "projects/{$projectId}/locations/{$locationId}/githubEnterpriseConfigs/{$configId}"
event
. Filter describing the types of events to trigger a build. Currently supported event types: push, pull_request. event
can be only one of the following:pullRequest
object (
PullRequestFilter
)
filter to match changes in pull requests.
push
object (
PushFilter
)
filter to match changes in refs like branches, tags.
PullRequestFilter
PullRequestFilter contains filter properties for matching GitHub Pull Requests.
JSON representation |
---|
{ "commentControl" : enum ( |
invertRegex
boolean
If true, branches that do NOT match the gitRef will trigger a build.
git_ref
. Target refs to match. A target ref is the git reference where the pull request will be applied. git_ref
can be only one of the following:branch
string
Regex of branches to match.
The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax
CommentControl
Controls whether or not a /gcbrun
comment is required from a user with repository write permission or above in order to trigger Build runs for pull requests. Pull Request update events differ between repo types. Check repo specific guides ( GitHub
, Bitbucket
, GitLab
for details.
Enums | |
---|---|
COMMENTS_DISABLED
|
Do not require /gcbrun
comments from a user with repository write permission or above on pull requests before builds are triggered. Comments that contain /gcbrun
will still fire builds so this should be thought of as comments not required. |
COMMENTS_ENABLED
|
Builds will only fire in response to pull requests if: 1. The pull request author has repository write permission or above and /gcbrun
is in the PR description. 2. A user with repository writer permissions or above comments /gcbrun
on a pull request authored by any user. |
COMMENTS_ENABLED_FOR_EXTERNAL_CONTRIBUTORS_ONLY
|
Builds will only fire in response to pull requests if: 1. The pull request author is a repository writer or above. 2. If the author does not have write permissions, a user with write permissions or above must comment /gcbrun
in order to fire a build. |
PushFilter
Push contains filter properties for matching GitHub git pushes.
JSON representation |
---|
{ "invertRegex" : boolean , // Union field |
invertRegex
boolean
When true, only trigger a build if the revision regex does NOT match the gitRef regex.
git_ref
. Modified refs to match. A modified refs are the refs modified by a git push operation. git_ref
can be only one of the following:branch
string
Regexes matching branches to build.
The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax
tag
string
Regexes matching tags to build.
The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax
PubsubConfig
PubsubConfig describes the configuration of a trigger that creates a build whenever a Pub/Sub message is published.
JSON representation |
---|
{
"subscription"
:
string
,
"topic"
:
string
,
"serviceAccountEmail"
:
string
,
"state"
:
enum (
|
Fields | |
---|---|
subscription
|
Output only. Name of the subscription. Format is |
topic
|
Optional. The name of the topic from which this subscription is receiving messages. Format is |
serviceAccountEmail
|
Service account that will make the push request. |
state
|
Potential issues with the underlying Pub/Sub subscription configuration. Only populated on get requests. |
State
Enumerates potential issues with the underlying Pub/Sub subscription configuration.
Enums | |
---|---|
STATE_UNSPECIFIED
|
The subscription configuration has not been checked. |
OK
|
The Pub/Sub subscription is properly configured. |
SUBSCRIPTION_DELETED
|
The subscription has been deleted. |
TOPIC_DELETED
|
The topic has been deleted. |
SUBSCRIPTION_MISCONFIGURED
|
Some of the subscription's field are misconfigured. |
WebhookConfig
WebhookConfig describes the configuration of a trigger that creates a build whenever a webhook is sent to a trigger's webhook URL.
JSON representation |
---|
{ "state" : enum ( |
state
enum (
State
)
Potential issues with the underlying Pub/Sub subscription configuration. Only populated on get requests.
auth_method
. Auth method specifies how the webhook authenticates with GCP. auth_method
can be only one of the following:secret
string
Required. Resource name for the secret required as a URL parameter.
State
Enumerates potential issues with the Secret Manager secret provided by the user.
Enums | |
---|---|
STATE_UNSPECIFIED
|
The webhook auth configuration not been checked. |
OK
|
The auth configuration is properly setup. |
SECRET_DELETED
|
The secret provided in auth_method has been deleted. |
BitbucketServerTriggerConfig
BitbucketServerTriggerConfig describes the configuration of a trigger that creates a build whenever a Bitbucket Server event is received.
JSON representation |
---|
{ "repoSlug" : string , "projectKey" : string , "bitbucketServerConfigResource" : string , "bitbucketServerConfig" : { object ( |
repoSlug
string
Required. Slug of the repository. A repository slug is a URL-friendly version of a repository name, automatically generated by Bitbucket for use in the URL. For example, if the repository name is 'test repo', in the URL it would become 'test-repo' as in https://mybitbucket.server/projects/TEST/repos/test-repo .
projectKey
string
Required. Key of the project that the repo is in. For example: The key for https://mybitbucket.server/projects/TEST/repos/test-repo is "TEST".
bitbucketServerConfigResource
string
Required. The Bitbucket server config resource that this trigger config maps to.
bitbucketServerConfig
object (
BitbucketServerConfig
)
Output only. The BitbucketServerConfig specified in the bitbucketServerConfigResource field.
event
. Filter describing the types of events to trigger a build. Currently supported event types: push, pull_request. event
can be only one of the following:pullRequest
object (
PullRequestFilter
)
Filter to match changes in pull requests.
push
object (
PushFilter
)
Filter to match changes in refs like branches, tags.
GitLabEventsConfig
GitLabEventsConfig describes the configuration of a trigger that creates a build whenever a GitLab event is received.
JSON representation |
---|
{ "projectNamespace" : string , "gitlabConfigResource" : string , "gitlabConfig" : { object ( |
projectNamespace
string
Namespace of the GitLab project.
gitlabConfigResource
string
The GitLab config resource that this trigger config maps to.
gitlabConfig
object (
GitLabConfig
)
Output only. The GitLabConfig specified in the gitlabConfigResource field.
event
. Filter describing the types of events to trigger a build. Currently supported event types: push, pull_request. event
can be only one of the following:pullRequest
object (
PullRequestFilter
)
Filter to match changes in pull requests.
push
object (
PushFilter
)
Filter to match changes in refs like branches, tags.
GitFileSource
GitFileSource describes a file within a (possibly remote) code repository.
JSON representation |
---|
{ "path" : string , "uri" : string , "repoType" : enum ( |
path
string
The path of the file, with the repo root as the root of the path.
uri
string
The URI of the repo. Either uri or repository can be specified. If unspecified, the repo from which the trigger invocation originated is assumed to be the repo from which to read the specified path.
repoType
enum (
RepoType
)
See RepoType above.
revision
string
The branch, tag, arbitrary ref, or SHA version of the repo to use when resolving the filename (optional). This field respects the same syntax/resolution as described here: https://git-scm.com/docs/gitrevisions If unspecified, the revision from which the trigger invocation originated is assumed to be the revision from which to read the specified path.
source
. The source of the SCM repo. source
can be only one of the following:repository
string
The fully qualified resource name of the Repos API repository. Either URI or repository can be specified. If unspecified, the repo from which the trigger invocation originated is assumed to be the repo from which to read the specified path.
enterprise_config
. The resource name of the enterprise config that should be applied to this source. enterprise_config
can be only one of the following:githubEnterpriseConfig
string
The full resource name of the github enterprise config. Format: projects/{project}/locations/{location}/githubEnterpriseConfigs/{id}
. projects/{project}/githubEnterpriseConfigs/{id}
.
bitbucketServerConfig
string
The full resource name of the bitbucket server config. Format: projects/{project}/locations/{location}/bitbucketServerConfigs/{id}
.
RepoType
The type of the repo, since it may not be explicit from the repo
field (e.g from a URL).
Enums | |
---|---|
UNKNOWN
|
The default, unknown repo type. Don't use it, instead use one of the other repo types. |
CLOUD_SOURCE_REPOSITORIES
|
A Google Cloud Source Repositories-hosted repo. |
GITHUB
|
A GitHub-hosted repo not necessarily on "github.com" (i.e. GitHub Enterprise). |
BITBUCKET_SERVER
|
A Bitbucket Server-hosted repo. |
GITLAB
|
A GitLab-hosted repo. |
BITBUCKET_CLOUD
|
A Bitbucket Cloud-hosted repo. |
GitRepoSource
GitRepoSource describes a repo and ref of a code repository.
JSON representation |
---|
{ "uri" : string , "ref" : string , "repoType" : enum ( |
uri
string
The URI of the repo (e.g. https://github.com/user/repo.git)
. Either uri
or repository
can be specified and is required.
ref
string
The branch or tag to use. Must start with "refs/" (required).
repoType
enum (
RepoType
)
See RepoType below.
source
. The source of the SCM repo. source
can be only one of the following:repository
string
The connected repository resource name, in the format projects/*/locations/*/connections/*/repositories/*
. Either uri
or repository
can be specified and is required.
enterprise_config
. The resource name of the enterprise config that should be applied to this source. enterprise_config
can be only one of the following:githubEnterpriseConfig
string
The full resource name of the github enterprise config. Format: projects/{project}/locations/{location}/githubEnterpriseConfigs/{id}
. projects/{project}/githubEnterpriseConfigs/{id}
.
bitbucketServerConfig
string
The full resource name of the bitbucket server config. Format: projects/{project}/locations/{location}/bitbucketServerConfigs/{id}
.
EventType
EventType represents the type of event to which a BuildTrigger responds.
Enums | |
---|---|
EVENT_TYPE_UNSPECIFIED
|
EVENT_TYPE_UNSPECIFIED event_types are ignored. |
REPO
|
REPO corresponds to the supported VCS integrations. |
WEBHOOK
|
WEBHOOK corresponds to webhook triggers. |
PUBSUB
|
PUBSUB corresponds to pubsub triggers. |
MANUAL
|
MANUAL corresponds to manual-only invoked triggers. |
IncludeBuildLogs
The options of enabling showing build logs on GitHub.
Enums | |
---|---|
INCLUDE_BUILD_LOGS_UNSPECIFIED
|
Build logs will not be shown on GitHub. |
INCLUDE_BUILD_LOGS_WITH_STATUS
|
Build logs will be shown on GitHub. |
RepositoryEventConfig
The configuration of a trigger that creates a build whenever an event from Repo API is received.
JSON representation |
---|
{ "repository" : string , "repositoryType" : enum ( |
repository
string
The resource name of the Repo API resource.
repositoryType
enum (
RepositoryType
)
Output only. The type of the SCM vendor the repository points to.
filter
. The types of filter to trigger a build. filter
can be only one of the following:pullRequest
object (
PullRequestFilter
)
Filter to match changes in pull requests.
push
object (
PushFilter
)
Filter to match changes in refs like branches, tags.
RepositoryType
All possible SCM repo types from Repo API.
Enums | |
---|---|
REPOSITORY_TYPE_UNSPECIFIED
|
If unspecified, RepositoryType defaults to GITHUB. |
GITHUB
|
The SCM repo is GITHUB. |
GITHUB_ENTERPRISE
|
The SCM repo is GITHUB Enterprise. |
GITLAB_ENTERPRISE
|
The SCM repo is GITLAB Enterprise. |
BITBUCKET_DATA_CENTER
|
The SCM repo is BITBUCKET Data Center. |
BITBUCKET_CLOUD
|
The SCM repo is BITBUCKET Cloud. |
Methods |
|
---|---|
|
Creates a new BuildTrigger
. |
|
Deletes a BuildTrigger
by its project ID and trigger ID. |
|
Returns information about a BuildTrigger
. |
|
Lists existing BuildTrigger
s. |
|
Updates a BuildTrigger
by its project ID and trigger ID. |
|
Runs a BuildTrigger
at a particular source revision. |
|
ReceiveTriggerWebhook [Experimental] is called when the API receives a webhook request targeted at a specific trigger. |
commentControl
enum (
CommentControl
)If CommentControl is enabled, depending on the setting, builds may not fire until a repository writer comments
/gcbrun
on a pull request or/gcbrun
is in the pull request description. Only PR comments that contain/gcbrun
will trigger builds.If CommentControl is set to disabled, comments with
/gcbrun
from a user with repository write permission or above will still trigger builds to run.