Class: AWSCDK::CodeBuild::CfnProject::WebhookFilterProperty

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
code_build/cfn_project.rb

Overview

WebhookFilter is a structure of the FilterGroups property on the AWS CodeBuild Project ProjectTriggers property type that specifies which webhooks trigger an AWS CodeBuild build.

The Webhook feature isn't available in AWS CloudFormation for GitHub Enterprise projects. Use the AWS CLI or AWS CodeBuild console to create the webhook.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(pattern:, type:, exclude_matched_pattern: nil) ⇒ WebhookFilterProperty

Returns a new instance of WebhookFilterProperty.

Parameters:

  • pattern (String)

    For a WebHookFilter that uses EVENT type, a comma-separated string that specifies one or more events.

  • type (String)

    The type of webhook filter.

  • exclude_matched_pattern (Boolean, AWSCDK::IResolvable, nil) (defaults to: nil)

    Used to indicate that the pattern determines which webhook events do not trigger a build.



2444
2445
2446
2447
2448
2449
2450
2451
# File 'code_build/cfn_project.rb', line 2444

def initialize(pattern:, type:, exclude_matched_pattern: nil)
  @pattern = pattern
  Jsii::Type.check_type(@pattern, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "pattern")
  @type = type
  Jsii::Type.check_type(@type, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "type")
  @exclude_matched_pattern = exclude_matched_pattern
  Jsii::Type.check_type(@exclude_matched_pattern, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "excludeMatchedPattern") unless @exclude_matched_pattern.nil?
end

Instance Attribute Details

#exclude_matched_patternBoolean, ... (readonly)

Used to indicate that the pattern determines which webhook events do not trigger a build.

If true, then a webhook event that does not match the pattern triggers a build. If false, then a webhook event that matches the pattern triggers a build.



2527
2528
2529
# File 'code_build/cfn_project.rb', line 2527

def exclude_matched_pattern
  @exclude_matched_pattern
end

#patternString (readonly)

For a WebHookFilter that uses EVENT type, a comma-separated string that specifies one or more events.

For example, the webhook filter PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED allows all push, pull request created, and pull request updated events to trigger a build.

For a WebHookFilter that uses any of the other filter types, a regular expression pattern. For example, a WebHookFilter that uses HEAD_REF for its type and the pattern ^refs/heads/ triggers a build when the head reference is a branch with a reference name refs/heads/branch-name .



2461
2462
2463
# File 'code_build/cfn_project.rb', line 2461

def pattern
  @pattern
end

#typeString (readonly)

The type of webhook filter.

There are 11 webhook filter types: EVENT , ACTOR_ACCOUNT_ID , HEAD_REF , BASE_REF , FILE_PATH , COMMIT_MESSAGE , TAG_NAME , RELEASE_NAME , REPOSITORY_NAME , ORGANIZATION_NAME , and WORKFLOW_NAME .

  • EVENT
  • A webhook event triggers a build when the provided pattern matches one of nine event types: PUSH , PULL_REQUEST_CREATED , PULL_REQUEST_UPDATED , PULL_REQUEST_CLOSED , PULL_REQUEST_REOPENED , PULL_REQUEST_MERGED , RELEASED , PRERELEASED , and WORKFLOW_JOB_QUEUED . The EVENT patterns are specified as a comma-separated string. For example, PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED filters all push, pull request created, and pull request updated events.

Types PULL_REQUEST_REOPENED and WORKFLOW_JOB_QUEUED work with GitHub and GitHub Enterprise only. Types RELEASED and PRERELEASED work with GitHub only.

  • ACTOR_ACCOUNT_ID
  • A webhook event triggers a build when a GitHub, GitHub Enterprise, or Bitbucket account ID matches the regular expression pattern .
  • HEAD_REF
  • A webhook event triggers a build when the head reference matches the regular expression pattern . For example, refs/heads/branch-name and refs/tags/tag-name .

Works with GitHub and GitHub Enterprise push, GitHub and GitHub Enterprise pull request, Bitbucket push, and Bitbucket pull request events.

  • BASE_REF
  • A webhook event triggers a build when the base reference matches the regular expression pattern . For example, refs/heads/branch-name .

Works with pull request events only.

  • FILE_PATH
  • A webhook triggers a build when the path of a changed file matches the regular expression pattern .

Works with push and pull request events only.

  • COMMIT_MESSAGE
  • A webhook triggers a build when the head commit message matches the regular expression pattern .

Works with push and pull request events only.

  • TAG_NAME
  • A webhook triggers a build when the tag name of the release matches the regular expression pattern .

Works with RELEASED and PRERELEASED events only.

  • RELEASE_NAME
  • A webhook triggers a build when the release name matches the regular expression pattern .

Works with RELEASED and PRERELEASED events only.

  • REPOSITORY_NAME
  • A webhook triggers a build when the repository name matches the regular expression pattern .

Works with GitHub global or organization webhooks only.

  • ORGANIZATION_NAME
  • A webhook triggers a build when the organization name matches the regular expression pattern .

Works with GitHub global webhooks only.

  • WORKFLOW_NAME
  • A webhook triggers a build when the workflow name matches the regular expression pattern .

Works with WORKFLOW_JOB_QUEUED events only. > For CodeBuild-hosted Buildkite runner builds, WORKFLOW_NAME filters will filter by pipeline name.



2520
2521
2522
# File 'code_build/cfn_project.rb', line 2520

def type
  @type
end

Class Method Details

.jsii_propertiesObject



2529
2530
2531
2532
2533
2534
2535
# File 'code_build/cfn_project.rb', line 2529

def self.jsii_properties
  {
    :pattern => "pattern",
    :type => "type",
    :exclude_matched_pattern => "excludeMatchedPattern",
  }
end

Instance Method Details

#to_jsiiObject



2537
2538
2539
2540
2541
2542
2543
2544
2545
# File 'code_build/cfn_project.rb', line 2537

def to_jsii
  result = {}
  result.merge!({
    "pattern" => @pattern,
    "type" => @type,
    "excludeMatchedPattern" => @exclude_matched_pattern,
  })
  result.compact
end