Athenian filter API

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

OpenAPI Specification

athenian-filter-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 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:
    FilterJIRAStuff:
      additionalProperties: false
      description: Request of `/filter/jira` to retrieve epics, labels, types, priorities, users, etc.
      example:
        account: 1
        date_from: 2020-01-01
        date_to: 2020-12-01
        timezone: 120
        exclude_inactive: true
      properties:
        account:
          description: Session account ID.
          type: integer
        date_from:
          description: '`null` disables the time filter boundary, thus everything is returned. `date_from` and `date_to` must be both either `null` or not `null`.'
          format: date
          nullable: true
          type: string
        date_to:
          description: '`null` disables the time filter boundary, thus everything is returned. `date_from` and `date_to` must be both either `null` or not `null`.'
          format: date
          nullable: true
          type: string
        timezone:
          $ref: '#/components/schemas/TimeZone'
        priorities:
          description: Selected issue priorities.
          items:
            type: string
          type: array
        types:
          description: Selected issue types. Ignored for epics.
          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
        with:
          allOf:
          - description: JIRA issue participants.
          - $ref: '#/components/schemas/JIRAFilterWith'
          type: object
        projects:
          description: Issues must belong to these JIRA projects.
          items:
            example: DEV
            type: string
          type: array
        return:
          description: Specifies which items are required, an empty or missing array means everything.
          items:
            $ref: '#/components/schemas/JIRAFilterReturn'
          type: array
      required:
      - account
      - date_from
      - date_to
      - exclude_inactive
      type: object
    FilteredEnvironment:
      additionalProperties: false
      description: Details about a deployment environment.
      example:
        deployments_count: 100
        last_conclusion: SUCCESS
        name: production
        repositories:
        - github.com/athenianco/athenian-api
        - github.com/athenianco/athenian-webapp
      properties:
        deployments_count:
          description: Number of deployments (successful or not) in the specified time interval.
          minimum: 1
          type: integer
        last_conclusion:
          allOf:
          - $ref: '#/components/schemas/DeploymentConclusion'
          - description: The conclusion of the most recent deployment before `date_to`.
        name:
          description: Name of the environment.
          type: string
        repositories:
          allOf:
          - $ref: '#/components/schemas/RepositorySet'
          - description: List of repositories which had at least one deployment between date_from and date_to.
      required:
      - deployments_count
      - last_conclusion
      - name
      - repositories
      type: object
    FilterEnvironmentsRequest:
      additionalProperties: false
      description: Request body of `/filter/environments`. Filters for deployment environments.
      example:
        repositories:
        - github.com/athenianco/athenian-api
        - github.com/athenianco/athenian-webapp
        date_to: 2022-02-23
        account: 1
        date_from: 2022-01-23
      properties:
        account:
          description: Account ID.
          type: integer
        repositories:
          allOf:
          - $ref: '#/components/schemas/RepositorySet'
          - description: 'At least one repository in the list must be deployed in `[date_from, date_to)`.

              '
        date_from:
          description: Date from when to start looking for deployments.
          format: date
          type: string
        date_to:
          description: Date until which to look for deployments.
          format: date
          type: string
        timezone:
          $ref: '#/components/schemas/TimeZone'
      required:
      - account
      - date_from
      - date_to
      type: object
    TimeDuration:
      description: Time duration value.
      pattern: ^\d+s$
      type: string
    NoSourceDataError:
      $ref: '#/components/schemas/GenericError'
    FilteredLabels:
      description: List of labels.
      example:
      - name: bug
        color: ff0000
        used_prs: 100
      - name: enhancement
        description: New project feature.
        color: 00ff00
        used_prs: 200
      items:
        $ref: '#/components/schemas/FilteredLabel'
      type: array
    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
    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
    CommitsList:
      additionalProperties: false
      description: List of commits metadata and related user details.
      example:
        include:
          users:
            github.com/gkwillie:
              avatar: https://avatars0.githubusercontent.com/u/60340680?v=4
        data:
        - repository: github.com/athenianco/athenian-api
          hash: 79f0bccb856b35ef08ec93da2ff5585da4d2e50e
          author:
            login: github.com/gkwillie
            name: Groundskeeper Willie
            email: bot@athenian.co
            timestamp: 2020-02-25 14:27:21+00:00
            timezone: 1.0
          committer:
            login: github.com/gkwillie
            name: Groundskeeper Willie
            email: bot@athenian.co
            timestamp: 2020-02-25 14:27:21+00:00
            timezone: 1.0
          message: 'Bump version: 0.0.42 → 0.0.43'
          size_added: 1
          size_removed: 1
          files_changed: 1
        - repository: github.com/athenianco/athenian-api
          hash: 0d13a3e021fe4219915ba97ea07e465e429a621f
          author:
            login: github.com/gkwillie
            name: Groundskeeper Willie
            email: bot@athenian.co
            timestamp: 2020-03-20 10:06:49+00:00
            timezone: 1.0
          committer:
            login: github.com/gkwillie
            name: Groundskeeper Willie
            email: bot@athenian.co
            timestamp: 2020-03-20 10:06:49+00:00
            timezone: 1.0
          message: 'Bump version: 0.0.78 → 0.0.79'
          size_added: 1
          size_removed: 1
          files_changed: 1
      properties:
        data:
          items:
            $ref: '#/components/schemas/Commit'
          type: array
        include:
          allOf:
          - $ref: '#/components/schemas/IncludedDeployments'
          - $ref: '#/components/schemas/IncludedNativeUsers'
      required:
      - data
      - include
      type: object
    JIRALabel:
      additionalProperties: false
      description: Details about a JIRA label.
      example:
        title: performance
        last_used: 2020-08-10 12:47:00+00:00
        issues_count: 300
        kind: Label
      properties:
        title:
          type: string
        last_used:
          description: When this label was last assigned to an issue.
          format: date-time
          type: string
        issues_count:
          description: In how many issues (in the specified time interval) this label was used.
          type: integer
        kind:
          description: Label kind - "Label", "Component", etc.
          type: string
      required:
      - issues_count
      - last_used
      - title
      type: object
    FilterLabelsRequest:
      additionalProperties: false
      description: Request body of `/filter/labels`. Defines the account and the repositories where to look for the labels.
      example:
        account: 1
        repositories:
        - github.com/athenianco/athenian-api
        - github.com/athenianco/athenian-webapp
      properties:
        account:
          description: Account ID.
          type: integer
        repositories:
          $ref: '#/components/schemas/RepositorySet'
      required:
      - account
      type: object
    FilteredLabel:
      additionalProperties: false
      description: Details about a label and some basic stats.
      example:
        name: bug
        color: ff0000
        used_prs: 100
      properties:
        name:
          type: string
        description:
          type: string
        color:
          $ref: '#/components/schemas/Color'
        used_prs:
          minimum: 0
          type: integer
      required:
      - color
      - name
      - used_prs
      type: object
    LinkedJIRAIssue:
      additionalProperties: false
      description: Brief details about a JIRA issue.
      example:
        id: DEV-344
        title: Write the API specs to filter PRs by Jira epic, ticket type and label
        epic: DEV-149
        labels:
        - API
        type: task
      properties:
        id:
          description: JIRA issue key `PROJECT-###`.
          type: string
        title:
          description: Title of this issue.
          type: string
        epic:
          description: Identifier of the epic that owns this issue.
          type: string
        labels:
          description: List of JIRA labels in this issue.
          items:
            type: string
          type: array
        type:
          description: Type of this issue.
          type: string
      required:
      - id
      - title
      - type
      type: object
    JIRAComment:
      additionalProperties: false
      properties:
        author:
          description: The name of the user who created the comment.
          type: string
        created:
          description: The date and time at which the comment was created.
          format: date-time
          type: string
        rendered_body:
          description: The comment text.
          type: string
      required:
      - author
      - created
      - rendered_body
      type: object
    PullRequestLabel:
      additionalProperties: false
      description: Pull request label.
      example:
        name: bug
        color: fc2929
      properties:
        name:
          type: string
        description:
          type: string
        color:
          $ref: '#/components/schemas/Color'
      required:
      - color
      - name
      type: object
    ReleaseWith:
      additionalProperties: false
      description: 'Release contribution roles. The aggregation is `OR` everywhere.

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

        '
      example:
        pr_author:
        - github.com/se7entyse7en
        releaser:
        - github.com/gkwillie
      properties:
        pr_author:
          allOf:
          - $ref: '#/components/schemas/DeveloperSet'
          - description: Authors of released pull requests.
        commit_author:
          allOf:
          - $ref: '#/components/schemas/DeveloperSet'
          - description: Authors of relea

# --- 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