Skip to content
Ona Docs

ListSCMIntegrations

client.runners.configurations.scmIntegrations.list(ScmIntegrationListParams { token, pageSize, filter, pagination } params, RequestOptionsoptions?): IntegrationsPage<ScmIntegration { id, host, oauth, 4 more } >
POST/gitpod.v1.RunnerConfigurationService/ListSCMIntegrations

Lists SCM integrations for a runner.

Use this method to:

  • View all integrations
  • Monitor integration status
  • Check available SCMs

Examples

  • List integrations:

    Shows all SCM integrations.

    filter:
      runnerIds: ["d2c94c27-3b76-4a42-b88c-95a85e392c68"]
    pagination:
      pageSize: 20
ParametersExpand Collapse
params: ScmIntegrationListParams { token, pageSize, filter, pagination }
token?: string

Query param

pageSize?: number

Query param

maximum100
minimum0
filter?: Filter

Body param

runnerIds?: Array<string>

runner_ids filters the response to only SCM integrations of these Runner IDs

ReturnsExpand Collapse
ScmIntegration { id, host, oauth, 4 more }
id?: string

id is the unique identifier of the SCM integration

host?: string
oauth?: ScmIntegrationOAuthConfig { clientId, encryptedClientSecret, issuerUrl } | null
clientId?: string

client_id is the OAuth app’s client ID in clear text.

encryptedClientSecret?: string

encrypted_client_secret is the OAuth app’s secret encrypted with the runner’s public key.

formatbyte
issuerUrl?: string

issuer_url is used to override the authentication provider URL, if it doesn’t match the SCM host.

+optional if not set, this account is owned by the installation.

pat?: boolean
runnerId?: string
scmId?: string

scm_id references the scm_id in the runner’s configuration schema that this integration is for

virtualDirectory?: string | null

virtual_directory is the virtual directory path for Azure DevOps Server (e.g., “/tfs”). This field is only used for Azure DevOps Server SCM integrations and should be empty for other SCM types. Azure DevOps Server APIs work without collection when PAT scope is ‘All accessible organizations’.

ListSCMIntegrations

import Gitpod from '@gitpod/sdk';

const client = new Gitpod({
  bearerToken: process.env['GITPOD_API_KEY'], // This is the default and can be omitted
});

// Automatically fetches more pages as needed.
for await (const scmIntegration of client.runners.configurations.scmIntegrations.list({
  filter: { runnerIds: ['d2c94c27-3b76-4a42-b88c-95a85e392c68'] },
  pagination: { pageSize: 20 },
})) {
  console.log(scmIntegration.id);
}
{
  "integrations": [
    {
      "id": "id",
      "host": "host",
      "oauth": {
        "clientId": "clientId",
        "encryptedClientSecret": "U3RhaW5sZXNzIHJvY2tz",
        "issuerUrl": "issuerUrl"
      },
      "pat": true,
      "runnerId": "runnerId",
      "scmId": "scmId",
      "virtualDirectory": "virtualDirectory"
    }
  ],
  "pagination": {
    "nextToken": "nextToken"
  }
}
Returns Examples
{
  "integrations": [
    {
      "id": "id",
      "host": "host",
      "oauth": {
        "clientId": "clientId",
        "encryptedClientSecret": "U3RhaW5sZXNzIHJvY2tz",
        "issuerUrl": "issuerUrl"
      },
      "pat": true,
      "runnerId": "runnerId",
      "scmId": "scmId",
      "virtualDirectory": "virtualDirectory"
    }
  ],
  "pagination": {
    "nextToken": "nextToken"
  }
}