openapi: 3.1.0 info: title: Helios API description: API documentation for the Helios application server. contact: name: Turker Koc email: turker.koc@tum.de license: name: MIT License url: https://github.com/ls1intum/Helios/blob/main/LICENSE version: 0.0.1 servers: - url: / description: Default Server URL paths: /api/workflows/{workflowId}/label: put: tags: - workflow-controller operationId: updateWorkflowLabel parameters: - name: workflowId in: path required: true schema: type: integer format: int64 requestBody: content: application/json: schema: type: string enum: - NONE - TEST required: true responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK /api/test-types/{testTypeId}: put: tags: - test-type-controller operationId: updateTestType parameters: - name: testTypeId in: path required: true schema: type: integer format: int64 requestBody: content: application/json: schema: $ref: "#/components/schemas/TestTypeDto" required: true responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/TestTypeDto" delete: tags: - test-type-controller operationId: deleteTestType parameters: - name: testTypeId in: path required: true schema: type: integer format: int64 responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "204": description: No Content /api/settings/{repositoryId}/workflows/{workflowId}/deployment-config: get: tags: - git-repo-settings-controller operationId: getDeploymentWorkflowConfig parameters: - name: repositoryId in: path required: true schema: type: integer format: int64 - name: workflowId in: path required: true schema: type: integer format: int64 responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/DeploymentWorkflowConfigDto" put: tags: - git-repo-settings-controller operationId: upsertDeploymentWorkflowConfig parameters: - name: repositoryId in: path required: true schema: type: integer format: int64 - name: workflowId in: path required: true schema: type: integer format: int64 requestBody: content: application/json: schema: $ref: "#/components/schemas/DeploymentWorkflowConfigDto" required: true responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/DeploymentWorkflowConfigDto" /api/settings/{repositoryId}/settings: get: tags: - git-repo-settings-controller operationId: getGitRepoSettings parameters: - name: repositoryId in: path required: true schema: type: integer format: int64 responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/GitRepoSettingsDto" put: tags: - git-repo-settings-controller operationId: updateGitRepoSettings parameters: - name: repositoryId in: path required: true schema: type: integer format: int64 requestBody: content: application/json: schema: $ref: "#/components/schemas/GitRepoSettingsDto" required: true responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: type: object /api/settings/{repositoryId}/groups/update: put: tags: - git-repo-settings-controller operationId: updateWorkflowGroups parameters: - name: repositoryId in: path required: true schema: type: integer format: int64 requestBody: content: application/json: schema: type: array items: $ref: "#/components/schemas/WorkflowGroupDto" required: true responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK /api/release-info/update-name: put: tags: - release-info-controller operationId: updateReleaseName requestBody: content: application/json: schema: $ref: "#/components/schemas/ReleaseCandidateNameUpdateDto" required: true responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK /api/release-info/release-notes: put: tags: - release-info-controller operationId: updateReleaseNotes requestBody: content: application/json: schema: $ref: "#/components/schemas/UpdateReleaseNotesDto" required: true responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK /api/environments/{id}: get: tags: - environment-controller operationId: getEnvironmentById parameters: - name: id in: path required: true schema: type: integer format: int64 responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/EnvironmentDto" put: tags: - environment-controller operationId: updateEnvironment parameters: - name: id in: path required: true schema: type: integer format: int64 requestBody: content: application/json: schema: $ref: "#/components/schemas/EnvironmentDto" required: true responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: type: object /api/environments/{id}/unlock: put: tags: - environment-controller operationId: unlockEnvironment parameters: - name: id in: path required: true schema: type: integer format: int64 responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: type: object /api/environments/{id}/lock: put: tags: - environment-controller operationId: lockEnvironment parameters: - name: id in: path required: true schema: type: integer format: int64 responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: type: object /api/environments/{id}/extend-lock: put: tags: - environment-controller operationId: extendEnvironmentLock parameters: - name: id in: path required: true schema: type: integer format: int64 responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: type: object /api/workflows/runs/{runId}/rerun: post: tags: - workflow-run-controller operationId: reRunWorkflow parameters: - name: runId in: path required: true schema: type: integer format: int64 responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK /api/workflows/runs/{runId}/rerun-failed-jobs: post: tags: - workflow-run-controller operationId: reRunFailedJobs parameters: - name: runId in: path required: true schema: type: integer format: int64 responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK /api/workflows/runs/{runId}/cancel: post: tags: - workflow-run-controller operationId: cancelWorkflowRun parameters: - name: runId in: path required: true schema: type: integer format: int64 responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK /api/workflows/repository/{repositoryId}/sync: post: tags: - workflow-controller operationId: syncWorkflowsByRepositoryId parameters: - name: repositoryId in: path required: true schema: type: integer format: int64 responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK /api/user/settings: get: tags: - user-controller operationId: getUserSettings responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/UserSettingsDto" post: tags: - user-controller operationId: updateUserSettings requestBody: content: application/json: schema: $ref: "#/components/schemas/UserSettingsDto" required: true responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK /api/user/notification-preferences: get: tags: - user-controller operationId: getNotificationPreferences responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/NotificationPreferenceDto" post: tags: - user-controller operationId: updateNotificationPreferences requestBody: content: application/json: schema: $ref: "#/components/schemas/NotificationPreferencesWrapper" required: true responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK /api/tests/flakiness-scores: post: tags: - test-result-controller operationId: getFlakinessScores requestBody: content: application/json: schema: $ref: "#/components/schemas/TestFlakinessScoreRequest" required: true responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/TestFlakinessScoreDto" /api/test-types: get: tags: - test-type-controller operationId: getAllTestTypes responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/TestTypeDto" post: tags: - test-type-controller operationId: createTestType requestBody: content: application/json: schema: $ref: "#/components/schemas/TestTypeDto" required: true responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "201": description: Created content: application/json: schema: $ref: "#/components/schemas/TestTypeDto" /api/settings/{repositoryId}/secret: post: tags: - git-repo-settings-controller operationId: rotateSecret parameters: - name: repositoryId in: path required: true schema: type: integer format: int64 responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: type: string /api/settings/{repositoryId}/groups/create: post: tags: - git-repo-settings-controller operationId: createWorkflowGroup parameters: - name: repositoryId in: path required: true schema: type: integer format: int64 requestBody: content: application/json: schema: $ref: "#/components/schemas/WorkflowGroupDto" required: true responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/WorkflowGroupDto" /api/repositories/{repositoryId}/test-cases/{testCaseId}/failure-analysis: post: tags: - test-failure-analysis-controller operationId: analyzeFailedTest parameters: - name: repositoryId in: path required: true schema: type: integer format: int64 - name: testCaseId in: path required: true schema: type: integer format: int64 - name: regenerate in: query required: false schema: type: boolean default: false responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/TestFailureAnalysisResponseDto" /api/release-info: get: tags: - release-info-controller operationId: getAllReleaseInfos responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/ReleaseInfoListDto" post: tags: - release-info-controller operationId: createReleaseCandidate requestBody: content: application/json: schema: $ref: "#/components/schemas/ReleaseCandidateCreateDto" required: true responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ReleaseInfoListDto" delete: tags: - release-info-controller operationId: deleteReleaseCandidateByName requestBody: content: application/json: schema: $ref: "#/components/schemas/ReleaseNameDto" required: true responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ReleaseInfoListDto" /api/release-info/publish: post: tags: - release-info-controller operationId: publishReleaseDraft requestBody: content: application/json: schema: $ref: "#/components/schemas/ReleaseNameDto" required: true responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK /api/release-info/generate-release-notes: post: tags: - release-info-controller operationId: generateReleaseNotes requestBody: content: application/json: schema: $ref: "#/components/schemas/ReleaseNameDto" required: true responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: type: string /api/release-info/evaluate: post: tags: - release-info-controller operationId: evaluate requestBody: content: application/json: schema: $ref: "#/components/schemas/ReleaseEvaluationDto" required: true responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK /api/release-info/details: post: tags: - release-info-controller operationId: getReleaseInfoByName requestBody: content: application/json: schema: $ref: "#/components/schemas/ReleaseNameDto" required: true responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ReleaseInfoDetailsDto" /api/pullrequests/{pr}/pin: post: tags: - pull-request-controller operationId: setPrPinnedByNumber parameters: - name: pr in: path required: true schema: type: integer format: int64 - name: isPinned in: query required: true schema: type: boolean responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK /api/pullrequests/repository/{repositoryId}/reconcile-state: post: tags: - pull-request-controller operationId: reconcilePullRequestState parameters: - name: repositoryId in: path required: true schema: type: integer format: int64 - name: dryRun in: query required: false schema: type: boolean default: false responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/PullRequestStateReconciliationResultDto" /api/environments/sync: post: tags: - environment-controller operationId: syncEnvironments responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: type: object /api/environments/status: post: tags: - environment-status-controller operationId: update requestBody: content: application/json: schema: $ref: "#/components/schemas/PushStatusPayload" required: true responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK /api/deployments/{deploymentId}/decline: post: tags: - deployment-approval-controller operationId: decline parameters: - name: deploymentId in: path required: true schema: type: integer format: int64 requestBody: content: application/json: schema: $ref: "#/components/schemas/ReviewDeploymentRequest" responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApprovalDecisionDto" /api/deployments/{deploymentId}/approve: post: tags: - deployment-approval-controller operationId: approve parameters: - name: deploymentId in: path required: true schema: type: integer format: int64 responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApprovalDecisionDto" /api/deployments/deploy: post: tags: - deployment-controller operationId: deployToEnvironment requestBody: content: application/json: schema: $ref: "#/components/schemas/DeployRequest" required: true responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: type: string /api/deployments/cancel: post: tags: - deployment-controller operationId: cancelDeployment requestBody: content: application/json: schema: $ref: "#/components/schemas/CancelDeploymentRequest" required: true responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: type: string /api/branches/repository/{repoId}/pin: post: tags: - branch-controller operationId: setBranchPinnedByRepositoryIdAndNameAndUserId parameters: - name: repoId in: path required: true schema: type: integer format: int64 - name: name in: query required: true schema: type: string - name: isPinned in: query required: true schema: type: boolean responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK /status/health: get: tags: - status-controller operationId: healthCheck responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: type: string /api/workflows: get: tags: - workflow-controller operationId: getAllWorkflows responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/WorkflowDto" /api/workflows/{id}: get: tags: - workflow-controller operationId: getWorkflowById parameters: - name: id in: path required: true schema: type: integer format: int64 responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/WorkflowDto" /api/workflows/state/{state}: get: tags: - workflow-controller operationId: getWorkflowsByState parameters: - name: state in: path required: true schema: type: string enum: - ACTIVE - DELETED - DISABLED_FORK - DISABLED_INACTIVITY - DISABLED_MANUALLY - UNKNOWN responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/WorkflowDto" /api/workflows/runs: get: tags: - workflow-run-controller operationId: getWorkflowRuns parameters: - name: page in: query required: false schema: type: integer format: int32 default: 1 - name: size in: query required: false schema: type: integer format: int32 default: 20 - name: sortField in: query required: false schema: type: string - name: sortDirection in: query required: false schema: type: string - name: filterType in: query required: false schema: type: string enum: - ALL - NOT_STARTED - IN_PROGRESS - CANCELLED - SUCCESS - FAILURE - ACTION_REQUIRED - name: searchTerm in: query required: false schema: type: string responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/PaginatedWorkflowRunsResponse" /api/workflows/runs/{workflowRunId}/logs: get: tags: - workflow-run-controller operationId: getWorkflowRunLogs parameters: - name: workflowRunId in: path required: true schema: type: integer format: int64 - name: forceRefresh in: query required: false schema: type: boolean default: false responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/WorkflowRunLogsResponse" /api/workflows/runs/{runId}: get: tags: - workflow-run-controller operationId: getWorkflowRunById parameters: - name: runId in: path required: true schema: type: integer format: int64 responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/WorkflowRunDto" /api/workflows/repository/{repositoryId}: get: tags: - workflow-controller operationId: getWorkflowsByRepositoryId parameters: - name: repositoryId in: path required: true schema: type: integer format: int64 responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/WorkflowDto" /api/workflows/pr/{pullRequestId}: get: tags: - workflow-run-controller operationId: getLatestWorkflowRunsByPullRequestIdAndHeadCommit parameters: - name: pullRequestId in: path required: true schema: type: integer format: int64 responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/WorkflowRunDto" /api/workflows/branch: get: tags: - workflow-run-controller operationId: getLatestWorkflowRunsByBranchAndHeadCommit parameters: - name: branch in: query required: true schema: type: string responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/WorkflowRunDto" /api/user-permissions: get: tags: - user-permissions-controller operationId: getUserPermissions responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/GitHubRepositoryRoleDto" /api/tests/run/{workflowRunId}: get: tags: - test-result-controller operationId: getTestResultsByWorkflowRunId parameters: - name: workflowRunId in: path required: true schema: type: integer format: int64 - name: page in: query required: false schema: type: integer format: int32 default: 0 - name: size in: query required: false schema: type: integer format: int32 default: 10 - name: search in: query required: false schema: type: string - name: onlyFailed in: query required: false schema: type: boolean default: false responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/TestResultsDto" /api/tests/pr/{pullRequestId}: get: tags: - test-result-controller operationId: getLatestTestResultsByPullRequestId parameters: - name: pullRequestId in: path required: true schema: type: integer format: int64 - name: page in: query required: false schema: type: integer format: int32 default: 0 - name: size in: query required: false schema: type: integer format: int32 default: 10 - name: search in: query required: false schema: type: string - name: onlyFailed in: query required: false schema: type: boolean default: false responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/TestResultsDto" /api/tests/flaky: get: tags: - test-result-controller operationId: getFlakyTestsOverview parameters: - name: page in: query required: false schema: type: integer format: int32 default: 1 - name: size in: query required: false schema: type: integer format: int32 default: 20 - name: sortDirection in: query required: false schema: type: string - name: filterType in: query required: false schema: type: string enum: - ALL - HIGH - MEDIUM - LOW - name: searchTerm in: query required: false schema: type: string responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/FlakyTestOverviewDto" /api/tests/branch: get: tags: - test-result-controller operationId: getLatestTestResultsByBranch parameters: - name: branch in: query required: true schema: type: string - name: page in: query required: false schema: type: integer format: int32 default: 0 - name: size in: query required: false schema: type: integer format: int32 default: 10 - name: search in: query required: false schema: type: string - name: onlyFailed in: query required: false schema: type: boolean default: false responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/TestResultsDto" /api/test-failure-analysis/usage: get: tags: - test-failure-analysis-usage-controller operationId: getFailureAnalysisUsage responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/TestFailureAnalysisUsageDto" /api/settings/{repositoryId}/groups: get: tags: - git-repo-settings-controller operationId: getGroupsWithWorkflows parameters: - name: repositoryId in: path required: true schema: type: integer format: int64 responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/WorkflowGroupDto" /api/repository: get: tags: - repository-controller operationId: getAllRepositories responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/RepositoryInfoDto" /api/repository/{id}: get: tags: - repository-controller operationId: getRepositoryById parameters: - name: id in: path required: true schema: type: integer format: int64 responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/RepositoryInfoDto" /api/repositories/{repositoryId}/test-cases/{testCaseId}/failure-analysis/latest: get: tags: - test-failure-analysis-controller operationId: getLatestCachedFailureAnalysis parameters: - name: repositoryId in: path required: true schema: type: integer format: int64 - name: testCaseId in: path required: true schema: type: integer format: int64 responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/TestFailureAnalysisCacheLookupDto" /api/release-info/newcommits: get: tags: - release-info-controller operationId: getCommitsSinceLastReleaseCandidate parameters: - name: branch in: query required: true schema: type: string responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/CommitsSinceReleaseCandidateDto" /api/pullrequests: get: tags: - pull-request-controller operationId: getPullRequests parameters: - name: page in: query required: false schema: type: integer format: int32 default: 1 - name: size in: query required: false schema: type: integer format: int32 default: 20 - name: sortField in: query required: false schema: type: string - name: sortDirection in: query required: false schema: type: string - name: filterType in: query required: false schema: type: string default: OPEN enum: - ALL - OPEN - OPEN_READY_FOR_REVIEW - DRAFT - MERGED - CLOSED - USER_AUTHORED - ASSIGNED_TO_USER - REVIEW_REQUESTED - name: searchTerm in: query required: false schema: type: string - name: author in: query required: false schema: type: string - name: assignee in: query required: false schema: type: string - name: noAssignee in: query required: false schema: type: boolean - name: labelId in: query required: false schema: type: integer format: int64 - name: noLabel in: query required: false schema: type: boolean - name: reviewState in: query required: false schema: type: string enum: - NONE - REQUIRED - name: requestedReviewer in: query required: false schema: type: string responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/PaginatedPullRequestsResponse" /api/pullrequests/{id}: get: tags: - pull-request-controller operationId: getPullRequestById parameters: - name: id in: path required: true schema: type: integer format: int64 responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/PullRequestInfoDto" /api/pullrequests/repository/{repoId}/pr/{number}: get: tags: - pull-request-controller operationId: getPullRequestByRepositoryIdAndNumber parameters: - name: repoId in: path required: true schema: type: integer format: int64 - name: number in: path required: true schema: type: integer format: int32 responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/PullRequestInfoDto" /api/pullrequests/repository/{repoId}/filter-options: get: tags: - pull-request-controller operationId: getPullRequestFilterOptionsByRepositoryId parameters: - name: repoId in: path required: true schema: type: integer format: int64 responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/PullRequestFilterOptionsDto" /api/pullrequests/repository/{id}: get: tags: - pull-request-controller operationId: getPullRequestByRepositoryId parameters: - name: id in: path required: true schema: type: integer format: int64 responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/PullRequestInfoDto" /api/pipeline/pr/{pullRequestId}: get: tags: - pipeline-controller operationId: getPipelineByPullRequest parameters: - name: pullRequestId in: path required: true schema: type: integer format: int64 responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/PipelineDto" /api/pipeline/branch: get: tags: - pipeline-controller operationId: getPipelineByBranch parameters: - name: branch in: query required: true schema: type: string responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/PipelineDto" /api/environments: get: tags: - environment-controller operationId: getAllEnvironments responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/EnvironmentDto" /api/environments/{environmentId}/reviewers: get: tags: - environment-controller operationId: getEnvironmentReviewers parameters: - name: environmentId in: path required: true schema: type: integer format: int64 responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/EnvironmentReviewersDto" /api/environments/{environmentId}/deployment-readiness: get: tags: - environment-controller operationId: getDeploymentReadiness parameters: - name: environmentId in: path required: true schema: type: integer format: int64 - name: branch in: query required: true schema: type: string - name: sha in: query required: true schema: type: string responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/EnvironmentDeploymentReadinessDto" /api/environments/userLocking: get: tags: - environment-controller operationId: getEnvironmentsByUserLocking responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/EnvironmentLockHistoryDto" /api/environments/repository/{repositoryId}: get: tags: - environment-controller operationId: getEnvironmentsByRepositoryId parameters: - name: repositoryId in: path required: true schema: type: integer format: int64 responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/EnvironmentDto" /api/environments/environment/{environmentId}/lockHistory: get: tags: - environment-controller operationId: getLockHistoryByEnvironmentId parameters: - name: environmentId in: path required: true schema: type: integer format: int64 responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/EnvironmentLockHistoryDto" /api/environments/enabled: get: tags: - environment-controller operationId: getAllEnabledEnvironments responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/EnvironmentDto" /api/deployments: get: tags: - deployment-controller operationId: getAllDeployments responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/DeploymentDto" /api/deployments/{id}: get: tags: - deployment-controller operationId: getDeploymentById parameters: - name: id in: path required: true schema: type: integer format: int64 responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/DeploymentDto" /api/deployments/workflowJobStatus/{runId}: get: tags: - deployment-controller operationId: getWorkflowJobStatus parameters: - name: runId in: path required: true schema: type: integer format: int64 responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/WorkflowJobsResponse" /api/deployments/repository/{repositoryId}/branch/activity-history: get: tags: - deployment-controller operationId: getActivityHistoryByRepositoryIdAndBranchName parameters: - name: repositoryId in: path required: true schema: type: integer format: int64 - name: branch in: query required: true schema: type: string responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/ActivityHistoryDto" /api/deployments/pr/{pullRequestId}/activity-history: get: tags: - deployment-controller operationId: getActivityHistoryByPullRequestId parameters: - name: pullRequestId in: path required: true schema: type: integer format: int64 responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/ActivityHistoryDto" /api/deployments/pending-approvals: get: tags: - deployment-approval-controller operationId: myPendingApprovals responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/PendingApprovalDto" /api/deployments/environment/{environmentId}: get: tags: - deployment-controller operationId: getDeploymentsByEnvironmentId parameters: - name: environmentId in: path required: true schema: type: integer format: int64 responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/DeploymentDto" /api/deployments/environment/{environmentId}/latest: get: tags: - deployment-controller operationId: getLatestDeploymentByEnvironmentId parameters: - name: environmentId in: path required: true schema: type: integer format: int64 responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/DeploymentDto" /api/deployments/environment/{environmentId}/activity-history: get: tags: - deployment-controller operationId: getActivityHistoryByEnvironmentId parameters: - name: environmentId in: path required: true schema: type: integer format: int64 responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/ActivityHistoryDto" /api/commits/repository/{repoId}/commit/{sha}: get: tags: - commit-controller operationId: getCommitByRepositoryIdAndName parameters: - name: repoId in: path required: true schema: type: integer format: int64 - name: sha in: path required: true schema: type: string responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/CommitInfoDto" /api/branches: get: tags: - branch-controller operationId: getAllBranches parameters: - name: sortField in: query required: false schema: type: string default: updatedAt - name: sortDirection in: query required: false schema: type: string default: desc responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/BranchInfoDto" /api/branches/repository/{repoId}/branch: get: tags: - branch-controller operationId: getBranchByRepositoryIdAndName parameters: - name: repoId in: path required: true schema: type: integer format: int64 - name: name in: query required: true schema: type: string responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK content: application/json: schema: $ref: "#/components/schemas/BranchDetailsDto" /api/settings/{repositoryId}/groups/{groupId}: delete: tags: - git-repo-settings-controller operationId: deleteWorkflowGroup parameters: - name: repositoryId in: path required: true schema: type: integer format: int64 - name: groupId in: path required: true schema: type: integer format: int64 responses: "409": description: Conflict content: application/json: schema: $ref: "#/components/schemas/ApiError" "200": description: OK components: schemas: ApiError: type: object properties: status: type: integer format: int32 error: type: string message: type: string path: type: string timestamp: type: string format: date-time TestTypeDto: type: object properties: id: type: integer format: int64 name: type: string maxLength: 255 minLength: 0 artifactName: type: string maxLength: 255 minLength: 0 workflowId: type: integer format: int64 required: - artifactName - name - workflowId DeploymentWorkflowConfigDto: type: object properties: workflowId: type: integer format: int64 deployJobName: type: string GitRepoSettingsDto: type: object properties: id: type: integer format: int64 lockExpirationThreshold: type: integer format: int64 lockReservationThreshold: type: integer format: int64 packageName: type: string WorkflowGroupDto: type: object properties: id: type: integer format: int64 name: type: string orderIndex: type: integer format: int32 memberships: type: array items: $ref: "#/components/schemas/WorkflowMembershipDto" required: - id - name - orderIndex WorkflowMembershipDto: type: object properties: workflowId: type: integer format: int64 orderIndex: type: integer format: int32 required: - orderIndex - workflowId ReleaseCandidateNameUpdateDto: type: object properties: oldName: type: string newName: type: string UpdateReleaseNotesDto: type: object properties: name: type: string notes: type: string DeploymentTimerDto: type: object properties: title: type: string headerMode: type: string enum: - NONE - DURATION - ESTIMATED - REMAINING headerStartedAt: type: string format: date-time headerEndedAt: type: string format: date-time headerEstimateSeconds: type: integer format: int32 showQueuedMessage: type: boolean steps: type: array items: $ref: "#/components/schemas/DeploymentTimerStepDto" required: - headerMode - steps - title DeploymentTimerStepDto: type: object properties: key: type: string enum: - PRE_DEPLOYMENT - DEPLOYMENT label: type: string status: type: string enum: - completed - active - error - upcoming - unknown mode: type: string enum: - NONE - COMPLETED - FAILED - ESTIMATED - REMAINING startedAt: type: string format: date-time endedAt: type: string format: date-time estimateSeconds: type: integer format: int32 required: - key - label - mode - status EnvironmentDeployment: type: object properties: id: type: integer format: int64 url: type: string state: type: string enum: - REQUESTED - PENDING - WAITING - SUCCESS - ERROR - FAILURE - IN_PROGRESS - QUEUED - INACTIVE - CANCELLED - UNKNOWN statusesUrl: type: string sha: type: string ref: type: string task: type: string workflowRunHtmlUrl: type: string releaseCandidateNames: type: array items: type: string prName: type: string user: $ref: "#/components/schemas/UserInfoDto" pullRequestNumber: type: integer format: int32 createdAt: type: string format: date-time updatedAt: type: string format: date-time statusUpdatedAt: type: string format: date-time deployJobStartedAt: type: string format: date-time workflowStartedAt: type: string format: date-time type: type: string enum: - GITHUB - HELIOS estimatedPreDeployDurationSeconds: type: integer format: int32 estimatedDeployDurationSeconds: type: integer format: int32 timer: $ref: "#/components/schemas/DeploymentTimerDto" required: - id - type EnvironmentDto: type: object properties: repository: $ref: "#/components/schemas/RepositoryInfoDto" id: type: integer format: int64 name: type: string displayName: type: string locked: type: boolean url: type: string htmlUrl: type: string createdAt: type: string format: date-time updatedAt: type: string format: date-time enabled: type: boolean installedApps: type: array items: type: string description: type: string serverUrl: type: string statusCheckType: type: string enum: - HTTP_STATUS - ARTEMIS_INFO - PUSH_UPDATE statusUrl: type: string deploymentWorkflowBranch: type: string requiredPreDeploymentWorkflows: type: array items: $ref: "#/components/schemas/WorkflowDto" latestDeployment: $ref: "#/components/schemas/EnvironmentDeployment" latestStatus: $ref: "#/components/schemas/EnvironmentStatusDto" lockedBy: $ref: "#/components/schemas/UserInfoDto" lockedAt: type: string format: date-time type: type: string enum: - TEST - STAGING - PRODUCTION deploymentWorkflow: $ref: "#/components/schemas/WorkflowDto" lockExpirationThreshold: type: integer format: int64 lockReservationThreshold: type: integer format: int64 lockWillExpireAt: type: string format: date-time lockReservationWillExpireAt: type: string format: date-time required: - id - name EnvironmentStatusDto: type: object properties: id: type: integer format: int64 success: type: boolean state: type: string enum: - STARTING_UP - DB_MIGRATION_STARTED - DB_MIGRATION_FAILED - DB_MIGRATION_FINISHED - RUNNING - DEGRADED - SHUTTING_DOWN - STOPPED - FAILED httpStatusCode: type: integer format: int32 checkedAt: type: string format: date-time checkType: type: string enum: - HTTP_STATUS - ARTEMIS_INFO - PUSH_UPDATE metadata: type: object additionalProperties: {} required: - checkType - checkedAt - httpStatusCode - id - success RepositoryInfoDto: type: object properties: id: type: integer format: int64 name: type: string nameWithOwner: type: string description: type: string htmlUrl: type: string updatedAt: type: string format: date-time stargazersCount: type: integer format: int32 pullRequestCount: type: integer format: int32 branchCount: type: integer format: int32 environmentCount: type: integer format: int32 latestReleaseTagName: type: string contributors: type: array items: $ref: "#/components/schemas/UserInfoDto" required: - htmlUrl - id - name - nameWithOwner - updatedAt UserInfoDto: type: object properties: id: type: integer format: int64 login: type: string avatarUrl: type: string name: type: string htmlUrl: type: string required: - avatarUrl - htmlUrl - id - login - name WorkflowDto: type: object properties: id: type: integer format: int64 repository: $ref: "#/components/schemas/RepositoryInfoDto" name: type: string path: type: string fileNameWithExtension: type: string state: type: string enum: - ACTIVE - DELETED - DISABLED_FORK - DISABLED_INACTIVITY - DISABLED_MANUALLY - UNKNOWN url: type: string htmlUrl: type: string badgeUrl: type: string label: type: string enum: - NONE - TEST createdAt: type: string format: date-time updatedAt: type: string format: date-time required: - id - label - name - path - state UserSettingsDto: type: object properties: notificationEmail: type: string notificationsEnabled: type: boolean NotificationPreferenceDto: type: object properties: type: type: string enum: - DEPLOYMENT_FAILED - LOCK_EXPIRED - LOCK_UNLOCKED - DEPLOYMENT_APPROVAL_REQUEST enabled: type: boolean NotificationPreferencesWrapper: type: object properties: preferences: type: array items: $ref: "#/components/schemas/NotificationPreferenceDto" TestCaseIdentifier: type: object properties: testName: type: string minLength: 1 className: type: string minLength: 1 testSuiteName: type: string minLength: 1 required: - className - testName - testSuiteName TestFlakinessScoreRequest: type: object properties: testCases: type: array items: $ref: "#/components/schemas/TestCaseIdentifier" minItems: 1 required: - testCases TestFlakinessScoreDto: type: object properties: testName: type: string className: type: string testSuiteName: type: string flakinessScore: type: number format: double defaultBranchFailureRate: type: number format: double combinedFailureRate: type: number format: double required: - className - testName - testSuiteName TestFailureAnalysisResponseDto: type: object properties: repositoryId: type: integer format: int64 status: type: string enum: - COMPLETED - FAILED result: $ref: "#/components/schemas/TestFailureAnalysisResultDto" errorMessage: type: string analyzedAt: type: string format: date-time durationMs: type: integer format: int64 cacheHit: type: boolean TestFailureAnalysisResultDto: type: object properties: summary: type: string rootCauseHypotheses: type: array items: type: string evidence: type: array items: type: string recommendedFixes: type: array items: type: string confidence: type: number format: double provider: type: string model: type: string ReleaseCandidateCreateDto: type: object properties: name: type: string commitSha: type: string branchName: type: string required: - branchName - commitSha - name ReleaseInfoListDto: type: object properties: name: type: string commitSha: type: string branchName: type: string isPublished: type: boolean ReleaseNameDto: type: object properties: name: type: string ReleaseEvaluationDto: type: object properties: name: type: string isWorking: type: boolean comment: type: string maxLength: 500 minLength: 0 BranchInfoDto: type: object properties: name: type: string commitSha: type: string aheadBy: type: integer format: int32 behindBy: type: integer format: int32 isDefault: type: boolean isProtected: type: boolean isPinned: type: boolean updatedAt: type: string format: date-time updatedBy: $ref: "#/components/schemas/UserInfoDto" repository: $ref: "#/components/schemas/RepositoryInfoDto" required: - commitSha - name CommitInfoDto: type: object properties: sha: type: string author: $ref: "#/components/schemas/UserInfoDto" message: type: string authoredAt: type: string format: date-time repository: $ref: "#/components/schemas/RepositoryInfoDto" required: - sha ReleaseCandidateDeploymentDto: type: object properties: id: type: integer format: int64 type: type: string enum: - GITHUB - HELIOS environmentId: type: integer format: int64 required: - environmentId - id - type ReleaseCandidateEvaluationDto: type: object properties: user: $ref: "#/components/schemas/UserInfoDto" isWorking: type: boolean comment: type: string required: - user ReleaseDto: type: object properties: isDraft: type: boolean isPrerelease: type: boolean body: type: string githubUrl: type: string creator: $ref: "#/components/schemas/UserInfoDto" required: - body - githubUrl - isDraft - isPrerelease ReleaseInfoDetailsDto: type: object properties: name: type: string commit: $ref: "#/components/schemas/CommitInfoDto" branch: $ref: "#/components/schemas/BranchInfoDto" deployments: type: array items: $ref: "#/components/schemas/ReleaseCandidateDeploymentDto" evaluations: type: array items: $ref: "#/components/schemas/ReleaseCandidateEvaluationDto" release: $ref: "#/components/schemas/ReleaseDto" createdBy: $ref: "#/components/schemas/UserInfoDto" createdAt: type: string format: date-time body: type: string required: - commit - createdAt - deployments - evaluations - name PullRequestStateReconciliationResultDto: type: object properties: dryRun: type: boolean repositoryId: type: integer format: int64 repositoryNameWithOwner: type: string scannedCount: type: integer format: int32 updatedCount: type: integer format: int32 updatedPullRequestIds: type: array items: type: integer format: int64 updatedPullRequestNumbers: type: array items: type: integer format: int32 unchangedCount: type: integer format: int32 errorCount: type: integer format: int32 errors: type: array items: type: string PushStatusPayload: type: object properties: environment: type: string minLength: 1 state: type: string enum: - STARTING_UP - DB_MIGRATION_STARTED - DB_MIGRATION_FAILED - DB_MIGRATION_FINISHED - RUNNING - DEGRADED - SHUTTING_DOWN - STOPPED - FAILED timestamp: type: string format: date-time details: type: object additionalProperties: {} required: - environment - state - timestamp ReviewDeploymentRequest: type: object properties: comment: type: string ApprovalDecisionDto: type: object properties: approvalRequestId: type: integer format: int64 deploymentId: type: integer format: int64 state: type: string enum: - PENDING - APPROVED - DECLINED - EXPIRED - CONSUMED_BY_OTHER - FAILED_AT_GITHUB via: type: string enum: - AUTO - IN_APP - EMAIL_LINK DeployRequest: type: object properties: environmentId: type: integer format: int64 branchName: type: string commitSha: type: string required: - branchName - commitSha - environmentId CancelDeploymentRequest: type: object properties: workflowRunId: type: integer format: int64 required: - workflowRunId PaginatedWorkflowRunsResponse: type: object properties: runs: type: array items: $ref: "#/components/schemas/WorkflowRunDto" page: type: integer format: int32 size: type: integer format: int32 totalElements: type: integer format: int64 totalPages: type: integer format: int32 WorkflowRunDto: type: object properties: id: type: integer format: int64 name: type: string displayTitle: type: string status: type: string enum: - QUEUED - IN_PROGRESS - COMPLETED - ACTION_REQUIRED - CANCELLED - FAILURE - NEUTRAL - SKIPPED - STALE - SUCCESS - TIMED_OUT - REQUESTED - WAITING - PENDING - UNKNOWN workflowId: type: integer format: int64 conclusion: type: string enum: - ACTION_REQUIRED - CANCELLED - FAILURE - NEUTRAL - SUCCESS - SKIPPED - STALE - TIMED_OUT - STARTUP_FAILURE - UNKNOWN htmlUrl: type: string label: type: string enum: - NONE - TEST testProcessingStatus: type: - string - "null" enum: - PROCESSING - PROCESSED - FAILED headBranch: type: - string - "null" headSha: type: - string - "null" runStartedAt: type: - string - "null" format: date-time createdAt: type: string format: date-time updatedAt: type: string format: date-time required: - createdAt - displayTitle - htmlUrl - id - label - name - status - updatedAt - workflowId WorkflowRunLogFileDto: type: object properties: path: type: string description: The relative path of the log file inside the workflow log archive displayName: type: string description: A display name for the log file stepNumber: type: integer format: int32 description: The GitHub step number matched to this log file when available stepName: type: string description: The GitHub step name matched to this log file when available stepStatus: type: string description: The GitHub step status matched to this log file when available stepConclusion: type: string description: The GitHub step conclusion matched to this log file when available stepStartedAt: type: string format: date-time description: The GitHub step start timestamp matched to this log file when available stepCompletedAt: type: string format: date-time description: The GitHub step completion timestamp matched to this log file when available content: type: string description: The processed text content of the log file required: - content - displayName - path WorkflowRunLogGroupDto: type: object properties: name: type: string description: "The name of the log group, usually derived from the top-level\ \ archive directory" jobName: type: string description: The exact GitHub job name matched to this log group when available jobStatus: type: string description: The GitHub job status matched to this log group when available jobConclusion: type: string description: The GitHub job conclusion matched to this log group when available steps: type: array description: The GitHub job steps matched to this log group when available items: $ref: "#/components/schemas/WorkflowRunLogStepDto" files: type: array description: The log files belonging to this group items: $ref: "#/components/schemas/WorkflowRunLogFileDto" required: - files - name - steps WorkflowRunLogStepDto: type: object properties: number: type: integer format: int32 description: The GitHub step number when available name: type: string description: The GitHub step name when available status: type: string description: The GitHub step status when available conclusion: type: string description: The GitHub step conclusion when available startedAt: type: string format: date-time description: The GitHub step start timestamp when available completedAt: type: string format: date-time description: The GitHub step completion timestamp when available WorkflowRunLogsResponse: type: object properties: workflowRunId: type: integer format: int64 description: The workflow run identifier workflowName: type: string description: The workflow run name example: deploy displayTitle: type: string description: The workflow run display title conclusion: type: string description: The workflow run conclusion when available enum: - ACTION_REQUIRED - CANCELLED - FAILURE - NEUTRAL - SUCCESS - SKIPPED - STALE - TIMED_OUT - STARTUP_FAILURE - UNKNOWN htmlUrl: type: string description: The HTML URL of the workflow run on GitHub cacheHit: type: boolean description: Whether the workflow logs were already cached before this request downloadedAt: type: string format: date-time description: When the workflow logs were downloaded and stored totalFileCount: type: integer format: int32 description: The number of extracted log files groups: type: array description: The processed log groups items: $ref: "#/components/schemas/WorkflowRunLogGroupDto" required: - downloadedAt - groups - workflowName - workflowRunId GitHubRepositoryRoleDto: type: object properties: permission: type: string enum: - ADMIN - WRITE - READ - NONE roleName: type: string TestCaseDto: type: object properties: id: type: integer format: int64 name: type: string className: type: string status: type: string enum: - PASSED - FAILED - ERROR - SKIPPED previousStatus: type: string enum: - PASSED - FAILED - ERROR - SKIPPED time: type: number format: double message: type: string stackTrace: type: string systemOut: type: string errorType: type: string flakinessScore: type: number format: double defaultBranchFailureRate: type: number format: double combinedFailureRate: type: number format: double failsInDefaultBranch: type: boolean required: - className - id - name - status - time TestResultsDto: type: object properties: testResults: type: array items: $ref: "#/components/schemas/TestTypeResults" isProcessing: type: boolean required: - testResults TestSuiteDto: type: object properties: id: type: integer format: int64 name: type: string timestamp: type: string format: date-time tests: type: integer format: int32 failures: type: integer format: int32 errors: type: integer format: int32 skipped: type: integer format: int32 time: type: number format: double systemOut: type: string testCases: type: array items: $ref: "#/components/schemas/TestCaseDto" required: - errors - failures - id - name - skipped - testCases - tests - time - timestamp TestTypeResults: type: object properties: testTypeId: type: integer format: int64 testTypeName: type: string testSuites: type: array items: $ref: "#/components/schemas/TestSuiteDto" isProcessing: type: boolean stats: $ref: "#/components/schemas/TestTypeStats" required: - isProcessing - stats - testSuites - testTypeId - testTypeName TestTypeStats: type: object properties: totalSuites: type: integer format: int32 totalTests: type: integer format: int32 passed: type: integer format: int32 failures: type: integer format: int32 errors: type: integer format: int32 skipped: type: integer format: int32 totalTime: type: number format: double totalUpdates: type: integer format: int32 required: - errors - failures - passed - skipped - totalSuites - totalTests - totalTime - totalUpdates FlakyTestDto: type: object properties: testName: type: string className: type: string testSuiteName: type: string flakinessScore: type: number format: double defaultBranchFailureRate: type: number format: double combinedFailureRate: type: number format: double lastUpdated: type: string format: date-time required: - className - lastUpdated - testName - testSuiteName FlakyTestOverviewDto: type: object properties: summary: $ref: "#/components/schemas/FlakyTestSummary" flakyTests: type: array items: $ref: "#/components/schemas/FlakyTestDto" filteredCount: type: integer format: int64 required: - flakyTests - summary FlakyTestSummary: type: object properties: totalTrackedTests: type: integer format: int32 flakyTestCount: type: integer format: int32 highFlakinessCount: type: integer format: int32 mediumFlakinessCount: type: integer format: int32 lowFlakinessCount: type: integer format: int32 TestFailureAnalysisUsageDto: type: object properties: rateLimitEnabled: type: boolean dailyUsed: type: integer format: int32 dailyLimit: type: integer format: int32 burstUsed: type: integer format: int32 burstLimit: type: integer format: int32 burstWindowSeconds: type: integer format: int64 TestFailureAnalysisCacheLookupDto: type: object properties: hasCachedResult: type: boolean cachedResult: $ref: "#/components/schemas/TestFailureAnalysisResponseDto" CommitsSinceReleaseCandidateDto: type: object properties: aheadBy: type: integer format: int32 behindBy: type: integer format: int32 commits: type: array items: $ref: "#/components/schemas/CompareCommitInfoDto" compareUrl: type: string required: - aheadBy - behindBy - commits CompareCommitInfoDto: type: object properties: sha: type: string message: type: string authorName: type: string authorEmail: type: string url: type: string required: - authorEmail - authorName - message - sha - url LabelInfoDto: type: object properties: id: type: integer format: int64 description: The unique identifier of the label name: type: string description: The name of the label example: bug color: type: string description: "The color of the label as a 6-character hex code (without\ \ #)" example: ff0000 repository: $ref: "#/components/schemas/RepositoryInfoDto" description: The repository associated with this label required: - color - id - name PaginatedPullRequestsResponse: type: object properties: pinned: type: array items: $ref: "#/components/schemas/PullRequestBaseInfoDto" page: type: array items: $ref: "#/components/schemas/PullRequestBaseInfoDto" pageNumber: type: integer format: int32 pageSize: type: integer format: int32 totalNonPinned: type: integer format: int64 totalPages: type: integer format: int32 PullRequestBaseInfoDto: type: object properties: id: type: integer format: int64 number: type: integer format: int32 title: type: string state: type: string enum: - OPEN - CLOSED isDraft: type: boolean isMerged: type: boolean isPinned: type: boolean htmlUrl: type: string createdAt: type: string format: date-time updatedAt: type: string format: date-time author: $ref: "#/components/schemas/UserInfoDto" labels: type: array items: $ref: "#/components/schemas/LabelInfoDto" assignees: type: array items: $ref: "#/components/schemas/UserInfoDto" reviewers: type: array items: $ref: "#/components/schemas/UserInfoDto" required: - htmlUrl - id - isDraft - isMerged - number - state - title PullRequestInfoDto: type: object properties: id: type: integer format: int64 number: type: integer format: int32 title: type: string state: type: string enum: - OPEN - CLOSED isDraft: type: boolean isMerged: type: boolean commentsCount: type: integer format: int32 author: $ref: "#/components/schemas/UserInfoDto" labels: type: array items: $ref: "#/components/schemas/LabelInfoDto" assignees: type: array items: $ref: "#/components/schemas/UserInfoDto" repository: $ref: "#/components/schemas/RepositoryInfoDto" additions: type: integer format: int32 deletions: type: integer format: int32 headSha: type: string headRefName: type: string headRefRepoNameWithOwner: type: string mergedAt: type: string format: date-time closedAt: type: string format: date-time htmlUrl: type: string createdAt: type: string format: date-time updatedAt: type: string format: date-time required: - additions - commentsCount - deletions - headRefName - headRefRepoNameWithOwner - headSha - htmlUrl - id - isDraft - isMerged - number - state - title PullRequestFilterLabelOptionDto: type: object properties: id: type: integer format: int64 name: type: string color: type: string required: - color - id - name PullRequestFilterOptionsDto: type: object properties: authors: type: array items: $ref: "#/components/schemas/PullRequestFilterUserOptionDto" assignees: type: array items: $ref: "#/components/schemas/PullRequestFilterUserOptionDto" reviewers: type: array items: $ref: "#/components/schemas/PullRequestFilterUserOptionDto" labels: type: array items: $ref: "#/components/schemas/PullRequestFilterLabelOptionDto" required: - assignees - authors - labels - reviewers PullRequestFilterUserOptionDto: type: object properties: id: type: integer format: int64 login: type: string avatarUrl: type: string name: type: string required: - avatarUrl - id - login - name Category: type: object properties: name: type: string nodes: type: array items: $ref: "#/components/schemas/Node" Node: type: object properties: key: type: string label: type: string status: type: string conclusion: type: - string - "null" htmlUrl: type: - string - "null" PipelineDto: type: object properties: categories: type: array items: $ref: "#/components/schemas/Category" EnvironmentReviewersDto: type: object properties: preventSelfReview: type: boolean reviewers: type: array items: $ref: "#/components/schemas/Reviewer" Reviewer: type: object properties: id: type: integer format: int32 login: type: string name: type: string type: type: string EnvironmentDeploymentReadinessDto: type: object properties: status: type: string enum: - UNCONFIGURED - READY - WAITING - FAILED - MISSING_RUN workflows: type: array items: $ref: "#/components/schemas/RequiredWorkflowStatusDto" RequiredWorkflowStatusDto: type: object properties: workflowId: type: integer format: int64 workflowName: type: string status: type: string enum: - READY - WAITING - FAILED - MISSING_RUN runId: type: - integer - "null" format: int64 runHtmlUrl: type: - string - "null" runStatus: type: - string - "null" enum: - QUEUED - IN_PROGRESS - COMPLETED - ACTION_REQUIRED - CANCELLED - FAILURE - NEUTRAL - SKIPPED - STALE - SUCCESS - TIMED_OUT - REQUESTED - WAITING - PENDING - UNKNOWN runConclusion: type: - string - "null" enum: - ACTION_REQUIRED - CANCELLED - FAILURE - NEUTRAL - SUCCESS - SKIPPED - STALE - TIMED_OUT - STARTUP_FAILURE - UNKNOWN EnvironmentLockHistoryDto: type: object properties: id: type: integer format: int64 lockedBy: $ref: "#/components/schemas/UserInfoDto" unlockedBy: $ref: "#/components/schemas/UserInfoDto" lockedAt: type: - string - "null" format: date-time unlockedAt: type: - string - "null" format: date-time environment: $ref: "#/components/schemas/EnvironmentDto" required: - id DeploymentDto: type: object properties: id: type: integer format: int64 repository: $ref: "#/components/schemas/RepositoryInfoDto" url: type: string state: type: string enum: - PENDING - WAITING - SUCCESS - ERROR - FAILURE - IN_PROGRESS - QUEUED - INACTIVE - CANCELLED - UNKNOWN statusesUrl: type: string sha: type: string ref: type: string task: type: string environment: $ref: "#/components/schemas/EnvironmentDto" user: $ref: "#/components/schemas/UserInfoDto" createdAt: type: string format: date-time updatedAt: type: string format: date-time required: - environment - id - ref - sha - statusesUrl - task - url WorkflowJobDto: type: object properties: id: type: integer format: int64 name: type: string status: type: string conclusion: type: string startedAt: type: string format: date-time completedAt: type: string format: date-time workflowName: type: string headBranch: type: string runnerId: type: integer format: int64 runnerName: type: string runnerGroupId: type: integer format: int64 runnerGroupName: type: string labels: type: array items: type: string htmlUrl: type: string steps: type: array items: $ref: "#/components/schemas/WorkflowStepDto" WorkflowJobsResponse: type: object properties: totalCount: type: integer format: int32 jobs: type: array items: $ref: "#/components/schemas/WorkflowJobDto" WorkflowStepDto: type: object properties: name: type: string number: type: integer format: int32 status: type: string conclusion: type: string startedAt: type: string format: date-time completedAt: type: string format: date-time ActivityHistoryDto: type: object properties: type: type: string id: type: integer format: int64 repository: $ref: "#/components/schemas/RepositoryInfoDto" environmentName: type: string state: type: string enum: - PENDING - WAITING - SUCCESS - ERROR - FAILURE - IN_PROGRESS - QUEUED - INACTIVE - CANCELLED - UNKNOWN sha: type: string ref: type: string user: $ref: "#/components/schemas/UserInfoDto" user2: $ref: "#/components/schemas/UserInfoDto" timestamp: type: string format: date-time createdAt: type: string format: date-time updatedAt: type: string format: date-time PendingApprovalDto: type: object properties: approvalRequestId: type: integer format: int64 deploymentId: type: integer format: int64 workflowRunId: type: integer format: int64 workflowRunHtmlUrl: type: string environmentId: type: integer format: int64 environmentName: type: string repositoryId: type: integer format: int64 repositoryNameWithOwner: type: string creatorLogin: type: string sourceBranchName: type: string sha: type: string requestedAt: type: string format: date-time BranchDetailsDto: type: object properties: name: type: string commitSha: type: string aheadBy: type: integer format: int32 behindBy: type: integer format: int32 isDefault: type: boolean isProtected: type: boolean releaseCandidateNames: type: array items: type: string updatedAt: type: string format: date-time updatedBy: $ref: "#/components/schemas/UserInfoDto" repository: $ref: "#/components/schemas/RepositoryInfoDto" required: - commitSha - name