Athenian metrics API

The metrics API from Athenian — 7 operation(s) for metrics.

OpenAPI Specification

athenian-metrics-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 metrics API'
  version: 2.1.86
servers:
- description: '{{ server_description }} - {{ server_url }}'
  url: '{{ server_url }}/v1'
tags:
- name: metrics
paths:
  /metrics/code_bypassing_prs:
    post:
      operationId: calc_code_bypassing_prs
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CodeFilter'
        description: Query for measuring the amount of code that was pushed outside of pull requests.
        required: true
        x-body-name: body
      responses:
        200:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeasuredCodeBypassingPRs'
          description: Calculated metrics.
        400:
          $ref: '#/components/responses/InvalidRequestErrorResponse'
        403:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
          description: The user is forbidden to access the specified repositories on behalf of the specified account.
        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.
      security:
      - bearerAuth: []
      - apiKeyAuth: []
      summary: Measure the amount of code that was pushed outside of pull requests.
      tags:
      - metrics
      x-codegen-request-body-name: body
      x-openapi-router-controller: athenian.api.controllers.metrics_controller
  /metrics/code_checks:
    post:
      operationId: calc_metrics_code_checks
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CodeCheckMetricsRequest'
        description: Select the check runs of interest and the metrics to calculate.
        required: true
        x-body-name: body
      responses:
        200:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CalculatedCodeCheckMetrics'
          description: Calculated metrics.
        400:
          $ref: '#/components/responses/InvalidRequestErrorResponse'
        403:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
          description: The user is forbidden to access the specified repositories on behalf of the specified account.
        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.
      security:
      - bearerAuth: []
      - apiKeyAuth: []
      summary: Calculate metrics on continuous integration runs, such as GitHub Actions, Jenkins, Circle, etc.
      tags:
      - metrics
      x-codegen-request-body-name: body
      x-openapi-router-controller: athenian.api.controllers.metrics_controller
  /metrics/deployments:
    post:
      operationId: calc_metrics_deployments
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeploymentMetricsRequest'
        description: Select the deployments of interest and the metrics to calculate.
        required: true
        x-body-name: body
      responses:
        200:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CalculatedDeploymentMetrics'
          description: Calculated metrics.
        400:
          $ref: '#/components/responses/InvalidRequestErrorResponse'
        403:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
          description: The user is forbidden to access the specified repositories on behalf of the specified account.
        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.
      security:
      - bearerAuth: []
      - apiKeyAuth: []
      summary: Calculate metrics on deployments submitted by `/events/deployments`.
      tags:
      - metrics
      x-codegen-request-body-name: body
      x-openapi-router-controller: athenian.api.controllers.metrics_controller
  /metrics/developers:
    post:
      operationId: calc_metrics_developers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeveloperMetricsRequest'
        description: Query for selecting developers and measured activities.
        required: true
        x-body-name: body
      responses:
        200:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CalculatedDeveloperMetrics'
          description: Calculated metrics.
        400:
          $ref: '#/components/responses/InvalidRequestErrorResponse'
        403:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
          description: The user is forbidden to access the specified repositories on behalf of the specified account.
        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: Calculate metrics over developer activities.
      tags:
      - metrics
      x-codegen-request-body-name: body
      x-openapi-router-controller: athenian.api.controllers.metrics_controller
  /metrics/jira:
    post:
      operationId: calc_metrics_jira_linear
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JIRAMetricsRequest'
        description: Query for selecting JIRA issues and measured activities.
        required: true
        x-body-name: body
      responses:
        200:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CalculatedJIRAMetrics'
          description: Calculated metrics.
        400:
          $ref: '#/components/responses/InvalidRequestErrorResponse'
        403:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
          description: The user is forbidden to access the specified repositories on behalf of the specified account.
        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: Calculate metrics over JIRA issue activities.
      tags:
      - metrics
      x-codegen-request-body-name: body
      x-openapi-router-controller: athenian.api.controllers.jira_controller
  /metrics/pull_requests:
    post:
      operationId: calc_metrics_prs
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PullRequestMetricsRequest'
        description: Desired metric definitions.
        required: true
        x-body-name: body
      responses:
        200:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CalculatedPullRequestMetrics'
          description: Calculated metrics.
        400:
          $ref: '#/components/responses/InvalidRequestErrorResponse'
        403:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
          description: The user is forbidden to calculate metrics on behalf of the specified account.
        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: No data is available to calculate metrics for the given repositories.
        424:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MissingSettingsError'
          description: One or more logical repositories miss the release settings.
      security:
      - bearerAuth: []
      - apiKeyAuth: []
      summary: Calculate linear metrics over PRs.
      tags:
      - metrics
      x-codegen-request-body-name: body
      x-openapi-router-controller: athenian.api.controllers.metrics_controller
  /metrics/releases:
    post:
      operationId: calc_metrics_releases
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReleaseMetricsRequest'
        description: Desired metric definitions.
        required: true
        x-body-name: body
      responses:
        200:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CalculatedReleaseMetrics'
          description: Calculated metrics.
        400:
          $ref: '#/components/responses/InvalidRequestErrorResponse'
        403:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
          description: The user is forbidden to calculate metrics on behalf of the specified account.
        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: No data is available to calculate metrics for the given repositories.
        424:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MissingSettingsError'
          description: One or more logical repositories miss the release settings.
      security:
      - bearerAuth: []
      - apiKeyAuth: []
      summary: Calculate linear metrics over releases.
      tags:
      - metrics
      x-codegen-request-body-name: body
      x-openapi-router-controller: athenian.api.controllers.metrics_controller
