1. Resources
  2. /
  3. Plugins
  4. /
  5. incidentio-buildkite-plugin

Incident.io Buildkite Plugin Build status

Automatically create Incident.io incidents when Buildkite jobs fail.

Features

  • ๐Ÿšจ Automatic incident creation when jobs fail
  • ๐Ÿ“ Customizable incident details - include custom details to your incident summary
  • ๐Ÿ”— Buildkite annotations - creates annotations with direct links to Incident.io incidents
  • ๐Ÿ”‘ Secure credential handling - uses environment variables for api keys
  • โš™๏ธ Customizable severity levels - choose whichever severity have been defined in your Incident.io account

Required Configuration

INCIDENTIO_API_KEY (string)

The Incident.io API key for your organization to utilise Incident.ioโ€™s API.

If you need to create one, follow Incident.ioโ€™s guide to create your first incident using API. Use your preferred secret management method to store the key securely.

secrets:
  - INCIDENTIO_API_KEY # Retrieve Buildkite Secrets created using Buildkite Interface

steps:
  # OR use Buildkite Secrets plugin to retrieve your key
  - label: "๐Ÿ” Fetch Incident.io Credentials"
    key: "fetch-incidentio-secrets"
    plugins:
      - secrets#v1.0.2:
          env:
            INCIDENTIO_API_KEY: incidentio-api-key
    command: "./run-tests.sh"
        

severity-name (string)

Your Incident.io severity name. Possible severity names in your Incident.io organisation: SEV-5, SEV-1, etc

Optional Configuration

incident-name (string)

A brief explanation of the incident. If not provided, Incident.io will auto generate a random name for your incident.

incident-summary (string)

Detailed description of the incident. If not provided, the incident will be created without a summary.

incident-channel-mode (string)

Whether the incident should be open to anyone in your Slack workspace (public), or invite-only (private). If not provided, the incident will be created with the default channel mode.

Options: public, private
Default: public

Complete Example

steps:
  - label: "๐Ÿงช Tests"
    command: "./run-tests.sh"
    plugins:
      - secrets#v1.0.0:
          env:
            INCIDENTIO_API_KEY: incidentio-api-key
      - incidentio#v1.0.0:
          severity-name: "SEV-1"
          incident-name: "Test Incident"
          incident-summary: "CI tests have failed"

How It Works

  1. Hook Execution: The plugin runs as a post-command hook at the end of your command
  2. Failure Detection: Checks the current commandโ€™s exit status to determine if thereโ€™s a failure
  3. Incident Creation: If a failure is detected, send a POST request to Incident.ioโ€™s Create Incidents v2 API
  4. Annotation: Creates a Buildkite annotation with incident details and a direct link to the Incident.io incident

Requirements

  • Bash
  • curl (for API calls)
  • jq (for JSON parsing)
  • Incident.io API key
  • Buildkite agent with access to make HTTPS requests to api.incident.io

Compatibility

Elastic StackAgent Stack K8sHosted (Mac)Hosted (Linux)Notes
โœ…โœ…โœ…โœ…Requires curl and jq
  • โœ… Fully supported
  • โš ๏ธ Partially supported
  • โŒ Not supported

๐Ÿ‘ฉโ€๐Ÿ’ป Contributing

  1. Follow the patterns established in this template
  2. Add tests for new functionality
  3. Update documentation for any new options
  4. Ensure shellcheck passes (fix issues, donโ€™t just disable checks - disabling should be done very seldomly and with team documentation/agreement)
  5. Test with the plugin tester

Developing

Run all tests:

docker run -it --rm -v "$PWD:/plugin:ro" buildkite/plugin-tester

Validate plugin structure:

# Replace 'your-plugin-name' with your actual plugin name
docker run -it --rm -v "$PWD:/plugin:ro" buildkite/plugin-linter --id your-plugin-name --path /plugin

Run shellcheck:

shellcheck hooks/* tests/* lib/*.bash lib/modules/* lib/providers/*

๐Ÿ“œ License

The package is available as open source under the terms of the MIT License.

The plugins listed on this webpage are provided for informational purposes only. They have not undergone any formal security review or assessment. While we strive to provide useful resources, we cannot guarantee the safety, reliability, or integrity of these plugins. Users are strongly advised to conduct their own security evaluations before downloading, installing, or using any plugin. By using these plugins, you acknowledge and accept any risks associated with their use. We disclaim any liability for any harm or damages arising from the use of the plugins listed.

Start turning complexity into an advantage

Create an account to get started for free.

Buildkite Pipelines

Platform

  1. Pipelines
  2. Public pipelines
  3. Test Engine
  4. Package Registries
  5. Mobile Delivery Cloud
  6. Pricing

Hosting options

  1. Self-hosted agents
  2. Mac hosted agents
  3. Linux hosted agents

Resources

  1. Docs
  2. Blog
  3. Changelog
  4. Example pipelines
  5. Plugins
  6. Webinars
  7. Case studies
  8. Events
  9. Migration Services
  10. Comparisons
  11. CI/CD perspectives

Company

  1. About
  2. Careers
  3. Press
  4. Security
  5. Brand assets
  6. Contact

Solutions

  1. Replace Jenkins
  2. Workflows for MLOps
  3. Testing at scale
  4. Monorepo mojo
  5. Bazel orchestration

Legal

  1. Terms of Service
  2. Acceptable Use Policy
  3. Privacy Policy
  4. Subprocessors
  5. Service Level Agreement

Support

  1. System status
  2. Forum
© Buildkite Pty Ltd 2025