-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbatch_commit.json
More file actions
125 lines (125 loc) · 4.1 KB
/
batch_commit.json
File metadata and controls
125 lines (125 loc) · 4.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "@rethunk/mcp-multi-root-git: batch_commit",
"description": "Parameter schema for the 'batch_commit' MCP tool.",
"type": "object",
"properties": {
"workspaceRoot": {
"description": "Highest-priority override.",
"type": "string"
},
"rootIndex": {
"description": "0-based index into the MCP file roots list; ignored when workspaceRoot is set.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"allWorkspaceRoots": {
"default": false,
"description": "Fan out across all MCP file roots.",
"type": "boolean"
},
"format": {
"default": "markdown",
"type": "string",
"enum": [
"markdown",
"json"
]
},
"commits": {
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "object",
"properties": {
"message": {
"type": "string",
"minLength": 1,
"description": "Commit message."
},
"files": {
"minItems": 1,
"type": "array",
"items": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "object",
"properties": {
"path": {
"type": "string",
"minLength": 1,
"description": "File path relative to git root."
},
"lines": {
"type": "object",
"properties": {
"from": {
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991,
"description": "Start line number (1-indexed)."
},
"to": {
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991,
"description": "End line number (1-indexed, inclusive)."
}
},
"required": [
"from",
"to"
],
"additionalProperties": false,
"description": "Line range to stage. Only hunks overlapping [from, to] are staged."
}
},
"required": [
"path",
"lines"
],
"additionalProperties": false
}
]
},
"description": "Paths to stage, relative to the git root. Each can be a string path or { path, lines } for hunk-level staging. Deleted files (missing on disk but tracked in HEAD) are staged as removals via `git rm --cached`. Combining { path, lines } with a deleted file is an error."
}
},
"required": [
"message",
"files"
],
"additionalProperties": false
},
"description": "Commits to create, applied in order."
},
"push": {
"default": "never",
"description": "`never` (default): no push. `after`: push the current branch to its upstream once all commits succeed; fails with `push_no_upstream` if the branch has no upstream (commits are NOT rolled back). Enum reserved for future modes such as `force-with-lease`.",
"type": "string",
"enum": [
"never",
"after"
]
},
"dryRun": {
"default": false,
"description": "When true, stage files, collect preview (files staged, commit messages), return preview response without writing commits. Unstages any files that were staged for the preview. Response indicates DRY RUN mode.",
"type": "boolean"
}
},
"required": [
"allWorkspaceRoots",
"format",
"commits",
"push",
"dryRun"
],
"additionalProperties": false
}