Release Candidates

List release candidates with optional filters

get
Authorizations
Query parameters
repositoryIdentifierstringOptional

Filter by repository

domainstringOptional

Filter by domain

branchstringOptional

Filter by branch

limitnumberOptional

Limit results (1-200, default: 50)

offsetnumberOptional

Offset for pagination (default: 0)

Responses
200

List of release candidates

application/json
get
GET /sfp/api/release-candidates HTTP/1.1
Host: 
Authorization: Bearer JWT
Accept: */*
{
  "items": [
    {
      "id": "text",
      "repositoryIdentifier": "text",
      "domain": "text",
      "releaseName": "text",
      "commitSha": "text",
      "branch": "text",
      "tag": "text",
      "value": {},
      "version": 1,
      "createdAt": "text",
      "updatedAt": "text",
      "createdBy": "text",
      "updatedBy": "text"
    }
  ],
  "total": 1,
  "limit": 1,
  "offset": 1
}

Create or update a release candidate

post
Authorizations
Body
repositoryIdentifierstringRequired

Repository identifier (e.g., "owner/repo")

domainstringRequired

Domain/release configuration name

releaseNamestringRequired

Release name

commitShastringRequired

Git commit SHA

branchstringOptional

Git branch name

tagstringOptional

Git tag

valueobjectRequired

Release definition and metadata

Responses
201

Release candidate created/updated

application/json
post
POST /sfp/api/release-candidates HTTP/1.1
Host: 
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 127

{
  "repositoryIdentifier": "text",
  "domain": "text",
  "releaseName": "text",
  "commitSha": "text",
  "branch": "text",
  "tag": "text",
  "value": {}
}
{
  "id": "text",
  "repositoryIdentifier": "text",
  "domain": "text",
  "releaseName": "text",
  "commitSha": "text",
  "branch": "text",
  "tag": "text",
  "value": {},
  "version": 1,
  "createdAt": "text",
  "updatedAt": "text",
  "createdBy": "text",
  "updatedBy": "text"
}

Get the latest release candidate for a domain

get
Authorizations
Query parameters
repositoryIdentifierstringRequired

Repository identifier

domainstringRequired

Domain name

branchstringOptional

Filter by branch

Responses
200

Latest release candidate

application/json
get
GET /sfp/api/release-candidates/latest?repositoryIdentifier=text&domain=text HTTP/1.1
Host: 
Authorization: Bearer JWT
Accept: */*
{
  "id": "text",
  "repositoryIdentifier": "text",
  "domain": "text",
  "releaseName": "text",
  "commitSha": "text",
  "branch": "text",
  "tag": "text",
  "value": {},
  "version": 1,
  "createdAt": "text",
  "updatedAt": "text",
  "createdBy": "text",
  "updatedBy": "text"
}

Get a specific release candidate

get
Authorizations
Path parameters
idstringRequired

Release candidate ID

Responses
200

Release candidate details

application/json
get
GET /sfp/api/release-candidates/{id} HTTP/1.1
Host: 
Authorization: Bearer JWT
Accept: */*
{
  "id": "text",
  "repositoryIdentifier": "text",
  "domain": "text",
  "releaseName": "text",
  "commitSha": "text",
  "branch": "text",
  "tag": "text",
  "value": {},
  "version": 1,
  "createdAt": "text",
  "updatedAt": "text",
  "createdBy": "text",
  "updatedBy": "text"
}

Delete a release candidate

delete
Authorizations
Path parameters
idstringRequired

Release candidate ID

Responses
204

Release candidate deleted

delete
DELETE /sfp/api/release-candidates/{id} HTTP/1.1
Host: 
Authorization: Bearer JWT
Accept: */*

No content

Compare release candidate with an environment

post
Authorizations
Path parameters
idstringRequired

Release candidate ID

Body
environmentIdstringRequired

Environment ID to compare against

Responses
200

Comparison results

application/json
post
POST /sfp/api/release-candidates/{id}/compare HTTP/1.1
Host: 
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 24

{
  "environmentId": "text"
}
{
  "releaseCandidate": {
    "id": "text",
    "repositoryIdentifier": "text",
    "domain": "text",
    "releaseName": "text",
    "commitSha": "text",
    "branch": "text",
    "tag": "text",
    "value": {},
    "version": 1,
    "createdAt": "text",
    "updatedAt": "text",
    "createdBy": "text",
    "updatedBy": "text"
  },
  "environment": {},
  "comparison": {
    "packagesToInstall": [],
    "packagesToUpdate": [],
    "packagesToRemove": [],
    "totalChanges": 1
  },
  "estimatedDeploymentTime": 1
}

Get change analysis for a release candidate

get
Authorizations
Path parameters
idstringRequired

Release candidate ID

Query parameters
sincestringOptional

Compare changes since this commit SHA or date

Responses
200

Change analysis

