Get Workflow Runs
Retrieves workflow runs for a repository or specific workflow.
Query Parameters
The repository owner (user or organization)
Optional workflow ID to filter runs for a specific workflow
Page number for pagination (minimum 1)
Number of results per page (1-100)
Response
Total number of workflow runs
Array of workflow run objects
Run status: queued, in_progress, completed
Run conclusion: success, failure, cancelled, skipped, timed_out, action_required
GitHub URL for the workflow run
ISO 8601 timestamp when the run was created
Commit SHA that triggered the run
Example Request
curl "https://yourdomain.com/api/workflow-runs?owner=octocat&repo=Hello-World"
Error Responses
{
"error": "Missing owner or repo"
}
{
"error": "Not authenticated"
}
Compare Workflow Runs
Compare multiple workflow runs to analyze differences in execution time, status, and job results.
Query Parameters
The repository owner (user or organization)
Array of workflow run IDs to compare (2-10 runs)
Response
Array of run comparison objectsShow Run Comparison Object
Workflow run details (same structure as /api/workflow-runs)
Array of job objects for this run
ISO 8601 timestamp when job started
ISO 8601 timestamp when job completed
Example Request
curl "https://yourdomain.com/api/compare-runs?owner=octocat&repo=Hello-World&run_ids=123&run_ids=456&run_ids=789"
Error Responses
Show 400 Bad Request - Missing Parameters
{
"error": "Missing owner or repo"
}
Show 400 Bad Request - Too Few Runs
{
"error": "Need at least 2 run IDs"
}
Show 400 Bad Request - Too Many Runs
{
"error": "Maximum 10 runs allowed"
}
Get Check Status
Retrieves the check status for a specific Git reference (branch, tag, or commit SHA).
Query Parameters
The repository owner (user or organization)
Git reference (branch name, tag, or commit SHA)
Response
Overall check state: success, failure, pending, error
Array of individual check/status objects
URL to view detailed results
Array of check run objects from GitHub Checks API
Example Request
curl "https://yourdomain.com/api/check-status?owner=octocat&repo=Hello-World&ref=main"
Example Response
{
"state": "success",
"statuses": [
{
"context": "continuous-integration/travis-ci",
"state": "success",
"description": "The Travis CI build passed",
"target_url": "https://travis-ci.org/octocat/Hello-World/builds/1"
}
],
"check_runs": [
{
"name": "build",
"status": "completed",
"conclusion": "success",
"html_url": "https://github.com/octocat/Hello-World/runs/4"
}
]
}
Error Responses
{
"error": "Missing owner, repo, or ref"
}
Show 500 Internal Server Error
{
"error": "Failed to fetch check status"
}
Get Job Logs
Retrieves parsed logs for a specific workflow job.
Query Parameters
The repository owner (user or organization)
Response
Array of log step objects
Array of log line objects
ISO 8601 timestamp (null if not present)
Annotation type: error, warning, debug, notice, or null
Example Request
curl "https://yourdomain.com/api/job-logs?owner=octocat&repo=Hello-World&job_id=12345"
Example Response
{
"steps": [
{
"stepNumber": 1,
"stepName": "Set up job",
"lines": [
{
"timestamp": "2024-01-15T10:30:00Z",
"content": "Current runner version: '2.311.0'",
"annotation": null
}
]
},
{
"stepNumber": 2,
"stepName": "Run tests",
"lines": [
{
"timestamp": "2024-01-15T10:30:15Z",
"content": "Running test suite...",
"annotation": null
},
{
"timestamp": "2024-01-15T10:30:16Z",
"content": "Test failed: expected true, got false",
"annotation": "error"
}
]
}
]
}
Error Responses
{
"error": "Missing owner, repo, or job_id"
}
{
"error": "Job not found"
}
{
"error": "Logs are no longer available"
}
GitHub deletes workflow logs after 90 days.
Notes
- All workflow endpoints require authentication via session cookies
- Logs are parsed to extract step groups, timestamps, and GitHub annotations
- The
/api/compare-runs endpoint fetches up to 100 jobs per run
- Check status combines data from both GitHub Status API and Checks API
- Workflow run pagination supports 1-100 results per page