aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenys Konovalov <kontakt@denyskon.de>2023-06-07 17:49:58 +0200
committerGitHub <noreply@github.com>2023-06-07 23:49:58 +0800
commiteac1bddb8da2e26a3f6d6678b9888c65418cf318 (patch)
tree7e004c97853bc03c780cdf511ff58ec58498d690
parent027014d7de19a566cde306c868a31895903d00d5 (diff)
downloadgitea-1.20.0-rc0.tar.gz
gitea-1.20.0-rc0.zip
fix swagger documentation for multiple files API endpoint (#25110)v1.20.0-rc0
Fixes some issues with the swagger documentation for the new multiple files API endpoint (#24887) which were overlooked when submitting the original PR: 1. add some missing parameter descriptions 2. set correct `required` option for required parameters 3. change endpoint description to match it full functionality (every kind of file modification is supported, not just creating and updating)
-rw-r--r--modules/structs/repo_file.go10
-rw-r--r--routers/api/v1/repo/file.go4
-rw-r--r--templates/swagger/v1_json.tmpl12
3 files changed, 16 insertions, 10 deletions
diff --git a/modules/structs/repo_file.go b/modules/structs/repo_file.go
index 6ca0e1c101..48fcebe6f8 100644
--- a/modules/structs/repo_file.go
+++ b/modules/structs/repo_file.go
@@ -71,11 +71,11 @@ type ChangeFileOperation struct {
// enum: create,update,delete
Operation string `json:"operation" binding:"Required"`
// path to the existing or new file
- Path string `json:"path" binding:"MaxSize(500)"`
- // content must be base64 encoded
// required: true
+ Path string `json:"path" binding:"Required;MaxSize(500)"`
+ // new or updated file content, must be base64 encoded
Content string `json:"content"`
- // sha is the SHA for the file that already exists, required for update, delete
+ // sha is the SHA for the file that already exists, required for update or delete
SHA string `json:"sha"`
// old path of the file to move
FromPath string `json:"from_path"`
@@ -85,7 +85,9 @@ type ChangeFileOperation struct {
// Note: `author` and `committer` are optional (if only one is given, it will be used for the other, otherwise the authenticated user will be used)
type ChangeFilesOptions struct {
FileOptions
- Files []*ChangeFileOperation `json:"files"`
+ // list of file operations
+ // required: true
+ Files []*ChangeFileOperation `json:"files" binding:"Required"`
}
// Branch returns branch name
diff --git a/routers/api/v1/repo/file.go b/routers/api/v1/repo/file.go
index ae0d31c2a6..e25def6df2 100644
--- a/routers/api/v1/repo/file.go
+++ b/routers/api/v1/repo/file.go
@@ -408,11 +408,11 @@ func canReadFiles(r *context.Repository) bool {
return r.Permission.CanRead(unit.TypeCode)
}
-// ChangeFiles handles API call for creating or updating multiple files
+// ChangeFiles handles API call for modifying multiple files
func ChangeFiles(ctx *context.APIContext) {
// swagger:operation POST /repos/{owner}/{repo}/contents repository repoChangeFiles
// ---
- // summary: Create or update multiple files in a repository
+ // summary: Modify multiple files in a repository
// consumes:
// - application/json
// produces:
diff --git a/templates/swagger/v1_json.tmpl b/templates/swagger/v1_json.tmpl
index 75492ab631..e78c077fc3 100644
--- a/templates/swagger/v1_json.tmpl
+++ b/templates/swagger/v1_json.tmpl
@@ -4074,7 +4074,7 @@
"tags": [
"repository"
],
- "summary": "Create or update multiple files in a repository",
+ "summary": "Modify multiple files in a repository",
"operationId": "repoChangeFiles",
"parameters": [
{
@@ -15947,11 +15947,11 @@
"type": "object",
"required": [
"operation",
- "content"
+ "path"
],
"properties": {
"content": {
- "description": "content must be base64 encoded",
+ "description": "new or updated file content, must be base64 encoded",
"type": "string",
"x-go-name": "Content"
},
@@ -15976,7 +15976,7 @@
"x-go-name": "Path"
},
"sha": {
- "description": "sha is the SHA for the file that already exists, required for update, delete",
+ "description": "sha is the SHA for the file that already exists, required for update or delete",
"type": "string",
"x-go-name": "SHA"
}
@@ -15986,6 +15986,9 @@
"ChangeFilesOptions": {
"description": "ChangeFilesOptions options for creating, updating or deleting multiple files\nNote: `author` and `committer` are optional (if only one is given, it will be used for the other, otherwise the authenticated user will be used)",
"type": "object",
+ "required": [
+ "files"
+ ],
"properties": {
"author": {
"$ref": "#/definitions/Identity"
@@ -16002,6 +16005,7 @@
"$ref": "#/definitions/CommitDateOptions"
},
"files": {
+ "description": "list of file operations",
"type": "array",
"items": {
"$ref": "#/definitions/ChangeFileOperation"