Skip to content

GitHub Actions Integration

The Cased Deploy Notification Action is a one-line drop-in solution that automatically sends deployment events from your GitHub Actions workflows to Cased, enabling comprehensive monitoring and analysis of your deployments.

The Cased Deploy Notification Action integrates seamlessly with your existing GitHub Actions workflows, providing automatic deployment tracking without requiring complex configuration or external dependencies.

  • One-line drop-in: Just add the action to your workflow - no complex setup required
  • Automatic context: Automatically fills repository and commit details from GitHub context
  • Flexible metadata: Accepts custom JSON metadata and external URLs
  • Zero dependencies: Simple HTTPS call to Cased with no external dependencies
  • Comprehensive tracking: Links deployments to CI jobs and commit information

Add the Cased Deploy Notification Action to any GitHub Actions workflow:

.github/workflows/deploy.yml
name: Deploy
on:
workflow_dispatch:
push:
branches: [ main ]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# Your build & deploy steps here
- name: Notify Cased
uses: cased/cased-deploy-notification-action@v1
with:
api_key: ${{ secrets.CASED_API_KEY }}
event_metadata: '{"environment": "prod"}'
ParameterDescription
api_keyYour Cased organization API key (store in GitHub secrets)
ParameterDefaultDescription
deployment_requestauto-generatedFriendly description of the deployment
repository_full_name${{ github.repository }}Repository to attribute deployment to
statussuccessDeployment status: pending, running, success, failure, cancelled
event_metadata-JSON string with custom metadata (environment, version, etc.)
commit_sha${{ github.sha }}Commit being deployed
commit_message-Commit message for the deployment
external_url-Link back to the deployment job or run
cased_base_urlhttps://app.cased.comAlternate base URL (rarely needed)
name: Deploy to Multiple Environments
on:
workflow_dispatch:
inputs:
environment:
description: 'Environment to deploy to'
required: true
type: choice
options: ['staging', 'production']
jobs:
deploy:
runs-on: ubuntu-latest
environment: ${{ inputs.environment }}
steps:
- uses: actions/checkout@v4
# Deploy steps here
- name: Notify Cased
uses: cased/cased-deploy-notification-action@v1
with:
api_key: ${{ secrets.CASED_API_KEY }}
deployment_request: "Deploy ${{ github.sha }} to ${{ inputs.environment }}"
event_metadata: |
{
"environment": "${{ inputs.environment }}",
"version": "${{ github.ref_name }}",
"deployer": "${{ github.actor }}"
}
external_url: "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
name: Conditional Deploy Notification
on:
push:
branches: [ main, develop ]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# Deploy steps here
- name: Notify Cased (Production)
if: github.ref == 'refs/heads/main'
uses: cased/cased-deploy-notification-action@v1
with:
api_key: ${{ secrets.CASED_API_KEY }}
event_metadata: '{"environment": "production"}'
- name: Notify Cased (Staging)
if: github.ref == 'refs/heads/develop'
uses: cased/cased-deploy-notification-action@v1
with:
api_key: ${{ secrets.CASED_API_KEY }}
event_metadata: '{"environment": "staging"}'
name: Deploy with Status Tracking
on:
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Notify Deployment Started
uses: cased/cased-deploy-notification-action@v1
with:
api_key: ${{ secrets.CASED_API_KEY }}
status: "running"
deployment_request: "Starting deployment of ${{ github.sha }}"
event_metadata: '{"environment": "production", "phase": "start"}'
# Your deployment steps here
- name: Notify Deployment Success
if: success()
uses: cased/cased-deploy-notification-action@v1
with:
api_key: ${{ secrets.CASED_API_KEY }}
status: "success"
deployment_request: "Successfully deployed ${{ github.sha }}"
event_metadata: '{"environment": "production", "phase": "complete"}'
- name: Notify Deployment Failure
if: failure()
uses: cased/cased-deploy-notification-action@v1
with:
api_key: ${{ secrets.CASED_API_KEY }}
status: "failure"
deployment_request: "Failed to deploy ${{ github.sha }}"
event_metadata: '{"environment": "production", "phase": "failed"}'
  1. Generate API Key: Go to your Cased organization settings → API Keys
  2. Add to GitHub Secrets: In your repository, go to Settings → Secrets and variables → Actions
  3. Create Secret: Add a new secret named CASED_API_KEY with your API key value

The action runs a lightweight Python container that sends a POST request to Cased’s deployment API:

POST /api/v1/deployments/
Authorization: Token <api_key>

The payload includes all the deployment information, and Cased automatically:

  • Records the deployment event
  • Triggers monitoring and notifications
  • Links the deployment to your repository and commit
  • Starts post-deployment health checks
  • Complete History: Track all deployments across environments
  • Commit Correlation: Link deployments to specific commits and changes
  • Environment Visibility: See deployment status across all environments
  • Automatic Monitoring: Cased automatically starts monitoring after deployment notifications
  • Performance Tracking: Monitor application performance post-deployment
  • Issue Detection: Detect anomalies and issues related to deployments
  • Slack Notifications: Automatic notifications to team channels
  • Deployment Dashboards: Visual deployment tracking in Mission Control
  • Audit Trail: Complete audit trail of who deployed what and when
  1. Use Secrets: Always store your API key in GitHub secrets, never in code
  2. Meaningful Metadata: Include relevant information like environment, version, and deployer
  3. Status Tracking: Use different statuses to track deployment lifecycle
  4. External URLs: Link back to GitHub Actions runs for easy debugging
  5. Consistent Naming: Use consistent deployment request naming across workflows

Action fails with authentication error

  • Verify your API key is correct and stored in GitHub secrets
  • Check that the secret name matches what you’re using in the workflow

Deployment not showing in Cased

  • Ensure the API key has proper permissions
  • Check the repository name matches your Cased project configuration

Missing deployment details

  • Verify the event_metadata is valid JSON
  • Check that required parameters are properly set

The Cased Deploy Notification Action provides seamless integration between your GitHub Actions workflows and Cased’s comprehensive deployment monitoring and management platform.