Releases

Get unified view of releases across environments

get

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
repositoryIdentifierstringRequired

Repository identifier in format owner/repo

Example: myorg/myrepo
domainstringOptional

Filter releases by domain/release configuration

Example: core
releaseNamestringOptional

Filter by specific release name

Example: v1.2.3
includeChangelogbooleanOptional

Include package changelog information between environments (default: false)

Example: true
activeOnlybooleanOptional

Include only active environments (default: true)

Example: true
limitnumberOptional

Maximum number of releases to return (default: 50, min: 1, max: 200)

Example: 50
offsetnumberOptional

Number of releases to skip for pagination (default: 0, min: 0)

Example: 0
forcebooleanOptional

Force refresh bypassing cache (default: false). Cache TTL is 30 minutes.

Example: false
skipLockStatusbooleanRequired
Responses
200

Releases retrieved successfully

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?