Reviews

sfp server API reference for Reviews: 2 endpoints.

GET/sfp/api/reviews/pull-requests

Retrieves all pull requests for a repository with comprehensive metadata including Salesforce component changes, review environment assignments, validation status, and component overlap detection.

This endpoint always answers from cache and returns in ~1s. The snapshot is rebuilt by the Hatchet refresh-review-cache workflow every 15 minutes.

Passing refresh=true dispatches a refresh for this repository and returns the current snapshot immediately with refreshing: true — it does not wait for the rebuild. Poll this endpoint until cacheVersion changes to pick up the fresh data.

Authorization

access-token
AuthorizationBearer <token>

In: header

Query Parameters

repositoryIdentifier*string

Repository identifier in the format owner/repo

prNumber?string

Optional PR number to filter for a specific pull request

status?string

Optional status filter: open, closed, or all (default: all)

refresh?boolean

Force refresh the cache and fetch fresh data

Defaultfalse

Response Body

application/json

curl -X GET "https://example.com/sfp/api/reviews/pull-requests?repositoryIdentifier=flxbl-io%2Fsf-core"
{  "openPrs": {    "10": {      "issueTitle": "Update CustomMetadataFeatureSettingsProvider.cls",      "linkToIssue": "https://github.com/phieu-flxbl/sf-core/pull/10",      "number": 10,      "branch": "feature-branch",      "author": {        "login": "octocat",        "avatarUrl": "https://avatars.githubusercontent.com/u/123456?v=4"      },      "elapsedTime": 86400000,      "merged": false    }  },  "closedPrs": {},  "cacheVersion": 42,  "refreshing": false,  "refreshRunId": "string"}
POST/sfp/api/reviews/pull-requests/refresh

Dispatches the Hatchet refresh-review-cache workflow scoped to this repository and returns immediately with the run id.

The rebuild clones the repository and resolves Salesforce metadata for every open PR, so it takes minutes — it deliberately runs in a worker and never on the API process. Poll GET reviews/pull-requests until cacheVersion changes to observe the result.

Repeat requests within a short window coalesce onto the in-flight run (alreadyRunning: true) instead of queueing another.

Authorization

access-token
AuthorizationBearer <token>

In: header

Query Parameters

repositoryIdentifier*string

Response Body

application/json

curl -X POST "https://example.com/sfp/api/reviews/pull-requests/refresh?repositoryIdentifier=string"
{  "repositoryIdentifier": "string",  "dispatched": true,  "alreadyRunning": true,  "runId": "string",  "reason": "hatchet-disabled"}