npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@neweracode/cdk-codepipeline-github

v1.9.0

Published

An AWS CDK construct that sends codbuild and codepipeline status events to github

Downloads

452

Readme

NewEraCode CDK Codepipeline-Github

Description

An AWS CDK construct that publishes status events from a stage in Codepipeline to a Github repo using webhooks

Setup with Github

A github token is required for this module. It needs to be imported into the secrets manager.

Here is an example of how to import it using the aws sdk cli:

aws secretsmanager create-secret --name "TOKENS/PIPELINE/GithubToken" --description "Github Token" --secret-string <token_value>

Should the stage be a Codebuild Project, make sure the github token gets imported to CodeBuild:

aws codebuild import-source-credentials --server-type GITHUB --auth-type PERSONAL_ACCESS_TOKEN --token <token_value>

Usage

Install

$ npm i @neweracode/cdk-codepipeline-github

Import

NodeJS

const ccg = require('@neweracode/cdk-codepipeline-github');
new ccg.CdkCodepipelineGithub(.....)

TypeScript / Babel

import { CdkCodepipelineGithub } from '@neweracode/cdk-codepipeline-github';

Example

// One possible way to get an existing secret's arn - using AwsCustomResource
// and AWS SecretsManager SDK
import { AwsCustomResource } from '@aws-cdk/custom-resources';
import { CdkCodepipelineGithub } from '@neweracode/cdk-codepipeline-github';
import { Pipeline } = require('@aws-cdk/aws-codepipeline');

const getGithubSecret = new AwsCustomResource(this, 'GetGithubSecret', {
  onUpdate: {
     service: 'SecretsManager',
     action: 'describeSecret',
     parameters: {
        SecretId: 'TOKENS/PIPELINE/GithubToken' // ID of secret
     },
     physicalResourceId: Date.now().toString()
  }
});
// ARN is a property in the describeSecret SDK response
const gitHubSecretArn = `${getGithubSecret.getData("ARN")}` as string;

// pipeline
const pipeline = new Pipeline(this, 'Pipeline', {
  restartExecutionOnUpdate: true
});

// source stage
pipeline.addStage({
  stageName: 'Source',
  actions: [sourceAction]

// build stage
const buildStage = pipeline.addStage({
  stageName: 'Build',
  actions: [buildAction]
});

// Github status checks based on status of the build stage
new CdkCodepipelineGithub(this, 'GithubCodepipeline', {
  stage: buildStage,
  gitHubSecretArn
});

// deploy stage
pipeline.addStage({
  stageName: 'Deploy',
  actions: [deployAction]
});

// or check status of pipeline itself:
new CdkCodepipelineGithub(this, 'GithubCodepipeline', {
  pipeline,
  gitHubSecretArn
});