Athenian get API

The get API from Athenian — 4 operation(s) for get.

OpenAPI Specification

athenian-get-api-openapi.yml Raw ↑
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.

    <details>

    <summary>List of common server errors.</summary>

    * __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.

    </details>'
  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 `<environment shortcut>-<date>-<hash of the components>`. 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
        e

# --- truncated at 32 KB (48 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/athenian/refs/heads/main/openapi/athenian-get-api-openapi.yml