TL;DR
alt.qa integrates into your existing workflow without rip-and-replace. Connect to GitHub, GitLab, or Jenkins in minutes. Real-time results flow to Slack, Jira tickets auto-open on failures, and Datadog/PagerDuty get native event streams. This guide shows exactly how, with copy-paste code examples for each platform.
The Integration Problem
You've already built your DevOps stack. CI/CD pipeline? Check. Monitoring in Datadog? Check. Incident management in PagerDuty? Check. Jira for tracking work? Check. Slack for team comms? Check. The last thing you want is another tool that breaks your workflow or adds friction.
That's why alt.qa was designed to be a bridge, not a replacement. It plugs into the infrastructure you already have, GitHub Actions, GitLab CI, Jenkins, and feeds results into the systems your team actually uses. No context switching. No new dashboards to learn. Quality and reliability data flows into Datadog alongside your other metrics. Incidents trigger PagerDuty alerts just like everything else. Failures auto-create Jira tickets. Slack gets notified in channels you already watch.
This guide walks you through 15 minutes of setup that ties everything together. Whether you're on GitHub, GitLab, Jenkins, or some hybrid, you'll find the integration path that fits your stack.
What You'll Need
- An alt.qa account (free tier is fine to get started)
- An API token from alt.qa (generated in Settings)
- Access to your CI/CD platform (GitHub, GitLab, or Jenkins)
- Optional: Slack, Jira, Datadog, PagerDuty credentials for downstream integrations
Start with the CI/CD layer, that's the hardest part. Everything downstream becomes copy-paste.
Part 1: CI/CD Integration (Pick Your Platform)
Option A: GitHub Actions
GitHub Actions is the easiest entry point. If you're using GitHub, this is a 3-minute setup.
Step 1: Generate your alt.qa API token
- Log in to alt.qa dashboard
- Go to Settings → API Tokens
- Click "New Token, " name it "GitHub Actions"
- Copy the token value
Step 2: Add the token to GitHub Secrets
- In your GitHub repo, go to Settings → Secrets and variables → Actions
- Click "New repository secret"
- Name:
ALTQA_TOKEN - Value: paste your token
- Save
Step 3: Add the workflow file
Create .github/workflows/altqa.yml:
name: alt.qa Quality & Reliability Scan
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
jobs:
altqa:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run alt.qa Scan
uses: altqa/scan-action@v1
with:
token: ${{ secrets.ALTQA_TOKEN }}
project-id: your-project-id
- name: Upload Results
if: always()
uses: altqa/upload-results@v1
with:
token: ${{ secrets.ALTQA_TOKEN }}
build-id: ${{ github.run_id }}
results-file: altqa-results.json
Done. Push this file to your repo. On your next PR or push to main, alt.qa runs automatically. Results appear in the GitHub checks UI and in the action logs.
GitHub tip: Branch protection rules
Go to Settings → Branches → Add rule for "main." Under "Require status checks to pass, " check "altqa/scan." Now PRs can't merge without passing alt.qa. This is your first enforcement gate.
Option B: GitLab CI
GitLab CI uses a similar approach via .gitlab-ci.yml.
Step 1: Add your token to GitLab CI/CD variables
- Go to Settings → CI/CD → Variables
- Add
ALTQA_TOKENwith your token value - Mark it as protected (so it only runs on protected branches)
Step 2: Update your .gitlab-ci.yml
stages:
- test
- quality
altqa_scan:
stage: quality
image: altqa/cli:latest
script:
- altqa scan --token $ALTQA_TOKEN --project myproject
- altqa upload-results --build-id $CI_PIPELINE_ID
artifacts:
reports:
junit: altqa-results.xml
allow_failure: false
only:
- merge_requests
- main
Push and merge. GitLab will run alt.qa on the next pipeline. Results show in the merge request UI under "Quality".
Option C: Jenkins
Jenkins is more flexible but requires a plugin.
Step 1: Install the alt.qa Jenkins plugin
- Go to Manage Jenkins → Manage Plugins
- Available tab → search for "alt.qa"
- Check the box, click Install without restart
- Restart Jenkins
Step 2: Add credentials
- Manage Jenkins → Credentials → System
- Add Credentials → Kind: "Secret text"
- Secret: your alt.qa token, ID:
altqa-token
Step 3: Update your Jenkinsfile
pipeline {
agent any
environment {
ALTQA_TOKEN = credentials('altqa-token')
}
stages {
stage('Checkout') {
steps {
checkout scm
}
}
stage('alt.qa Scan') {
steps {
script {
sh '''
docker run --rm \
-e ALTQA_TOKEN=$ALTQA_TOKEN \
-v $(pwd):/workspace \
altqa/cli:latest \
altqa scan --project myproject
'''
}
}
}
}
post {
always {
publishHTML([
reportDir: 'altqa-results',
reportFiles: 'index.html',
reportName: 'alt.qa Report'
])
}
}
}
Commit and Jenkins will pick it up on the next build.
Part 2: Slack Integration (5 minutes)
Once CI/CD is running, route results to Slack so the team sees them in real-time.
Step 1: Create a Slack app
- Go to https://api.slack.com/apps/new
- Choose "From scratch"
- Name: "alt.qa", Workspace: your workspace
- Click Create
Step 2: Configure incoming webhooks
- In the app, go to "Incoming Webhooks"
- Turn on "Activate Incoming Webhooks"
- Click "Add New Webhook to Workspace"
- Select the channel (e.g., #quality, #devops)
- Copy the webhook URL
Step 3: Link to alt.qa
- alt.qa dashboard → Settings → Integrations → Slack
- Paste the webhook URL
- Choose notification rules:
- Notify on every scan (verbose but Practical)
- Notify only on failures (less noise, good for small teams)
- Notify on SLA breaches (ideal for production)
- Save
Next time a scan runs, Slack gets a notification with results, pass/fail status, and a link to the detailed report. You can thread reactions to drill into failures.
Slack Advanced: Thread replies
alt.qa can post detailed results as threaded replies to the main notification. This keeps your channel clean while preserving full context. Enable this in the integration settings under "Thread mode."
Part 3: Jira Integration (5 minutes)
Auto-create tickets for failures so they don't slip through cracks.
Step 1: Generate a Jira API token
- Log in to Atlassian account management
- API tokens → Create API token
- Name it "alt.qa"
- Copy the token
Step 2: Link to alt.qa
- alt.qa dashboard → Settings → Integrations → Jira
- Jira URL:
https://yourcompany.atlassian.net - Username: your Jira email
- Token: paste the API token
- Default Project: e.g., "QA" or "INFRA"
- Issue type: "Bug" or "Task" (depending on your workflow)
Step 3: Configure auto-create rules
- Still in Jira settings, check "Auto-create issues on severity >= High"
- Set assignee to your QA lead or the team
- Add label "alt.qa-auto" so you can filter them
- Save
Now when alt.qa detects a high-severity issue, it auto-creates a Jira ticket. You get an email, it appears in your backlog, and the cycle closes: code → alt.qa scan → Jira ticket → engineer fixes → PR → scan passes → ticket closes.
Part 4: Datadog Integration (5 minutes)
Send all alt.qa metrics to Datadog so you have a unified observability layer.
Step 1: Get your Datadog API key
- Log in to Datadog
- Organization Settings → API Keys
- Create a new key named "alt.qa"
- Copy it
Step 2: Configure alt.qa to emit metrics
# In your CI/CD environment, set:
export DD_API_KEY="your-datadog-api-key"
export DD_SITE="datadoghq.com" # or datadoghq.eu if in EU
# Then update your altqa scan command:
altqa scan \
--token $ALTQA_TOKEN \
--project myproject \
--datadog-enabled \
--dd-service "myservice" \
--dd-version $CI_COMMIT_SHA
Step 3: Verify in Datadog
- Datadog → Metrics Explorer
- Search for
altqa.* - You should see metrics like:
altqa.scan.duration- how long the scan tookaltqa.issues.count- total issues foundaltqa.issues.critical- critical-severity issuesaltqa.coverage- code coverage percentage
Now you can build Datadog dashboards that show quality metrics alongside performance, infra, and business metrics. Create monitors that alert PagerDuty when quality scores drop.
Datadog Dashboard Example
Create a "Quality & Reliability" dashboard in Datadog with 4 cards: (1) alt.qa scan duration over time, (2) issue count by severity, (3) code coverage trend, (4) comparison of main branch vs. PRs. This becomes your single pane of glass for quality health.
Part 5: PagerDuty Integration (3 minutes)
For critical production issues, escalate directly to on-call engineers.
Step 1: Create a PagerDuty integration key
- PagerDuty → Services → Your service
- Integrations tab → Add integration
- Type: "Events API v2"
- Copy the integration key
Step 2: Link to alt.qa
- alt.qa → Settings → Integrations → PagerDuty
- Integration key: paste it
- Alert on severity: "Critical"
- Save
Step 3: Test it
Trigger a scan manually (or wait for one to fail). If it finds a critical issue, PagerDuty creates an incident, notifies your on-call engineer, and escalates if not acknowledged.
Part 6: Custom Webhooks (Optional, but powerful)
If you have custom internal tools or monitoring systems, alt.qa can POST results to any webhook endpoint.
Configure a generic webhook:
altqa scan \
--token $ALTQA_TOKEN \
--project myproject \
--webhook-url "https://internal-metrics.company.com/altqa" \
--webhook-method POST
alt.qa will POST a JSON payload like:
{
"scan_id": "scan_abc123",
"project": "myproject",
"status": "failed",
"timestamp": "2026-02-15T14:22:00Z",
"issues": {
"critical": 2,
"high": 5,
"medium": 12,
"low": 8
},
"coverage": 87.3,
"duration_ms": 1250,
"branch": "main",
"commit": "f2a3b8c9"
}
Your system can then trigger custom logic, update an internal dashboard, send an email to compliance, update a scorecard, etc.
Full Integration Flow (Visual)
Here's what the complete pipeline looks like once everything is connected:
Developer pushes code → GitHub/GitLab/Jenkins picks it up → Runs alt.qa scan → Results flow to: (1) Slack notification, (2) Jira ticket if needed, (3) Datadog metrics, (4) PagerDuty alert if critical, (5) Custom webhook. The developer gets immediate feedback in the platform they're already using.
Troubleshooting Common Issues
Issue: "Token is invalid" error
Make sure your API token is correct and hasn't expired. Tokens expire after 90 days by default. Regenerate it in Settings → API Tokens.
Issue: Slack webhook not receiving messages
Check that the webhook URL is correct and the Slack app has permissions to post to that channel. Test by using curl to POST to the webhook URL manually.
Issue: Jira tickets have wrong project
Verify the project key in your Jira settings. It's usually all-caps, like "QA" or "INFRA". Check Jira → Projects to confirm.
Issue: Datadog metrics not showing up
Confirm your DD_API_KEY and DD_SITE are set correctly. Check Datadog → Logs to see if there are any auth errors from the alt.qa agent.
Issue: PagerDuty not triggering
Verify the integration key and make sure the severity threshold is set correctly. Critical issues won't alert if your threshold is set to "Blocker" or similar.
Best Practices
1. Start with GitHub Actions / GitLab CI, then add integrations. CI/CD is the foundation. Once that's working, adding Slack and Jira is straightforward.
2. Use notification rules to avoid alert fatigue. Notify on failures, not every success. Or use "only on production" mode for mature projects.
3. Keep tokens in environment variables or secrets managers. Never commit them to git. Use your CI/CD platform's secret management (GitHub Secrets, GitLab CI variables, Jenkins credentials).
4. Tag all auto-created Jira tickets. Use a consistent label like "alt.qa-auto" so you can filter, report on, and analyze them separately from manual tickets.
5. Set up a Datadog monitor for quality SLOs. Create a monitor that fires if code coverage drops below 80% or if critical issues spike. This turns quality from a check into a tracked metric.
6. Review integration logs monthly. Check that webhooks are firing, tokens haven't expired, and downstream systems are receiving data.
What's Next
Once your integrations are live, you have the infrastructure in place to:
- Build quality dashboards that executive stakeholders can see
- Create feedback loops so engineers see the impact of their changes immediately
- Establish quality SLOs tied to business metrics
- Automate enforcement, code that doesn't meet standards can't merge
- Correlate quality issues with incidents and customer complaints
The goal isn't to add more tools. It's to weave quality and reliability into the workflow you already have. Once alt.qa is plugged in, it becomes part of the fabric, invisible, but essential.
Ready to Integrate?
alt.qa works with your stack in minutes. Start with GitHub Actions, GitLab CI, or Jenkins, then add Slack, Jira, Datadog, and PagerDuty. Full docs and examples are on GitHub.
Try alt.qa Free →