Repository

Create a check run for a repository

post

Creates a check run on a commit with optional code annotations. Supports GitHub check runs and Azure DevOps build status. Useful for reporting CI/CD results, code quality checks, or custom validations. Annotations can highlight specific lines in files with issues.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
repositoryIdentifierstringRequired

Repository identifier in the format owner/repo

shastringRequired

Commit SHA to create the check for. For PRs, this should be the head commit SHA.

Example: 6dcb09b5b57875f334f61aebed695e2e4193db5e
pull_numbernumberOptional

Pull request number. If provided, the check will be associated with this PR.

Example: 123
titlestringRequired

Title of the check run

Example: sfp Metadata Duplicate Check
summarystringRequired

Summary of the check results

textstringOptional

Additional details about the check run

details_urlstringOptional

Details URL that will appear in the GitHub UI

Example: https://your-server.com/check-details/123
conclusionstring · enumOptional

Conclusion of the check run. Required when status is completed.

Default: successExample: successPossible values:
statusstring · enumOptional

Status of the check run. Defaults to completed.

Default: completedExample: completedPossible values:
skip_commentbooleanOptional

Skip posting a rich PR comment (ADO only). Use when the status badge is sufficient.

Default: false
check_categorystringOptional

Category of the check (analysis or validation). Used to construct web UI result page URLs.

Example: validation
Responses
post
/sfp/api/repository/checks

Update an existing check run (body-based)

patch

Updates a check run using check_id from the request body. Use this for check IDs that contain special characters (e.g., ADO genre/name format like "sfp/PR Validation").

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
check_idstringOptional

Check run ID. Required when using the body-based PATCH /checks endpoint (e.g., ADO check IDs with slashes).

Example: sfp/PR Validation
repositoryIdentifierstringRequired

Repository identifier in the format owner/repo

statusstring · enumRequired

Status of the check run

Example: completedPossible values:
conclusionstring · enumOptional

Conclusion of the check run. Required when status is completed.

Example: successPossible values:
titlestringOptional

Updated title of the check run

summarystringOptional

Updated summary of the check results

textstringOptional

Updated details about the check run

shastringOptional

Commit SHA. Required for Azure DevOps check updates.

Example: 6dcb09b5b57875f334f61aebed695e2e4193db5e
pull_numbernumberOptional

Pull request number. Required for Azure DevOps check updates.

Example: 123
details_urlstringOptional

Details URL to include in the check comment (e.g., link to analysis results page)

Example: https://your-server.com/project-lifecycle/analysis/34
skip_commentbooleanOptional

Skip posting a rich PR comment (ADO only). Use when the status badge is sufficient.

Default: false
check_categorystringOptional

Category of the check (analysis or validation). Used to construct web UI result page URLs.

Example: validation
Responses
chevron-right
200

The check run has been successfully updated

No content

patch
/sfp/api/repository/checks/update

No content

Update an existing check run

patch

Updates the status, conclusion, or output of an existing check run. For check IDs with special characters (slashes, spaces), use PATCH /checks/update instead.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
check_idstringRequired
Body
check_idstringOptional

Check run ID. Required when using the body-based PATCH /checks endpoint (e.g., ADO check IDs with slashes).

Example: sfp/PR Validation
repositoryIdentifierstringRequired

Repository identifier in the format owner/repo

statusstring · enumRequired

Status of the check run

Example: completedPossible values:
conclusionstring · enumOptional

Conclusion of the check run. Required when status is completed.

Example: successPossible values:
titlestringOptional

Updated title of the check run

summarystringOptional

Updated summary of the check results

textstringOptional

Updated details about the check run

shastringOptional

Commit SHA. Required for Azure DevOps check updates.

Example: 6dcb09b5b57875f334f61aebed695e2e4193db5e
pull_numbernumberOptional

Pull request number. Required for Azure DevOps check updates.

Example: 123
details_urlstringOptional

Details URL to include in the check comment (e.g., link to analysis results page)

Example: https://your-server.com/project-lifecycle/analysis/34
skip_commentbooleanOptional

