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, analyticsReporting=None):
super().__init__(scope, id, description=description, env=env, stackName=stackName, tags=tags, synthesizer=synthesizer, terminationProtection=terminationProtection, analyticsReporting=analyticsReporting)
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, analyticsReporting=None):
super().__init__(scope, id, description=description, env=env, stackName=stackName, tags=tags, synthesizer=synthesizer, terminationProtection=terminationProtection, analyticsReporting=analyticsReporting)
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, analyticsReporting=None):
super().__init__(scope, id, description=description, env=env, stackName=stackName, tags=tags, synthesizer=synthesizer, terminationProtection=terminationProtection, analyticsReporting=analyticsReporting)
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.33.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4c10854230aca2e84949d645da359f402ed0144f2b4761c7a465d24ebcf4e999 |
|
MD5 | 6f230ec0837404adb2968a90d57f0bde |
|
BLAKE2b-256 | af09c01fd4340ccaf471a37666737268ef77ebf53354835afca11e4eb7dcae0e |
Close
Hashes for cloudcomponents.cdk_pull_request_check-1.33.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eebea4dbc776c0ef2082b43f1921787e604ae030a354c5fa637436189c426d09 |
|
MD5 | 5bf9c8a86086b8486f9c0e48a8662737 |
|
BLAKE2b-256 | eb226d9c5b69b7993ae84ae0c619d243aa410d70830ca5186b9840f11bd9404a |