@htekdev/actions-debugger 1.0.26 → 1.0.28
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.
- package/README.md +45 -4
- package/dist/cli/commands/categories.d.ts +6 -0
- package/dist/cli/commands/categories.d.ts.map +1 -0
- package/dist/cli/commands/categories.js +26 -0
- package/dist/cli/commands/categories.js.map +1 -0
- package/dist/cli/commands/diagnose.d.ts +6 -0
- package/dist/cli/commands/diagnose.d.ts.map +1 -0
- package/dist/cli/commands/diagnose.js +56 -0
- package/dist/cli/commands/diagnose.js.map +1 -0
- package/dist/cli/commands/lookup.d.ts +6 -0
- package/dist/cli/commands/lookup.d.ts.map +1 -0
- package/dist/cli/commands/lookup.js +27 -0
- package/dist/cli/commands/lookup.js.map +1 -0
- package/dist/cli/commands/search.d.ts +6 -0
- package/dist/cli/commands/search.d.ts.map +1 -0
- package/dist/cli/commands/search.js +33 -0
- package/dist/cli/commands/search.js.map +1 -0
- package/dist/cli/commands/suggest.d.ts +6 -0
- package/dist/cli/commands/suggest.d.ts.map +1 -0
- package/dist/cli/commands/suggest.js +27 -0
- package/dist/cli/commands/suggest.js.map +1 -0
- package/dist/cli/main.d.ts +5 -0
- package/dist/cli/main.d.ts.map +1 -0
- package/dist/cli/main.js +20 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/cli/output.d.ts +17 -0
- package/dist/cli/output.d.ts.map +1 -0
- package/dist/cli/output.js +311 -0
- package/dist/cli/output.js.map +1 -0
- package/dist/entry.d.ts +12 -0
- package/dist/entry.d.ts.map +1 -0
- package/dist/entry.js +30 -0
- package/dist/entry.js.map +1 -0
- package/dist/index.d.ts +4 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -30
- package/dist/index.js.map +1 -1
- package/dist/mcp.d.ts +11 -0
- package/dist/mcp.d.ts.map +1 -0
- package/dist/mcp.js +25 -0
- package/dist/mcp.js.map +1 -0
- package/errors/runner-environment/container-job-entrypoint-overridden.yml +90 -0
- package/errors/runner-environment/github-path-prepend-breaks-container-no-path-env.yml +80 -0
- package/errors/silent-failures/event-inputs-empty-workflow-call.yml +81 -0
- package/errors/triggers/workflow-dispatch-button-missing-not-default-branch.yml +94 -0
- package/package.json +11 -6
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Output formatters for CLI commands.
|
|
3
|
+
* Supports text (human-friendly), json (machine-parseable), and md (markdown).
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Detect the appropriate output format.
|
|
7
|
+
* TTY → text, piped → json, or explicit user choice.
|
|
8
|
+
*/
|
|
9
|
+
export function detectFormat(explicit) {
|
|
10
|
+
if (explicit && explicit !== "auto")
|
|
11
|
+
return explicit;
|
|
12
|
+
return process.stdout.isTTY ? "text" : "json";
|
|
13
|
+
}
|
|
14
|
+
// ─── Lookup ─────────────────────────────────────────────────────────────────
|
|
15
|
+
export function formatLookupOutput(results, format) {
|
|
16
|
+
if (format === "json") {
|
|
17
|
+
return JSON.stringify({ matches: results.map(entryToJson) }, null, 2);
|
|
18
|
+
}
|
|
19
|
+
if (format === "md") {
|
|
20
|
+
return formatLookupMd(results);
|
|
21
|
+
}
|
|
22
|
+
return formatLookupText(results);
|
|
23
|
+
}
|
|
24
|
+
function formatLookupText(results) {
|
|
25
|
+
if (results.length === 0) {
|
|
26
|
+
return "No matching errors found.\n\nTry `actions-debugger search <keyword>` for broader results.";
|
|
27
|
+
}
|
|
28
|
+
return results.map((entry) => {
|
|
29
|
+
const lines = [
|
|
30
|
+
`✓ Match: ${entry.title}`,
|
|
31
|
+
` Category: ${entry.category} | Severity: ${entry.severity}`,
|
|
32
|
+
"",
|
|
33
|
+
` Root Cause: ${entry.root_cause.trim()}`,
|
|
34
|
+
"",
|
|
35
|
+
` Fix: ${entry.fix.trim()}`,
|
|
36
|
+
];
|
|
37
|
+
if (entry.fix_code?.length) {
|
|
38
|
+
lines.push("");
|
|
39
|
+
for (const fc of entry.fix_code) {
|
|
40
|
+
lines.push(` ${fc.label || fc.language}:`);
|
|
41
|
+
for (const line of fc.code.trim().split("\n")) {
|
|
42
|
+
lines.push(` ${line}`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
if (entry.prevention?.length) {
|
|
47
|
+
lines.push("", " Prevention:");
|
|
48
|
+
for (const p of entry.prevention) {
|
|
49
|
+
lines.push(` - ${p}`);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
if (entry.docs?.length) {
|
|
53
|
+
lines.push("", " Docs:");
|
|
54
|
+
for (const d of entry.docs) {
|
|
55
|
+
lines.push(` - ${d.label}: ${d.url}`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return lines.join("\n");
|
|
59
|
+
}).join("\n\n---\n\n");
|
|
60
|
+
}
|
|
61
|
+
function formatLookupMd(results) {
|
|
62
|
+
if (results.length === 0) {
|
|
63
|
+
return "No matching errors found.";
|
|
64
|
+
}
|
|
65
|
+
return results.map((entry, i) => {
|
|
66
|
+
const lines = [
|
|
67
|
+
`## ${i > 0 ? `Match ${i + 1}: ` : ""}${entry.title}`,
|
|
68
|
+
"",
|
|
69
|
+
`**Category:** ${entry.category} | **Severity:** ${entry.severity}`,
|
|
70
|
+
"",
|
|
71
|
+
`**Root Cause:** ${entry.root_cause.trim()}`,
|
|
72
|
+
"",
|
|
73
|
+
`**Fix:** ${entry.fix.trim()}`,
|
|
74
|
+
];
|
|
75
|
+
if (entry.fix_code?.length) {
|
|
76
|
+
for (const fc of entry.fix_code) {
|
|
77
|
+
lines.push("", `\`\`\`${fc.language}`, fc.code.trim(), "```");
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
if (entry.prevention?.length) {
|
|
81
|
+
lines.push("", "**Prevention:**");
|
|
82
|
+
for (const p of entry.prevention) {
|
|
83
|
+
lines.push(`- ${p}`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
if (entry.docs?.length) {
|
|
87
|
+
lines.push("", "**Docs:**");
|
|
88
|
+
for (const d of entry.docs) {
|
|
89
|
+
lines.push(`- [${d.label}](${d.url})`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return lines.join("\n");
|
|
93
|
+
}).join("\n\n---\n\n");
|
|
94
|
+
}
|
|
95
|
+
// ─── Search ─────────────────────────────────────────────────────────────────
|
|
96
|
+
export function formatSearchOutput(results, format) {
|
|
97
|
+
if (format === "json") {
|
|
98
|
+
return JSON.stringify({ matches: results.map(entryToJson) }, null, 2);
|
|
99
|
+
}
|
|
100
|
+
if (format === "md") {
|
|
101
|
+
return formatSearchMd(results);
|
|
102
|
+
}
|
|
103
|
+
return formatSearchText(results);
|
|
104
|
+
}
|
|
105
|
+
function formatSearchText(results) {
|
|
106
|
+
if (results.length === 0) {
|
|
107
|
+
return "No results found. Try different keywords or browse with `actions-debugger categories`.";
|
|
108
|
+
}
|
|
109
|
+
const lines = [`Found ${results.length} result(s):`, ""];
|
|
110
|
+
for (const entry of results) {
|
|
111
|
+
lines.push(` ${entry.title}`);
|
|
112
|
+
lines.push(` ${entry.category} | ${entry.severity} | ${entry.root_cause.trim().split("\n")[0]}`);
|
|
113
|
+
lines.push("");
|
|
114
|
+
}
|
|
115
|
+
return lines.join("\n");
|
|
116
|
+
}
|
|
117
|
+
function formatSearchMd(results) {
|
|
118
|
+
if (results.length === 0)
|
|
119
|
+
return "No results found.";
|
|
120
|
+
const lines = [`## Search Results (${results.length})`, ""];
|
|
121
|
+
for (const entry of results) {
|
|
122
|
+
lines.push(`### ${entry.title}`);
|
|
123
|
+
lines.push(`**Category:** ${entry.category} | **Severity:** ${entry.severity}`);
|
|
124
|
+
lines.push("", entry.root_cause.trim().split("\n")[0], "");
|
|
125
|
+
}
|
|
126
|
+
return lines.join("\n");
|
|
127
|
+
}
|
|
128
|
+
// ─── Diagnose ───────────────────────────────────────────────────────────────
|
|
129
|
+
export function formatDiagnoseOutput(findings, format) {
|
|
130
|
+
if (format === "json") {
|
|
131
|
+
return JSON.stringify({ findings }, null, 2);
|
|
132
|
+
}
|
|
133
|
+
if (format === "md") {
|
|
134
|
+
return formatDiagnoseMd(findings);
|
|
135
|
+
}
|
|
136
|
+
return formatDiagnoseText(findings);
|
|
137
|
+
}
|
|
138
|
+
function formatDiagnoseText(findings) {
|
|
139
|
+
if (findings.length === 0) {
|
|
140
|
+
return "✅ No issues found. Workflow looks good!";
|
|
141
|
+
}
|
|
142
|
+
const lines = [`Found ${findings.length} issue(s):`, ""];
|
|
143
|
+
const icons = { critical: "🔴", high: "🟠", medium: "🟡", low: "🔵" };
|
|
144
|
+
for (const f of findings) {
|
|
145
|
+
lines.push(` ${icons[f.severity] || "•"} [${f.severity}] ${f.message}`);
|
|
146
|
+
lines.push(` Fix: ${f.fix}`);
|
|
147
|
+
if (f.fix_code) {
|
|
148
|
+
for (const line of f.fix_code.split("\n")) {
|
|
149
|
+
lines.push(` ${line}`);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
lines.push("");
|
|
153
|
+
}
|
|
154
|
+
return lines.join("\n");
|
|
155
|
+
}
|
|
156
|
+
function formatDiagnoseMd(findings) {
|
|
157
|
+
if (findings.length === 0)
|
|
158
|
+
return "✅ No issues found.";
|
|
159
|
+
const lines = [`## Workflow Analysis — ${findings.length} issue(s)`, ""];
|
|
160
|
+
for (const f of findings) {
|
|
161
|
+
lines.push(`- **[${f.severity}]** ${f.message}`);
|
|
162
|
+
lines.push(` - Fix: ${f.fix}`);
|
|
163
|
+
if (f.fix_code) {
|
|
164
|
+
lines.push(" ```", ` ${f.fix_code}`, " ```");
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
return lines.join("\n");
|
|
168
|
+
}
|
|
169
|
+
// ─── Suggest ────────────────────────────────────────────────────────────────
|
|
170
|
+
export function formatSuggestOutput(results, format) {
|
|
171
|
+
if (format === "json") {
|
|
172
|
+
return JSON.stringify({ suggestions: results.map(entryToJson) }, null, 2);
|
|
173
|
+
}
|
|
174
|
+
if (format === "md") {
|
|
175
|
+
return formatSuggestMd(results);
|
|
176
|
+
}
|
|
177
|
+
return formatSuggestText(results);
|
|
178
|
+
}
|
|
179
|
+
function formatSuggestText(results) {
|
|
180
|
+
if (results.length === 0) {
|
|
181
|
+
return "No matching suggestions. Try `actions-debugger lookup <exact error message>` for better results.";
|
|
182
|
+
}
|
|
183
|
+
const best = results[0];
|
|
184
|
+
const lines = [
|
|
185
|
+
`✓ Suggested Fix: ${best.title}`,
|
|
186
|
+
` Category: ${best.category} | Severity: ${best.severity}`,
|
|
187
|
+
"",
|
|
188
|
+
` Root Cause: ${best.root_cause.trim()}`,
|
|
189
|
+
"",
|
|
190
|
+
` Fix: ${best.fix.trim()}`,
|
|
191
|
+
];
|
|
192
|
+
if (best.fix_code?.length) {
|
|
193
|
+
lines.push("");
|
|
194
|
+
for (const fc of best.fix_code) {
|
|
195
|
+
lines.push(` ${fc.label || fc.language}:`);
|
|
196
|
+
for (const line of fc.code.trim().split("\n")) {
|
|
197
|
+
lines.push(` ${line}`);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
if (results.length > 1) {
|
|
202
|
+
lines.push("", " Other possible matches:");
|
|
203
|
+
for (const entry of results.slice(1)) {
|
|
204
|
+
lines.push(` - ${entry.title} (${entry.category})`);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
return lines.join("\n");
|
|
208
|
+
}
|
|
209
|
+
function formatSuggestMd(results) {
|
|
210
|
+
if (results.length === 0)
|
|
211
|
+
return "No matching suggestions.";
|
|
212
|
+
const best = results[0];
|
|
213
|
+
const lines = [
|
|
214
|
+
`## Suggested Fix: ${best.title}`,
|
|
215
|
+
"",
|
|
216
|
+
`**Category:** ${best.category} | **Severity:** ${best.severity}`,
|
|
217
|
+
"",
|
|
218
|
+
`**Root Cause:** ${best.root_cause.trim()}`,
|
|
219
|
+
"",
|
|
220
|
+
`**Fix:** ${best.fix.trim()}`,
|
|
221
|
+
];
|
|
222
|
+
if (best.fix_code?.length) {
|
|
223
|
+
for (const fc of best.fix_code) {
|
|
224
|
+
lines.push("", `\`\`\`${fc.language}`, fc.code.trim(), "```");
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
if (results.length > 1) {
|
|
228
|
+
lines.push("", "**Other possible matches:**");
|
|
229
|
+
for (const entry of results.slice(1)) {
|
|
230
|
+
lines.push(`- ${entry.title} (${entry.category})`);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
return lines.join("\n");
|
|
234
|
+
}
|
|
235
|
+
// ─── Categories ─────────────────────────────────────────────────────────────
|
|
236
|
+
export function formatCategoriesOutput(categories, format) {
|
|
237
|
+
if (format === "json") {
|
|
238
|
+
return JSON.stringify({
|
|
239
|
+
categories: categories.map((c) => ({
|
|
240
|
+
name: c.name,
|
|
241
|
+
count: c.count,
|
|
242
|
+
severities: c.severities,
|
|
243
|
+
})),
|
|
244
|
+
}, null, 2);
|
|
245
|
+
}
|
|
246
|
+
if (format === "md") {
|
|
247
|
+
return formatCategoriesMd(categories);
|
|
248
|
+
}
|
|
249
|
+
return formatCategoriesText(categories);
|
|
250
|
+
}
|
|
251
|
+
function formatCategoriesText(categories) {
|
|
252
|
+
const total = categories.reduce((sum, c) => sum + c.count, 0);
|
|
253
|
+
const nameWidth = Math.max(...categories.map((c) => c.name.length), 10);
|
|
254
|
+
const lines = [
|
|
255
|
+
`Error Categories (${total} total errors)`,
|
|
256
|
+
"",
|
|
257
|
+
`${"Category".padEnd(nameWidth)} Count Severities`,
|
|
258
|
+
"─".repeat(nameWidth + 40),
|
|
259
|
+
];
|
|
260
|
+
for (const cat of categories) {
|
|
261
|
+
const sevParts = [];
|
|
262
|
+
if (cat.severities.error)
|
|
263
|
+
sevParts.push(`${cat.severities.error} error`);
|
|
264
|
+
if (cat.severities.warning)
|
|
265
|
+
sevParts.push(`${cat.severities.warning} warning`);
|
|
266
|
+
if (cat.severities["silent-failure"])
|
|
267
|
+
sevParts.push(`${cat.severities["silent-failure"]} silent`);
|
|
268
|
+
if (cat.severities.limitation)
|
|
269
|
+
sevParts.push(`${cat.severities.limitation} limitation`);
|
|
270
|
+
lines.push(`${cat.name.padEnd(nameWidth)} ${String(cat.count).padStart(5)} ${sevParts.join(", ")}`);
|
|
271
|
+
}
|
|
272
|
+
return lines.join("\n");
|
|
273
|
+
}
|
|
274
|
+
function formatCategoriesMd(categories) {
|
|
275
|
+
const total = categories.reduce((sum, c) => sum + c.count, 0);
|
|
276
|
+
const lines = [
|
|
277
|
+
`## Error Categories (${total} total)`,
|
|
278
|
+
"",
|
|
279
|
+
"| Category | Count | Severities |",
|
|
280
|
+
"|----------|-------|------------|",
|
|
281
|
+
];
|
|
282
|
+
for (const cat of categories) {
|
|
283
|
+
const sevParts = [];
|
|
284
|
+
if (cat.severities.error)
|
|
285
|
+
sevParts.push(`${cat.severities.error} error`);
|
|
286
|
+
if (cat.severities.warning)
|
|
287
|
+
sevParts.push(`${cat.severities.warning} warning`);
|
|
288
|
+
if (cat.severities["silent-failure"])
|
|
289
|
+
sevParts.push(`${cat.severities["silent-failure"]} silent`);
|
|
290
|
+
if (cat.severities.limitation)
|
|
291
|
+
sevParts.push(`${cat.severities.limitation} limitation`);
|
|
292
|
+
lines.push(`| \`${cat.name}\` | ${cat.count} | ${sevParts.join(", ")} |`);
|
|
293
|
+
}
|
|
294
|
+
return lines.join("\n");
|
|
295
|
+
}
|
|
296
|
+
// ─── Helpers ────────────────────────────────────────────────────────────────
|
|
297
|
+
function entryToJson(entry) {
|
|
298
|
+
return {
|
|
299
|
+
id: entry.id,
|
|
300
|
+
title: entry.title,
|
|
301
|
+
category: entry.category,
|
|
302
|
+
severity: entry.severity,
|
|
303
|
+
root_cause: entry.root_cause.trim(),
|
|
304
|
+
fix: entry.fix.trim(),
|
|
305
|
+
fix_code: entry.fix_code?.map((fc) => ({ language: fc.language, code: fc.code.trim() })),
|
|
306
|
+
prevention: entry.prevention,
|
|
307
|
+
docs: entry.docs,
|
|
308
|
+
tags: entry.tags,
|
|
309
|
+
};
|
|
310
|
+
}
|
|
311
|
+
//# sourceMappingURL=output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/cli/output.ts"],"names":[],"mappings":"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"}
|
package/dist/entry.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Unified entry point for @htekdev/actions-debugger.
|
|
4
|
+
*
|
|
5
|
+
* Detection logic:
|
|
6
|
+
* - Known subcommand (lookup, search, diagnose, suggest-fix, categories) → CLI mode
|
|
7
|
+
* - --help, --version, or flag starting with - → CLI mode (commander handles it)
|
|
8
|
+
* - No args or --mcp → MCP server mode (backward compatible)
|
|
9
|
+
* - Unknown arg → MCP server mode (fallback)
|
|
10
|
+
*/
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=entry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../src/entry.ts"],"names":[],"mappings":";AAEA;;;;;;;;GAQG"}
|
package/dist/entry.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Unified entry point for @htekdev/actions-debugger.
|
|
4
|
+
*
|
|
5
|
+
* Detection logic:
|
|
6
|
+
* - Known subcommand (lookup, search, diagnose, suggest-fix, categories) → CLI mode
|
|
7
|
+
* - --help, --version, or flag starting with - → CLI mode (commander handles it)
|
|
8
|
+
* - No args or --mcp → MCP server mode (backward compatible)
|
|
9
|
+
* - Unknown arg → MCP server mode (fallback)
|
|
10
|
+
*/
|
|
11
|
+
const CLI_COMMANDS = ["lookup", "search", "diagnose", "suggest-fix", "categories"];
|
|
12
|
+
const firstArg = process.argv[2];
|
|
13
|
+
if (!firstArg || firstArg === "--mcp") {
|
|
14
|
+
// MCP server mode — dynamic import to keep startup fast for CLI
|
|
15
|
+
import("./mcp.js");
|
|
16
|
+
}
|
|
17
|
+
else if (CLI_COMMANDS.includes(firstArg) ||
|
|
18
|
+
firstArg === "--help" ||
|
|
19
|
+
firstArg === "-h" ||
|
|
20
|
+
firstArg === "--version" ||
|
|
21
|
+
firstArg === "-V") {
|
|
22
|
+
// CLI mode
|
|
23
|
+
import("./cli/main.js");
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
// Unknown arg — fallback to MCP for backward compat
|
|
27
|
+
import("./mcp.js");
|
|
28
|
+
}
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entry.js","sourceRoot":"","sources":["../src/entry.ts"],"names":[],"mappings":";AAEA;;;;;;;;GAQG;AAEH,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;AAEnF,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAEjC,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;IACtC,gEAAgE;IAChE,MAAM,CAAC,UAAU,CAAC,CAAC;AACrB,CAAC;KAAM,IACL,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAC/B,QAAQ,KAAK,QAAQ;IACrB,QAAQ,KAAK,IAAI;IACjB,QAAQ,KAAK,WAAW;IACxB,QAAQ,KAAK,IAAI,EACjB,CAAC;IACD,WAAW;IACX,MAAM,CAAC,eAAe,CAAC,CAAC;AAC1B,CAAC;KAAM,CAAC;IACN,oDAAoD;IACpD,MAAM,CAAC,UAAU,CAAC,CAAC;AACrB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
1
|
/**
|
|
3
|
-
* @htekdev/actions-debugger —
|
|
2
|
+
* @htekdev/actions-debugger — Programmatic API exports.
|
|
4
3
|
*
|
|
5
4
|
* 65+ real GitHub Actions errors, queryable by agents.
|
|
6
|
-
* Runs as a stdio MCP server for Claude Desktop, Copilot CLI, Cursor, etc.
|
|
7
5
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
6
|
+
* For MCP server: import from "@htekdev/actions-debugger/mcp"
|
|
7
|
+
* For CLI: npx @htekdev/actions-debugger <command>
|
|
8
|
+
* For library: import { lookupError, searchErrors } from "@htekdev/actions-debugger"
|
|
10
9
|
*
|
|
11
10
|
* Source: https://htek.dev/articles/github-actions-debugging-guide
|
|
12
11
|
*/
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGxD,YAAY,EACV,UAAU,EACV,aAAa,EACb,aAAa,EACb,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,YAAY,GACb,MAAM,eAAe,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,44 +1,19 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
1
|
/**
|
|
3
|
-
* @htekdev/actions-debugger —
|
|
2
|
+
* @htekdev/actions-debugger — Programmatic API exports.
|
|
4
3
|
*
|
|
5
4
|
* 65+ real GitHub Actions errors, queryable by agents.
|
|
6
|
-
* Runs as a stdio MCP server for Claude Desktop, Copilot CLI, Cursor, etc.
|
|
7
5
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
6
|
+
* For MCP server: import from "@htekdev/actions-debugger/mcp"
|
|
7
|
+
* For CLI: npx @htekdev/actions-debugger <command>
|
|
8
|
+
* For library: import { lookupError, searchErrors } from "@htekdev/actions-debugger"
|
|
10
9
|
*
|
|
11
10
|
* Source: https://htek.dev/articles/github-actions-debugging-guide
|
|
12
11
|
*/
|
|
13
|
-
|
|
14
|
-
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
15
|
-
import { loadErrorDatabase } from "./db/loader.js";
|
|
16
|
-
import { registerTools } from "./server.js";
|
|
17
|
-
// Re-export programmatic API
|
|
12
|
+
// Core API exports
|
|
18
13
|
export { loadErrorDatabase } from "./db/loader.js";
|
|
19
14
|
export { lookupError } from "./tools/lookup-error.js";
|
|
20
15
|
export { diagnoseWorkflow } from "./tools/diagnose-workflow.js";
|
|
21
16
|
export { suggestFix } from "./tools/suggest-fix.js";
|
|
22
17
|
export { listCategories } from "./tools/list-categories.js";
|
|
23
18
|
export { searchErrors } from "./tools/search-errors.js";
|
|
24
|
-
/**
|
|
25
|
-
* Start the MCP server if running as CLI.
|
|
26
|
-
*/
|
|
27
|
-
async function main() {
|
|
28
|
-
const db = await loadErrorDatabase();
|
|
29
|
-
const server = new Server({ name: "actions-debugger", version: "1.0.0" }, { capabilities: { tools: {} } });
|
|
30
|
-
registerTools(server, db);
|
|
31
|
-
const transport = new StdioServerTransport();
|
|
32
|
-
await server.connect(transport);
|
|
33
|
-
}
|
|
34
|
-
// Only start server when running as CLI (not when imported as library)
|
|
35
|
-
const isMainModule = process.argv[1] &&
|
|
36
|
-
(process.argv[1].endsWith("index.js") ||
|
|
37
|
-
process.argv[1].endsWith("actions-debugger"));
|
|
38
|
-
if (isMainModule) {
|
|
39
|
-
main().catch((err) => {
|
|
40
|
-
console.error("Fatal error:", err);
|
|
41
|
-
process.exit(1);
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
19
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,mBAAmB;AACnB,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC"}
|
package/dist/mcp.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* MCP server entry point.
|
|
4
|
+
* Starts the stdio MCP server for Claude Desktop, Copilot CLI, Cursor, etc.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* npx @htekdev/actions-debugger (no subcommand → MCP mode)
|
|
8
|
+
* node dist/mcp.js
|
|
9
|
+
*/
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=mcp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":";AAEA;;;;;;;GAOG"}
|
package/dist/mcp.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* MCP server entry point.
|
|
4
|
+
* Starts the stdio MCP server for Claude Desktop, Copilot CLI, Cursor, etc.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* npx @htekdev/actions-debugger (no subcommand → MCP mode)
|
|
8
|
+
* node dist/mcp.js
|
|
9
|
+
*/
|
|
10
|
+
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
11
|
+
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
12
|
+
import { loadErrorDatabase } from "./db/loader.js";
|
|
13
|
+
import { registerTools } from "./server.js";
|
|
14
|
+
async function main() {
|
|
15
|
+
const db = await loadErrorDatabase();
|
|
16
|
+
const server = new Server({ name: "actions-debugger", version: "1.1.0" }, { capabilities: { tools: {} } });
|
|
17
|
+
registerTools(server, db);
|
|
18
|
+
const transport = new StdioServerTransport();
|
|
19
|
+
await server.connect(transport);
|
|
20
|
+
}
|
|
21
|
+
main().catch((err) => {
|
|
22
|
+
console.error("Fatal error:", err);
|
|
23
|
+
process.exit(1);
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=mcp.js.map
|
package/dist/mcp.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":";AAEA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,KAAK,UAAU,IAAI;IACjB,MAAM,EAAE,GAAG,MAAM,iBAAiB,EAAE,CAAC;IAErC,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,OAAO,EAAE,EAC9C,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAChC,CAAC;IAEF,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAE1B,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
id: runner-environment-080
|
|
2
|
+
title: "Container job ENTRYPOINT silently overridden by GitHub Actions runner"
|
|
3
|
+
category: runner-environment
|
|
4
|
+
severity: silent-failure
|
|
5
|
+
tags:
|
|
6
|
+
- container
|
|
7
|
+
- docker
|
|
8
|
+
- entrypoint
|
|
9
|
+
- job-container
|
|
10
|
+
- dockerfile
|
|
11
|
+
- initialization
|
|
12
|
+
patterns:
|
|
13
|
+
- regex: 'ENTRYPOINT.*not.*execut|entrypoint.*not.*run|entrypoint.*overrid|custom.*entrypoint.*skip'
|
|
14
|
+
flags: 'i'
|
|
15
|
+
- regex: 'container.*init.*fail|setup.*script.*not.*run'
|
|
16
|
+
flags: 'i'
|
|
17
|
+
error_messages:
|
|
18
|
+
- "Custom initialization script did not run in container job"
|
|
19
|
+
- "Expected environment setup from ENTRYPOINT was missing"
|
|
20
|
+
- "Docker container ENTRYPOINT not executing in GitHub Actions"
|
|
21
|
+
root_cause: |
|
|
22
|
+
When a workflow job uses a container image via the container: key, the GitHub
|
|
23
|
+
Actions runner creates the container with --entrypoint "", explicitly replacing
|
|
24
|
+
any ENTRYPOINT defined in the Docker image with an empty string. This is by
|
|
25
|
+
design: the runner must inject its own workspace setup and process management
|
|
26
|
+
before any user steps run.
|
|
27
|
+
|
|
28
|
+
As a result, ENTRYPOINT instructions in the container Dockerfile are silently
|
|
29
|
+
ignored. Steps then run via docker exec into the already-running container, so
|
|
30
|
+
the ENTRYPOINT never fires. Initialization logic that developers expect to run
|
|
31
|
+
(environment setup, tool configuration, user switching) simply does not happen.
|
|
32
|
+
|
|
33
|
+
This is distinct from Docker container ACTIONS (action.yml with runs.using:
|
|
34
|
+
docker), which DO execute ENTRYPOINT as specified. The override only applies to
|
|
35
|
+
workflow job containers (jobs.<id>.container:).
|
|
36
|
+
fix: |
|
|
37
|
+
Choose one of these approaches:
|
|
38
|
+
|
|
39
|
+
1. Move initialization to CMD. GitHub Actions does not override CMD, and the
|
|
40
|
+
docker container options: field lets you pass --entrypoint pointing to your
|
|
41
|
+
init script.
|
|
42
|
+
|
|
43
|
+
2. Use the container options: field to specify the entrypoint explicitly:
|
|
44
|
+
options: --entrypoint /path/to/init.sh
|
|
45
|
+
|
|
46
|
+
3. Add an explicit initialization step at the top of the job. This is the most
|
|
47
|
+
transparent approach: the step runs before other steps and is visible in logs.
|
|
48
|
+
|
|
49
|
+
4. Switch to a Docker container ACTION (action.yml) if you need ENTRYPOINT
|
|
50
|
+
semantics and own the action definition.
|
|
51
|
+
fix_code:
|
|
52
|
+
- language: yaml
|
|
53
|
+
label: "Option A: Override entrypoint via container options"
|
|
54
|
+
code: |
|
|
55
|
+
jobs:
|
|
56
|
+
build:
|
|
57
|
+
runs-on: ubuntu-latest
|
|
58
|
+
container:
|
|
59
|
+
image: my-custom-image:latest
|
|
60
|
+
options: --entrypoint /usr/local/bin/my-init.sh
|
|
61
|
+
steps:
|
|
62
|
+
- name: Run build
|
|
63
|
+
run: make build
|
|
64
|
+
|
|
65
|
+
- language: yaml
|
|
66
|
+
label: "Option B: Run initialization as an explicit first step (most transparent)"
|
|
67
|
+
code: |
|
|
68
|
+
jobs:
|
|
69
|
+
build:
|
|
70
|
+
runs-on: ubuntu-latest
|
|
71
|
+
container:
|
|
72
|
+
image: my-custom-image:latest
|
|
73
|
+
steps:
|
|
74
|
+
- name: Initialize environment
|
|
75
|
+
run: /usr/local/bin/my-init.sh
|
|
76
|
+
- name: Run build
|
|
77
|
+
run: make build
|
|
78
|
+
prevention:
|
|
79
|
+
- "Do not rely on ENTRYPOINT for initialization in workflow job containers"
|
|
80
|
+
- "Use CMD for default command arguments; keep setup in workflow steps or the options: field"
|
|
81
|
+
- "Test container behavior locally with docker run --entrypoint '' myimage bash to simulate GitHub Actions"
|
|
82
|
+
- "Use Docker container actions (action.yml with runs.using: docker) when ENTRYPOINT execution is required"
|
|
83
|
+
- "Document any ENTRYPOINT logic removal in a comment in the Dockerfile"
|
|
84
|
+
docs:
|
|
85
|
+
- url: "https://docs.github.com/en/actions/reference/dockerfile-support-for-github-actions"
|
|
86
|
+
label: "Dockerfile support for GitHub Actions"
|
|
87
|
+
- url: "https://docs.github.com/en/actions/using-jobs/running-jobs-in-a-container"
|
|
88
|
+
label: "Running jobs in a container"
|
|
89
|
+
- url: "https://github.com/actions/runner/issues/1964"
|
|
90
|
+
label: "actions/runner#1964: Docker entrypoint not executing in container jobs (open, 8 reactions)"
|