@mastra/github-signals 0.4.1 → 0.5.0-alpha.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/dist/github-app-owner.d.ts +13 -0
- package/dist/github-app-owner.d.ts.map +1 -0
- package/dist/github-auth-env.d.ts +19 -0
- package/dist/github-auth-env.d.ts.map +1 -0
- package/dist/index.cjs +121 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +121 -5
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAE5F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,KAAK,EACV,wBAAwB,EACxB,yBAAyB,EACzB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -6,6 +6,111 @@ import { promisify } from "util";
|
|
|
6
6
|
import { SignalProvider } from "@mastra/core/signals";
|
|
7
7
|
import { createTool } from "@mastra/core/tools";
|
|
8
8
|
import z from "zod";
|
|
9
|
+
//#region src/github-auth-env.ts
|
|
10
|
+
let execFileAsync$2;
|
|
11
|
+
/** Environment variables both gitcrawl and the `gh` CLI treat as a GitHub credential. */
|
|
12
|
+
const GITHUB_TOKEN_ENV_VARS = ["GH_TOKEN", "GITHUB_TOKEN"];
|
|
13
|
+
/** Remove every casing of the token variables: Windows treats environment names case-insensitively. */
|
|
14
|
+
function withoutGithubTokens(env) {
|
|
15
|
+
const scrubbed = { ...env };
|
|
16
|
+
for (const name of Object.keys(scrubbed)) if (GITHUB_TOKEN_ENV_VARS.some((tokenEnv) => tokenEnv.toLowerCase() === name.toLowerCase())) delete scrubbed[name];
|
|
17
|
+
return scrubbed;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Resolve a GitHub credential from the global `gh` CLI and return an environment
|
|
21
|
+
* that presents it to a child process.
|
|
22
|
+
*
|
|
23
|
+
* gitcrawl takes the first non-empty value of the environment variable named by
|
|
24
|
+
* `[github].token_env` (default `GITHUB_TOKEN`) and only discovers it is invalid
|
|
25
|
+
* when GitHub rejects it, so a stale exported token fails `sync` outright even
|
|
26
|
+
* when `gh` can still mint a working credential. Injecting a credential here
|
|
27
|
+
* makes gitcrawl's own env lookup win, so the stale value is never consulted.
|
|
28
|
+
*
|
|
29
|
+
* `gh auth token` is asked with the token variables removed: `gh` answers with
|
|
30
|
+
* `GH_TOKEN`/`GITHUB_TOKEN` verbatim when either is set, which would hand back
|
|
31
|
+
* the very credential being replaced.
|
|
32
|
+
*
|
|
33
|
+
* Returns `undefined` when no credential can be resolved, so callers leave the
|
|
34
|
+
* inherited environment untouched rather than stripping a working token.
|
|
35
|
+
*/
|
|
36
|
+
async function resolveGithubAuthEnv() {
|
|
37
|
+
const scrubbed = withoutGithubTokens(process.env);
|
|
38
|
+
if (!execFileAsync$2) {
|
|
39
|
+
const { execFile } = await import("child_process");
|
|
40
|
+
execFileAsync$2 = promisify(execFile);
|
|
41
|
+
}
|
|
42
|
+
let token;
|
|
43
|
+
try {
|
|
44
|
+
const { stdout } = await execFileAsync$2("gh", ["auth", "token"], { env: scrubbed });
|
|
45
|
+
token = stdout.trim();
|
|
46
|
+
} catch {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
if (!token) return void 0;
|
|
50
|
+
return {
|
|
51
|
+
...process.env,
|
|
52
|
+
GH_TOKEN: token,
|
|
53
|
+
GITHUB_TOKEN: token
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
//#endregion
|
|
57
|
+
//#region src/github-app-owner.ts
|
|
58
|
+
const OWNER_CACHE_TTL_MS = 1440 * 60 * 1e3;
|
|
59
|
+
let execFileAsync$1;
|
|
60
|
+
const defaultRunGhApi = async (args) => {
|
|
61
|
+
if (!execFileAsync$1) {
|
|
62
|
+
const { execFile } = await import("child_process");
|
|
63
|
+
execFileAsync$1 = promisify(execFile);
|
|
64
|
+
}
|
|
65
|
+
return execFileAsync$1("gh", args, { env: await resolveGithubAuthEnv() });
|
|
66
|
+
};
|
|
67
|
+
var GithubAppOwnerResolver = class {
|
|
68
|
+
#cache = /* @__PURE__ */ new Map();
|
|
69
|
+
#runGhApi;
|
|
70
|
+
constructor(runGhApi = defaultRunGhApi) {
|
|
71
|
+
this.#runGhApi = runGhApi;
|
|
72
|
+
}
|
|
73
|
+
async getOwner(botLogin, isCurrentGeneration) {
|
|
74
|
+
const appSlug = botLogin.replace(/\[bot\]$/i, "");
|
|
75
|
+
if (!appSlug || isCurrentGeneration && !isCurrentGeneration()) return void 0;
|
|
76
|
+
const cacheKey = appSlug.toLowerCase();
|
|
77
|
+
const cached = this.#cache.get(cacheKey);
|
|
78
|
+
if (cached?.expiresAt && cached.expiresAt > Date.now()) {
|
|
79
|
+
if (isCurrentGeneration && !isCurrentGeneration()) return void 0;
|
|
80
|
+
return cached.owner;
|
|
81
|
+
}
|
|
82
|
+
if (cached) this.#cache.delete(cacheKey);
|
|
83
|
+
try {
|
|
84
|
+
const { stdout } = await this.#runGhApi(["api", `apps/${appSlug}`]);
|
|
85
|
+
const parsed = JSON.parse(stdout);
|
|
86
|
+
const owner = this.#parseOwner(parsed);
|
|
87
|
+
if (!owner || isCurrentGeneration && !isCurrentGeneration()) return void 0;
|
|
88
|
+
this.#cache.set(cacheKey, {
|
|
89
|
+
owner,
|
|
90
|
+
expiresAt: Date.now() + OWNER_CACHE_TTL_MS
|
|
91
|
+
});
|
|
92
|
+
if (isCurrentGeneration && !isCurrentGeneration()) {
|
|
93
|
+
this.#cache.delete(cacheKey);
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
return owner;
|
|
97
|
+
} catch {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
#parseOwner(value) {
|
|
102
|
+
if (!value || typeof value !== "object" || !("owner" in value)) return void 0;
|
|
103
|
+
const owner = value.owner;
|
|
104
|
+
if (!owner || typeof owner !== "object" || !("login" in owner) || !("type" in owner)) return void 0;
|
|
105
|
+
if (typeof owner.login !== "string" || !owner.login.trim()) return void 0;
|
|
106
|
+
if (owner.type !== "User" && owner.type !== "Organization") return void 0;
|
|
107
|
+
return {
|
|
108
|
+
login: owner.login,
|
|
109
|
+
type: owner.type
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
//#endregion
|
|
9
114
|
//#region src/index.ts
|
|
10
115
|
let _execFileAsync;
|
|
11
116
|
async function execFileAsync(file, args, options) {
|
|
@@ -579,7 +684,8 @@ var GitcrawlSyncClient = class {
|
|
|
579
684
|
const { stdout, stderr } = await execFileAsync(this.#command, args, {
|
|
580
685
|
cwd: input.cwd,
|
|
581
686
|
signal: input.abortSignal,
|
|
582
|
-
maxBuffer: 10 * 1024 * 1024
|
|
687
|
+
maxBuffer: 10 * 1024 * 1024,
|
|
688
|
+
env: await resolveGithubAuthEnv()
|
|
583
689
|
});
|
|
584
690
|
return {
|
|
585
691
|
ok: true,
|
|
@@ -640,12 +746,12 @@ var GitcrawlSyncClient = class {
|
|
|
640
746
|
join repositories r on r.id=t.repo_id
|
|
641
747
|
where r.owner=${owner} and r.name=${repo} and t.number=${number} and rt.is_resolved=0`);
|
|
642
748
|
const latestComments = await this.#queryDb(`select c.author_login, c.author_type, c.is_bot, c.body, json_extract(c.raw_json, '$.html_url') as html_url,
|
|
643
|
-
coalesce(c.updated_at_gh, c.created_at_gh) as updated_at
|
|
749
|
+
coalesce(c.updated_at_gh, c.created_at_gh, json_extract(c.raw_json, '$.submitted_at')) as updated_at
|
|
644
750
|
from comments c
|
|
645
751
|
join threads t on t.id=c.thread_id
|
|
646
752
|
join repositories r on r.id=t.repo_id
|
|
647
753
|
where r.owner=${owner} and r.name=${repo} and t.number=${number}
|
|
648
|
-
order by coalesce(c.updated_at_gh, c.created_at_gh) desc
|
|
754
|
+
order by coalesce(c.updated_at_gh, c.created_at_gh, json_extract(c.raw_json, '$.submitted_at')) desc
|
|
649
755
|
limit 20`);
|
|
650
756
|
const latestComment = latestComments[0];
|
|
651
757
|
const checks = normalizeGithubChecksForSnapshot({
|
|
@@ -770,6 +876,7 @@ var GithubSignals = class extends SignalProvider {
|
|
|
770
876
|
#options;
|
|
771
877
|
#syncClient;
|
|
772
878
|
#repositoryResolver;
|
|
879
|
+
#appOwnerResolver;
|
|
773
880
|
#polling = /* @__PURE__ */ new Map();
|
|
774
881
|
#pollingThreadGenerations = /* @__PURE__ */ new Map();
|
|
775
882
|
#pollingGeneration = 0;
|
|
@@ -783,6 +890,7 @@ var GithubSignals = class extends SignalProvider {
|
|
|
783
890
|
this.#options = options;
|
|
784
891
|
this.#syncClient = options.syncClient ?? new GitcrawlSyncClient({ command: options.gitcrawlCommand });
|
|
785
892
|
this.#repositoryResolver = options.repositoryResolver ?? new GitRemoteRepositoryResolver();
|
|
893
|
+
this.#appOwnerResolver = new GithubAppOwnerResolver();
|
|
786
894
|
if (options.getNotificationStreamOptions) this.#agentOptions = { getNotificationStreamOptions: options.getNotificationStreamOptions };
|
|
787
895
|
}
|
|
788
896
|
/**
|
|
@@ -1401,7 +1509,15 @@ var GithubSignals = class extends SignalProvider {
|
|
|
1401
1509
|
const normalizedUser = user.toLowerCase();
|
|
1402
1510
|
if (metadata.isBot === true || metadata.authorType?.toLowerCase() === "bot" || normalizedUser.endsWith("[bot]")) {
|
|
1403
1511
|
if ((this.#options.ignoredBots ?? []).some((bot) => bot.toLowerCase() === normalizedUser)) return false;
|
|
1404
|
-
|
|
1512
|
+
if ((this.#options.authorizedBots ?? DEFAULT_AUTHORIZED_BOTS).some((bot) => bot.toLowerCase() === normalizedUser)) return true;
|
|
1513
|
+
const appOwner = await this.#appOwnerResolver.getOwner(user, isCurrentGeneration);
|
|
1514
|
+
if (!appOwner || isCurrentGeneration && !isCurrentGeneration()) return false;
|
|
1515
|
+
if (appOwner.type === "Organization") return appOwner.login.toLowerCase() === owner.toLowerCase();
|
|
1516
|
+
if (appOwner.type !== "User") return false;
|
|
1517
|
+
const permission = await this.#loadAuthorPermission(owner, repo, appOwner.login, isCurrentGeneration);
|
|
1518
|
+
if (isCurrentGeneration && !isCurrentGeneration()) return false;
|
|
1519
|
+
const authorizedPermissions = this.#options.authorizedPermissions ?? DEFAULT_AUTHORIZED_PERMISSIONS;
|
|
1520
|
+
return !!permission && authorizedPermissions.includes(permission);
|
|
1405
1521
|
}
|
|
1406
1522
|
const permission = await this.#loadAuthorPermission(owner, repo, user, isCurrentGeneration);
|
|
1407
1523
|
if (isCurrentGeneration && !isCurrentGeneration()) return false;
|
|
@@ -1463,7 +1579,7 @@ var GithubSignals = class extends SignalProvider {
|
|
|
1463
1579
|
`repos/${owner}/${repo}/collaborators/${user}/permission`,
|
|
1464
1580
|
"--jq",
|
|
1465
1581
|
".permission"
|
|
1466
|
-
]);
|
|
1582
|
+
], { env: await resolveGithubAuthEnv() });
|
|
1467
1583
|
const raw = stdout.trim();
|
|
1468
1584
|
permission = [
|
|
1469
1585
|
"admin",
|