@perrylink/dsh-github 0.4.1 → 0.6.1
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.es.md +30 -13
- package/README.hi.md +30 -13
- package/README.md +53 -13
- package/README.pt.md +31 -14
- package/README.zh-CN.md +53 -13
- package/action.yml +161 -0
- package/lib/approval-gate.d.ts +14 -9
- package/lib/approval-gate.d.ts.map +1 -1
- package/lib/approval-gate.js +39 -1
- package/lib/approval-gate.js.map +1 -1
- package/lib/ci/bot.d.ts +50 -0
- package/lib/ci/bot.d.ts.map +1 -0
- package/lib/ci/bot.js +168 -0
- package/lib/ci/bot.js.map +1 -0
- package/lib/ci/pipeline.d.ts +84 -0
- package/lib/ci/pipeline.d.ts.map +1 -0
- package/lib/ci/pipeline.js +380 -0
- package/lib/ci/pipeline.js.map +1 -0
- package/lib/ci/review-rules.d.ts +41 -0
- package/lib/ci/review-rules.d.ts.map +1 -0
- package/lib/ci/review-rules.js +108 -0
- package/lib/ci/review-rules.js.map +1 -0
- package/lib/ci/tool.d.ts +4 -0
- package/lib/ci/tool.d.ts.map +1 -0
- package/lib/ci/tool.js +155 -0
- package/lib/ci/tool.js.map +1 -0
- package/lib/commands.d.ts.map +1 -1
- package/lib/commands.js +5 -2
- package/lib/commands.js.map +1 -1
- package/lib/config.d.ts +65 -1
- package/lib/config.d.ts.map +1 -1
- package/lib/config.js +75 -2
- package/lib/config.js.map +1 -1
- package/lib/github.d.ts +11 -7
- package/lib/github.d.ts.map +1 -1
- package/lib/github.js +28 -7
- package/lib/github.js.map +1 -1
- package/lib/index.d.ts +15 -9
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +13 -1
- package/lib/index.js.map +1 -1
- package/lib/jobs.js +4 -3
- package/lib/jobs.js.map +1 -1
- package/lib/present.d.ts +146 -0
- package/lib/present.d.ts.map +1 -1
- package/lib/present.js +140 -1
- package/lib/present.js.map +1 -1
- package/lib/review.d.ts +11 -1
- package/lib/review.d.ts.map +1 -1
- package/lib/review.js +12 -9
- package/lib/review.js.map +1 -1
- package/lib/state.d.ts +3 -1
- package/lib/state.d.ts.map +1 -1
- package/lib/state.js +11 -6
- package/lib/state.js.map +1 -1
- package/lib/tools.d.ts +71 -0
- package/lib/tools.d.ts.map +1 -1
- package/lib/tools.js +379 -16
- package/lib/tools.js.map +1 -1
- package/package.json +6 -2
- package/scripts/action-patch.mjs +152 -0
- package/scripts/action-post.mjs +61 -0
- package/scripts/check-readmes.mjs +113 -0
- package/scripts/local-test.mjs +259 -0
- package/scripts/prepare.mjs +34 -0
package/lib/review.js
CHANGED
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
* capped diff to a one-shot subagent through the host's subagents seam).
|
|
10
10
|
* @module dsh-github/review
|
|
11
11
|
*/
|
|
12
|
-
const
|
|
12
|
+
const DEFAULT_MAX_FINDINGS = 50;
|
|
13
|
+
const DEFAULT_MAX_LINE_LENGTH = 300;
|
|
13
14
|
const LINE_RULES = [
|
|
14
15
|
{ rule: 'hardcoded-secret', severity: 'error', message: 'possible hardcoded secret (token/private key); inject via credentials instead', pattern: /(ghp_[A-Za-z0-9]{20,}|github_pat_[A-Za-z0-9_]{20,}|AKIA[0-9A-Z]{16}|sk-[A-Za-z0-9]{20,}|xox[baprs]-[A-Za-z0-9-]{10,}|-----BEGIN [A-Z ]*PRIVATE KEY-----)/ },
|
|
15
16
|
{ rule: 'google-api-key', severity: 'error', message: 'possible hardcoded Google API key; restrict it and load it from the environment', pattern: /AIza[0-9A-Za-z_-]{35}/ },
|
|
@@ -18,7 +19,6 @@ const LINE_RULES = [
|
|
|
18
19
|
{ rule: 'eval-usage', severity: 'warning', message: 'dynamic evaluation (eval/new Function); avoid unless necessary', pattern: /\beval\s*\(|new\s+Function\s*\(/ },
|
|
19
20
|
{ rule: 'todo-marker', severity: 'info', message: 'leftover marker (TODO/FIXME/XXX); confirm it is tracked', pattern: /\b(TODO|FIXME|XXX)\b/ },
|
|
20
21
|
];
|
|
21
|
-
const MAX_LINE_LENGTH = 300;
|
|
22
22
|
/** Split a unified diff into per-file added lines with new-file line numbers. */
|
|
23
23
|
export function parseAddedLines(diff, maxChars) {
|
|
24
24
|
const limited = diff.length > maxChars ? diff.slice(0, maxChars) : diff;
|
|
@@ -83,15 +83,18 @@ export function parseDiffStats(diff, maxChars) {
|
|
|
83
83
|
* Analyze a unified diff into findings and a postable comment body.
|
|
84
84
|
* @param diff - unified diff text (already capped by the caller or capped here).
|
|
85
85
|
* @param maxChars - character cap applied before parsing.
|
|
86
|
+
* @param options - analyzer tunables; defaults mirror the config defaults.
|
|
86
87
|
* @returns findings (capped), one-line summary, and Markdown post body.
|
|
87
88
|
*/
|
|
88
|
-
export function analyzeDiff(diff, maxChars) {
|
|
89
|
+
export function analyzeDiff(diff, maxChars, options = {}) {
|
|
90
|
+
const maxFindings = Math.max(options.maxFindings ?? DEFAULT_MAX_FINDINGS, 1);
|
|
91
|
+
const maxLineLength = Math.max(options.maxLineLength ?? DEFAULT_MAX_LINE_LENGTH, 1);
|
|
89
92
|
const added = parseAddedLines(diff, maxChars);
|
|
90
93
|
const findings = [];
|
|
91
94
|
const perFileAdded = new Map();
|
|
92
95
|
for (const item of added) {
|
|
93
96
|
perFileAdded.set(item.file, (perFileAdded.get(item.file) ?? 0) + 1);
|
|
94
|
-
if (findings.length >=
|
|
97
|
+
if (findings.length >= maxFindings)
|
|
95
98
|
break;
|
|
96
99
|
for (const rule of LINE_RULES) {
|
|
97
100
|
if (rule.pattern.test(item.text)) {
|
|
@@ -99,14 +102,14 @@ export function analyzeDiff(diff, maxChars) {
|
|
|
99
102
|
break;
|
|
100
103
|
}
|
|
101
104
|
}
|
|
102
|
-
if (findings.length >=
|
|
105
|
+
if (findings.length >= maxFindings)
|
|
103
106
|
break;
|
|
104
|
-
if (item.text.length >
|
|
105
|
-
findings.push({ file: item.file, line: item.line, severity: 'info', rule: 'long-line', message: `line exceeds ${
|
|
107
|
+
if (item.text.length > maxLineLength) {
|
|
108
|
+
findings.push({ file: item.file, line: item.line, severity: 'info', rule: 'long-line', message: `line exceeds ${maxLineLength} characters; consider splitting it` });
|
|
106
109
|
}
|
|
107
110
|
}
|
|
108
111
|
for (const [file, count] of perFileAdded) {
|
|
109
|
-
if (findings.length >=
|
|
112
|
+
if (findings.length >= maxFindings)
|
|
110
113
|
break;
|
|
111
114
|
if (count > 400)
|
|
112
115
|
findings.push({ file, line: null, severity: 'info', rule: 'large-change', message: `this PR adds ${count} lines to this file; consider splitting the commit` });
|
|
@@ -121,7 +124,7 @@ function countSeverity(findings, severity) {
|
|
|
121
124
|
return findings.filter(finding => finding.severity === severity).length;
|
|
122
125
|
}
|
|
123
126
|
/** Make a diff-derived file name safe to interpolate into Markdown. */
|
|
124
|
-
function sanitizeFileName(file) {
|
|
127
|
+
export function sanitizeFileName(file) {
|
|
125
128
|
return file
|
|
126
129
|
.replace(/\\/g, '\\\\')
|
|
127
130
|
.replace(/`/g, '\\`')
|
package/lib/review.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review.js","sourceRoot":"","sources":["../src/review.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAuBH,MAAM,
|
|
1
|
+
{"version":3,"file":"review.js","sourceRoot":"","sources":["../src/review.ts"],"names":[],"mappings":"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"}
|
package/lib/state.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ import { type GitRunner } from './git.ts';
|
|
|
14
14
|
import { type GhRunner, type TokenResolution } from './credential.ts';
|
|
15
15
|
import type { SubagentsService } from './types.ts';
|
|
16
16
|
import type { ReviewReport } from './review.ts';
|
|
17
|
-
import type
|
|
17
|
+
import { type Config } from './config.ts';
|
|
18
18
|
/** Result of resolving which repository a call targets. */
|
|
19
19
|
export type RepoResolution = {
|
|
20
20
|
ok: true;
|
|
@@ -67,6 +67,8 @@ export interface GithubState {
|
|
|
67
67
|
workspaceDir: string;
|
|
68
68
|
/** Hostname of the configured REST API base, for origin-URL matching. */
|
|
69
69
|
apiHost: string;
|
|
70
|
+
/** True while this process is the composite action's CI driver (`DSH_GITHUB_CI_DRIVER=1`). */
|
|
71
|
+
isCiDriver: boolean;
|
|
70
72
|
/** Register one review-job record, evicting settled records past the cap. */
|
|
71
73
|
rememberRecord(id: string, record: ReviewJobRecord): void;
|
|
72
74
|
}
|
package/lib/state.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AACtE,OAAO,EAAE,YAAY,EAA2B,KAAK,aAAa,EAAE,MAAM,aAAa,CAAA;AACvF,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,UAAU,CAAA;AAC5D,OAAO,EAAgB,KAAK,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACnF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
|
package/lib/state.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { GithubClient, clientOptionsFromConfig } from "./github.js";
|
|
2
2
|
import { repoFromRemoteUrl } from "./git.js";
|
|
3
3
|
import { resolveToken } from "./credential.js";
|
|
4
|
+
import { CiConfig } from "./config.js";
|
|
4
5
|
const REPO_GUIDANCE = 'Name the repository with the ownerRepo parameter, set defaultOwnerRepo in cordis.yml, or run inside a checkout with a GitHub origin remote.';
|
|
5
6
|
const REPO_PATTERN = /^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/;
|
|
6
7
|
/**
|
|
@@ -13,25 +14,29 @@ const REPO_PATTERN = /^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/;
|
|
|
13
14
|
* @param fetchImpl - fetch implementation (injectable in tests).
|
|
14
15
|
*/
|
|
15
16
|
export function createState(ctx, config, runGit, runGh, fetchImpl) {
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
// A composition omitting the whole `ci` block gets the schema defaults here,
|
|
18
|
+
// so every consumer can read `config.ci.*` without undefined checks.
|
|
19
|
+
const normalizedConfig = { ...config, ci: CiConfig(config.ci ?? {}) };
|
|
20
|
+
const clientOptions = clientOptionsFromConfig(normalizedConfig, fetchImpl);
|
|
21
|
+
const apiHost = new URL(normalizedConfig.apiBaseUrl).hostname.toLowerCase();
|
|
18
22
|
const records = new Map();
|
|
19
23
|
const state = {
|
|
20
|
-
config,
|
|
24
|
+
config: normalizedConfig,
|
|
21
25
|
credentials: ctx.credentials,
|
|
22
26
|
subagents: ctx.subagents,
|
|
23
27
|
records,
|
|
24
28
|
runGit,
|
|
25
29
|
runGh,
|
|
26
|
-
workspaceDir:
|
|
30
|
+
workspaceDir: normalizedConfig.workspaceDir ?? process.cwd(),
|
|
27
31
|
apiHost,
|
|
28
|
-
|
|
32
|
+
isCiDriver: process.env.DSH_GITHUB_CI_DRIVER === '1',
|
|
33
|
+
resolveToken: (signal) => resolveToken(ctx.credentials, normalizedConfig.tokenSource, normalizedConfig.tokenRef, runGh, signal),
|
|
29
34
|
client: (token) => new GithubClient(token, clientOptions),
|
|
30
35
|
resolveRepo: (ownerRepo, signal) => resolveRepo(state, ownerRepo, signal),
|
|
31
36
|
parsePrRef: parsePrRef,
|
|
32
37
|
rememberRecord: (id, record) => {
|
|
33
38
|
records.set(id, record);
|
|
34
|
-
while (records.size >
|
|
39
|
+
while (records.size > normalizedConfig.maxReviewRecords) {
|
|
35
40
|
const oldestSettled = [...records.entries()].find(([, item]) => item.status !== 'running');
|
|
36
41
|
if (oldestSettled === undefined)
|
|
37
42
|
break; // every record is running; the cap is best-effort.
|
package/lib/state.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAsB,MAAM,aAAa,CAAA;AACvF,OAAO,EAAE,iBAAiB,EAAkB,MAAM,UAAU,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAuC,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
|
package/lib/tools.d.ts
CHANGED
|
@@ -1,5 +1,68 @@
|
|
|
1
1
|
import { type GithubState, type RateLimitValue } from './state.ts';
|
|
2
2
|
import { type GithubErrorValue } from './present.ts';
|
|
3
|
+
export declare const RATE_LIMIT_SCHEMA: {
|
|
4
|
+
readonly type: "object";
|
|
5
|
+
readonly additionalProperties: false;
|
|
6
|
+
readonly properties: {
|
|
7
|
+
readonly remaining: {
|
|
8
|
+
readonly oneOf: readonly [{
|
|
9
|
+
readonly type: "number";
|
|
10
|
+
}, {
|
|
11
|
+
readonly type: "null";
|
|
12
|
+
}];
|
|
13
|
+
};
|
|
14
|
+
readonly resetAt: {
|
|
15
|
+
readonly oneOf: readonly [{
|
|
16
|
+
readonly type: "number";
|
|
17
|
+
}, {
|
|
18
|
+
readonly type: "null";
|
|
19
|
+
}];
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
readonly required: true;
|
|
23
|
+
};
|
|
24
|
+
export declare const ERROR_SCHEMA: {
|
|
25
|
+
readonly type: "object";
|
|
26
|
+
readonly additionalProperties: false;
|
|
27
|
+
readonly properties: {
|
|
28
|
+
readonly status: {
|
|
29
|
+
readonly type: "string";
|
|
30
|
+
readonly required: true;
|
|
31
|
+
readonly const: "error";
|
|
32
|
+
};
|
|
33
|
+
readonly code: {
|
|
34
|
+
readonly type: "string";
|
|
35
|
+
readonly required: true;
|
|
36
|
+
};
|
|
37
|
+
readonly message: {
|
|
38
|
+
readonly type: "string";
|
|
39
|
+
readonly required: true;
|
|
40
|
+
};
|
|
41
|
+
readonly guidance: {
|
|
42
|
+
readonly type: "string";
|
|
43
|
+
};
|
|
44
|
+
readonly rateLimit: {
|
|
45
|
+
readonly type: "object";
|
|
46
|
+
readonly additionalProperties: false;
|
|
47
|
+
readonly properties: {
|
|
48
|
+
readonly remaining: {
|
|
49
|
+
readonly oneOf: readonly [{
|
|
50
|
+
readonly type: "number";
|
|
51
|
+
}, {
|
|
52
|
+
readonly type: "null";
|
|
53
|
+
}];
|
|
54
|
+
};
|
|
55
|
+
readonly resetAt: {
|
|
56
|
+
readonly oneOf: readonly [{
|
|
57
|
+
readonly type: "number";
|
|
58
|
+
}, {
|
|
59
|
+
readonly type: "null";
|
|
60
|
+
}];
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
};
|
|
3
66
|
/** Domain error canonical value, used by every tool. */
|
|
4
67
|
export declare function errorValue(code: string, message: string, guidance?: string, rateLimit?: RateLimitValue): GithubErrorValue;
|
|
5
68
|
/** `pr_create`: create a pull request (write; approval-gated upstream). */
|
|
@@ -18,4 +81,12 @@ export declare function issueCommentTool(state: GithubState): import("@deepseek-
|
|
|
18
81
|
export declare function issueCloseTool(state: GithubState): import("@deepseek-ai/dsh-tools").ToolDefinition;
|
|
19
82
|
/** `gh_search`: search issues and pull requests (read; uses the search quota). */
|
|
20
83
|
export declare function ghSearchTool(state: GithubState): import("@deepseek-ai/dsh-tools").ToolDefinition;
|
|
84
|
+
/** `pr_merge`: merge a pull request (write; approval-gated upstream). */
|
|
85
|
+
export declare function prMergeTool(state: GithubState): import("@deepseek-ai/dsh-tools").ToolDefinition;
|
|
86
|
+
/** `pr_update`: edit a pull request (write; approval-gated upstream). */
|
|
87
|
+
export declare function prUpdateTool(state: GithubState): import("@deepseek-ai/dsh-tools").ToolDefinition;
|
|
88
|
+
/** `gh_repo`: read one repository's metadata (read; concurrency-safe). */
|
|
89
|
+
export declare function ghRepoTool(state: GithubState): import("@deepseek-ai/dsh-tools").ToolDefinition;
|
|
90
|
+
/** `gh_file`: read one file from a repository (read; concurrency-safe). */
|
|
91
|
+
export declare function ghFileTool(state: GithubState): import("@deepseek-ai/dsh-tools").ToolDefinition;
|
|
21
92
|
//# sourceMappingURL=tools.d.ts.map
|
package/lib/tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAkB,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAA;AAClF,OAAO,EAMW,KAAK,gBAAgB,EAEtC,MAAM,cAAc,CAAA;AAOrB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;CAKpB,CAAA;AAEV,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAcf,CAAA;AAEV,wDAAwD;AACxD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,cAAc,GAAG,gBAAgB,CAEzH;AA4FD,2EAA2E;AAC3E,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,mDAoG9C;AAED,2EAA2E;AAC3E,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,mDA8N9C;AAqCD,8FAA8F;AAC9F,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,mDA0FhD;AAED,kEAAkE;AAClE,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,mDAgI7C;AAED,sEAAsE;AACtE,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,mDA2D/C;AAED,6FAA6F;AAC7F,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,mDAoDlD;AAED,sEAAsE;AACtE,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,mDAyDhD;AAID,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,mDAiG9C;AAED,yEAAyE;AACzE,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,mDAqG7C;AAED,yEAAyE;AACzE,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,mDAgF9C;AAED,0EAA0E;AAC1E,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,mDAuF5C;AAYD,2EAA2E;AAC3E,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,mDAkF5C"}
|