ralph-hero-mcp-server 2.4.76 → 2.4.80
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -160,7 +160,12 @@ export function registerBatchTools(server, client, fieldCache) {
|
|
|
160
160
|
field: z
|
|
161
161
|
.enum(["workflow_state", "estimate", "priority"])
|
|
162
162
|
.describe("Field to update"),
|
|
163
|
-
value: z.string().describe("Target value
|
|
163
|
+
value: z.string().describe("Target value. " +
|
|
164
|
+
"For workflow_state: Backlog, Research Needed, Research in Progress, Ready for Plan, " +
|
|
165
|
+
"Plan in Progress, Plan in Review, In Progress, In Review, Done, Human Needed, Canceled. " +
|
|
166
|
+
"For estimate: XS, S, M, L, XL. " +
|
|
167
|
+
"For priority: P0, P1, P2, P3. " +
|
|
168
|
+
"Note: 'Todo' is a Status field value, NOT a valid workflow state."),
|
|
164
169
|
}))
|
|
165
170
|
.min(1)
|
|
166
171
|
.max(MAX_OPERATIONS)
|
|
@@ -50,6 +50,11 @@ export function registerIssueTools(server, client, fieldCache) {
|
|
|
50
50
|
.optional()
|
|
51
51
|
.describe("Filter by Priority (P0, P1, P2, P3)"),
|
|
52
52
|
label: z.string().optional().describe("Filter by label name"),
|
|
53
|
+
repoFilter: z
|
|
54
|
+
.string()
|
|
55
|
+
.optional()
|
|
56
|
+
.describe("Filter items to only those from the specified repository. " +
|
|
57
|
+
"Accepts 'name' or 'owner/name' format. Case-insensitive."),
|
|
53
58
|
query: z.string().optional().describe("Additional search query string"),
|
|
54
59
|
state: z
|
|
55
60
|
.enum(["OPEN", "CLOSED"])
|
|
@@ -148,6 +153,7 @@ export function registerIssueTools(server, client, fieldCache) {
|
|
|
148
153
|
updatedAt
|
|
149
154
|
labels(first: 10) { nodes { name } }
|
|
150
155
|
assignees(first: 5) { nodes { login } }
|
|
156
|
+
repository { name nameWithOwner }
|
|
151
157
|
}
|
|
152
158
|
}
|
|
153
159
|
fieldValues(first: 20) {
|
|
@@ -203,6 +209,19 @@ export function registerIssueTools(server, client, fieldCache) {
|
|
|
203
209
|
return labels.some((l) => l.name === args.label);
|
|
204
210
|
});
|
|
205
211
|
}
|
|
212
|
+
// Filter by repository
|
|
213
|
+
if (args.repoFilter) {
|
|
214
|
+
const rf = args.repoFilter.toLowerCase();
|
|
215
|
+
const useFullName = rf.includes("/");
|
|
216
|
+
items = items.filter((item) => {
|
|
217
|
+
const content = item.content;
|
|
218
|
+
const repo = content?.repository;
|
|
219
|
+
const repoName = useFullName
|
|
220
|
+
? repo?.nameWithOwner?.toLowerCase()
|
|
221
|
+
: repo?.name?.toLowerCase();
|
|
222
|
+
return repoName === rf;
|
|
223
|
+
});
|
|
224
|
+
}
|
|
206
225
|
// Filter by field presence (has)
|
|
207
226
|
if (args.has && args.has.length > 0) {
|
|
208
227
|
items = items.filter((item) => args.has.every((field) => hasField(item, field)));
|