components:
  schemas:
    DeveloperMetricsRequest:
      additionalProperties: false
      description: Request for calculating metrics on top of developer activities.
      example:
        for:
        - repositories:
          - github.com/athenianco/athenian-webapp
          - github.com/athenianco/athenian-api
          developers:
          - github.com/vmarkovtsev
          - github.com/dpordomingo
        - repositories:
          - github.com/athenianco/athenian-webapp
          - github.com/athenianco/athenian-api
          developers:
          - github.com/vmarkovtsev
          - github.com/dpordomingo
        metrics:
        - dev-reviews
        - dev-prs-created
        - dev-pr-comments
        date_from: 2019-10-23
        date_to: 2020-05-23
        granularities:
        - all
        account: 1
      properties:
        for:
          description: Sets of developers and repositories to calculate the metrics for.
          items:
            $ref: '#/components/schemas/ForSetDevelopers'
          type: array
        metrics:
          description: Requested metric identifiers.
          items:
            $ref: '#/components/schemas/DeveloperMetricID'
          type: array
        date_from:
          description: Date from when to start measuring the metrics.
          format: date
          type: string
        date_to:
          description: Date until which to measure the metrics.
          format: date
          type: string
        timezone:
          $ref: '#/components/schemas/TimeZone'
        account:
          description: Session account ID.
          type: integer
        granularities:
          $ref: '#/components/schemas/Granularities'
      required:
      - account
      - date_from
      - date_to
      - for
      - granularities
      - metrics
      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
    CalculatedDeploymentMetric:
      additionalProperties: false
      description: Calculated metrics for a deployments group.
      example:
        for:
          repositories:
          - github.com/athenianco/athenian-webapp
          - github.com/athenianco/athenian-api
          with:
            pr_author:
            - github.com/se7entyse7en
            - github.com/vmarkovtsev
        metrics:
        - dep-duration-successful
        - dep-success-ratio
        granularity: all
        values:
        - date: 2020-07-20
          values:
          - 600s
          - 0.91
          confidence_mins:
          - 550s
          - null
          confidence_maxs:
          - 630s
          - null
          confidence_scores:
          - 84
          - null
      properties:
        for:
          $ref: '#/components/schemas/ForSetDeployments'
        metrics:
          items:
            $ref: '#/components/schemas/DeploymentMetricID'
          type: array
        granularity:
          $ref: '#/components/schemas/Granularity'
        values:
          description: The sequence steps from `date_from` till `date_to` by `granularity`.
          items:
            $ref: '#/components/schemas/CalculatedLinearMetricValues'
          type: array
      required:
      - for
      - granularity
      - metrics
      - values
      type: object
    ReleaseMatchStrategy:
      description: 'Release workflow choice: how we should detect releases.

        * `branch`: merges to certain branches are considered releases and nothing else.

        * `event`: releases are manually registered with `POST /events/releases`.

        * `tag`: tags with certain name patterns are considered releases and nothing else.

        * `tag_or_branch`: follow "tag"; if the repository does not have tags, fallback to "branch".'
      enum:
      - branch
      - event
      - tag
      - tag_or_branch
      type: string
    WithBothJiraAndJiragroups:
      description: An object having both jira and jiragroups fields.
      properties:
        jira: {}
        jiragroups: {}
      required:
      - jira
      - jiragroups
      type: object
    TimeDuration:
      description: Time duration value.
      pattern: ^\d+s$
      type: string
    NoSourceDataError:
      $ref: '#/components/schemas/GenericError'
    CalculatedJIRAMetricValues:
      additionalProperties: false
      description: Calculated JIRA metrics for a specific granularity.
      example:
        granularity: 2 week
        values:
        - date: 2020-01-23
          values:
          - 0.8008282
          - 0.8008282
          confidence_mins:
          - 0.5
          - 0.5
          confidence_maxs:
          - 1.0
          - 1.0
          confidence_scores:
          - 75
          - 75
        - date: 2020-01-23
          values:
          - 0.8008282
          - 0.8008282
          confidence_mins:
          - 0.5
          - 0.5
          confidence_maxs:
          - 1.0
          - 1.0
          confidence_scores:
          - 75
          - 75
      properties:
        granularity:
          $ref: '#/components/schemas/Granularity'
        for:
          $ref: '#/components/schemas/JIRAFilter'
        jira_label:
          description: Title of the assigned JIRA label, if `group_by_jira_label` was previously set to `true`. If is missing and `group_by_jira_label` was set to `true` then the metrics are calculated for issues without labels.
          type: string
        with:
          $ref: '#/components/schemas/JIRAFilterWith'
        values:
          description: The sequence steps from `date_from` till `date_to` by `granularity`.
          items:
            $ref: '#/components/schemas/CalculatedLinearMetricValues'
          type: array
      required:
      - granularity
      - values
      type: object
    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
    PullRequestWith:
      additionalProperties: false
      description: 'Triage PRs by various developer participation. The aggregation is `OR` between

        the participation groups and `OR` within each group. For example, if our request is

        ```

        {"author": ["github.com/vmarkovtsev"], "reviewer": ["github.com/gkwillie", "github.com/mcuadros"]}

        ```

        then the matched PRs will have **@vmarkovtsev** as the author or either

        **@gkwillie** or **@mcuadros** as the reviewers.

        It is possible to mention whole teams using the syntax `{id}` where `id` is a team identifier (see `/teams`).'
      example:
        author:
        - github.com/vmarkovtsev
      properties:
        author:
          $ref: '#/components/schemas/DeveloperSet'
        reviewer:
          $ref: '#/components/schemas/DeveloperSet'
        commit_author:
          $ref: '#/components/schemas/DeveloperSet'
        commit_committer:
          $ref: '#/components/schemas/DeveloperSet'
        commenter:
          $ref: '#/components/schemas/DeveloperSet'
        merger:
          $ref: '#/components/schemas/DeveloperSet'
        releaser:
          $ref: '#/components/schemas/DeveloperSet'
      type: object
    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
    CalculatedDeveloperMetricsItem:
      additionalProperties: false
      description: Measured developer metrics for each `DeveloperMetricsRequest.for`. Each repository group maps to a distinct `CalculatedDeveloperMetricsItem`.
      example:
        values:
        - - date: 2020-01-23
            values:
            - 5
            - 10
        - - date: 2020-01-23
            values:
            - 20
            - 100
        for:
          repositories:
          - github.com/athenianco/athenian-webapp
          - github.com/athenianco/athenian-api
          developers:
          - github.com/vmarkovtsev
          - github.com/dpordomingo
        granularity: all
      properties:
        for:
          $ref: '#/components/schemas/ForSetDevelopers'
        granularity:
          $ref: '#/components/schemas/Granularity'
        values:
          description: The sequence matches `CalculatedDeveloperMetricsItem.for.developers`.
          items:
            description: The sequence steps from `date_from` till `date_to` by `granularity`.
            items:
              $ref: '#/components/schemas/CalculatedLinearMetricValues'
            type: array
          type: array
      required:
      - for
      - granularity
      - values
      type: object
    ForSetPullRequests:
      additionalProperties: false
      description: 'Filter for `/metrics/pull_requests` and `/histograms/pull_requests`.

        Achieve the best performance by packing all your filters in a single `ForSetPullRequests`

        instead of sending multiple `ForSetPullRequests`-s. For example, use `repogroups` and `withgroups`

        to request separate metrics for several repository sets and teams.

        '
      example:
        repositories:
        - github.com/athenianco/athenian-webapp
        - github.com/athenianco/athenian-api
        with:
          author:
          - github.com/vmarkovtsev
          - github.com/dpordomingo
        labels_include:
        - bug
      not:
        $ref: '#/components/schemas/WithBothJiraAndJiragroups'
      properties:
        repositories:
          allOf:
          - $ref: '#/components/schemas/RepositorySet'
          - description: 'Repositories for which to calculate the metrics.

              When property is missing metrics will be calculated across all repositories.

              '
        repogroups:
          $ref: '#/components/schemas/IndexedGroups'
        with:
          $ref: '#/components/schemas/PullRequestWith'
        withgroups:
          description: 'Aggregate by groups of PR contributors.

            Currently, only the groupings by `author`, `merger`, and `releaser` are supported.

            People do not have to be mentioned in `with` in contrast to `repogroups`.

            We treat `with` as another group, if specified.'
          items:
            $ref: '#/components/schemas/PullRequestWith'
          type: array
        labels_include:
          description: At least one of these labels must be present in each analyzed PR.
          items:
            type: string
          type: array
        labels_exclude:
          description: None of these labels must be present in each analyzed PR.
          items:
            type: string
          type: array
        lines:
          description: Split by changed number of lines (inserted + removed).
          items:
            minimum: 0
            type: integer
          minItems: 2
          type: array
        jira:
          $ref: '#/components/schemas/JIRAFilter'
        jiragroups:
          $ref: '#/components/schemas/JIRAGroups'
        environments:
          description: Calculate deployment metrics separately for each environment in the list. Required if any deployment metrics were requested. Histograms are only implemented for single environments.
          items:
            type: string
          maxItems: 64
          minItems: 1
          type: array
      type: object
    CommitPushers:
      description: 'Check runs must be triggered by commits pushed by these people.

        When it is impossible to determine who pushed, e.g. in legacy API based checks,

        they are committers.

        It is possible to mention whole teams using the syntax `{id}` where `id` is a team identifier (see `/teams`).

        '
      example:
      - github.com/vmarkovtsev
      - github.com/se7entyse7en
      items:
        $ref: '#/components/schemas/DeveloperID'
      type: array
    MeasuredCodeBypassingPRs:
      description: Statistics about code pushed outside of pull requests.
      example:
      - date: 2020-01-23
        bypassed_commits: 1
        bypassed_lines: 20
        total_commits: 2
        total_lines: 50
      - date: 2020-01-24
        bypassed_commits: 2
        bypassed_lines: 30
        total_commits: 3
        total_lines: 60
      items:
        $ref: '#/components/schemas/CodeBypassingPRsMeasurement'
      type: array
    Granularities:
      description: The splits of the specified time range.
      items:
        $ref: '#/components/schemas/Granularity'
      minItems: 1
      type: array
    Quantiles:
      description: 'Cut the distributions at certain quantiles.

        The default values are [0, 1] which means no cutting.'
      example:
      - 0
      - 0.95
      items:
        maximum: 1
        minimum: 0
        type: number
      maxItems: 2
      minItems: 2
      type: array
    JIRAMetricsRequest:
      additionalProperties: false
      description: Request body of `/metrics/jira`.
      example:
        account: 1
        date_from: 2020-10-01
        date_to: 2020-10-30
        priorities:
        - High
        types:
        - Bug
        metrics:
        - jira-open
        - jira-resolved
        - jira-raised
        granularities:
        - all
        exclude_inactive: true
      properties:
        account:
          description: Session account ID.
          type: integer
        date_from:
          description: Issues must be resolved after this date.
          format: date
          type: string
        date_to:
          description: Issues must be created before this date.
          format: date
          type: string
        for:
          description: "Calculate metrics separately for each JIRA Filter in the list.\nNot compatible with other jira filters in the request:\n  `priorities`, `types`, `labels_include`, `labels_exclude`, `epics`, `projects`.\n"
          items:
            $ref: '#/components/schemas/JIRAFilter'
          type: array
        timezone:
          $ref: '#/components/schemas/TimeZone'
        priorities:
          description: Selected issue priorities.
          items:
            type: string
          type: array
        types:
          description: Selected issue types.
          items:
            type: string
          type: array
        labels_include:
          description: JIRA issues must contain at least one label from the list. Several labels may be concatenated by a comma `,` so that all of them are required.
          items:
            type: string
          type: array
        labels_exclude:
          description: JIRA issues may not contain labels from this list.
          items:
            type: string
          type: array
        exclude_inactive:
          description: Value indicating whether issues with the last update older than `date_from` should be ignored. If `date_from` and `date_to` are `null`, does nothing.
          type: boolean
        epics:
          description: JIRA issues must be attached to any of the epic IDs from this list.
          items:
            type: string
          type: array
        with:
          description: Groups of issue participants. The metrics will be calculated for each group.
          items:
            $ref: '#/components/schemas/JIRAFilterWith'
          type: array
        projects:
          description: Issues must belong to these JIRA projects.
          items:
            example: DEV
            type: string
          type: array
        metrics:
          description: List of measured metrics.
          items:
            $ref: '#/components/schemas/JIRAMetricID'
          type: array
        quantiles:
          $ref: '#/components/schemas/Quantiles'
        granularities:
          $ref: '#/components/schemas/Granularities'
        group_by_jira_label:
          description: Value indicating whether the metrics should be grouped by assigned JIRA issue label.
          type: boolean
      required:
      - account
      - date_from
      - date_to
      - exclude_inactive
      - granularities
      - metrics
      type: object
    JIRAStatusCategory:
      description: The category of a JIRA issue status.
      enum:
      - To Do
      - In Progress
      - Done
      - No Category
      type: string
    DeploymentMetricsRequest:
      additionalProperties: false
      description: Request body of `/metrics/deployments`, the deployments selector.
      example:
        for:
        - repositories:
          - github.com/athenianco/athenian-webapp
          - github.com/athenianco/athenian-api
          withgroups:
          - pr_author:
            - github.com/se7entyse7en
            - github.com/vmarkovtsev
          jira:
            labels_include:
            - bug
        metrics:
        - dep-duration-successful
        - dep-success-ratio
        date_from: 2021-07-20
        date_to: 2021-10-07
        granularities:
        - all
        - 2 week
        account: 1
      properties:
        for:
          description: 'Sets of filters for which to calculate the metrics.

            The aggregation is `AND` between individual properties lik

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