Interacting with Expeditor integrations directly
Expeditor integrates with a number of external services through their API, event webhooks, or both. This page outlines Expeditor's various integrations as well as covering how you can interact with those services directly. If there is an integration that you would like to see added, please reach out to Release Engineering.
Artifactory is an artifact repository manager developed by JFrog. At Chef Software, we use Artifactory as the de-facto source of record for most of our compiled artifacts. Expeditor integrates with Chef Software's internal Artifactory instance both through its API and an implementation of webhooks powered by user scripts. This allows Expeditor to both trigger and react to the publishing and promotion of build artifacts across a variety of artifact repositories.
Buildkite is a hosted platform for running CI pipelines on our own infrastructure. At Chef Software, we use Buildkite to handle all of our CI/CD pipeline (more information here). Expeditor integrates with Buildkite through both its REST API and GraphQL API. Expeditor is also configured to receive a number of webhook events from both the chef and chef-oss Buildkite organizations. This allows Expeditor to manage all aspects of a pipeline's life cycle except for deletion (which is intentionally kept a manual process).
To interact with Buildkite on your own, we recommend either the Buildkite UI or the Buildkite CLI (see below).
The Buildkite CLI is a command line utility you can use to interact with the Buildkite API. In the context of Expeditor, you'll be able to use this CLI to trigger builds on existing pipelines from the terminal on your local workstation.
- Install via Homebrew.
brew tap buildkite/cli brew install bk
- Configure the CLI with your personal GraphQL API token. If you do not have one, create one here. Make sure it has access to both the “Chef Software Inc” and “Chef Open Source” organizations.
bk configure buildkite
- Confirm that you can see the expected pipelines. You'll often be asked to provide your pipeline as part of
bk build createcommands. To find your pipeline slug you'll either want to pull the slug out of the URL of the pipeline in the Bildkite UI or by running the following command and filtering it using a utility like
bk pipeline list
The Chef Habitat Builder is Chef Software's publicly hosted instance of our Chef Habitat Builder software. At Chef Software, we use Chef Habitat Builder to host all our Chef Habitat packages. At this point in time, Expeditor integrates with the Chef Habitat Builder only through its REST API to publish and promote packages. Chef Habitat Builder does not provide any event webhooks at this time. While the Chef Habitat Builder does have a build service, we do not leverage it for the reasons outlined here.
The Docker Hub is a service provided by Docker for finding and sharing container images. At Chef Software, we use the Docker Hub to host a number of Docker images intended for both internal and external consumption. Expeditor integrates with the Docker Hub through its REST API to publish and tag Docker images. Expeditor can also receive webhooks from specific image repositories if they are manually configured to send events to the Expeditor endpoint.
Fastly is an edge computing services provider that provides a number of useful platform services. At Chef Software, we use Fastly primarily for its content delivery network. Expeditor integrates with Fastly through its REST API to manage the CDN caches for our various web properties. We do not receive any webhooks from Fastly at this time.
GitHub is a development platform that provides hosting for software development version control using git. At Chef Software, we use GitHub to host the source code for our software projects. Expeditor integrates with GitHub through its REST API to handle a countless number of various actions. Expeditor also receives webhooks from all of Chef Software's organizations (more information here).
RubyGems.org is the defacto package manager for Ruby gem artifacts. At Chef Software, we use RubyGems.org as the primary distribution mechanism for open source Ruby gem artifacts. Expeditor integrates with RubyGems.org using its REST API to publish Ruby gems. Expeditor also receives webhooks events anytime a new Ruby gem is published on the platform, including those published by owners other than Chef Software.
Slack is a common messaging platform that is used by Chef Software for a variety of purposes. With regards to Expeditor specifically, Slack is used as a means to trigger actions via chatops and as a vehicle for Expeditor to communicate status updates. Expeditor does this by integrating with Slack's REST API to handle sending messages to Chef Software's Slack workspace as well as receiving webhooks from Slack itself so that it can respond to actions taken by users within Slack itself.
Unfortunately, at this point in time, Expeditor is only able to integrate with Chef Software's corporate workspace. We would like to offer integration points with our Chef Community Slack workspace, but are blocked by limitations put in place on free Slack workspaces.
Statuspage is a hosted incident and status dashboard service used by a variety of service providers, including many that are mentioned above. Chef Software uses Statuspage for its own status page. Expeditor's primary integration point with Statuspage is through webhook subscriptions to various services.