electricui / github-webhook-resource

A concourse resource to automatically configure Github webhooks to trigger resource polls.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Github Webhook Resource

A concourse resource to automatically configure Github webhooks to trigger resource polls.

This is a fork of the original with additional APIs to allow cross-pipeline mutation of webhooks and some other cleanup.

Resource Type Configuration

resource_types:
- name: github-webhook-resource
  type: docker-image
  source:
    repository: electricui/github-webhook-resource
    tag: latest

Source Configuration

resources:
- name: github-webhook
  type: github-webhook-resource
  source:
    github_token: ((github-token))

Behavior

out: Manipulate a Github webhook

Create or delete a webhook using the configured parameters.

Parameters

- put: create-webhook
  resource: github-webhook
  params:
    org: github-org-name
    repo: github-repo-name
    resource_name: your-resource-name
    webhook_token: your-token
    operation: create
    events: [push, pull_request]
  • org: Required. Your github organization.
  • repo: Required. Your github repository.
  • resource_name: Required. Name of the resource to be associated with your webhook.
  • webhook_token: Required. Arbitrary string to identify your webhook. Must match the webhook_token property of the resource your webhook points to.
  • operation: Required.
    • create to create a new webhook. Updates existing webhook if your configuration differs from remote.
    • delete to delete an existing webhook. Outputs current timestamp on non-existing webhooks.
  • events: Optional. An array of events which will trigger your webhook. Default: push
  • team_name: The concourse team name of the pipeline receiving the webhook, by default is the team name of the pipeline executing this put.
  • pipeline_name: The name of the pipeline receiving the webhook, by default is the pipeline executing this put.

Development

Prerequisites

Making changes

The Concourse entrypoints are in bin/check, bin/in, and bin/out. You can add functionality to these files directly, or you can require additional supporing files.

See the Reference section for some helpful information related to this project's implementation.

Running the tests

npm install
npm test

Before submitting your changes for review, ensure all tests are passing.

Building your changes

docker build -t github-webhook-resource .

To use the newly built image, push it to a Docker repository which your Concourse pipeline can access and configure your pipeline to use it:

docker build ./ -t electricui/github-webhook-resource
docker push electricui/github-webhook-resource
resource_types:
- name: github-webhook-resource
  type: docker-image
  source:
    repository: electricui/github-webhook-resource
    tag: latest

resources:
- name: github-webhook
  type: github-webhook-resource
  ...

Contributing

Please read the CONTRIBUTING.md file to learn the process for submitting changes to this repo.

License

This project is licensed under Apache 2.0 - see the LICENSE file for details.

Reference

About

A concourse resource to automatically configure Github webhooks to trigger resource polls.

License:Apache License 2.0


Languages

Language:JavaScript 93.9%Language:Shell 4.8%Language:Dockerfile 1.3%