openapi: 3.0.3 info: contact: email: admin@athenian.co name: the administrator by email description: 'Server version: {{ server_version }} built on {{ build_date }} @ [{{ commit }}](https://github.com/athenianco/athenian-api/commit/{{ commit }}) Origin GitHub repository: [athenianco/api-spec](https://github.com/athenianco/api-spec). Authorization persists between sessions. Marks: * 🛡️ endpoint requires account admin privileges. * 👤 endpoint only works with JWT authentication.
List of common server errors. * __500__ endpoint crashed. We reported the incident to Sentry and will fix it soon! Please include the value of `instance` in the response if you contact the support. Repeating the request will not help, most probably. * __501__ some functions are missing, either because they are not implemented yet or a non-critical runtime dependency is not satisfied. Repeating the request will not help, guaranteed. * __502__ server crashed badly, either due to a memory access violation in native code or running out of memory. We reported this incident to Sentry and will fix it soon! Try repeating the request. * __503__ server has not fully launched yet, e.g. hasn''t connected to the database; server is shutting down; we are experiencing a partial outage. Try repeating the request. * __504__ endpoint took too much time and was interrupted. We reported the incident to Sentry and will see how to improve the performance. Repeating the request will not help, most probably.
' license: name: CC-BY-4.0 title: '{{ title }} align get API' version: 2.1.86 servers: - description: '{{ server_description }} - {{ server_url }}' url: '{{ server_url }}/v1' tags: - name: get paths: /get/contributors/{id}: get: operationId: get_contributors parameters: - $ref: '#/components/parameters/pathAccountID' responses: 200: content: application/json: schema: $ref: '#/components/schemas/Contributors' description: List of all contributors belonging to the specified account. 404: content: application/json: schema: $ref: '#/components/schemas/GenericError' description: The user does not belong to the specified account. 422: content: application/json: schema: $ref: '#/components/schemas/NoSourceDataError' description: The installation has not finished yet. 424: content: application/json: schema: $ref: '#/components/schemas/MissingSettingsError' description: One or more logical repositories miss the release settings. security: - bearerAuth: [] - apiKeyAuth: [] summary: List all the contributors belonging to the specified account. tags: - get x-codegen-request-body-name: body x-openapi-router-controller: athenian.api.controllers.contributors_controller /get/jira_issues: post: operationId: get_jira_issues requestBody: content: application/json: schema: $ref: '#/components/schemas/GetJIRAIssuesRequest' x-body-name: body responses: 200: content: application/json: schema: $ref: '#/components/schemas/GetJIRAIssuesResponse' description: List of Jira issues, in the requested order. 400: $ref: '#/components/responses/InvalidRequestErrorResponse' security: - bearerAuth: [] - apiKeyAuth: [] summary: Retrieve Jira issues by key. tags: - get x-openapi-router-controller: athenian.api.controllers.jira_controller /get/pull_requests: post: operationId: get_prs requestBody: content: application/json: schema: $ref: '#/components/schemas/GetPullRequestsRequest' x-body-name: body responses: 200: content: application/json: schema: $ref: '#/components/schemas/PullRequestSet' description: List of pull requests, in the requested order. 400: $ref: '#/components/responses/InvalidRequestErrorResponse' 403: content: application/json: schema: $ref: '#/components/schemas/GenericError' description: Calling user is not allowed to access the specified pull requests. 404: content: application/json: schema: $ref: '#/components/schemas/GenericError' description: The specified account does not exist or the user is not a member. 422: content: application/json: schema: $ref: '#/components/schemas/NoSourceDataError' description: The account's installation has not finished yet. 424: content: application/json: schema: $ref: '#/components/schemas/MissingSettingsError' description: One or more logical repositories miss the release settings. security: - bearerAuth: [] - apiKeyAuth: [] summary: List pull requests by repository and number. tags: - get x-openapi-router-controller: athenian.api.controllers.filter_controller /get/releases: post: operationId: get_releases requestBody: content: application/json: schema: $ref: '#/components/schemas/GetReleasesRequest' x-body-name: body responses: 200: content: application/json: schema: $ref: '#/components/schemas/ReleaseSet' description: List of releases satisfying the specified filters. 400: $ref: '#/components/responses/InvalidRequestErrorResponse' 403: content: application/json: schema: $ref: '#/components/schemas/GenericError' description: Calling user is not allowed to access the specified pull requests. 404: content: application/json: schema: $ref: '#/components/schemas/GenericError' description: The specified account does not exist or the user is not a member. 422: content: application/json: schema: $ref: '#/components/schemas/NoSourceDataError' description: The account's installation has not finished yet. 424: content: application/json: schema: $ref: '#/components/schemas/MissingSettingsError' description: One or more logical repositories miss the release settings. security: - bearerAuth: [] - apiKeyAuth: [] summary: List releases by repository and name. tags: - get x-openapi-router-controller: athenian.api.controllers.filter_controller components: schemas: GetJIRAIssuesResponse: additionalProperties: false description: Response for the get_jira_issues operation. example: issues: - comments: 0 created: '2023-02-21T09:25:30Z' id: P1-2 acknowledge_time: 132200s life_time: 259200s priority: HIGH project: '1' prs: - comments: 0 commits: 0 created: '2023-02-21T09:25:30Z' events_now: - created files_changed: 1 number: 2 participants: [] repository: github.com/o/r review_comments: 0 reviews: 0 size_added: 10 size_removed: 0 stage_timings: wip: 259199s stages_now: - wip title: PR 2 Title updated: '2023-02-23T09:25:30Z' reporter: Reporter N. 1 status: todo title: Issue n. 2 type: Type 0 updated: '2023-02-23T09:25:30Z' url: https://jira.com/issue-2 properties: include: additionalProperties: false properties: github_users: additionalProperties: $ref: '#/components/schemas/IncludedNativeUser' description: 'Mapping with details of the GitHub users mentioned in the linked pull requests. ' type: object jira_users: description: Mentioned users in the returned isssues. items: $ref: '#/components/schemas/JIRAUser' type: array type: object issues: items: $ref: '#/components/schemas/JIRAIssue' type: array required: - issues type: object DeveloperID: description: 'User name which uniquely identifies any developer on any service provider. The format matches the profile URL without the protocol part. ' example: github.com/vmarkovtsev type: string TimeDuration: description: Time duration value. pattern: ^\d+s$ type: string NoSourceDataError: $ref: '#/components/schemas/GenericError' RepositoryID: description: 'Repository name which uniquely identifies any repository in any service provider. The format matches the repository URL without the protocol part. No ".git" should be appended. We support a special syntax for repository sets: "{reposet id}" adds all the repositories from the given set. ' example: github.com/athenianco/athenian-webapp type: string MissingSettingsError: $ref: '#/components/schemas/GenericError' GenericError: example: detail: 'Unsupported metric: pr-xxx-time' status: 400 title: Bad request syntax or unsupported method. type: /errors/InvalidRequestError properties: detail: description: Human-readable explanation specific to this occurrence of the problem. example: 'Unsupported metric: pr-xxx-time' type: string instance: description: URI reference that identifies the specific occurrence of the problem. It is `null` for 4xx, Sentry event ID for 5xx. example: 2763c4eabd7240f59829ee1a02546293 type: string status: description: Duplicated HTTP status code. example: 400 type: integer title: description: Short, human-readable summary of the problem type. example: Bad request syntax or unsupported method. type: string type: description: URI reference that identifies the problem type (RFC 7807). example: /errors/InvalidRequestError type: string required: - status - title - type type: object PullRequestParticipant: additionalProperties: false description: Developer and their role in the PR. properties: id: description: Person identifier. example: github.com/vmarkovtsev type: string status: items: enum: - author - reviewer - commit_author - commit_committer - commenter - merger - releaser type: string type: array required: - id - status type: object IncludedDeployments: description: Mentioned deployments. example: deployments: production-2020-03-26-W9J3uzHl: components: - repository: github.com/athenianco/athenian-api reference: v0.10.34 environment: production date_finished: 2022-01-23 05:01:07+00:00 date_started: 2022-01-23 04:56:07+00:00 conclusion: SUCCESS labels: helm_chart: 0.0.67 properties: deployments: additionalProperties: $ref: '#/components/schemas/DeploymentNotification' description: Mapping deployment names to their details. type: object type: object JIRAUser: additionalProperties: false description: Details about a JIRA user. example: name: Vadim Markovtsev avatar: https://avatar-management-avatars.us-west-2.prod.public.atl-paas.net/5de504edde32fb0d03a3b4e3/8c3ffc1b-2ac0-488e-ac55-295ff06f9e28/48 type: atlassian properties: name: description: Full name of the user. type: string avatar: description: User's profile picture URL. format: url type: string type: description: '* `atlassian` indicates a regular account backed by a human. * `app` indicates a service account. * `customer` indicates an external service desk account.' enum: - atlassian - app - customer type: string developer: allOf: - $ref: '#/components/schemas/DeveloperID' - description: Mapped developer identity. required: - avatar - name - type type: object ReleaseNames: additionalProperties: false description: Repository name and a list of release names in that repository. example: repository: github.com/athenianco/athenian-api names: - v0.7.53 - v0.6.10 properties: repository: $ref: '#/components/schemas/RepositoryID' names: description: List of release names. For tag releases, those are the tag names. For branch releases, those are commit hashes. items: type: string type: array required: - names - repository type: object PullRequestSet: additionalProperties: false description: List of pull requests together with the participant profile pictures. example: include: users: key: avatar: https://avatars0.githubusercontent.com/u/60340680?v=4 deployments: production-2020-03-26-W9J3uzHl: components: - repository: github.com/athenianco/athenian-api reference: v0.10.34 environment: production date_finished: 2022-01-23 05:01:07+00:00 date_started: 2022-01-23 04:56:07+00:00 conclusion: SUCCESS labels: helm_chart: 0.0.67 data: - repository: github.com/athenianco/athenian-webapp number: 1111 title: '[DEV-1802] epic search' size_added: 128 size_removed: 30 files_changed: 5 created: 2021-03-02 11:47:42+00:00 updated: 2021-03-03 13:55:33+00:00 closed: 2021-03-03 13:55:32+00:00 comments: 5 commits: 17 review_requested: 2021-03-02 12:14:35+00:00 first_review: 2021-03-02 15:09:58+00:00 approved: 2021-03-03 13:15:58+00:00 review_comments: 2 reviews: 2 merged: 2021-03-03 13:55:32+00:00 merged_with_failed_check_runs: - Unit tests stage_timings: wip: 12085s review: 86690s merge: 2374s deploy: production-2020-03-26-W9J3uzHl: 45321s events_now: - approved - changes_requested - committed - created - merged - review_requested - reviewed - deployed stages_now: - done - force_push_dropped - deployed participants: - id: github.com/akbarik status: - author - commit_author - commit_committer - merger - id: github.com/se7entyse7en status: - reviewer - commenter - id: github.com/warenlg status: - commenter - id: github.com/znegrin status: - commit_author - commit_committer jira: - id: DEV-1802 title: FE - Add search capability to Epics table epic: DEV-1474 labels: - functionality - webapp type: Task properties: include: allOf: - $ref: '#/components/schemas/IncludedNativeUsers' - $ref: '#/components/schemas/IncludedDeployments' data: description: List of matched pull requests. items: $ref: '#/components/schemas/PullRequest' type: array required: - data - include type: object Color: description: RGB 24-bit color in hex. pattern: ^[0-9a-fA-F]{6}$ type: string ReleasedPullRequest: description: Details about a pull request listed in `/filter/releases`. properties: additions: type: integer author: anyOf: - $ref: '#/components/schemas/DeveloperID' - nullable: true type: string created: description: When this PR was created. format: date-time type: string deletions: type: integer jira: description: Mapped JIRA issue IDs. items: type: string type: array number: type: integer title: type: string required: - additions - author - created - deletions - number - title type: object DeploymentLabels: description: Arbitrary key-value metadata that associates with the deployment. type: object DeploymentConclusion: description: State of the completed deployment. Case-insensitive. enum: - SUCCESS - FAILURE - CANCELLED type: string InvalidRequestError: allOf: - $ref: '#/components/schemas/GenericError' - properties: pointer: description: Path to the offending request item. example: .granularity type: string type: object Contributor: additionalProperties: false description: Details about a developer who contributed to some repositories owned by the account. example: login: github.com/gkwillie name: Groundskeeper Willie email: bot@athenian.co picture: https://avatars0.githubusercontent.com/u/60340680?v=4 properties: login: $ref: '#/components/schemas/DeveloperID' name: description: Full name of the contributor. type: string email: description: Email of the conributor. type: string picture: description: Avatar URL of the contributor. type: string jira_user: description: Mapped JIRA user name. type: string required: - login type: object IncludedNativeUser: additionalProperties: false description: User traits such as the avatar URL. example: avatar: https://avatars0.githubusercontent.com/u/60340680?v=4 properties: avatar: format: url type: string required: - avatar type: object LinkedJIRAIssue: additionalProperties: false description: Brief details about a JIRA issue. example: id: DEV-344 title: Write the API specs to filter PRs by Jira epic, ticket type and label epic: DEV-149 labels: - API type: task properties: id: description: JIRA issue key `PROJECT-###`. type: string title: description: Title of this issue. type: string epic: description: Identifier of the epic that owns this issue. type: string labels: description: List of JIRA labels in this issue. items: type: string type: array type: description: Type of this issue. type: string required: - id - title - type type: object JIRAComment: additionalProperties: false properties: author: description: The name of the user who created the comment. type: string created: description: The date and time at which the comment was created. format: date-time type: string rendered_body: description: The comment text. type: string required: - author - created - rendered_body type: object PullRequestLabel: additionalProperties: false description: Pull request label. example: name: bug color: fc2929 properties: name: type: string description: type: string color: $ref: '#/components/schemas/Color' required: - color - name type: object Contributors: description: List of contributors. example: - email: bot@athenian.co login: github.com/gkwillie name: Groundskeeper Willie picture: https://avatars0.githubusercontent.com/u/60340680?v=4 - email: loumarvincaraig@gmail.com login: github.com/se7entyse7en name: Lou Marvin Caraig picture: https://avatars1.githubusercontent.com/u/5599208?v=4 items: $ref: '#/components/schemas/Contributor' type: array PullRequestEvent: description: 'PR''s modelled lifecycle events. * `created`: The PR was opened. * `committed`: Somebody pushed a commit to the PR. * `review_requested`: Somebody requested a PR review. * `reviewed`: Somebody reviewed the PR (either approved, requested changes, or commented). * `approved`: Somebody approved the PR. Note that if there were negative reviews from other participants, an approval does *not* trigger this event. * `changes_requested`: Somebody submitted a negative PR review. * `merged`: Somebody merged the PR. * `released`: The PR was released. * `rejected`: Somebody closed the PR without merging. * `deployed`: The PR was deployed. We respect this event only when `environment` was specified.' enum: - created - committed - review_requested - reviewed - approved - changes_requested - merged - released - rejected - deployed example: created type: string IncludedNativeUsers: description: Mentioned GitHub users. example: users: github.com/gkwillie: avatar: https://avatars0.githubusercontent.com/u/60340680?v=4 properties: users: additionalProperties: $ref: '#/components/schemas/IncludedNativeUser' description: Mapping user native (e.g., GitHub) login ID -> user details. The users are mentioned in the PRs from "PullRequestSet.data" or in the commits from "FilterCommitsRequest.data". type: object required: - users type: object GetJIRAIssuesRequest: additionalProperties: false description: 'Request body for the get_jira_issues operation. Declaration of which issues the user wants to retrieve. ' example: account: 1 include: - jira_users issues: - DEV-1345 - DEV-567 - ENG-123 properties: account: description: Account ID. type: integer include: description: Additional informations to include in the response. items: $ref: '#/components/schemas/GetJIRAIssuesInclude' type: array issues: description: 'List of issue identifiers (issue keys) to retrieve. The order of the requested issues will be preserved in the response. ' items: type: string minItems: 1 type: array required: - account - issues type: object GetJIRAIssuesInclude: description: "Additional information to include in the response for the get_jira_issues operation:\n* comments: include comments for every issue; returned issues will include a `comment_list`\n if they have comments\n* description: include the description for every issue; returned issues will include a\n `rendered_description` property\n* github_users: include details about the users mentioned in the linked pull requests\n* jira_users: include details about mentioned Jira users\n" enum: - comments - description - github_users - jira_users type: string IncludedJIRAIssues: description: Mentioned JIRA issues. example: jira: DEV-344: id: DEV-3440 title: Write the API specs to filter PRs by Jira epic, ticket type and label. epic: DEV-149 labels: - API type: task properties: jira: additionalProperties: $ref: '#/components/schemas/LinkedJIRAIssue' description: Mapping JIRA issue ID -> details. type: object type: object PullRequestStage: description: 'PR''s modelled lifecycle stages. * `wip`: The PR is a work-in-progress: no reviews, no review requests, not closed. * `reviewing`: The PR is going through a review process. * `merging`: The PR was approved and is waiting for merge. * `releasing`: The PR was merged but is not released yet. * `force_push_dropped`: The PR was closed but the Git commit history was rewritten and the PR''s commits no longer exist. Always appears together with `done`. * `release_ignored`: The PR belongs to the very first release of the repository, and we suppressed that release according to our heuristics. Always appears together with `done`. * `done`: The PR was either closed without merging or released or force push dropped. Deployed or not. * `deployed`: The PR was deployed. So it''s merged. Released or not. We respect this stage only when `environment` was specified.' enum: - wip - reviewing - merging - releasing - force_push_dropped - done - release_ignored - deployed example: done type: string JIRAIssue: allOf: - $ref: '#/components/schemas/JIRAEpicIssueCommon' - properties: project: description: Identifier of the project where this issue exists. type: string prs: description: Details about the mapped PRs. `jira` field is unfilled. items: $ref: '#/components/schemas/PullRequest' type: array required: - project ReleaseSet: additionalProperties: false description: Release metadata and contributor user details. example: include: users: github.com/gkwillie: avatar: https://avatars0.githubusercontent.com/u/60340680?v=4 deployments: production-2020-03-26-W9J3uzHl: components: - repository: github.com/athenianco/athenian-api reference: v0.10.34 environment: production date_finished: 2022-01-23 05:01:07+00:00 date_started: 2022-01-23 04:56:07+00:00 conclusion: SUCCESS labels: helm_chart: 0.0.67 data: - added_lines: 1000 commits: 20 deleted_lines: 200 name: v0.0.93 sha: e337123fc32c38cf6a8149b518f2e58ae836c8e6 published: 2020-03-25 10:57:00+00:00 publisher: github.com/vmarkovtsev repository: github.com/athenianco/athenian-api url: https://github.com/athenianco/athenian-api/releases/tag/v0.0.93 age: 1000s commit_authors: - github.com/vmarkovtsev prs: [] - added_lines: 1000 commits: 20 deleted_lines: 200 name: v0.0.93 sha: e337123fc32c38cf6a8149b518f2e58ae836c8e6 published: 2020-03-25 10:57:00+00:00 publisher: github.com/vmarkovtsev repository: github.com/athenianco/athenian-api url: https://github.com/athenianco/athenian-api/releases/tag/v0.0.93 age: 2000s commit_authors: - github.com/vmarkovtsev prs: [] properties: include: allOf: - $ref: '#/components/schemas/IncludedNativeUsers' - $ref: '#/components/schemas/IncludedJIRAIssues' - $ref: '#/components/schemas/IncludedDeployments' data: description: List of matching release metadata. items: $ref: '#/components/schemas/FilteredRelease' type: array type: object DeploymentNotification: description: 'Push message about a deployment. We remove unresolved components after 24h. ' example: components: - repository: github.com/athenianco/athenian-api reference: v0.10.34 environment: production date_finished: 2022-01-23 05:01:07+00:00 date_started: 2022-01-23 04:56:07+00:00 conclusion: SUCCESS labels: helm_chart: 0.0.67 properties: components: description: 'List of deployed software version. Each item identifies a Git reference in a repository, either a tag or a commit hash. ' items: $ref: '#/components/schemas/DeployedComponent' minItems: 1 type: array environment: description: Name of the environment where the deployment happened. minLength: 1 type: string name: description: Name of the deployment. If is not specified, we generate our own by the template `--`. The value may not contain \n - new line character, and ' - single quote. nullable: true pattern: ^([^'\s]| ){1,100}$ type: string url: description: URL pointing at the internal details of the deployment. format: url type: string date_started: description: Timestamp of when the deployment procedure launched. format: date-time type: string date_finished: description: Timestamp of when the deployment procedure completed. format: date-time type: string conclusion: $ref: '#/components/schemas/DeploymentConclusion' labels: $ref: '#/components/schemas/DeploymentLabels' required: - components - conclusion - date_finished - date_started - environment type: object PullRequest: additionalProperties: false description: Details of a pull request. All the attributes, stats and events correspond to "today", not `date_to`, *except for the PR stages `wip`, `reviewing`, `merging`, `releasing`*, which correspond to `date_to`. example: repository: github.com/athenianco/athenian-webapp number: 1111 title: '[DEV-1802] epic search' size_added: 128 size_removed: 30 files_changed: 5 created: 2021-03-02 11:47:42+00:00 updated: 2021-03-03 13:55:33+00:00 closed: 2021-03-03 13:55:32+00:00 comments: 5 commits: 17 review_requested: 2021-03-02 12:14:35+00:00 first_review: 2021-03-02 15:09:58+00:00 approved: 2021-03-03 13:15:58+00:00 review_comments: 2 reviews: 2 merged: 2021-03-03 13:55:32+00:00 merged_with_failed_check_runs: - Unit tests stage_timings: wip: 12085s review: 86690s merge: 2374s deploy: production-2020-03-26-W9J3uzHl: 45321s events_now: - approved - changes_requested - committed - created - merged - review_requested - reviewed - deployed stages_now: - done - force_push_dropped - deployed participants: - id: github.com/akbarik status: - author - commit_author - commit_committer - merger - id: github.com/se7entyse7en status: - reviewer - commenter - id: github.com/warenlg status: - commenter - id: github.com/znegrin status: - commit_author - commit_committer jira: - id: DEV-1802 title: FE - Add search capability to Epics table epic: DEV-1474 labels: - functionality - webapp type: Task properties: repository: description: PR is/was open in this repository. type: string number: description: PR number. minimum: 1 type: integer title: description: Title of the PR. type: string size_added: description: Overall number of lines added. minimum: 0 type: integer size_removed: description: Overall number of lines removed. minimum: 0 type: integer files_changed: description: Number of files changed in this PR. minimum: 0 type: integer created: description: When this PR was created. format: date-time type: string updated: description: When this PR was last updated. format: date-time type: string closed: description: When this PR was last closed. format: date-time type: string comments: description: Number of *regular* (not review) comments in this PR. minimum: 0 type: integer commits: description: Number of commits in this PR. minimum: 0 type: integer review_requested: description: When was the first time the author of this PR requested a review. format: date-time type: string first_review: description: When the first review of this PR happened. format: date-time type: string approved: description: When this PR was approved. format: date-time type: string review_comments: description: 'Number of review comments this PR received. A review comment is left at a specific line in a specific file. In other words: review summaries are *not* considered review comments; refer to `reviews`. Comments by the PR author are considered as `comments`, not as `review_comments`.' minimum: 0 type: integer reviews: description: Number of times this PR was reviewed. Reviews by the PR author are not taken into account. minimum: 0 type: integer merged: description: When this PR was merged. format: date-time type: string merged_with_failed_check_runs: description: PR was merged with these failed check runs. items: type: string type: array released: description: When this PR was released. format: date-time type: string release_url: description: URL of the earliest release that includes this merged PR. format: url type: string deployments: description: List of deployments that contain this PR. items: type: string type: array stage_timings: $ref: '#/components/schemas/StageTimings' events_time_machine: description: List of PR events which happened until `date_to`. `date_from` does not matter. items: $ref: '#/components/schemas/PullRequestEvent' type: array stages_time_machine: description: List of PR stages as of `date_to` (normally, of length 1). items: $ref: '#/components/schemas/PullRequestStage' type: array events_now: description: List of PR events that ever happened. items: $ref: '#/components/schemas/PullRequestEvent' type: array stages_now: description: List of current PR stages (normally, of length 1). items: $ref: '#/components/schemas/PullRequestStage' type: array participants: description: List of developers related to this PR. items: $ref: '#/components/schemas/PullRequestParticipant' type: array labels: description: List of PR labels. items: $ref: '#/components/schemas/PullRequestLabel' type: array jira: description: List of linked JIRA issues. items: $ref: '#/components/schemas/LinkedJIRAIssue' type: array required: - comments - commits - created - events_now - files_changed - number - participants - repository - size_added - size_removed - stage_timings - stages_now - title - updated type: object FilteredRelease: additionalProperties: false description: Various information about a repository release. example: added_lines: 1000 commits: 20 deleted_lines: 200 name: v0.0.93 sha: e337123fc32c38cf6a8149b518f2e58ae836c8e6 published: 2020-03-25 10:57:00+00:00 publisher: github.com/vmarkovtsev repository: github.com/athenianco/athenian-api url: https://github.com/athenianco/athenian-api/releases/tag/v0.0.93 age: 10000s commit_authors: - github.com/vmarkovtsev prs: - additions: 34 author: github.com/se7entyse7en created: 2020-05-21 18:29:00+00:00 deletions: 3 number: 176 title: Fix first account creation deployments: - production-2020-03-26-W9J3uzHl properties: added_lines: description: Cumulative number of lines inserted since the previous release. minimum: 0 type: integer age: description: Time since the previous release /\d+s/. type: string commits: description: Number of commits since the previous release. minimum: 0 type: integer commit_authors: description: List of released commit authors' logins. items: $ref: '#/components/schemas/DeveloperID' type: array deleted_lines: description: Cumulative number of lines removed since the previous release. minimum: 0 type: integer deployments: description: Deployments with this release. items: type: string type: array name: description: Title of the release. type: string prs: description: List of released pull requests. items: $ref: '#/components/schemas/ReleasedPullRequest' type: array published: description: When the release was created. format: date-time type: string publisher: description: Login of the person who created the release. nullable: true type: string repository: description: Name of the repository where the release exists. type: string sha: description: Release commit hash. minLength: 40 maxLength: 40 type: string url: description: Link to the release. format: url type: string required: - added_lines - age - commit_authors - commits - deleted_lines - name - prs - published - publisher - repository - sha - url type: object JIRAEpicIssueCommon: description: Common properies if a JIRA issue or epic. properties: id: description: JIRA issue key `PROJECT-###`. type: string title: description: Title of this issue. type: string created: description: When this issue was created. format: date-time type: string updated: description: When this issue was last updated. format: date-time type: string work_began: description: 'When the issue entered the "In Progress" stage or received a PR. This timestamp can be missing and is always less than or equal to `resolved`.' format: date-time type: string resolved: description: 'When the issue finished: the stage is "Done" and all PRs are either released or rejected. This timestamp can be missing and is always greater than or equal to `work_began`.' format: date-time type: string acknowledge_time: allOf: - description: 'Issue''s time spent between `work_began` and `created`. If work on issue has not begun, time between `now()` and `created. See also `jira-acknowledge-time` metric.' - $ref: '#/components/schemas/TimeDuration' lead_time: allOf: - description: 'Issue''s time spent between `work_began` and `resolved`. If not resolved, between `work_began` and `now()`.' - $ref: '#/components/schemas/TimeDuration' life_time: allOf: - description: 'Issue''s time spent between `created` and `resolved`. If not resolved, between `created` and `now()`.' - $ref: '#/components/schemas/TimeDuration' reporter: description: Name of the person who reported the issue. type: string assignee: description: Name of the assigned person. type: string comments: description: Number of comments in the issue excluding sub-tasks and children. type: integer comment_list: description: The list of comments for the issue. items: $ref: '#/components/schemas/JIRAComment' type: array priority: description: Name of the priority. The details are returned in `FilteredJIRAStuff.priorities`. nullable: true type: string rendered_description: description: The description of the issue rendered as HTML. type: string status: description: Name of the status. The details are returned in `FilteredJIRAStuff.statuses`. type: string story_points: description: Value of the "story points" field. type: number type: description: Name of the issue type. The details are returned in `FilteredJIRAStuff.issue_types`. type: string url: description: Link to the issue in JIRA web application. format: url type: string required: - comments - created - id - acknowledge_time - life_time - priority - reporter - status - title - type - updated - url type: object StageTimings: additionalProperties: false description: 'Time spent by the PR in each pipeline stage. The deployments are independent of the releases. If the release happens before the deployment, the deployment time measures from the release event. If the release happens after the deployment, the two values are independent and both measure from the PR merge event. ' example: wip: 120s review: 600s properties: wip: $ref: '#/components/schemas/TimeDuration' review: $ref: '#/components/schemas/TimeDuration' merge: $ref: '#/components/schemas/TimeDuration' release: $ref: '#/components/schemas/TimeDuration' deploy: additionalProperties: $ref: '#/components/schemas/TimeDuration' description: Map from target environments to the values. type: object required: - wip type: object GetReleasesRequest: additionalProperties: false description: Request body of `/get/releases`. Declaration of which releases the user wants to list. example: account: 1 releases: - repository: github.com/athenianco/athenian-api names: - v0.7.53 - v0.6.10 properties: account: description: Account ID. type: integer releases: description: List of repositories and release names to list. items: $ref: '#/components/schemas/ReleaseNames' type: array required: - account - releases type: object GetPullRequestsRequest: additionalProperties: false description: 'Request body of `/get/pull_requests`. Declaration of which PRs the user wants to list. The order of the requested PRs will be preserved in the response. ' example: account: 1 prs: - repository: github.com/athenianco/athenian-api numbers: - 483 - 484 - 485 environments: - production properties: account: description: Account ID. type: integer prs: description: List of repositories and PR numbers to list. items: $ref: '#/components/schemas/PullRequestNumbers' minItems: 1 type: array environments: description: Deployment environments to apply. If omitted, any deployment counts. items: type: string minItems: 1 type: array required: - account - prs type: object DeployedComponent: additionalProperties: false description: Definition of the deployed software unit. example: repository: github.com/athenianco/athenian-api reference: v0.10.34 properties: repository: $ref: '#/components/schemas/RepositoryID' reference: description: 'We accept three ways to define a Git reference: 1. Tag name. 2. Full commit hash (40 characters). 3. Short commit hash (7 characters). We ignore the reference while we cannot find it in our database. There can be two reasons: - There is a mistake or a typo in the provided data. - We are temporarily unable to synchronize with GitHub. ' minLength: 1 type: string required: - reference - repository type: object PullRequestNumbers: additionalProperties: false description: Repository name and a list of PR numbers in that repository. example: repository: github.com/athenianco/athenian-api numbers: - 483 - 484 - 485 properties: repository: $ref: '#/components/schemas/RepositoryID' numbers: items: type: integer type: array required: - numbers - repository type: object parameters: pathAccountID: description: Numeric identifier of the account. explode: false in: path name: id required: true schema: type: integer style: simple responses: InvalidRequestErrorResponse: content: application/json: schema: $ref: '#/components/schemas/InvalidRequestError' description: The request is invalid. securitySchemes: apiKeyAuth: description: 'Authorization by the value of `X-API-Key` header aka API token. The tokens are user- and account-specific. Create them by calling `/token/create`. The server automatically inserts `account` in the request''s body if it was not supplied by the user.' in: header name: X-API-Key type: apiKey x-apikeyInfoFunc: athenian.api.controllers.security_controller.info_from_apiKeyAuth bearerAuth: bearerFormat: JWT description: 'Regular JSON Web Token authorization powered by Auth0. The server expects an `Authorization: Bearer ` header and checks `` by sending it to Auth0. Visit [{{ server_url | replace("api", "app") }}/bearer]({{ server_url | replace("api", "app") }}/bearer) to copy your current JWT that will expire within 24 hours.' scheme: bearer type: http x-bearerInfoFunc: athenian.api.controllers.security_controller.info_from_bearerAuth