Release Candidates
Returns the package-version delta and git file-level diff between two release candidates. Async, mirroring code-analysis / AI reports: a cached result is served immediately (status: available); otherwise the generate-release-diff flow is dispatched and status: pending is returned with a jobId. Poll this same endpoint (same from/to) until status becomes available — the result is keyed by (repository, from, to), not by jobId. Concurrent polls reuse the in-flight run.
Repository identifier (owner/repo or org/project/repo).
flxbl-io/sf-coreBaseline release ref as domain:releaseName.
sales:sales-10JUN26-1Target release ref as domain:releaseName.
sales:sales-19JUN26-2Force a recompute, bypassing the cache (an in-flight run is still reused).
falseThe diff (available) or the in-flight job (pending).
available — data holds the cached diff. pending — computation is running; poll the same query until available. error — computation failed.
Hatchet execution id of the in-flight computation (status pending).
Human-readable status detail.
Missing required query parameter(s): repositoryIdentifier, from, to.
Unauthorized — invalid or missing token.
Forbidden - Requires role: member, owner, application
GET /sfp/api/release-candidates/diff?repositoryIdentifier=flxbl-io%2Fsf-core&from=sales%3Asales-10JUN26-1&to=sales%3Asales-19JUN26-2 HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"status": "available",
"data": {
"repositoryIdentifier": "text",
"fromRelease": "text",
"toRelease": "text",
"packages": [
{
"package": "text",
"fromVersion": "text",
"toVersion": "text",
"change": "added"
}
],
"summary": {},
"fileDiff": {},
"computedAt": "text",
"status": "text",
"durationMs": 1
},
"jobId": "text",
"message": "text"
}Callback used by the generate-release-diff flow to persist its result into the doc store. Requires an application token.
Repository identifier
Baseline release ref (domain:releaseName)
Target release ref (domain:releaseName)
Counts by change type
Git file-level diff between the two release commits, grouped by package. Each package lists its changed files with status (A/M/D). Counts are exact; the file listing is capped (filesTruncated flags when the cap was hit). No patch hunks.
ISO timestamp the diff was computed
completed | failed
Diff stored.
No content
Invalid request body.
Unauthorized — this endpoint requires an application token.
Forbidden - Requires role: application
POST /sfp/api/release-candidates/diff/results HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 238
{
"repositoryIdentifier": "text",
"fromRelease": "text",
"toRelease": "text",
"packages": [
{
"package": "text",
"fromVersion": "text",
"toVersion": "text",
"change": "added"
}
],
"summary": {},
"fileDiff": {},
"computedAt": "text",
"status": "text",
"durationMs": 1
}No content
Last updated
Was this helpful?