Note: This tool is not actively supported, though we will consider contributions via Pull Requests.
status-queue is a combination web service and worker tool for store-and-forward of Buildkite Build Finished events, and later transformation of them into a GitHub Commit Status on a GitHub Enterprise instance.
If you are unwilling or unable to grant the Buildkite service connectivity to your GitHub Enterprise instance through an HTTP Proxy, status-queue implements a potential solution for transforming Build Finished events into GitHub Commit Statuses.
The /service
directory contains a CloudFormation template that
deploys the following resources:
- An EventBridge rule for "Build Finished" events
- An SQS Queue to store the "Build Finished" events
- An API Gateway to provide an HTTP facade over the SQS Queue
The following parameters are required to deploy the service:
EventBridgeBusName
, the name of the EventBridge Bus you have configured your Buildkite Partner Event Source to deliver events to
The following outputs are generated by the deployed stack:
Queue
, the SQS Queue ARNQueueUrl
, the SQS Queue URLApiUrl
, the API Gateway URL for providing to the worker configuration
See the subproject readme for deploy instructions.
The /worker
directory is a nodejs program which retrieves messages
from the service and applies GitHub Commit Statuses in a loop.
The worker requires the following configuration as environment variables:
API_KEY
, an API Key associated with the API Gateway, this value can be retrieved from the AWS Console for your deployed service stackAPI_URL
, the value of theApiUrl
from the service outputs.GITHUB_URL
, the URL of your GitHub Enterprise instance’s API e.g. https://buildkite-ghe.com/api/v3GITHUB_ACCESS_TOKEN
, a personal access token withrepo
scope and access to the repositories you want to post commit statuses to on the GitHub Enterprise instance inGITHUB_URL
See the subproject readme for deploy instructions.