@open-everywhere/provider-github 0.8.1 → 0.9.0
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/agent/app-manifest.ts +39 -17
- package/agent/channels/github-catch-up.ts +9 -4
- package/agent/channels/github-credentials.ts +41 -0
- package/agent/channels/github-engagement.ts +1 -1
- package/agent/channels/github-event-reach.ts +9 -4
- package/agent/channels/github-post-arm.ts +15 -12
- package/agent/channels/github-reaction-feedback.ts +2 -2
- package/agent/channels/github.ts +58 -14
- package/agent/docs-generated.ts +42 -23
- package/agent/memory/memory.ts +13 -12
- package/agent/ops.ts +9 -6
- package/dist/agent/app-manifest.d.ts +16 -3
- package/dist/agent/app-manifest.d.ts.map +1 -1
- package/dist/agent/app-manifest.js +32 -17
- package/dist/agent/app-manifest.js.map +1 -1
- package/dist/agent/channels/github-catch-up.d.ts.map +1 -1
- package/dist/agent/channels/github-catch-up.js +9 -5
- package/dist/agent/channels/github-catch-up.js.map +1 -1
- package/dist/agent/channels/github-credentials.d.ts +10 -0
- package/dist/agent/channels/github-credentials.d.ts.map +1 -0
- package/dist/agent/channels/github-credentials.js +40 -0
- package/dist/agent/channels/github-credentials.js.map +1 -0
- package/dist/agent/channels/github-engagement.d.ts +1 -1
- package/dist/agent/channels/github-engagement.js +1 -1
- package/dist/agent/channels/github-event-reach.d.ts +3 -2
- package/dist/agent/channels/github-event-reach.d.ts.map +1 -1
- package/dist/agent/channels/github-event-reach.js +8 -4
- package/dist/agent/channels/github-event-reach.js.map +1 -1
- package/dist/agent/channels/github-post-arm.d.ts.map +1 -1
- package/dist/agent/channels/github-post-arm.js +15 -14
- package/dist/agent/channels/github-post-arm.js.map +1 -1
- package/dist/agent/channels/github-reaction-feedback.d.ts +1 -1
- package/dist/agent/channels/github-reaction-feedback.js +2 -2
- package/dist/agent/channels/github-reaction-feedback.js.map +1 -1
- package/dist/agent/channels/github.d.ts +33 -0
- package/dist/agent/channels/github.d.ts.map +1 -1
- package/dist/agent/channels/github.js +57 -13
- package/dist/agent/channels/github.js.map +1 -1
- package/dist/agent/docs-generated.d.ts.map +1 -1
- package/dist/agent/docs-generated.js +42 -23
- package/dist/agent/docs-generated.js.map +1 -1
- package/dist/agent/memory/memory.d.ts +1 -0
- package/dist/agent/memory/memory.d.ts.map +1 -1
- package/dist/agent/memory/memory.js +12 -12
- package/dist/agent/memory/memory.js.map +1 -1
- package/dist/agent/ops.d.ts.map +1 -1
- package/dist/agent/ops.js +9 -6
- package/dist/agent/ops.js.map +1 -1
- package/package.json +6 -2
package/agent/memory/memory.ts
CHANGED
|
@@ -39,16 +39,16 @@ import {
|
|
|
39
39
|
getGitHubApp,
|
|
40
40
|
MEMORY_WRITE_PERMISSIONS,
|
|
41
41
|
warmCredential,
|
|
42
|
+
getSettings,
|
|
42
43
|
} from "@open-everywhere/core/agent/adapter-api.js";
|
|
43
44
|
|
|
44
|
-
const DEFAULT_BRANCH = process.env.OE_MEMORY_GIT_BRANCH || "main";
|
|
45
|
-
|
|
46
45
|
export interface GitHubMemoryDeps {
|
|
47
46
|
readonly contents: GitHubContents;
|
|
48
47
|
/** Mint a scoped contents:write token for one "owner/repo". */
|
|
49
48
|
mintToken(repo: string): Promise<string>;
|
|
50
49
|
/** The bot commit identity (open-everywhere[bot]). */
|
|
51
50
|
committer(): CommitId;
|
|
51
|
+
/** The branch to read and commit. Absent ⇒ the `memory.gitBranch` setting, read per call (OPE-2650: was `OE_MEMORY_GIT_BRANCH`). */
|
|
52
52
|
readonly branch?: string;
|
|
53
53
|
}
|
|
54
54
|
|
|
@@ -66,17 +66,18 @@ function repoPath(silo: MemorySilo, p: Partition, tier: Tier): string {
|
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
export function makeGitHubProvider(deps: GitHubMemoryDeps): MemoryProvider {
|
|
69
|
-
|
|
69
|
+
// Per call, not at construction: a deployment's `memory.gitBranch` then reaches every read and write.
|
|
70
|
+
const branchOf = (): string => deps.branch ?? getSettings().memory.gitBranch;
|
|
70
71
|
|
|
71
72
|
async function read(p: Partition, tier: Tier, siloArg?: MemorySilo): Promise<MemoryFiles> {
|
|
72
73
|
const silo = requireSilo(siloArg);
|
|
73
74
|
const repo = silo.container!;
|
|
74
75
|
const dir = repoPath(silo, p, tier);
|
|
75
76
|
const token = await deps.mintToken(repo);
|
|
76
|
-
const shas = await deps.contents.listFiles(repo, dir,
|
|
77
|
+
const shas = await deps.contents.listFiles(repo, dir, branchOf(), token, makeSelector(normalizeSelection(silo)));
|
|
77
78
|
const out: MemoryFiles = {};
|
|
78
79
|
for (const rel of Object.keys(shas)) {
|
|
79
|
-
const file = await deps.contents.getFile(repo, `${dir}/${rel}`,
|
|
80
|
+
const file = await deps.contents.getFile(repo, `${dir}/${rel}`, branchOf(), token);
|
|
80
81
|
if (file) out[rel] = file.content;
|
|
81
82
|
}
|
|
82
83
|
return out;
|
|
@@ -92,10 +93,10 @@ export function makeGitHubProvider(deps: GitHubMemoryDeps): MemoryProvider {
|
|
|
92
93
|
let changed = false;
|
|
93
94
|
for (const [rel, content] of Object.entries(files)) {
|
|
94
95
|
const path = `${dir}/${rel}`;
|
|
95
|
-
const existing = await deps.contents.getFile(repo, path,
|
|
96
|
+
const existing = await deps.contents.getFile(repo, path, branchOf(), token);
|
|
96
97
|
if (existing && existing.content === content) continue; // unchanged → skip (no-op)
|
|
97
98
|
changed = true;
|
|
98
|
-
last = await deps.contents.putFile(repo, path, content, message,
|
|
99
|
+
last = await deps.contents.putFile(repo, path, content, message, branchOf(), token, committer, existing?.sha);
|
|
99
100
|
}
|
|
100
101
|
return changed ? last : null; // null when nothing changed (matches the provider contract)
|
|
101
102
|
}
|
|
@@ -119,7 +120,7 @@ export function makeGitHubProvider(deps: GitHubMemoryDeps): MemoryProvider {
|
|
|
119
120
|
const repo = silo.container!;
|
|
120
121
|
const dir = repoPath(silo, p, tier);
|
|
121
122
|
const token = await deps.mintToken(repo);
|
|
122
|
-
const shas = await deps.contents.listFiles(repo, dir,
|
|
123
|
+
const shas = await deps.contents.listFiles(repo, dir, branchOf(), token, makeSelector(normalizeSelection(silo)));
|
|
123
124
|
const entries = Object.entries(shas).sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0));
|
|
124
125
|
if (entries.length === 0) return null;
|
|
125
126
|
const h = createHash("sha1");
|
|
@@ -140,7 +141,7 @@ export function makeGitHubProvider(deps: GitHubMemoryDeps): MemoryProvider {
|
|
|
140
141
|
const repo = silo.container!;
|
|
141
142
|
const path = `${repoPath(silo, p, tier)}/${relPath}`;
|
|
142
143
|
const token = await deps.mintToken(repo);
|
|
143
|
-
const existing = await deps.contents.getFile(repo, path,
|
|
144
|
+
const existing = await deps.contents.getFile(repo, path, branchOf(), token);
|
|
144
145
|
if (!existing) return null; // already absent — idempotent, matches writeTier's "nothing changed"
|
|
145
146
|
const committer = deps.committer();
|
|
146
147
|
// Any failure here (permission, network, a stale sha — the file changed between
|
|
@@ -149,7 +150,7 @@ export function makeGitHubProvider(deps: GitHubMemoryDeps): MemoryProvider {
|
|
|
149
150
|
// propagates to the caller uncaught — control/writes.ts's memory_delete_file
|
|
150
151
|
// catches it, surfaces a structured error, AND audits the failed attempt. Never a
|
|
151
152
|
// silent no-op reporting `deleted: true` while the file survives.
|
|
152
|
-
return deps.contents.deleteFile(repo, path, existing.sha, `delete ${relPath} from ${tier.kind} memory`,
|
|
153
|
+
return deps.contents.deleteFile(repo, path, existing.sha, `delete ${relPath} from ${tier.kind} memory`, branchOf(), token, committer);
|
|
153
154
|
},
|
|
154
155
|
deleteTier: async (p, tier, siloArg) => {
|
|
155
156
|
const silo = requireSilo(siloArg);
|
|
@@ -157,9 +158,9 @@ export function makeGitHubProvider(deps: GitHubMemoryDeps): MemoryProvider {
|
|
|
157
158
|
const dir = repoPath(silo, p, tier);
|
|
158
159
|
const token = await deps.mintToken(repo);
|
|
159
160
|
const committer = deps.committer();
|
|
160
|
-
const shas = await deps.contents.listFiles(repo, dir,
|
|
161
|
+
const shas = await deps.contents.listFiles(repo, dir, branchOf(), token, makeSelector(normalizeSelection(silo)));
|
|
161
162
|
for (const [rel, sha] of Object.entries(shas)) {
|
|
162
|
-
await deps.contents.deleteFile(repo, `${dir}/${rel}`, sha, `delete ${tier.kind} memory`,
|
|
163
|
+
await deps.contents.deleteFile(repo, `${dir}/${rel}`, sha, `delete ${tier.kind} memory`, branchOf(), token, committer);
|
|
163
164
|
}
|
|
164
165
|
},
|
|
165
166
|
};
|
package/agent/ops.ts
CHANGED
|
@@ -4,19 +4,22 @@
|
|
|
4
4
|
// no agent boot) can register it without pulling the whole channel graph — the same split slack
|
|
5
5
|
// and teams use.
|
|
6
6
|
//
|
|
7
|
-
// This file (not core) owns the credential-probe use of
|
|
8
|
-
//
|
|
9
|
-
//
|
|
10
|
-
// zero-residue fingerprint, only the telemetry
|
|
7
|
+
// This file (not core) owns the credential-probe use of the `github.appId` setting (was the
|
|
8
|
+
// OE_GITHUB_APP_ID env var until OPE-2650). The setting stays known to core too
|
|
9
|
+
// (packages/core/agent/scm/config.ts) — the SCM subsystem is a SEPARATE concern that stays in core by
|
|
10
|
+
// doctrine (see register.ts's header) — so this is not a zero-residue fingerprint, only the telemetry
|
|
11
|
+
// probe's own home.
|
|
11
12
|
//
|
|
12
13
|
// ONE-CLICK APP CREATION (OPE-2529): it also registers the GitHub App manifest flow, which the
|
|
13
14
|
// `surface_app_create` ops tool drives. The manifest and the code exchange live in app-manifest.ts.
|
|
14
15
|
|
|
15
|
-
import { registerSurfaceAppCreateFlow, registerSurfaceCredentialProbe } from "@open-everywhere/core/agent/adapter-api-ops.js";
|
|
16
|
+
import { getSettings, registerOperatorSecretNames, registerSurfaceAppCreateFlow, registerSurfaceCredentialProbe } from "@open-everywhere/core/agent/adapter-api-ops.js";
|
|
16
17
|
import { GITHUB_APP_CREATE_FLOW } from "./app-manifest.js";
|
|
17
18
|
|
|
18
19
|
/** Register the github ops-plane arms (telemetry presence probe, one-click App creation). */
|
|
19
20
|
export function registerGithubOps(): void {
|
|
20
|
-
registerSurfaceCredentialProbe("github", () =>
|
|
21
|
+
registerSurfaceCredentialProbe("github", () => getSettings().github.appId !== "");
|
|
21
22
|
registerSurfaceAppCreateFlow("github", GITHUB_APP_CREATE_FLOW);
|
|
23
|
+
// The webhook secret is an operator secret (OPE-2650); core registers the App key itself.
|
|
24
|
+
registerOperatorSecretNames(["GITHUB_WEBHOOK_SECRET"]);
|
|
22
25
|
}
|
|
@@ -20,11 +20,24 @@ export declare function githubAppManifest(opts: {
|
|
|
20
20
|
readonly redirectUrl: string;
|
|
21
21
|
readonly appName?: string;
|
|
22
22
|
}): Record<string, unknown>;
|
|
23
|
-
/** The env names a created App fills, for each shape. The OE_
|
|
24
|
-
* bare
|
|
23
|
+
/** The env names a created App fills, for each shape — its SECRETS only. The OE_ key is the
|
|
24
|
+
* source-control plane's; the bare key is the conversational surface's (docs/deploy/surfaces/github.md).
|
|
25
|
+
* One App serves both. Which App it is (id, slug, client id, bot user id) is the `github.*` settings
|
|
26
|
+
* since OPE-2650, so no id is an env name here: see {@link githubAppSettings}. */
|
|
25
27
|
export declare function githubAppEnvNames(variant: GithubAppVariant): string[];
|
|
28
|
+
/** The PUBLIC settings a created App fills, setting path → value (OPE-2650). The source-control plane and
|
|
29
|
+
* the conversation surface read the one `github.appId`/`github.appSlug`. `github.conversation` arms the
|
|
30
|
+
* conversation surface, so it is `true` for the `full` App only: a `source-control` App subscribes to no
|
|
31
|
+
* comment event and must start no conversation. */
|
|
32
|
+
export declare function githubAppSettings(app: {
|
|
33
|
+
readonly variant: GithubAppVariant;
|
|
34
|
+
readonly id: string;
|
|
35
|
+
readonly slug: string;
|
|
36
|
+
readonly clientId: string;
|
|
37
|
+
readonly botUserId?: string;
|
|
38
|
+
}): Record<string, string | boolean>;
|
|
26
39
|
/**
|
|
27
|
-
* Turn the redirect's code into this deployment's env. One POST to GitHub's conversion endpoint
|
|
40
|
+
* Turn the redirect's code into this deployment's env and settings. One POST to GitHub's conversion endpoint
|
|
28
41
|
* (it needs no credential: the code is the proof, and it is single-use and lives one hour), then a
|
|
29
42
|
* public read of the App's bot user for the commit e-mail. That second read is fail-soft: without
|
|
30
43
|
* it the plane falls back to the App id (docs/capabilities/source-control.md).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-manifest.d.ts","sourceRoot":"","sources":["../../agent/app-manifest.ts"],"names":[],"mappings":"AAqBA,OAAO,EAKL,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC5B,MAAM,gDAAgD,CAAC;AAGxD,iCAAiC;AACjC,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAKtC;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAY7D,CAAC;AAEF,0DAA0D;AAC1D,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,gBAAgB,CAAC;AAazD,+FAA+F;AAC/F,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAMnE;AAED,iGAAiG;AACjG,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAG/F;AAED,mFAAmF;AACnF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAgB1B;AAED;
|
|
1
|
+
{"version":3,"file":"app-manifest.d.ts","sourceRoot":"","sources":["../../agent/app-manifest.ts"],"names":[],"mappings":"AAqBA,OAAO,EAKL,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC5B,MAAM,gDAAgD,CAAC;AAGxD,iCAAiC;AACjC,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAKtC;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAY7D,CAAC;AAEF,0DAA0D;AAC1D,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,gBAAgB,CAAC;AAazD,+FAA+F;AAC/F,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAMnE;AAED,iGAAiG;AACjG,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAG/F;AAED,mFAAmF;AACnF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAgB1B;AAED;;;mFAGmF;AACnF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAIrE;AAED;;;oDAGoD;AACpD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE;IACrC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAQnC;AAcD;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAAC,IAAI,EAAE;IACrD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,OAAO,KAAK,CAAC;CAChC,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAuClC;AAID,mDAAmD;AACnD,eAAO,MAAM,sBAAsB,EAAE,oBA0BpC,CAAC;AAIF,sGAAsG;AACtG,wBAAgB,2BAA2B,IAAI,MAAM,CAqBpD"}
|
|
@@ -84,16 +84,32 @@ export function githubAppManifest(opts) {
|
|
|
84
84
|
default_events: githubAppEvents(opts.variant),
|
|
85
85
|
};
|
|
86
86
|
}
|
|
87
|
-
/** The env names a created App fills, for each shape. The OE_
|
|
88
|
-
* bare
|
|
87
|
+
/** The env names a created App fills, for each shape — its SECRETS only. The OE_ key is the
|
|
88
|
+
* source-control plane's; the bare key is the conversational surface's (docs/deploy/surfaces/github.md).
|
|
89
|
+
* One App serves both. Which App it is (id, slug, client id, bot user id) is the `github.*` settings
|
|
90
|
+
* since OPE-2650, so no id is an env name here: see {@link githubAppSettings}. */
|
|
89
91
|
export function githubAppEnvNames(variant) {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
+
// ONE private-key name for both variants (OPE-2650 folded OE_GITHUB_APP_PRIVATE_KEY into it): the key
|
|
93
|
+
// and the webhook secret are operator secrets, so `secret_set` moves them from .env.local into the store.
|
|
94
|
+
return ["GITHUB_APP_PRIVATE_KEY", "GITHUB_WEBHOOK_SECRET"];
|
|
95
|
+
}
|
|
96
|
+
/** The PUBLIC settings a created App fills, setting path → value (OPE-2650). The source-control plane and
|
|
97
|
+
* the conversation surface read the one `github.appId`/`github.appSlug`. `github.conversation` arms the
|
|
98
|
+
* conversation surface, so it is `true` for the `full` App only: a `source-control` App subscribes to no
|
|
99
|
+
* comment event and must start no conversation. */
|
|
100
|
+
export function githubAppSettings(app) {
|
|
101
|
+
return {
|
|
102
|
+
"github.appId": app.id,
|
|
103
|
+
"github.appSlug": app.slug,
|
|
104
|
+
"github.appClientId": app.clientId,
|
|
105
|
+
...(app.botUserId === undefined ? {} : { "github.botUserId": app.botUserId }),
|
|
106
|
+
"github.conversation": app.variant === "full",
|
|
107
|
+
};
|
|
92
108
|
}
|
|
93
109
|
const API = "https://api.github.com";
|
|
94
110
|
const HEADERS = { accept: "application/vnd.github+json", "x-github-api-version": "2022-11-28" };
|
|
95
111
|
/**
|
|
96
|
-
* Turn the redirect's code into this deployment's env. One POST to GitHub's conversion endpoint
|
|
112
|
+
* Turn the redirect's code into this deployment's env and settings. One POST to GitHub's conversion endpoint
|
|
97
113
|
* (it needs no credential: the code is the proof, and it is single-use and lives one hour), then a
|
|
98
114
|
* public read of the App's bot user for the commit e-mail. That second read is fail-soft: without
|
|
99
115
|
* it the plane falls back to the App id (docs/capabilities/source-control.md).
|
|
@@ -123,27 +139,25 @@ export async function exchangeGithubManifestCode(opts) {
|
|
|
123
139
|
if (missing.length > 0)
|
|
124
140
|
throw new Error(`GitHub's reply lacked ${missing.join(", ")}`);
|
|
125
141
|
const env = {
|
|
126
|
-
|
|
127
|
-
OE_GITHUB_APP_SLUG: slug,
|
|
128
|
-
OE_GITHUB_APP_PRIVATE_KEY: pem,
|
|
129
|
-
OE_GITHUB_APP_CLIENT_ID: clientId,
|
|
142
|
+
GITHUB_APP_PRIVATE_KEY: pem,
|
|
130
143
|
GITHUB_WEBHOOK_SECRET: webhookSecret,
|
|
131
144
|
};
|
|
132
|
-
|
|
133
|
-
env.GITHUB_APP_ID = id;
|
|
134
|
-
env.GITHUB_APP_SLUG = slug;
|
|
135
|
-
env.GITHUB_APP_PRIVATE_KEY = pem;
|
|
136
|
-
}
|
|
145
|
+
let botUserId;
|
|
137
146
|
try {
|
|
138
147
|
const bot = await opts.fetchFn(`${API}/users/${encodeURIComponent(`${slug}[bot]`)}`, { headers: HEADERS });
|
|
139
148
|
const botId = bot.ok ? str((await bot.json()).id) : undefined;
|
|
140
149
|
if (botId !== undefined && /^\d+$/.test(botId))
|
|
141
|
-
|
|
150
|
+
botUserId = botId;
|
|
142
151
|
}
|
|
143
152
|
catch {
|
|
144
153
|
// Fail-soft, see above.
|
|
145
154
|
}
|
|
146
|
-
return {
|
|
155
|
+
return {
|
|
156
|
+
env,
|
|
157
|
+
settings: githubAppSettings({ variant: opts.variant, id: id, slug: slug, clientId: clientId, ...(botUserId === undefined ? {} : { botUserId }) }),
|
|
158
|
+
appName: str(body.name) ?? slug,
|
|
159
|
+
installUrl: `https://github.com/apps/${encodeURIComponent(slug)}/installations/new`,
|
|
160
|
+
};
|
|
147
161
|
}
|
|
148
162
|
const isVariant = (v) => GITHUB_APP_VARIANTS.some((x) => x.name === v);
|
|
149
163
|
/** The flow core's `surface_app_create` drives. */
|
|
@@ -165,7 +179,8 @@ export const GITHUB_APP_CREATE_FLOW = {
|
|
|
165
179
|
// App's one `installation` delivery. Before the redeploy it does not hold the App's webhook secret, so
|
|
166
180
|
// it refuses that delivery with a 401 and never learns the installation.
|
|
167
181
|
after: [
|
|
168
|
-
"
|
|
182
|
+
"Commit the returned settings to agent/settings/settings.ts as `github: { appId, appSlug, appClientId, botUserId, conversation }` (public values, safe in Git). Keep any other github key the file already sets.",
|
|
183
|
+
"Store each written name in the deployment's credential store: call the ops tool secret_set with names [\"GITHUB_APP_PRIVATE_KEY\", \"GITHUB_WEBHOOK_SECRET\"] (they are operator secrets, OPE-2650), then redeploy with the settings change.",
|
|
169
184
|
"Only after that redeploy, install the app on the repositories the agent works in: open the install link. Installing first sends the app's installation delivery to a deployment that does not hold the new webhook secret yet, and it refuses that delivery.",
|
|
170
185
|
"Optional: on the app's settings page, under Display information, upload the project mark as its logo. The manifest has no logo field.",
|
|
171
186
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-manifest.js","sourceRoot":"","sources":["../../agent/app-manifest.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"app-manifest.js","sourceRoot":"","sources":["../../agent/app-manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-catch-up.d.ts","sourceRoot":"","sources":["../../../agent/channels/github-catch-up.ts"],"names":[],"mappings":"AAuBA,OAAO,
|
|
1
|
+
{"version":3,"file":"github-catch-up.d.ts","sourceRoot":"","sources":["../../../agent/channels/github-catch-up.ts"],"names":[],"mappings":"AAuBA,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,gBAAgB,EACtB,MAAM,4CAA4C,CAAC;AAkDpD,wGAAwG;AACxG,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B;4FACwF;IACxF,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9D;gGAC4F;IAC5F,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAcD,wFAAwF;AACxF,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAC3C,IAAI,GAAE,iBAA4B,GACjC,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC,CAiBvC;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,6BAA6B,OAAQ,CAAC;AAEnD,gHAAgH;AAChH,eAAO,MAAM,sBAAsB,EAAE,gBAAwG,CAAC"}
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
//
|
|
21
21
|
// An unparseable container yields `[]`. A credential/transport/read error propagates to core's
|
|
22
22
|
// shared seatCatchUp boundary, which keeps the wake alive and records `failed` (OPE-1842).
|
|
23
|
-
import { catchUpSender, resolveSurfaceReadToken, } from "@open-everywhere/core/agent/adapter-api.js";
|
|
23
|
+
import { catchUpSender, getSettings, resolveSurfaceReadToken, } from "@open-everywhere/core/agent/adapter-api.js";
|
|
24
24
|
import { getJson, liveGithubReadFetch, parseGithubContainer } from "./github-read.js";
|
|
25
25
|
const API_BASE = "https://api.github.com";
|
|
26
26
|
/** GitHub's page ceiling for the comments endpoint. ONE page: the catch-up window is "since the seat
|
|
@@ -61,12 +61,16 @@ function normalizeComment(c, selfLogin) {
|
|
|
61
61
|
text,
|
|
62
62
|
};
|
|
63
63
|
}
|
|
64
|
+
// The GitHub App's comment author is `<app-slug>[bot]`; the deployment states its own slug in the
|
|
65
|
+
// `github.appSlug` setting (OPE-2650), and an unset one degrades to "our posts look like a bot's",
|
|
66
|
+
// which the admission policy still admits under `wide`. A getter, so each read sees the registered
|
|
67
|
+
// settings rather than the value at module load.
|
|
64
68
|
const liveDeps = {
|
|
65
69
|
fetchFn: liveGithubReadFetch,
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
+
get selfLogin() {
|
|
71
|
+
const slug = getSettings().github.appSlug;
|
|
72
|
+
return slug ? `${slug}[bot]` : undefined;
|
|
73
|
+
},
|
|
70
74
|
};
|
|
71
75
|
/** The fetch, with its seams exposed so the contract test drives it with no network. */
|
|
72
76
|
export async function fetchGitHubCatchUpWindow(req, deps = liveDeps) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-catch-up.js","sourceRoot":"","sources":["../../../agent/channels/github-catch-up.ts"],"names":[],"mappings":"AAAA,oGAAoG;AACpG,+FAA+F;AAC/F,EAAE;AACF,sGAAsG;AACtG,mGAAmG;AACnG,6FAA6F;AAC7F,oGAAoG;AACpG,EAAE;AACF,yFAAyF;AACzF,qGAAqG;AACrG,kGAAkG;AAClG,gGAAgG;AAChG,mGAAmG;AACnG,sFAAsF;AACtF,EAAE;AACF,sGAAsG;AACtG,qGAAqG;AACrG,sGAAsG;AACtG,iEAAiE;AACjE,EAAE;AACF,+FAA+F;AAC/F,2FAA2F;AAE3F,OAAO,EACL,aAAa,EACb,uBAAuB,GAIxB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAEtF,MAAM,QAAQ,GAAG,wBAAwB,CAAC;AAE1C;;iCAEiC;AACjC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAUhC;;;;;;;GAOG;AACH,SAAS,gBAAgB,CAAC,CAAqB,EAAE,SAA6B;IAC5E,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC;IAC5B,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC,CAAC,+BAA+B;IAC7D,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACxC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3C,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,KAAK,CAAC;IACrC,MAAM,MAAM,GAAG,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE,CAAC;IAC1F,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;QACpD,EAAE;QACF,2FAA2F;QAC3F,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QACtC,wFAAwF;QACxF,6EAA6E;QAC7E,MAAM,EAAE,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;QACnD,iFAAiF;QACjF,0FAA0F;QAC1F,IAAI,EAAE,SAAS;QACf,IAAI;KACL,CAAC;AACJ,CAAC;AAaD,MAAM,QAAQ,GAAsB;IAClC,OAAO,EAAE,mBAAmB;IAC5B,
|
|
1
|
+
{"version":3,"file":"github-catch-up.js","sourceRoot":"","sources":["../../../agent/channels/github-catch-up.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** The webhook signing secret, or `undefined` when this deployment holds none (a fault reads as none,
|
|
2
|
+
* logged once — the route then fails closed). */
|
|
3
|
+
export declare function githubWebhookSecret(): Promise<string | undefined>;
|
|
4
|
+
/** The `credentials` block both `githubChannel(...)` instances carry. Each arm throws eve's OWN message
|
|
5
|
+
* when nothing resolves, byte for byte. */
|
|
6
|
+
export declare const githubEveCredentials: {
|
|
7
|
+
readonly privateKey: () => Promise<string>;
|
|
8
|
+
readonly webhookSecret: () => Promise<string>;
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=github-credentials.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-credentials.d.ts","sourceRoot":"","sources":["../../../agent/channels/github-credentials.ts"],"names":[],"mappings":"AAqBA;kDACkD;AAClD,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAEvE;AAED;4CAC4C;AAC5C,eAAO,MAAM,oBAAoB;aAC/B,UAAU,QAAY,OAAO,CAAC,MAAM,CAAC;aAKrC,aAAa,QAAY,OAAO,CAAC,MAAM,CAAC;CAKhC,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// WHERE THE GITHUB BUNDLE'S SECRETS COME FROM (OPE-2650) — the App's private key and the webhook
|
|
2
|
+
// signing secret.
|
|
3
|
+
//
|
|
4
|
+
// Both are OPERATOR SECRETS: `oe secret set GITHUB_APP_PRIVATE_KEY`, `oe secret set
|
|
5
|
+
// GITHUB_WEBHOOK_SECRET`. Core reads them: the db credential store first, the env var of the same name
|
|
6
|
+
// as its warned on-ramp, each store lookup remembered for thirty seconds. The private key has ONE name
|
|
7
|
+
// for the scm plane and this bundle (core's `githubAppPrivateKey`); OPE-2650 folded the
|
|
8
|
+
// OE_GITHUB_APP_PRIVATE_KEY spelling into it.
|
|
9
|
+
//
|
|
10
|
+
// 🔴 EVE MUST BE HANDED BOTH. eve's `githubChannel` resolves `credentials.privateKey` and
|
|
11
|
+
// `credentials.webhookSecret`, and with neither it reads the GITHUB_APP_PRIVATE_KEY and
|
|
12
|
+
// GITHUB_WEBHOOK_SECRET env vars itself, so it would never see a stored value: the native route would
|
|
13
|
+
// 401 every delivery on a deployment that holds the secrets in the store only.
|
|
14
|
+
// {@link githubEveCredentials} is that hand-over. Functions, not values: the read is async, and a value
|
|
15
|
+
// read at module load would pin whatever was true at boot.
|
|
16
|
+
import { githubAppPrivateKey, operatorSecretOrUnset } from "@open-everywhere/core/agent/adapter-api.js";
|
|
17
|
+
/** The operator secret holding the webhook HMAC secret. */
|
|
18
|
+
const GITHUB_WEBHOOK_SECRET_NAME = "GITHUB_WEBHOOK_SECRET";
|
|
19
|
+
/** The webhook signing secret, or `undefined` when this deployment holds none (a fault reads as none,
|
|
20
|
+
* logged once — the route then fails closed). */
|
|
21
|
+
export async function githubWebhookSecret() {
|
|
22
|
+
return await operatorSecretOrUnset(GITHUB_WEBHOOK_SECRET_NAME);
|
|
23
|
+
}
|
|
24
|
+
/** The `credentials` block both `githubChannel(...)` instances carry. Each arm throws eve's OWN message
|
|
25
|
+
* when nothing resolves, byte for byte. */
|
|
26
|
+
export const githubEveCredentials = {
|
|
27
|
+
privateKey: async () => {
|
|
28
|
+
const key = await githubAppPrivateKey();
|
|
29
|
+
if (!key)
|
|
30
|
+
throw new Error("githubChannel: GITHUB_APP_PRIVATE_KEY is required.");
|
|
31
|
+
return key;
|
|
32
|
+
},
|
|
33
|
+
webhookSecret: async () => {
|
|
34
|
+
const secret = await githubWebhookSecret();
|
|
35
|
+
if (!secret)
|
|
36
|
+
throw new Error("githubChannel: GITHUB_WEBHOOK_SECRET is required.");
|
|
37
|
+
return secret;
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=github-credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-credentials.js","sourceRoot":"","sources":["../../../agent/channels/github-credentials.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,kBAAkB;AAClB,EAAE;AACF,oFAAoF;AACpF,uGAAuG;AACvG,uGAAuG;AACvG,wFAAwF;AACxF,8CAA8C;AAC9C,EAAE;AACF,0FAA0F;AAC1F,wFAAwF;AACxF,sGAAsG;AACtG,+EAA+E;AAC/E,wGAAwG;AACxG,2DAA2D;AAE3D,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AAExG,2DAA2D;AAC3D,MAAM,0BAA0B,GAAG,uBAAuB,CAAC;AAE3D;kDACkD;AAClD,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,OAAO,MAAM,qBAAqB,CAAC,0BAA0B,CAAC,CAAC;AACjE,CAAC;AAED;4CAC4C;AAC5C,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,UAAU,EAAE,KAAK,IAAqB,EAAE;QACtC,MAAM,GAAG,GAAG,MAAM,mBAAmB,EAAE,CAAC;QACxC,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QAChF,OAAO,GAAG,CAAC;IACb,CAAC;IACD,aAAa,EAAE,KAAK,IAAqB,EAAE;QACzC,MAAM,MAAM,GAAG,MAAM,mBAAmB,EAAE,CAAC;QAC3C,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QAClF,OAAO,MAAM,CAAC;IAChB,CAAC;CACO,CAAC"}
|
|
@@ -144,7 +144,7 @@ export declare function markGitHubEngaged(f: GitHubSeamFacts, commentId: string
|
|
|
144
144
|
* Is this comment MACHINE-AUTHORED — a GitHub App, a bot account, or this deployment's own reply?
|
|
145
145
|
*
|
|
146
146
|
* 🔴 ONE PREDICATE, AND IT MUST FAIL CLOSED ON AN UNRESOLVED SLUG. `githubBotMentioned` needs the
|
|
147
|
-
* app slug to recognise a mention at all, so before this seam a deployment with no `
|
|
147
|
+
* app slug to recognise a mention at all, so before this seam a deployment with no `github.appSlug`
|
|
148
148
|
* simply never woke natively. A plain comment now reaches the seam, and without the slug the app
|
|
149
149
|
* cannot tell its OWN reply from a person's — so "unknown" answers `true` and nothing is delivered,
|
|
150
150
|
* the same posture `classifyGitHubAmbientComment` takes with its own no-slug drop.
|
|
@@ -222,7 +222,7 @@ async function liveMarkEngageSeen(org, key, atIso) {
|
|
|
222
222
|
* Is this comment MACHINE-AUTHORED — a GitHub App, a bot account, or this deployment's own reply?
|
|
223
223
|
*
|
|
224
224
|
* 🔴 ONE PREDICATE, AND IT MUST FAIL CLOSED ON AN UNRESOLVED SLUG. `githubBotMentioned` needs the
|
|
225
|
-
* app slug to recognise a mention at all, so before this seam a deployment with no `
|
|
225
|
+
* app slug to recognise a mention at all, so before this seam a deployment with no `github.appSlug`
|
|
226
226
|
* simply never woke natively. A plain comment now reaches the seam, and without the slug the app
|
|
227
227
|
* cannot tell its OWN reply from a person's — so "unknown" answers `true` and nothing is delivered,
|
|
228
228
|
* the same posture `classifyGitHubAmbientComment` takes with its own no-slug drop.
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
/** True when the native GitHub route can admit a delivery into the routine fan-out.
|
|
2
|
-
|
|
1
|
+
/** True when the native GitHub route can admit a delivery into the routine fan-out. `secret` is a test
|
|
2
|
+
* seam; the live default is the gate's own read. */
|
|
3
|
+
export declare function githubEventsReach(secret?: () => Promise<string | undefined>): Promise<boolean>;
|
|
3
4
|
//# sourceMappingURL=github-event-reach.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-event-reach.d.ts","sourceRoot":"","sources":["../../../agent/channels/github-event-reach.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"github-event-reach.d.ts","sourceRoot":"","sources":["../../../agent/channels/github-event-reach.ts"],"names":[],"mappings":"AAcA;qDACqD;AACrD,wBAAsB,iBAAiB,CAAC,MAAM,GAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,CAGzH"}
|
|
@@ -5,10 +5,14 @@
|
|
|
5
5
|
// into the routine fan-out only through `gateGithubDelivery`: with `GITHUB_WEBHOOK_SECRET` set, or with the
|
|
6
6
|
// dev-only `webhooks.allowUnverifiedGithub` hatch on. With neither, it 401s every delivery and no GitHub
|
|
7
7
|
// routine can fire. This probe asks the same two questions the gate asks, and reads the secret's PRESENCE only.
|
|
8
|
+
// The secret is an operator secret since OPE-2650, so the presence read is async and asks the store
|
|
9
|
+
// first, the env var as its on-ramp — the same read the gate makes.
|
|
8
10
|
import { getSettings } from "@open-everywhere/core/agent/adapter-api.js";
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
import { githubWebhookSecret } from "./github-credentials.js";
|
|
12
|
+
/** True when the native GitHub route can admit a delivery into the routine fan-out. `secret` is a test
|
|
13
|
+
* seam; the live default is the gate's own read. */
|
|
14
|
+
export async function githubEventsReach(secret = githubWebhookSecret) {
|
|
15
|
+
const value = await secret();
|
|
16
|
+
return (value !== undefined && value.length > 0) || getSettings().webhooks.allowUnverifiedGithub;
|
|
13
17
|
}
|
|
14
18
|
//# sourceMappingURL=github-event-reach.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-event-reach.js","sourceRoot":"","sources":["../../../agent/channels/github-event-reach.ts"],"names":[],"mappings":"AAAA,4GAA4G;AAC5G,EAAE;AACF,2GAA2G;AAC3G,6GAA6G;AAC7G,4GAA4G;AAC5G,yGAAyG;AACzG,gHAAgH;AAEhH,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;
|
|
1
|
+
{"version":3,"file":"github-event-reach.js","sourceRoot":"","sources":["../../../agent/channels/github-event-reach.ts"],"names":[],"mappings":"AAAA,4GAA4G;AAC5G,EAAE;AACF,2GAA2G;AAC3G,6GAA6G;AAC7G,4GAA4G;AAC5G,yGAAyG;AACzG,gHAAgH;AAEhH,oGAAoG;AACpG,oEAAoE;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D;qDACqD;AACrD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAAM,GAAsC,mBAAmB;IACrG,MAAM,KAAK,GAAG,MAAM,MAAM,EAAE,CAAC;IAC7B,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;AACnG,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-post-arm.d.ts","sourceRoot":"","sources":["../../../agent/channels/github-post-arm.ts"],"names":[],"mappings":"AAiBA,OAAO,
|
|
1
|
+
{"version":3,"file":"github-post-arm.d.ts","sourceRoot":"","sources":["../../../agent/channels/github-post-arm.ts"],"names":[],"mappings":"AAiBA,OAAO,EAcL,KAAK,qBAAqB,EAE1B,KAAK,OAAO,EAIZ,KAAK,iBAAiB,EAEvB,MAAM,4CAA4C,CAAC;AAGpD,KAAK,YAAY,GAAG,OAAO,CAAC,iBAAiB,EAAE;IAAE,QAAQ,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAC;AAiEvE,6DAA6D;AAC7D,wBAAgB,kCAAkC,IAAI,IAAI,CAEzD;AAcD;qFACqF;AACrF,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAwBhF;AA0DD,0BAA0B;AAC1B,eAAO,MAAM,eAAe,2BAA2B,CAAC;AAExD,uGAAuG;AACvG,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEtF;oDACoD;AACpD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,qBAAqB,EAAE,aAAa,GAAG,OAAO,GAAG,YAAY,GAAG,eAAe,GAAG,OAAO,GAAG,KAAK,CAAC,CAAC;CAC1H;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE;IACL,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB,EACD,IAAI,GAAE,eAAoB,GACzB,OAAO,CAAC,QAAQ,CAAC,CAoBnB;AAED;;;;;mCAKmC;AACnC;6DAC6D;AAC7D,wBAAsB,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA+BxF;AAiBD;;;;;iGAKiG;AACjG;mEACmE;AACnE,wBAAsB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB7G;AAmDD,eAAO,MAAM,aAAa,EAAE,OA4C3B,CAAC"}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
// The SCM plane (mint/config) STAYS in core by doctrine (the single SCM implementation) — this arm
|
|
15
15
|
// reaches its App-token minting + config through the adapter-api barrel, alongside the post-arm /
|
|
16
16
|
// wake-origin / unified-reply contracts. See docs/extending/provider-bundles.md.
|
|
17
|
-
import { parsePrivateKey, signAppJwt, mintInstallationToken, CONVERSATION_WRITE_PERMISSIONS, loadGitHubAppConfig, githubAuthMode, resolveGitHubInstallationId, warmCredential, markNotApplied, withRetryAfter, friendlyGitHubComment, } from "@open-everywhere/core/agent/adapter-api.js";
|
|
17
|
+
import { parsePrivateKey, signAppJwt, mintInstallationToken, CONVERSATION_WRITE_PERMISSIONS, loadGitHubAppConfig, githubAppPrivateKey, githubAuthMode, getSettings, resolveGitHubInstallationId, warmCredential, markNotApplied, withRetryAfter, friendlyGitHubComment, } from "@open-everywhere/core/agent/adapter-api.js";
|
|
18
18
|
import { markGitHubConversationPosted } from "./github-reaction-scope.js";
|
|
19
19
|
/**
|
|
20
20
|
* One minted token per (installation, repo), held warm by the SHARED seam (core
|
|
@@ -69,17 +69,18 @@ const installationToken = warmCredential({
|
|
|
69
69
|
export function _resetGitHubInstallationTokenCache() {
|
|
70
70
|
installationToken.reset();
|
|
71
71
|
}
|
|
72
|
-
/** GitHub App credentials for the unified reply arm
|
|
73
|
-
*
|
|
74
|
-
|
|
72
|
+
/** GitHub App credentials for the unified reply arm. The App id is the `github.appId` setting (the scm
|
|
73
|
+
* plane's client id preferred as the JWT issuer when set), and the private key has ONE home since
|
|
74
|
+
* OPE-2650: the operator secret GITHUB_APP_PRIVATE_KEY, for both the scm plane and this surface. */
|
|
75
|
+
async function githubAppCreds() {
|
|
75
76
|
const scm = loadGitHubAppConfig();
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
const appId = process.env.GITHUB_APP_ID;
|
|
79
|
-
const privateKeyPem = process.env.GITHUB_APP_PRIVATE_KEY;
|
|
80
|
-
if (!appId || !privateKeyPem)
|
|
77
|
+
const appId = scm ? (scm.clientId ?? scm.appId) : getSettings().github.appId;
|
|
78
|
+
if (!appId)
|
|
81
79
|
return null;
|
|
82
|
-
|
|
80
|
+
const privateKeyPem = await githubAppPrivateKey();
|
|
81
|
+
if (!privateKeyPem)
|
|
82
|
+
return null;
|
|
83
|
+
return { appId, privateKeyPem, installations: scm?.installations ?? {} };
|
|
83
84
|
}
|
|
84
85
|
/** Exported for the reaction-feedback poll (channels/github-reaction-feedback.ts, OPE-1502), which
|
|
85
86
|
* reads under the same App identity every other GitHub call in this bundle uses. */
|
|
@@ -89,18 +90,18 @@ export async function installationTokenFor(origin) {
|
|
|
89
90
|
if (githubAuthMode() === "token") {
|
|
90
91
|
throw markNotApplied(new Error("reply couldn't post to GitHub — this deployment signs in with a personal access token, and the GitHub conversation surface needs the GitHub App."));
|
|
91
92
|
}
|
|
92
|
-
const creds = githubAppCreds();
|
|
93
|
+
const creds = await githubAppCreds();
|
|
93
94
|
if (!creds) {
|
|
94
95
|
// DEFINITIVE (OPE-825): no App credentials ⇒ no request ever left this host.
|
|
95
|
-
throw markNotApplied(new Error("reply couldn't post to GitHub — no App credentials (set
|
|
96
|
+
throw markNotApplied(new Error("reply couldn't post to GitHub — no App credentials (set the github.appId setting, and store the operator secret GITHUB_APP_PRIVATE_KEY)."));
|
|
96
97
|
}
|
|
97
98
|
// The wake's own (webhook-supplied) installation id first; then the SCM plane's composed map —
|
|
98
|
-
//
|
|
99
|
+
// the `github.installations` setting authoritative, `installation`-webhook-discovered installs augmenting it
|
|
99
100
|
// (scm/installations.ts), so an org that self-installed resolves without an env edit.
|
|
100
101
|
const installationId = origin.installationId !== undefined ? String(origin.installationId) : await resolveGitHubInstallationId(origin.owner, creds.installations);
|
|
101
102
|
if (!installationId) {
|
|
102
103
|
// DEFINITIVE (OPE-825): unresolved before any comment request is built — nothing left this host.
|
|
103
|
-
throw markNotApplied(new Error(`reply couldn't post to GitHub — no installation id for owner "${origin.owner}" (the wake carried none,
|
|
104
|
+
throw markNotApplied(new Error(`reply couldn't post to GitHub — no installation id for owner "${origin.owner}" (the wake carried none, the github.installations setting has no entry, and no installation webhook has registered one).`));
|
|
104
105
|
}
|
|
105
106
|
// Key by (installation, repo): the minted token is scoped to exactly [origin.repo], so a sibling
|
|
106
107
|
// repo under the same installation needs its OWN token.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-post-arm.js","sourceRoot":"","sources":["../../../agent/channels/github-post-arm.ts"],"names":[],"mappings":"AAAA,wGAAwG;AACxG,sGAAsG;AACtG,sGAAsG;AACtG,iGAAiG;AACjG,iGAAiG;AACjG,EAAE;AACF,qGAAqG;AACrG,sGAAsG;AACtG,mGAAmG;AACnG,oGAAoG;AACpG,qGAAqG;AACrG,sGAAsG;AACtG,mGAAmG;AAEnG,mGAAmG;AACnG,kGAAkG;AAClG,iFAAiF;AACjF,OAAO,EACL,eAAe,EACf,UAAU,EACV,qBAAqB,EACrB,8BAA8B,EAC9B,mBAAmB,EACnB,cAAc,EACd,2BAA2B,EAC3B,cAAc,EACd,cAAc,EACd,cAAc,EACd,qBAAqB,GAStB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAe1E;;;;;;;;;GASG;AACH,MAAM,iBAAiB,GAAG,cAAc,CAAoB;IAC1D,IAAI,EAAE,2BAA2B;IACjC,QAAQ,EAAE,QAAQ;IAClB,WAAW,EAAE,0BAA0B;IACvC,OAAO,EAAE,SAAS;IAClB,kBAAkB,EAAE,IAAI;IACxB,qGAAqG;IACrG,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,IAAI,EAAE;IACjD,IAAI,EAAE,KAAK,EAAE,GAAG,EAA2B,EAAE;QAC3C,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QAC3G,6FAA6F;QAC7F,+EAA+E;QAC/E,EAAE;QACF,gGAAgG;QAChG,wFAAwF;QACxF,4FAA4F;QAC5F,8FAA8F;QAC9F,8FAA8F;QAC9F,6FAA6F;QAC7F,qFAAqF;QACrF,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,CAAC,cAAc,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,8BAA8B,EAAE,CAAC,CAAC;QAC5J,2FAA2F;QAC3F,wFAAwF;QACxF,yFAAyF;QACzF,+FAA+F;QAC/F,sFAAsF;QACtF,iFAAiF;QACjF,0EAA0E;QAC1E,MAAM,QAAQ,GAAG,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CACb,2BAA2B,GAAG,CAAC,cAAc,qBAAqB,QAAQ,iBAAiB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,IAAI,CACxI,CAAC;QACJ,CAAC;QACD,4FAA4F;QAC5F,+FAA+F;QAC/F,uBAAuB;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IAC5F,CAAC;CACF,CAAC,CAAC;AAEH,6DAA6D;AAC7D,MAAM,UAAU,kCAAkC;IAChD,iBAAiB,CAAC,KAAK,EAAE,CAAC;AAC5B,CAAC;AAED;8FAC8F;AAC9F,SAAS,cAAc;IACrB,MAAM,GAAG,GAAG,mBAAmB,EAAE,CAAC;IAClC,IAAI,GAAG;QAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,CAAC,aAAa,EAAE,aAAa,EAAE,GAAG,CAAC,aAAa,EAAE,CAAC;IACzH,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IACxC,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;IACzD,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa;QAAE,OAAO,IAAI,CAAC;IAC1C,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;AACrD,CAAC;AAED;qFACqF;AACrF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,MAAoB;IAC7D,oGAAoG;IACpG,gGAAgG;IAChG,IAAI,cAAc,EAAE,KAAK,OAAO,EAAE,CAAC;QACjC,MAAM,cAAc,CAAC,IAAI,KAAK,CAAC,kJAAkJ,CAAC,CAAC,CAAC;IACtL,CAAC;IACD,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,6EAA6E;QAC7E,MAAM,cAAc,CAAC,IAAI,KAAK,CAAC,mHAAmH,CAAC,CAAC,CAAC;IACvJ,CAAC;IACD,+FAA+F;IAC/F,kGAAkG;IAClG,sFAAsF;IACtF,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,2BAA2B,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IAClK,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,iGAAiG;QACjG,MAAM,cAAc,CAAC,IAAI,KAAK,CAC5B,iEAAiE,MAAM,CAAC,KAAK,kHAAkH,CAChM,CAAC,CAAC;IACL,CAAC;IACD,iGAAiG;IACjG,wDAAwD;IACxD,OAAO,iBAAiB,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;AACnJ,CAAC;AAED,kGAAkG;AAClG,EAAE;AACF,qGAAqG;AACrG,mGAAmG;AACnG,oGAAoG;AACpG,6FAA6F;AAC7F,4FAA4F;AAC5F,EAAE;AACF,+FAA+F;AAC/F,qGAAqG;AACrG,sGAAsG;AACtG,oGAAoG;AACpG,4FAA4F;AAC5F,oGAAoG;AACpG,yFAAyF;AACzF,+CAA+C;AAC/C,kGAAkG;AAClG,+FAA+F;AAC/F,6FAA6F;AAC7F,YAAY;AACZ,EAAE;AACF,gGAAgG;AAChG,sGAAsG;AACtG,+FAA+F;AAC/F,sGAAsG;AACtG,qGAAqG;AACrG,oGAAoG;AACpG,8FAA8F;AAC9F,gGAAgG;AAChG,2FAA2F;AAC3F,EAAE;AACF,oGAAoG;AACpG,+EAA+E;AAC/E,EAAE;AACF,+BAA+B;AAC/B,kFAAkF;AAClF,oGAAoG;AACpG,mCAAmC;AACnC,qGAAqG;AACrG,oEAAoE;AACpE,mGAAmG;AACnG,mGAAmG;AACnG,oGAAoG;AACpG,sDAAsD;AACtD,EAAE;AACF,mFAAmF;AACnF,mGAAmG;AACnG,kGAAkG;AAClG,8FAA8F;AAC9F,mCAAmC;AACnC,EAAE;AACF,oGAAoG;AACpG,mGAAmG;AACnG,oGAAoG;AACpG,0EAA0E;AAE1E,0BAA0B;AAC1B,MAAM,CAAC,MAAM,eAAe,GAAG,wBAAwB,CAAC;AAYxD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,KAMC,EACD,IAAI,GAAoB,EAAE;IAE1B,oGAAoG;IACpG,wGAAwG;IACxG,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,GAAsB,EAAE,CACnC,CAAC,IAAI,CAAC,KAAK,IAAK,UAAU,CAAC,KAAyB,CAAC,CAAC,GAAG,eAAe,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE;QACvF,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,KAAK,CAAC,KAAK,EAAE;YACtC,MAAM,EAAE,6BAA6B;YACrC,sBAAsB,EAAE,YAAY;YACpC,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;KAC9B,CAAC,CAAC;IACL,+FAA+F;IAC/F,8FAA8F;IAC9F,oGAAoG;IACpG,+FAA+F;IAC/F,OAAO,cAAc,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,4BAA4B,EAAE,IAAI,EAAE,CAAC,CAAC;AACpI,CAAC;AAED;;;;;mCAKmC;AACnC;6DAC6D;AAC7D,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAoB,EAAE,IAAY;IACrE,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC;QAC5B,SAAS,EAAE,sBAAsB;QACjC,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,UAAU,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,WAAW,MAAM,CAAC,WAAW,WAAW;QACnF,KAAK;QACL,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;KACrB,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,+FAA+F;QAC/F,2FAA2F;QAC3F,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mCAAmC,GAAG,CAAC,MAAM,OAAO,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAClK,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAoB,CAAC;IACrE,6FAA6F;IAC7F,oGAAoG;IACpG,8FAA8F;IAC9F,8FAA8F;IAC9F,kGAAkG;IAClG,mEAAmE;IACnE,kGAAkG;IAClG,mEAAmE;IACnE,EAAE;IACF,mGAAmG;IACnG,mGAAmG;IACnG,+EAA+E;IAC/E,iGAAiG;IACjG,oFAAoF;IACpF,MAAM,4BAA4B,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5G,OAAO,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7D,CAAC;AAID;;qGAEqG;AACrG,SAAS,eAAe,CAAC,MAAyB;IAChD,OAAO;QACL,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,GAAG,CAAC,MAAM,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1F,CAAC;AACJ,CAAC;AAED;;;;;iGAKiG;AACjG;mEACmE;AACnE,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,SAAiB,EAAE,SAAiB,EAAE,IAAY;IAC5F,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;QACpB,MAAM,cAAc,CAAC,IAAI,KAAK,CAAC,+CAA+C,SAAS,4BAA4B,CAAC,CAAC,CAAC;IACxH,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;IAC9F,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC;QAC5B,SAAS,EAAE,sBAAsB;QACjC,MAAM,EAAE,OAAO;QACf,IAAI,EAAE,UAAU,KAAK,IAAI,IAAI,oBAAoB,SAAS,EAAE;QAC5D,KAAK;QACL,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;KACrB,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,iDAAiD,GAAG,CAAC,MAAM,OAAO,KAAK,IAAI,IAAI,YAAY,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IACjK,CAAC;AACH,CAAC;AAYD,MAAM,mBAAmB,GAAoD;IAC3E,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,IAAI;IACd,IAAI,EAAE,IAAI;IACV,UAAU,EAAE,IAAI;IAChB,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,OAAO;IACjB,GAAG,EAAE,OAAO;IACZ,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;CACb,CAAC;AAEF,KAAK,UAAU,eAAe,CAAC,MAAoB,EAAE,KAAa;IAChE,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;IACzD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,kGAAkG;QAClG,MAAM,cAAc,CAClB,IAAI,KAAK,CACP,oCAAoC,KAAK,8DAA8D,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACtK,CACF,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC;QAC5B,SAAS,EAAE,uBAAuB;QAClC,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,UAAU,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,WAAW,MAAM,CAAC,WAAW,YAAY;QACpF,KAAK;QACL,IAAI,EAAE,EAAE,OAAO,EAAE;KAClB,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mCAAmC,GAAG,CAAC,MAAM,OAAO,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAClK,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAY;IACpC,QAAQ,EAAE,QAAQ;IAClB,iGAAiG;IACjG,iGAAiG;IACjG,+FAA+F;IAC/F,aAAa,EAAE,CAAC,GAAqB,EAAsB,EAAE;QAC3D,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7B,MAAM,WAAW,GAAG,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAC3E,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,WAAW,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,WAAW,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACnH,MAAM,cAAc,GAAG,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACjD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACvH,CAAC;IACD,aAAa,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,eAAe,CAAC,MAA2B,CAAC,EAAE,IAAI,CAAC;IACnG,eAAe,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,IAAsB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,cAAc,CAAC,CAAC,MAAsB,EAAE,IAAI,CAAC;IAC5H,iGAAiG;IACjG,yEAAyE;IACzE,WAAW,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC;IAChG,iGAAiG;IACjG,6FAA6F;IAC7F,yDAAyD;IACzD,kBAAkB,EAAE,CAAC,GAAqB,EAAsB,EAAE;QAChE,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7B,MAAM,WAAW,GAAG,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAC3E,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,WAAW,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,WAAW,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACnH,MAAM,cAAc,GAAG,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACjD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACvH,CAAC;IACD,KAAK,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QACvB,MAAM,CAAC,GAAG,MAA2B,CAAC;QACtC,OAAO,eAAe,CACpB,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EACjK,KAAK,CACN,CAAC;IACJ,CAAC;IACD,qBAAqB,EAAE,CAAC,MAAM,EAAE,EAAE;QAChC,MAAM,CAAC,GAAG,MAAsB,CAAC;QACjC,OAAO,UAAU,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IACxD,CAAC;IACD,kBAAkB,EAAE,CAAC,MAAM,EAAE,EAAE;QAC7B,MAAM,CAAC,GAAG,MAAsB,CAAC;QACjC,OAAO,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IAChC,CAAC;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"github-post-arm.js","sourceRoot":"","sources":["../../../agent/channels/github-post-arm.ts"],"names":[],"mappings":"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"}
|