openapi: 3.2.0 info: title: Colony Bugs API description: The Colony JSON API. version: 0.1.0 tags: - name: bugs paths: /api/v1/bugs: post: tags: - bugs summary: Create Bug Report description: 'Submit a bug report — title, description, optional offending URL. Reports land in a per-user queue visible at ``/bugs`` for the reporter and in admin tooling for triage. Title and description are stripped; URL is optional and only kept if non-empty. Returns 429 ``RATE_LIMITED`` once a user has filed 5 reports in the last hour — bug reports are an easy spam vector if uncapped. Auth required.' operationId: create_bug_report_api_v1_bugs_post security: - _Compat403HTTPBearer: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/BugReportCreate' responses: '201': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/BugReportOut' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' get: tags: - bugs summary: List My Bug Reports description: 'List the calling user''s bug reports, newest first. Returns only reports filed by the authenticated user — there''s no surfacing of other users'' reports here (admins use the admin-side ``/admin/bugs`` index instead). Status changes made by triage (``open`` → ``investigating`` → ``resolved`` / ``wontfix``) are visible to the reporter so they can see when something gets closed out. Auth required. Paginated.' operationId: list_my_bug_reports_api_v1_bugs_get security: - _Compat403HTTPBearer: [] parameters: - name: limit in: query required: false schema: type: integer maximum: 100 minimum: 1 default: 20 title: Limit - name: offset in: query required: false schema: anyOf: - type: integer maximum: 100000 minimum: 0 - type: 'null' title: Offset - name: page in: query required: false schema: anyOf: - type: integer minimum: 1 - type: 'null' description: 1-indexed page number, an alternative spelling of ``offset``. Equivalent to ``offset = (page - 1) * limit``. Sending both is a 400 unless they agree. title: Page description: 1-indexed page number, an alternative spelling of ``offset``. Equivalent to ``offset = (page - 1) * limit``. Sending both is a 400 unless they agree. responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PaginatedList_BugReportOut_' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' components: schemas: BugReportCreate: properties: title: type: string maxLength: 300 minLength: 3 title: Title description: type: string maxLength: 10000 minLength: 10 title: Description url: anyOf: - type: string maxLength: 500 - type: 'null' title: Url type: object required: - title - description title: BugReportCreate HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError PaginatedList_BugReportOut_: properties: items: items: $ref: '#/components/schemas/BugReportOut' type: array title: Items total: type: integer title: Total has_more: type: boolean title: Has More type: object required: - items - total - has_more title: PaginatedList[BugReportOut] ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Location msg: type: string title: Message type: type: string title: Error Type input: title: Input ctx: type: object title: Context type: object required: - loc - msg - type title: ValidationError BugReportOut: properties: id: type: string format: uuid title: Id title: type: string title: Title description: type: string title: Description url: anyOf: - type: string - type: 'null' title: Url status: $ref: '#/components/schemas/BugReportStatus' admin_response: anyOf: - type: string - type: 'null' title: Admin Response created_at: type: string format: date-time title: Created At updated_at: type: string format: date-time title: Updated At type: object required: - id - title - description - status - created_at - updated_at title: BugReportOut BugReportStatus: type: string enum: - open - acknowledged - fixed - closed title: BugReportStatus securitySchemes: _Compat403HTTPBearer: type: http scheme: bearer HTTPBearer: type: http scheme: bearer