Saravanan666/pypi-org huggingface dataset:
Package: cloudcms
Cloud CMS Python DriverBasic driver for theCloud CMSAPIRuns with Python 3Currently supports the following functionality:Connect to and refresh access tokens with the APIRead platform, branch, and repositoriesRead, query, search, create, update, and delete nodesInstallationpip install cloudcmsExamplesBelow are some examples of how you might use this driver:fromcloudcmsimportCloudCMS# Connect to Cloud CMSclient=CloudCMS()platform=client.connect(filename='gitana.json')# List repositoriesrepositories=platform.list_repositories()# Read repositoryrepository=platform.read_repository('<repository_id>')# List branchesbranches=repository.list_branches()# Read branchbranch=repository.read_branch('<branch_id>')# Read Nodenode=branch.read_node('<node_id>')# Create nodeobj={'title':'Twelfth Night','description':'An old play'}newNode=branch.create_node(obj)# Query nodesquery={'_type':'store:book'}pagination={'limit':2}queried_nodes=branch.query_nodes(query,pagination)# Search/Find nodesfind={'search':'Shakespeare','query':{'_type':'store:book'}}searched_nodes=branch.find_nodes(find)TestsTo perform the unit tests for this driver, ensure that you have agitana.jsonfile in the driver directory, then run:python -m unittest testsResourcesCloud CMS:https://www.cloudcms.comGithub:https://github.com/gitana/cloudcms-python-driverPython Driver Download:https://pypi.org/project/cloudcms/Cloud CMS Documentation:https://www.cloudcms.com/documentation.htmlDevelopers Guide:https://www.cloudcms.com/developers.htmlSupportFor information or questions about the Python Driver, please contact Cloud CMS
atsupport@cloudcms.com.
Package: cloud-components
Cloud ComponentsDocsComming soon...Github ActionsEnviroment variablesLINT_PATH: This will be passed as a pararameter when have Pylint callJobstest: Do all tests using pylintlint: Use Pylint to make this stepdeploy: Deploy into pypi repositoryMakefileThis tool are used by Github Actions and can be used to debug or change some aspect into your CI/CD pipeline. Please do not change any rule name listed here! If that event happen, you need to change some make calls into Github Action configuration.Toolstest: Run Pytestlint: Run PylintInstallinstall_pkg: Intall everything, including Poetry and all dependencies from your projectinstall_poetry: Install only PoetryBuildbuild_src: Build your package to deploy into Pypi repository
Package: cloudcomponents.cdk-cloudfront-authorization
@cloudcomponents/cdk-cloudfront-authorizationCloudFront with Cognito authentication using Lambda@EdgeThis construct is based onhttps://github.com/aws-samples/cloudfront-authorization-at-edge.InstallTypeScript/JavaScript:npmi@cloudcomponents/cdk-cloudfront-authorizationPython:pipinstallcloudcomponents.cdk-cloudfront-authorizationHow to use SPAimport{SpaAuthorization,SpaDistribution}from'@cloudcomponents/cdk-cloudfront-authorization';import{Stack,StackProps,aws_cognito}from'aws-cdk-lib';import{Construct}from'constructs';exportclassCloudFrontAuthorizationStackextendsStack{constructor(scope:Construct,id:string,props:StackProps){super(scope,id,props);constuserPool=newaws_cognito.UserPool(this,'UserPool',{selfSignUpEnabled:false,userPoolName:'cloudfront-authorization-userpool',});//UserPoolmusthaveadomain!userPool.addDomain('Domain',{cognitoDomain:{domainPrefix:'cloudcomponents',},});constauthorization=newSpaAuthorization(this,'Authorization',{userPool,});newSpaDistribution(this,'Distribution',{authorization,});}}How to use StaticSiteimport{SpaAuthorization,SpaDistribution}from'@cloudcomponents/cdk-cloudfront-authorization';import{Stack,StackProps,aws_cognito}from'aws-cdk-lib';import{Construct}from'constructs';exportclassCloudFrontAuthorizationStackextendsStack{constructor(scope:Construct,id:string,props:StackProps){super(scope,id,props);constuserPool=newaws_cognito.UserPool(this,'UserPool',{selfSignUpEnabled:false,userPoolName:'cloudfront-authorization-userpool',});//UserPoolmusthaveadomain!userPool.addDomain('Domain',{cognitoDomain:{domainPrefix:'cloudcomponents',},});constauthorization=newStaticSiteAuthorization(this,'Authorization',{userPool,});newStaticSiteDistribution(this,'Distribution',{authorization,});}}Identity ProvidersIdentity providers can be specified in the authorization object. To make sure that the user pool client is created after the identity provider, please specify a dependency using "addDependency".constidentityProvider=UserPoolIdentityProviderAmazon(this,"IdentityProvider",{//...})constauthorization=newSpaAuthorization(this,'Authorization_SPA',{//...identityProviders:[cognito.UserPoolClientIdentityProvider.AMAZON],};authorization.userPoolClient.node.addDependency(identityProvider);SPA mode vs. Static Site modeSPAUser Pool client does not use a client secretThe cookies with JWT's are not "http only", so that they can be read and used by the SPA (e.g. to display the user name, or to refresh tokens)404's (page not found on S3) will return index.html, to enable SPA-routingStatic SiteEnforce use of a client secretSet cookies to be http only by default (unless you've provided other cookie settings explicitly)No special error handlingAPI ReferenceSeeAPI.md.ExampleSee more completeexamples.LicenseMIT
Package: cloudcomponents.cdk-codecommit-backup
@cloudcomponents/cdk-codecommit-backupBackup CodeCommit repositories to S3InstallTypeScript/JavaScript:npmi@cloudcomponents/cdk-codecommit-backupPython:pipinstallcloudcomponents.cdk-codecommit-backupHow to useimport{BackupBucket,S3CodeCommitBackup}from'@cloudcomponents/cdk-codecommit-backup';import{Duration,Stack,StackProps}from'aws-cdk-lib';import{Repository}from'aws-cdk-lib/aws-codecommit';import{Schedule}from'aws-cdk-lib/aws-events';import{SnsTopic}from'aws-cdk-lib/aws-events-targets';import{Topic}from'aws-cdk-lib/aws-sns';import{EmailSubscription}from'aws-cdk-lib/aws-sns-subscriptions';import{Construct}from'constructs';exportclassCodeCommitBackupStackextendsStack{constructor(scope:Construct,id:string,props?:StackProps){super(scope,id,props);if(typeofprocess.env.REPOSITORY_NAME==='undefined'){thrownewError('environment variable REPOSITORY_NAME undefined');}constrepository=Repository.fromRepositoryName(this,'Repository',process.env.REPOSITORY_NAME);constbackupBucket=newBackupBucket(this,'BackupBuckt',{retentionPeriod:Duration.days(90),});//Thefollowingexamplerunsataskeverydayat4amconstbackup=newS3CodeCommitBackup(this,'S3CodeCommitBackup',{backupBucket,repository,schedule:Schedule.cron({minute:'0',hour:'4',}),});constbackupTopic=newTopic(this,'BackupTopic');if(process.env.DEVSECOPS_TEAM_EMAIL){backupTopic.addSubscription(newEmailSubscription(process.env.DEVSECOPS_TEAM_EMAIL));}backup.onBackupStarted('started',{target:newSnsTopic(backupTopic),});backup.onBackupSucceeded('succeeded',{target:newSnsTopic(backupTopic),});backup.onBackupFailed('failed',{target:newSnsTopic(backupTopic),});}}API ReferenceSeeAPI.md.ExampleSee more completeexamples.LicenseMIT
Package: cloudcomponents.cdk-codepipeline-anchore-inline-scan-action
@cloudcomponents/cdk-codepipeline-anchore-inline-scan-actionCodePipeline action to integrateAnchore Engineinto your pipelineInstallTypeScript/JavaScript:npmi@cloudcomponents/cdk-codepipeline-anchore-inline-scan-actionPython:pipinstallcloudcomponents.cdk-codepipeline-anchore-inline-scan-actionHow to useimport{CodePipelineAnchoreInlineScanAction}from'@cloudcomponents/cdk-codepipeline-anchore-inline-scan-action';import{CodePipelineDockerfileLinterAction}from'@cloudcomponents/cdk-codepipeline-dockerfile-linter-action';import{Stack,StackProps}from'aws-cdk-lib';import{Repository}from'aws-cdk-lib/aws-codecommit';import{Pipeline,Artifact}from'aws-cdk-lib/aws-codepipeline';import{CodeCommitSourceAction}from'aws-cdk-lib/aws-codepipeline-actions';import{Construct}from'constructs';exportclassContainerAuditStackextendsStack{constructor(scope:Construct,id:string,props?:StackProps){super(scope,id,props);constrepository=newRepository(this,'Repository',{repositoryName:'container-audit-repository',});constsourceArtifact=newArtifact();constsourceAction=newCodeCommitSourceAction({actionName:'CodeCommit',repository,output:sourceArtifact,branch:'master',});constlinterAction=newCodePipelineDockerfileLinterAction({actionName:'Linter',input:sourceArtifact,});constvulnScanAction=newCodePipelineAnchoreInlineScanAction({actionName:'VulnScan',input:sourceArtifact,});newPipeline(this,'Pipeline',{pipelineName:'container-audit-pipeline',stages:[{stageName:'Source',actions:[sourceAction],},{stageName:'Audit',actions:[linterAction,vulnScanAction],},],});}}API ReferenceSeeAPI.md.ExampleSee more completeexamples.LicenseMIT
Package: cloudcomponents.cdk-codepipeline-check-parameter-action
@cloudcomponents/cdk-codepipeline-check-parameter-actionCdk component that checks if system parameters are set correctlyInstallTypeScript/JavaScript:npmi@cloudcomponents/cdk-codepipeline-check-parameter-actionPython:pipinstallcloudcomponents.cdk-codepipeline-check-parameter-actionHow to useimport{CodePipelineCheckParameterAction}from'@cloudcomponents/cdk-codepipeline-check-parameter-action';import{Stack,StackProps}from'aws-cdk-lib';import{Repository}from'aws-cdk-lib/aws-codecommit';import{Pipeline,Artifact}from'aws-cdk-lib/aws-codepipeline';import{CodeCommitSourceAction}from'aws-cdk-lib/aws-codepipeline-actions';import{Construct}from'constructs';exportclassCodePipelineCheckParameterActionStackextendsStack{constructor(scope:Construct,id:string,props?:StackProps){super(scope,id,props);constrepository=newRepository(this,'Repository',{repositoryName:'MyRepositoryName',});constsourceArtifact=newArtifact();constsourceAction=newCodeCommitSourceAction({actionName:'CodeCommit',repository,output:sourceArtifact,branch:'master',});constcheckAction=newCodePipelineCheckParameterAction({actionName:'Check',parameterName:'/test',regExp:/^The.*Spain$/,logParameter:true,});newPipeline(this,'MyPipeline',{pipelineName:'MyPipeline',stages:[{stageName:'Source',actions:[sourceAction],},{stageName:'Check',actions:[checkAction],},],});}}API ReferenceSeeAPI.md.ExampleSee more completeexamples.LicenseMIT
Package: cloudcomponents.cdk-codepipeline-dockerfile-linter-action
@cloudcomponents/cdk-codepipeline-dockerfile-linter-actionCodePipeline action to lint dockerfiles withhadolintInstallTypeScript/JavaScript:npmi@cloudcomponents/cdk-codepipeline-dockerfile-linter-actionPython:pipinstallcloudcomponents.cdk-codepipeline-dockerfile-linter-actionHow to useimport{CodePipelineAnchoreInlineScanAction}from'@cloudcomponents/cdk-codepipeline-anchore-inline-scan-action';import{CodePipelineDockerfileLinterAction}from'@cloudcomponents/cdk-codepipeline-dockerfile-linter-action';import{Stack,StackProps}from'aws-cdk-lib';import{Repository}from'aws-cdk-lib/aws-codecommit';import{Pipeline,Artifact}from'aws-cdk-lib/aws-codepipeline';import{CodeCommitSourceAction}from'aws-cdk-lib/aws-codepipeline-actions';import{Construct}from'constructs';exportclassContainerAuditStackextendsStack{constructor(scope:Construct,id:string,props?:StackProps){super(scope,id,props);constrepository=newRepository(this,'Repository',{repositoryName:'container-audit-repository',});constsourceArtifact=newArtifact();constsourceAction=newCodeCommitSourceAction({actionName:'CodeCommit',repository,output:sourceArtifact,branch:'master',});constlinterAction=newCodePipelineDockerfileLinterAction({actionName:'Linter',input:sourceArtifact,});constvulnScanAction=newCodePipelineAnchoreInlineScanAction({actionName:'VulnScan',input:sourceArtifact,});newPipeline(this,'Pipeline',{pipelineName:'container-audit-pipeline',stages:[{stageName:'Source',actions:[sourceAction],},{stageName:'Audit',actions:[linterAction,vulnScanAction],},],});}}API ReferenceSeeAPI.md.ExampleSee more completeexamples.LicenseMIT
Package: cloudcomponents.cdk-codepipeline-merge-action
@cloudcomponents/cdk-codepipeline-merge-actionCdk component that automatically merge branches in codepipelinesInstallTypeScript/JavaScript:npmi@cloudcomponents/cdk-codepipeline-merge-actionPython:pipinstallcloudcomponents.cdk-codepipeline-merge-actionHow to useimport{CodePipelineMergeAction}from'@cloudcomponents/cdk-codepipeline-merge-action';import{Stack,StackProps}from'aws-cdk-lib';import{Repository}from'aws-cdk-lib/aws-codecommit';import{Pipeline,Artifact}from'aws-cdk-lib/aws-codepipeline';import{CodeCommitSourceAction}from'aws-cdk-lib/aws-codepipeline-actions';import{Construct}from'constructs';exportclassCodePipelineMergeActionStackextendsStack{constructor(scope:Construct,id:string,props?:StackProps){super(scope,id,props);constrepository=newRepository(this,'Repository',{repositoryName:'merge-action-repository',});constsourceArtifact=newArtifact();constsourceAction=newCodeCommitSourceAction({actionName:'CodeCommit',repository,output:sourceArtifact,branch:'next',});constmergeAction=newCodePipelineMergeAction({actionName:'Merge',repository,sourceCommitSpecifier:'next',destinationCommitSpecifier:'master',});newPipeline(this,'Pipeline',{pipelineName:'merge-action-pipeline',stages:[{stageName:'Source',actions:[sourceAction],},{stageName:'Merge',actions:[mergeAction],},],});}}API ReferenceSeeAPI.md.ExampleSee more completeexamples.LicenseMIT
Package: cloudcomponents.cdk-codepipeline-slack
@cloudcomponents/cdk-codepipeline-slackCdk component that provisions a #slack approval workflow and notification messages on codepipeline state changesInstallTypeScript/JavaScript:npminstall--save@cloudcomponents/cdk-codepipeline-slackPython:pipinstallcloudcomponents.cdk-codepipeline-slackHow to useimport{SlackApprovalAction,SlackNotifier}from'@cloudcomponents/cdk-codepipeline-slack';import{Stack,StackProps}from'aws-cdk-lib';import{Repository}from'aws-cdk-lib/aws-codecommit';import{Pipeline,Artifact}from'aws-cdk-lib/aws-codepipeline';import{CodeCommitSourceAction}from'aws-cdk-lib/aws-codepipeline-actions';import{Construct}from'constructs';exportclassCodePipelineSlackApprovalStackextendsStack{constructor(scope:Construct,id:string,props?:StackProps){super(scope,id,props);constrepository=newRepository(this,'Repository',{repositoryName:'MyRepositoryName',});constsourceArtifact=newArtifact();constsourceAction=newCodeCommitSourceAction({actionName:'CodeCommit',repository,output:sourceArtifact,});if(typeofprocess.env.SLACK_BOT_TOKEN==='undefined'){thrownewError('environment variable SLACK_BOT_TOKEN undefined');}constslackBotToken=process.env.SLACK_BOT_TOKEN;if(typeofprocess.env.SLACK_SIGNING_SECRET==='undefined'){thrownewError('environment variable SLACK_SIGNING_SECRET undefined');}constslackSigningSecret=process.env.SLACK_SIGNING_SECRET;if(typeofprocess.env.SLACK_CHANNEL_NAME==='undefined'){thrownewError('environment variable SLACK_CHANNEL_NAME undefined');}constslackChannel=process.env.SLACK_CHANNEL_NAME;constapprovalAction=newSlackApprovalAction({actionName:'SlackApproval',slackBotToken,slackSigningSecret,slackChannel,externalEntityLink:'http://cloudcomponents.org',additionalInformation:'Would you like to promote the build to production?',});constpipeline=newPipeline(this,'MyPipeline',{pipelineName:'MyPipeline',stages:[{stageName:'Source',actions:[sourceAction],},{stageName:'Approval',actions:[approvalAction],},],});newSlackNotifier(this,'SlackNotifier',{pipeline,slackBotToken,slackSigningSecret,slackChannel,});}}Slack App SettingsCreate an app that’s just for your workspaceOAuth & PermissionsGrant thechannels::history-Scope to the Bot in your app and Add the Bot to the configured Slack-ChannelSelect Permission Scopes:Interactive ComponentsEnter the url of your api from the AWS Api Gateway and append/slack/actions:API ReferenceSeeAPI.md.ExampleSee more completeexamples.LicenseMIT
Package: cloudcomponents.cdk-container-registry
@cloudcomponents/cdk-container-registryRegistry for container imagesInstallTypeScript/JavaScript:npmi@cloudcomponents/cdk-container-registryPython:pipinstallcloudcomponents.cdk-container-registryHow to useimport{ImageRepository,Severity}from'@cloudcomponents/cdk-container-registry';import{Stack,StackProps}from'aws-cdk-lib';import{Topic}from'aws-cdk-lib/aws-sns';import{EmailSubscription}from'aws-cdk-lib/aws-sns-subscriptions';import{Construct}from'constructs';exportclassImageRepositoryStackextendsStack{constructor(scope:Construct,id:string,props?:StackProps){super(scope,id,props);constalarmTopic=newTopic(this,'Topic');alarmTopic.addSubscription(newEmailSubscription(process.env.DEVSECOPS_TEAM_EMAILasstring),);constimageRepository=newImageRepository(this,'ImageRepository',{forceDelete:true,//OnlyfortestsimageScanOnPush:true,});imageRepository.onFinding('finding',{severity:Severity.HIGH,alarmTopic,});}}API ReferenceSeeAPI.md.ExampleSee more completeexamples.LicenseMIT
Package: cloudcomponents.cdk-contentful-webhook
@cloudcomponents/cdk-contentful-webhookCreate, update and delete contentful webhooks with your app deploymentInstallTypeScript/JavaScript:npmi@cloudcomponents/cdk-contentful-webhookPython:pipinstallcloudcomponents.cdk-contentful-webhookHow to useimport{ContentfulWebhook}from'@cloudcomponents/cdk-contentful-webhook';import{SecretKey}from'@cloudcomponents/cdk-secret-key';import{Stack,StackProps,aws_apigateway}from'aws-cdk-lib';import{Construct}from'constructs';exportclassContentfulWebhookStackextendsStack{constructor(scope:Construct,id:string,props?:StackProps){super(scope,id,props);constapi=newaws_apigateway.RestApi(this,'Endpoint');api.root.addMethod('POST');if(typeofprocess.env.ACCESS_TOKEN==='undefined'){thrownewError('environment variable ACCESS_TOKEN undefined');}constaccessToken=SecretKey.fromPlainText(process.env.ACCESS_TOKEN);if(typeofprocess.env.SPACE_ID==='undefined'){thrownewError('environment variable SPACE_ID undefined');}constspaceId=process.env.SPACE_ID;consttopics=['Entry.create'];newContentfulWebhook(this,'ContentfulWebhook',{accessToken,spaceId,name:'ExampleWebhook',url:api.url,topics,logLevel:'debug',});}}API ReferenceSeeAPI.md.ExampleSee more completeexamples.LicenseMIT
Package: cloudcomponents.cdk-deletable-bucket
@cloudcomponents/cdk-deletable-bucketBucket with content cleanup to allow bucket deletion when the stack will be destroyedInstallTypeScript/JavaScript:npmi@cloudcomponents/cdk-deletable-bucketPython:pipinstallcloudcomponents.cdk-deletable-bucketHow to useimport{DeletableBucket}from'@cloudcomponents/cdk-deletable-bucket';import{Stack,StackProps}from'aws-cdk-lib';import{Construct}from'constructs';exportclassDeletableBucketStackextendsStack{constructor(scope:Construct,id:string,props?:StackProps){super(scope,id,props);newDeletableBucket(this,'DeletableBucket',{bucketName:'bucket2delete',forceDelete:true,});}}API ReferenceSeeAPI.md.ExampleSee more completeexamples.LicenseMIT
Package: cloudcomponents.cdk-dependency-check
@cloudcomponents/cdk-dependency-checkOWASP dependency-checkfor codecommit repositoriesInstallTypeScript/JavaScript:npmi@cloudcomponents/cdk-dependency-checkPython:pipinstallcloudcomponents.cdk-dependency-checkHow to useimport{CodeCommitDependencyCheck}from'@cloudcomponents/cdk-dependency-check';import{Stack,StackProps}from'aws-cdk-lib';import{Repository}from'aws-cdk-lib/aws-codecommit';import{Schedule}from'aws-cdk-lib/aws-events';import{SnsTopic}from'aws-cdk-lib/aws-events-targets';import{Bucket}from'aws-cdk-lib/aws-s3';import{Topic}from'aws-cdk-lib/aws-sns';import{EmailSubscription}from'aws-cdk-lib/aws-sns-subscriptions';import{Construct}from'constructs';exportclassDependencyCheckStackextendsStack{constructor(scope:Construct,id:string,props?:StackProps){super(scope,id,props);if(typeofprocess.env.REPOSITORY_NAME==='undefined'){thrownewError('environment variable REPOSITORY_NAME undefined');}constrepository=Repository.fromRepositoryName(this,'Repository',process.env.REPOSITORY_NAME);constreportsBucket=newBucket(this,'Bucket');//Thefollowingexamplerunsataskeverydayat4amconstcheck=newCodeCommitDependencyCheck(this,'CodeCommitDependencyCheck',{repository,reportsBucket,preCheckCommand:'npm i',schedule:Schedule.cron({minute:'0',hour:'4',}),});constcheckTopic=newTopic(this,'CheckTopic');if(process.env.DEVSECOPS_TEAM_EMAIL){checkTopic.addSubscription(newEmailSubscription(process.env.DEVSECOPS_TEAM_EMAIL));}check.onCheckStarted('started',{target:newSnsTopic(checkTopic),});check.onCheckSucceeded('succeeded',{target:newSnsTopic(checkTopic),});check.onCheckFailed('failed',{target:newSnsTopic(checkTopic),});}}Upload HTML ReportsconstreportsBucket=newBucket(this,'Bucket');//Thefollowingexamplerunsataskeverydayat4amconstcheck=newCodeCommitDependencyCheck(this,'CodeCommitDependencyCheck',{repository,reportsBucket,preCheckCommand:'npm i',schedule:Schedule.cron({minute:'0',hour:'4',}),});API ReferenceSeeAPI.md.ExampleSee more completeexamples.LicenseMIT
Package: cloudcomponents.cdk-dynamodb-seeder
@cloudcomponents/cdk-dynamodb-seederA seeder for dynamodb tablesInstallTypeScript/JavaScript:npmi@cloudcomponents/cdk-dynamodb-seederPython:pipinstallcloudcomponents.cdk-dynamodb-seederHow to useimport*aspathfrom'path';import{DynamoDBSeeder,Seeds}from'@cloudcomponents/cdk-dynamodb-seeder';import{Stack,StackProps,RemovalPolicy}from'aws-cdk-lib';import{Table,AttributeType}from'aws-cdk-lib/aws-dynamodb';import{Bucket}from'aws-cdk-lib/aws-s3';import{Construct}from'constructs';exportclassDynamoDBSeederStackextendsStack{constructor(scope:Construct,id:string,props:StackProps){super(scope,id,props);consttable=newTable(this,'Table',{partitionKey:{name:'id',type:AttributeType.NUMBER,},removalPolicy:RemovalPolicy.DESTROY,});newDynamoDBSeeder(this,'JsonFileSeeder',{table,seeds:Seeds.fromJsonFile(path.join(__dirname,'..','seeds.json')),});newDynamoDBSeeder(this,'InlineSeeder',{table,seeds:Seeds.fromInline([{id:3,column:'foo',},{id:4,column:'bar',},]),});constseedsBucket=Bucket.fromBucketName(this,'SeedsBucket','my-seeds-bucket',);newDynamoDBSeeder(this,'BucketSeeder',{table,seeds:Seeds.fromBucket(seedsBucket,'seeds.json'),});}}API ReferenceSeeAPI.md.ExampleSee more completeexamples.LicenseMIT
Package: cloudcomponents.cdk-github-webhook
@cloudcomponents/cdk-github-webhookCreate, update and delete github webhooks with your app deploymentInstallTypeScript/JavaScript:npmi@cloudcomponents/cdk-github-webhookPython:pipinstallcloudcomponents.cdk-github-webhookHow to useimport{GithubWebhook}from'@cloudcomponents/cdk-github-webhook';import{SecretKey}from'@cloudcomponents/cdk-secret-key';import{Stack,StackProps,aws_apigateway}from'aws-cdk-lib';import{Construct}from'constructs';exportclassGithubWebhookStackextendsStack{constructor(scope:Construct,id:string,props?:StackProps){super(scope,id,props);constapi=newaws_apigateway.RestApi(this,'github-webhook');api.root.addMethod('POST');if(typeofprocess.env.API_TOKEN==='undefined'){thrownewError('environment variable API_TOKEN undefined');}constgithubApiToken=SecretKey.fromPlainText(process.env.API_TOKEN);//@examplehttps://github.com/cloudcomponents/cdk-constructsif(typeofprocess.env.REPO_URL==='undefined'){thrownewError('environment variable REPO_URL undefined');}constgithubRepoUrl=process.env.REPO_URL;//@seehttps://developer.github.com/v3/activity/events/types/constevents=['*'];newGithubWebhook(this,'GithubWebhook',{githubApiToken,githubRepoUrl,payloadUrl:api.url,events,logLevel:'debug',});}}API ReferenceSeeAPI.md.ExampleSee more completeexamples.LicenseMIT