Webhook
Provides a CodePipeline Webhook.
Example Usage
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.codepipeline.Pipeline;
import com.pulumi.aws.codepipeline.PipelineArgs;
import com.pulumi.aws.codepipeline.inputs.PipelineArtifactStoreArgs;
import com.pulumi.aws.codepipeline.inputs.PipelineArtifactStoreEncryptionKeyArgs;
import com.pulumi.aws.codepipeline.inputs.PipelineStageArgs;
import com.pulumi.aws.codepipeline.Webhook;
import com.pulumi.aws.codepipeline.WebhookArgs;
import com.pulumi.aws.codepipeline.inputs.WebhookAuthenticationConfigurationArgs;
import com.pulumi.aws.codepipeline.inputs.WebhookFilterArgs;
import com.pulumi.github.RepositoryWebhook;
import com.pulumi.github.RepositoryWebhookArgs;
import com.pulumi.github.inputs.RepositoryWebhookConfigurationArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var barPipeline = new Pipeline("barPipeline", PipelineArgs.builder()
.roleArn(aws_iam_role.bar().arn())
.artifactStores(PipelineArtifactStoreArgs.builder()
.location(aws_s3_bucket.bar().bucket())
.type("S3")
.encryptionKey(PipelineArtifactStoreEncryptionKeyArgs.builder()
.id(data.aws_kms_alias().s3kmskey().arn())
.type("KMS")
.build())
.build())
.stages(
PipelineStageArgs.builder()
.name("Source")
.actions(PipelineStageActionArgs.builder()
.name("Source")
.category("Source")
.owner("ThirdParty")
.provider("GitHub")
.version("1")
.outputArtifacts("test")
.configuration(Map.ofEntries(
Map.entry("Owner", "my-organization"),
Map.entry("Repo", "test"),
Map.entry("Branch", "master")
))
.build())
.build(),
PipelineStageArgs.builder()
.name("Build")
.actions(PipelineStageActionArgs.builder()
.name("Build")
.category("Build")
.owner("AWS")
.provider("CodeBuild")
.inputArtifacts("test")
.version("1")
.configuration(Map.of("ProjectName", "test"))
.build())
.build())
.build());
final var webhookSecret = "super-secret";
var barWebhook = new Webhook("barWebhook", WebhookArgs.builder()
.authentication("GITHUB_HMAC")
.targetAction("Source")
.targetPipeline(barPipeline.name())
.authenticationConfiguration(WebhookAuthenticationConfigurationArgs.builder()
.secretToken(webhookSecret)
.build())
.filters(WebhookFilterArgs.builder()
.jsonPath("$.ref")
.matchEquals("refs/heads/{Branch}")
.build())
.build());
var barRepositoryWebhook = new RepositoryWebhook("barRepositoryWebhook", RepositoryWebhookArgs.builder()
.repository(github_repository.repo().name())
.configuration(RepositoryWebhookConfigurationArgs.builder()
.url(barWebhook.url())
.contentType("json")
.insecureSsl(true)
.secret(webhookSecret)
.build())
.events("push")
.build());
}
}
Content copied to clipboard
Import
Using pulumi import
, import CodePipeline Webhooks using their ARN. For example:
$ pulumi import aws:codepipeline/webhook:Webhook example arn:aws:codepipeline:us-west-2:123456789012:webhook:example
Content copied to clipboard