application/json
get
GET /sfp/api/release-candidates/{id}/changes HTTP/1.1
Host: 
Authorization: Bearer JWT
Accept: */*
{
  "packages": [
    "text"
  ],
  "workItems": [
    "text"
  ],
  "commits": [
    "text"
  ]
}

Get rolling analysis from baseline to latest candidate

get

Performs comprehensive rolling analysis showing progression from last completed release to latest candidate

Authorizations
Path parameters
repositorystringRequired

Repository identifier (e.g., myorg/myrepo)

domainstringRequired

Domain name

Query parameters
branchstringOptional

Filter by branch

includeChangelogbooleanOptional

Include package changelogs

Responses
200

Rolling analysis data

application/json
get
GET /sfp/api/release-candidates/rolling-analysis/{repository}/{domain} HTTP/1.1
Host: 
Authorization: Bearer JWT
Accept: */*
200

Rolling analysis data

{
  "repository": "text",
  "domain": "text",
  "baseline": {
    "releaseName": "text",
    "createdAt": "text",
    "completedAt": "text",
    "deployedEnvironments": [
      "text"
    ],
    "packages": {
      "ANY_ADDITIONAL_PROPERTY": "text"
    }
  },
  "orchestrationOrder": [
    "text"
  ],
  "currentEnvironmentStates": {
    "ANY_ADDITIONAL_PROPERTY": {
      "currentRelease": "text",
      "packages": {
        "ANY_ADDITIONAL_PROPERTY": "text"
      }
    }
  },
  "candidates": [
    {
      "id": "text",
      "releaseName": "text",
      "branch": "text",
      "commitSha": "text",
      "createdAt": "text",
      "incrementalChanges": {
        "packages": {
          "added": [
            {
              "name": "text",
              "version": "text"
            }
          ],
          "updated": [
            {
              "name": "text",
              "fromVersion": "text",
              "toVersion": "text"
            }
          ],
          "removed": [
            {
              "name": "text",
              "version": "text"
            }
          ]
        },
        "summary": {
          "totalPackageChanges": 1,
          "totalCommits": 1,
          "totalWorkItems": 1
        }
      },
      "cumulativeChanges": {
        "packages": {
          "added": [
            {
              "name": "text",
              "version": "text"
            }
          ],
          "updated": [
            {
              "name": "text",
              "fromVersion": "text",
              "toVersion": "text"
            }
          ],
          "removed": [
            {
              "name": "text",
              "version": "text"
            }
          ]
        },
        "summary": {
          "totalPackageChanges": 1,
          "totalCommits": 1,
          "totalWorkItems": 1
        },
        "cumulativeSummary": {
          "estimatedDeploymentTime": 1
        }
      }
    }
  ],
  "summary": {
    "deploymentPipeline": {
      "environmentStatus": [
        {
          "environment": "text",
          "currentRelease": "text",
          "candidatesInQueue": [
            "text"
          ]
        }
      ],
      "blockers": [
        {
          "environment": "text",
          "blockedCandidate": "text",
          "reason": "text"
        }
      ]
    },
    "progressMetrics": {
      "candidatesFullyDeployed": 1,
      "candidatesInProgress": 1,
      "candidatesPending": 1,
      "estimatedTimeToFullDeployment": 1
    },
    "baselineToLatestSummary": {
      "totalCandidates": 1,
      "totalUniqueWorkItems": 1,
      "totalUniqueCommits": 1,
      "packageProgressions": [
        {
          "name": "text",
          "journey": [
            {
              "version": "text",
              "candidateIndex": 1
            }
          ]
        }
      ]
    },
    "branchAnalysis": {
      "mainBranch": "text",
      "featureBranches": [
        {
          "branch": "text",
          "candidateCount": 1,
          "firstCandidate": "text",
          "lastCandidate": "text"
        }
      ]
    }
  },
  "analyzedAt": "text"
}

Get environment-specific progression analysis

get

Analyzes progression for a specific environment including pending candidates

Authorizations
Path parameters
repositorystringRequired

Repository identifier (e.g., myorg/myrepo)

domainstringRequired

Domain name

environmentstringRequired

Environment name

Query parameters
includeChangelogbooleanOptional

Include package changelogs

Responses
200

Environment progression analysis

get
GET /sfp/api/release-candidates/rolling-analysis/{repository}/{domain}/environment/{environment} HTTP/1.1
Host: 
Authorization: Bearer JWT
Accept: */*
200

Environment progression analysis

No content

Assess deployment risk for next candidate

get

Provides risk assessment for the next deployment to a specific environment

Authorizations
Path parameters
repositorystringRequired

Repository identifier (e.g., myorg/myrepo)

domainstringRequired

Domain name

environmentstringRequired

Environment name

Responses
200

Deployment risk assessment

get
GET /sfp/api/release-candidates/rolling-analysis/{repository}/{domain}/environment/{environment}/risk HTTP/1.1
Host: 
Authorization: Bearer JWT
Accept: */*
200

Deployment risk assessment

No content

Was this helpful?