Download OpenAPI specification:
Runway (runway.team) is a release management platform for mobile app teams. Top mobile teams like DoorDash, monday.com, Skyscanner, Gusto, Wealthsimple, and Mercari use Runway to track, automate, and collaborate on their app releases. For more information, visit our website.
Welcome to the Runway API and webhooks documentation! The REST API allows you to access information about your releases in Runway. You can also subscribe to webhook events sent by Runway. To get started, create an API key from your organization's dashboard – you'll use this key to authenticate requests to the API.
All Runway REST API endpoints are authenticated via an API key passed as an X-API-Key header like so:
X-API-Key: {YOUR_API_KEY}
API keys are created from your organization's dashboard.
The Runway REST API is accessed via HTTPS, with a base URL of https://api.runway.team. All data is sent and received as JSON. Unless otherwise stated, dates are sent and received in the JSON Schema Validation date-time format, in UTC.
Most Runway REST API endpoints require one or more path parameters that correspond to the ids of various entities, like app and release. You can find your app's identifier in the Overview section of your app's Settings. To construct a release identifier for an existing release in an app, combine the app identifier with the release version like so: {appId}:{version}. For example, the release identifier of a release with version 1.1.0 on an app with an app identifier myapp-ios would be myapp-ios:1.1.0.
Returns the details of an organization.
| orgId required | string The ID of the org. |
{- "id": "my-org",
- "name": "My Organization",
- "subdomain": "my-org",
- "imageUrl": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}Returns a paginated list of apps in the organization.
| orgId required | string The ID of the org. |
| limit | integer Default: 5 Maximum number of apps to return (default 5, max 5) |
| offset | integer Default: 0 Number of apps to skip for pagination |
[- {
- "id": "fake-app",
- "appName": "Fake app",
- "platform": "ios",
- "createdAt": "2022-03-02T01:15:00Z"
}
]Returns aggregated metrics for the organization over the given date range. Optionally restrict the response to specific metric types or include the underlying time-series data points.
| orgId required | string The ID of the org. |
| startDate required | string <date> Example: startDate=2026-01-01 Start of the date range (inclusive), in |
| endDate required | string <date> Example: endDate=2026-01-31 End of the date range (inclusive), in |
| metricTypes | Array of strings Items Enum: "CIWorkflowSuccessPercent" "CIAverageBuildTime" "CIBuildsCount" "CommitCount" "AICommitsPercentage" "AIAuthorDistribution" "LinesOfCodeAdded" "LinesOfCodeAddedForHotfixes" "LinesOfCodeChanged" "LinesOfCodeChangedForHotfixes" "LinesOfCodeDeleted" "LinesOfCodeDeletedForHotfixes" "ReleaseDuration" "HotfixReleaseDuration" "WaitingForReviewDuration" "InReviewDuration" "ReviewRejectionRate" "ItemsCompleted" "TicketsCount" "LateMergesCount" "TargetDateSuccessRateKickoff" "TargetDateSuccessRateSubmission" "TargetDateSuccessRateRelease" "FixRequestsCount" "FixesCount" "FixRequestsAcceptedCount" "FixRequestsRejectedCount" "PercentCompletedWorkItemsThatAreFixes" "FixAcceptanceRate" "AppStoreBuildCount" "AppStoreBuildBundleDownloadSize" "AppStoreBuildBundleInstallSize" "StatAverageCustomerRating" "StatAverageAppCustomerRating" "ReleaseDurations" "AverageTimeToRecover" "FailureRate" "AverageCLIApprovalTime" "CLICompletionRate" "CLIOverdueRate" "AverageReleaseStepCompletionTime" "AverageHotfixStepCompletionTime" "ReleaseFrequency" "HotfixToNonHotfixReleaseRatio" "AppStoreCrashFreeUsers" "AppStoreCrashFreeSessions" "BetaCrashFreeUsers" "BetaCrashFreeSessions" "SessionAdoptionRate" "StatBuildDistroBuildCount" "StatBuildDistroArtifactSize" "TriageIssuesDetected" "TriageTimeToFixMerged" Example: metricTypes=CIBuildsCount,ReleaseDuration Comma-separated list of metric types to include in the response. If omitted, all available metrics are returned. Custom org-defined health metrics (prefixed with |
| includeDataPoints | boolean Default: false If true, include the underlying time-series data points for each metric. Defaults to false. |
{- "metrics": [
- {
- "type": "CommitCount",
- "category": "work",
- "displayText": "Number of commits (non-hotfixes)",
- "description": "Chart: Total number of commits included in the given release. Releases are only included if completion date falls within the specified date range.\n\nPrimary value: Average over the selected date range.\n\nExclusions: Hotfix releases.",
- "unit": "count",
- "value": 17,
- "benchmarkValue": null,
- "trend": -28,
- "trendStatus": "trendNeutral",
- "dataPoints": [
- {
- "timestamp": "2025-01-13",
- "appId": "tab",
- "releaseId": "3.122.0",
- "bucketId": null,
- "destinationId": "dest-cvrc6af0osdacavf54og",
- "destinationName": null,
- "platform": null,
- "value": 31,
- "valuesByUser": null
}, - {
- "timestamp": "2025-02-27",
- "appId": "tab",
- "releaseId": "3.124.0",
- "bucketId": null,
- "destinationId": "dest-cvrc6af0osdacavf54og",
- "destinationName": null,
- "platform": null,
- "value": 3,
- "valuesByUser": null
}
]
}
]
}| orgId required | string The ID of the org. |
[- {
- "id": "acb-123",
- "name": "Developers",
- "userActions": [
- "AddRemoveEditIntegration"
], - "members": [
- "sully@example.com"
], - "isEligibleForPilotRotation": true
}
]| orgId required | string The ID of the org. |
The request body for creating a new custom group
| name required | string The name of the group |
| userActions | Array of strings (UserAction) Items Enum: "AddRemoveEditIntegration" "UpdateAppSettings" "EditAutomations" "CreateDeleteRelease" "CreateHotfix" "UpdateScheduleCadence" "UpdateReleaseTargetDates" "CreateBranchPromoteCode" "BumpVersion" "TagCommit" "ApproveScreenshotsMetadata" "PromoteBetaBuildToTestingTrack" "ApproveBetaTesting" "UpdateRegressionStatus" "UpdateMetadataApproval" "SetResumeActiveRCBuild" "TriggerCIWorkflow" "UpdateAppStoreSelectedBuild" "UpdateAppStoreReviewSubmission" "SubmitAppUpdate" "DevRejectAppUpdate" "ReleaseAppUpdate" "UpdateReleasePilot" "AddRemoveEditCLI" "PingCLI" "UAToggleApprovalCLI" "ToggleFRIgnore" "ToggleFeatureFlag" "UpdatePhasedRelease" "AddRemoveEditReleaseBranchPatterns" "AddRemoveEditReleaseTagPatterns" "AddRemoveEditFeatureAffiliations" "AssignBetaTestersToBuilds" "AssignBetaGroupsToBuilds" "UpdateAdditionalBranchConfig" "DownloadBuildArtifact" "UpdateMetadata" "EditReleasePlanningSummary" "EditReleaseSummaryMessage" "EditAppStoreReleaseSettings" "ApplyMetadata" "SubmitBetaBuildForReview" "PauseResumeScheduleCadence" "UpdateBetaTestingNotes" "AccessSSOPortal" "AccessDirectorySyncPortal" "CreateDeleteApp" "InviteUsers" "EditUserRoles" "RemoveOrgUser" "AddUpdateRemoveWebhook" "CreateDeleteAPITokens" "UpdateDirectorySyncRolesForGroups" "StartRollbackResigningSequence" "AddRemoveDevice" "AddRemoveTestDeviceFromApp" "UpdateDeviceInASC" "UploadSigningKey" "ImportExportTranslationStrings" "ApproveTranslations" "AddFixRequest" "UpdateFixRequestStatus" "UploadExportMetadataTranslations" "CreateEditDeleteCustomGroup" "BuildDistroOptIn" "UACreateBuildDistroBucket" "UpdateBucketSettings" "UpdateBucketNotifications" "UpdateBucketMembers" "BucketInviteIndividualTestersToBuilds" "BucketUploadBuilds" "BucketUpdateBuildTesterNotes" "BucketInstallBuilds" "ManageTriageIssues" The list of user actions that the group can perform |
| members | Array of strings The list of user IDs that are members of the group |
| isEligibleForPilotRotation | boolean Default: false Whether members of this group are eligible to be added to a release pilot rotation |
{- "name": "string",
- "userActions": [
- "AddRemoveEditIntegration"
], - "members": [
- "string"
], - "isEligibleForPilotRotation": false
}{- "id": "acb-123",
- "name": "Developers",
- "userActions": [
- "AddRemoveEditIntegration"
], - "members": [
- "sully@example.com"
], - "isEligibleForPilotRotation": true
}| orgId required | string The ID of the org. |
The request body for updating users groups based on ad-hoc group mappings
| userId required | string The user's email address. |
| groupIds required | Array of strings The ad-hoc group IDs to map to Runway groups for this user. |
[- {
- "userId": "string",
- "groupIds": [
- "string"
]
}
]{- "results": [
- {
- "userId": "string",
- "adHocGroupIds": [
- "string"
], - "runwayGroupIds": [
- "string"
], - "addedTo": [
- "string"
], - "removedFrom": [
- "string"
], - "status": "updated",
- "errorCode": "string",
- "error": "string"
}
], - "summary": {
- "processed": 0,
- "updated": 0,
- "noChange": 0,
- "failed": 0
}
}| orgId required | string The ID of the org. |
| groupId required | string The ID of the group. |
The request body for updating a custom group
| name required | string The name of the group |
| userActions | Array of strings (UserAction) Items Enum: "AddRemoveEditIntegration" "UpdateAppSettings" "EditAutomations" "CreateDeleteRelease" "CreateHotfix" "UpdateScheduleCadence" "UpdateReleaseTargetDates" "CreateBranchPromoteCode" "BumpVersion" "TagCommit" "ApproveScreenshotsMetadata" "PromoteBetaBuildToTestingTrack" "ApproveBetaTesting" "UpdateRegressionStatus" "UpdateMetadataApproval" "SetResumeActiveRCBuild" "TriggerCIWorkflow" "UpdateAppStoreSelectedBuild" "UpdateAppStoreReviewSubmission" "SubmitAppUpdate" "DevRejectAppUpdate" "ReleaseAppUpdate" "UpdateReleasePilot" "AddRemoveEditCLI" "PingCLI" "UAToggleApprovalCLI" "ToggleFRIgnore" "ToggleFeatureFlag" "UpdatePhasedRelease" "AddRemoveEditReleaseBranchPatterns" "AddRemoveEditReleaseTagPatterns" "AddRemoveEditFeatureAffiliations" "AssignBetaTestersToBuilds" "AssignBetaGroupsToBuilds" "UpdateAdditionalBranchConfig" "DownloadBuildArtifact" "UpdateMetadata" "EditReleasePlanningSummary" "EditReleaseSummaryMessage" "EditAppStoreReleaseSettings" "ApplyMetadata" "SubmitBetaBuildForReview" "PauseResumeScheduleCadence" "UpdateBetaTestingNotes" "AccessSSOPortal" "AccessDirectorySyncPortal" "CreateDeleteApp" "InviteUsers" "EditUserRoles" "RemoveOrgUser" "AddUpdateRemoveWebhook" "CreateDeleteAPITokens" "UpdateDirectorySyncRolesForGroups" "StartRollbackResigningSequence" "AddRemoveDevice" "AddRemoveTestDeviceFromApp" "UpdateDeviceInASC" "UploadSigningKey" "ImportExportTranslationStrings" "ApproveTranslations" "AddFixRequest" "UpdateFixRequestStatus" "UploadExportMetadataTranslations" "CreateEditDeleteCustomGroup" "BuildDistroOptIn" "UACreateBuildDistroBucket" "UpdateBucketSettings" "UpdateBucketNotifications" "UpdateBucketMembers" "BucketInviteIndividualTestersToBuilds" "BucketUploadBuilds" "BucketUpdateBuildTesterNotes" "BucketInstallBuilds" "ManageTriageIssues" The list of user actions that the group can perform |
| members | Array of strings The list of user IDs that are members of the group |
| isEligibleForPilotRotation | boolean Whether members of this group are eligible to be added to a release pilot rotation |
{- "name": "string",
- "userActions": [
- "AddRemoveEditIntegration"
], - "members": [
- "string"
], - "isEligibleForPilotRotation": true
}{- "id": "acb-123",
- "name": "Developers",
- "userActions": [
- "AddRemoveEditIntegration"
], - "members": [
- "sully@example.com"
], - "isEligibleForPilotRotation": true
}| orgId required | string The ID of the org. |
| groupId required | string The ID of the group. |
{- "id": "acb-123",
- "name": "Developers",
- "userActions": [
- "AddRemoveEditIntegration"
], - "members": [
- "sully@example.com"
], - "isEligibleForPilotRotation": true
}Returns the app's release schedule cadence — how often releases happen (weekly / biweekly / monthly / etc.), the target kickoff/submit/release day-and-time pattern, timezone, and skip-next-submit/release flags.
| appId required | string The id of the app |
{- "scheduleCadence": "never",
- "cadenceTargetDateSets": [
- {
- "kickoffDayOfWeek": "string",
- "kickoffTimeHour": 0,
- "kickoffTimeMinute": 0,
- "submitDayOfWeek": "string",
- "submitTimeHour": 0,
- "submitTimeMinute": 0,
- "releaseDayOfWeek": "string",
- "releaseTimeHour": 0,
- "releaseTimeMinute": 0
}
], - "cadenceTimezone": "string",
- "allowKickoffWhenPreviousNotComplete": true,
- "submitWeeksToSkip": 0,
- "releaseWeeksToSkip": 0
}Returns the app's configured lifecycle freeze periods. Lifecycle freezes pause selected release lifecycle events (kickoff, submit, release) during the configured date ranges without changing the recurring schedule cadence.
| appId required | string The id of the app |
[- {
- "startDate": "2019-08-24",
- "endDate": "2019-08-24",
- "timezone": "string",
- "affectedEvents": [
- "kickoff"
]
}
]Replaces only the app's lifecycle freeze periods. This does not change the app's release schedule cadence, but it may move release target dates that fall inside a freeze. Requires the API key to have the UpdateScheduleCadence user action.
| appId required | string The id of the app |
The request body for replacing lifecycle freezes
required | Array of objects (LifecycleFreezeSetInput) Replacement lifecycle freeze list. Pass an empty array to clear all lifecycle freezes. |
{- "lifecycleFreezes": [
- {
- "startDate": "2019-08-24",
- "endDate": "2019-08-24",
- "affectedEvents": [
- "kickoff"
]
}
]
}[- {
- "startDate": "2019-08-24",
- "endDate": "2019-08-24",
- "timezone": "string",
- "affectedEvents": [
- "kickoff"
]
}
]Returns each release's target dates (kickoff, submit, release, rollout completion), status, and release pilot. Includes cadence-predicted future releases (status predicted) whose dates and pilot are estimates derived from the app's schedule and pilot rotation and are subject to change. Omit version for the full schedule (past, current, and predicted future releases); pass it to get a single release. Only available for apps using Runway workflows.
| appId required | string The id of the app |
| version | string Optional release version. Omit to return the full schedule including predicted future releases. |
[- {
- "version": "string",
- "status": "active",
- "isPredicted": true,
- "isHotfix": true,
- "releasePilotId": "string",
- "kickoffDate": "2019-08-24T14:15:22Z",
- "submitDate": "2019-08-24T14:15:22Z",
- "releaseDate": "2019-08-24T14:15:22Z",
- "rolloutCompletionDate": "2019-08-24T14:15:22Z"
}
]Returns the customer reviews Runway currently holds for an app, newest first, across every store the app ships to (Apple App Store via App Store Connect, Google Play, Amazon Appstore, Huawei AppGallery, Samsung Galaxy Store). Each review carries the destination it came from, so reviews from different stores can be told apart.
These are reviews left by end users in the app stores — not Apple's or Google's review of a submitted build.
Runway holds the most recent window of reviews returned by each store rather than a full historical archive, so a caller building its own archive should poll often enough that the window always covers the gap since its last poll. submittedAfter and submittedBefore are both inclusive: a review submitted exactly at the boundary is returned. Reviews are uniquely identified by id — dedupe on it when polling incrementally.
| appId required | string The id of the app |
| limit | integer [ 1 .. 500 ] Default: 100 Maximum number of reviews to return. |
| offset | integer >= 0 Default: 0 Number of reviews to skip, for paging through |
| submittedAfter | string <date-time> Only return reviews submitted at or after this RFC3339 timestamp (inclusive). |
| submittedBefore | string <date-time> Only return reviews submitted at or before this RFC3339 timestamp (inclusive). |
| stepConfigId | string Only return reviews from this store destination. Use the |
| version | string Only return reviews left on this app version. |
{- "reviews": [
- {
- "id": "string",
- "title": "string",
- "content": "string",
- "author": "string",
- "rating": "4",
- "submittedAt": "2019-08-24T14:15:22Z",
- "version": "string",
- "country": "string",
- "titleTranslated": "string",
- "contentTranslated": "string",
- "fetchedAt": "2019-08-24T14:15:22Z",
- "destination": {
- "stepConfigId": "string",
- "name": "iOS App Store",
- "platform": "ios",
- "appStoreType": "AppStoreConnect"
}
}
], - "totalCount": 0,
- "hasMore": true,
- "lastUpdatedAt": "2019-08-24T14:15:22Z"
}Turns a scheduled release automation on or off without changing its settings. Requires the API key to have the EditAutomations user action.
| appId required | string The id of the app |
| automationType required | string Enum: "kickoff" "submit" "release" "halt" "promote" "resume_rollout" Scheduled automation to update |
| enabled required | boolean Whether the automation should be enabled |
{- "automationType": "kickoff",
- "enabled": true
}{- "type": "string",
- "enabled": true
}| appId required | string The id of the app |
The request body for updating a Runway app
| name | string The name of the app |
| platform | string (AppPlatform) Enum: "ios" "android" "ios-sdk" "android-sdk" "react-native-ota" The app's platform |
{- "name": "string",
- "platform": "ios"
}{- "id": "fake-app",
- "appName": "Fake app",
- "platform": "ios",
- "createdAt": "2022-03-02T01:15:00Z"
}Upload and set the app icon. For teams using config-as-code who don't have their app icons hosted publicly, this endpoint allows uploading an icon file directly. The icon will be stored and the URL can be used in the icon field of your app config YAML. Accepts multipart/form-data with a PNG or JPEG image (max 10MB).
| appId required | string The id of the app |
Multipart form data containing the icon image
| icon | string <binary> The app icon image (PNG or JPEG) |
| file | string <binary> Alternative field name for the icon image |
{- "iconUrl": "string"
}Returns the list of integrations installed on the given app. Use the returned installationId for other endpoints that act on a specific integration (e.g. uploading a Custom CI build).
| appId required | string The id of the app |
[- {
- "installationId": "github-fake-app-123",
- "type": "github",
- "name": "GitHub",
- "alias": "string",
- "providerId": "github-provider-1",
- "capability": "versionControl"
}
]Returns a paginated list of apps in the organization.
| orgId required | string The ID of the org. |
| limit | integer Default: 5 Maximum number of apps to return (default 5, max 5) |
| offset | integer Default: 0 Number of apps to skip for pagination |
[- {
- "id": "fake-app",
- "appName": "Fake app",
- "platform": "ios",
- "createdAt": "2022-03-02T01:15:00Z"
}
]| orgId required | string The ID of the org. |
The YAML configuration file for creating a new app
The YAML file containing the app configuration. Attach this either as raw text to the request body or as a binary file.
Created app new-app-id
Accepts the same YAML schema as createAppFromConfig, but instead of creating a new app, adds a new destination to the given app's existing workflow. The YAML's name/icon become the destination's name and icon; integrations are installed as new app integrations from existing org providers; appSettings.branchSettings are stored as a per-destination branch config; stepGroups are cloned into the workflow as new step configs. Other fields (appGroup, appUsers, appStoreReleaseSettings, buildDistro, tagSettings, featureAffiliations) are ignored.
| appId required | string The id of the app |
The YAML configuration file describing the destination to add
The YAML file describing the new destination. Attach this either as raw text to the request body or as a binary file.
Added destination new-destination-id to app app_id
Upload attachment files (e.g., screenshots, notes) for App Store Connect review submission. Accepts multipart/form-data with the file to upload.
| appId required | string The id of the app |
Multipart form data containing the attachment file
| file | string <binary> The attachment file to upload |
{- "files": [
- {
- "filename": "string"
}
]
}Pause or resume automations for an app using a single endpoint. Set enabled to false to pause and true to resume. Omit automationIds to pause or resume all automations; provide one or more automationIds to affect only those types.
| appId required | string The id of the app |
The request body for pausing or resuming automations
| enabled required | boolean Whether automations should be active. Set to false to pause and true to resume. |
| automationIds | Array of strings Optional automation types to pause or resume (e.g. AutoKickoff, AutoSubmit, AutoRelease). Omit to pause or resume all automations. |
{- "enabled": true,
- "automationIds": [
- "string"
]
}{- "allAutomationsPaused": true,
- "pausedAutomationTypes": [
- "string"
]
}| appId required | string The id of the app |
| integrationInstallationId required | string The unique installation ID for the integration. Found in the corresponding integration settings in Runway. Has the format |
The request body for pushing custom event data
Array of objects (CustomEventEntity) Events data points |
{- "data": [
- {
- "version": "1.2.3",
- "id": "page_load",
- "value": 42,
- "timestamp": "2022-03-02T01:15:00Z"
}
]
}{- "version": "1.2.3",
- "id": "page_load",
- "value": 42,
- "timestamp": "2022-03-02T01:15:00Z"
}Rotates auth credentials for an App Store Connect (Apple) or Google integration provider. Request body must be sent as multipart/form-data.
Apple (App Store Connect) — provide keyId, issuerId, and the .p8 key file. All installations in the org that share the existing provider will automatically pick up the new credentials.
curl -X POST \
-F "keyId=ABCD1234" \
-F "issuerId=12345678-1234-1234-1234-123456789012" \
-F "key=@AuthKey_ABCD1234.p8" \
-H "X-API-KEY:API-KEY" \
https://api.runway.team/v1/app/{appId}/integration/{integrationInstallationId}/updateAuth
Google — provide only the .json service account key file. keyId and issuerId must not be sent. The provider row is updated in place to reference the new key file; all installations sharing that provider automatically pick up the new credentials.
curl -X POST \
-F "key=@service-account.json" \
-H "X-API-KEY:API-KEY" \
https://api.runway.team/v1/app/{appId}/integration/{integrationInstallationId}/updateAuth
| appId required | string The id of the app |
| integrationInstallationId required | string The unique installation ID for the integration. Found in the corresponding integration settings in Runway. Has the format |
The request body for updating auth credentials on an App Store Connect or Google integration. Must be sent as multipart/form-data. For Apple integrations, keyId, issuerId, and a .p8 key file are required. For Google integrations, only a .json key file is required; keyId and issuerId must not be sent.
| keyId | string (Apple only) The App Store Connect API key ID. Required for Apple integrations. Must not be sent for Google integrations. |
| issuerId | string (Apple only) The App Store Connect issuer ID. Required for Apple integrations. Must not be sent for Google integrations. |
| key required | string <binary> The private key file. For Apple integrations, must be a |
{- "providerId": "apple:ABCD1234-12345678-1234-1234-1234-123456789012",
- "integrationType": "apple",
- "keyId": "ABCD1234",
- "issuerId": "12345678-1234-1234-1234-123456789012"
}Please note the unique upload server URL for this endpoint.
The binary file must be included in a 'file' field as form data. Please see below for an example curl request:
curl -X POST \
-F "file=@example.ipa" \
-F 'data={\"version\":\"1.2.3\",\"ciBuildInfo\":{\"buildIdentifier\":\"123\",\"status\":\"inProgress\",\"startedAt\":\"2022-03-02T01:15:00Z\",\"branch\":\"release-1.2.3\",\"commitHash\":\"abcdef\",\"integrationId\":\"custom-ci\",\"workflowData\":{\"workflowId\":\"123\"}}}}' \
-H "X-API-KEY:API-KEY" \
https://upload-api.runway.team/v1/app/{appId}/integration/{integrationInstallationId}/build
| appId required | string The id of the app |
| integrationInstallationId required | string The unique installation ID for the integration. Found in the corresponding integration settings in Runway. Has the format |
The request body for uploading a CI build and binary to a custom CI integration
| file required | string <binary> |
required | object (CustomCIBuildUploadRequestFormData) |
{- "id": "12345",
- "bucketId": "abc123",
- "bucketName": "CIs",
- "binaryBuild": {
- "id": "string",
- "type": "string",
- "buildNumber": "string",
- "buildVersion": "string",
- "buildType": "string",
- "artifactFileName": "string",
- "provisioningProfile": { }
}, - "ciBuild": {
- "buildHash": "abc123def456",
- "buildIdentifier": "123",
- "integrationId": "amazon",
- "buildStartedAt": "2022-03-02T01:15:00Z",
- "buildFinishedAt": "2022-03-02T01:20:00Z",
- "buildStatus": "inProgress",
- "providerBuildStatusString": "In progress",
- "commit": "abcdef123456",
- "commitMessage": "Fix bug in authentication",
- "commitAuthor": "John Doe",
- "workflowName": "CI Build",
- "branchName": "main",
- "workflowRunIdOrCommaDelimitedIds": "workflow-run-123"
}, - "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "individualTesters": [
- "string"
], - "testerNotes": "string",
- "status": "",
- "testerNotesSetByBucketAutomation": true,
- "uploadedAt": "2022-03-02T01:15:00Z",
- "artifactInfo": {
- "downloadStatus": "success",
- "errorMessage": "string",
- "appStoreInfos": { },
- "artifactId": "string",
- "workflowRunId": "string"
}, - "prData": {
- "id": "string",
- "number": 0,
- "title": "string",
- "status": "open",
- "url": "string",
- "pullRequestType": "string",
- "owner": "string",
- "baseBranch": "string",
- "filesChanged": [
- "string"
]
}, - "isMultiArtifact": true,
- "additionalArtifacts": [
- {
- "fileName": "string",
- "size": 0,
- "downloadUrl": "string"
}
]
}Lists builds uploaded to a Custom CI (Mobile Release Management / MRM) integration for a specific release. Use this to discover the buildHash for a build (e.g. to download its artifact). Only supported for integrations of type customCI — for other CI providers (Bitrise, CircleCI, etc.) builds are fetched directly from the provider and are not listed here. Results are sorted newest first.
| appId required | string The id of the app |
| integrationInstallationId required | string The unique installation ID for the integration. Found in the corresponding integration settings in Runway. Has the format |
| version required | string The release's version string (e.g. |
[- {
- "buildHash": "abc123def456",
- "buildIdentifier": "123",
- "integrationId": "amazon",
- "buildStartedAt": "2022-03-02T01:15:00Z",
- "buildFinishedAt": "2022-03-02T01:20:00Z",
- "buildStatus": "inProgress",
- "providerBuildStatusString": "In progress",
- "commit": "abcdef123456",
- "commitMessage": "Fix bug in authentication",
- "commitAuthor": "John Doe",
- "workflowName": "CI Build",
- "branchName": "main",
- "workflowRunIdOrCommaDelimitedIds": "workflow-run-123"
}
]Please note the unique upload server URL for this endpoint.
The additional file must be included in a 'file' field as form data, and the build version must be passed in the data field. Please see below for an example curl request:
curl -X POST \
-F "file=@test_results.html" \
-F 'data={"version":"1.2.3"}' \
-H "X-API-KEY:API-KEY" \
https://upload-api.runway.team/v1/app/{appId}/integration/{integrationInstallationId}/build/{buildId}/additionalFiles
| appId required | string The id of the app |
| integrationInstallationId required | string The unique installation ID for the integration. Found in the corresponding integration settings in Runway. Has the format |
| buildId required | string The build identifier |
The request body for uploading an additional file to a custom CI build
| file required | string <binary> |
required | object (CustomCIBuildAdditionalFileUploadRequestFormData) |
{- "code": 0,
- "message": "string"
}Redirects to a short-lived signed URL for the primary artifact stored for this Custom CI build. Use GET .../additionalFiles/{filename} for a supplemental file. Requires version to identify the release.
| appId required | string The id of the app. |
| integrationId required | string Unique identifier for the Custom CI integration installation on the app. Found in the integration settings in Runway. |
| buildId required | string The Custom CI build identifier ( |
| version required | string Example: version=1.2.3 Release version for this build (internal or user-facing). |
{- "code": 0,
- "message": "string"
}Redirects to a short-lived signed URL for a supplemental artifact on this Custom CI build. Same version query as the primary download.
| appId required | string The id of the app. |
| integrationId required | string Unique identifier for the Custom CI integration installation on the app. Found in the integration settings in Runway. |
| buildId required | string The Custom CI build identifier ( |
| filename required | string Name of the additional artifact file (URL-encoded when necessary). |
| version required | string Example: version=1.2.3 Release version for this build (internal or user-facing). |
{- "code": 0,
- "message": "string"
}Returns the app's configured fix request form field settings, including each field's id, name, whether it is required, and any minimum character count. Use the returned fieldIds to build the formFieldsValues when creating a fix request.
| appId required | string The id of the app |
{- "formFieldsSettings": [
- {
- "fieldId": "string",
- "name": "string",
- "placeholder": "string",
- "prePopulatedText": "string",
- "required": true,
- "minCharacters": 0
}
]
}Returns each release's target dates (kickoff, submit, release, rollout completion), status, and release pilot. Includes cadence-predicted future releases (status predicted) whose dates and pilot are estimates derived from the app's schedule and pilot rotation and are subject to change. Omit version for the full schedule (past, current, and predicted future releases); pass it to get a single release. Only available for apps using Runway workflows.
| appId required | string The id of the app |
| version | string Optional release version. Omit to return the full schedule including predicted future releases. |
[- {
- "version": "string",
- "status": "active",
- "isPredicted": true,
- "isHotfix": true,
- "releasePilotId": "string",
- "kickoffDate": "2019-08-24T14:15:22Z",
- "submitDate": "2019-08-24T14:15:22Z",
- "releaseDate": "2019-08-24T14:15:22Z",
- "rolloutCompletionDate": "2019-08-24T14:15:22Z"
}
]| appId required | string The id of the app |
| timelinePhase | string (ReleaseTimelinePhase) Enum: "upcoming" "current" "completed" Filter releases by timeline phase |
| limit | integer Default: 20 For pagination, the maximum number of releases to return |
| offset | integer Default: 0 For pagination, the number of releases to skip before returning the first release |
[- {
- "id": "fake-app:1.0.0",
- "version": "1.0.0",
- "displayableVersion": "1.0.0",
- "status": "active",
- "type": "major",
- "timelinePhase": "upcoming",
- "releaseBranch": "release-1.0.0",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "completedAt": "2022-03-02T01:15:00Z",
- "targetKickoffDate": "2022-03-02T01:15:00Z",
- "targetSubmissionDate": "2022-03-02T01:15:00Z",
- "targetReleaseDate": "2022-03-02T01:15:00Z",
- "releasePilotId": "sully@example.com",
- "releaseSummary": "string",
- "releaseDescription": "string"
}
]| appId required | string The id of the app |
The request body for creating a new release
| version required | string |
| releaseType required | string (CreateEditReleaseType) Enum: "release" "hotfix" "rollback" Release type used when creating or editing releases. |
| targetKickoffDate | string <date-time> The target kickoff date for the release. All platforms. |
| targetSubmitDate | string <date-time> The target submission date for the release. iOS and Android platforms only. |
| targetReleaseDate | string <date-time> The target release date for the release. iOS platforms only. |
| releasePilotId | string The user id (email) of the release pilot for the release. Pass the string |
| releaseName | string A user-friendly name for your release. |
| shouldCreateBranch | boolean Hotfixes only. Whether to immediately create the release branch, cut from the base release tag. Defaults to |
| shouldBumpVersionOnBranch | boolean Hotfixes only. Whether to bump the version on the newly created release branch. Requires |
object (CreateReleaseBaseTag) Hotfixes only. The release tag to branch the hotfix from. Defaults to the tag of the latest completed release. Must match an existing release tag on the app, otherwise the request is rejected. | |
| commitsToCherryPick | Array of strings Hotfixes only. The hashes of the commits to cherry-pick onto the release branch. Requires |
{- "version": "1.1.0",
- "releaseType": "release",
- "targetKickoffDate": "2022-03-02T01:15:00Z",
- "targetSubmitDate": "2022-03-02T01:15:00Z",
- "targetReleaseDate": "2022-03-02T01:15:00Z",
- "releasePilotId": "sully@example.com",
- "releaseName": "Release 1.2.3",
- "shouldCreateBranch": true,
- "shouldBumpVersionOnBranch": true,
- "base": {
- "name": "v1.0.0"
}, - "commitsToCherryPick": [
- "b1c9e0a2d4f6a8b0c2d4e6f8a0b2c4d6e8f0a2b4"
]
}{- "id": "fake-app:1.0.0",
- "version": "1.0.0",
- "status": "active",
- "type": "major",
- "timelinePhase": "upcoming",
- "isReleaseTagged": true,
- "isKickedOff": true,
- "isSubmitted": true,
- "isReleased": true,
- "createdAt": "2022-03-02T01:15:00Z",
- "releasePilotId": "sully@example.com",
- "targetKickoffDate": "2022-03-02T01:15:00Z",
- "targetSubmissionDate": "2022-03-02T01:15:00Z",
- "targetReleaseDate": "2022-03-02T01:15:00Z",
- "releaseBranch": "release-1.0.0",
- "updatedAt": "2022-03-02T01:15:00Z",
- "kickedOffAt": "2022-03-02T01:15:00Z",
- "submittedAt": "2022-03-02T01:15:00Z",
- "releasedAt": "2022-03-02T01:15:00Z",
- "rolloutCompletedAt": "2022-03-02T01:15:00Z",
- "completedAt": "2022-03-02T01:15:00Z",
- "regressionTestingStatus": {
- "status": "string",
- "buildId": "string",
- "updatedAt": "2022-03-02T01:15:00Z"
}, - "releaseSummary": "string",
- "workItems": [
- {
- "id": "acb-1234",
- "ticket": {
- "identifier": "string",
- "description": "string",
- "url": "string",
- "owner": "string",
- "reporter": "string",
- "status": "string",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "isTicketDone": true,
- "project": { }
}, - "code": {
- "identifier": "string",
- "codeStatus": "openPR",
- "type": "commit",
- "url": "string",
- "author": "string",
- "message": "string",
- "branch": "string",
- "committedAt": "2022-03-02T01:15:00Z",
- "authoredAt": "2022-03-02T01:15:00Z"
}, - "explanationText": "string",
- "ignored": true,
- "isItemDone": true
}
], - "steps": [
- {
- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}
], - "appStoreData": {
- "type": "AppleAppStoreData",
- "releaseType": "string",
- "earliestReleaseDate": "2019-08-24T14:15:22Z",
- "state": "string",
- "phasedRelease": {
- "state": "string",
- "dayNumber": 1,
- "startDate": "2019-08-24T14:15:22Z"
}
}, - "customMetadata": {
}
}Returns the app's most recent release tags, newest first. These are the tags a hotfix release can be based on — pass one of their names as the base of a create-release request.
| appId required | string The id of the app |
[- {
- "name": "v1.0.0",
- "version": "1.0.0",
- "commitHash": "b1c9e0a2d4f6a8b0c2d4e6f8a0b2c4d6e8f0a2b4",
- "commitMessage": "Bump version to 1.0.0"
}
]Returns the commits on the app's working branch that can be cherry-picked onto a hotfix release branch, newest first. Pass their hashes as the commitsToCherryPick of a create-release request.
| appId required | string The id of the app |
| baseTag | string Example: baseTag=v1.0.0 The release tag the hotfix will branch from, given as a tag name or the version that tag marks. When set, only commits landed after that tag are returned. Pass the same value you will pass as the create-release |
[- {
- "hash": "b1c9e0a2d4f6a8b0c2d4e6f8a0b2c4d6e8f0a2b4",
- "message": "Fix crash on launch"
}
]Returns release-level fields (status, target dates, release pilot, summary, branch, timelinePhase, etc.). For step-level data, use the steps endpoints.
| releaseId required | string The id of the release. Constructed from the app's |
| appId required | string The id of the app |
{- "id": "fake-app:1.0.0",
- "version": "1.0.0",
- "displayableVersion": "1.0.0",
- "status": "active",
- "type": "major",
- "timelinePhase": "upcoming",
- "releaseBranch": "release-1.0.0",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "completedAt": "2022-03-02T01:15:00Z",
- "targetKickoffDate": "2022-03-02T01:15:00Z",
- "targetSubmissionDate": "2022-03-02T01:15:00Z",
- "targetReleaseDate": "2022-03-02T01:15:00Z",
- "releasePilotId": "sully@example.com",
- "releaseSummary": "string",
- "releaseDescription": "string"
}| releaseId required | string The id of the release. Constructed from the app's |
| appId required | string The id of the app |
The request body for updating a release
| version required | string |
| isHotfix | boolean Whether the release is a hotfix. |
| targetKickoffDate | string <date-time> The target kickoff date for the release. All platforms. Pass |
| targetSubmitDate | string <date-time> The target submission date for the release. iOS and Android platforms only. Pass |
| targetReleaseDate | string <date-time> The target release date for the release. iOS platforms only. Pass |
| releasePilotId | string The user id (email) of the release pilot for the release. Pass the string |
| releaseName | string A user-friendly name for your release. |
| releaseDescription | string A description of the release for internal use by your team. |
{- "version": "1.1.0",
- "isHotfix": false,
- "targetKickoffDate": "2022-03-02T01:15:00Z",
- "targetSubmitDate": "2022-03-02T01:15:00Z",
- "targetReleaseDate": "2022-03-02T01:15:00Z",
- "releasePilotId": "sully@example.com",
- "releaseName": "Release 1.2.3",
- "releaseDescription": "Description of release 1.2.3..."
}{- "id": "fake-app:1.0.0",
- "version": "1.0.0",
- "status": "active",
- "type": "major",
- "timelinePhase": "upcoming",
- "isReleaseTagged": true,
- "isKickedOff": true,
- "isSubmitted": true,
- "isReleased": true,
- "createdAt": "2022-03-02T01:15:00Z",
- "releasePilotId": "sully@example.com",
- "targetKickoffDate": "2022-03-02T01:15:00Z",
- "targetSubmissionDate": "2022-03-02T01:15:00Z",
- "targetReleaseDate": "2022-03-02T01:15:00Z",
- "releaseBranch": "release-1.0.0",
- "updatedAt": "2022-03-02T01:15:00Z",
- "kickedOffAt": "2022-03-02T01:15:00Z",
- "submittedAt": "2022-03-02T01:15:00Z",
- "releasedAt": "2022-03-02T01:15:00Z",
- "rolloutCompletedAt": "2022-03-02T01:15:00Z",
- "completedAt": "2022-03-02T01:15:00Z",
- "regressionTestingStatus": {
- "status": "string",
- "buildId": "string",
- "updatedAt": "2022-03-02T01:15:00Z"
}, - "releaseSummary": "string",
- "workItems": [
- {
- "id": "acb-1234",
- "ticket": {
- "identifier": "string",
- "description": "string",
- "url": "string",
- "owner": "string",
- "reporter": "string",
- "status": "string",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "isTicketDone": true,
- "project": { }
}, - "code": {
- "identifier": "string",
- "codeStatus": "openPR",
- "type": "commit",
- "url": "string",
- "author": "string",
- "message": "string",
- "branch": "string",
- "committedAt": "2022-03-02T01:15:00Z",
- "authoredAt": "2022-03-02T01:15:00Z"
}, - "explanationText": "string",
- "ignored": true,
- "isItemDone": true
}
], - "steps": [
- {
- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}
], - "appStoreData": {
- "type": "AppleAppStoreData",
- "releaseType": "string",
- "earliestReleaseDate": "2019-08-24T14:15:22Z",
- "state": "string",
- "phasedRelease": {
- "state": "string",
- "dayNumber": 1,
- "startDate": "2019-08-24T14:15:22Z"
}
}, - "customMetadata": {
}
}| releaseId required | string The id of the release. Constructed from the app's |
| appId required | string The id of the app |
{- "code": 0,
- "message": "string"
}Returns the custom metadata attached to the release, keyed by a stable id derived from each entry's title. Returns an empty object if none is set.
| appId required | string The id of the app |
| releaseId required | string The id of the release. Constructed from the app's |
{
}Applies a per-title upsert to the release's custom metadata: a title mapped to a value is set (creating or overwriting that entry), a title mapped to null is deleted, and titles not present in the request are left unchanged. The title is the entry's identity, and its stable id is derived from it server-side.
| appId required | string The id of the app |
| releaseId required | string The id of the release. Constructed from the app's |
The custom metadata entries to apply to the release. Updates are a per-title upsert: a title mapped to a value is set (creating or overwriting that entry), a title mapped to null is deleted, and titles not present are left unchanged. The title is the entry's identity, and its stable id is derived from it server-side.
required | object Map of a human-readable title to its value (any JSON type), or |
{- "metadata": {
- "Root cause": {
- "commit": "abc123"
}, - "Stale entry": null
}
}{- "id": "fake-app:1.0.0",
- "version": "1.0.0",
- "status": "active",
- "type": "major",
- "timelinePhase": "upcoming",
- "isReleaseTagged": true,
- "isKickedOff": true,
- "isSubmitted": true,
- "isReleased": true,
- "createdAt": "2022-03-02T01:15:00Z",
- "releasePilotId": "sully@example.com",
- "targetKickoffDate": "2022-03-02T01:15:00Z",
- "targetSubmissionDate": "2022-03-02T01:15:00Z",
- "targetReleaseDate": "2022-03-02T01:15:00Z",
- "releaseBranch": "release-1.0.0",
- "updatedAt": "2022-03-02T01:15:00Z",
- "kickedOffAt": "2022-03-02T01:15:00Z",
- "submittedAt": "2022-03-02T01:15:00Z",
- "releasedAt": "2022-03-02T01:15:00Z",
- "rolloutCompletedAt": "2022-03-02T01:15:00Z",
- "completedAt": "2022-03-02T01:15:00Z",
- "regressionTestingStatus": {
- "status": "string",
- "buildId": "string",
- "updatedAt": "2022-03-02T01:15:00Z"
}, - "releaseSummary": "string",
- "workItems": [
- {
- "id": "acb-1234",
- "ticket": {
- "identifier": "string",
- "description": "string",
- "url": "string",
- "owner": "string",
- "reporter": "string",
- "status": "string",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "isTicketDone": true,
- "project": { }
}, - "code": {
- "identifier": "string",
- "codeStatus": "openPR",
- "type": "commit",
- "url": "string",
- "author": "string",
- "message": "string",
- "branch": "string",
- "committedAt": "2022-03-02T01:15:00Z",
- "authoredAt": "2022-03-02T01:15:00Z"
}, - "explanationText": "string",
- "ignored": true,
- "isItemDone": true
}
], - "steps": [
- {
- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}
], - "appStoreData": {
- "type": "AppleAppStoreData",
- "releaseType": "string",
- "earliestReleaseDate": "2019-08-24T14:15:22Z",
- "state": "string",
- "phasedRelease": {
- "state": "string",
- "dayNumber": 1,
- "startDate": "2019-08-24T14:15:22Z"
}
}, - "customMetadata": {
}
}Returns the details for a release step, including a data field whose shape depends on the step archetype:
releaseCandidate: RC build info (status, integration IDs).approvals: metadata/screenshots approval state via approvalItems.takeoff: info about store release — submittedAt, startedReviewAt, approvedAt, markedRejectedAt, releasedAt, plus the precomputed waitingForReviewSeconds (queued before review started) and timeInReviewSeconds (under review).regressionTesting: regressionItems and testRuns from the connected regression integration.featureReadiness: work items tracked for the release, including project management ticket info and pull request / code review (PR / CR) info.rollout: releaseAdoptionRate, phasedRelease (rollout percentage via userFraction, state, dayNumber, startDate), appStoreReviewData (average rating, total ratings count, surfaced user review issues), and monitoringStatistics (crash-free users, crash-free sessions, custom metrics — each with currentValue, delta, previousValue, monitoringMetricStatus).data may be null.| releaseId required | string The id of the release. Constructed from the app's |
| appId required | string The id of the app |
| stepId required | string The id of the release step |
{- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}Returns a lightweight list of all steps for a release. Use the returned id and stepArchetype values to look up full details via the single step endpoint.
| appId required | string The id of the app |
| releaseId required | string The id of the release. Constructed from the app's |
[- {
- "id": "string",
- "stepConfigId": "string",
- "stepArchetype": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string"
}
]Returns a flat list of every checklist item for a release, covering both Flightpaths step runs (for migrated archetypes) and legacy checklist items (for archetypes still on the legacy model).
| appId required | string The id of the app |
| releaseId required | string The id of the release. Constructed from the app's |
[- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]Returns the details of a specific step run in a release. Only available for apps with FlightPaths enabled.
| appId required | string The id of the app |
| releaseId required | string The id of the release. Constructed from the app's |
| stepRunId required | string The id of the step run |
{- "id": "string",
- "stepConfigId": "string",
- "stepArchetype": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
], - "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}
}Redirects to a short-lived signed URL for an artifact persisted by Runway from the newest non-skipped build on a Flightpaths release-candidate step. Omit artifactId to select the preferred primary binary artifact, or pass an artifact ID from the newest build returned by the existing release-step endpoint. This works for every CI provider when Runway has persisted the artifact.
| appId required | string The id of the app |
| releaseId required | string The id of the release. Constructed from the app's |
| stepRunId required | string The id of the step run |
| artifactId | string Optional artifact ID from the newest release-candidate build returned by the existing release-step endpoint. When omitted, Runway selects the preferred primary binary artifact. |
{- "code": 0,
- "message": "string"
}Updates per-locale App Store listing fields (for example whatsNew release notes) for a metadata step run. Requires Flightpaths: the app must have FlightPaths enabled; legacy (non-Flightpaths) releases are not supported by this endpoint. Obtain stepRunId from the release's step runs (for example GET /app/{appId}/release/{releaseId}/steps or list step runs in the Runway UI).
| appId required | string The id of the app |
| releaseId required | string The id of the release. Constructed from the app's |
| stepRunId required | string The id of the step run |
Per-locale App Store metadata updates for a Flightpaths metadata step run (release notes and other listing fields).
required | Array of objects (UpdateMetadataLocalizationRequestItem) One entry per locale to create or update |
{- "localizations": [
- {
- "locale": "string",
- "whatsNew": "string",
- "keywords": "string",
- "appName": "string",
- "shortDescription": "string",
- "videoUrl": "string",
- "promotionalText": "string",
- "description": "string",
- "subtitle": "string"
}
]
}{- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}Returns the details of a step run for a given step config and release. The step run is looked up using the release's FlightPath run and the step config. Only available for apps with FlightPaths enabled.
| appId required | string The id of the app |
| stepConfigId required | string The id of the step config (FlightPaths). A step config defines a step in the release FlightPath. |
| releaseId required | string The id of the release. Constructed from the app's |
{- "id": "string",
- "stepConfigId": "string",
- "stepArchetype": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
], - "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}
}Get timeline events for a release. Use these to see what happened and in what order — never to compute durations; timeline events are not reliable timestamps for how long anything took. For step durations and review timing, use the release step endpoints instead.
| appId required | string The id of the app |
| releaseId required | string The id of the release. Constructed from the app's |
[- {
- "appId": "string",
- "eventData": { },
- "orgId": "string",
- "releaseData": { },
- "releaseId": "string",
- "status": "active",
- "triggeredAt": "2022-03-02T01:15:00Z",
- "triggeredBy": { },
- "type": "string",
- "userId": "string",
- "stepArchetypes": [
- "string"
], - "automationData": { },
- "additionalData": { },
- "title": "string",
- "previouslySeenAt": [
- "2019-08-24T14:15:22Z"
], - "workflowRunId": "string",
- "stepRunId": "string",
- "destinationStepConfigIds": [
- "string"
], - "stepConfigIds": [
- "string"
]
}
]Get timeline events for a step config in a release. Use these to see what happened and in what order — never to compute durations; timeline events are not reliable timestamps for how long anything took. For step durations and review timing, use the release step endpoints instead.
| appId required | string The id of the app |
| releaseId required | string The id of the release. Constructed from the app's |
| stepConfigId required | string The id of the step config (FlightPaths). A step config defines a step in the release FlightPath. |
[- {
- "appId": "string",
- "eventData": { },
- "orgId": "string",
- "releaseData": { },
- "releaseId": "string",
- "status": "active",
- "triggeredAt": "2022-03-02T01:15:00Z",
- "triggeredBy": { },
- "type": "string",
- "userId": "string",
- "stepArchetypes": [
- "string"
], - "automationData": { },
- "additionalData": { },
- "title": "string",
- "previouslySeenAt": [
- "2019-08-24T14:15:22Z"
], - "workflowRunId": "string",
- "stepRunId": "string",
- "destinationStepConfigIds": [
- "string"
], - "stepConfigIds": [
- "string"
]
}
]| releaseId required | string The id of the release. Constructed from the app's |
| appId required | string The id of the app |
{- "id": "fake-app:1.0.0",
- "version": "1.0.0",
- "status": "active",
- "type": "major",
- "timelinePhase": "upcoming",
- "isReleaseTagged": true,
- "isKickedOff": true,
- "isSubmitted": true,
- "isReleased": true,
- "createdAt": "2022-03-02T01:15:00Z",
- "releasePilotId": "sully@example.com",
- "targetKickoffDate": "2022-03-02T01:15:00Z",
- "targetSubmissionDate": "2022-03-02T01:15:00Z",
- "targetReleaseDate": "2022-03-02T01:15:00Z",
- "releaseBranch": "release-1.0.0",
- "updatedAt": "2022-03-02T01:15:00Z",
- "kickedOffAt": "2022-03-02T01:15:00Z",
- "submittedAt": "2022-03-02T01:15:00Z",
- "releasedAt": "2022-03-02T01:15:00Z",
- "rolloutCompletedAt": "2022-03-02T01:15:00Z",
- "completedAt": "2022-03-02T01:15:00Z",
- "regressionTestingStatus": {
- "status": "string",
- "buildId": "string",
- "updatedAt": "2022-03-02T01:15:00Z"
}, - "releaseSummary": "string",
- "workItems": [
- {
- "id": "acb-1234",
- "ticket": {
- "identifier": "string",
- "description": "string",
- "url": "string",
- "owner": "string",
- "reporter": "string",
- "status": "string",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "isTicketDone": true,
- "project": { }
}, - "code": {
- "identifier": "string",
- "codeStatus": "openPR",
- "type": "commit",
- "url": "string",
- "author": "string",
- "message": "string",
- "branch": "string",
- "committedAt": "2022-03-02T01:15:00Z",
- "authoredAt": "2022-03-02T01:15:00Z"
}, - "explanationText": "string",
- "ignored": true,
- "isItemDone": true
}
], - "steps": [
- {
- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}
], - "appStoreData": {
- "type": "AppleAppStoreData",
- "releaseType": "string",
- "earliestReleaseDate": "2019-08-24T14:15:22Z",
- "state": "string",
- "phasedRelease": {
- "state": "string",
- "dayNumber": 1,
- "startDate": "2019-08-24T14:15:22Z"
}
}, - "customMetadata": {
}
}| releaseId required | string The id of the release. Constructed from the app's |
| appId required | string The id of the app |
{- "id": "fake-app:1.0.0",
- "version": "1.0.0",
- "status": "active",
- "type": "major",
- "timelinePhase": "upcoming",
- "isReleaseTagged": true,
- "isKickedOff": true,
- "isSubmitted": true,
- "isReleased": true,
- "createdAt": "2022-03-02T01:15:00Z",
- "releasePilotId": "sully@example.com",
- "targetKickoffDate": "2022-03-02T01:15:00Z",
- "targetSubmissionDate": "2022-03-02T01:15:00Z",
- "targetReleaseDate": "2022-03-02T01:15:00Z",
- "releaseBranch": "release-1.0.0",
- "updatedAt": "2022-03-02T01:15:00Z",
- "kickedOffAt": "2022-03-02T01:15:00Z",
- "submittedAt": "2022-03-02T01:15:00Z",
- "releasedAt": "2022-03-02T01:15:00Z",
- "rolloutCompletedAt": "2022-03-02T01:15:00Z",
- "completedAt": "2022-03-02T01:15:00Z",
- "regressionTestingStatus": {
- "status": "string",
- "buildId": "string",
- "updatedAt": "2022-03-02T01:15:00Z"
}, - "releaseSummary": "string",
- "workItems": [
- {
- "id": "acb-1234",
- "ticket": {
- "identifier": "string",
- "description": "string",
- "url": "string",
- "owner": "string",
- "reporter": "string",
- "status": "string",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "isTicketDone": true,
- "project": { }
}, - "code": {
- "identifier": "string",
- "codeStatus": "openPR",
- "type": "commit",
- "url": "string",
- "author": "string",
- "message": "string",
- "branch": "string",
- "committedAt": "2022-03-02T01:15:00Z",
- "authoredAt": "2022-03-02T01:15:00Z"
}, - "explanationText": "string",
- "ignored": true,
- "isItemDone": true
}
], - "steps": [
- {
- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}
], - "appStoreData": {
- "type": "AppleAppStoreData",
- "releaseType": "string",
- "earliestReleaseDate": "2019-08-24T14:15:22Z",
- "state": "string",
- "phasedRelease": {
- "state": "string",
- "dayNumber": 1,
- "startDate": "2019-08-24T14:15:22Z"
}
}, - "customMetadata": {
}
}| releaseId required | string The id of the release. Constructed from the app's |
| appId required | string The id of the app |
{- "id": "fake-app:1.0.0",
- "version": "1.0.0",
- "status": "active",
- "type": "major",
- "timelinePhase": "upcoming",
- "isReleaseTagged": true,
- "isKickedOff": true,
- "isSubmitted": true,
- "isReleased": true,
- "createdAt": "2022-03-02T01:15:00Z",
- "releasePilotId": "sully@example.com",
- "targetKickoffDate": "2022-03-02T01:15:00Z",
- "targetSubmissionDate": "2022-03-02T01:15:00Z",
- "targetReleaseDate": "2022-03-02T01:15:00Z",
- "releaseBranch": "release-1.0.0",
- "updatedAt": "2022-03-02T01:15:00Z",
- "kickedOffAt": "2022-03-02T01:15:00Z",
- "submittedAt": "2022-03-02T01:15:00Z",
- "releasedAt": "2022-03-02T01:15:00Z",
- "rolloutCompletedAt": "2022-03-02T01:15:00Z",
- "completedAt": "2022-03-02T01:15:00Z",
- "regressionTestingStatus": {
- "status": "string",
- "buildId": "string",
- "updatedAt": "2022-03-02T01:15:00Z"
}, - "releaseSummary": "string",
- "workItems": [
- {
- "id": "acb-1234",
- "ticket": {
- "identifier": "string",
- "description": "string",
- "url": "string",
- "owner": "string",
- "reporter": "string",
- "status": "string",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "isTicketDone": true,
- "project": { }
}, - "code": {
- "identifier": "string",
- "codeStatus": "openPR",
- "type": "commit",
- "url": "string",
- "author": "string",
- "message": "string",
- "branch": "string",
- "committedAt": "2022-03-02T01:15:00Z",
- "authoredAt": "2022-03-02T01:15:00Z"
}, - "explanationText": "string",
- "ignored": true,
- "isItemDone": true
}
], - "steps": [
- {
- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}
], - "appStoreData": {
- "type": "AppleAppStoreData",
- "releaseType": "string",
- "earliestReleaseDate": "2019-08-24T14:15:22Z",
- "state": "string",
- "phasedRelease": {
- "state": "string",
- "dayNumber": 1,
- "startDate": "2019-08-24T14:15:22Z"
}
}, - "customMetadata": {
}
}Developer reject a build from a specific app store submission, store-review, or release step run on a release. For FlightPath-enabled apps only. Returns the rejected step run (scoped to the targeted destination).
| appId required | string The id of the app |
| releaseId required | string The id of the release. Constructed from the app's |
| stepRunId required | string The id of the step run |
{- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}| releaseId required | string The id of the release. Constructed from the app's |
| appId required | string The id of the app |
{- "code": 0,
- "message": "string"
}| releaseId required | string The id of the release. Constructed from the app's |
| appId required | string The id of the app |
The request body for updating a release's regression testing status
| status required | string (RegressionTestingStatusType) Enum: "inProgress" "passed" "failed" "notStarted" The updated status of the regression testing step |
| buildHash | string The build hash of the RC build that regression testing is being performed on. Leave blank to use the latest successful RC build. |
| stepRunId | string Required for workflow apps. The step run to update. Use stepRunId or stepConfigId for workflow apps. |
| stepConfigId | string Required for workflow apps. Alternative to stepRunId - identifies the regression step config. Use stepRunId or stepConfigId for workflow apps. |
{- "status": "inProgress",
- "buildHash": "string",
- "stepRunId": "string",
- "stepConfigId": "string"
}{- "id": "fake-app:1.0.0",
- "version": "1.0.0",
- "status": "active",
- "type": "major",
- "timelinePhase": "upcoming",
- "isReleaseTagged": true,
- "isKickedOff": true,
- "isSubmitted": true,
- "isReleased": true,
- "createdAt": "2022-03-02T01:15:00Z",
- "releasePilotId": "sully@example.com",
- "targetKickoffDate": "2022-03-02T01:15:00Z",
- "targetSubmissionDate": "2022-03-02T01:15:00Z",
- "targetReleaseDate": "2022-03-02T01:15:00Z",
- "releaseBranch": "release-1.0.0",
- "updatedAt": "2022-03-02T01:15:00Z",
- "kickedOffAt": "2022-03-02T01:15:00Z",
- "submittedAt": "2022-03-02T01:15:00Z",
- "releasedAt": "2022-03-02T01:15:00Z",
- "rolloutCompletedAt": "2022-03-02T01:15:00Z",
- "completedAt": "2022-03-02T01:15:00Z",
- "regressionTestingStatus": {
- "status": "string",
- "buildId": "string",
- "updatedAt": "2022-03-02T01:15:00Z"
}, - "releaseSummary": "string",
- "workItems": [
- {
- "id": "acb-1234",
- "ticket": {
- "identifier": "string",
- "description": "string",
- "url": "string",
- "owner": "string",
- "reporter": "string",
- "status": "string",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "isTicketDone": true,
- "project": { }
}, - "code": {
- "identifier": "string",
- "codeStatus": "openPR",
- "type": "commit",
- "url": "string",
- "author": "string",
- "message": "string",
- "branch": "string",
- "committedAt": "2022-03-02T01:15:00Z",
- "authoredAt": "2022-03-02T01:15:00Z"
}, - "explanationText": "string",
- "ignored": true,
- "isItemDone": true
}
], - "steps": [
- {
- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}
], - "appStoreData": {
- "type": "AppleAppStoreData",
- "releaseType": "string",
- "earliestReleaseDate": "2019-08-24T14:15:22Z",
- "state": "string",
- "phasedRelease": {
- "state": "string",
- "dayNumber": 1,
- "startDate": "2019-08-24T14:15:22Z"
}
}, - "customMetadata": {
}
}Returns all feature flags for a release, sourced from the app's connected feature flagging integration (LaunchDarkly, Statsig, or Optimizely). Each flag includes its id, name, current status (enabled/disabled/archived/paused), type, rollout percentage, targeting rules and variations, and whether it is read-only. Use a flag's id with the toggle endpoint to enable or disable it. Returns an empty array when the app has no feature flagging integration installed.
| appId required | string The id of the app |
| releaseId required | string The id of the release. Constructed from the app's |
[- {
- "id": "string",
- "name": "string",
- "description": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "enabledAt": "2019-08-24T14:15:22Z",
- "isEstimatedEnabledAt": true,
- "estimatedDisabledAt": "2019-08-24T14:15:22Z",
- "minimumVersion": "string",
- "maximumVersion": "string",
- "equalVersions": [
- "string"
], - "rolloutPercentage": 0,
- "status": "enabled",
- "type": "featureFlagOptimizelyExperiment",
- "owner": "string",
- "variations": [
- {
- "name": "string",
- "key": "string",
- "rolloutPercentage": 0,
- "variables": [
- {
- "type": "string",
- "key": "string",
- "value": "string"
}
]
}
], - "rules": [
- {
- "id": "string",
- "name": "string",
- "isDefault": true,
- "audienceConditions": [
- {
- "audiences": [
- {
- "id": "string",
- "name": "string",
- "url": "string"
}
], - "negate": true,
- "predicate": "matches",
- "weight": 0
}
], - "conditions": [
- {
- "attribute": "string",
- "negate": true,
- "predicate": "matches",
- "values": [
- null
]
}
], - "variations": [
- {
- "key": "string",
- "name": "string",
- "weight": 0
}
]
}
], - "platforms": [
- "string"
], - "url": "string",
- "isReadOnly": true,
- "isNewlyEnabledInThisVersion": true,
- "isNewlyDisabledInThisVersion": true,
- "isSpecificallyTargetingThisVersion": true,
- "isSpecificallyNotTargetingThisVersion": true,
- "didChangeInThisVersion": true,
- "shouldHighlight": true,
- "highlightTooltipText": "string"
}
]Enables or disables a single feature flag for a release. The change is propagated to the app's connected feature flagging provider (LaunchDarkly, Statsig, or Optimizely) and recorded on the release timeline. Obtain flagId from GET /app/{appId}/release/{releaseId}/featureFlags. Read-only flags cannot be toggled and return a 400. Returns 404 when no flag matches flagId (including when the app has no feature flagging integration installed). Returns the updated feature flag on success.
| appId required | string The id of the app |
| releaseId required | string The id of the release. Constructed from the app's |
| flagId required | string The feature flag id to toggle (from GET /app/{appId}/release/{releaseId}/featureFlags). |
The request body for enabling or disabling a feature flag.
| enabled required | boolean Set to |
{- "enabled": true
}{- "id": "string",
- "name": "string",
- "description": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "enabledAt": "2019-08-24T14:15:22Z",
- "isEstimatedEnabledAt": true,
- "estimatedDisabledAt": "2019-08-24T14:15:22Z",
- "minimumVersion": "string",
- "maximumVersion": "string",
- "equalVersions": [
- "string"
], - "rolloutPercentage": 0,
- "status": "enabled",
- "type": "featureFlagOptimizelyExperiment",
- "owner": "string",
- "variations": [
- {
- "name": "string",
- "key": "string",
- "rolloutPercentage": 0,
- "variables": [
- {
- "type": "string",
- "key": "string",
- "value": "string"
}
]
}
], - "rules": [
- {
- "id": "string",
- "name": "string",
- "isDefault": true,
- "audienceConditions": [
- {
- "audiences": [
- {
- "id": "string",
- "name": "string",
- "url": "string"
}
], - "negate": true,
- "predicate": "matches",
- "weight": 0
}
], - "conditions": [
- {
- "attribute": "string",
- "negate": true,
- "predicate": "matches",
- "values": [
- null
]
}
], - "variations": [
- {
- "key": "string",
- "name": "string",
- "weight": 0
}
]
}
], - "platforms": [
- "string"
], - "url": "string",
- "isReadOnly": true,
- "isNewlyEnabledInThisVersion": true,
- "isNewlyDisabledInThisVersion": true,
- "isSpecificallyTargetingThisVersion": true,
- "isSpecificallyNotTargetingThisVersion": true,
- "didChangeInThisVersion": true,
- "shouldHighlight": true,
- "highlightTooltipText": "string"
}Mark one or more Feature Readiness items as ignored or un-ignored for a release. Ignored items no longer block the release from being considered ready.
| appId required | string The id of the app |
| releaseId required | string The id of the release. Constructed from the app's |
The request body for ignoring or un-ignoring Feature Readiness items on a release
required | Array of objects The list of Feature Readiness items to update |
{- "items": [
- {
- "frItemId": "string",
- "isIgnore": true,
- "isAutoIgnoreItem": false
}
]
}[- {
- "id": "string",
- "ticket": {
- "identifier": "string",
- "description": "string",
- "url": "string",
- "owner": "string",
- "reporter": "string",
- "status": "string",
- "isTicketDone": true,
- "priority": "string",
- "ticketType": "string"
}, - "code": {
- "identifier": "string",
- "codeStatus": "openPR",
- "type": "commit",
- "url": "string",
- "title": "string",
- "description": "string",
- "baseBranch": "string",
- "headBranch": "string",
- "author": "string",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "pullRequestStatus": "open"
}, - "explanationText": "string",
- "ignored": true,
- "autoIgnored": true,
- "isItemDone": true,
- "debugVariant": "string"
}
]Search the Feature Readiness work items on a release by keyword. Returns only items whose ticket identifier, ticket description, PR/commit title or message, author, or branch name contain the query string (case-insensitive). Returns an empty array when nothing matches. Use this instead of fetching the full featureReadiness step when you need to find items matching a specific ticket, author, or keyword.
| appId required | string The id of the app |
| releaseId required | string The id of the release. Constructed from the app's |
| query required | string Case-insensitive substring to search for. Matched against ticket identifier, ticket description, PR/commit title or message, author, and branch name. |
{- "items": [
- {
- "id": "string",
- "ticket": {
- "identifier": "string",
- "description": "string",
- "url": "string",
- "owner": "string",
- "reporter": "string",
- "status": "string",
- "isTicketDone": true,
- "priority": "string",
- "ticketType": "string"
}, - "code": {
- "identifier": "string",
- "codeStatus": "openPR",
- "type": "commit",
- "url": "string",
- "title": "string",
- "description": "string",
- "baseBranch": "string",
- "headBranch": "string",
- "author": "string",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "pullRequestStatus": "open"
}, - "explanationText": "string",
- "ignored": true,
- "autoIgnored": true,
- "isItemDone": true,
- "debugVariant": "string"
}
], - "hasMore": true,
- "total": 0
}Returns all non-deleted fix requests on a release. Each fix request includes its status (Pending/Approved/Rejected), the requester, current approvers, the form field settings and values, current and required approval counts, and the associated work items (PR/commit/ticket).
| appId required | string The id of the app |
| releaseId required | string The id of the release. Constructed from the app's |
[- {
- "id": "string",
- "status": "Pending",
- "source": "string",
- "formFieldsSettings": [
- {
- "fieldId": "string",
- "name": "string",
- "placeholder": "string",
- "prePopulatedText": "string",
- "required": true,
- "minCharacters": 0
}
], - "formFieldsValues": [
- {
- "fieldId": "string",
- "value": "string"
}
], - "createdAt": "2019-08-24T14:15:22Z",
- "deletedAt": "2019-08-24T14:15:22Z",
- "statusUpdatedAt": "2019-08-24T14:15:22Z",
- "currentApprovals": 0,
- "requiredApprovals": 0,
- "requester": {
- "id": "string",
- "email": "string",
- "firstName": "string",
- "lastName": "string"
}, - "approvers": [
- {
- "id": "string",
- "email": "string",
- "firstName": "string",
- "lastName": "string"
}
], - "workItems": [
- {
- "id": "string",
- "plainId": "string",
- "ticketKey": "string",
- "ticketUrl": "string",
- "timestamp": "2019-08-24T14:15:22Z"
}
]
}
]Create a new fix request on a release. The fix request targets one or more work items (PRs/commits/tickets) and carries answers to the app's configured form fields via formFieldsValues. Fetch the field ids and validation rules from GET /app/{appId}/fixRequestFormFieldsSettings. The call returns 400 if a required field is missing or a value is shorter than its configured minimum.
| appId required | string The id of the app |
| releaseId required | string The id of the release. Constructed from the app's |
The request body for creating a fix request on a release. Provide either one or more workItems (whose ids come from the featureReadiness step) or a ticketKey for a pending-association ticket. Supply answers to the app's configured form fields via formFieldsValues — fetch the field ids and rules from GET /app/{appId}/fixRequestFormFieldsSettings. The call returns 400 if a required field is missing or a value is shorter than its configured minimum.
Array of objects (FixRequestFormFieldValue) Values for the app's configured fix request form fields, each keyed by the field's | |
| ticketKey | string Optional. Ticket key for a pending-association ticket to attach the fix to. |
| ticketUrl | string Optional. Ticket URL when ticketKey is provided. |
Array of objects Work items to associate with the fix. |
{- "formFieldsValues": [
- {
- "fieldId": "string",
- "value": "string"
}
], - "ticketKey": "string",
- "ticketUrl": "string",
- "workItems": [
- {
- "id": "string",
- "pullRequestNumber": 0,
- "ticketKey": "string",
- "ticketUrl": "string"
}
]
}{- "id": "string",
- "status": "Pending",
- "source": "string",
- "formFieldsSettings": [
- {
- "fieldId": "string",
- "name": "string",
- "placeholder": "string",
- "prePopulatedText": "string",
- "required": true,
- "minCharacters": 0
}
], - "formFieldsValues": [
- {
- "fieldId": "string",
- "value": "string"
}
], - "createdAt": "2019-08-24T14:15:22Z",
- "deletedAt": "2019-08-24T14:15:22Z",
- "statusUpdatedAt": "2019-08-24T14:15:22Z",
- "currentApprovals": 0,
- "requiredApprovals": 0,
- "requester": {
- "id": "string",
- "email": "string",
- "firstName": "string",
- "lastName": "string"
}, - "approvers": [
- {
- "id": "string",
- "email": "string",
- "firstName": "string",
- "lastName": "string"
}
], - "workItems": [
- {
- "id": "string",
- "plainId": "string",
- "ticketKey": "string",
- "ticketUrl": "string",
- "timestamp": "2019-08-24T14:15:22Z"
}
]
}Get the current state of a single fix request, including its status and approvers. Use this to check whether a fix has been approved or rejected.
| appId required | string The id of the app |
| releaseId required | string The id of the release. Constructed from the app's |
| fixRequestId required | string The ID of the fix request. |
{- "id": "string",
- "status": "Pending",
- "source": "string",
- "formFieldsSettings": [
- {
- "fieldId": "string",
- "name": "string",
- "placeholder": "string",
- "prePopulatedText": "string",
- "required": true,
- "minCharacters": 0
}
], - "formFieldsValues": [
- {
- "fieldId": "string",
- "value": "string"
}
], - "createdAt": "2019-08-24T14:15:22Z",
- "deletedAt": "2019-08-24T14:15:22Z",
- "statusUpdatedAt": "2019-08-24T14:15:22Z",
- "currentApprovals": 0,
- "requiredApprovals": 0,
- "requester": {
- "id": "string",
- "email": "string",
- "firstName": "string",
- "lastName": "string"
}, - "approvers": [
- {
- "id": "string",
- "email": "string",
- "firstName": "string",
- "lastName": "string"
}
], - "workItems": [
- {
- "id": "string",
- "plainId": "string",
- "ticketKey": "string",
- "ticketUrl": "string",
- "timestamp": "2019-08-24T14:15:22Z"
}
]
}Approve a fix request. The API key must have the UpdateFixRequestStatus user action. When the app requires multiple approvals, the fix stays in Pending until the required number of distinct approvers have approved.
| appId required | string The id of the app |
| releaseId required | string The id of the release. Constructed from the app's |
| fixRequestId required | string The ID of the fix request. |
{- "id": "string",
- "status": "Pending",
- "source": "string",
- "formFieldsSettings": [
- {
- "fieldId": "string",
- "name": "string",
- "placeholder": "string",
- "prePopulatedText": "string",
- "required": true,
- "minCharacters": 0
}
], - "formFieldsValues": [
- {
- "fieldId": "string",
- "value": "string"
}
], - "createdAt": "2019-08-24T14:15:22Z",
- "deletedAt": "2019-08-24T14:15:22Z",
- "statusUpdatedAt": "2019-08-24T14:15:22Z",
- "currentApprovals": 0,
- "requiredApprovals": 0,
- "requester": {
- "id": "string",
- "email": "string",
- "firstName": "string",
- "lastName": "string"
}, - "approvers": [
- {
- "id": "string",
- "email": "string",
- "firstName": "string",
- "lastName": "string"
}
], - "workItems": [
- {
- "id": "string",
- "plainId": "string",
- "ticketKey": "string",
- "ticketUrl": "string",
- "timestamp": "2019-08-24T14:15:22Z"
}
]
}Reject a fix request. The API key must have the UpdateFixRequestStatus user action.
| appId required | string The id of the app |
| releaseId required | string The id of the release. Constructed from the app's |
| fixRequestId required | string The ID of the fix request. |
{- "id": "string",
- "status": "Pending",
- "source": "string",
- "formFieldsSettings": [
- {
- "fieldId": "string",
- "name": "string",
- "placeholder": "string",
- "prePopulatedText": "string",
- "required": true,
- "minCharacters": 0
}
], - "formFieldsValues": [
- {
- "fieldId": "string",
- "value": "string"
}
], - "createdAt": "2019-08-24T14:15:22Z",
- "deletedAt": "2019-08-24T14:15:22Z",
- "statusUpdatedAt": "2019-08-24T14:15:22Z",
- "currentApprovals": 0,
- "requiredApprovals": 0,
- "requester": {
- "id": "string",
- "email": "string",
- "firstName": "string",
- "lastName": "string"
}, - "approvers": [
- {
- "id": "string",
- "email": "string",
- "firstName": "string",
- "lastName": "string"
}
], - "workItems": [
- {
- "id": "string",
- "plainId": "string",
- "ticketKey": "string",
- "ticketUrl": "string",
- "timestamp": "2019-08-24T14:15:22Z"
}
]
}Manually submit a specific app store submission step run to the app store.
| appId required | string The id of the app |
| releaseId required | string The id of the release. Constructed from the app's |
| stepRunId required | string The id of the step run |
The request body for submit step run. All fields default to false when omitted.
| shouldMatchPreviousPhasedRelease | boolean Default: false When true, match the previous release's phased rollout percentage on submission. |
| releasePreviousSubmissionToAllUsersFirst | boolean Default: false When true, release the previous submission to 100% of users before submitting this version. |
| releaseBetaTrackToFullPercentagePriorToSubmission | boolean Default: false When true (Google Play only), release the beta track to 100% before submitting. |
{- "shouldMatchPreviousPhasedRelease": false,
- "releasePreviousSubmissionToAllUsersFirst": false,
- "releaseBetaTrackToFullPercentagePriorToSubmission": false
}{- "code": 0,
- "message": "string"
}Update the metadata or screenshots approval status of a specific step run in a release.
| appId required | string The id of the app |
| releaseId required | string The id of the release. Constructed from the app's |
| stepRunId required | string The id of the step run |
The request body for updating a release's metadata or screenshots approval status
| isApproved required | boolean The updated approval status of the metadata or screenshots for the release |
{- "isApproved": true
}{- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}Update the regression testing status of a specific step run in a release.
| appId required | string The id of the app |
| releaseId required | string The id of the release. Constructed from the app's |
| stepRunId required | string The id of the step run |
The request body for updating a release's regression testing status
| status required | string (RegressionTestingStatusType) Enum: "inProgress" "passed" "failed" "notStarted" The updated status of the regression testing step |
| buildHash | string The build hash of the RC build that regression testing is being performed on. Leave blank to use the latest successful RC build. |
| stepRunId | string Required for workflow apps. The step run to update. Use stepRunId or stepConfigId for workflow apps. |
| stepConfigId | string Required for workflow apps. Alternative to stepRunId - identifies the regression step config. Use stepRunId or stepConfigId for workflow apps. |
{- "status": "inProgress",
- "buildHash": "string",
- "stepRunId": "string",
- "stepConfigId": "string"
}{- "id": "fake-app:1.0.0",
- "version": "1.0.0",
- "status": "active",
- "type": "major",
- "timelinePhase": "upcoming",
- "isReleaseTagged": true,
- "isKickedOff": true,
- "isSubmitted": true,
- "isReleased": true,
- "createdAt": "2022-03-02T01:15:00Z",
- "releasePilotId": "sully@example.com",
- "targetKickoffDate": "2022-03-02T01:15:00Z",
- "targetSubmissionDate": "2022-03-02T01:15:00Z",
- "targetReleaseDate": "2022-03-02T01:15:00Z",
- "releaseBranch": "release-1.0.0",
- "updatedAt": "2022-03-02T01:15:00Z",
- "kickedOffAt": "2022-03-02T01:15:00Z",
- "submittedAt": "2022-03-02T01:15:00Z",
- "releasedAt": "2022-03-02T01:15:00Z",
- "rolloutCompletedAt": "2022-03-02T01:15:00Z",
- "completedAt": "2022-03-02T01:15:00Z",
- "regressionTestingStatus": {
- "status": "string",
- "buildId": "string",
- "updatedAt": "2022-03-02T01:15:00Z"
}, - "releaseSummary": "string",
- "workItems": [
- {
- "id": "acb-1234",
- "ticket": {
- "identifier": "string",
- "description": "string",
- "url": "string",
- "owner": "string",
- "reporter": "string",
- "status": "string",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "isTicketDone": true,
- "project": { }
}, - "code": {
- "identifier": "string",
- "codeStatus": "openPR",
- "type": "commit",
- "url": "string",
- "author": "string",
- "message": "string",
- "branch": "string",
- "committedAt": "2022-03-02T01:15:00Z",
- "authoredAt": "2022-03-02T01:15:00Z"
}, - "explanationText": "string",
- "ignored": true,
- "isItemDone": true
}
], - "steps": [
- {
- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}
], - "appStoreData": {
- "type": "AppleAppStoreData",
- "releaseType": "string",
- "earliestReleaseDate": "2019-08-24T14:15:22Z",
- "state": "string",
- "phasedRelease": {
- "state": "string",
- "dayNumber": 1,
- "startDate": "2019-08-24T14:15:22Z"
}
}, - "customMetadata": {
}
}Trigger the CI build workflow for a release-candidate step run on a given release. This endpoint is for FlightPath enabled apps only, and the targeted step run must correspond to a step config of archetype releaseCandidate.
| appId required | string The id of the app |
| releaseId required | string The id of the release. Constructed from the app's |
| stepRunId required | string The id of the step run |
{- "triggeredBuilds": [
- {
- "stepConfigId": "string",
- "buildId": "string",
- "workflowDisplayableName": "string",
- "resolvedBranchName": "string"
}
], - "message": "string"
}Set the selected app store build(s) for an app store submission step run. This endpoint is for FlightPath enabled apps only.
| appId required | string The id of the app |
| releaseId required | string The id of the release. Constructed from the app's |
| stepRunId required | string The id of the step run |
The request body for setting the selected app store build(s) for a step run.
| buildIds required | Array of strings The list of build IDs to select for this step run. |
{- "buildIds": [
- "string"
]
}{- "code": 0,
- "message": "string"
}| releaseId required | string The id of the release. Constructed from the app's |
| appId required | string The id of the app |
| stepType required | string Enum: "metadata" "screenshots" The release step type |
The request body for updating a release's metadata or screenshots approval status
| isApproved required | boolean The updated approval status of the metadata or screenshots for the release |
{- "isApproved": true
}{- "id": "fake-app:1.0.0",
- "version": "1.0.0",
- "status": "active",
- "type": "major",
- "timelinePhase": "upcoming",
- "isReleaseTagged": true,
- "isKickedOff": true,
- "isSubmitted": true,
- "isReleased": true,
- "createdAt": "2022-03-02T01:15:00Z",
- "releasePilotId": "sully@example.com",
- "targetKickoffDate": "2022-03-02T01:15:00Z",
- "targetSubmissionDate": "2022-03-02T01:15:00Z",
- "targetReleaseDate": "2022-03-02T01:15:00Z",
- "releaseBranch": "release-1.0.0",
- "updatedAt": "2022-03-02T01:15:00Z",
- "kickedOffAt": "2022-03-02T01:15:00Z",
- "submittedAt": "2022-03-02T01:15:00Z",
- "releasedAt": "2022-03-02T01:15:00Z",
- "rolloutCompletedAt": "2022-03-02T01:15:00Z",
- "completedAt": "2022-03-02T01:15:00Z",
- "regressionTestingStatus": {
- "status": "string",
- "buildId": "string",
- "updatedAt": "2022-03-02T01:15:00Z"
}, - "releaseSummary": "string",
- "workItems": [
- {
- "id": "acb-1234",
- "ticket": {
- "identifier": "string",
- "description": "string",
- "url": "string",
- "owner": "string",
- "reporter": "string",
- "status": "string",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "isTicketDone": true,
- "project": { }
}, - "code": {
- "identifier": "string",
- "codeStatus": "openPR",
- "type": "commit",
- "url": "string",
- "author": "string",
- "message": "string",
- "branch": "string",
- "committedAt": "2022-03-02T01:15:00Z",
- "authoredAt": "2022-03-02T01:15:00Z"
}, - "explanationText": "string",
- "ignored": true,
- "isItemDone": true
}
], - "steps": [
- {
- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}
], - "appStoreData": {
- "type": "AppleAppStoreData",
- "releaseType": "string",
- "earliestReleaseDate": "2019-08-24T14:15:22Z",
- "state": "string",
- "phasedRelease": {
- "state": "string",
- "dayNumber": 1,
- "startDate": "2019-08-24T14:15:22Z"
}
}, - "customMetadata": {
}
}| releaseId required | string The id of the release. Constructed from the app's |
| appId required | string The id of the app |
| notesType required | string Enum: "ai-generated-internal" "ai-generated-external" The type of AI-generated release notes |
| stepType required | string Enum: "kickoff" "metadata" "release" "betaTesting" The release step type |
| locale | string Default: "en-US" |
| markdownSupported | boolean Default: false |
{- "content": "string"
}| appId required | string The id of the app |
The request body for creating a new step checklist item
| title required | string Title of the checklist item |
| description | string Description of the checklist item |
| releaseStep required | string (ReleaseStepType) Enum: "kickoff" "featureReadiness" "releaseCandidate" "regressionTesting" "betaTesting" "metadata" "screenshots" "approvals" "submission" "storeReview" "takeoff" "ciDistribution" The release step that the checklist item appears on |
| approverGroups | Array of strings (UserGroup) Items Enum: "pilot" "engineer" "pm" "qa" "design" "em" "marketing" "cx" "ops" "approver" The list of user groups that can approve this checklist item. Custom groups can be included as well |
| owners | Array of strings List of user ids allowed to approve item |
| notifyEnabled | boolean Will send a notification when approval is updated. |
| oneOffForVersion | string Nullable, checklist item will only appear in this version |
| stepConfigId | string Nullable, target a specific step config by ID |
{- "title": "string",
- "description": "string",
- "releaseStep": "kickoff",
- "approverGroups": [
- "pilot"
], - "owners": [
- "string"
], - "notifyEnabled": true,
- "oneOffForVersion": "string",
- "stepConfigId": "string"
}{- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}Get a checklist item by ID. Supports both legacy checklist-settings and workflows-aware item templates/items.
| appId required | string The id of the app |
| checklistItemId required | string The id of the checklist item, approval item or regression testing item being fetched / updated |
{- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}Update a checklist item by ID. Supports both legacy checklist-settings and workflows-aware item templates/items.
| appId required | string The id of the app |
| checklistItemId required | string The id of the checklist item, approval item or regression testing item being fetched / updated |
The request body to update a checklist item template or instance
| title | string Title of the checklist item |
| description | string Description of the checklist item |
| approverGroups | Array of strings (UserGroup) Items Enum: "pilot" "engineer" "pm" "qa" "design" "em" "marketing" "cx" "ops" "approver" The list of user groups that can approve this checklist item. Custom groups can be included as well |
| owners | Array of strings List of user ids allowed to approve item |
| notifyEnabled | boolean Will send a notification when approval is updated. |
{- "title": "string",
- "description": "string",
- "approverGroups": [
- "pilot"
], - "owners": [
- "string"
], - "notifyEnabled": true
}{- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}This endpoint can be used to update the status on Checklist items, Approval items and Regression Testing items.
| appId required | string The id of the app |
| releaseId required | string The id of the release. Constructed from the app's |
| checklistItemId required | string The id of the checklist item, approval item or regression testing item being fetched / updated |
The request body to update the status of a checklist item, approval item or regression testing item
| status | string (ChecklistItemStatusType) Enum: "approved" "rejected" "inProgress" "blocked" "passed" "failed" The checklist item's updated status. Pass null to clear the status. |
{- "status": "approved"
}{- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}This endpoint can be used to update the comment on Checklist items, Approval items and Regression Testing items.
| appId required | string The id of the app |
| releaseId required | string The id of the release. Constructed from the app's |
| checklistItemId required | string The id of the checklist item, approval item or regression testing item being fetched / updated |
The request body to update the comment of a checklist item, approval item or regression testing item
| comment | string The checklist item's updated comment. |
{- "comment": "string"
}{- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}Creates a new approval item for the app. For apps using FlightPaths with multiple destinations (e.g., separate iOS and Android approval steps), include stepConfigId in the request body to specify which approvals step the item belongs to. When omitted, the first available approvals step is used, which can be ambiguous in multi-destination FlightPaths. One-off items on FlightPaths apps can be created with an initial status.
| appId required | string The id of the app |
The request body for creating a new approval or regression testing item
| title required | string Title of the approval or regression testing item |
| description | string Description of the approval or regression testing item |
| approverGroups | Array of strings (UserGroup) Items Enum: "pilot" "engineer" "pm" "qa" "design" "em" "marketing" "cx" "ops" "approver" The list of user groups that can approve or update this item |
| owners | Array of strings List of user ids allowed to approve or update item |
| notifyEnabled | boolean Will send a notification when item is updated. |
| oneOffForVersion | string Nullable, approval or regression testing item will only appear in this version |
| stepConfigId | string Nullable - if using FlightPaths, the id of a specific approvals or regression testing step config for which to create the item |
| status | string (ChecklistItemStatusType) Enum: "approved" "rejected" "inProgress" "blocked" "passed" "failed" Optional initial status for the item, so callers that already know the outcome (e.g. an automated test suite) don't need a follow-up status update. Only supported for one-off items ( |
{- "title": "string",
- "description": "string",
- "approverGroups": [
- "pilot"
], - "owners": [
- "string"
], - "notifyEnabled": true,
- "oneOffForVersion": "string",
- "stepConfigId": "string",
- "status": "approved"
}{- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}This endpoint can be used to update the status on Checklist items, Approval items and Regression Testing items.
| appId required | string The id of the app |
| releaseId required | string The id of the release. Constructed from the app's |
| checklistItemId required | string The id of the checklist item, approval item or regression testing item being fetched / updated |
The request body to update the status of a checklist item, approval item or regression testing item
| status | string (ChecklistItemStatusType) Enum: "approved" "rejected" "inProgress" "blocked" "passed" "failed" The checklist item's updated status. Pass null to clear the status. |
{- "status": "approved"
}{- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}This endpoint can be used to update the comment on Checklist items, Approval items and Regression Testing items.
| appId required | string The id of the app |
| releaseId required | string The id of the release. Constructed from the app's |
| checklistItemId required | string The id of the checklist item, approval item or regression testing item being fetched / updated |
The request body to update the comment of a checklist item, approval item or regression testing item
| comment | string The checklist item's updated comment. |
{- "comment": "string"
}{- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}Creates a new regression testing item for the app. For apps using FlightPaths with multiple destinations (e.g., separate iOS and Android regression testing steps), include stepConfigId in the request body to specify which regression testing step the item belongs to. When omitted, the first available regression testing step is used, which can be ambiguous in multi-destination FlightPaths. One-off items on FlightPaths apps can be created with an initial status.
| appId required | string The id of the app |
The request body for creating a new approval or regression testing item
| title required | string Title of the approval or regression testing item |
| description | string Description of the approval or regression testing item |
| approverGroups | Array of strings (UserGroup) Items Enum: "pilot" "engineer" "pm" "qa" "design" "em" "marketing" "cx" "ops" "approver" The list of user groups that can approve or update this item |
| owners | Array of strings List of user ids allowed to approve or update item |
| notifyEnabled | boolean Will send a notification when item is updated. |
| oneOffForVersion | string Nullable, approval or regression testing item will only appear in this version |
| stepConfigId | string Nullable - if using FlightPaths, the id of a specific approvals or regression testing step config for which to create the item |
| status | string (ChecklistItemStatusType) Enum: "approved" "rejected" "inProgress" "blocked" "passed" "failed" Optional initial status for the item, so callers that already know the outcome (e.g. an automated test suite) don't need a follow-up status update. Only supported for one-off items ( |
{- "title": "string",
- "description": "string",
- "approverGroups": [
- "pilot"
], - "owners": [
- "string"
], - "notifyEnabled": true,
- "oneOffForVersion": "string",
- "stepConfigId": "string",
- "status": "approved"
}{- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}Attempts to create each regression testing item in the request and continues when individual items fail. The response includes both successfully created items and per-item errors. For apps using FlightPaths with multiple destinations, include stepConfigId on each item when the target regression step would otherwise be ambiguous. One-off items (oneOffForVersion set) on FlightPaths apps can be created with an initial status, which avoids a separate status update per item; items whose status is invalid are reported in errors and the rest are still created.
| appId required | string The id of the app |
The request body for creating multiple regression testing items
required | Array of objects (CreateApprovalOrRegressionTestingItemRequestBody) The regression testing items to create. The API attempts every item and returns both created items and per-item errors. |
{- "items": [
- {
- "title": "string",
- "description": "string",
- "approverGroups": [
- "pilot"
], - "owners": [
- "string"
], - "notifyEnabled": true,
- "oneOffForVersion": "string",
- "stepConfigId": "string",
- "status": "approved"
}
]
}{- "requestedCount": 0,
- "createdCount": 0,
- "errorCount": 0,
- "createdItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
], - "errors": [
- {
- "index": 0,
- "title": "string",
- "error": "string"
}
]
}Sets the status of up to 200 existing regression testing items in one request, for example after re-running a test suite against a new build. Identify items by the id returned when they were created. Each item is validated independently: invalid items are reported in errors and the rest are still updated. Only supported for apps using FlightPaths. Sending an item's current status again is accepted and refreshes who set it and when.
| appId required | string The id of the app |
The request body for updating the status of multiple regression testing items
required | Array of objects (UpdateRegressionItemStatusRequestItem) <= 200 items The regression testing items to update, at most 200. Each id may appear once. |
{- "items": [
- {
- "id": "string",
- "status": "approved"
}
]
}{- "requestedCount": 0,
- "updatedCount": 0,
- "errorCount": 0,
- "updatedItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
], - "errors": [
- {
- "index": 0,
- "id": "string",
- "error": "string"
}
]
}Deletes up to 200 regression testing items in one request, identified by the id returned when they were created. Only the release's item is removed: items that repeat on every release still appear on future releases. Each id is validated independently: ids that are missing, repeated, unknown, already deleted, or not regression testing items are reported in errors, and the rest are still deleted. The remaining items keep their order. Only supported for apps using Flightpaths.
| appId required | string The id of the app |
The request body for deleting multiple regression testing items
| ids required | Array of strings <= 200 items Ids of the regression testing items to delete, at most 200. Each id may appear once. |
{- "ids": [
- "string"
]
}{- "requestedCount": 0,
- "deletedCount": 0,
- "errorCount": 0,
- "deletedIds": [
- "string"
], - "errors": [
- {
- "index": 0,
- "id": "string",
- "error": "string"
}
]
}This endpoint can be used to update the status on Checklist items, Approval items and Regression Testing items.
| appId required | string The id of the app |
| releaseId required | string The id of the release. Constructed from the app's |
| checklistItemId required | string The id of the checklist item, approval item or regression testing item being fetched / updated |
The request body to update the status of a checklist item, approval item or regression testing item
| status | string (ChecklistItemStatusType) Enum: "approved" "rejected" "inProgress" "blocked" "passed" "failed" The checklist item's updated status. Pass null to clear the status. |
{- "status": "approved"
}{- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}This endpoint can be used to update the comment on Checklist items, Approval items and Regression Testing items.
| appId required | string The id of the app |
| releaseId required | string The id of the release. Constructed from the app's |
| checklistItemId required | string The id of the checklist item, approval item or regression testing item being fetched / updated |
The request body to update the comment of a checklist item, approval item or regression testing item
| comment | string The checklist item's updated comment. |
{- "comment": "string"
}{- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}Creates a new triage issue on the app. Requires Triage to be enabled on the app.
| appId required | string The id of the app |
The request body for creating a new triage issue
| description | string Optional description of the triage issue |
| reporter | string Email of the user reporting the issue. Required unless the request is authenticated as a Runway user, in which case it defaults to that user |
| title required | string Title for the issue. |
| version | string Optional version string the issue applies to |
| build | string Optional build identifier the issue applies to |
{- "description": "string",
- "reporter": "string",
- "title": "string",
- "version": "string",
- "build": "string"
}{- "id": "string",
- "appId": "string",
- "title": "string",
- "state": "new",
- "reporter": "string",
- "assigneeUserIds": [
- "string"
], - "suggestedAssigneeUserIds": [
- "string"
], - "sources": [
- {
- "type": "runway",
- "description": "string",
- "version": "string",
- "build": "string"
}
], - "relatedIssueIds": [
- "string"
], - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Returns a page of triage issues for the app. Requires Triage to be enabled on the app. Results are paginated: use hasMore and total in the response to page through with limit and offset.
| appId required | string The id of the app |
| version | string Filter to issues matching this version (e.g. "1.2.3") — either one of the issue's sources is on that version, or the issue's fix is targeting it |
| statusGroup | string Enum: "open" "closed" Filter to all open states (new, assigned, fixRequested, fixApproved, reopened) or all closed ones (fixMerged, fixRejected, notAPriority) |
| status | string Enum: "new" "assigned" "fixRequested" "fixApproved" "reopened" "fixMerged" "fixRejected" "notAPriority" Filter by a single exact issue state. To match all open or all closed issues, use statusGroup instead |
| source | string Enum: "runway" "pmTicket" "userReviews" "betaFeedback" "regressionTesting" "healthMetrics" Filter to issues that have at least one source of this type |
| owner | string Filter to issues assigned to this user (email) or user group |
| reporter | string Filter to issues reported by this user (email) |
| destination | string Filter to issues that apply to this destination, given as the destination's step config id. An issue applies to a destination when its release version targets that destination (not skipped); issues without a version apply to all destinations. |
| search | string Free-text, case-insensitive substring match over the issue's id, title, description, and its sources' text (ticket key/title, failed test case name, review text, reporter) |
| limit | integer Default: 20 For pagination, the maximum number of issues to return |
| offset | integer Default: 0 For pagination, the number of issues to skip |
{- "issues": [
- {
- "id": "string",
- "appId": "string",
- "title": "string",
- "state": "new",
- "reporter": "string",
- "assigneeUserIds": [
- "string"
], - "suggestedAssigneeUserIds": [
- "string"
], - "sources": [
- {
- "type": "runway",
- "description": "string",
- "version": "string",
- "build": "string"
}
], - "relatedIssueIds": [
- "string"
], - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "hasMore": true,
- "total": 0,
- "openCount": 0,
- "closedCount": 0
}Returns a single triage issue with all of its sources. Requires Triage to be enabled on the app. Returns 400 if no issue with that id exists on the app.
| appId required | string The id of the app |
| issueId required | string The triage issue id |
{- "id": "string",
- "appId": "string",
- "title": "string",
- "state": "new",
- "reporter": "string",
- "assigneeUserIds": [
- "string"
], - "suggestedAssigneeUserIds": [
- "string"
], - "sources": [
- {
- "type": "runway",
- "description": "string",
- "version": "string",
- "build": "string"
}
], - "relatedIssueIds": [
- "string"
], - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Escalates an existing triage issue to a fix request on the given release: the issue moves to fixRequested and a fix request is created on that release to carry the work. Requires Triage to be enabled on the app.
A fix maps to a single feature readiness item, so workItems takes at most one code item (PR or commit) and at most one ticket — anything more returns 400. At least one work item is required unless the app's "create PM ticket on triage issue fix request" automation is enabled, in which case a ticket is created and associated automatically. The call returns 400 if the selected code or ticket is already associated with another fix on that release.
| appId required | string The id of the app |
| issueId required | string The triage issue id |
The request body for escalating a triage issue to a fix request on a release. workItems takes at most one code item (PR or commit) and at most one ticket; a ticket that isn't on the release yet can be passed by ticketKey alone and Runway pulls it in. Supply answers to the app's configured fix request form fields via formFieldsValues — fetch the field ids and rules from GET /app/{appId}/fixRequestFormFieldsSettings.
| version required | string The release the fix should land in (e.g. "1.2.3") |
Array of objects (FixRequestFormFieldValue) Values for the app's configured fix request form fields, each keyed by the field's | |
Array of objects The work that fixes the issue: at most one code item (PR or commit) and at most one ticket. |
{- "version": "string",
- "formFieldsValues": [
- {
- "fieldId": "string",
- "value": "string"
}
], - "workItems": [
- {
- "id": "string",
- "pullRequestNumber": 0,
- "ticketKey": "string",
- "ticketUrl": "string"
}
]
}{- "issue": {
- "id": "string",
- "appId": "string",
- "title": "string",
- "state": "new",
- "reporter": "string",
- "assigneeUserIds": [
- "string"
], - "suggestedAssigneeUserIds": [
- "string"
], - "sources": [
- {
- "type": "runway",
- "description": "string",
- "version": "string",
- "build": "string"
}
], - "relatedIssueIds": [
- "string"
], - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "version": "string",
- "fixRequestId": "string"
}| appId required | string The id of the app |
The request body for creating a new bucket
| name required | string The name of the bucket |
| orgWideAccessEnabled required | boolean Whether or not the bucket should have org-wide access enabled |
| notificationsEnabled required | boolean Whether or not the bucket should have notifications enabled |
required | Array of objects (BucketRule) |
required | Array of objects (BucketMember) |
{- "name": "string",
- "orgWideAccessEnabled": true,
- "notificationsEnabled": true,
- "rules": [
- {
- "type": "string",
- "fileFilterPatterns": [
- "string"
], - "branch": "string",
- "baseBranch": "string",
- "workflowId": "string"
}
], - "members": [
- {
- "permissionLevel": "admin",
- "type": "user",
- "id": "string"
}
]
}{- "id": "12345",
- "name": "CIs",
- "type": "custom",
- "rules": {
- "type": "string",
- "fileFilterPatterns": [
- "string"
], - "branch": "string",
- "baseBranch": "string",
- "workflowId": "string"
}, - "members": [
- {
- "permissionLevel": "admin",
- "type": "user",
- "id": "string"
}
], - "orgWideAccessEnabled": true,
- "status": "active",
- "notificationsEnabled": true,
- "notifications": [
- {
- "type": "string",
- "enabled": true
}
], - "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "automations": [
- {
- "type": "string",
- "enabled": true
}
], - "archivedAt": "2022-03-02T01:15:00Z",
- "totalBuildsCount": 0
}| appId required | string The id of the app |
[- {
- "id": "12345",
- "name": "CIs",
- "type": "custom",
- "rules": {
- "type": "string",
- "fileFilterPatterns": [
- "string"
], - "branch": "string",
- "baseBranch": "string",
- "workflowId": "string"
}, - "members": [
- {
- "permissionLevel": "admin",
- "type": "user",
- "id": "string"
}
], - "orgWideAccessEnabled": true,
- "status": "active",
- "notificationsEnabled": true,
- "notifications": [
- {
- "type": "string",
- "enabled": true
}
], - "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "automations": [
- {
- "type": "string",
- "enabled": true
}
], - "archivedAt": "2022-03-02T01:15:00Z",
- "totalBuildsCount": 0
}
]| appId required | string The id of the app |
| bucketId required | string The id of the bucket |
{- "id": "12345",
- "name": "CIs",
- "type": "custom",
- "rules": {
- "type": "string",
- "fileFilterPatterns": [
- "string"
], - "branch": "string",
- "baseBranch": "string",
- "workflowId": "string"
}, - "members": [
- {
- "permissionLevel": "admin",
- "type": "user",
- "id": "string"
}
], - "orgWideAccessEnabled": true,
- "status": "active",
- "notificationsEnabled": true,
- "notifications": [
- {
- "type": "string",
- "enabled": true
}
], - "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "automations": [
- {
- "type": "string",
- "enabled": true
}
], - "archivedAt": "2022-03-02T01:15:00Z",
- "totalBuildsCount": 0
}| appId required | string The id of the app |
| bucketId required | string The id of the bucket |
Update the properties of a bucket
| name | string The name of the bucket |
| status | string (BucketStatus) Enum: "active" "archived" The status of the bucket |
| orgWideAccessEnabled | boolean Whether or not the bucket should have org-wide access enabled |
| notificationsEnabled | boolean Whether or not the bucket should have notifications enabled |
Array of objects (BucketRule) | |
Array of objects (BucketMember) | |
Array of objects (NotificationEntity) | |
Array of objects (AutomationEntity) |
{- "name": "string",
- "status": "active",
- "orgWideAccessEnabled": true,
- "notificationsEnabled": true,
- "rules": [
- {
- "type": "string",
- "fileFilterPatterns": [
- "string"
], - "branch": "string",
- "baseBranch": "string",
- "workflowId": "string"
}
], - "members": [
- {
- "permissionLevel": "admin",
- "type": "user",
- "id": "string"
}
], - "notifications": [
- {
- "type": "string",
- "enabled": true
}
], - "automations": [
- {
- "type": "string",
- "enabled": true
}
]
}{- "id": "12345",
- "name": "CIs",
- "type": "custom",
- "rules": {
- "type": "string",
- "fileFilterPatterns": [
- "string"
], - "branch": "string",
- "baseBranch": "string",
- "workflowId": "string"
}, - "members": [
- {
- "permissionLevel": "admin",
- "type": "user",
- "id": "string"
}
], - "orgWideAccessEnabled": true,
- "status": "active",
- "notificationsEnabled": true,
- "notifications": [
- {
- "type": "string",
- "enabled": true
}
], - "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "automations": [
- {
- "type": "string",
- "enabled": true
}
], - "archivedAt": "2022-03-02T01:15:00Z",
- "totalBuildsCount": 0
}| appId required | string The id of the app |
| bucketId required | string The id of the bucket |
| limit | integer Default: 20 For pagination, the maximum number of builds to return |
| offset | integer Default: 0 For pagination, the number of builds to skip before returning the first release |
[- {
- "buildId": "12345",
- "status": "active",
- "bucketName": "CIs",
- "bucketId": "abc123",
- "artifactFileName": "my-app.ipa",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "additionalTesters": [
- {
- "type": "user",
- "id": "string"
}
], - "testerNotes": "string",
- "ciBuildInfo": {
- "buildHash": "abc123def456",
- "buildIdentifier": "123",
- "integrationId": "amazon",
- "buildStartedAt": "2022-03-02T01:15:00Z",
- "buildFinishedAt": "2022-03-02T01:20:00Z",
- "buildStatus": "inProgress",
- "providerBuildStatusString": "In progress",
- "commit": "abcdef123456",
- "commitMessage": "Fix bug in authentication",
- "commitAuthor": "John Doe",
- "workflowName": "CI Build",
- "branchName": "main",
- "workflowRunIdOrCommaDelimitedIds": "workflow-run-123"
}, - "binaryBuildNumber": "12345",
- "binaryBuildVersion": "1.2.3",
- "binaryBuildType": "ipa",
- "additionalArtifacts": [
- {
- "fileName": "test_results.html",
- "size": 1048576,
}
]
}
]| appId required | string The id of the app |
| bucketId required | string The id of the bucket |
| buildDistroBuildId required | string The id of the Build Distro build |
{- "buildId": "12345",
- "status": "active",
- "bucketName": "CIs",
- "bucketId": "abc123",
- "artifactFileName": "my-app.ipa",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "additionalTesters": [
- {
- "type": "user",
- "id": "string"
}
], - "testerNotes": "string",
- "ciBuildInfo": {
- "buildHash": "abc123def456",
- "buildIdentifier": "123",
- "integrationId": "amazon",
- "buildStartedAt": "2022-03-02T01:15:00Z",
- "buildFinishedAt": "2022-03-02T01:20:00Z",
- "buildStatus": "inProgress",
- "providerBuildStatusString": "In progress",
- "commit": "abcdef123456",
- "commitMessage": "Fix bug in authentication",
- "commitAuthor": "John Doe",
- "workflowName": "CI Build",
- "branchName": "main",
- "workflowRunIdOrCommaDelimitedIds": "workflow-run-123"
}, - "binaryBuildNumber": "12345",
- "binaryBuildVersion": "1.2.3",
- "binaryBuildType": "ipa",
- "additionalArtifacts": [
- {
- "fileName": "test_results.html",
- "size": 1048576,
}
]
}| appId required | string The id of the app |
| bucketId required | string The id of the bucket |
| buildDistroBuildId required | string The id of the Build Distro build |
The request body for updating the details of a Build Distro build
| status | string (BuildDistroBuildStatus) Enum: "active" "expired" "deleted" |
| testerNotes | string The tester notes for the build |
Array of objects (BuildDistroBuildTester) Any additional users or user groups assigned as testers for the build. Bucket members of the bucket this build is in are not included in the additional testers list. |
{- "status": "active",
- "testerNotes": "string",
- "additionalTesters": [
- {
- "type": "user",
- "id": "string"
}
]
}{- "buildId": "12345",
- "status": "active",
- "bucketName": "CIs",
- "bucketId": "abc123",
- "artifactFileName": "my-app.ipa",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "additionalTesters": [
- {
- "type": "user",
- "id": "string"
}
], - "testerNotes": "string",
- "ciBuildInfo": {
- "buildHash": "abc123def456",
- "buildIdentifier": "123",
- "integrationId": "amazon",
- "buildStartedAt": "2022-03-02T01:15:00Z",
- "buildFinishedAt": "2022-03-02T01:20:00Z",
- "buildStatus": "inProgress",
- "providerBuildStatusString": "In progress",
- "commit": "abcdef123456",
- "commitMessage": "Fix bug in authentication",
- "commitAuthor": "John Doe",
- "workflowName": "CI Build",
- "branchName": "main",
- "workflowRunIdOrCommaDelimitedIds": "workflow-run-123"
}, - "binaryBuildNumber": "12345",
- "binaryBuildVersion": "1.2.3",
- "binaryBuildType": "ipa",
- "additionalArtifacts": [
- {
- "fileName": "test_results.html",
- "size": 1048576,
}
]
}| appId required | string The id of the app |
| bucketId required | string The id of the bucket |
| buildDistroBuildId required | string The id of the Build Distro build |
{- "buildId": "12345",
- "status": "active",
- "bucketName": "CIs",
- "bucketId": "abc123",
- "artifactFileName": "my-app.ipa",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "additionalTesters": [
- {
- "type": "user",
- "id": "string"
}
], - "testerNotes": "string",
- "ciBuildInfo": {
- "buildHash": "abc123def456",
- "buildIdentifier": "123",
- "integrationId": "amazon",
- "buildStartedAt": "2022-03-02T01:15:00Z",
- "buildFinishedAt": "2022-03-02T01:20:00Z",
- "buildStatus": "inProgress",
- "providerBuildStatusString": "In progress",
- "commit": "abcdef123456",
- "commitMessage": "Fix bug in authentication",
- "commitAuthor": "John Doe",
- "workflowName": "CI Build",
- "branchName": "main",
- "workflowRunIdOrCommaDelimitedIds": "workflow-run-123"
}, - "binaryBuildNumber": "12345",
- "binaryBuildVersion": "1.2.3",
- "binaryBuildType": "ipa",
- "additionalArtifacts": [
- {
- "fileName": "test_results.html",
- "size": 1048576,
}
]
}Please note the unique upload server URL for this endpoint.
The binary file must be included in a 'file' field as form data. Please see below for an example curl request:
curl -X POST \
-F "file=@example.ipa" \
-F 'data={"testerNotes":"optional tester notes"}' \
-H "X-API-KEY:API-KEY" \
https://upload-api.runway.team/v1/app/{appId}/bucket/{bucketId}/build
| appId required | string The id of the app |
| bucketId required | string The id of the bucket |
The request body for uploading a new Build Distro build
| file required | string <binary> |
object (BuildDistroBuildUploadRequestFormData) |
{- "buildId": "12345",
- "status": "active",
- "bucketName": "CIs",
- "bucketId": "abc123",
- "artifactFileName": "my-app.ipa",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "additionalTesters": [
- {
- "type": "user",
- "id": "string"
}
], - "testerNotes": "string",
- "ciBuildInfo": {
- "buildHash": "abc123def456",
- "buildIdentifier": "123",
- "integrationId": "amazon",
- "buildStartedAt": "2022-03-02T01:15:00Z",
- "buildFinishedAt": "2022-03-02T01:20:00Z",
- "buildStatus": "inProgress",
- "providerBuildStatusString": "In progress",
- "commit": "abcdef123456",
- "commitMessage": "Fix bug in authentication",
- "commitAuthor": "John Doe",
- "workflowName": "CI Build",
- "branchName": "main",
- "workflowRunIdOrCommaDelimitedIds": "workflow-run-123"
}, - "binaryBuildNumber": "12345",
- "binaryBuildVersion": "1.2.3",
- "binaryBuildType": "ipa",
- "additionalArtifacts": [
- {
- "fileName": "test_results.html",
- "size": 1048576,
}
]
}Please note the unique upload server URL for this endpoint.
The file must be included in a 'file' field as form data. Please see below for an example curl request:
curl -X POST \
-F "file=@test_results.html" \
-F 'data={"fileName":"user friendly file name"}' \
-H "X-API-KEY:API-KEY" \
https://upload-api.runway.team/v1/app/{appId}/bucket/{bucketId}/build/{buildDistroBuildId}/additionalFiles
| appId required | string The id of the app |
| bucketId required | string The id of the bucket |
| buildDistroBuildId required | string The id of the Build Distro build |
The request body for uploading an additional file to a Build Distro build
| file required | string <binary> |
object (BuildDistroBuildAdditionalFileUploadRequestFormData) |
{- "buildId": "12345",
- "status": "active",
- "bucketName": "CIs",
- "bucketId": "abc123",
- "artifactFileName": "my-app.ipa",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "additionalTesters": [
- {
- "type": "user",
- "id": "string"
}
], - "testerNotes": "string",
- "ciBuildInfo": {
- "buildHash": "abc123def456",
- "buildIdentifier": "123",
- "integrationId": "amazon",
- "buildStartedAt": "2022-03-02T01:15:00Z",
- "buildFinishedAt": "2022-03-02T01:20:00Z",
- "buildStatus": "inProgress",
- "providerBuildStatusString": "In progress",
- "commit": "abcdef123456",
- "commitMessage": "Fix bug in authentication",
- "commitAuthor": "John Doe",
- "workflowName": "CI Build",
- "branchName": "main",
- "workflowRunIdOrCommaDelimitedIds": "workflow-run-123"
}, - "binaryBuildNumber": "12345",
- "binaryBuildVersion": "1.2.3",
- "binaryBuildType": "ipa",
- "additionalArtifacts": [
- {
- "fileName": "test_results.html",
- "size": 1048576,
}
]
}| appId required | string The id of the app |
| bucketId required | string The id of the bucket |
| buildDistroBuildId required | string The id of the Build Distro build |
| fileName required | string The file name of the additional file |
{- "code": 0,
- "message": "string"
}Runway exposes a remote MCP (Model Context Protocol) server that lets LLM clients drive Runway on your team's behalf. The tools below are the actions an MCP client can invoke; most are thin wrappers around the REST API endpoints documented in the other sections.
get_app — Get app details.
get_org — Get organization details.
get_schedule_cadence — Get the app's release cadence (weekly / biweekly / monthly), target kickoff / submit / release day-and-time, and timezone.
get_lifecycle_freezes — Get the app's configured lifecycle freeze/code freeze date ranges and affected release lifecycle events.
get_org_metrics — Cross-app, cross-release aggregate metrics for the whole org over a historical date range (release durations, review rejection rates, build counts, etc.).
list_apps — List all apps in an org.
list_integrations — List integrations installed on an app (CI providers, app stores, VCS, etc.).
list_user_groups — List user groups for an org.
get_user_group — Get user group details.
create_user_group — Create a user group.
update_user_group — Update a user group.
delete_group — Delete a user group.
list_releases — List releases for an app (basic release-level info only).
get_release — Get release details.
get_release_schedule — Get concrete target dates, status, and release pilot for past, current, and predicted future releases. Optionally filter by version.
create_release — Create a release.
update_release — Update a release.
delete_release — Delete a release.
skip_release — Skip a release.
unskip_release — Unskip a release.
get_release_timeline_events — Get timeline events for a release. Use these to see what happened and in what order — never to compute durations; get review timing from get_release_step.
search_feature_readiness_items — Search Feature Readiness work items on a release by keyword.
find_recent_releases_by_work_item — Find recent releases that contain a specific work item (PR, commit, or ticket).
release_custom_metadata — Read or update the custom metadata attached to a release: a map of a human-readable title to any-JSON value (e.g. an incident link or experiment id), where the title is the entry's identity. Set operation to get to read, or set to upsert entries by title (map a title to null to delete it); this is unrelated to App Store listing metadata.
update_release_approval — Approve or unapprove metadata / screenshots on a release.
update_release_metadata — Update App Store / Play Store listing metadata (release notes, keywords, description, etc.) per locale.
developer_reject_submission — Cancel / pull back / developer-reject a build that's been submitted to the store but not yet released.
trigger_ci_workflow — Trigger (start / run / kick off) the CI build workflow for a release's release-candidate (CI) step. FlightPaths-enabled apps only.
update_regression_status — Update the regression testing status of a release.
ignore_unignore_feature_readiness_items — Ignore or un-ignore Feature Readiness work items on a release.
list_release_steps — Lightweight list of steps for a release (returns each step's id, archetype, status).
get_release_step — Get details for a release step by archetype. The shape of the returned data depends on the archetype:
submittedAt, startedReviewAt, approvedAt, markedRejectedAt, releasedAt, plus the precomputed waitingForReviewSeconds (queued before review started) and timeInReviewSeconds (under review).regressionItems and testRuns from the connected regression integration.approvalItems.releaseAdoptionRate, phasedRelease (rollout percentage via userFraction, state, dayNumber, startDate), appStoreReviewData (average rating, total ratings count, surfaced user review issues), and monitoringStatistics (crash-free users, crash-free sessions, custom metrics — each with currentValue, delta, previousValue, monitoringMetricStatus).get_release_feature_flags — Get all feature flags relevant to a release, including status, version targeting, rollout percentage, variations, rules, and per-version change signals.
toggle_release_feature_flag — Enable or disable a feature flag for a release. The change is propagated to the underlying feature flag provider and affects production.
list_release_checklist_items — List all checklist items on a release.
get_checklist_item — Get checklist item details.
create_checklist_item — Create a generic step checklist item (non-regression, non-approval).
create_approval — Create an approval item.
create_regression_items — Create one or more regression testing items.
create_regression_step_checklist_item — Create a checklist item on the regression testing step.
update_checklist_item_status — Update a checklist item's status.
update_checklist_item_comment — Update a checklist item's comment.
list_fix_requests — List the fix requests on a release (status, requester, approvals, the work items each covers).
get_fix_request — Get a single fix request's current state (status, requester, approvals still needed).
get_fix_request_form_fields_settings — Get the app's configured fix request form fields (their ids, and any required / minimum-length rules) needed to create a fix request.
create_fix_request — Create a fix request on a release, flagging a PR, commit, or ticket as a fix that needs to land; pass answers to the app's form fields via formFieldsValues.
approve_fix_request — Approve a fix request on a release.
reject_fix_request — Reject a fix request on a release.
list_build_buckets — List Build Distro buckets for an app.
get_build_bucket — Get a Build Distro bucket.
create_build_bucket — Create a Build Distro bucket.
update_build_bucket — Update a Build Distro bucket.
list_bucket_builds — List builds in a Build Distro bucket.
get_bucket_build — Get a Build Distro build.
update_bucket_build — Update a Build Distro build.
delete_build — Delete a build from a Build Distro bucket.
list_integration_builds — List builds uploaded to a Custom CI (MRM) integration for a release.
get_custom_ci_build_artifact_download — Get a signed download URL for the primary binary artifact of a Custom CI (MRM) build.
get_custom_ci_build_additional_file_download — Get a signed download URL for a supplemental file attached to a Custom CI build.
download_latest_ci_build_artifact — Get a signed download URL for an artifact from the newest build on a CI step.
Requires Triage to be enabled on the app.
create_triage_issue — Create a triage issue on an app.
list_triage_issues — List triage issues for an app, with optional filters for version (to scope to a release), status, source, owner, reporter, destination, and a free-text search.
get_triage_issue — Get a single triage issue by id, with all of its sources.
create_fix_request_on_triage_issue — Create a fix request on an existing triage issue: the issue moves to fixRequested and a fix request is created on the target release.
update_scheduled_automation — Enable or disable a scheduled release automation (kickoff, submit, release, halt, promote, resume_rollout).
update_lifecycle_freezes — Replace only the app's configured lifecycle freeze/code freeze date ranges, without changing schedule cadence.
set_automation_pause — Temporarily pause or resume an app's automations (reversible — e.g. during a hotfix, code freeze, or incident). Distinct from update_scheduled_automation, which changes an automation's saved enabled/disabled config.
When a release is kicked off. All platforms.
| eventType required | string The type of event that was sent |
| wasAutomatedByRunway required | boolean True if the event happened as a result of an action automated by Runway |
object (AppEntity) The app that the event occurred on | |
object (ReleaseEntity) The release that the event occurred on |
{- "eventType": "string",
- "wasAutomatedByRunway": true,
- "app": {
- "id": "fake-app",
- "appName": "Fake app",
- "platform": "ios",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "release": {
- "id": "fake-app:1.0.0",
- "version": "1.0.0",
- "status": "active",
- "type": "major",
- "timelinePhase": "upcoming",
- "isReleaseTagged": true,
- "isKickedOff": true,
- "isSubmitted": true,
- "isReleased": true,
- "createdAt": "2022-03-02T01:15:00Z",
- "releasePilotId": "sully@example.com",
- "targetKickoffDate": "2022-03-02T01:15:00Z",
- "targetSubmissionDate": "2022-03-02T01:15:00Z",
- "targetReleaseDate": "2022-03-02T01:15:00Z",
- "releaseBranch": "release-1.0.0",
- "updatedAt": "2022-03-02T01:15:00Z",
- "kickedOffAt": "2022-03-02T01:15:00Z",
- "submittedAt": "2022-03-02T01:15:00Z",
- "releasedAt": "2022-03-02T01:15:00Z",
- "rolloutCompletedAt": "2022-03-02T01:15:00Z",
- "completedAt": "2022-03-02T01:15:00Z",
- "regressionTestingStatus": {
- "status": "string",
- "buildId": "string",
- "updatedAt": "2022-03-02T01:15:00Z"
}, - "releaseSummary": "string",
- "workItems": [
- {
- "id": "acb-1234",
- "ticket": {
- "identifier": "string",
- "description": "string",
- "url": "string",
- "owner": "string",
- "reporter": "string",
- "status": "string",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "isTicketDone": true,
- "project": { }
}, - "code": {
- "identifier": "string",
- "codeStatus": "openPR",
- "type": "commit",
- "url": "string",
- "author": "string",
- "message": "string",
- "branch": "string",
- "committedAt": "2022-03-02T01:15:00Z",
- "authoredAt": "2022-03-02T01:15:00Z"
}, - "explanationText": "string",
- "ignored": true,
- "isItemDone": true
}
], - "steps": [
- {
- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}
], - "appStoreData": {
- "type": "AppleAppStoreData",
- "releaseType": "string",
- "earliestReleaseDate": "2019-08-24T14:15:22Z",
- "state": "string",
- "phasedRelease": {
- "state": "string",
- "dayNumber": 1,
- "startDate": "2019-08-24T14:15:22Z"
}
}, - "customMetadata": {
}
}
}When an app update was submitted for review. iOS and Android platforms only.
| eventType required | string The type of event that was sent |
| wasAutomatedByRunway required | boolean True if the event happened as a result of an action automated by Runway |
object (AppEntity) The app that the event occurred on | |
object (ReleaseEntity) The release that the event occurred on |
{- "eventType": "string",
- "wasAutomatedByRunway": true,
- "app": {
- "id": "fake-app",
- "appName": "Fake app",
- "platform": "ios",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "release": {
- "id": "fake-app:1.0.0",
- "version": "1.0.0",
- "status": "active",
- "type": "major",
- "timelinePhase": "upcoming",
- "isReleaseTagged": true,
- "isKickedOff": true,
- "isSubmitted": true,
- "isReleased": true,
- "createdAt": "2022-03-02T01:15:00Z",
- "releasePilotId": "sully@example.com",
- "targetKickoffDate": "2022-03-02T01:15:00Z",
- "targetSubmissionDate": "2022-03-02T01:15:00Z",
- "targetReleaseDate": "2022-03-02T01:15:00Z",
- "releaseBranch": "release-1.0.0",
- "updatedAt": "2022-03-02T01:15:00Z",
- "kickedOffAt": "2022-03-02T01:15:00Z",
- "submittedAt": "2022-03-02T01:15:00Z",
- "releasedAt": "2022-03-02T01:15:00Z",
- "rolloutCompletedAt": "2022-03-02T01:15:00Z",
- "completedAt": "2022-03-02T01:15:00Z",
- "regressionTestingStatus": {
- "status": "string",
- "buildId": "string",
- "updatedAt": "2022-03-02T01:15:00Z"
}, - "releaseSummary": "string",
- "workItems": [
- {
- "id": "acb-1234",
- "ticket": {
- "identifier": "string",
- "description": "string",
- "url": "string",
- "owner": "string",
- "reporter": "string",
- "status": "string",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "isTicketDone": true,
- "project": { }
}, - "code": {
- "identifier": "string",
- "codeStatus": "openPR",
- "type": "commit",
- "url": "string",
- "author": "string",
- "message": "string",
- "branch": "string",
- "committedAt": "2022-03-02T01:15:00Z",
- "authoredAt": "2022-03-02T01:15:00Z"
}, - "explanationText": "string",
- "ignored": true,
- "isItemDone": true
}
], - "steps": [
- {
- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}
], - "appStoreData": {
- "type": "AppleAppStoreData",
- "releaseType": "string",
- "earliestReleaseDate": "2019-08-24T14:15:22Z",
- "state": "string",
- "phasedRelease": {
- "state": "string",
- "dayNumber": 1,
- "startDate": "2019-08-24T14:15:22Z"
}
}, - "customMetadata": {
}
}
}When an app update was released to users. iOS and OTA platforms only.
| eventType required | string The type of event that was sent |
| wasAutomatedByRunway required | boolean True if the event happened as a result of an action automated by Runway |
object (AppEntity) The app that the event occurred on | |
object (ReleaseEntity) The release that the event occurred on |
{- "eventType": "string",
- "wasAutomatedByRunway": true,
- "app": {
- "id": "fake-app",
- "appName": "Fake app",
- "platform": "ios",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "release": {
- "id": "fake-app:1.0.0",
- "version": "1.0.0",
- "status": "active",
- "type": "major",
- "timelinePhase": "upcoming",
- "isReleaseTagged": true,
- "isKickedOff": true,
- "isSubmitted": true,
- "isReleased": true,
- "createdAt": "2022-03-02T01:15:00Z",
- "releasePilotId": "sully@example.com",
- "targetKickoffDate": "2022-03-02T01:15:00Z",
- "targetSubmissionDate": "2022-03-02T01:15:00Z",
- "targetReleaseDate": "2022-03-02T01:15:00Z",
- "releaseBranch": "release-1.0.0",
- "updatedAt": "2022-03-02T01:15:00Z",
- "kickedOffAt": "2022-03-02T01:15:00Z",
- "submittedAt": "2022-03-02T01:15:00Z",
- "releasedAt": "2022-03-02T01:15:00Z",
- "rolloutCompletedAt": "2022-03-02T01:15:00Z",
- "completedAt": "2022-03-02T01:15:00Z",
- "regressionTestingStatus": {
- "status": "string",
- "buildId": "string",
- "updatedAt": "2022-03-02T01:15:00Z"
}, - "releaseSummary": "string",
- "workItems": [
- {
- "id": "acb-1234",
- "ticket": {
- "identifier": "string",
- "description": "string",
- "url": "string",
- "owner": "string",
- "reporter": "string",
- "status": "string",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "isTicketDone": true,
- "project": { }
}, - "code": {
- "identifier": "string",
- "codeStatus": "openPR",
- "type": "commit",
- "url": "string",
- "author": "string",
- "message": "string",
- "branch": "string",
- "committedAt": "2022-03-02T01:15:00Z",
- "authoredAt": "2022-03-02T01:15:00Z"
}, - "explanationText": "string",
- "ignored": true,
- "isItemDone": true
}
], - "steps": [
- {
- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}
], - "appStoreData": {
- "type": "AppleAppStoreData",
- "releaseType": "string",
- "earliestReleaseDate": "2019-08-24T14:15:22Z",
- "state": "string",
- "phasedRelease": {
- "state": "string",
- "dayNumber": 1,
- "startDate": "2019-08-24T14:15:22Z"
}
}, - "customMetadata": {
}
}
}When a new release was drafted in Runway. All platforms.
| eventType required | string The type of event that was sent |
| wasAutomatedByRunway required | boolean True if the event happened as a result of an action automated by Runway |
object (AppEntity) The app that the event occurred on | |
object (ReleaseEntity) The release that the event occurred on |
{- "eventType": "string",
- "wasAutomatedByRunway": true,
- "app": {
- "id": "fake-app",
- "appName": "Fake app",
- "platform": "ios",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "release": {
- "id": "fake-app:1.0.0",
- "version": "1.0.0",
- "status": "active",
- "type": "major",
- "timelinePhase": "upcoming",
- "isReleaseTagged": true,
- "isKickedOff": true,
- "isSubmitted": true,
- "isReleased": true,
- "createdAt": "2022-03-02T01:15:00Z",
- "releasePilotId": "sully@example.com",
- "targetKickoffDate": "2022-03-02T01:15:00Z",
- "targetSubmissionDate": "2022-03-02T01:15:00Z",
- "targetReleaseDate": "2022-03-02T01:15:00Z",
- "releaseBranch": "release-1.0.0",
- "updatedAt": "2022-03-02T01:15:00Z",
- "kickedOffAt": "2022-03-02T01:15:00Z",
- "submittedAt": "2022-03-02T01:15:00Z",
- "releasedAt": "2022-03-02T01:15:00Z",
- "rolloutCompletedAt": "2022-03-02T01:15:00Z",
- "completedAt": "2022-03-02T01:15:00Z",
- "regressionTestingStatus": {
- "status": "string",
- "buildId": "string",
- "updatedAt": "2022-03-02T01:15:00Z"
}, - "releaseSummary": "string",
- "workItems": [
- {
- "id": "acb-1234",
- "ticket": {
- "identifier": "string",
- "description": "string",
- "url": "string",
- "owner": "string",
- "reporter": "string",
- "status": "string",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "isTicketDone": true,
- "project": { }
}, - "code": {
- "identifier": "string",
- "codeStatus": "openPR",
- "type": "commit",
- "url": "string",
- "author": "string",
- "message": "string",
- "branch": "string",
- "committedAt": "2022-03-02T01:15:00Z",
- "authoredAt": "2022-03-02T01:15:00Z"
}, - "explanationText": "string",
- "ignored": true,
- "isItemDone": true
}
], - "steps": [
- {
- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}
], - "appStoreData": {
- "type": "AppleAppStoreData",
- "releaseType": "string",
- "earliestReleaseDate": "2019-08-24T14:15:22Z",
- "state": "string",
- "phasedRelease": {
- "state": "string",
- "dayNumber": 1,
- "startDate": "2019-08-24T14:15:22Z"
}
}, - "customMetadata": {
}
}
}When target dates were updated for the release. All platforms.
| eventType required | string The type of event that was sent |
| wasAutomatedByRunway required | boolean True if the event happened as a result of an action automated by Runway |
object (AppEntity) The app that the event occurred on | |
object (ReleaseEntity) The release that the event occurred on |
{- "eventType": "string",
- "wasAutomatedByRunway": true,
- "app": {
- "id": "fake-app",
- "appName": "Fake app",
- "platform": "ios",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "release": {
- "id": "fake-app:1.0.0",
- "version": "1.0.0",
- "status": "active",
- "type": "major",
- "timelinePhase": "upcoming",
- "isReleaseTagged": true,
- "isKickedOff": true,
- "isSubmitted": true,
- "isReleased": true,
- "createdAt": "2022-03-02T01:15:00Z",
- "releasePilotId": "sully@example.com",
- "targetKickoffDate": "2022-03-02T01:15:00Z",
- "targetSubmissionDate": "2022-03-02T01:15:00Z",
- "targetReleaseDate": "2022-03-02T01:15:00Z",
- "releaseBranch": "release-1.0.0",
- "updatedAt": "2022-03-02T01:15:00Z",
- "kickedOffAt": "2022-03-02T01:15:00Z",
- "submittedAt": "2022-03-02T01:15:00Z",
- "releasedAt": "2022-03-02T01:15:00Z",
- "rolloutCompletedAt": "2022-03-02T01:15:00Z",
- "completedAt": "2022-03-02T01:15:00Z",
- "regressionTestingStatus": {
- "status": "string",
- "buildId": "string",
- "updatedAt": "2022-03-02T01:15:00Z"
}, - "releaseSummary": "string",
- "workItems": [
- {
- "id": "acb-1234",
- "ticket": {
- "identifier": "string",
- "description": "string",
- "url": "string",
- "owner": "string",
- "reporter": "string",
- "status": "string",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "isTicketDone": true,
- "project": { }
}, - "code": {
- "identifier": "string",
- "codeStatus": "openPR",
- "type": "commit",
- "url": "string",
- "author": "string",
- "message": "string",
- "branch": "string",
- "committedAt": "2022-03-02T01:15:00Z",
- "authoredAt": "2022-03-02T01:15:00Z"
}, - "explanationText": "string",
- "ignored": true,
- "isItemDone": true
}
], - "steps": [
- {
- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}
], - "appStoreData": {
- "type": "AppleAppStoreData",
- "releaseType": "string",
- "earliestReleaseDate": "2019-08-24T14:15:22Z",
- "state": "string",
- "phasedRelease": {
- "state": "string",
- "dayNumber": 1,
- "startDate": "2019-08-24T14:15:22Z"
}
}, - "customMetadata": {
}
}
}When the release pilot for a release was changed. All platforms.
| eventType required | string The type of event that was sent |
| wasAutomatedByRunway required | boolean True if the event happened as a result of an action automated by Runway |
object (AppEntity) The app that the event occurred on | |
object (ReleaseEntity) The release that the event occurred on |
{- "eventType": "string",
- "wasAutomatedByRunway": true,
- "app": {
- "id": "fake-app",
- "appName": "Fake app",
- "platform": "ios",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "release": {
- "id": "fake-app:1.0.0",
- "version": "1.0.0",
- "status": "active",
- "type": "major",
- "timelinePhase": "upcoming",
- "isReleaseTagged": true,
- "isKickedOff": true,
- "isSubmitted": true,
- "isReleased": true,
- "createdAt": "2022-03-02T01:15:00Z",
- "releasePilotId": "sully@example.com",
- "targetKickoffDate": "2022-03-02T01:15:00Z",
- "targetSubmissionDate": "2022-03-02T01:15:00Z",
- "targetReleaseDate": "2022-03-02T01:15:00Z",
- "releaseBranch": "release-1.0.0",
- "updatedAt": "2022-03-02T01:15:00Z",
- "kickedOffAt": "2022-03-02T01:15:00Z",
- "submittedAt": "2022-03-02T01:15:00Z",
- "releasedAt": "2022-03-02T01:15:00Z",
- "rolloutCompletedAt": "2022-03-02T01:15:00Z",
- "completedAt": "2022-03-02T01:15:00Z",
- "regressionTestingStatus": {
- "status": "string",
- "buildId": "string",
- "updatedAt": "2022-03-02T01:15:00Z"
}, - "releaseSummary": "string",
- "workItems": [
- {
- "id": "acb-1234",
- "ticket": {
- "identifier": "string",
- "description": "string",
- "url": "string",
- "owner": "string",
- "reporter": "string",
- "status": "string",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "isTicketDone": true,
- "project": { }
}, - "code": {
- "identifier": "string",
- "codeStatus": "openPR",
- "type": "commit",
- "url": "string",
- "author": "string",
- "message": "string",
- "branch": "string",
- "committedAt": "2022-03-02T01:15:00Z",
- "authoredAt": "2022-03-02T01:15:00Z"
}, - "explanationText": "string",
- "ignored": true,
- "isItemDone": true
}
], - "steps": [
- {
- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}
], - "appStoreData": {
- "type": "AppleAppStoreData",
- "releaseType": "string",
- "earliestReleaseDate": "2019-08-24T14:15:22Z",
- "state": "string",
- "phasedRelease": {
- "state": "string",
- "dayNumber": 1,
- "startDate": "2019-08-24T14:15:22Z"
}
}, - "customMetadata": {
}
}
}When the regression status in a release is updated.
| eventType required | string The type of event that was sent |
| wasAutomatedByRunway required | boolean True if the event happened as a result of an action automated by Runway |
object (AppEntity) The app that the event occurred on | |
object (ReleaseEntity) The release that the event occurred on |
{- "eventType": "string",
- "wasAutomatedByRunway": true,
- "app": {
- "id": "fake-app",
- "appName": "Fake app",
- "platform": "ios",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "release": {
- "id": "fake-app:1.0.0",
- "version": "1.0.0",
- "status": "active",
- "type": "major",
- "timelinePhase": "upcoming",
- "isReleaseTagged": true,
- "isKickedOff": true,
- "isSubmitted": true,
- "isReleased": true,
- "createdAt": "2022-03-02T01:15:00Z",
- "releasePilotId": "sully@example.com",
- "targetKickoffDate": "2022-03-02T01:15:00Z",
- "targetSubmissionDate": "2022-03-02T01:15:00Z",
- "targetReleaseDate": "2022-03-02T01:15:00Z",
- "releaseBranch": "release-1.0.0",
- "updatedAt": "2022-03-02T01:15:00Z",
- "kickedOffAt": "2022-03-02T01:15:00Z",
- "submittedAt": "2022-03-02T01:15:00Z",
- "releasedAt": "2022-03-02T01:15:00Z",
- "rolloutCompletedAt": "2022-03-02T01:15:00Z",
- "completedAt": "2022-03-02T01:15:00Z",
- "regressionTestingStatus": {
- "status": "string",
- "buildId": "string",
- "updatedAt": "2022-03-02T01:15:00Z"
}, - "releaseSummary": "string",
- "workItems": [
- {
- "id": "acb-1234",
- "ticket": {
- "identifier": "string",
- "description": "string",
- "url": "string",
- "owner": "string",
- "reporter": "string",
- "status": "string",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "isTicketDone": true,
- "project": { }
}, - "code": {
- "identifier": "string",
- "codeStatus": "openPR",
- "type": "commit",
- "url": "string",
- "author": "string",
- "message": "string",
- "branch": "string",
- "committedAt": "2022-03-02T01:15:00Z",
- "authoredAt": "2022-03-02T01:15:00Z"
}, - "explanationText": "string",
- "ignored": true,
- "isItemDone": true
}
], - "steps": [
- {
- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}
], - "appStoreData": {
- "type": "AppleAppStoreData",
- "releaseType": "string",
- "earliestReleaseDate": "2019-08-24T14:15:22Z",
- "state": "string",
- "phasedRelease": {
- "state": "string",
- "dayNumber": 1,
- "startDate": "2019-08-24T14:15:22Z"
}
}, - "customMetadata": {
}
}
}When a reminder is sent that your release is scheduled to be kicked off soon. All platforms.
| eventType required | string The type of event that was sent |
| wasAutomatedByRunway required | boolean True if the event happened as a result of an action automated by Runway |
object (AppEntity) The app that the event occurred on | |
object (ReleaseEntity) The release that the event occurred on |
{- "eventType": "string",
- "wasAutomatedByRunway": true,
- "app": {
- "id": "fake-app",
- "appName": "Fake app",
- "platform": "ios",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "release": {
- "id": "fake-app:1.0.0",
- "version": "1.0.0",
- "status": "active",
- "type": "major",
- "timelinePhase": "upcoming",
- "isReleaseTagged": true,
- "isKickedOff": true,
- "isSubmitted": true,
- "isReleased": true,
- "createdAt": "2022-03-02T01:15:00Z",
- "releasePilotId": "sully@example.com",
- "targetKickoffDate": "2022-03-02T01:15:00Z",
- "targetSubmissionDate": "2022-03-02T01:15:00Z",
- "targetReleaseDate": "2022-03-02T01:15:00Z",
- "releaseBranch": "release-1.0.0",
- "updatedAt": "2022-03-02T01:15:00Z",
- "kickedOffAt": "2022-03-02T01:15:00Z",
- "submittedAt": "2022-03-02T01:15:00Z",
- "releasedAt": "2022-03-02T01:15:00Z",
- "rolloutCompletedAt": "2022-03-02T01:15:00Z",
- "completedAt": "2022-03-02T01:15:00Z",
- "regressionTestingStatus": {
- "status": "string",
- "buildId": "string",
- "updatedAt": "2022-03-02T01:15:00Z"
}, - "releaseSummary": "string",
- "workItems": [
- {
- "id": "acb-1234",
- "ticket": {
- "identifier": "string",
- "description": "string",
- "url": "string",
- "owner": "string",
- "reporter": "string",
- "status": "string",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "isTicketDone": true,
- "project": { }
}, - "code": {
- "identifier": "string",
- "codeStatus": "openPR",
- "type": "commit",
- "url": "string",
- "author": "string",
- "message": "string",
- "branch": "string",
- "committedAt": "2022-03-02T01:15:00Z",
- "authoredAt": "2022-03-02T01:15:00Z"
}, - "explanationText": "string",
- "ignored": true,
- "isItemDone": true
}
], - "steps": [
- {
- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}
], - "appStoreData": {
- "type": "AppleAppStoreData",
- "releaseType": "string",
- "earliestReleaseDate": "2019-08-24T14:15:22Z",
- "state": "string",
- "phasedRelease": {
- "state": "string",
- "dayNumber": 1,
- "startDate": "2019-08-24T14:15:22Z"
}
}, - "customMetadata": {
}
}
}When a reminder is sent that your update is scheduled to be submitted for review soon. iOS and Android platforms only.
| eventType required | string The type of event that was sent |
| wasAutomatedByRunway required | boolean True if the event happened as a result of an action automated by Runway |
object (AppEntity) The app that the event occurred on | |
object (ReleaseEntity) The release that the event occurred on |
{- "eventType": "string",
- "wasAutomatedByRunway": true,
- "app": {
- "id": "fake-app",
- "appName": "Fake app",
- "platform": "ios",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "release": {
- "id": "fake-app:1.0.0",
- "version": "1.0.0",
- "status": "active",
- "type": "major",
- "timelinePhase": "upcoming",
- "isReleaseTagged": true,
- "isKickedOff": true,
- "isSubmitted": true,
- "isReleased": true,
- "createdAt": "2022-03-02T01:15:00Z",
- "releasePilotId": "sully@example.com",
- "targetKickoffDate": "2022-03-02T01:15:00Z",
- "targetSubmissionDate": "2022-03-02T01:15:00Z",
- "targetReleaseDate": "2022-03-02T01:15:00Z",
- "releaseBranch": "release-1.0.0",
- "updatedAt": "2022-03-02T01:15:00Z",
- "kickedOffAt": "2022-03-02T01:15:00Z",
- "submittedAt": "2022-03-02T01:15:00Z",
- "releasedAt": "2022-03-02T01:15:00Z",
- "rolloutCompletedAt": "2022-03-02T01:15:00Z",
- "completedAt": "2022-03-02T01:15:00Z",
- "regressionTestingStatus": {
- "status": "string",
- "buildId": "string",
- "updatedAt": "2022-03-02T01:15:00Z"
}, - "releaseSummary": "string",
- "workItems": [
- {
- "id": "acb-1234",
- "ticket": {
- "identifier": "string",
- "description": "string",
- "url": "string",
- "owner": "string",
- "reporter": "string",
- "status": "string",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "isTicketDone": true,
- "project": { }
}, - "code": {
- "identifier": "string",
- "codeStatus": "openPR",
- "type": "commit",
- "url": "string",
- "author": "string",
- "message": "string",
- "branch": "string",
- "committedAt": "2022-03-02T01:15:00Z",
- "authoredAt": "2022-03-02T01:15:00Z"
}, - "explanationText": "string",
- "ignored": true,
- "isItemDone": true
}
], - "steps": [
- {
- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}
], - "appStoreData": {
- "type": "AppleAppStoreData",
- "releaseType": "string",
- "earliestReleaseDate": "2019-08-24T14:15:22Z",
- "state": "string",
- "phasedRelease": {
- "state": "string",
- "dayNumber": 1,
- "startDate": "2019-08-24T14:15:22Z"
}
}, - "customMetadata": {
}
}
}When a reminder is sent that your update is scheduled to be released soon. iOS platforms only.
| eventType required | string The type of event that was sent |
| wasAutomatedByRunway required | boolean True if the event happened as a result of an action automated by Runway |
object (AppEntity) The app that the event occurred on | |
object (ReleaseEntity) The release that the event occurred on |
{- "eventType": "string",
- "wasAutomatedByRunway": true,
- "app": {
- "id": "fake-app",
- "appName": "Fake app",
- "platform": "ios",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "release": {
- "id": "fake-app:1.0.0",
- "version": "1.0.0",
- "status": "active",
- "type": "major",
- "timelinePhase": "upcoming",
- "isReleaseTagged": true,
- "isKickedOff": true,
- "isSubmitted": true,
- "isReleased": true,
- "createdAt": "2022-03-02T01:15:00Z",
- "releasePilotId": "sully@example.com",
- "targetKickoffDate": "2022-03-02T01:15:00Z",
- "targetSubmissionDate": "2022-03-02T01:15:00Z",
- "targetReleaseDate": "2022-03-02T01:15:00Z",
- "releaseBranch": "release-1.0.0",
- "updatedAt": "2022-03-02T01:15:00Z",
- "kickedOffAt": "2022-03-02T01:15:00Z",
- "submittedAt": "2022-03-02T01:15:00Z",
- "releasedAt": "2022-03-02T01:15:00Z",
- "rolloutCompletedAt": "2022-03-02T01:15:00Z",
- "completedAt": "2022-03-02T01:15:00Z",
- "regressionTestingStatus": {
- "status": "string",
- "buildId": "string",
- "updatedAt": "2022-03-02T01:15:00Z"
}, - "releaseSummary": "string",
- "workItems": [
- {
- "id": "acb-1234",
- "ticket": {
- "identifier": "string",
- "description": "string",
- "url": "string",
- "owner": "string",
- "reporter": "string",
- "status": "string",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "isTicketDone": true,
- "project": { }
}, - "code": {
- "identifier": "string",
- "codeStatus": "openPR",
- "type": "commit",
- "url": "string",
- "author": "string",
- "message": "string",
- "branch": "string",
- "committedAt": "2022-03-02T01:15:00Z",
- "authoredAt": "2022-03-02T01:15:00Z"
}, - "explanationText": "string",
- "ignored": true,
- "isItemDone": true
}
], - "steps": [
- {
- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}
], - "appStoreData": {
- "type": "AppleAppStoreData",
- "releaseType": "string",
- "earliestReleaseDate": "2019-08-24T14:15:22Z",
- "state": "string",
- "phasedRelease": {
- "state": "string",
- "dayNumber": 1,
- "startDate": "2019-08-24T14:15:22Z"
}
}, - "customMetadata": {
}
}
}When all required release steps are complete; your app update is ready to submit for review. iOS and Android platforms only.
| eventType required | string The type of event that was sent |
| wasAutomatedByRunway required | boolean True if the event happened as a result of an action automated by Runway |
object (AppEntity) The app that the event occurred on | |
object (ReleaseEntity) The release that the event occurred on | |
Array of objects (ReleaseStepEntity) The release step(s) that were affected |
{- "eventType": "string",
- "wasAutomatedByRunway": true,
- "app": {
- "id": "fake-app",
- "appName": "Fake app",
- "platform": "ios",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "release": {
- "id": "fake-app:1.0.0",
- "version": "1.0.0",
- "status": "active",
- "type": "major",
- "timelinePhase": "upcoming",
- "isReleaseTagged": true,
- "isKickedOff": true,
- "isSubmitted": true,
- "isReleased": true,
- "createdAt": "2022-03-02T01:15:00Z",
- "releasePilotId": "sully@example.com",
- "targetKickoffDate": "2022-03-02T01:15:00Z",
- "targetSubmissionDate": "2022-03-02T01:15:00Z",
- "targetReleaseDate": "2022-03-02T01:15:00Z",
- "releaseBranch": "release-1.0.0",
- "updatedAt": "2022-03-02T01:15:00Z",
- "kickedOffAt": "2022-03-02T01:15:00Z",
- "submittedAt": "2022-03-02T01:15:00Z",
- "releasedAt": "2022-03-02T01:15:00Z",
- "rolloutCompletedAt": "2022-03-02T01:15:00Z",
- "completedAt": "2022-03-02T01:15:00Z",
- "regressionTestingStatus": {
- "status": "string",
- "buildId": "string",
- "updatedAt": "2022-03-02T01:15:00Z"
}, - "releaseSummary": "string",
- "workItems": [
- {
- "id": "acb-1234",
- "ticket": {
- "identifier": "string",
- "description": "string",
- "url": "string",
- "owner": "string",
- "reporter": "string",
- "status": "string",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "isTicketDone": true,
- "project": { }
}, - "code": {
- "identifier": "string",
- "codeStatus": "openPR",
- "type": "commit",
- "url": "string",
- "author": "string",
- "message": "string",
- "branch": "string",
- "committedAt": "2022-03-02T01:15:00Z",
- "authoredAt": "2022-03-02T01:15:00Z"
}, - "explanationText": "string",
- "ignored": true,
- "isItemDone": true
}
], - "steps": [
- {
- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}
], - "appStoreData": {
- "type": "AppleAppStoreData",
- "releaseType": "string",
- "earliestReleaseDate": "2019-08-24T14:15:22Z",
- "state": "string",
- "phasedRelease": {
- "state": "string",
- "dayNumber": 1,
- "startDate": "2019-08-24T14:15:22Z"
}
}, - "customMetadata": {
}
}, - "releaseSteps": [
- {
- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}
]
}When all required release steps are complete; your app update is ready to release. iOS platforms only.
| eventType required | string The type of event that was sent |
| wasAutomatedByRunway required | boolean True if the event happened as a result of an action automated by Runway |
object (AppEntity) The app that the event occurred on | |
object (ReleaseEntity) The release that the event occurred on | |
Array of objects (ReleaseStepEntity) The release step(s) that were affected |
{- "eventType": "string",
- "wasAutomatedByRunway": true,
- "app": {
- "id": "fake-app",
- "appName": "Fake app",
- "platform": "ios",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "release": {
- "id": "fake-app:1.0.0",
- "version": "1.0.0",
- "status": "active",
- "type": "major",
- "timelinePhase": "upcoming",
- "isReleaseTagged": true,
- "isKickedOff": true,
- "isSubmitted": true,
- "isReleased": true,
- "createdAt": "2022-03-02T01:15:00Z",
- "releasePilotId": "sully@example.com",
- "targetKickoffDate": "2022-03-02T01:15:00Z",
- "targetSubmissionDate": "2022-03-02T01:15:00Z",
- "targetReleaseDate": "2022-03-02T01:15:00Z",
- "releaseBranch": "release-1.0.0",
- "updatedAt": "2022-03-02T01:15:00Z",
- "kickedOffAt": "2022-03-02T01:15:00Z",
- "submittedAt": "2022-03-02T01:15:00Z",
- "releasedAt": "2022-03-02T01:15:00Z",
- "rolloutCompletedAt": "2022-03-02T01:15:00Z",
- "completedAt": "2022-03-02T01:15:00Z",
- "regressionTestingStatus": {
- "status": "string",
- "buildId": "string",
- "updatedAt": "2022-03-02T01:15:00Z"
}, - "releaseSummary": "string",
- "workItems": [
- {
- "id": "acb-1234",
- "ticket": {
- "identifier": "string",
- "description": "string",
- "url": "string",
- "owner": "string",
- "reporter": "string",
- "status": "string",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "isTicketDone": true,
- "project": { }
}, - "code": {
- "identifier": "string",
- "codeStatus": "openPR",
- "type": "commit",
- "url": "string",
- "author": "string",
- "message": "string",
- "branch": "string",
- "committedAt": "2022-03-02T01:15:00Z",
- "authoredAt": "2022-03-02T01:15:00Z"
}, - "explanationText": "string",
- "ignored": true,
- "isItemDone": true
}
], - "steps": [
- {
- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}
], - "appStoreData": {
- "type": "AppleAppStoreData",
- "releaseType": "string",
- "earliestReleaseDate": "2019-08-24T14:15:22Z",
- "state": "string",
- "phasedRelease": {
- "state": "string",
- "dayNumber": 1,
- "startDate": "2019-08-24T14:15:22Z"
}
}, - "customMetadata": {
}
}, - "releaseSteps": [
- {
- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}
]
}When the status of a release step in Runway has changed. All platforms.
| eventType required | string The type of event that was sent |
| wasAutomatedByRunway required | boolean True if the event happened as a result of an action automated by Runway |
object (AppEntity) The app that the event occurred on | |
object (ReleaseEntity) The release that the event occurred on | |
Array of objects (ReleaseStepEntity) The release step(s) that were affected |
{- "eventType": "string",
- "wasAutomatedByRunway": true,
- "app": {
- "id": "fake-app",
- "appName": "Fake app",
- "platform": "ios",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "release": {
- "id": "fake-app:1.0.0",
- "version": "1.0.0",
- "status": "active",
- "type": "major",
- "timelinePhase": "upcoming",
- "isReleaseTagged": true,
- "isKickedOff": true,
- "isSubmitted": true,
- "isReleased": true,
- "createdAt": "2022-03-02T01:15:00Z",
- "releasePilotId": "sully@example.com",
- "targetKickoffDate": "2022-03-02T01:15:00Z",
- "targetSubmissionDate": "2022-03-02T01:15:00Z",
- "targetReleaseDate": "2022-03-02T01:15:00Z",
- "releaseBranch": "release-1.0.0",
- "updatedAt": "2022-03-02T01:15:00Z",
- "kickedOffAt": "2022-03-02T01:15:00Z",
- "submittedAt": "2022-03-02T01:15:00Z",
- "releasedAt": "2022-03-02T01:15:00Z",
- "rolloutCompletedAt": "2022-03-02T01:15:00Z",
- "completedAt": "2022-03-02T01:15:00Z",
- "regressionTestingStatus": {
- "status": "string",
- "buildId": "string",
- "updatedAt": "2022-03-02T01:15:00Z"
}, - "releaseSummary": "string",
- "workItems": [
- {
- "id": "acb-1234",
- "ticket": {
- "identifier": "string",
- "description": "string",
- "url": "string",
- "owner": "string",
- "reporter": "string",
- "status": "string",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "isTicketDone": true,
- "project": { }
}, - "code": {
- "identifier": "string",
- "codeStatus": "openPR",
- "type": "commit",
- "url": "string",
- "author": "string",
- "message": "string",
- "branch": "string",
- "committedAt": "2022-03-02T01:15:00Z",
- "authoredAt": "2022-03-02T01:15:00Z"
}, - "explanationText": "string",
- "ignored": true,
- "isItemDone": true
}
], - "steps": [
- {
- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}
], - "appStoreData": {
- "type": "AppleAppStoreData",
- "releaseType": "string",
- "earliestReleaseDate": "2019-08-24T14:15:22Z",
- "state": "string",
- "phasedRelease": {
- "state": "string",
- "dayNumber": 1,
- "startDate": "2019-08-24T14:15:22Z"
}
}, - "customMetadata": {
}
}, - "releaseSteps": [
- {
- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}
]
}When the status of an app store version has changed. iOS and Android platforms only.
| eventType required | string The type of event that was sent |
| wasAutomatedByRunway required | boolean True if the event happened as a result of an action automated by Runway |
object (AppEntity) The app that the event occurred on | |
object (ReleaseEntity) The release that the event occurred on | |
object or object (AppStoreVersionData) |
{- "eventType": "string",
- "wasAutomatedByRunway": true,
- "app": {
- "id": "fake-app",
- "appName": "Fake app",
- "platform": "ios",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "release": {
- "id": "fake-app:1.0.0",
- "version": "1.0.0",
- "status": "active",
- "type": "major",
- "timelinePhase": "upcoming",
- "isReleaseTagged": true,
- "isKickedOff": true,
- "isSubmitted": true,
- "isReleased": true,
- "createdAt": "2022-03-02T01:15:00Z",
- "releasePilotId": "sully@example.com",
- "targetKickoffDate": "2022-03-02T01:15:00Z",
- "targetSubmissionDate": "2022-03-02T01:15:00Z",
- "targetReleaseDate": "2022-03-02T01:15:00Z",
- "releaseBranch": "release-1.0.0",
- "updatedAt": "2022-03-02T01:15:00Z",
- "kickedOffAt": "2022-03-02T01:15:00Z",
- "submittedAt": "2022-03-02T01:15:00Z",
- "releasedAt": "2022-03-02T01:15:00Z",
- "rolloutCompletedAt": "2022-03-02T01:15:00Z",
- "completedAt": "2022-03-02T01:15:00Z",
- "regressionTestingStatus": {
- "status": "string",
- "buildId": "string",
- "updatedAt": "2022-03-02T01:15:00Z"
}, - "releaseSummary": "string",
- "workItems": [
- {
- "id": "acb-1234",
- "ticket": {
- "identifier": "string",
- "description": "string",
- "url": "string",
- "owner": "string",
- "reporter": "string",
- "status": "string",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "isTicketDone": true,
- "project": { }
}, - "code": {
- "identifier": "string",
- "codeStatus": "openPR",
- "type": "commit",
- "url": "string",
- "author": "string",
- "message": "string",
- "branch": "string",
- "committedAt": "2022-03-02T01:15:00Z",
- "authoredAt": "2022-03-02T01:15:00Z"
}, - "explanationText": "string",
- "ignored": true,
- "isItemDone": true
}
], - "steps": [
- {
- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}
], - "appStoreData": {
- "type": "AppleAppStoreData",
- "releaseType": "string",
- "earliestReleaseDate": "2019-08-24T14:15:22Z",
- "state": "string",
- "phasedRelease": {
- "state": "string",
- "dayNumber": 1,
- "startDate": "2019-08-24T14:15:22Z"
}
}, - "customMetadata": {
}
}, - "appStoreVersionData": {
- "type": "AppleAppStoreData",
- "releaseType": "string",
- "earliestReleaseDate": "2019-08-24T14:15:22Z",
- "state": "string",
- "phasedRelease": {
- "state": "string",
- "dayNumber": 1,
- "startDate": "2019-08-24T14:15:22Z"
}
}
}When the status of a phased/staged rollout has changed. iOS and Android platforms only.
| eventType required | string The type of event that was sent |
| wasAutomatedByRunway required | boolean True if the event happened as a result of an action automated by Runway |
object (AppEntity) The app that the event occurred on | |
object (ReleaseEntity) The release that the event occurred on | |
object or object (AppStoreVersionData) |
{- "eventType": "string",
- "wasAutomatedByRunway": true,
- "app": {
- "id": "fake-app",
- "appName": "Fake app",
- "platform": "ios",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "release": {
- "id": "fake-app:1.0.0",
- "version": "1.0.0",
- "status": "active",
- "type": "major",
- "timelinePhase": "upcoming",
- "isReleaseTagged": true,
- "isKickedOff": true,
- "isSubmitted": true,
- "isReleased": true,
- "createdAt": "2022-03-02T01:15:00Z",
- "releasePilotId": "sully@example.com",
- "targetKickoffDate": "2022-03-02T01:15:00Z",
- "targetSubmissionDate": "2022-03-02T01:15:00Z",
- "targetReleaseDate": "2022-03-02T01:15:00Z",
- "releaseBranch": "release-1.0.0",
- "updatedAt": "2022-03-02T01:15:00Z",
- "kickedOffAt": "2022-03-02T01:15:00Z",
- "submittedAt": "2022-03-02T01:15:00Z",
- "releasedAt": "2022-03-02T01:15:00Z",
- "rolloutCompletedAt": "2022-03-02T01:15:00Z",
- "completedAt": "2022-03-02T01:15:00Z",
- "regressionTestingStatus": {
- "status": "string",
- "buildId": "string",
- "updatedAt": "2022-03-02T01:15:00Z"
}, - "releaseSummary": "string",
- "workItems": [
- {
- "id": "acb-1234",
- "ticket": {
- "identifier": "string",
- "description": "string",
- "url": "string",
- "owner": "string",
- "reporter": "string",
- "status": "string",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "isTicketDone": true,
- "project": { }
}, - "code": {
- "identifier": "string",
- "codeStatus": "openPR",
- "type": "commit",
- "url": "string",
- "author": "string",
- "message": "string",
- "branch": "string",
- "committedAt": "2022-03-02T01:15:00Z",
- "authoredAt": "2022-03-02T01:15:00Z"
}, - "explanationText": "string",
- "ignored": true,
- "isItemDone": true
}
], - "steps": [
- {
- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}
], - "appStoreData": {
- "type": "AppleAppStoreData",
- "releaseType": "string",
- "earliestReleaseDate": "2019-08-24T14:15:22Z",
- "state": "string",
- "phasedRelease": {
- "state": "string",
- "dayNumber": 1,
- "startDate": "2019-08-24T14:15:22Z"
}
}, - "customMetadata": {
}
}, - "appStoreVersionData": {
- "type": "AppleAppStoreData",
- "releaseType": "string",
- "earliestReleaseDate": "2019-08-24T14:15:22Z",
- "state": "string",
- "phasedRelease": {
- "state": "string",
- "dayNumber": 1,
- "startDate": "2019-08-24T14:15:22Z"
}
}
}When the status of a checklist item, regression testing item, or approval item has changed. All platforms.
| eventType required | string The type of event that was sent |
| wasAutomatedByRunway required | boolean True if the event happened as a result of an action automated by Runway |
object (AppEntity) The app that the event occurred on | |
object (ReleaseEntity) The release that the event occurred on | |
object (ChecklistItemEntity) The checklist item that was affected |
{- "eventType": "string",
- "wasAutomatedByRunway": true,
- "app": {
- "id": "fake-app",
- "appName": "Fake app",
- "platform": "ios",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "release": {
- "id": "fake-app:1.0.0",
- "version": "1.0.0",
- "status": "active",
- "type": "major",
- "timelinePhase": "upcoming",
- "isReleaseTagged": true,
- "isKickedOff": true,
- "isSubmitted": true,
- "isReleased": true,
- "createdAt": "2022-03-02T01:15:00Z",
- "releasePilotId": "sully@example.com",
- "targetKickoffDate": "2022-03-02T01:15:00Z",
- "targetSubmissionDate": "2022-03-02T01:15:00Z",
- "targetReleaseDate": "2022-03-02T01:15:00Z",
- "releaseBranch": "release-1.0.0",
- "updatedAt": "2022-03-02T01:15:00Z",
- "kickedOffAt": "2022-03-02T01:15:00Z",
- "submittedAt": "2022-03-02T01:15:00Z",
- "releasedAt": "2022-03-02T01:15:00Z",
- "rolloutCompletedAt": "2022-03-02T01:15:00Z",
- "completedAt": "2022-03-02T01:15:00Z",
- "regressionTestingStatus": {
- "status": "string",
- "buildId": "string",
- "updatedAt": "2022-03-02T01:15:00Z"
}, - "releaseSummary": "string",
- "workItems": [
- {
- "id": "acb-1234",
- "ticket": {
- "identifier": "string",
- "description": "string",
- "url": "string",
- "owner": "string",
- "reporter": "string",
- "status": "string",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "isTicketDone": true,
- "project": { }
}, - "code": {
- "identifier": "string",
- "codeStatus": "openPR",
- "type": "commit",
- "url": "string",
- "author": "string",
- "message": "string",
- "branch": "string",
- "committedAt": "2022-03-02T01:15:00Z",
- "authoredAt": "2022-03-02T01:15:00Z"
}, - "explanationText": "string",
- "ignored": true,
- "isItemDone": true
}
], - "steps": [
- {
- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}
], - "appStoreData": {
- "type": "AppleAppStoreData",
- "releaseType": "string",
- "earliestReleaseDate": "2019-08-24T14:15:22Z",
- "state": "string",
- "phasedRelease": {
- "state": "string",
- "dayNumber": 1,
- "startDate": "2019-08-24T14:15:22Z"
}
}, - "customMetadata": {
}
}, - "checklistItem": {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
}When a new Build Distro build is available in a given bucket
| eventType required | string The type of event that was sent |
| wasAutomatedByRunway required | boolean True if the event happened as a result of an action automated by Runway |
object (BuildDistroBuildEntity) The details of a Build Distro build |
{- "eventType": "string",
- "wasAutomatedByRunway": true,
- "build": {
- "buildId": "12345",
- "status": "active",
- "bucketName": "CIs",
- "bucketId": "abc123",
- "artifactFileName": "my-app.ipa",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "additionalTesters": [
- {
- "type": "user",
- "id": "string"
}
], - "testerNotes": "string",
- "ciBuildInfo": {
- "buildHash": "abc123def456",
- "buildIdentifier": "123",
- "integrationId": "amazon",
- "buildStartedAt": "2022-03-02T01:15:00Z",
- "buildFinishedAt": "2022-03-02T01:20:00Z",
- "buildStatus": "inProgress",
- "providerBuildStatusString": "In progress",
- "commit": "abcdef123456",
- "commitMessage": "Fix bug in authentication",
- "commitAuthor": "John Doe",
- "workflowName": "CI Build",
- "branchName": "main",
- "workflowRunIdOrCommaDelimitedIds": "workflow-run-123"
}, - "binaryBuildNumber": "12345",
- "binaryBuildVersion": "1.2.3",
- "binaryBuildType": "ipa",
- "additionalArtifacts": [
- {
- "fileName": "test_results.html",
- "size": 1048576,
}
]
}
}When the artifact of a new Build Distro build is available for download
| eventType required | string The type of event that was sent |
| wasAutomatedByRunway required | boolean True if the event happened as a result of an action automated by Runway |
object (BuildDistroBuildEntity) The details of a Build Distro build |
{- "eventType": "string",
- "wasAutomatedByRunway": true,
- "build": {
- "buildId": "12345",
- "status": "active",
- "bucketName": "CIs",
- "bucketId": "abc123",
- "artifactFileName": "my-app.ipa",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "additionalTesters": [
- {
- "type": "user",
- "id": "string"
}
], - "testerNotes": "string",
- "ciBuildInfo": {
- "buildHash": "abc123def456",
- "buildIdentifier": "123",
- "integrationId": "amazon",
- "buildStartedAt": "2022-03-02T01:15:00Z",
- "buildFinishedAt": "2022-03-02T01:20:00Z",
- "buildStatus": "inProgress",
- "providerBuildStatusString": "In progress",
- "commit": "abcdef123456",
- "commitMessage": "Fix bug in authentication",
- "commitAuthor": "John Doe",
- "workflowName": "CI Build",
- "branchName": "main",
- "workflowRunIdOrCommaDelimitedIds": "workflow-run-123"
}, - "binaryBuildNumber": "12345",
- "binaryBuildVersion": "1.2.3",
- "binaryBuildType": "ipa",
- "additionalArtifacts": [
- {
- "fileName": "test_results.html",
- "size": 1048576,
}
]
}
}When the status of a CI build changes.
| eventType required | string The type of event that was sent |
| wasAutomatedByRunway required | boolean True if the event happened as a result of an action automated by Runway |
object (AppEntity) The app that the event occurred on | |
object (ReleaseEntity) The release that the event occurred on | |
object (CIBuildEntity) The build whose status changed |
{- "eventType": "string",
- "wasAutomatedByRunway": true,
- "app": {
- "id": "fake-app",
- "appName": "Fake app",
- "platform": "ios",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "release": {
- "id": "fake-app:1.0.0",
- "version": "1.0.0",
- "status": "active",
- "type": "major",
- "timelinePhase": "upcoming",
- "isReleaseTagged": true,
- "isKickedOff": true,
- "isSubmitted": true,
- "isReleased": true,
- "createdAt": "2022-03-02T01:15:00Z",
- "releasePilotId": "sully@example.com",
- "targetKickoffDate": "2022-03-02T01:15:00Z",
- "targetSubmissionDate": "2022-03-02T01:15:00Z",
- "targetReleaseDate": "2022-03-02T01:15:00Z",
- "releaseBranch": "release-1.0.0",
- "updatedAt": "2022-03-02T01:15:00Z",
- "kickedOffAt": "2022-03-02T01:15:00Z",
- "submittedAt": "2022-03-02T01:15:00Z",
- "releasedAt": "2022-03-02T01:15:00Z",
- "rolloutCompletedAt": "2022-03-02T01:15:00Z",
- "completedAt": "2022-03-02T01:15:00Z",
- "regressionTestingStatus": {
- "status": "string",
- "buildId": "string",
- "updatedAt": "2022-03-02T01:15:00Z"
}, - "releaseSummary": "string",
- "workItems": [
- {
- "id": "acb-1234",
- "ticket": {
- "identifier": "string",
- "description": "string",
- "url": "string",
- "owner": "string",
- "reporter": "string",
- "status": "string",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "isTicketDone": true,
- "project": { }
}, - "code": {
- "identifier": "string",
- "codeStatus": "openPR",
- "type": "commit",
- "url": "string",
- "author": "string",
- "message": "string",
- "branch": "string",
- "committedAt": "2022-03-02T01:15:00Z",
- "authoredAt": "2022-03-02T01:15:00Z"
}, - "explanationText": "string",
- "ignored": true,
- "isItemDone": true
}
], - "steps": [
- {
- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}
], - "appStoreData": {
- "type": "AppleAppStoreData",
- "releaseType": "string",
- "earliestReleaseDate": "2019-08-24T14:15:22Z",
- "state": "string",
- "phasedRelease": {
- "state": "string",
- "dayNumber": 1,
- "startDate": "2019-08-24T14:15:22Z"
}
}, - "customMetadata": {
}
}, - "build": {
- "buildHash": "abc123def456",
- "buildIdentifier": "123",
- "integrationId": "amazon",
- "buildStartedAt": "2022-03-02T01:15:00Z",
- "buildFinishedAt": "2022-03-02T01:20:00Z",
- "buildStatus": "inProgress",
- "providerBuildStatusString": "In progress",
- "commit": "abcdef123456",
- "commitMessage": "Fix bug in authentication",
- "commitAuthor": "John Doe",
- "workflowName": "CI Build",
- "branchName": "main",
- "workflowRunIdOrCommaDelimitedIds": "workflow-run-123"
}
}When an app store build is found and associated with a CI build
| eventType required | string The type of event that was sent |
| wasAutomatedByRunway required | boolean True if the event happened as a result of an action automated by Runway |
object (AppEntity) The app that the event occurred on | |
object (ReleaseEntity) The release that the event occurred on | |
object (CIBuildEntity) The build whose status changed |
{- "eventType": "string",
- "wasAutomatedByRunway": true,
- "app": {
- "id": "fake-app",
- "appName": "Fake app",
- "platform": "ios",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "release": {
- "id": "fake-app:1.0.0",
- "version": "1.0.0",
- "status": "active",
- "type": "major",
- "timelinePhase": "upcoming",
- "isReleaseTagged": true,
- "isKickedOff": true,
- "isSubmitted": true,
- "isReleased": true,
- "createdAt": "2022-03-02T01:15:00Z",
- "releasePilotId": "sully@example.com",
- "targetKickoffDate": "2022-03-02T01:15:00Z",
- "targetSubmissionDate": "2022-03-02T01:15:00Z",
- "targetReleaseDate": "2022-03-02T01:15:00Z",
- "releaseBranch": "release-1.0.0",
- "updatedAt": "2022-03-02T01:15:00Z",
- "kickedOffAt": "2022-03-02T01:15:00Z",
- "submittedAt": "2022-03-02T01:15:00Z",
- "releasedAt": "2022-03-02T01:15:00Z",
- "rolloutCompletedAt": "2022-03-02T01:15:00Z",
- "completedAt": "2022-03-02T01:15:00Z",
- "regressionTestingStatus": {
- "status": "string",
- "buildId": "string",
- "updatedAt": "2022-03-02T01:15:00Z"
}, - "releaseSummary": "string",
- "workItems": [
- {
- "id": "acb-1234",
- "ticket": {
- "identifier": "string",
- "description": "string",
- "url": "string",
- "owner": "string",
- "reporter": "string",
- "status": "string",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "isTicketDone": true,
- "project": { }
}, - "code": {
- "identifier": "string",
- "codeStatus": "openPR",
- "type": "commit",
- "url": "string",
- "author": "string",
- "message": "string",
- "branch": "string",
- "committedAt": "2022-03-02T01:15:00Z",
- "authoredAt": "2022-03-02T01:15:00Z"
}, - "explanationText": "string",
- "ignored": true,
- "isItemDone": true
}
], - "steps": [
- {
- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}
], - "appStoreData": {
- "type": "AppleAppStoreData",
- "releaseType": "string",
- "earliestReleaseDate": "2019-08-24T14:15:22Z",
- "state": "string",
- "phasedRelease": {
- "state": "string",
- "dayNumber": 1,
- "startDate": "2019-08-24T14:15:22Z"
}
}, - "customMetadata": {
}
}, - "build": {
- "buildHash": "abc123def456",
- "buildIdentifier": "123",
- "integrationId": "amazon",
- "buildStartedAt": "2022-03-02T01:15:00Z",
- "buildFinishedAt": "2022-03-02T01:20:00Z",
- "buildStatus": "inProgress",
- "providerBuildStatusString": "In progress",
- "commit": "abcdef123456",
- "commitMessage": "Fix bug in authentication",
- "commitAuthor": "John Doe",
- "workflowName": "CI Build",
- "branchName": "main",
- "workflowRunIdOrCommaDelimitedIds": "workflow-run-123"
}
}When a new app store build has been found. iOS and Android platforms only.
| eventType required | string The type of event that was sent |
| wasAutomatedByRunway required | boolean True if the event happened as a result of an action automated by Runway |
object (AppEntity) The app that the event occurred on | |
| version | string The version of the app store build |
object (AppStoreBuildEntity) The app store build that was found |
{- "eventType": "string",
- "wasAutomatedByRunway": true,
- "app": {
- "id": "fake-app",
- "appName": "Fake app",
- "platform": "ios",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "version": "string",
- "appStoreBuild": {
- "id": "abc123",
- "buildIdentifier": "123",
- "uploadedAt": "2022-03-02T01:15:00Z",
- "downloadSizeBytes": 84215296,
- "installSizeBytes": 151003136,
- "sizeDeviceModel": "Universal"
}
}When a fix request is created on a release.
| eventType required | string The type of event that was sent |
| wasAutomatedByRunway required | boolean True if the event happened as a result of an action automated by Runway |
object (AppEntity) The app that the event occurred on | |
object (WebhookFixRequestReleaseEntity) The release containing the fix request. This release shape is compatible with both legacy and Flightpath apps. | |
object (WebhookFixRequestStepRunEntity) The Flightpath step run containing the fix request. Omitted for legacy apps. | |
object (WebhookFixRequestEntity) The fix request affected by the event. |
{- "eventType": "string",
- "wasAutomatedByRunway": true,
- "app": {
- "id": "fake-app",
- "appName": "Fake app",
- "platform": "ios",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "release": {
- "id": "string",
- "version": "string",
- "displayableVersion": "string",
- "status": "active",
- "type": "major",
- "timelinePhase": "upcoming",
- "releaseBranch": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "targetKickoffDate": "2019-08-24T14:15:22Z",
- "targetSubmissionDate": "2019-08-24T14:15:22Z",
- "targetReleaseDate": "2019-08-24T14:15:22Z",
- "releasePilotId": "string",
- "releaseSummary": "string",
- "releaseDescription": "string",
- "customMetadata": { }
}, - "stepRun": {
- "id": "string",
- "stepConfigId": "string",
- "type": "string"
}, - "fixRequest": {
- "id": "string",
- "status": "Pending",
- "source": "prTitleToken",
- "formFieldsSettings": [
- {
- "fieldId": "string",
- "name": "string",
- "placeholder": "string",
- "prePopulatedText": "string",
- "required": true,
- "minCharacters": 0
}
], - "formFieldsValues": [
- {
- "fieldId": "string",
- "value": "string"
}
], - "createdAt": "2019-08-24T14:15:22Z",
- "deletedAt": "2019-08-24T14:15:22Z",
- "requester": {
- "id": "string",
- "email": "string",
- "firstName": "string",
- "lastName": "string"
}, - "approvers": [
- {
- "id": "string",
- "email": "string",
- "firstName": "string",
- "lastName": "string"
}
], - "statusUpdatedAt": "2019-08-24T14:15:22Z",
- "currentApprovals": 0,
- "requiredApprovals": 0,
- "workItems": [
- {
- "id": "string",
- "ticketKey": "string",
- "prNumber": 0,
- "commitHash": "string",
- "sourcePrNumber": 0,
- "timestamp": "2019-08-24T14:15:22Z"
}
]
}
}When a fix request receives the required number of approvals.
| eventType required | string The type of event that was sent |
| wasAutomatedByRunway required | boolean True if the event happened as a result of an action automated by Runway |
object (AppEntity) The app that the event occurred on | |
object (WebhookFixRequestReleaseEntity) The release containing the fix request. This release shape is compatible with both legacy and Flightpath apps. | |
object (WebhookFixRequestStepRunEntity) The Flightpath step run containing the fix request. Omitted for legacy apps. | |
object (WebhookFixRequestEntity) The fix request affected by the event. |
{- "eventType": "string",
- "wasAutomatedByRunway": true,
- "app": {
- "id": "fake-app",
- "appName": "Fake app",
- "platform": "ios",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "release": {
- "id": "string",
- "version": "string",
- "displayableVersion": "string",
- "status": "active",
- "type": "major",
- "timelinePhase": "upcoming",
- "releaseBranch": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "targetKickoffDate": "2019-08-24T14:15:22Z",
- "targetSubmissionDate": "2019-08-24T14:15:22Z",
- "targetReleaseDate": "2019-08-24T14:15:22Z",
- "releasePilotId": "string",
- "releaseSummary": "string",
- "releaseDescription": "string",
- "customMetadata": { }
}, - "stepRun": {
- "id": "string",
- "stepConfigId": "string",
- "type": "string"
}, - "fixRequest": {
- "id": "string",
- "status": "Pending",
- "source": "prTitleToken",
- "formFieldsSettings": [
- {
- "fieldId": "string",
- "name": "string",
- "placeholder": "string",
- "prePopulatedText": "string",
- "required": true,
- "minCharacters": 0
}
], - "formFieldsValues": [
- {
- "fieldId": "string",
- "value": "string"
}
], - "createdAt": "2019-08-24T14:15:22Z",
- "deletedAt": "2019-08-24T14:15:22Z",
- "requester": {
- "id": "string",
- "email": "string",
- "firstName": "string",
- "lastName": "string"
}, - "approvers": [
- {
- "id": "string",
- "email": "string",
- "firstName": "string",
- "lastName": "string"
}
], - "statusUpdatedAt": "2019-08-24T14:15:22Z",
- "currentApprovals": 0,
- "requiredApprovals": 0,
- "workItems": [
- {
- "id": "string",
- "ticketKey": "string",
- "prNumber": 0,
- "commitHash": "string",
- "sourcePrNumber": 0,
- "timestamp": "2019-08-24T14:15:22Z"
}
]
}
}When a fix request is rejected.
| eventType required | string The type of event that was sent |
| wasAutomatedByRunway required | boolean True if the event happened as a result of an action automated by Runway |
object (AppEntity) The app that the event occurred on | |
object (WebhookFixRequestReleaseEntity) The release containing the fix request. This release shape is compatible with both legacy and Flightpath apps. | |
object (WebhookFixRequestStepRunEntity) The Flightpath step run containing the fix request. Omitted for legacy apps. | |
object (WebhookFixRequestEntity) The fix request affected by the event. |
{- "eventType": "string",
- "wasAutomatedByRunway": true,
- "app": {
- "id": "fake-app",
- "appName": "Fake app",
- "platform": "ios",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "release": {
- "id": "string",
- "version": "string",
- "displayableVersion": "string",
- "status": "active",
- "type": "major",
- "timelinePhase": "upcoming",
- "releaseBranch": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "targetKickoffDate": "2019-08-24T14:15:22Z",
- "targetSubmissionDate": "2019-08-24T14:15:22Z",
- "targetReleaseDate": "2019-08-24T14:15:22Z",
- "releasePilotId": "string",
- "releaseSummary": "string",
- "releaseDescription": "string",
- "customMetadata": { }
}, - "stepRun": {
- "id": "string",
- "stepConfigId": "string",
- "type": "string"
}, - "fixRequest": {
- "id": "string",
- "status": "Pending",
- "source": "prTitleToken",
- "formFieldsSettings": [
- {
- "fieldId": "string",
- "name": "string",
- "placeholder": "string",
- "prePopulatedText": "string",
- "required": true,
- "minCharacters": 0
}
], - "formFieldsValues": [
- {
- "fieldId": "string",
- "value": "string"
}
], - "createdAt": "2019-08-24T14:15:22Z",
- "deletedAt": "2019-08-24T14:15:22Z",
- "requester": {
- "id": "string",
- "email": "string",
- "firstName": "string",
- "lastName": "string"
}, - "approvers": [
- {
- "id": "string",
- "email": "string",
- "firstName": "string",
- "lastName": "string"
}
], - "statusUpdatedAt": "2019-08-24T14:15:22Z",
- "currentApprovals": 0,
- "requiredApprovals": 0,
- "workItems": [
- {
- "id": "string",
- "ticketKey": "string",
- "prNumber": 0,
- "commitHash": "string",
- "sourcePrNumber": 0,
- "timestamp": "2019-08-24T14:15:22Z"
}
]
}
}When all code changes for a fix request are merged into the release branch.
| eventType required | string The type of event that was sent |
| wasAutomatedByRunway required | boolean True if the event happened as a result of an action automated by Runway |
object (AppEntity) The app that the event occurred on | |
object (WebhookFixRequestReleaseEntity) The release containing the fix request. This release shape is compatible with both legacy and Flightpath apps. | |
object (WebhookFixRequestStepRunEntity) The Flightpath step run containing the fix request. Omitted for legacy apps. | |
object (WebhookFixRequestEntity) The fix request affected by the event. |
{- "eventType": "string",
- "wasAutomatedByRunway": true,
- "app": {
- "id": "fake-app",
- "appName": "Fake app",
- "platform": "ios",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "release": {
- "id": "string",
- "version": "string",
- "displayableVersion": "string",
- "status": "active",
- "type": "major",
- "timelinePhase": "upcoming",
- "releaseBranch": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "targetKickoffDate": "2019-08-24T14:15:22Z",
- "targetSubmissionDate": "2019-08-24T14:15:22Z",
- "targetReleaseDate": "2019-08-24T14:15:22Z",
- "releasePilotId": "string",
- "releaseSummary": "string",
- "releaseDescription": "string",
- "customMetadata": { }
}, - "stepRun": {
- "id": "string",
- "stepConfigId": "string",
- "type": "string"
}, - "fixRequest": {
- "id": "string",
- "status": "Pending",
- "source": "prTitleToken",
- "formFieldsSettings": [
- {
- "fieldId": "string",
- "name": "string",
- "placeholder": "string",
- "prePopulatedText": "string",
- "required": true,
- "minCharacters": 0
}
], - "formFieldsValues": [
- {
- "fieldId": "string",
- "value": "string"
}
], - "createdAt": "2019-08-24T14:15:22Z",
- "deletedAt": "2019-08-24T14:15:22Z",
- "requester": {
- "id": "string",
- "email": "string",
- "firstName": "string",
- "lastName": "string"
}, - "approvers": [
- {
- "id": "string",
- "email": "string",
- "firstName": "string",
- "lastName": "string"
}
], - "statusUpdatedAt": "2019-08-24T14:15:22Z",
- "currentApprovals": 0,
- "requiredApprovals": 0,
- "workItems": [
- {
- "id": "string",
- "ticketKey": "string",
- "prNumber": 0,
- "commitHash": "string",
- "sourcePrNumber": 0,
- "timestamp": "2019-08-24T14:15:22Z"
}
]
}
}When a new beta build has been found. iOS and Android platforms only.
| eventType required | string The type of event that was sent |
| wasAutomatedByRunway required | boolean True if the event happened as a result of an action automated by Runway |
object (AppEntity) The app that the event occurred on | |
| version | string The version of the app store build |
object (AppStoreBuildEntity) The app store build that was found |
{- "eventType": "string",
- "wasAutomatedByRunway": true,
- "app": {
- "id": "fake-app",
- "appName": "Fake app",
- "platform": "ios",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "version": "string",
- "appStoreBuild": {
- "id": "abc123",
- "buildIdentifier": "123",
- "uploadedAt": "2022-03-02T01:15:00Z",
- "downloadSizeBytes": 84215296,
- "installSizeBytes": 151003136,
- "sizeDeviceModel": "Universal"
}
}| eventType required | string The type of event that was sent |
| wasAutomatedByRunway required | boolean True if the event happened as a result of an action automated by Runway |
{- "eventType": "string",
- "wasAutomatedByRunway": true
}object (AppEntity) The app that the event occurred on | |
object (ReleaseEntity) The release that the event occurred on |
{- "app": {
- "id": "fake-app",
- "appName": "Fake app",
- "platform": "ios",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "release": {
- "id": "fake-app:1.0.0",
- "version": "1.0.0",
- "status": "active",
- "type": "major",
- "timelinePhase": "upcoming",
- "isReleaseTagged": true,
- "isKickedOff": true,
- "isSubmitted": true,
- "isReleased": true,
- "createdAt": "2022-03-02T01:15:00Z",
- "releasePilotId": "sully@example.com",
- "targetKickoffDate": "2022-03-02T01:15:00Z",
- "targetSubmissionDate": "2022-03-02T01:15:00Z",
- "targetReleaseDate": "2022-03-02T01:15:00Z",
- "releaseBranch": "release-1.0.0",
- "updatedAt": "2022-03-02T01:15:00Z",
- "kickedOffAt": "2022-03-02T01:15:00Z",
- "submittedAt": "2022-03-02T01:15:00Z",
- "releasedAt": "2022-03-02T01:15:00Z",
- "rolloutCompletedAt": "2022-03-02T01:15:00Z",
- "completedAt": "2022-03-02T01:15:00Z",
- "regressionTestingStatus": {
- "status": "string",
- "buildId": "string",
- "updatedAt": "2022-03-02T01:15:00Z"
}, - "releaseSummary": "string",
- "workItems": [
- {
- "id": "acb-1234",
- "ticket": {
- "identifier": "string",
- "description": "string",
- "url": "string",
- "owner": "string",
- "reporter": "string",
- "status": "string",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "isTicketDone": true,
- "project": { }
}, - "code": {
- "identifier": "string",
- "codeStatus": "openPR",
- "type": "commit",
- "url": "string",
- "author": "string",
- "message": "string",
- "branch": "string",
- "committedAt": "2022-03-02T01:15:00Z",
- "authoredAt": "2022-03-02T01:15:00Z"
}, - "explanationText": "string",
- "ignored": true,
- "isItemDone": true
}
], - "steps": [
- {
- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}
], - "appStoreData": {
- "type": "AppleAppStoreData",
- "releaseType": "string",
- "earliestReleaseDate": "2019-08-24T14:15:22Z",
- "state": "string",
- "phasedRelease": {
- "state": "string",
- "dayNumber": 1,
- "startDate": "2019-08-24T14:15:22Z"
}
}, - "customMetadata": {
}
}
}object (AppEntity) The app that the event occurred on | |
object (ReleaseEntity) The release that the event occurred on | |
object (ChecklistItemEntity) The checklist item that was affected |
{- "app": {
- "id": "fake-app",
- "appName": "Fake app",
- "platform": "ios",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "release": {
- "id": "fake-app:1.0.0",
- "version": "1.0.0",
- "status": "active",
- "type": "major",
- "timelinePhase": "upcoming",
- "isReleaseTagged": true,
- "isKickedOff": true,
- "isSubmitted": true,
- "isReleased": true,
- "createdAt": "2022-03-02T01:15:00Z",
- "releasePilotId": "sully@example.com",
- "targetKickoffDate": "2022-03-02T01:15:00Z",
- "targetSubmissionDate": "2022-03-02T01:15:00Z",
- "targetReleaseDate": "2022-03-02T01:15:00Z",
- "releaseBranch": "release-1.0.0",
- "updatedAt": "2022-03-02T01:15:00Z",
- "kickedOffAt": "2022-03-02T01:15:00Z",
- "submittedAt": "2022-03-02T01:15:00Z",
- "releasedAt": "2022-03-02T01:15:00Z",
- "rolloutCompletedAt": "2022-03-02T01:15:00Z",
- "completedAt": "2022-03-02T01:15:00Z",
- "regressionTestingStatus": {
- "status": "string",
- "buildId": "string",
- "updatedAt": "2022-03-02T01:15:00Z"
}, - "releaseSummary": "string",
- "workItems": [
- {
- "id": "acb-1234",
- "ticket": {
- "identifier": "string",
- "description": "string",
- "url": "string",
- "owner": "string",
- "reporter": "string",
- "status": "string",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "isTicketDone": true,
- "project": { }
}, - "code": {
- "identifier": "string",
- "codeStatus": "openPR",
- "type": "commit",
- "url": "string",
- "author": "string",
- "message": "string",
- "branch": "string",
- "committedAt": "2022-03-02T01:15:00Z",
- "authoredAt": "2022-03-02T01:15:00Z"
}, - "explanationText": "string",
- "ignored": true,
- "isItemDone": true
}
], - "steps": [
- {
- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}
], - "appStoreData": {
- "type": "AppleAppStoreData",
- "releaseType": "string",
- "earliestReleaseDate": "2019-08-24T14:15:22Z",
- "state": "string",
- "phasedRelease": {
- "state": "string",
- "dayNumber": 1,
- "startDate": "2019-08-24T14:15:22Z"
}
}, - "customMetadata": {
}
}, - "checklistItem": {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
}object (AppEntity) The app that the event occurred on | |
object (ReleaseEntity) The release that the event occurred on | |
object or object (AppStoreVersionData) |
{- "app": {
- "id": "fake-app",
- "appName": "Fake app",
- "platform": "ios",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "release": {
- "id": "fake-app:1.0.0",
- "version": "1.0.0",
- "status": "active",
- "type": "major",
- "timelinePhase": "upcoming",
- "isReleaseTagged": true,
- "isKickedOff": true,
- "isSubmitted": true,
- "isReleased": true,
- "createdAt": "2022-03-02T01:15:00Z",
- "releasePilotId": "sully@example.com",
- "targetKickoffDate": "2022-03-02T01:15:00Z",
- "targetSubmissionDate": "2022-03-02T01:15:00Z",
- "targetReleaseDate": "2022-03-02T01:15:00Z",
- "releaseBranch": "release-1.0.0",
- "updatedAt": "2022-03-02T01:15:00Z",
- "kickedOffAt": "2022-03-02T01:15:00Z",
- "submittedAt": "2022-03-02T01:15:00Z",
- "releasedAt": "2022-03-02T01:15:00Z",
- "rolloutCompletedAt": "2022-03-02T01:15:00Z",
- "completedAt": "2022-03-02T01:15:00Z",
- "regressionTestingStatus": {
- "status": "string",
- "buildId": "string",
- "updatedAt": "2022-03-02T01:15:00Z"
}, - "releaseSummary": "string",
- "workItems": [
- {
- "id": "acb-1234",
- "ticket": {
- "identifier": "string",
- "description": "string",
- "url": "string",
- "owner": "string",
- "reporter": "string",
- "status": "string",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "isTicketDone": true,
- "project": { }
}, - "code": {
- "identifier": "string",
- "codeStatus": "openPR",
- "type": "commit",
- "url": "string",
- "author": "string",
- "message": "string",
- "branch": "string",
- "committedAt": "2022-03-02T01:15:00Z",
- "authoredAt": "2022-03-02T01:15:00Z"
}, - "explanationText": "string",
- "ignored": true,
- "isItemDone": true
}
], - "steps": [
- {
- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}
], - "appStoreData": {
- "type": "AppleAppStoreData",
- "releaseType": "string",
- "earliestReleaseDate": "2019-08-24T14:15:22Z",
- "state": "string",
- "phasedRelease": {
- "state": "string",
- "dayNumber": 1,
- "startDate": "2019-08-24T14:15:22Z"
}
}, - "customMetadata": {
}
}, - "appStoreVersionData": {
- "type": "AppleAppStoreData",
- "releaseType": "string",
- "earliestReleaseDate": "2019-08-24T14:15:22Z",
- "state": "string",
- "phasedRelease": {
- "state": "string",
- "dayNumber": 1,
- "startDate": "2019-08-24T14:15:22Z"
}
}
}object (AppEntity) The app that the event occurred on | |
object (ReleaseEntity) The release that the event occurred on | |
Array of objects (ReleaseStepEntity) The release step(s) that were affected |
{- "app": {
- "id": "fake-app",
- "appName": "Fake app",
- "platform": "ios",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "release": {
- "id": "fake-app:1.0.0",
- "version": "1.0.0",
- "status": "active",
- "type": "major",
- "timelinePhase": "upcoming",
- "isReleaseTagged": true,
- "isKickedOff": true,
- "isSubmitted": true,
- "isReleased": true,
- "createdAt": "2022-03-02T01:15:00Z",
- "releasePilotId": "sully@example.com",
- "targetKickoffDate": "2022-03-02T01:15:00Z",
- "targetSubmissionDate": "2022-03-02T01:15:00Z",
- "targetReleaseDate": "2022-03-02T01:15:00Z",
- "releaseBranch": "release-1.0.0",
- "updatedAt": "2022-03-02T01:15:00Z",
- "kickedOffAt": "2022-03-02T01:15:00Z",
- "submittedAt": "2022-03-02T01:15:00Z",
- "releasedAt": "2022-03-02T01:15:00Z",
- "rolloutCompletedAt": "2022-03-02T01:15:00Z",
- "completedAt": "2022-03-02T01:15:00Z",
- "regressionTestingStatus": {
- "status": "string",
- "buildId": "string",
- "updatedAt": "2022-03-02T01:15:00Z"
}, - "releaseSummary": "string",
- "workItems": [
- {
- "id": "acb-1234",
- "ticket": {
- "identifier": "string",
- "description": "string",
- "url": "string",
- "owner": "string",
- "reporter": "string",
- "status": "string",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "isTicketDone": true,
- "project": { }
}, - "code": {
- "identifier": "string",
- "codeStatus": "openPR",
- "type": "commit",
- "url": "string",
- "author": "string",
- "message": "string",
- "branch": "string",
- "committedAt": "2022-03-02T01:15:00Z",
- "authoredAt": "2022-03-02T01:15:00Z"
}, - "explanationText": "string",
- "ignored": true,
- "isItemDone": true
}
], - "steps": [
- {
- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}
], - "appStoreData": {
- "type": "AppleAppStoreData",
- "releaseType": "string",
- "earliestReleaseDate": "2019-08-24T14:15:22Z",
- "state": "string",
- "phasedRelease": {
- "state": "string",
- "dayNumber": 1,
- "startDate": "2019-08-24T14:15:22Z"
}
}, - "customMetadata": {
}
}, - "releaseSteps": [
- {
- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}
]
}object (AppEntity) The app that the event occurred on | |
object (ReleaseEntity) The release that the event occurred on | |
object (CIBuildEntity) The build whose status changed |
{- "app": {
- "id": "fake-app",
- "appName": "Fake app",
- "platform": "ios",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "release": {
- "id": "fake-app:1.0.0",
- "version": "1.0.0",
- "status": "active",
- "type": "major",
- "timelinePhase": "upcoming",
- "isReleaseTagged": true,
- "isKickedOff": true,
- "isSubmitted": true,
- "isReleased": true,
- "createdAt": "2022-03-02T01:15:00Z",
- "releasePilotId": "sully@example.com",
- "targetKickoffDate": "2022-03-02T01:15:00Z",
- "targetSubmissionDate": "2022-03-02T01:15:00Z",
- "targetReleaseDate": "2022-03-02T01:15:00Z",
- "releaseBranch": "release-1.0.0",
- "updatedAt": "2022-03-02T01:15:00Z",
- "kickedOffAt": "2022-03-02T01:15:00Z",
- "submittedAt": "2022-03-02T01:15:00Z",
- "releasedAt": "2022-03-02T01:15:00Z",
- "rolloutCompletedAt": "2022-03-02T01:15:00Z",
- "completedAt": "2022-03-02T01:15:00Z",
- "regressionTestingStatus": {
- "status": "string",
- "buildId": "string",
- "updatedAt": "2022-03-02T01:15:00Z"
}, - "releaseSummary": "string",
- "workItems": [
- {
- "id": "acb-1234",
- "ticket": {
- "identifier": "string",
- "description": "string",
- "url": "string",
- "owner": "string",
- "reporter": "string",
- "status": "string",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "isTicketDone": true,
- "project": { }
}, - "code": {
- "identifier": "string",
- "codeStatus": "openPR",
- "type": "commit",
- "url": "string",
- "author": "string",
- "message": "string",
- "branch": "string",
- "committedAt": "2022-03-02T01:15:00Z",
- "authoredAt": "2022-03-02T01:15:00Z"
}, - "explanationText": "string",
- "ignored": true,
- "isItemDone": true
}
], - "steps": [
- {
- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}
], - "appStoreData": {
- "type": "AppleAppStoreData",
- "releaseType": "string",
- "earliestReleaseDate": "2019-08-24T14:15:22Z",
- "state": "string",
- "phasedRelease": {
- "state": "string",
- "dayNumber": 1,
- "startDate": "2019-08-24T14:15:22Z"
}
}, - "customMetadata": {
}
}, - "build": {
- "buildHash": "abc123def456",
- "buildIdentifier": "123",
- "integrationId": "amazon",
- "buildStartedAt": "2022-03-02T01:15:00Z",
- "buildFinishedAt": "2022-03-02T01:20:00Z",
- "buildStatus": "inProgress",
- "providerBuildStatusString": "In progress",
- "commit": "abcdef123456",
- "commitMessage": "Fix bug in authentication",
- "commitAuthor": "John Doe",
- "workflowName": "CI Build",
- "branchName": "main",
- "workflowRunIdOrCommaDelimitedIds": "workflow-run-123"
}
}object (BuildDistroBuildEntity) The details of a Build Distro build |
{- "build": {
- "buildId": "12345",
- "status": "active",
- "bucketName": "CIs",
- "bucketId": "abc123",
- "artifactFileName": "my-app.ipa",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "additionalTesters": [
- {
- "type": "user",
- "id": "string"
}
], - "testerNotes": "string",
- "ciBuildInfo": {
- "buildHash": "abc123def456",
- "buildIdentifier": "123",
- "integrationId": "amazon",
- "buildStartedAt": "2022-03-02T01:15:00Z",
- "buildFinishedAt": "2022-03-02T01:20:00Z",
- "buildStatus": "inProgress",
- "providerBuildStatusString": "In progress",
- "commit": "abcdef123456",
- "commitMessage": "Fix bug in authentication",
- "commitAuthor": "John Doe",
- "workflowName": "CI Build",
- "branchName": "main",
- "workflowRunIdOrCommaDelimitedIds": "workflow-run-123"
}, - "binaryBuildNumber": "12345",
- "binaryBuildVersion": "1.2.3",
- "binaryBuildType": "ipa",
- "additionalArtifacts": [
- {
- "fileName": "test_results.html",
- "size": 1048576,
}
]
}
}object (AppEntity) The app that the event occurred on | |
| version | string The version of the app store build |
object (AppStoreBuildEntity) The app store build that was found |
{- "app": {
- "id": "fake-app",
- "appName": "Fake app",
- "platform": "ios",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "version": "string",
- "appStoreBuild": {
- "id": "abc123",
- "buildIdentifier": "123",
- "uploadedAt": "2022-03-02T01:15:00Z",
- "downloadSizeBytes": 84215296,
- "installSizeBytes": 151003136,
- "sizeDeviceModel": "Universal"
}
}object (AppEntity) The app that the event occurred on | |
object (WebhookFixRequestReleaseEntity) The release containing the fix request. This release shape is compatible with both legacy and Flightpath apps. | |
object (WebhookFixRequestStepRunEntity) The Flightpath step run containing the fix request. Omitted for legacy apps. | |
object (WebhookFixRequestEntity) The fix request affected by the event. |
{- "app": {
- "id": "fake-app",
- "appName": "Fake app",
- "platform": "ios",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "release": {
- "id": "string",
- "version": "string",
- "displayableVersion": "string",
- "status": "active",
- "type": "major",
- "timelinePhase": "upcoming",
- "releaseBranch": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "targetKickoffDate": "2019-08-24T14:15:22Z",
- "targetSubmissionDate": "2019-08-24T14:15:22Z",
- "targetReleaseDate": "2019-08-24T14:15:22Z",
- "releasePilotId": "string",
- "releaseSummary": "string",
- "releaseDescription": "string",
- "customMetadata": { }
}, - "stepRun": {
- "id": "string",
- "stepConfigId": "string",
- "type": "string"
}, - "fixRequest": {
- "id": "string",
- "status": "Pending",
- "source": "prTitleToken",
- "formFieldsSettings": [
- {
- "fieldId": "string",
- "name": "string",
- "placeholder": "string",
- "prePopulatedText": "string",
- "required": true,
- "minCharacters": 0
}
], - "formFieldsValues": [
- {
- "fieldId": "string",
- "value": "string"
}
], - "createdAt": "2019-08-24T14:15:22Z",
- "deletedAt": "2019-08-24T14:15:22Z",
- "requester": {
- "id": "string",
- "email": "string",
- "firstName": "string",
- "lastName": "string"
}, - "approvers": [
- {
- "id": "string",
- "email": "string",
- "firstName": "string",
- "lastName": "string"
}
], - "statusUpdatedAt": "2019-08-24T14:15:22Z",
- "currentApprovals": 0,
- "requiredApprovals": 0,
- "workItems": [
- {
- "id": "string",
- "ticketKey": "string",
- "prNumber": 0,
- "commitHash": "string",
- "sourcePrNumber": 0,
- "timestamp": "2019-08-24T14:15:22Z"
}
]
}
}| id required | string The id of the app entity |
| appName required | string The name of the app |
| platform required | string (AppPlatform) Enum: "ios" "android" "ios-sdk" "android-sdk" "react-native-ota" The app's platform |
| createdAt required | string <date-time> |
{- "id": "fake-app",
- "appName": "Fake app",
- "platform": "ios",
- "createdAt": "2022-03-02T01:15:00Z"
}| id required | string The id of the release entity |
| version required | string The release version |
| status required | string (ReleaseStatus) Enum: "active" "completed" "canceled" The status of a release |
| type required | string (ReleaseType) Enum: "major" "minor" "point" "hotfix" "rollback" The type of release |
| timelinePhase required | string (ReleaseTimelinePhase) Enum: "upcoming" "current" "completed" The timeline phase of the release |
| isReleaseTagged required | boolean Indicates whether the release has been tagged in VCS |
| isKickedOff required | boolean Indicates whether the release has been kicked off in Runway |
| isSubmitted required | boolean Indicates whether the release has been submitted for review in the app store |
| isReleased required | boolean Indicates whether the release has been released to users. For iOS platforms, this corresponds to the App Store status being 'READY_FOR_SALE'. For Android platforms, this corresponds to the version's status being 'inProgress' or 'completed' |
| createdAt required | string <date-time> The date and time when the release was created in Runway |
| releasePilotId | string The release pilot for the release |
| targetKickoffDate | string <date-time> The target kickoff date and time for the release |
| targetSubmissionDate | string <date-time> The target submission date and time for the release |
| targetReleaseDate | string <date-time> The target submission date and time for the release |
| releaseBranch | string The detected release branch for the release |
| updatedAt | string <date-time> The date and time when the release was last updated in Runway |
| kickedOffAt | string <date-time> The date and time when the release was kicked off in Runway |
| submittedAt | string <date-time> The date and time when the a build for the release was submitted for review |
| releasedAt | string <date-time> The date and time when a build for the release was made available to users. For iOS platforms, this corresponds to the App Store status being 'READY_FOR_SALE'. For Android platforms, this corresponds to the version's status being 'inProgress' or 'completed' |
| rolloutCompletedAt | string <date-time> The date and time when the rollout completed for the release (phased release or staged rollout reaching 100%) |
| completedAt | string <date-time> The date and time when the release was marked as completed in Runway. For iOS and Android platforms, this corresponds to the date on which a build was released to users based on the app store status. For other platforms, it corresponds to the date and time on which the production CI/CD workflow successfully completed for the first time. |
object (ReleaseRegressionTestingStatus) | |
| releaseSummary | string The automatically generated summary of the release. |
Array of objects (WorkItem) The work items associated with the release | |
required | Array of objects (ReleaseStepEntity) The steps of the release |
object or object (AppStoreVersionData) | |
object (CustomMetadata) Custom metadata attached to the release, keyed by a stable id derived from each entry's title. Each value is an entry with a human-readable |
{- "id": "fake-app:1.0.0",
- "version": "1.0.0",
- "status": "active",
- "type": "major",
- "timelinePhase": "upcoming",
- "isReleaseTagged": true,
- "isKickedOff": true,
- "isSubmitted": true,
- "isReleased": true,
- "createdAt": "2022-03-02T01:15:00Z",
- "releasePilotId": "sully@example.com",
- "targetKickoffDate": "2022-03-02T01:15:00Z",
- "targetSubmissionDate": "2022-03-02T01:15:00Z",
- "targetReleaseDate": "2022-03-02T01:15:00Z",
- "releaseBranch": "release-1.0.0",
- "updatedAt": "2022-03-02T01:15:00Z",
- "kickedOffAt": "2022-03-02T01:15:00Z",
- "submittedAt": "2022-03-02T01:15:00Z",
- "releasedAt": "2022-03-02T01:15:00Z",
- "rolloutCompletedAt": "2022-03-02T01:15:00Z",
- "completedAt": "2022-03-02T01:15:00Z",
- "regressionTestingStatus": {
- "status": "string",
- "buildId": "string",
- "updatedAt": "2022-03-02T01:15:00Z"
}, - "releaseSummary": "string",
- "workItems": [
- {
- "id": "acb-1234",
- "ticket": {
- "identifier": "string",
- "description": "string",
- "url": "string",
- "owner": "string",
- "reporter": "string",
- "status": "string",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "isTicketDone": true,
- "project": { }
}, - "code": {
- "identifier": "string",
- "codeStatus": "openPR",
- "type": "commit",
- "url": "string",
- "author": "string",
- "message": "string",
- "branch": "string",
- "committedAt": "2022-03-02T01:15:00Z",
- "authoredAt": "2022-03-02T01:15:00Z"
}, - "explanationText": "string",
- "ignored": true,
- "isItemDone": true
}
], - "steps": [
- {
- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}
], - "appStoreData": {
- "type": "AppleAppStoreData",
- "releaseType": "string",
- "earliestReleaseDate": "2019-08-24T14:15:22Z",
- "state": "string",
- "phasedRelease": {
- "state": "string",
- "dayNumber": 1,
- "startDate": "2019-08-24T14:15:22Z"
}
}, - "customMetadata": {
}
}| id required | string The ID of the group |
| name required | string The name of the group |
| userActions required | Array of strings (UserAction) Items Enum: "AddRemoveEditIntegration" "UpdateAppSettings" "EditAutomations" "CreateDeleteRelease" "CreateHotfix" "UpdateScheduleCadence" "UpdateReleaseTargetDates" "CreateBranchPromoteCode" "BumpVersion" "TagCommit" "ApproveScreenshotsMetadata" "PromoteBetaBuildToTestingTrack" "ApproveBetaTesting" "UpdateRegressionStatus" "UpdateMetadataApproval" "SetResumeActiveRCBuild" "TriggerCIWorkflow" "UpdateAppStoreSelectedBuild" "UpdateAppStoreReviewSubmission" "SubmitAppUpdate" "DevRejectAppUpdate" "ReleaseAppUpdate" "UpdateReleasePilot" "AddRemoveEditCLI" "PingCLI" "UAToggleApprovalCLI" "ToggleFRIgnore" "ToggleFeatureFlag" "UpdatePhasedRelease" "AddRemoveEditReleaseBranchPatterns" "AddRemoveEditReleaseTagPatterns" "AddRemoveEditFeatureAffiliations" "AssignBetaTestersToBuilds" "AssignBetaGroupsToBuilds" "UpdateAdditionalBranchConfig" "DownloadBuildArtifact" "UpdateMetadata" "EditReleasePlanningSummary" "EditReleaseSummaryMessage" "EditAppStoreReleaseSettings" "ApplyMetadata" "SubmitBetaBuildForReview" "PauseResumeScheduleCadence" "UpdateBetaTestingNotes" "AccessSSOPortal" "AccessDirectorySyncPortal" "CreateDeleteApp" "InviteUsers" "EditUserRoles" "RemoveOrgUser" "AddUpdateRemoveWebhook" "CreateDeleteAPITokens" "UpdateDirectorySyncRolesForGroups" "StartRollbackResigningSequence" "AddRemoveDevice" "AddRemoveTestDeviceFromApp" "UpdateDeviceInASC" "UploadSigningKey" "ImportExportTranslationStrings" "ApproveTranslations" "AddFixRequest" "UpdateFixRequestStatus" "UploadExportMetadataTranslations" "CreateEditDeleteCustomGroup" "BuildDistroOptIn" "UACreateBuildDistroBucket" "UpdateBucketSettings" "UpdateBucketNotifications" "UpdateBucketMembers" "BucketInviteIndividualTestersToBuilds" "BucketUploadBuilds" "BucketUpdateBuildTesterNotes" "BucketInstallBuilds" "ManageTriageIssues" The actions that the group is allowed to perform |
| members required | Array of strings The members of the group |
| isEligibleForPilotRotation required | boolean Whether members of this group are eligible to be added to a release pilot rotation |
{- "id": "acb-123",
- "name": "Developers",
- "userActions": [
- "AddRemoveEditIntegration"
], - "members": [
- "sully@example.com"
], - "isEligibleForPilotRotation": true
}| stepId | any The identifier of the step |
| type required | string (ReleaseStepType) Enum: "kickoff" "featureReadiness" "releaseCandidate" "regressionTesting" "betaTesting" "metadata" "screenshots" "approvals" "submission" "storeReview" "takeoff" "ciDistribution" The type of release step |
| displayName required | string The display name of the step |
| status required | string (ReleaseStepStatus) Enum: "ready" "pending" "pendingChecklist" "blocked" "inactive" The status of a release step |
| statusReasonString required | string The user-friendly description of the reason for the status of the step |
object or object or object or object or object (ReleaseStepData) | |
required | Array of objects (ChecklistItemEntity) The list of checklist items for the release step |
{- "stepId": null,
- "type": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}, - "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}| id required | string The identifier of the step run |
| stepConfigId required | string The identifier of the step config this step run was created from |
| stepArchetype required | string (ReleaseStepType) Enum: "kickoff" "featureReadiness" "releaseCandidate" "regressionTesting" "betaTesting" "metadata" "screenshots" "approvals" "submission" "storeReview" "takeoff" "ciDistribution" The type of release step |
| displayName required | string The display name of the step run |
| status required | string (ReleaseStepStatus) Enum: "ready" "pending" "pendingChecklist" "blocked" "inactive" The status of a release step |
| statusReasonString required | string The user-friendly description of the reason for the status of the step run |
required | Array of objects (ChecklistItemEntity) The list of checklist items for the step run |
object or object or object or object or object (StepRunData) |
{- "id": "string",
- "stepConfigId": "string",
- "stepArchetype": "kickoff",
- "displayName": "string",
- "status": "ready",
- "statusReasonString": "string",
- "checklistItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
], - "data": {
- "approvalItems": [
- {
- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}
]
}
}| id required | string The identifier of the checklist item |
| title required | string The title of the checklist item |
| description | string The description of the checklist item. Accepts markdown. |
| approverGroups required | Array of strings (UserGroup) Items Enum: "pilot" "engineer" "pm" "qa" "design" "em" "marketing" "cx" "ops" "approver" The list of user groups that can approve this checklist item. Custom groups can be included as well. |
| releaseType required | string Enum: "all" "hotfixOnly" "rollbackOnly" "allExceptHotfix" The type of release this checklist item will appear on |
| notifyEnabled required | boolean Whether the checklist item will notify on Slack when its status changes |
| statuses required | Array of strings (ChecklistItemStatusType) Items Enum: "approved" "rejected" "inProgress" "blocked" "passed" "failed" The list of possible checklist item status types for this checklist item. A subset of all possible ChecklistItemStatusType values |
| releaseStepType | string The release step that the checklist item appears on. Will be |
| stepId | any The step ID of the release step the checklist item appears on |
| oneOffForVersion | string If the checklist item only applies for a single release version, this field will contain the version string for that version |
object (ChecklistItemStatus) The status of the checklist item. Will be | |
| placement required | string (ChecklistItemPlacement) Enum: "stepChecklist" "approvals" "regressionTesting" The placement of the checklist item |
object (ChecklistItemComment) A comment on a checklist item |
{- "id": "string",
- "title": "Gather new release notes",
- "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
- "approverGroups": [
- "pilot"
], - "releaseType": "all",
- "notifyEnabled": true,
- "statuses": [
- "approved"
], - "releaseStepType": "string",
- "stepId": null,
- "oneOffForVersion": "1.1.0",
- "status": {
- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}, - "placement": "stepChecklist",
- "comment": {
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "comment": "string"
}
}| type required | string (AppStoreDataType) Enum: "AppleAppStoreData" "GooglePlayStoreData" The type of app store data |
| releaseType required | string The release type in ASC for the release |
| earliestReleaseDate | string <date-time> the earliest release date that the update will be released on, set if the release type is |
| state required | string The ASC state of the release, can be one of a number of version states defined by Apple. |
object (ApplePhasedRelease) The phased release details for the release. Will be |
{- "type": "AppleAppStoreData",
- "releaseType": "string",
- "earliestReleaseDate": "2019-08-24T14:15:22Z",
- "state": "string",
- "phasedRelease": {
- "state": "string",
- "dayNumber": 1,
- "startDate": "2019-08-24T14:15:22Z"
}
}| type required | string (AppStoreDataType) Enum: "AppleAppStoreData" "GooglePlayStoreData" The type of app store data |
| state required | string (GooglePlayVersionState) The Google Play Developer API status of the versioned release, can be one of a number of release statuses |
object (GoogleStagedRollout) The staged rollout details for the release. Will be null if the release is not a staged rollout |
{- "type": "AppleAppStoreData",
- "state": "string",
- "phasedRelease": {
- "state": "string",
- "userFraction": 0
}
}The Google Play Developer API status of the versioned release, can be one of a number of release statuses
"string"| state required | string (GooglePlayVersionState) The Google Play Developer API status of the versioned release, can be one of a number of release statuses |
| userFraction | number [ 0 .. 1 ] |
{- "state": "string",
- "userFraction": 0
}| state required | string The phased release state for the update, can be one of a number of phased release states defined by Apple |
| dayNumber required | number [ 1 .. 7 ] The phased release day |
| startDate | string <date-time> The date the phased release began |
{- "state": "string",
- "dayNumber": 1,
- "startDate": "2019-08-24T14:15:22Z"
}The placement of a given checklist item
"stepChecklist"The list of possible groups a user can have. Users can have multiple groups. Specify the ID of default groups as listed, or use the ID of a custom groups.
"pilot"| status required | string (ChecklistItemStatusType) Enum: "approved" "rejected" "inProgress" "blocked" "passed" "failed" The checklist item status key. For binary placement checklist items, the status will always be |
| createdBy required | string The userId (email) of the user that created the checklist item |
| createdAt required | string <date-time> The date and time the checklist item was created |
{- "status": "approved",
- "createdBy": "string",
- "createdAt": "2022-03-02T01:15:00Z"
}All possible statuses for a checklist item
"approved"The type of release
"major"The type of integration
"amazon"Release type used when creating or editing releases.
"release"A possible action a user can perform
"AddRemoveEditIntegration"The status of a release
"active"The app's platform
"ios"| buildHash required | string A unique identifier for the build from a CI system, generated from the combination of integrationId and build identifier |
| buildIdentifier required | string The identifier of the build as set by the integration provider |
| integrationId required | string (IntegrationType) Enum: "amazon" "apple" "google" "huawei" "samsung" "expo-eas" "appcenter-beta" "apple-beta" "google-beta" "firebase-beta" "runway-build-distro-beta" "appcenter-ci" "apple-ci" "azure-ci" "bitrise" "buildkite" "circleci" "codemagic" "generic-ci" "github-ci" "gitlab-ci" "jenkins" "travis" "launchdarkly" "optimizely" "statsig" "firebase-remote-config" "amplitude-experiment" "asana" "azure-it" "jira" "linear" "pivotal" "shortcut" "monday" "slack" "microsoft-teams" "amplitude" "datadog-analytics" "mixpanel-analytics" "google-analytics" "apple-power-performance-metrics" "new-relic-analytics" "custom-analytics" "testrail" "qase" "browserstack" "xray" "bugsnag" "firebase" "sentry" "embrace-stability-monitoring" "datadog-stability-monitoring" "dynatrace-stability-monitoring" "new-relic-stability-monitoring" "luciq-stability-monitoring" "luciq-analytics" "github-vcs-dist" "bitbucket" "github" "gitlab-vcs" "azure-vcs" "pagerduty-scheduling" "incident-io-scheduling" "opsgenie-scheduling" "crowdin" "lokalise" "jira-service-management-scheduling" The integration type that created this build |
| buildUrl required | string The URL to the build in the CI system |
| buildStartedAt required | string <date-time> The start date and time of the build |
| buildFinishedAt | string <date-time> The end date and time of the build |
| buildStatus required | string (CIBuildStatus) Enum: "inProgress" "stopped" "success" "failure" "skipped" The internal Runway status used for logic |
| providerBuildStatusString | string The status string displayed to the user from the provider |
| commit required | string The commit hash that triggered the build |
| commitMessage | string The commit message associated with the commit hash that triggered the build |
| commitAuthor | string The author of the commit that triggered the build |
| commitUrl | string The URL to the commit in the version control system |
| workflowName | string The displayable name of the workflow |
| branchName required | string The branch name the build was triggered from |
| workflowRunIdOrCommaDelimitedIds | string The workflow run ID(s) associated with this build. Can be a single ID or comma-delimited list of IDs |
{- "buildHash": "abc123def456",
- "buildIdentifier": "123",
- "integrationId": "amazon",
- "buildStartedAt": "2022-03-02T01:15:00Z",
- "buildFinishedAt": "2022-03-02T01:20:00Z",
- "buildStatus": "inProgress",
- "providerBuildStatusString": "In progress",
- "commit": "abcdef123456",
- "commitMessage": "Fix bug in authentication",
- "commitAuthor": "John Doe",
- "workflowName": "CI Build",
- "branchName": "main",
- "workflowRunIdOrCommaDelimitedIds": "workflow-run-123"
}| buildIdentifier required | string The identifier/number of the build as set by the CI provider |
| startedAt required | string <date-time> The start date and time of the build |
| finishedAt | string <date-time> The end date and time of the build. When passing build info as part of an artifact upload, this value should always be set. |
| status required | string (CIBuildStatus) Enum: "inProgress" "stopped" "success" "failure" "skipped" The status of the CI build. When passing build info as part of an artifact upload, this value should always be |
| url | string Your CI provider's url for the build |
| commitHash required | string The full commit hash of that triggered the build |
| commitMessage | string The commit message associated with the commit hash that triggered the build |
| commitAuthor | string The author of the commit that triggered the build |
| commitUrl | string The url for the commit that triggered the build |
| branch required | string The branch the build was triggered off of |
| integrationId required | string (CIIntegrationId) Enum: "appcenter-ci" "apple-ci" "azure-ci" "bitbucket-ci" "bitrise" "buildkite" "circleci" "codemagic" "generic-ci" "github-ci" "gitlab-ci" "jenkins" "travis" "custom-ci" Type of CI integration. |
object (CIBuildWorkflowData) |
{- "buildIdentifier": "123",
- "startedAt": "2022-03-02T01:15:00Z",
- "finishedAt": "2022-03-02T01:15:00Z",
- "status": "inProgress",
- "url": "string",
- "commitHash": "e7a5fcf0f92ff69d59333ed0e40194f3c96791f6",
- "commitMessage": "string",
- "commitAuthor": "string",
- "commitUrl": "string",
- "branch": "main",
- "integrationId": "appcenter-ci",
- "workflowData": {
- "workflowId": "12345",
- "workflowName": "Build and Test"
}
}| id required | string The id of the app store build |
| buildIdentifier required | string The build number/identifier of the app store build |
| uploadedAt required | string <date-time> The date and time the build was uploaded to the app store |
| downloadSizeBytes | integer The download size of the build bundle in bytes, for the device model in |
| installSizeBytes | integer The install size of the build bundle in bytes, for the device model in |
| sizeDeviceModel | string The device model the reported sizes apply to, configured per app (defaults to |
{- "id": "abc123",
- "buildIdentifier": "123",
- "uploadedAt": "2022-03-02T01:15:00Z",
- "downloadSizeBytes": 84215296,
- "installSizeBytes": 151003136,
- "sizeDeviceModel": "Universal"
}| buildId required | string The id of the Build Distro build |
| status required | string (BuildDistroBuildStatus) Enum: "active" "expired" "deleted" |
| bucketName required | string The name of the build's bucket |
| bucketId required | string The ID of the build's bucket |
| artifactFileName | string The name of the artifact file associated with the build |
| createdAt required | string <date-time> |
| updatedAt required | string <date-time> |
required | Array of objects (BuildDistroBuildTester) Any additional users or user groups assigned as testers for the build. Bucket members of the bucket this build is in are not included in the additional testers list. |
| testerNotes | string Optional tester notes for the build |
| downloadURL | string The url to download the build. The request to this URL must be authenticated with a Runway API key. |
object (CIBuildEntity) The CI build associated with this Build Distro build | |
| binaryBuildNumber | string The build number found associated to the binary artifact |
| binaryBuildVersion | string The build version found associated to the binary artifact |
| binaryBuildType | string The type of binary artifact |
required | Array of objects (BuildDistroAdditionalArtifact) Additional artifacts for the build |
{- "buildId": "12345",
- "status": "active",
- "bucketName": "CIs",
- "bucketId": "abc123",
- "artifactFileName": "my-app.ipa",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "additionalTesters": [
- {
- "type": "user",
- "id": "string"
}
], - "testerNotes": "string",
- "ciBuildInfo": {
- "buildHash": "abc123def456",
- "buildIdentifier": "123",
- "integrationId": "amazon",
- "buildStartedAt": "2022-03-02T01:15:00Z",
- "buildFinishedAt": "2022-03-02T01:20:00Z",
- "buildStatus": "inProgress",
- "providerBuildStatusString": "In progress",
- "commit": "abcdef123456",
- "commitMessage": "Fix bug in authentication",
- "commitAuthor": "John Doe",
- "workflowName": "CI Build",
- "branchName": "main",
- "workflowRunIdOrCommaDelimitedIds": "workflow-run-123"
}, - "binaryBuildNumber": "12345",
- "binaryBuildVersion": "1.2.3",
- "binaryBuildType": "ipa",
- "additionalArtifacts": [
- {
- "fileName": "test_results.html",
- "size": 1048576,
}
]
}| id required | string The id of the Build Distro build |
| bucketId required | string The ID of the build's bucket |
| bucketName required | string The name of the build's bucket |
object The binary build details | |
object (CIBuildEntity) The CI build associated with this Build Distro build | |
| createdAt required | string <date-time> The date and time when the build was created |
| updatedAt required | string <date-time> The date and time when the build was last updated |
| individualTesters required | Array of strings List of individual tester user IDs |
| testerNotes required | string Optional tester notes for the build |
| status required | string Enum: "" "expired" "deleted" The status of the build |
| testerNotesSetByBucketAutomation required | boolean Whether the tester notes were set by bucket automation |
| installationUrl required | string The URL for installing the build |
| downloadUrl | string The URL to download the build. The request to this URL must be authenticated with a Runway API key. |
| uploadedAt required | string <date-time> The date and time when the build was uploaded |
object Information about the artifact | |
object Pull request data if the build was created from a PR rule | |
| isMultiArtifact required | boolean Whether this is a multi-artifact build |
required | Array of objects Additional artifacts for the build |
{- "id": "12345",
- "bucketId": "abc123",
- "bucketName": "CIs",
- "binaryBuild": {
- "id": "string",
- "type": "string",
- "buildNumber": "string",
- "buildVersion": "string",
- "buildType": "string",
- "artifactFileName": "string",
- "provisioningProfile": { }
}, - "ciBuild": {
- "buildHash": "abc123def456",
- "buildIdentifier": "123",
- "integrationId": "amazon",
- "buildStartedAt": "2022-03-02T01:15:00Z",
- "buildFinishedAt": "2022-03-02T01:20:00Z",
- "buildStatus": "inProgress",
- "providerBuildStatusString": "In progress",
- "commit": "abcdef123456",
- "commitMessage": "Fix bug in authentication",
- "commitAuthor": "John Doe",
- "workflowName": "CI Build",
- "branchName": "main",
- "workflowRunIdOrCommaDelimitedIds": "workflow-run-123"
}, - "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "individualTesters": [
- "string"
], - "testerNotes": "string",
- "status": "",
- "testerNotesSetByBucketAutomation": true,
- "uploadedAt": "2022-03-02T01:15:00Z",
- "artifactInfo": {
- "downloadStatus": "success",
- "errorMessage": "string",
- "appStoreInfos": { },
- "artifactId": "string",
- "workflowRunId": "string"
}, - "prData": {
- "id": "string",
- "number": 0,
- "title": "string",
- "status": "open",
- "url": "string",
- "pullRequestType": "string",
- "owner": "string",
- "baseBranch": "string",
- "filesChanged": [
- "string"
]
}, - "isMultiArtifact": true,
- "additionalArtifacts": [
- {
- "fileName": "string",
- "size": 0,
- "downloadUrl": "string"
}
]
}| fileName required | string The name of the file |
| size required | number The file's size in bytes |
| downloadUrl required | string The file's download URL. Requests to this URL must be authenticated with a Runway API key. |
{- "fileName": "test_results.html",
- "size": 1048576,
}| id required | string The id of the Build Distro bucket |
| name required | string The name of the bucket |
| type required | string (BucketType) Enum: "custom" "personal" "rc" "dev" The type of bucket |
required | object (BucketRule) Any rules defined for the bucket |
required | Array of objects (BucketMember) The members of the bucket |
| orgWideAccessEnabled required | boolean Whether or not the bucket has org-wide access enabled |
| status required | string (BucketStatus) Enum: "active" "archived" The status of the bucket |
| notificationsEnabled required | boolean Whether or not the bucket has notifications enabled |
required | Array of objects (NotificationEntity) The notifications for the bucket |
| createdAt required | string <date-time> |
| updatedAt required | string <date-time> |
required | Array of objects (AutomationEntity) The automations for the bucket |
| archivedAt | string <date-time> |
| totalBuildsCount required | integer The total count of builds in the bucket |
{- "id": "12345",
- "name": "CIs",
- "type": "custom",
- "rules": {
- "type": "string",
- "fileFilterPatterns": [
- "string"
], - "branch": "string",
- "baseBranch": "string",
- "workflowId": "string"
}, - "members": [
- {
- "permissionLevel": "admin",
- "type": "user",
- "id": "string"
}
], - "orgWideAccessEnabled": true,
- "status": "active",
- "notificationsEnabled": true,
- "notifications": [
- {
- "type": "string",
- "enabled": true
}
], - "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "automations": [
- {
- "type": "string",
- "enabled": true
}
], - "archivedAt": "2022-03-02T01:15:00Z",
- "totalBuildsCount": 0
}| id required | string The id of the work item |
required | object (WorkItemTicket) Issue tracking item associated with work item, WorkItemTicket |
required | WorkItemCodeCommit (object) or WorkItemCodePullRequest (object) VCS item associated with work item |
| explanationText required | string The detailed explanation of why this work item appears in this release |
| ignored required | boolean If the work item has been marked as ignored |
| isItemDone required | boolean If the work item is completed |
{- "id": "acb-1234",
- "ticket": {
- "identifier": "string",
- "description": "string",
- "url": "string",
- "owner": "string",
- "reporter": "string",
- "status": "string",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "isTicketDone": true,
- "project": { }
}, - "code": {
- "identifier": "string",
- "codeStatus": "openPR",
- "type": "commit",
- "url": "string",
- "author": "string",
- "message": "string",
- "branch": "string",
- "committedAt": "2022-03-02T01:15:00Z",
- "authoredAt": "2022-03-02T01:15:00Z"
}, - "explanationText": "string",
- "ignored": true,
- "isItemDone": true
}| identifier required | string The identifier of the ticket |
| description required | string The description of the ticket |
| url required | string The url of the ticket |
| owner required | string The owner of the ticket |
| reporter required | string The reporter of the ticket |
| status required | string The status of the ticket |
| createdAt required | string <date-time> The date and time the ticket was created |
| updatedAt required | string <date-time> The date and time the ticket was last updated |
| isTicketDone required | boolean If the ticket is completed |
| project required | object The project the ticket is associated with |
{- "identifier": "string",
- "description": "string",
- "url": "string",
- "owner": "string",
- "reporter": "string",
- "status": "string",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "isTicketDone": true,
- "project": { }
}| identifier required | string The identifier of the commit |
| codeStatus required | string (CodeStatus) Enum: "openPR" "merged" "unmerged" "cherryPickPending" "cherryPickOpen" "cherryPickFailed" "cherryPickMerged" The status of the code |
| type required | string (CodeType) Enum: "commit" "pullRequest" The type of code item (commit in this case) |
| url required | string The url of the commit |
| author required | string The author of the commit |
| message required | string The message of the commit |
| branch required | string The branch of the commit |
| committedAt required | string <date-time> The date and time the commit was created |
| authoredAt required | string <date-time> The date and time the commit was authored |
{- "identifier": "string",
- "codeStatus": "openPR",
- "type": "commit",
- "url": "string",
- "author": "string",
- "message": "string",
- "branch": "string",
- "committedAt": "2022-03-02T01:15:00Z",
- "authoredAt": "2022-03-02T01:15:00Z"
}| identifier required | string The identifier of the pull request |
| codeStatus | string (CodeStatus) Enum: "openPR" "merged" "unmerged" "cherryPickPending" "cherryPickOpen" "cherryPickFailed" "cherryPickMerged" The status of the pull request |
| type required | string (CodeType) Enum: "commit" "pullRequest" The type of code item (pullRequest in this case) |
| url required | string The url of the pull request |
| title required | string The title of the pull request |
| description required | string The description of the pull request |
| baseBranch required | string The base branch of the pull request |
| headBranch required | string The head branch of the pull request |
| author required | string The author of the pull request |
| createdAt required | string <date-time> The date and time the pull request was created |
| updatedAt required | string <date-time> The date and time the pull request was last updated |
| pullRequestStatus required | string (PullRequestStatus) Enum: "open" "merged" "closed" "unknown" The status of the pull request |
{- "identifier": "string",
- "codeStatus": "openPR",
- "type": "commit",
- "url": "string",
- "title": "string",
- "description": "string",
- "baseBranch": "string",
- "headBranch": "string",
- "author": "string",
- "createdAt": "2022-03-02T01:15:00Z",
- "updatedAt": "2022-03-02T01:15:00Z",
- "pullRequestStatus": "open"
}Status of WorkItemCode entity
"openPR"Status of WorkItemCode entity
"open"| permissionLevel required | string Enum: "admin" "uploader" "tester" The permission level associated with the tester |
| type required | string Enum: "user" "userGroup" The type of tester |
| id required | string The ID of the user or user group |
{- "permissionLevel": "admin",
- "type": "user",
- "id": "string"
}| type required | string Enum: "user" "userGroup" The type of tester |
| id required | string The ID of the user or user group |
{- "type": "user",
- "id": "string"
}| type required | string The type of rule |
| fileFilterPatterns required | Array of strings The patterns to match files on |
| branch | string The branch to match on. You should only set this value on |
| baseBranch | string The target branch for Pull Requests to match on. You should only set this value on |
| workflowId | string The Id for the workflow associated with this rule. |
{- "type": "string",
- "fileFilterPatterns": [
- "string"
], - "branch": "string",
- "baseBranch": "string",
- "workflowId": "string"
}| id | string Unique identifier for the issue |
| appId | string |
| title | string Title for the issue. Always present: issues without their own title fall back to the text of their first source, then to "Triage issue |
| state | string Enum: "new" "assigned" "fixRequested" "fixApproved" "reopened" "fixMerged" "fixRejected" "notAPriority" Current state of the issue |
| reporter | string or null Email of the user who reported the issue |
| assigneeUserIds | Array of strings |
| suggestedAssigneeUserIds | Array of strings Additional candidates surfaced by the auto-assign automation |
Array of objects (TriageIssueSource) The signals that contributed to this issue (Runway-reported, PM ticket, user reviews, regression test failures, health metrics, beta feedback) | |
| relatedIssueIds | Array of strings |
| createdAt | string <date-time> |
| updatedAt | string <date-time> |
{- "id": "string",
- "appId": "string",
- "title": "string",
- "state": "new",
- "reporter": "string",
- "assigneeUserIds": [
- "string"
], - "suggestedAssigneeUserIds": [
- "string"
], - "sources": [
- {
- "type": "runway",
- "description": "string",
- "version": "string",
- "build": "string"
}
], - "relatedIssueIds": [
- "string"
], - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| type required | string Enum: "runway" "pmTicket" "userReviews" "betaFeedback" "regressionTesting" "healthMetrics" Origin of the source signal |
| description | string Human-readable description for this source (e.g. the reported message for |
| version | string Version string the source applies to, when known |
| build | string Build identifier the source applies to, when known |
{- "type": "runway",
- "description": "string",
- "version": "string",
- "build": "string"
}