1
0
Fork 0
mirror of https://codeberg.org/forgejo/forgejo.git synced 2024-11-25 08:59:31 -05:00

API: enhance SearchIssues swagger docs (#32208)

this will result in better api clients generated out of the openapi docs
... for SearchIssues

---
*Sponsored by Kithara Software GmbH*

(cherry picked from commit d638067d3cb0a7f69b4d899f65b9be4940bd3e41)
This commit is contained in:
6543 2024-10-19 22:11:56 +02:00 committed by Gergely Nagy
parent f3f386545e
commit f4c2c401ec
No known key found for this signature in database
2 changed files with 73 additions and 36 deletions

View file

@ -41,80 +41,93 @@ func SearchIssues(ctx *context.APIContext) {
// parameters: // parameters:
// - name: state // - name: state
// in: query // in: query
// description: whether issue is open or closed // description: State of the issue
// type: string // type: string
// enum: [open, closed, all]
// default: open
// - name: labels // - name: labels
// in: query // in: query
// description: comma separated list of labels. Fetch only issues that have any of this labels. Non existent labels are discarded // description: Comma-separated list of label names. Fetch only issues that have any of these labels. Non existent labels are discarded.
// type: string // type: string
// - name: milestones // - name: milestones
// in: query // in: query
// description: comma separated list of milestone names. Fetch only issues that have any of this milestones. Non existent are discarded // description: Comma-separated list of milestone names. Fetch only issues that have any of these milestones. Non existent milestones are discarded.
// type: string // type: string
// - name: q // - name: q
// in: query // in: query
// description: search string // description: Search string
// type: string // type: string
// - name: priority_repo_id // - name: priority_repo_id
// in: query // in: query
// description: repository to prioritize in the results // description: Repository ID to prioritize in the results
// type: integer // type: integer
// format: int64 // format: int64
// - name: type // - name: type
// in: query // in: query
// description: filter by type (issues / pulls) if set // description: Filter by issue type
// type: string // type: string
// enum: [issues, pulls]
// - name: since // - name: since
// in: query // in: query
// description: Only show notifications updated after the given time. This is a timestamp in RFC 3339 format // description: Only show issues updated after the given time (RFC 3339 format)
// type: string // type: string
// format: date-time // format: date-time
// required: false
// - name: before // - name: before
// in: query // in: query
// description: Only show notifications updated before the given time. This is a timestamp in RFC 3339 format // description: Only show issues updated before the given time (RFC 3339 format)
// type: string // type: string
// format: date-time // format: date-time
// required: false
// - name: assigned // - name: assigned
// in: query // in: query
// description: filter (issues / pulls) assigned to you, default is false // description: Filter issues or pulls assigned to the authenticated user
// type: boolean // type: boolean
// default: false
// - name: created // - name: created
// in: query // in: query
// description: filter (issues / pulls) created by you, default is false // description: Filter issues or pulls created by the authenticated user
// type: boolean // type: boolean
// default: false
// - name: mentioned // - name: mentioned
// in: query // in: query
// description: filter (issues / pulls) mentioning you, default is false // description: Filter issues or pulls mentioning the authenticated user
// type: boolean // type: boolean
// default: false
// - name: review_requested // - name: review_requested
// in: query // in: query
// description: filter pulls requesting your review, default is false // description: Filter pull requests where the authenticated user's review was requested
// type: boolean // type: boolean
// default: false
// - name: reviewed // - name: reviewed
// in: query // in: query
// description: filter pulls reviewed by you, default is false // description: Filter pull requests reviewed by the authenticated user
// type: boolean // type: boolean
// default: false
// - name: owner // - name: owner
// in: query // in: query
// description: filter by owner // description: Filter by repository owner
// type: string // type: string
// - name: team // - name: team
// in: query // in: query
// description: filter by team (requires organization owner parameter to be provided) // description: Filter by team (requires organization owner parameter)
// type: string // type: string
// - name: page // - name: page
// in: query // in: query
// description: page number of results to return (1-based) // description: Page number of results to return (1-based)
// type: integer // type: integer
// minimum: 1
// default: 1
// - name: limit // - name: limit
// in: query // in: query
// description: page size of results // description: Number of items per page
// type: integer // type: integer
// minimum: 0
// responses: // responses:
// "200": // "200":
// "$ref": "#/responses/IssueList" // "$ref": "#/responses/IssueList"
// "400":
// "$ref": "#/responses/error"
// "422":
// "$ref": "#/responses/validationError"
before, since, err := context.GetQueryBeforeSince(ctx.Base) before, since, err := context.GetQueryBeforeSince(ctx.Base)
if err != nil { if err != nil {

View file

@ -4196,107 +4196,125 @@
"operationId": "issueSearchIssues", "operationId": "issueSearchIssues",
"parameters": [ "parameters": [
{ {
"enum": [
"open",
"closed",
"all"
],
"type": "string", "type": "string",
"description": "whether issue is open or closed", "default": "open",
"description": "State of the issue",
"name": "state", "name": "state",
"in": "query" "in": "query"
}, },
{ {
"type": "string", "type": "string",
"description": "comma separated list of labels. Fetch only issues that have any of this labels. Non existent labels are discarded", "description": "Comma-separated list of label names. Fetch only issues that have any of these labels. Non existent labels are discarded.",
"name": "labels", "name": "labels",
"in": "query" "in": "query"
}, },
{ {
"type": "string", "type": "string",
"description": "comma separated list of milestone names. Fetch only issues that have any of this milestones. Non existent are discarded", "description": "Comma-separated list of milestone names. Fetch only issues that have any of these milestones. Non existent milestones are discarded.",
"name": "milestones", "name": "milestones",
"in": "query" "in": "query"
}, },
{ {
"type": "string", "type": "string",
"description": "search string", "description": "Search string",
"name": "q", "name": "q",
"in": "query" "in": "query"
}, },
{ {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"description": "repository to prioritize in the results", "description": "Repository ID to prioritize in the results",
"name": "priority_repo_id", "name": "priority_repo_id",
"in": "query" "in": "query"
}, },
{ {
"enum": [
"issues",
"pulls"
],
"type": "string", "type": "string",
"description": "filter by type (issues / pulls) if set", "description": "Filter by issue type",
"name": "type", "name": "type",
"in": "query" "in": "query"
}, },
{ {
"type": "string", "type": "string",
"format": "date-time", "format": "date-time",
"description": "Only show notifications updated after the given time. This is a timestamp in RFC 3339 format", "description": "Only show issues updated after the given time (RFC 3339 format)",
"name": "since", "name": "since",
"in": "query" "in": "query"
}, },
{ {
"type": "string", "type": "string",
"format": "date-time", "format": "date-time",
"description": "Only show notifications updated before the given time. This is a timestamp in RFC 3339 format", "description": "Only show issues updated before the given time (RFC 3339 format)",
"name": "before", "name": "before",
"in": "query" "in": "query"
}, },
{ {
"type": "boolean", "type": "boolean",
"description": "filter (issues / pulls) assigned to you, default is false", "default": false,
"description": "Filter issues or pulls assigned to the authenticated user",
"name": "assigned", "name": "assigned",
"in": "query" "in": "query"
}, },
{ {
"type": "boolean", "type": "boolean",
"description": "filter (issues / pulls) created by you, default is false", "default": false,
"description": "Filter issues or pulls created by the authenticated user",
"name": "created", "name": "created",
"in": "query" "in": "query"
}, },
{ {
"type": "boolean", "type": "boolean",
"description": "filter (issues / pulls) mentioning you, default is false", "default": false,
"description": "Filter issues or pulls mentioning the authenticated user",
"name": "mentioned", "name": "mentioned",
"in": "query" "in": "query"
}, },
{ {
"type": "boolean", "type": "boolean",
"description": "filter pulls requesting your review, default is false", "default": false,
"description": "Filter pull requests where the authenticated user's review was requested",
"name": "review_requested", "name": "review_requested",
"in": "query" "in": "query"
}, },
{ {
"type": "boolean", "type": "boolean",
"description": "filter pulls reviewed by you, default is false", "default": false,
"description": "Filter pull requests reviewed by the authenticated user",
"name": "reviewed", "name": "reviewed",
"in": "query" "in": "query"
}, },
{ {
"type": "string", "type": "string",
"description": "filter by owner", "description": "Filter by repository owner",
"name": "owner", "name": "owner",
"in": "query" "in": "query"
}, },
{ {
"type": "string", "type": "string",
"description": "filter by team (requires organization owner parameter to be provided)", "description": "Filter by team (requires organization owner parameter)",
"name": "team", "name": "team",
"in": "query" "in": "query"
}, },
{ {
"minimum": 1,
"type": "integer", "type": "integer",
"description": "page number of results to return (1-based)", "default": 1,
"description": "Page number of results to return (1-based)",
"name": "page", "name": "page",
"in": "query" "in": "query"
}, },
{ {
"minimum": 0,
"type": "integer", "type": "integer",
"description": "page size of results", "description": "Number of items per page",
"name": "limit", "name": "limit",
"in": "query" "in": "query"
} }
@ -4304,6 +4322,12 @@
"responses": { "responses": {
"200": { "200": {
"$ref": "#/responses/IssueList" "$ref": "#/responses/IssueList"
},
"400": {
"$ref": "#/responses/error"
},
"422": {
"$ref": "#/responses/validationError"
} }
} }
} }