Athenian default API

The default API from Athenian — 70 operation(s) for default.

OpenAPI Specification

athenian-default-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 default API'
  version: 2.1.86
servers:
- description: '{{ server_description }} - {{ server_url }}'
  url: '{{ server_url }}/v1'
tags:
- name: default
paths:
  /account/user:
    put:
      operationId: change_user
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountUserChangeRequest'
        x-body-name: body
      responses:
        200:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Account'
          description: Effective account members.
        403:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
          description: Requesting user is not an admin of the account.
        404:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
          description: The account was not found.
      security:
      - bearerAuth: []
      summary: '🛡️👤 Change the status of an account member: regular, admin, or banished (deleted). This endpoint is allowed only for account admins.'
      tags:
      - default
      x-codegen-request-body-name: body
      x-openapi-router-controller: athenian.api.controllers.user_controller
  /account/{id}/details:
    get:
      operationId: get_account_details
      parameters:
      - description: Numeric identifier of the account. The user must belong to that account. To find out which accounts the user belongs to, see `/user`.
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: integer
        style: simple
      responses:
        200:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Account'
          description: List of the account members and installed GitHub and JIRA organizations.
        403:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
          description: The user does not have access to this account.
        404:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
          description: The account was not found.
      security:
      - bearerAuth: []
      - apiKeyAuth: []
      summary: List the calling user's account members and installed GitHub and JIRA organizations.
      tags:
      - default
      x-codegen-request-body-name: body
      x-openapi-router-controller: athenian.api.controllers.user_controller
  /account/{id}/features:
    get:
      operationId: get_account_features
      parameters:
      - description: Numeric identifier of the account. The user must belong to that account. To find out which accounts the user belongs to, see `/user`.
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: integer
        style: simple
      responses:
        200:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductFeatures'
          description: List of the enabled product features for the account.
        403:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
          description: The user does not have access to this account.
        404:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
          description: The account was not found.
      security:
      - bearerAuth: []
      - apiKeyAuth: []
      summary: List the product features enabled for the account.
      tags:
      - default
      x-codegen-request-body-name: body
      x-openapi-router-controller: athenian.api.controllers.user_controller
  /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:
      - default
      x-codegen-request-body-name: body
      x-openapi-router-controller: athenian.api.controllers.filter_controller
  /events/clear_cache:
    post:
      operationId: clear_precomputed_events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeleteEventsCacheRequest'
        x-body-name: body
      responses:
        200:
          content:
            application/json:
              schema:
                enum:
                - {}
                type: object
          description: Empty response indicates a successful operation.
        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 user does not belong to the specified account.
        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: Reset the precomputed data related to the pushed events.
      tags:
      - default
      x-codegen-request-body-name: body
      x-openapi-router-controller: athenian.api.controllers.events_controller
  /events/deployments:
    post:
      operationId: notify_deployments
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NotifyDeploymentsRequest'
        x-body-name: body
      responses:
        200:
          content:
            application/json:
              schema:
                properties:
                  deployments:
                    $ref: '#/components/schemas/NotifiedDeployments'
                required:
                - deployments
                type: object
          description: Details about the accepted deployment notifications.
        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:
      - apiKeyAuth: []
      summary: Notify about new deployments.
      tags:
      - default
      x-codegen-request-body-name: body
      x-openapi-router-controller: athenian.api.controllers.events_controller
  /events/deployment/{name}/labels:
    parameters:
    - description: Name of the deployment.
      in: path
      name: name
      required: true
      schema:
        type: string
      style: simple
    get:
      operationId: get_deployment_labels
      responses:
        200:
          $ref: '#/components/responses/DeploymentLabelsResponse'
        404:
          $ref: '#/components/responses/DeploymentNotFoundResponse'
      security:
      - apiKeyAuth: []
      tags:
      - default
      summary: Retrieve the labels associated with the deployment.
      x-openapi-router-controller: athenian.api.controllers.events_controller
    patch:
      operationId: modify_deployment_labels
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeploymentModifyLabelsRequest'
        x-body-name: body
      responses:
        200:
          $ref: '#/components/responses/DeploymentLabelsResponse'
        400:
          $ref: '#/components/responses/InvalidRequestErrorResponse'
        404:
          $ref: '#/components/responses/DeploymentNotFoundResponse'
      security:
      - apiKeyAuth: []
      summary: 'Modify the labels for the deployment applying the given instructions.

        '
      tags:
      - default
      x-codegen-request-body-name: body
      x-openapi-router-controller: athenian.api.controllers.events_controller
  /events/releases:
    post:
      operationId: notify_releases
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NotifyReleasesRequest'
        x-body-name: body
      responses:
        200:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotifyReleasesResponse'
          description: Summary of the accepted and the rejected releases.
        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:
      - apiKeyAuth: []
      summary: Notify about new releases. The release settings must be set to "event".
      tags:
      - default
      x-codegen-request-body-name: body
      x-openapi-router-controller: athenian.api.controllers.events_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:
      - default
      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:
      - default
      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:
      - default
      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:
      - default
      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:
      - default
      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:
      - default
      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:
      - default
      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:
      - default
      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:
      - default
      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:
      - default
      x-codegen-request-body-name: body
      x-openapi-router-controller: athenian.api.controllers.filter_controller
  /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:
      - default
      x-codegen-request-body-name: body
      x-openapi-router-controller: athenian.api.controllers.contributors_controller
  /get/export:
    get:
      operationId: get_everything
      parameters:
      - description: Numeric identifier of the account. Raises HTTP 400 if the user belongs to more than one account.
        explode: false
        in: query
        name: account
        required: false
        schema:
          type: integer
        style: form
      - description: Output file format. The default is `parquet`.
        explode: false
        in: query
        name: format
        required: false
        schema:
          enum:
          - parquet
          type: string
        style: form
      responses:
        200:
          content:
            application/zip:
              schema:
                format: binary
                type: string
          description: Uncompressed ZIP archive with binary files in the configured format.
        400:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvalidRequestError'
          description: Invalid query parameter values.
        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: Download all the data collected by Athenian for custom analysis.
      tags:
      - default
      x-openapi-router-controller: athenian.api.controllers.integrations_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:
     

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