{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "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"
    },
    "branch": {
      "description": "branch (optional) to base this file from. if not given, the default branch is used",
      "type": "string",
      "x-go-name": "BranchName"
    },
    "committer": {
      "$ref": "#/definitions/Identity"
    },
    "dates": {
      "$ref": "#/definitions/CommitDateOptions"
    },
    "files": {
      "description": "list of file operations",
      "type": "array",
      "items": {
        "$ref": "#/definitions/ChangeFileOperation"
      },
      "x-go-name": "Files"
    },
    "force_overwrite_new_branch": {
      "description": "(optional) will do a force-push if the new branch already exists",
      "type": "boolean",
      "x-go-name": "ForceOverwriteNewBranch"
    },
    "message": {
      "description": "message (optional) for the commit of this file. if not supplied, a default message will be used",
      "type": "string",
      "x-go-name": "Message"
    },
    "new_branch": {
      "description": "new_branch (optional) will make a new branch from `branch` before creating the file",
      "type": "string",
      "x-go-name": "NewBranchName"
    },
    "signoff": {
      "description": "Add a Signed-off-by trailer by the committer at the end of the commit log message.",
      "type": "boolean",
      "x-go-name": "Signoff"
    }
  },
  "x-go-package": "forgejo.org/modules/structs"
}