openapi: 3.0.1 info: title: Code Climate Quality Issues Repositories API description: 'The Code Climate Quality REST API (v1) complies with REST conventions and the JSON API specification. It exposes organizations, repositories, maintainability and test-coverage analysis, snapshots, and issues. Authenticated calls require an Authorization header carrying a personal access token in the form `Authorization: Token token={TOKEN}`.' termsOfService: https://codeclimate.com/terms contact: name: Code Climate Support email: hello@codeclimate.com version: v1 servers: - url: https://api.codeclimate.com/v1 security: - TokenAuth: [] tags: - name: Repositories paths: /orgs/{org_id}/repos: get: operationId: listOrgRepos tags: - Repositories summary: List repositories in an organization parameters: - $ref: '#/components/parameters/OrgId' - name: page[number] in: query required: false schema: type: integer description: Page number for paginated results. - name: github_slug in: query required: false schema: type: string description: Filter repositories by GitHub slug (owner/name). responses: '200': description: OK content: application/vnd.api+json: schema: $ref: '#/components/schemas/RepoCollection' post: operationId: createRepo tags: - Repositories summary: Add a private repository to an organization parameters: - $ref: '#/components/parameters/OrgId' requestBody: required: true content: application/vnd.api+json: schema: $ref: '#/components/schemas/RepoCreateRequest' responses: '201': description: Created content: application/vnd.api+json: schema: $ref: '#/components/schemas/RepoDocument' /orgs/{org_id}/repos/{repo_id}: put: operationId: updateRepo tags: - Repositories summary: Update a repository parameters: - $ref: '#/components/parameters/OrgId' - $ref: '#/components/parameters/RepoId' requestBody: required: true content: application/vnd.api+json: schema: $ref: '#/components/schemas/RepoUpdateRequest' responses: '200': description: OK content: application/vnd.api+json: schema: $ref: '#/components/schemas/RepoDocument' /repos: get: operationId: getRepoBySlug tags: - Repositories summary: Look up a repository by GitHub slug parameters: - name: github_slug in: query required: true schema: type: string description: GitHub slug in the form owner/name. responses: '200': description: OK content: application/vnd.api+json: schema: $ref: '#/components/schemas/RepoCollection' /repos/{repo_id}: get: operationId: getRepo tags: - Repositories summary: Get a repository parameters: - $ref: '#/components/parameters/RepoId' responses: '200': description: OK content: application/vnd.api+json: schema: $ref: '#/components/schemas/RepoDocument' components: schemas: ResourceIdentifier: type: object properties: id: type: string type: type: string RepoUpdateRequest: type: object properties: data: type: object properties: type: type: string example: repos attributes: type: object RepoDocument: type: object properties: data: $ref: '#/components/schemas/Repo' Repo: type: object properties: id: type: string type: type: string example: repos attributes: type: object properties: human_name: type: string github_slug: type: string url: type: string score: type: string last_activity_at: type: string format: date-time relationships: type: object properties: latest_default_branch_snapshot: type: object properties: data: $ref: '#/components/schemas/ResourceIdentifier' latest_default_branch_test_report: type: object properties: data: $ref: '#/components/schemas/ResourceIdentifier' RepoCollection: type: object properties: data: type: array items: $ref: '#/components/schemas/Repo' RepoCreateRequest: type: object properties: data: type: object properties: type: type: string example: repos attributes: type: object properties: url: type: string description: Git URL of the private repository to add. parameters: OrgId: name: org_id in: path required: true description: The organization identifier. schema: type: string RepoId: name: repo_id in: path required: true description: The repository identifier. schema: type: string securitySchemes: TokenAuth: type: apiKey in: header name: Authorization description: 'Personal access token passed as `Authorization: Token token={TOKEN}`.'