@opentabs-dev/opentabs-plugin-github 0.0.75 → 0.0.77
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 +75 -129
- package/dist/adapter.iife.js +1170 -674
- package/dist/adapter.iife.js.map +4 -4
- package/dist/github-api.d.ts +16 -10
- package/dist/github-api.d.ts.map +1 -1
- package/dist/github-api.js +314 -112
- package/dist/github-api.js.map +1 -1
- package/dist/tools/add-reaction.d.ts +5 -9
- package/dist/tools/add-reaction.d.ts.map +1 -1
- package/dist/tools/add-reaction.js +29 -31
- package/dist/tools/add-reaction.js.map +1 -1
- package/dist/tools/compare-commits.d.ts +2 -8
- package/dist/tools/compare-commits.d.ts.map +1 -1
- package/dist/tools/compare-commits.js +32 -34
- package/dist/tools/compare-commits.js.map +1 -1
- package/dist/tools/create-comment.d.ts +1 -8
- package/dist/tools/create-comment.d.ts.map +1 -1
- package/dist/tools/create-comment.js +21 -5
- package/dist/tools/create-comment.js.map +1 -1
- package/dist/tools/create-issue.d.ts +0 -2
- package/dist/tools/create-issue.d.ts.map +1 -1
- package/dist/tools/create-issue.js +32 -15
- package/dist/tools/create-issue.js.map +1 -1
- package/dist/tools/create-label.d.ts.map +1 -1
- package/dist/tools/create-label.js +20 -12
- package/dist/tools/create-label.js.map +1 -1
- package/dist/tools/create-or-update-file.d.ts +1 -4
- package/dist/tools/create-or-update-file.d.ts.map +1 -1
- package/dist/tools/create-or-update-file.js +23 -23
- package/dist/tools/create-or-update-file.js.map +1 -1
- package/dist/tools/create-pull-request.d.ts.map +1 -1
- package/dist/tools/create-pull-request.js +37 -16
- package/dist/tools/create-pull-request.js.map +1 -1
- package/dist/tools/create-release.d.ts.map +1 -1
- package/dist/tools/create-release.js +29 -19
- package/dist/tools/create-release.js.map +1 -1
- package/dist/tools/create-repo.d.ts.map +1 -1
- package/dist/tools/create-repo.js +33 -18
- package/dist/tools/create-repo.js.map +1 -1
- package/dist/tools/delete-file.d.ts +1 -6
- package/dist/tools/delete-file.d.ts.map +1 -1
- package/dist/tools/delete-file.js +8 -25
- package/dist/tools/delete-file.js.map +1 -1
- package/dist/tools/get-file-content.d.ts.map +1 -1
- package/dist/tools/get-file-content.js +5 -9
- package/dist/tools/get-file-content.js.map +1 -1
- package/dist/tools/get-issue.d.ts.map +1 -1
- package/dist/tools/get-issue.js +25 -4
- package/dist/tools/get-issue.js.map +1 -1
- package/dist/tools/get-pull-request-diff.d.ts.map +1 -1
- package/dist/tools/get-pull-request-diff.js +19 -5
- package/dist/tools/get-pull-request-diff.js.map +1 -1
- package/dist/tools/get-pull-request.d.ts.map +1 -1
- package/dist/tools/get-pull-request.js +32 -3
- package/dist/tools/get-pull-request.js.map +1 -1
- package/dist/tools/get-repo.d.ts.map +1 -1
- package/dist/tools/get-repo.js +21 -4
- package/dist/tools/get-repo.js.map +1 -1
- package/dist/tools/get-user-profile.d.ts.map +1 -1
- package/dist/tools/get-user-profile.js +15 -2
- package/dist/tools/get-user-profile.js.map +1 -1
- package/dist/tools/get-workflow-run.d.ts.map +1 -1
- package/dist/tools/get-workflow-run.js +28 -5
- package/dist/tools/get-workflow-run.js.map +1 -1
- package/dist/tools/list-branches.d.ts +0 -2
- package/dist/tools/list-branches.d.ts.map +1 -1
- package/dist/tools/list-branches.js +3 -9
- package/dist/tools/list-branches.js.map +1 -1
- package/dist/tools/list-comments.d.ts +0 -2
- package/dist/tools/list-comments.d.ts.map +1 -1
- package/dist/tools/list-comments.js +33 -10
- package/dist/tools/list-comments.js.map +1 -1
- package/dist/tools/list-commits.d.ts +0 -2
- package/dist/tools/list-commits.d.ts.map +1 -1
- package/dist/tools/list-commits.js +8 -13
- package/dist/tools/list-commits.js.map +1 -1
- package/dist/tools/list-issues.d.ts +3 -3
- package/dist/tools/list-issues.d.ts.map +1 -1
- package/dist/tools/list-issues.js +43 -16
- package/dist/tools/list-issues.js.map +1 -1
- package/dist/tools/list-labels.d.ts +0 -2
- package/dist/tools/list-labels.d.ts.map +1 -1
- package/dist/tools/list-labels.js +18 -10
- package/dist/tools/list-labels.js.map +1 -1
- package/dist/tools/list-notifications.d.ts +1 -6
- package/dist/tools/list-notifications.d.ts.map +1 -1
- package/dist/tools/list-notifications.js +30 -23
- package/dist/tools/list-notifications.js.map +1 -1
- package/dist/tools/list-org-members.d.ts +0 -3
- package/dist/tools/list-org-members.d.ts.map +1 -1
- package/dist/tools/list-org-members.js +24 -18
- package/dist/tools/list-org-members.js.map +1 -1
- package/dist/tools/list-pull-request-files.d.ts +0 -3
- package/dist/tools/list-pull-request-files.d.ts.map +1 -1
- package/dist/tools/list-pull-request-files.js +6 -28
- package/dist/tools/list-pull-request-files.js.map +1 -1
- package/dist/tools/list-pull-requests.d.ts +3 -5
- package/dist/tools/list-pull-requests.d.ts.map +1 -1
- package/dist/tools/list-pull-requests.js +34 -18
- package/dist/tools/list-pull-requests.js.map +1 -1
- package/dist/tools/list-releases.d.ts +0 -2
- package/dist/tools/list-releases.d.ts.map +1 -1
- package/dist/tools/list-releases.js +37 -10
- package/dist/tools/list-releases.js.map +1 -1
- package/dist/tools/list-repos.d.ts +1 -8
- package/dist/tools/list-repos.d.ts.map +1 -1
- package/dist/tools/list-repos.js +18 -23
- package/dist/tools/list-repos.js.map +1 -1
- package/dist/tools/list-workflow-runs.d.ts +0 -21
- package/dist/tools/list-workflow-runs.d.ts.map +1 -1
- package/dist/tools/list-workflow-runs.js +32 -43
- package/dist/tools/list-workflow-runs.js.map +1 -1
- package/dist/tools/merge-pull-request.d.ts +1 -3
- package/dist/tools/merge-pull-request.d.ts.map +1 -1
- package/dist/tools/merge-pull-request.js +11 -15
- package/dist/tools/merge-pull-request.js.map +1 -1
- package/dist/tools/request-pull-request-review.d.ts +1 -21
- package/dist/tools/request-pull-request-review.d.ts.map +1 -1
- package/dist/tools/request-pull-request-review.js +17 -10
- package/dist/tools/request-pull-request-review.js.map +1 -1
- package/dist/tools/schemas.d.ts +130 -38
- package/dist/tools/schemas.d.ts.map +1 -1
- package/dist/tools/schemas.js +140 -52
- package/dist/tools/schemas.js.map +1 -1
- package/dist/tools/search-issues.d.ts +0 -13
- package/dist/tools/search-issues.d.ts.map +1 -1
- package/dist/tools/search-issues.js +23 -17
- package/dist/tools/search-issues.js.map +1 -1
- package/dist/tools/search-repos.d.ts +0 -10
- package/dist/tools/search-repos.d.ts.map +1 -1
- package/dist/tools/search-repos.js +7 -12
- package/dist/tools/search-repos.js.map +1 -1
- package/dist/tools/update-issue.d.ts +2 -18
- package/dist/tools/update-issue.d.ts.map +1 -1
- package/dist/tools/update-issue.js +19 -16
- package/dist/tools/update-issue.js.map +1 -1
- package/dist/tools/update-pull-request.d.ts +2 -24
- package/dist/tools/update-pull-request.d.ts.map +1 -1
- package/dist/tools/update-pull-request.js +28 -20
- package/dist/tools/update-pull-request.js.map +1 -1
- package/dist/tools.json +70 -747
- package/package.json +10 -4
- package/dist/tools/search-code.d.ts +0 -23
- package/dist/tools/search-code.d.ts.map +0 -1
- package/dist/tools/search-code.js +0 -54
- package/dist/tools/search-code.js.map +0 -1
package/dist/github-api.d.ts
CHANGED
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
export declare const isAuthenticated: () => boolean;
|
|
2
2
|
export declare const waitForAuth: () => Promise<boolean>;
|
|
3
3
|
export declare const getLogin: () => string;
|
|
4
|
-
export declare const
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
export declare const pageJson: <T>(path: string, query?: Record<string, string | number | boolean | undefined>) => Promise<T>;
|
|
5
|
+
export declare const turboData: <T>(path: string, query?: Record<string, string | number | boolean | undefined>) => Promise<{
|
|
6
|
+
data: T;
|
|
7
|
+
queryId?: string;
|
|
8
|
+
queryName?: string;
|
|
9
|
+
}>;
|
|
10
|
+
export declare const discoverMutationIds: () => Promise<void>;
|
|
11
|
+
export declare const getMutationId: (mutationName: string) => Promise<string>;
|
|
12
|
+
export declare const discoverQueryId: (queryName: string, discoveryPath: string, discoveryQuery?: Record<string, string | number | boolean | undefined>) => Promise<string>;
|
|
13
|
+
export declare const graphql: <T>(queryId: string, variables: Record<string, unknown>) => Promise<T>;
|
|
14
|
+
export declare const pageEmbeddedData: <T>(path: string) => Promise<T>;
|
|
15
|
+
export declare const formPost: <T>(formPagePath: string, postPath: string, body: Record<string, unknown>, options?: {
|
|
16
|
+
csrfSelector?: string;
|
|
9
17
|
}) => Promise<T>;
|
|
10
|
-
export declare const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
accept?: string;
|
|
14
|
-
}) => Promise<string>;
|
|
18
|
+
export declare const submitPageForm: <T>(pagePath: string, formSelector: string, fields: Record<string, string>) => Promise<T>;
|
|
19
|
+
export declare const submitDirectForm: <T>(action: string, fields: Record<string, string>, csrfToken: string) => Promise<T>;
|
|
20
|
+
export declare const fetchRawText: (path: string) => Promise<string>;
|
|
15
21
|
//# sourceMappingURL=github-api.d.ts.map
|
package/dist/github-api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-api.d.ts","sourceRoot":"","sources":["../src/github-api.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"github-api.d.ts","sourceRoot":"","sources":["../src/github-api.ts"],"names":[],"mappings":"AAyBA,eAAO,MAAM,eAAe,QAAO,OAA6B,CAAC;AAEjE,eAAO,MAAM,WAAW,QAAO,OAAO,CAAC,OAAO,CAI3C,CAAC;AAEJ,eAAO,MAAM,QAAQ,QAAO,MAI3B,CAAC;AA2DF,eAAO,MAAM,QAAQ,GAAU,CAAC,EAC9B,MAAM,MAAM,EACZ,QAAQ,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,KAC5D,OAAO,CAAC,CAAC,CAeX,CAAC;AAcF,eAAO,MAAM,SAAS,GAAU,CAAC,EAC/B,MAAM,MAAM,EACZ,QAAQ,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,KAC5D,OAAO,CAAC;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAqC3D,CAAC;AAYF,eAAO,MAAM,mBAAmB,QAAa,OAAO,CAAC,IAAI,CAiCxD,CAAC;AAGF,eAAO,MAAM,aAAa,GAAU,cAAc,MAAM,KAAG,OAAO,CAAC,MAAM,CASxE,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,WAAW,MAAM,EACjB,eAAe,MAAM,EACrB,iBAAiB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,KACrE,OAAO,CAAC,MAAM,CAYhB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAU,CAAC,EAAE,SAAS,MAAM,EAAE,WAAW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,OAAO,CAAC,CAAC,CAmC/F,CAAC;AAMF,eAAO,MAAM,gBAAgB,GAAU,CAAC,EAAE,MAAM,MAAM,KAAG,OAAO,CAAC,CAAC,CAejE,CAAC;AAMF,eAAO,MAAM,QAAQ,GAAU,CAAC,EAC9B,cAAc,MAAM,EACpB,UAAU,MAAM,EAChB,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,UAAU;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,KAClC,OAAO,CAAC,CAAC,CA2CX,CAAC;AAOF,eAAO,MAAM,cAAc,GAAU,CAAC,EACpC,UAAU,MAAM,EAChB,cAAc,MAAM,EACpB,QAAQ,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAC7B,OAAO,CAAC,CAAC,CAiCX,CAAC;AAIF,eAAO,MAAM,gBAAgB,GAAU,CAAC,EACtC,QAAQ,MAAM,EACd,QAAQ,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,WAAW,MAAM,KAChB,OAAO,CAAC,CAAC,CAUX,CAAC;AAyCF,eAAO,MAAM,YAAY,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,MAAM,CAG/D,CAAC"}
|
package/dist/github-api.js
CHANGED
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
import { ToolError,
|
|
2
|
-
const API_BASE = 'https://api.github.com';
|
|
3
|
-
// --- Auth detection ---
|
|
4
|
-
// GitHub uses HttpOnly session cookies (not accessible via document.cookie).
|
|
5
|
-
// Auth is detected via the <meta name="user-login"> tag that GitHub injects
|
|
6
|
-
// on every page for logged-in users. The actual API auth uses the session
|
|
7
|
-
// cookies sent automatically via credentials: 'include'.
|
|
1
|
+
import { ToolError, buildQueryString, fetchFromPage, fetchText, getMetaContent, waitUntil, } from '@opentabs-dev/plugin-sdk';
|
|
8
2
|
const getAuth = () => {
|
|
9
3
|
const login = getMetaContent('user-login');
|
|
10
4
|
if (!login)
|
|
@@ -19,127 +13,335 @@ export const getLogin = () => {
|
|
|
19
13
|
throw ToolError.auth('Not authenticated — please log in to GitHub.');
|
|
20
14
|
return auth.login;
|
|
21
15
|
};
|
|
22
|
-
// ---
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
16
|
+
// --- CSRF token ---
|
|
17
|
+
// GitHub requires a CSRF token for /_graphql and form POST mutations.
|
|
18
|
+
// Tokens are form-specific and found in input[name="authenticity_token"] elements.
|
|
19
|
+
const getCsrfToken = () => {
|
|
20
|
+
// Prefer graphql-specific form token, fall back to any authenticity_token
|
|
21
|
+
const graphqlInput = document.querySelector('form[action*="graphql"] input[name="authenticity_token"]');
|
|
22
|
+
if (graphqlInput?.value)
|
|
23
|
+
return graphqlInput.value;
|
|
24
|
+
const anyInput = document.querySelector('input[name="authenticity_token"]');
|
|
25
|
+
return anyInput?.value ?? null;
|
|
26
|
+
};
|
|
27
|
+
const requireCsrf = () => {
|
|
28
|
+
const token = getCsrfToken();
|
|
29
|
+
if (!token)
|
|
30
|
+
throw ToolError.auth('CSRF token not found — refresh the GitHub page.');
|
|
31
|
+
return token;
|
|
32
|
+
};
|
|
33
|
+
// --- Error classification ---
|
|
34
|
+
const classifyError = async (response, context) => {
|
|
35
|
+
const body = (await response.text().catch(() => '')).substring(0, 512);
|
|
36
|
+
const status = response.status;
|
|
37
|
+
if (status === 429) {
|
|
38
|
+
const retry = response.headers.get('Retry-After');
|
|
39
|
+
const ms = retry ? Number.parseInt(retry, 10) * 1000 || undefined : undefined;
|
|
40
|
+
throw ToolError.rateLimited(`Rate limited: ${context} — ${body}`, ms);
|
|
45
41
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
42
|
+
if (status === 401 || status === 403)
|
|
43
|
+
throw ToolError.auth(`Auth error (${status}): ${context} — ${body}`);
|
|
44
|
+
if (status === 404)
|
|
45
|
+
throw ToolError.notFound(`Not found: ${context} — ${body}`);
|
|
46
|
+
if (status === 422)
|
|
47
|
+
throw ToolError.validation(`Validation error: ${context} — ${body}`);
|
|
48
|
+
throw ToolError.internal(`API error (${status}): ${context} — ${body}`);
|
|
49
|
+
};
|
|
50
|
+
const doFetch = async (url, init) => {
|
|
54
51
|
try {
|
|
55
|
-
|
|
56
|
-
method: options.method ?? 'GET',
|
|
57
|
-
headers,
|
|
58
|
-
body: fetchBody,
|
|
59
|
-
signal: AbortSignal.timeout(30_000),
|
|
60
|
-
});
|
|
52
|
+
return await fetchFromPage(url, init);
|
|
61
53
|
}
|
|
62
54
|
catch (err) {
|
|
55
|
+
if (err instanceof ToolError)
|
|
56
|
+
throw err;
|
|
63
57
|
if (err instanceof DOMException && err.name === 'TimeoutError')
|
|
64
|
-
throw ToolError.timeout(`
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
58
|
+
throw ToolError.timeout(`Request timed out: ${url}`);
|
|
59
|
+
throw ToolError.internal(`Network error: ${err instanceof Error ? err.message : String(err)}`);
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
export const pageJson = async (path, query) => {
|
|
63
|
+
if (!getAuth())
|
|
64
|
+
throw ToolError.auth('Not authenticated — please log in to GitHub.');
|
|
65
|
+
const qs = query ? buildQueryString(query) : '';
|
|
66
|
+
const url = qs ? `${path}?${qs}` : path;
|
|
67
|
+
const response = await doFetch(url, {
|
|
68
|
+
method: 'GET',
|
|
69
|
+
headers: { Accept: 'application/json' },
|
|
70
|
+
});
|
|
71
|
+
if (!response.ok)
|
|
72
|
+
return classifyError(response, path);
|
|
73
|
+
const data = (await response.json());
|
|
74
|
+
return (data.payload ?? data);
|
|
75
|
+
};
|
|
76
|
+
export const turboData = async (path, query) => {
|
|
77
|
+
if (!getAuth())
|
|
78
|
+
throw ToolError.auth('Not authenticated — please log in to GitHub.');
|
|
79
|
+
const qs = query ? buildQueryString(query) : '';
|
|
80
|
+
const url = qs ? `${path}?${qs}` : path;
|
|
81
|
+
const html = await fetchText(url, {
|
|
82
|
+
headers: {
|
|
83
|
+
Accept: 'text/html',
|
|
84
|
+
'Turbo-Frame': 'repo-content-turbo-frame',
|
|
85
|
+
},
|
|
86
|
+
});
|
|
87
|
+
// Extract embedded React app data
|
|
88
|
+
const match = html.match(/<script[^>]*data-target="react-app\.embeddedData"[^>]*>([\s\S]*?)<\/script>/);
|
|
89
|
+
if (!match?.[1])
|
|
90
|
+
throw ToolError.internal(`No embedded data found in ${path}`);
|
|
91
|
+
const embedded = JSON.parse(match[1]);
|
|
92
|
+
const preloaded = embedded.payload?.preloadedQueries;
|
|
93
|
+
if (preloaded) {
|
|
94
|
+
const first = Object.values(preloaded)[0];
|
|
95
|
+
if (first?.result?.data) {
|
|
96
|
+
return {
|
|
97
|
+
data: first.result.data,
|
|
98
|
+
queryId: first.queryId,
|
|
99
|
+
queryName: first.queryName,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
71
102
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
103
|
+
return { data: (embedded.payload ?? embedded) };
|
|
104
|
+
};
|
|
105
|
+
// --- Transport: /_graphql persisted queries ---
|
|
106
|
+
// GitHub's internal GraphQL endpoint accepts persisted query hashes.
|
|
107
|
+
// Query IDs are discovered at runtime from embedded page data.
|
|
108
|
+
// Cache of queryName → queryId mappings discovered from pages and JS bundles
|
|
109
|
+
const queryIdCache = new Map();
|
|
110
|
+
// Discover mutation query IDs from GitHub's JS bundles.
|
|
111
|
+
// Mutations are compiled as Relay operations with format:
|
|
112
|
+
// name:"XMutation",operationKind:"mutation" preceded by id:"hexhash"
|
|
113
|
+
export const discoverMutationIds = async () => {
|
|
114
|
+
if (queryIdCache.has('__mutations_discovered__'))
|
|
115
|
+
return;
|
|
116
|
+
const html = await fetchText(window.location.href, {
|
|
117
|
+
headers: { Accept: 'text/html', 'X-Requested-With': 'XMLHttpRequest' },
|
|
118
|
+
});
|
|
119
|
+
const jsUrls = [];
|
|
120
|
+
for (const m of html.matchAll(/src="(https:\/\/github\.githubassets\.com\/assets\/[^"]+\.js)"/g)) {
|
|
121
|
+
if (m[1])
|
|
122
|
+
jsUrls.push(m[1]);
|
|
123
|
+
}
|
|
124
|
+
for (const url of jsUrls) {
|
|
125
|
+
try {
|
|
126
|
+
const response = await fetchFromPage(url, { credentials: 'omit' });
|
|
127
|
+
const code = await response.text();
|
|
128
|
+
if (!code.includes('operationKind:"mutation"'))
|
|
129
|
+
continue;
|
|
130
|
+
const pattern = /name:"([^"]*)",operationKind:"mutation"/g;
|
|
131
|
+
for (const match of code.matchAll(pattern)) {
|
|
132
|
+
const name = match[1] ?? '';
|
|
133
|
+
const before = code.substring(Math.max(0, match.index - 300), match.index);
|
|
134
|
+
const idMatch = before.match(/id:"([a-f0-9]{32,64})"/);
|
|
135
|
+
if (idMatch?.[1]) {
|
|
136
|
+
queryIdCache.set(name, idMatch[1]);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
catch {
|
|
141
|
+
// Skip bundles that fail to load
|
|
78
142
|
}
|
|
79
|
-
if (response.status === 401 || response.status === 403)
|
|
80
|
-
throw ToolError.auth(`Auth error (${response.status}): ${errorBody}`);
|
|
81
|
-
if (response.status === 404)
|
|
82
|
-
throw ToolError.notFound(`Not found: ${endpoint} — ${errorBody}`);
|
|
83
|
-
if (response.status === 422)
|
|
84
|
-
throw ToolError.validation(`Validation error: ${endpoint} — ${errorBody}`);
|
|
85
|
-
throw ToolError.internal(`API error (${response.status}): ${endpoint} — ${errorBody}`);
|
|
86
143
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
144
|
+
queryIdCache.set('__mutations_discovered__', 'true');
|
|
145
|
+
};
|
|
146
|
+
// Get a mutation query ID by name, discovering from bundles if needed
|
|
147
|
+
export const getMutationId = async (mutationName) => {
|
|
148
|
+
const cached = queryIdCache.get(mutationName);
|
|
149
|
+
if (cached)
|
|
150
|
+
return cached;
|
|
151
|
+
await discoverMutationIds();
|
|
152
|
+
const id = queryIdCache.get(mutationName);
|
|
153
|
+
if (!id)
|
|
154
|
+
throw ToolError.internal(`Mutation ${mutationName} not found in GitHub JS bundles`);
|
|
155
|
+
return id;
|
|
90
156
|
};
|
|
91
|
-
|
|
92
|
-
|
|
157
|
+
export const discoverQueryId = async (queryName, discoveryPath, discoveryQuery) => {
|
|
158
|
+
const cached = queryIdCache.get(queryName);
|
|
159
|
+
if (cached)
|
|
160
|
+
return cached;
|
|
161
|
+
const result = await turboData(discoveryPath, discoveryQuery);
|
|
162
|
+
if (result.queryName && result.queryId) {
|
|
163
|
+
queryIdCache.set(result.queryName, result.queryId);
|
|
164
|
+
}
|
|
165
|
+
const id = queryIdCache.get(queryName);
|
|
166
|
+
if (!id)
|
|
167
|
+
throw ToolError.internal(`Could not discover query ID for ${queryName}`);
|
|
168
|
+
return id;
|
|
169
|
+
};
|
|
170
|
+
export const graphql = async (queryId, variables) => {
|
|
93
171
|
if (!getAuth())
|
|
94
172
|
throw ToolError.auth('Not authenticated — please log in to GitHub.');
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
173
|
+
const csrf = requireCsrf();
|
|
174
|
+
const response = await doFetch('/_graphql', {
|
|
175
|
+
method: 'POST',
|
|
176
|
+
headers: {
|
|
177
|
+
'Content-Type': 'application/json',
|
|
178
|
+
Accept: 'application/json',
|
|
179
|
+
'GitHub-Verified-Fetch': 'true',
|
|
180
|
+
'X-CSRF-Token': csrf,
|
|
181
|
+
},
|
|
182
|
+
body: JSON.stringify({ query: queryId, variables }),
|
|
183
|
+
});
|
|
184
|
+
if (!response.ok)
|
|
185
|
+
return classifyError(response, '/_graphql');
|
|
186
|
+
const result = (await response.json());
|
|
187
|
+
if (result.errors?.length && !result.data) {
|
|
188
|
+
const err = result.errors[0];
|
|
189
|
+
if (err?.type === 'unknownQuery') {
|
|
190
|
+
// Persisted query ID expired — clear cache and report
|
|
191
|
+
queryIdCache.clear();
|
|
192
|
+
throw ToolError.internal('GraphQL persisted query expired — GitHub may have deployed a new version. Please retry.');
|
|
101
193
|
}
|
|
102
|
-
|
|
103
|
-
if (qs)
|
|
104
|
-
url += `?${qs}`;
|
|
194
|
+
throw ToolError.internal(`GraphQL error: ${err?.message ?? JSON.stringify(result.errors)}`);
|
|
105
195
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
196
|
+
return result.data;
|
|
197
|
+
};
|
|
198
|
+
// --- Transport: HTML page embedded data ---
|
|
199
|
+
// Fetches a page as HTML and extracts structured data from embedded script tags.
|
|
200
|
+
// Used for PR detail, repo page, and other pages with rich embedded JSON.
|
|
201
|
+
export const pageEmbeddedData = async (path) => {
|
|
202
|
+
if (!getAuth())
|
|
203
|
+
throw ToolError.auth('Not authenticated — please log in to GitHub.');
|
|
204
|
+
// X-Requested-With: XMLHttpRequest makes GitHub return the full page with all
|
|
205
|
+
// embedded React data. Without it, GitHub returns a lightweight shell that
|
|
206
|
+
// loads React data asynchronously.
|
|
207
|
+
const html = await fetchText(path, {
|
|
208
|
+
headers: { Accept: 'text/html', 'X-Requested-With': 'XMLHttpRequest' },
|
|
209
|
+
});
|
|
210
|
+
const match = html.match(/<script[^>]*data-target="react-app\.embeddedData"[^>]*>([\s\S]*?)<\/script>/);
|
|
211
|
+
if (!match?.[1])
|
|
212
|
+
throw ToolError.internal(`No embedded data found in ${path}`);
|
|
213
|
+
const embedded = JSON.parse(match[1]);
|
|
214
|
+
return (embedded.payload ?? embedded);
|
|
215
|
+
};
|
|
216
|
+
// --- Transport: Form POST ---
|
|
217
|
+
// For write operations that use traditional form submissions with CSRF tokens.
|
|
218
|
+
// Fetches the form page first to get a form-specific CSRF token, then POSTs.
|
|
219
|
+
export const formPost = async (formPagePath, postPath, body, options) => {
|
|
220
|
+
if (!getAuth())
|
|
221
|
+
throw ToolError.auth('Not authenticated — please log in to GitHub.');
|
|
222
|
+
// Fetch the form page to get a fresh CSRF token
|
|
223
|
+
const formHtml = await fetchText(formPagePath, {
|
|
224
|
+
headers: { Accept: 'text/html' },
|
|
225
|
+
});
|
|
226
|
+
const csrfSelector = options?.csrfSelector ?? `form[action*="${postPath}"] input[name="authenticity_token"]`;
|
|
227
|
+
const doc = new DOMParser().parseFromString(formHtml, 'text/html');
|
|
228
|
+
let csrf = doc.querySelector(csrfSelector)?.value;
|
|
229
|
+
// Fall back to any authenticity_token on the page
|
|
230
|
+
if (!csrf) {
|
|
231
|
+
csrf = doc.querySelector('input[name="authenticity_token"]')?.value ?? undefined;
|
|
117
232
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
});
|
|
233
|
+
if (!csrf)
|
|
234
|
+
throw ToolError.auth(`CSRF token not found on ${formPagePath}`);
|
|
235
|
+
const formData = new URLSearchParams();
|
|
236
|
+
formData.set('authenticity_token', csrf);
|
|
237
|
+
for (const [key, value] of Object.entries(body)) {
|
|
238
|
+
if (value !== undefined && value !== null) {
|
|
239
|
+
formData.set(key, String(value));
|
|
240
|
+
}
|
|
127
241
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
242
|
+
const response = await doFetch(postPath, {
|
|
243
|
+
method: 'POST',
|
|
244
|
+
headers: {
|
|
245
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
246
|
+
Accept: 'application/json',
|
|
247
|
+
},
|
|
248
|
+
body: formData.toString(),
|
|
249
|
+
});
|
|
250
|
+
if (!response.ok)
|
|
251
|
+
return classifyError(response, postPath);
|
|
252
|
+
const ct = response.headers.get('content-type') ?? '';
|
|
253
|
+
if (ct.includes('json')) {
|
|
254
|
+
return (await response.json());
|
|
255
|
+
}
|
|
256
|
+
// Some form posts redirect (302) or return HTML — treat as success
|
|
257
|
+
return {};
|
|
258
|
+
};
|
|
259
|
+
// --- Transport: Page form submission via XHR ---
|
|
260
|
+
// Fetches a page, locates a form by selector, populates fields, and submits
|
|
261
|
+
// via XMLHttpRequest with X-Requested-With: XMLHttpRequest to get a JSON response
|
|
262
|
+
// instead of a redirect. This is how GitHub's own JS submits comments and mutations.
|
|
263
|
+
export const submitPageForm = async (pagePath, formSelector, fields) => {
|
|
264
|
+
if (!getAuth())
|
|
265
|
+
throw ToolError.auth('Not authenticated — please log in to GitHub.');
|
|
266
|
+
// Fetch the page HTML to get the form with valid CSRF and timestamps.
|
|
267
|
+
// X-Requested-With: XMLHttpRequest ensures GitHub returns the full page content
|
|
268
|
+
// (without it, GitHub returns a lightweight shell for Turbo navigation).
|
|
269
|
+
const html = await fetchText(pagePath, {
|
|
270
|
+
headers: { Accept: 'text/html', 'X-Requested-With': 'XMLHttpRequest' },
|
|
271
|
+
});
|
|
272
|
+
const doc = new DOMParser().parseFromString(html, 'text/html');
|
|
273
|
+
const form = doc.querySelector(formSelector);
|
|
274
|
+
if (!form)
|
|
275
|
+
throw ToolError.internal(`Form not found: ${formSelector} on ${pagePath}`);
|
|
276
|
+
const action = form.getAttribute('action');
|
|
277
|
+
if (!action)
|
|
278
|
+
throw ToolError.internal(`Form has no action attribute on ${pagePath}`);
|
|
279
|
+
// Build FormData from the form's existing hidden inputs
|
|
280
|
+
const formData = new FormData();
|
|
281
|
+
const inputs = form.querySelectorAll('input');
|
|
282
|
+
for (const input of inputs) {
|
|
283
|
+
const name = input.getAttribute('name');
|
|
284
|
+
if (name) {
|
|
285
|
+
formData.set(name, input.value ?? '');
|
|
134
286
|
}
|
|
135
|
-
if (response.status === 401 || response.status === 403)
|
|
136
|
-
throw ToolError.auth(`Auth error (${response.status}): ${errorBody}`);
|
|
137
|
-
if (response.status === 404)
|
|
138
|
-
throw ToolError.notFound(`Not found: ${endpoint} — ${errorBody}`);
|
|
139
|
-
if (response.status === 422)
|
|
140
|
-
throw ToolError.validation(`Validation error: ${endpoint} — ${errorBody}`);
|
|
141
|
-
throw ToolError.internal(`API error (${response.status}): ${endpoint} — ${errorBody}`);
|
|
142
287
|
}
|
|
143
|
-
|
|
288
|
+
// Override/add the provided fields
|
|
289
|
+
for (const [key, value] of Object.entries(fields)) {
|
|
290
|
+
formData.set(key, value);
|
|
291
|
+
}
|
|
292
|
+
return xhrSubmit(action, formData);
|
|
293
|
+
};
|
|
294
|
+
// Submit a form directly to an endpoint with known fields and a CSRF token
|
|
295
|
+
// extracted from the live DOM. Used when the form is on the current page.
|
|
296
|
+
export const submitDirectForm = async (action, fields, csrfToken) => {
|
|
297
|
+
if (!getAuth())
|
|
298
|
+
throw ToolError.auth('Not authenticated — please log in to GitHub.');
|
|
299
|
+
const formData = new FormData();
|
|
300
|
+
formData.set('authenticity_token', csrfToken);
|
|
301
|
+
for (const [key, value] of Object.entries(fields)) {
|
|
302
|
+
formData.set(key, value);
|
|
303
|
+
}
|
|
304
|
+
return xhrSubmit(action, formData);
|
|
305
|
+
};
|
|
306
|
+
// Internal XHR submission — GitHub requires X-Requested-With for AJAX form handling
|
|
307
|
+
const xhrSubmit = (action, formData) => new Promise((resolve, reject) => {
|
|
308
|
+
const xhr = new XMLHttpRequest();
|
|
309
|
+
xhr.open('POST', action, true);
|
|
310
|
+
xhr.setRequestHeader('Accept', 'application/json');
|
|
311
|
+
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
|
|
312
|
+
xhr.withCredentials = true;
|
|
313
|
+
xhr.timeout = 30_000;
|
|
314
|
+
xhr.onload = () => {
|
|
315
|
+
if (xhr.status >= 200 && xhr.status < 300) {
|
|
316
|
+
try {
|
|
317
|
+
resolve(JSON.parse(xhr.responseText));
|
|
318
|
+
}
|
|
319
|
+
catch {
|
|
320
|
+
resolve({});
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
else if (xhr.status === 401 || xhr.status === 403) {
|
|
324
|
+
reject(ToolError.auth(`Auth error (${xhr.status}): ${action}`));
|
|
325
|
+
}
|
|
326
|
+
else if (xhr.status === 404) {
|
|
327
|
+
reject(ToolError.notFound(`Not found: ${action}`));
|
|
328
|
+
}
|
|
329
|
+
else if (xhr.status === 422) {
|
|
330
|
+
reject(ToolError.validation(`Validation error (${xhr.status}): ${action} — ${xhr.responseText.substring(0, 200)}`));
|
|
331
|
+
}
|
|
332
|
+
else {
|
|
333
|
+
reject(ToolError.internal(`Form submission error (${xhr.status}): ${action}`));
|
|
334
|
+
}
|
|
335
|
+
};
|
|
336
|
+
xhr.onerror = () => reject(ToolError.internal(`Network error submitting form: ${action}`));
|
|
337
|
+
xhr.ontimeout = () => reject(ToolError.timeout(`Form submission timed out: ${action}`));
|
|
338
|
+
xhr.send(formData);
|
|
339
|
+
});
|
|
340
|
+
// --- Transport: Raw text fetch ---
|
|
341
|
+
// For file contents, diffs, and other raw text endpoints.
|
|
342
|
+
export const fetchRawText = async (path) => {
|
|
343
|
+
if (!getAuth())
|
|
344
|
+
throw ToolError.auth('Not authenticated — please log in to GitHub.');
|
|
345
|
+
return fetchText(path);
|
|
144
346
|
};
|
|
145
347
|
//# sourceMappingURL=github-api.js.map
|
package/dist/github-api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-api.js","sourceRoot":"","sources":["../src/github-api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"github-api.js","sourceRoot":"","sources":["../src/github-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +1,17 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
export declare const addReaction: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
|
|
3
|
-
|
|
4
|
-
repo: z.ZodString;
|
|
3
|
+
subject_id: z.ZodString;
|
|
5
4
|
content: z.ZodEnum<{
|
|
6
|
-
heart: "heart";
|
|
7
|
-
laugh: "laugh";
|
|
8
|
-
rocket: "rocket";
|
|
9
5
|
"+1": "+1";
|
|
10
6
|
[-1]: "-1";
|
|
7
|
+
laugh: "laugh";
|
|
11
8
|
confused: "confused";
|
|
9
|
+
heart: "heart";
|
|
12
10
|
hooray: "hooray";
|
|
11
|
+
rocket: "rocket";
|
|
13
12
|
eyes: "eyes";
|
|
14
13
|
}>;
|
|
15
|
-
issue_number: z.ZodOptional<z.ZodNumber>;
|
|
16
|
-
comment_id: z.ZodOptional<z.ZodNumber>;
|
|
17
14
|
}, z.core.$strip>, z.ZodObject<{
|
|
18
|
-
|
|
19
|
-
content: z.ZodString;
|
|
15
|
+
success: z.ZodBoolean;
|
|
20
16
|
}, z.core.$strip>>;
|
|
21
17
|
//# sourceMappingURL=add-reaction.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-reaction.d.ts","sourceRoot":"","sources":["../../src/tools/add-reaction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"add-reaction.d.ts","sourceRoot":"","sources":["../../src/tools/add-reaction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAexB,eAAO,MAAM,WAAW;;;;;;;;;;;;;;kBAkCtB,CAAC"}
|