Skip posting a rich PR comment (ADO only). Use when the status badge is sufficient.

Default: false
check_categorystringOptional

Category of the check (analysis or validation). Used to construct web UI result page URLs.

Example: validation
Responses
chevron-right
200

The check run has been successfully updated

application/json
idstringOptional

The check run ID

statusstringOptional

The current status of the check

conclusionstringOptional

The conclusion of the check

patch
/sfp/api/repository/checks/{check_id}

List open pull requests in a repository

get

Lists pull requests with optional filtering by username and state. Supports GitHub and Azure DevOps repositories. Supports pagination. Can filter PRs created by or assigned to a specific user. Returns basic PR information including title, state, and branch details.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
repositoryIdentifierstringRequired

Repository identifier in format owner/repo (GitHub) or org/project/repo (Azure DevOps)

usernamestringOptional

Filter pull requests by username

statestring · enumOptional

State of pull requests to return (default: open)

Possible values:
pagenumberOptional

Page number (1-based, default: 1)

per_pagenumberOptional

Number of results per page (default: 30, max: 100)

Responses
chevron-right
200

List of pull requests

application/json
idnumberOptional

The pull request ID

numbernumberOptional

The pull request number

html_urlstringOptional

URL to view the pull request

statestring · enumOptional

Current state of the pull request

Possible values:
titlestringOptional

Pull request title

bodystringOptional

Pull request description

created_atstring · date-timeOptional

When the pull request was created

updated_atstring · date-timeOptional

When the pull request was last updated

get
/sfp/api/repository/pull-requests

Create a pull request in a repository

post

Creates a new pull request between two branches. Supports draft pull requests. The source branch must have commits ahead of the target branch. Useful for automated PR creation in CI/CD workflows.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
repositoryIdentifierstringRequired

Repository identifier in the format owner/repo

Example: octocat/Hello-World
sourceBranchstringRequired

The source branch containing the changes

Example: feature-branch
targetBranchstringRequired

The target branch to merge changes into

Example: main
titlestringRequired

Title of the pull request

Example: Add new feature
descriptionstringOptional

Description of the pull request in markdown format

Example: This PR implements the following: - Feature A - Feature B
draftbooleanOptional

Whether to create as a draft pull request

Default: false
userTokenstringOptional

Personal access token to create the PR as a specific user. For GitHub: use a PAT with repo scope. For GitLab: use a PAT with api scope. If omitted, PR is created using the configured app credentials.

Responses
post
/sfp/api/repository/pull-requests

Get pull request details

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
pull_numbernumberRequired
Query parameters
repositoryIdentifierstringRequired
Responses
chevron-right
200

Pull request details

No content

get
/sfp/api/repository/pull-requests/{pull_number}

No content

Get PR context including metadata, changed files, and reviews

get

Returns a provider-agnostic PR context with branch info, commit SHAs, changed files, reviews, and metadata. Works with GitHub, Azure DevOps, and GitLab repositories. Used by sfp analyze to get PR context without needing CI-specific environment variables.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
pull_numbernumberRequired
Query parameters
repositoryIdentifierstringRequired

Repository identifier in format owner/repo (GitHub) or org/project/repo (Azure DevOps)

Example: flxbl-io/sf-core
Responses
chevron-right
200

PR context retrieved successfully

application/json
prNumbernumberRequired

Pull request number

repositoryIdentifierstringRequired

Repository identifier (owner/repo or org/project/repo)

sourceBranchstringRequired

Source branch (head branch)

targetBranchstringRequired

Target branch (base branch)

sourceShastringRequired

Source commit SHA (head commit)

targetShastringRequired

Target commit SHA (base commit)

titlestringRequired

PR title

bodystringOptional

PR description/body

changedFilesstring[]Required

List of files changed in the PR

authorstringOptional

PR author username

statestringOptional

PR state (open, closed, merged)

mergedbooleanOptional

Whether PR is merged

htmlUrlstringOptional

PR HTML URL

get
/sfp/api/repository/pull-requests/{pull_number}/context

Close a pull request

patch

