Cdk component that automatically check pull requests
Project description
@cloudcomponents/cdk-pull-request-check
Cdk component that automatically check pull requests
Install
TypeScript/JavaScript:
npm install --save @cloudcomponents/cdk-pull-request-check
Python:
pip install cloudcomponents.cdk-pull-request-check
How to use
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
from aws_cdk.core import Construct, Stack, StackProps
from aws_cdk.aws_codecommit import Repository
from aws_cdk.aws_codebuild import BuildSpec
from cloudcomponents.cdk_pull_request_check import PullRequestCheck
class CodePipelineStack(Stack):
def __init__(self, scope, id, *, description=None, env=None, stackName=None, tags=None, synthesizer=None, terminationProtection=None):
super().__init__(scope, id, description=description, env=env, stackName=stackName, tags=tags, synthesizer=synthesizer, terminationProtection=terminationProtection)
repository = Repository(self, "Repository",
repository_name="MyRepositoryName"
)
# CodePipeline etc.
PullRequestCheck(self, "PullRequestCheck",
repository=repository,
build_spec=BuildSpec.from_source_filename("prcheck.yml")
)
Approval Template Rules
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
from aws_cdk.core import Construct, Stack, StackProps
from aws_cdk.aws_codecommit import Repository
from aws_cdk.aws_codebuild import BuildSpec
from cloudcomponents.cdk_pull_request_check import PullRequestCheck
from cloudcomponents.cdk_pull_request_approval_rule import ApprovalRuleTemplate, ApprovalRuleTemplateRepositoryAssociation
class CodePipelinePullRequestCheckStack(Stack):
def __init__(self, scope, id, *, description=None, env=None, stackName=None, tags=None, synthesizer=None, terminationProtection=None):
super().__init__(scope, id, description=description, env=env, stackName=stackName, tags=tags, synthesizer=synthesizer, terminationProtection=terminationProtection)
repository = Repository(self, "Repository",
repository_name="repository"
)
{ approvalRuleTemplateName } = ApprovalRuleTemplate(self, "ApprovalRuleTemplate",
approval_rule_template_name="Require 1 approver",
template=Template(
approvers=Approvers(
number_of_approvals_needed=1
)
)
)
ApprovalRuleTemplateRepositoryAssociation(self, "ApprovalRuleTemplateRepositoryAssociation",
approval_rule_template_name=approval_rule_template_name,
repository=repository
)
# Approves the pull request
PullRequestCheck(self, "PullRequestCheck",
repository=repository,
build_spec=BuildSpec.from_source_filename("prcheck.yml")
)
Custom notifications
The component comments the pull request and sets the approval state by default. Custom notifications can be set up this way
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
from aws_cdk.core import Construct, Stack, StackProps
from aws_cdk.aws_codecommit import Repository
from aws_cdk.aws_codebuild import BuildSpec
from aws_cdk.aws_events_targets import SnsTopic
from aws_cdk.aws_sns import Topic
from aws_cdk.aws_sns_subscriptions import EmailSubscription
from cloudcomponents.cdk_pull_request_check import PullRequestCheck
class CodePipelineStack(Stack):
def __init__(self, scope, id, *, description=None, env=None, stackName=None, tags=None, synthesizer=None, terminationProtection=None):
super().__init__(scope, id, description=description, env=env, stackName=stackName, tags=tags, synthesizer=synthesizer, terminationProtection=terminationProtection)
repository = Repository(self, "Repository",
repository_name="MyRepositoryName",
description="Some description."
)
# Your CodePipeline...
pr_check = PullRequestCheck(self, "PullRequestCheck",
repository=repository,
build_spec=BuildSpec.from_source_filename("buildspecs/prcheck.yml")
)
pr_topic = Topic(self, "PullRequestTopic")
pr_topic.add_subscription(
EmailSubscription(process.env.DEVSECOPS_TEAM_EMAIL))
pr_check.on_check_started("started",
target=SnsTopic(pr_topic)
)
pr_check.on_check_succeeded("succeeded",
target=SnsTopic(pr_topic)
)
pr_check.on_check_failed("failed",
target=SnsTopic(pr_topic)
)
API Reference
See API.md.
Example
See more complete examples.
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for cloudcomponents.cdk-pull-request-check-1.1.11.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | dfbd19f581b2d96131e896138bdfbb54ebd23fdb5e452e958fcce4c7b784c153 |
|
MD5 | d802a7444ff4ee65dae9e044a61168b2 |
|
BLAKE2b-256 | ba958c6fb850c25c85d3dd8eba3982c119fa26e8d55c8500766b2b7627b5f85b |
Close
Hashes for cloudcomponents.cdk_pull_request_check-1.1.11-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9a26be0003e071a35599e5e6072466c6782bb42e3aa9ac78c4fdf4bc6d5e70b7 |
|
MD5 | bc9dedd140c6b25817e64cab24a324c4 |
|
BLAKE2b-256 | 8341f30fd1172aceef855ebe1041b3a4a052074d36f84df7fd1fcc298c4de77f |