Skip to main content

Get started

Authentication

To use the Build Promoter API, you need to authenticate with an access token with specific scopes.

Get an access token with supported scopes

The Build Promoter API supports the following scopes:

ScopeDescription
buildpromoter.builds.readRetrieve information about builds with all the GET endpoints.
buildpromoter.builds.writePromote a build.
buildpromoter.builds.forcepromotePromote a build regardless of the quality gate status.

The above scopes need to be combined with the following scopes limiting the level of access by a tenant, star system, or planet class:

ScopeDescription
tenant.{tenantId} + any.projectGet access to a specific tenant and any star system to retrieve information about a build.
tenant.{tenantId} + project.{starSystemId}Get access to a specific tenant and a specific star system to retrieve information about a build.
tenant.{tenantId} + project.{starSystemId} + any.planet_classGet access to a specific star system to promote a build to a physical star system of any class.
tenant.{tenantId} + project.{starSystemId} + planet_class.{dev|preprod|prod}Get access to a specific star system to promote a build. The chosen planet_class should be a class of the physical star system to which you promote a build.

Note:

To promote a build or promote a build regardless of the quality gate status, you need to have an access token with one of the following scopes:

  • any.planet_class
  • planet_class.{dev|preprod|prod}

To get an access token with scopes, you must authenticate with Guidewire Hub using your client ID and client secret. Send the following POST request:

curl -s --location --request POST $GWHUB_URL \
--data-urlencode "grant_type=client_credentials" \
--data-urlencode "scope=tenant.{tenantId} project.{projectId} $SCOPES" \
--data-urlencode "client_id=$GWHUB_CLIENT_ID" \
--data-urlencode "client_secret=$GWHUB_CLIENT_SECRET" | jq -r '.access_token'

Where:

  • $GWHUB_URL depends on your region. Use one of the following:

    RegionURL
    AMERhttps://guidewire-hub.okta.com/oauth2/aus11vix3uKEpIfSI357/v1/token
    CANADAhttps://guidewire-hub.okta.com/oauth2/aus11vix3uKEpIfSI357/v1/token
    EMEAhttps://guidewire-hub-eu.okta.com/oauth2/ausc2q01c40dNZII0416/v1/token
    APAChttps://guidewire-hub-apac.okta.com/oauth2/ausbg05gfcTZQ7bpH3l6/v1/token
    JAPANhttps://guidewire-hub-apac.okta.com/oauth2/ausbg05gfcTZQ7bpH3l6/v1/token
  • $SCOPES is a list with at least one supported scope, separated by white spaces.

    Example: buildpromoter.builds.read buildpromoter.builds.write.


The response contains a JSON object with the requested access token:

Example response
{
"token_type": "Bearer",
"expires_in": 3600,
"access_token": "xxxxxxxx",
"scope": "scope=buildpromoter.builds.read tenant.{tenantId} project.{starSystemId}"
}

Make an authorized call

To authorize the API requests, add the obtained access token to an Authorization header:

Authorization: Bearer {access_token}

For example:

curl -s --location --request GET "$BUILD_PROMOTER_URL" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"

Base URLs

Depending on your region, use one of the following base URLs:

RegionURL
AMERhttps://buildpromoter.api.omega2-andromeda.guidewire.net/
CANADAhttps://buildpromoter.api.omega2-butterfly.guidewire.net/
EMEAhttps://buildpromoter.api.omega2-cartwheel.guidewire.net/
APAChttps://buildpromoter.api.omega2-circinus.guidewire.net/
JAPANhttps://buildpromoter.api.omega2-milkyway.guidewire.net/

When the documentation refers to {baseUrl}, replace it with the correct URL for your region.