Closes an open pull request without merging. The PR can be reopened later if needed. This action preserves all PR history including comments and reviews.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
pull_numbernumberRequired
Body
repositoryIdentifierstringRequired

Repository identifier in the format owner/repo

Example: flxbl-io/sf-core
Responses
chevron-right
200

The pull request has been successfully closed

application/json
idnumberOptional

The pull request ID

numbernumberOptional

The pull request number

statestring · enumOptional

Current state of the pull request

Possible values:
patch
/sfp/api/repository/pull-requests/{pull_number}/close

Reopen a pull request

patch

Reopens a previously closed pull request. The PR must not have been merged. All previous history including comments and reviews is preserved.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
pull_numbernumberRequired
Body
repositoryIdentifierstringRequired

Repository identifier in the format owner/repo

Example: flxbl-io/sf-core
Responses
chevron-right
200

The pull request has been successfully reopened

application/json
idnumberOptional

The pull request ID

numbernumberOptional

The pull request number

statestring · enumOptional

Current state of the pull request

Possible values:
patch
/sfp/api/repository/pull-requests/{pull_number}/reopen

Generate an authentication token for a specific repository

get

Generates a scoped authentication token for the specified repository. Supports GitHub (installation tokens via GitHub App or PAT) and Azure DevOps (PAT or Service Principal). The token is cached for 50 minutes to avoid unnecessary API calls. This endpoint requires an application token and the repository must be registered as a project.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
repositoryIdentifierstringRequired

Repository identifier in format owner/repo (GitHub) or org/project/repo (Azure DevOps)

Example: flxbl-io/sf-core
Responses
chevron-right
200

Authentication token generated successfully

application/json
tokenstringOptional

The authentication token

expiresAtstring · date-timeOptional

Token expiration time in ISO format

typestring · enumOptional

Type of authentication token

Possible values:
providerstring · enumOptional

Repository provider

Possible values:
scopestringOptional

Repository scope of the token

get
/sfp/api/repository/auth-token

Get authenticated clone URL for a repository

get

Returns an HTTPS clone URL with embedded authentication token. Supports GitHub and Azure DevOps repositories. This URL can be used directly with git clone without additional authentication. The token is scoped to the repository and has the same expiration as the auth token (cached for 50 minutes). Useful for automated workflows, CI/CD pipelines, or services like Windmill that need to clone repositories programmatically.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
repositoryIdentifierstringRequired

Repository identifier in format owner/repo (GitHub) or org/project/repo (Azure DevOps)

Example: flxbl-io/sf-core
Responses
chevron-right
200

Authenticated clone URL generated successfully

application/json
cloneUrlstringOptional

HTTPS clone URL with embedded authentication token

Example: https://x-access-token:[email protected]/owner/repo.git
expiresAtstring · date-timeOptional

Token expiration time in ISO format

typestring · enumOptional

Type of authentication token

Possible values:
providerstring · enumOptional

Repository provider

Possible values:
scopestringOptional

Repository scope of the token

get
/sfp/api/repository/clone-url

Get npmrc configuration for repository

get

Returns authenticated .npmrc file content for npm package registry access. Supports GitHub Packages (via integration), JFrog Artifactory, GitLab Package Registry, and custom npm registries. Content is cached for 50 minutes. Use this endpoint to generate .npmrc files for CI/CD workflows and Windmill flows that need to install private npm packages.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
repositoryIdentifierstringRequired

Repository identifier in format owner/repo

Example: flxbl-io/sf-core
scopestringOptional

NPM scope (without @ symbol). If not provided, inferred from repository owner or integration config.

Example: flxbl-io
Responses
chevron-right
200

npmrc configuration with content and scope

application/json
npmrcContentstringOptional

The npmrc file content

scopestringOptional

The npm scope used (without @ symbol)

get
/sfp/api/repository/npmrc

Get domains (release configs) from repository

get

Downloads a repository snapshot and extracts all domain/release configurations from the config directory. Returns both a simple array of domain names and full release config details. Results are cached for 30 minutes. The config directory location defaults to "config" but can be customized in project configuration.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
repositoryIdentifierstringRequired

