Athenian filter API

The filter API from Athenian — 11 operation(s) for filter.

Operations 11

POST /diff/releases Find releases between the two given ones per repository. #
POST /filter/code_checks Find code check runs that match the specified query. [What a code check run is exactly.](https://docs.github.com/en/rest/guides/getting-started-with-the-checks-api#about-check-runs #
POST /filter/commits Find commits that match the specified query. #
POST /filter/contributors Find developers that made an action within the given timeframe. #
POST /filter/deployments List the deployments that satisfy the provided filters. We accept new deployment notifications at `/events/deployments`. #
POST /filter/environments List the deployment environments. #
POST /filter/jira Find various JIRA entities relevant to the specified date interval. #
POST /filter/labels Find labels used in the given repositories. #
POST /filter/pull_requests List pull requests that satisfy the query. #
POST /filter/releases Find releases that were published in the given time fram in the given repositories. #
POST /filter/repositories Find repositories that were updated within the given timeframe. #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/athenian-filter-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

athenian-filter-api-openapi.yml Raw ↑
openapi: 3.2.0
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 }} Filter API'
  version: 2.1.86
servers:
- description: '{{ server_description }} - {{ server_url }}'
  url: '{{ server_url }}/v1'
tags:
- name: filter
paths:
  /diff/releases:
    post:
      operationId: diff_releases
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DiffReleasesRequest'
        x-body-name: body
      responses:
        200:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DiffedReleases'
          description: Releases between the two specified borders, excluding the first one and including the second one. Triaged by repository.
        400:
          $ref: '#/components/responses/InvalidRequestErrorResponse'
        403:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
          description: Calling user is not allowed to access the specified repositories.
        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/GenericError'
          description: The account's installation has not finished yet.
      security:
      - bearerAuth: []
      - apiKeyAuth: []
      summary: Find releases between the two given ones per repository.
      tags:
      - filter
      x-codegen-request-body-name: body
      x-openapi-router-controller: athenian.api.controllers.filter_controller
  /filter/code_checks:
    post:
      operationId: filter_code_checks
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FilterCodeChecksRequest'
        x-body-name: body
      responses:
        200:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FilteredCodeCheckRuns'
          description: Code check runs that satisfy 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 repositories.
        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: Find code check runs that match the specified query. [What a code check run is exactly.](https://docs.github.com/en/rest/guides/getting-started-with-the-checks-api#about-check-runs)
      tags:
      - filter
      x-codegen-request-body-name: body
      x-openapi-router-controller: athenian.api.controllers.filter_controller
  /filter/commits:
    post:
      operationId: filter_commits
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FilterCommitsRequest'
        x-body-name: body
      responses:
        200:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommitsList'
          description: Commits that satisfy the specified filters grouped by date.
        400:
          $ref: '#/components/responses/InvalidRequestErrorResponse'
        403:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
          description: Calling user is not allowed to access the specified repositories.
        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/GenericError'
          description: The account's installation has not finished yet.
      security:
      - bearerAuth: []
      - apiKeyAuth: []
      summary: Find commits that match the specified query.
      tags:
      - filter
      x-codegen-request-body-name: body
      x-openapi-router-controller: athenian.api.controllers.filter_controller
  /filter/contributors:
    post:
      operationId: filter_contributors
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FilterContributorsRequest'
        x-body-name: body
      responses:
        200:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeveloperSummaries'
          description: Repositories that were updated within the given timeframe.
        400:
          $ref: '#/components/responses/InvalidRequestErrorResponse'
        403:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
          description: Calling user is not allowed to access the specified repositories.
        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: Find developers that made an action within the given timeframe.
      tags:
      - filter
      x-codegen-request-body-name: body
      x-openapi-router-controller: athenian.api.controllers.filter_controller
  /filter/deployments:
    post:
      operationId: filter_deployments
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FilterDeploymentsRequest'
        x-body-name: body
      responses:
        200:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FilteredDeployments'
          description: Deployments that satisfy 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 repositories.
        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: List the deployments that satisfy the provided filters. We accept new deployment notifications at `/events/deployments`.
      tags:
      - filter
      x-codegen-request-body-name: body
      x-openapi-router-controller: athenian.api.controllers.filter_controller
  /filter/environments:
    post:
      operationId: filter_environments
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FilterEnvironmentsRequest'
        x-body-name: body
      responses:
        200:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FilteredEnvironments'
          description: Deployment environments that satisfy the specified filters.
        400:
          $ref: '#/components/responses/InvalidRequestErrorResponse'
        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 hasn't submitted any deployment notifications.
      security:
      - bearerAuth: []
      - apiKeyAuth: []
      summary: List the deployment environments.
      tags:
      - filter
      x-codegen-request-body-name: body
      x-openapi-router-controller: athenian.api.controllers.filter_controller
  /filter/jira:
    post:
      operationId: filter_jira_stuff
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FilterJIRAStuff'
        x-body-name: body
      responses:
        200:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FilteredJIRAStuff'
          description: List of found JIRA entities, ordered by the last usage time.
        403:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
          description: The user is not an account member.
        404:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
          description: The account was not found.
      security:
      - bearerAuth: []
      - apiKeyAuth: []
      summary: Find various JIRA entities relevant to the specified date interval.
      tags:
      - filter
      x-codegen-request-body-name: body
      x-openapi-router-controller: athenian.api.controllers.jira_controller
  /filter/labels:
    post:
      operationId: filter_labels
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FilterLabelsRequest'
        x-body-name: body
      responses:
        200:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FilteredLabels'
          description: List of labels.
        400:
          $ref: '#/components/responses/InvalidRequestErrorResponse'
        403:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
          description: Calling user is not allowed to access the specified repositories.
        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: Find labels used in the given repositories.
      tags:
      - filter
      x-codegen-request-body-name: body
      x-openapi-router-controller: athenian.api.controllers.filter_controller
  /filter/pull_requests:
    post:
      operationId: filter_prs
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FilterPullRequestsRequest'
        x-body-name: body
      responses:
        200:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullRequestSet'
          description: List of pull requests 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 repositories.
        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 that satisfy the query.
      tags:
      - filter
      x-openapi-router-controller: athenian.api.controllers.filter_controller
  /filter/releases:
    post:
      operationId: filter_releases
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FilterReleasesRequest'
        x-body-name: body
      responses:
        200:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReleaseSet'
          description: Repositories that were updated within the given timeframe.
        400:
          $ref: '#/components/responses/InvalidRequestErrorResponse'
        403:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
          description: Calling user is not allowed to access the specified repositories.
        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: Find releases that were published in the given time fram in the given repositories.
      tags:
      - filter
      x-codegen-request-body-name: body
      x-openapi-router-controller: athenian.api.controllers.filter_controller
  /filter/repositories:
    post:
      operationId: filter_repositories
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FilterRepositoriesRequest'
        x-body-name: body
      responses:
        200:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RepositorySet'
          description: Repositories that were updated within the given timeframe.
        400:
          $ref: '#/components/responses/InvalidRequestErrorResponse'
        403:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
          description: Calling user is not allowed to access the specified repositories.
        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: Find repositories that were updated within the given timeframe.
      tags:
      - filter
      x-codegen-request-body-name: body
      x-openapi-router-controller: athenian.api.controllers.filter_controller
components:
  schemas:
    DeveloperSummary:
      additionalProperties: false
      description: Developer activity statistics and profile details.
      example:
        avatar: https://avatars0.githubusercontent.com/u/60340680?v=4
        login: github.com/gkwillie
        name: Groundskeeper Willie
        updates:
          prs: 4
          commit_author: 10
          commit_committer: 10
          commenter: 3
      properties:
        login:
          description: Developer's login name.
          example: github.com/gkwillie
          type: string
        name:
          description: Developer's full name.
          example: Groundskeeper Willie
          type:
          - string
          - 'null'
        avatar:
          description: Developer's avatar URL.
          example: https://avatars0.githubusercontent.com/u/60340680?v=4
          format: url
          type: string
        updates:
          $ref: '#/components/schemas/DeveloperUpdates'
        jira_user:
          description: Mapped JIRA user name.
          type: string
      required:
      - avatar
      - login
      - name
      - updates
      type: object
    FilterReleasesRequest:
      additionalProperties: false
      description: Filters for `/filter/releases`.
      example:
        account: 1
        date_from: 2020-01-23
        date_to: 2020-05-23
        in:
        - '{1}'
        - github.com/athenianco/athenian-webapp
        with:
          pr_author:
          - github.com/vmarkovtsev
      properties:
        account:
          description: Session account ID.
          type: integer
        date_from:
          description: Updates must be later than or equal to this date. An update is any action that influences the stage assignment.
          format: date
          type: string
        date_to:
          description: Updates must be earlier than or equal to this date. An update is any action that influences the stage assignment.
          format: date
          type: string
        timezone:
          $ref: '#/components/schemas/TimeZone'
        in:
          $ref: '#/components/schemas/RepositorySet'
        with:
          $ref: '#/components/schemas/ReleaseWith'
        labels_include:
          description: At least one of these labels must be present in at least one released PR.
          items:
            type: string
          type: array
        labels_exclude:
          description: PRs with these labels are excluded from `ReleaseSet.data.prs`.
          items:
            type: string
          type: array
        jira:
          $ref: '#/components/schemas/JIRAFilter'
      required:
      - account
      - date_from
      - date_to
      type: object
    DeveloperSet:
      description: A set of developers. An empty list disables the filter and includes everybody. Duplicates are automatically ignored.
      example:
      - github.com/vmarkovtsev
      - github.com/dpordomingo
      items:
        $ref: '#/components/schemas/DeveloperID'
      type: array
    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
    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
    FilteredCodeCheckRun:
      additionalProperties: false
      description: Mined information about a code check run.
      example:
        title: Unit tests
        repository: github.com/src-d/athenian-api
        last_execution_time: 2021-05-18 11:47:42+00:00
        last_execution_url: https://github.com/athenianco/athenian-api/pull/1448/checks?check_run_id=2610787628
        size_groups:
        - 3
        - 5
        - 8
        total_stats:
          count: 100
          successes: 50
          critical: true
          mean_execution_time: 200s
          stddev_execution_time: 20s
          median_execution_time: 120s
          skips: 30
          flaky_count: 0
          count_timeline:
          - 0
          - 20
          - 40
          - 30
          - 0
          - 10
          successes_timeline:
          - 0
          - 10
          - 20
          - 15
          - 0
          - 5
          mean_execution_time_timeline:
          - 110s
          - 160s
          - 210s
          - 205s
          - 120s
          - 180s
          median_execution_time_timeline:
          - 120s
          - 100s
          - 125s
          - 120s
          - 100s
          - 110s
        prs_stats:
          count: 100
          successes: 50
          critical: true
          mean_execution_time: 200s
          stddev_execution_time: 30s
          median_execution_time: 120s
          skips: 30
          flaky_count: 0
          count_timeline:
          - 0
          - 20
          - 40
          - 30
          - 0
          - 10
          successes_timeline:
          - 0
          - 10
          - 20
          - 15
          - 0
          - 5
          mean_execution_time_timeline:
          - 110s
          - 160s
          - 210s
          - 205s
          - 200s
          - 180s
          median_execution_time_timeline:
          - 120s
          - 100s
          - 125s
          - 120s
          - 190s
          - 110s
      properties:
        title:
          description: Unique name of the check run.
          type: string
        repository:
          $ref: '#/components/schemas/RepositoryID'
        last_execution_time:
          description: Timestamp of when the check run launched the latest.
          format: date-time
          type: string
        last_execution_url:
          description: Link to the check run that launched the latest.
          format: url
          type: string
        total_stats:
          allOf:
          - description: Gathered statistics for executions triggered by both direct commit pushes and pull requests.
          - $ref: '#/components/schemas/CodeCheckRunStatistics'
        prs_stats:
          allOf:
          - description: Gathered statistics for executions triggered by pull requests.
          - $ref: '#/components/schemas/CodeCheckRunStatistics'
        size_groups:
          description: Check suite sizes this check run belongs to.
          items:
            minimum: 1
            type: integer
          type: array
      required:
      - last_execution_time
      - prs_stats
      - repository
      - size_groups
      - title
      - total_stats
      type: object
    TimeDuration:
      description: Time duration value.
      pattern: ^\d+s$
      type: string
    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
      - crea

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