Releases
Retrieves a comprehensive view of all releases deployed across release environments.
This endpoint:
- Fetches all environments with category "release"
- Groups releases by domain and name
- Shows deployment status across environments ordered by orchestration order
- Optionally includes package changelog information between environments
The changelog feature shows what packages changed between consecutive environments,
including commits and work items. Changelog diffs are intelligently cached to avoid
duplicate database queries for the same version transitions.
Example use cases:
- View which environments have a specific release deployed
- Track release progression through environments
- Understand what changed between environment deployments
- Audit release history across your deployment pipeline
Authorizations
Query parameters
repositoryIdentifierstringRequiredExample:
Repository identifier in format owner/repo
myorg/myrepo
domainstringOptionalExample:
Filter releases by domain/release configuration
core
releaseNamestringOptionalExample:
Filter by specific release name
v1.2.3
includeChangelogbooleanOptionalExample:
Include package changelog information between environments (default: false)
true
activeOnlybooleanOptionalExample:
Include only active environments (default: true)
true
limitnumberOptionalExample:
Maximum number of releases to return (default: 50, min: 1, max: 200)
50
offsetnumberOptionalExample:
Number of releases to skip for pagination (default: 0, min: 0)
0
forcebooleanOptionalExample:
Force refresh bypassing cache (default: false). Cache TTL is 30 minutes.
false
skipLockStatusbooleanRequired
Responses
200
Releases retrieved successfully
application/json
400
Bad request - Invalid parameters
application/json
404
Repository not found
application/json
500
Internal server error
application/json
get
GET /sfp/api/releases?repositoryIdentifier=myorg%2Fmyrepo&skipLockStatus=true HTTP/1.1
Host:
Authorization: Bearer JWT
Accept: */*
{
"repositoryIdentifier": "myorg/myrepo",
"releases": [
{
"name": "v1.2.3",
"domain": "core",
"environments": [
{
"name": "staging",
"environmentId": "123e4567-e89b-12d3-a456-426614174000",
"deployedAt": "2024-01-15T10:30:00.000Z",
"packages": {
"core": "1.2.3",
"ui": "2.0.1"
},
"packageDetails": [
{
"name": "core",
"version": "1.2.3",
"skipped": false,
"status": "Success",
"versionInOrg": "1.2.2",
"isLeading": true,
"error": null,
"startTime": "2024-01-15T10:30:00.000Z",
"endTime": "2024-01-15T10:35:00.000Z"
}
],
"changesFromPrevious": [
{
"packageName": "core",
"fromVersion": "1.2.2",
"toVersion": "1.2.3",
"totalCommits": 5,
"totalWorkItems": 3,
"totalPullRequests": 2,
"workItems": {
"issues": {
"JIRA-123": [
"abc123",
"def456"
],
"JIRA-124": [
"ghi789"
]
},
"pullRequests": {
"456": [
"abc123"
],
"789": [
"def456"
]
},
"byType": {
"jira": {
"JIRA-123": [
"abc123"
]
},
"github": {
"456": [
"def456"
]
},
"other": {
"TASK-789": [
"ghi789"
]
}
}
},
"commitRange": {
"from": "abc123",
"to": "def456"
}
}
],
"orchestrationOrder": 1,
"metadata": {},
"deploymentCounts": {
"deployed": 2,
"skipped": 36,
"failed": 0,
"total": 38
}
}
],
"firstDeployedAt": "2024-01-15T10:30:00.000Z",
"lastDeployedAt": "2024-01-20T15:45:00.000Z",
"deploymentCount": 4,
"deploymentStatus": {
"status": "in_progress",
"totalPackages": 3,
"packagesCompleted": [
"core",
"ui"
],
"packagesInProgress": [
"api"
],
"packagesWithIssues": [
{
"packageName": "auth",
"issue": "Package has been rolled back in staging"
}
],
"missingFromEnvironments": [
"production"
],
"recommendations": [
"Consider marking this release as obsolete"
]
},
"packageStatuses": [
{
"packageName": "core",
"releaseVersion": "1.2.3",
"isFullyDeployed": false,
"isAbandoned": false,
"trajectory": "progressing"
}
],
"releaseDefinition": {
"core": "1.2.3",
"ui": "2.0.1"
}
}
],
"totalCount": 10,
"changelogStats": {
"uniqueDiffsCalculated": 5,
"totalEnvironments": 12,
"cacheHits": 7,
"processingTimeMs": 250
},
"retrievedAt": "2024-01-15T10:30:00.000Z",
"filters": {
"domain": "core",
"includeChangelog": true
}
}
Was this helpful?