Repository identifier in format owner/repo (GitHub) or org/project/repo (Azure DevOps)

Example: flxbl-io/sf-core
branchstringOptional

Git branch name (defaults to "main")

Example: develop
Responses
chevron-right
200

Domains retrieved successfully

application/json
domainsstring[]Required

Array of domain names

Example: ["sales","frameworks","integration"]
get
/sfp/api/repository/domains

Get packages from repository sfdx-project.json

get

Downloads a repository snapshot and extracts all package information from sfdx-project.json. Returns both a simple array of package names and detailed package metadata including paths, versions, types, and dependencies. Results are cached for 30 minutes.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
repositoryIdentifierstringRequired

Repository identifier in format owner/repo (GitHub) or org/project/repo (Azure DevOps)

Example: flxbl-io/sf-core
branchstringOptional

Git branch name (defaults to "main")

Example: develop
Responses
chevron-right
200

Packages retrieved successfully

application/json
packagesstring[]Required

Array of package names

Example: ["core-crm","sales-cloud","service-cloud"]
get
/sfp/api/repository/packages

Get issue or pull request details

get

Retrieves details of an issue or pull request including title, body, author, labels, and state. Works with GitHub issues/PRs and Azure DevOps work items/PRs.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
issueNumberstringRequired
Query parameters
repositoryIdentifierstringRequired

Repository identifier in format owner/repo (GitHub) or org/project/repo (Azure DevOps)

Example: flxbl-io/sf-core
Responses
chevron-right
200

Issue details

application/json
numbernumberOptional

Issue/PR number

titlestringOptional

Issue title

bodystringOptional

Issue body/description

authorstringOptional

Author username

statestringOptional

Current state (open/closed)

labelsstring[]Optional

Labels attached to the issue

get
/sfp/api/repository/issues/{issueNumber}

List comments on an issue or pull request

get

Retrieves all comments on an issue or pull request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
issueNumberstringRequired
Query parameters
repositoryIdentifierstringRequired

Repository identifier in format owner/repo (GitHub) or org/project/repo (Azure DevOps)

Responses
chevron-right
200

List of comments

application/json
idstringOptional

Comment ID

bodystringOptional

Comment body

authorstringOptional

Comment author

createdAtstring · date-timeOptional

When the comment was created

get
/sfp/api/repository/issues/{issueNumber}/comments

Add a comment to an issue or pull request

post

Posts a new comment to an issue or pull request. Supports GitHub and Azure DevOps repositories.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
issueNumberstringRequired
Responses
post
/sfp/api/repository/issues/{issueNumber}/comments

No content

Add a reaction to a comment

post

Creates a reaction on a specific comment. Supports standard reactions like +1, -1, laugh, confused, heart, hooray, rocket, eyes.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
issueNumberstringRequired
commentIdstringRequired
Responses
post
/sfp/api/repository/issues/{issueNumber}/comments/{commentId}/reactions

No content

Add labels to an issue or pull request

post

Adds one or more labels to an issue or pull request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
issueNumberstringRequired
Responses
post
/sfp/api/repository/issues/{issueNumber}/labels

No content

Delete a branch from a repository

delete

Deletes the specified branch from the remote repository. Protected branches cannot be deleted.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
branchNamestringRequired
Query parameters
repositoryIdentifierstringRequired

Repository identifier in format owner/repo (GitHub) or org/project/repo (Azure DevOps)

Example: flxbl-io/sf-core
Responses
chevron-right
200

Branch deleted successfully

No content

delete
/sfp/api/repository/branches/{branchName}

No content

Remove a label from an issue or pull request

delete

Removes a label from an issue or pull request. Works with GitHub and Azure DevOps.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
issueNumberstringRequired
labelstringRequired
Query parameters
repositoryIdentifierstringRequired

Repository identifier in format owner/repo (GitHub) or org/project/repo (Azure DevOps)

Example: flxbl-io/sf-core
Responses
chevron-right
200

Label removed successfully

No content

delete
/sfp/api/repository/issues/{issueNumber}/labels/{label}

No content

Last updated