claudedesk 1.0.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/LICENSE +21 -0
- package/README.md +431 -0
- package/config/repos.example.json +128 -0
- package/config/settings.example.json +64 -0
- package/config/skills/code-review.md +76 -0
- package/config/skills/full-check.md +26 -0
- package/config/skills/lint-fix.md +23 -0
- package/dist/api/agent-routes.d.ts +2 -0
- package/dist/api/agent-routes.d.ts.map +1 -0
- package/dist/api/agent-routes.js +251 -0
- package/dist/api/agent-routes.js.map +1 -0
- package/dist/api/app-routes.d.ts +2 -0
- package/dist/api/app-routes.d.ts.map +1 -0
- package/dist/api/app-routes.js +150 -0
- package/dist/api/app-routes.js.map +1 -0
- package/dist/api/docker-routes.d.ts +2 -0
- package/dist/api/docker-routes.d.ts.map +1 -0
- package/dist/api/docker-routes.js +167 -0
- package/dist/api/docker-routes.js.map +1 -0
- package/dist/api/middleware.d.ts +6 -0
- package/dist/api/middleware.d.ts.map +1 -0
- package/dist/api/middleware.js +293 -0
- package/dist/api/middleware.js.map +1 -0
- package/dist/api/pin-auth.d.ts +65 -0
- package/dist/api/pin-auth.d.ts.map +1 -0
- package/dist/api/pin-auth.js +218 -0
- package/dist/api/pin-auth.js.map +1 -0
- package/dist/api/routes.d.ts +2 -0
- package/dist/api/routes.d.ts.map +1 -0
- package/dist/api/routes.js +473 -0
- package/dist/api/routes.js.map +1 -0
- package/dist/api/settings-routes.d.ts +2 -0
- package/dist/api/settings-routes.d.ts.map +1 -0
- package/dist/api/settings-routes.js +570 -0
- package/dist/api/settings-routes.js.map +1 -0
- package/dist/api/skill-routes.d.ts +2 -0
- package/dist/api/skill-routes.d.ts.map +1 -0
- package/dist/api/skill-routes.js +88 -0
- package/dist/api/skill-routes.js.map +1 -0
- package/dist/api/terminal-routes.d.ts +2 -0
- package/dist/api/terminal-routes.d.ts.map +1 -0
- package/dist/api/terminal-routes.js +3524 -0
- package/dist/api/terminal-routes.js.map +1 -0
- package/dist/api/tunnel-routes.d.ts +2 -0
- package/dist/api/tunnel-routes.d.ts.map +1 -0
- package/dist/api/tunnel-routes.js +196 -0
- package/dist/api/tunnel-routes.js.map +1 -0
- package/dist/api/workspace-routes.d.ts +3 -0
- package/dist/api/workspace-routes.d.ts.map +1 -0
- package/dist/api/workspace-routes.js +649 -0
- package/dist/api/workspace-routes.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +276 -0
- package/dist/cli.js.map +1 -0
- package/dist/client/assets/index-B4r0njGe.js +780 -0
- package/dist/client/assets/index-CY_9MyE0.css +1 -0
- package/dist/client/favicon.svg +5 -0
- package/dist/client/icons/icon-192.svg +5 -0
- package/dist/client/icons/icon-512.svg +5 -0
- package/dist/client/icons/logo-with-message.png +0 -0
- package/dist/client/icons/logo.png +0 -0
- package/dist/client/index.html +25 -0
- package/dist/client/manifest.json +62 -0
- package/dist/client/sw.js +243 -0
- package/dist/config/agent-usage.d.ts +34 -0
- package/dist/config/agent-usage.d.ts.map +1 -0
- package/dist/config/agent-usage.js +87 -0
- package/dist/config/agent-usage.js.map +1 -0
- package/dist/config/repos.d.ts +34 -0
- package/dist/config/repos.d.ts.map +1 -0
- package/dist/config/repos.js +412 -0
- package/dist/config/repos.js.map +1 -0
- package/dist/config/settings.d.ts +634 -0
- package/dist/config/settings.d.ts.map +1 -0
- package/dist/config/settings.js +459 -0
- package/dist/config/settings.js.map +1 -0
- package/dist/config/skills.d.ts +18 -0
- package/dist/config/skills.d.ts.map +1 -0
- package/dist/config/skills.js +174 -0
- package/dist/config/skills.js.map +1 -0
- package/dist/config/workspaces.d.ts +961 -0
- package/dist/config/workspaces.d.ts.map +1 -0
- package/dist/config/workspaces.js +482 -0
- package/dist/config/workspaces.js.map +1 -0
- package/dist/core/app-manager.d.ts +85 -0
- package/dist/core/app-manager.d.ts.map +1 -0
- package/dist/core/app-manager.js +447 -0
- package/dist/core/app-manager.js.map +1 -0
- package/dist/core/claude-invoker.d.ts +49 -0
- package/dist/core/claude-invoker.d.ts.map +1 -0
- package/dist/core/claude-invoker.js +583 -0
- package/dist/core/claude-invoker.js.map +1 -0
- package/dist/core/claude-session-reader.d.ts +25 -0
- package/dist/core/claude-session-reader.d.ts.map +1 -0
- package/dist/core/claude-session-reader.js +184 -0
- package/dist/core/claude-session-reader.js.map +1 -0
- package/dist/core/claude-usage-query.d.ts +78 -0
- package/dist/core/claude-usage-query.d.ts.map +1 -0
- package/dist/core/claude-usage-query.js +294 -0
- package/dist/core/claude-usage-query.js.map +1 -0
- package/dist/core/git-credential-helper.d.ts +57 -0
- package/dist/core/git-credential-helper.d.ts.map +1 -0
- package/dist/core/git-credential-helper.js +176 -0
- package/dist/core/git-credential-helper.js.map +1 -0
- package/dist/core/git-sandbox.d.ts +135 -0
- package/dist/core/git-sandbox.d.ts.map +1 -0
- package/dist/core/git-sandbox.js +907 -0
- package/dist/core/git-sandbox.js.map +1 -0
- package/dist/core/github-integration.d.ts +66 -0
- package/dist/core/github-integration.d.ts.map +1 -0
- package/dist/core/github-integration.js +350 -0
- package/dist/core/github-integration.js.map +1 -0
- package/dist/core/github-oauth.d.ts +88 -0
- package/dist/core/github-oauth.d.ts.map +1 -0
- package/dist/core/github-oauth.js +244 -0
- package/dist/core/github-oauth.js.map +1 -0
- package/dist/core/gitlab-integration.d.ts +66 -0
- package/dist/core/gitlab-integration.d.ts.map +1 -0
- package/dist/core/gitlab-integration.js +353 -0
- package/dist/core/gitlab-integration.js.map +1 -0
- package/dist/core/gitlab-oauth.d.ts +100 -0
- package/dist/core/gitlab-oauth.d.ts.map +1 -0
- package/dist/core/gitlab-oauth.js +366 -0
- package/dist/core/gitlab-oauth.js.map +1 -0
- package/dist/core/insights-extractor.d.ts +68 -0
- package/dist/core/insights-extractor.d.ts.map +1 -0
- package/dist/core/insights-extractor.js +402 -0
- package/dist/core/insights-extractor.js.map +1 -0
- package/dist/core/logger.d.ts +27 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +70 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/process-runner.d.ts +27 -0
- package/dist/core/process-runner.d.ts.map +1 -0
- package/dist/core/process-runner.js +147 -0
- package/dist/core/process-runner.js.map +1 -0
- package/dist/core/project-detector.d.ts +30 -0
- package/dist/core/project-detector.d.ts.map +1 -0
- package/dist/core/project-detector.js +482 -0
- package/dist/core/project-detector.js.map +1 -0
- package/dist/core/qr-generator.d.ts +18 -0
- package/dist/core/qr-generator.d.ts.map +1 -0
- package/dist/core/qr-generator.js +61 -0
- package/dist/core/qr-generator.js.map +1 -0
- package/dist/core/remote-tunnel-manager.d.ts +59 -0
- package/dist/core/remote-tunnel-manager.d.ts.map +1 -0
- package/dist/core/remote-tunnel-manager.js +235 -0
- package/dist/core/remote-tunnel-manager.js.map +1 -0
- package/dist/core/shared-docker-manager.d.ts +41 -0
- package/dist/core/shared-docker-manager.d.ts.map +1 -0
- package/dist/core/shared-docker-manager.js +409 -0
- package/dist/core/shared-docker-manager.js.map +1 -0
- package/dist/core/skill-executor.d.ts +25 -0
- package/dist/core/skill-executor.d.ts.map +1 -0
- package/dist/core/skill-executor.js +171 -0
- package/dist/core/skill-executor.js.map +1 -0
- package/dist/core/terminal-session.d.ts +149 -0
- package/dist/core/terminal-session.d.ts.map +1 -0
- package/dist/core/terminal-session.js +2340 -0
- package/dist/core/terminal-session.js.map +1 -0
- package/dist/core/tunnel-manager.d.ts +35 -0
- package/dist/core/tunnel-manager.d.ts.map +1 -0
- package/dist/core/tunnel-manager.js +137 -0
- package/dist/core/tunnel-manager.js.map +1 -0
- package/dist/core/usage-manager.d.ts +57 -0
- package/dist/core/usage-manager.d.ts.map +1 -0
- package/dist/core/usage-manager.js +363 -0
- package/dist/core/usage-manager.js.map +1 -0
- package/dist/core/ws-manager.d.ts +39 -0
- package/dist/core/ws-manager.d.ts.map +1 -0
- package/dist/core/ws-manager.js +190 -0
- package/dist/core/ws-manager.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +229 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +868 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +119 -0
- package/dist/types.js.map +1 -0
- package/package.json +96 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-sandbox.js","sourceRoot":"","sources":["../../src/core/git-sandbox.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
export interface PRResult {
|
|
2
|
+
success: boolean;
|
|
3
|
+
prUrl?: string;
|
|
4
|
+
error?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare class GitHubIntegration {
|
|
7
|
+
/**
|
|
8
|
+
* Check if GitHub CLI (gh) is installed and authenticated
|
|
9
|
+
*/
|
|
10
|
+
isAvailable(): boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Create a pull request using GitHub API with OAuth token.
|
|
13
|
+
* This method is preferred over CLI as it doesn't require `gh` to be installed.
|
|
14
|
+
*
|
|
15
|
+
* @param repoPath - Path to the repository (to get remote URL)
|
|
16
|
+
* @param branch - Branch to create PR from
|
|
17
|
+
* @param title - PR title
|
|
18
|
+
* @param body - PR body/description
|
|
19
|
+
* @param token - OAuth access token
|
|
20
|
+
* @param baseBranch - Base branch for the PR (optional, defaults to main/master)
|
|
21
|
+
* @returns PRResult with success status and PR URL
|
|
22
|
+
*/
|
|
23
|
+
createPRWithToken(repoPath: string, branch: string, title: string, body: string, token: string, baseBranch?: string): Promise<PRResult>;
|
|
24
|
+
/**
|
|
25
|
+
* Create a pull request.
|
|
26
|
+
* First tries OAuth API if workspace has a token, then falls back to gh CLI.
|
|
27
|
+
*
|
|
28
|
+
* @param repoPath - Path to the repository (working directory for git commands)
|
|
29
|
+
* @param branch - Branch to create PR from
|
|
30
|
+
* @param title - PR title
|
|
31
|
+
* @param body - PR body/description
|
|
32
|
+
* @param workspaceLookupPath - Optional path used for workspace token lookup (for worktree support)
|
|
33
|
+
* @returns PRResult with success status and PR URL
|
|
34
|
+
*/
|
|
35
|
+
createPR(repoPath: string, branch: string, title: string, body: string, workspaceLookupPath?: string, baseBranch?: string): Promise<PRResult>;
|
|
36
|
+
/**
|
|
37
|
+
* Create a pull request using GitHub CLI (gh).
|
|
38
|
+
* Fallback method when OAuth is not available.
|
|
39
|
+
*/
|
|
40
|
+
private createPRWithCLI;
|
|
41
|
+
/**
|
|
42
|
+
* Create a new repository on GitHub and push local code
|
|
43
|
+
* First checks if workspace has a GitHub token, otherwise falls back to gh CLI
|
|
44
|
+
* @param repoPath - Path to the local repository
|
|
45
|
+
* @param repoName - Name for the GitHub repository
|
|
46
|
+
* @param isPrivate - Whether the repo should be private (default: true)
|
|
47
|
+
* @returns Result with success status and remote URL
|
|
48
|
+
*/
|
|
49
|
+
createRepo(repoPath: string, repoName: string, isPrivate?: boolean): Promise<PRResult>;
|
|
50
|
+
/**
|
|
51
|
+
* Create repo using GitHub API with OAuth token
|
|
52
|
+
*/
|
|
53
|
+
private createRepoWithToken;
|
|
54
|
+
/**
|
|
55
|
+
* Create repo using GitHub CLI (gh)
|
|
56
|
+
*/
|
|
57
|
+
private createRepoWithCLI;
|
|
58
|
+
/**
|
|
59
|
+
* Get the URL to create a PR manually in the browser
|
|
60
|
+
* @param repoPath - Path to the repository
|
|
61
|
+
* @param branch - Branch to create PR from
|
|
62
|
+
*/
|
|
63
|
+
getPRCreateUrl(repoPath: string, branch: string): string | null;
|
|
64
|
+
}
|
|
65
|
+
export declare const githubIntegration: GitHubIntegration;
|
|
66
|
+
//# sourceMappingURL=github-integration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-integration.d.ts","sourceRoot":"","sources":["../../src/core/github-integration.ts"],"names":[],"mappings":"AAsBA,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAgBD,qBAAa,iBAAiB;IAC5B;;OAEG;IACH,WAAW,IAAI,OAAO;IAStB;;;;;;;;;;;OAWG;IACG,iBAAiB,CACrB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,QAAQ,CAAC;IA+EpB;;;;;;;;;;OAUG;IACG,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAoBnJ;;;OAGG;IACH,OAAO,CAAC,eAAe;IA0CvB;;;;;;;OAOG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,GAAE,OAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;IAclG;;OAEG;YACW,mBAAmB;IAmFjC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAsCzB;;;;OAIG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAoBhE;AAGD,eAAO,MAAM,iBAAiB,mBAA0B,CAAC"}
|
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
import { execSync } from 'child_process';
|
|
2
|
+
import https from 'https';
|
|
3
|
+
import { workspaceManager } from '../config/workspaces.js';
|
|
4
|
+
/**
|
|
5
|
+
* Helper to make synchronous-like HTTPS requests using native Node.js https module.
|
|
6
|
+
* Avoids embedding tokens in shell commands.
|
|
7
|
+
*/
|
|
8
|
+
function httpsRequest(options, data) {
|
|
9
|
+
return new Promise((resolve, reject) => {
|
|
10
|
+
const req = https.request(options, (res) => {
|
|
11
|
+
let body = '';
|
|
12
|
+
res.on('data', (chunk) => (body += chunk));
|
|
13
|
+
res.on('end', () => resolve({ statusCode: res.statusCode || 0, body }));
|
|
14
|
+
});
|
|
15
|
+
req.on('error', reject);
|
|
16
|
+
if (data)
|
|
17
|
+
req.write(data);
|
|
18
|
+
req.end();
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Parse owner and repo from a GitHub remote URL.
|
|
23
|
+
* Supports both SSH and HTTPS formats.
|
|
24
|
+
*/
|
|
25
|
+
function parseGitHubRemote(remoteUrl) {
|
|
26
|
+
// SSH format: git@github.com:owner/repo.git
|
|
27
|
+
// HTTPS format: https://github.com/owner/repo.git
|
|
28
|
+
const sshMatch = remoteUrl.match(/github\.com[:/]([^/]+)\/([^/.]+)/);
|
|
29
|
+
if (sshMatch) {
|
|
30
|
+
return { owner: sshMatch[1], repo: sshMatch[2].replace(/\.git$/, '') };
|
|
31
|
+
}
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
export class GitHubIntegration {
|
|
35
|
+
/**
|
|
36
|
+
* Check if GitHub CLI (gh) is installed and authenticated
|
|
37
|
+
*/
|
|
38
|
+
isAvailable() {
|
|
39
|
+
try {
|
|
40
|
+
execSync('gh auth status', { encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'] });
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Create a pull request using GitHub API with OAuth token.
|
|
49
|
+
* This method is preferred over CLI as it doesn't require `gh` to be installed.
|
|
50
|
+
*
|
|
51
|
+
* @param repoPath - Path to the repository (to get remote URL)
|
|
52
|
+
* @param branch - Branch to create PR from
|
|
53
|
+
* @param title - PR title
|
|
54
|
+
* @param body - PR body/description
|
|
55
|
+
* @param token - OAuth access token
|
|
56
|
+
* @param baseBranch - Base branch for the PR (optional, defaults to main/master)
|
|
57
|
+
* @returns PRResult with success status and PR URL
|
|
58
|
+
*/
|
|
59
|
+
async createPRWithToken(repoPath, branch, title, body, token, baseBranch) {
|
|
60
|
+
try {
|
|
61
|
+
// Get the remote URL to determine owner/repo
|
|
62
|
+
const remoteUrl = execSync('git remote get-url origin', {
|
|
63
|
+
cwd: repoPath,
|
|
64
|
+
encoding: 'utf-8',
|
|
65
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
66
|
+
}).trim();
|
|
67
|
+
const parsed = parseGitHubRemote(remoteUrl);
|
|
68
|
+
if (!parsed) {
|
|
69
|
+
return { success: false, error: 'Could not parse GitHub remote URL' };
|
|
70
|
+
}
|
|
71
|
+
const { owner, repo } = parsed;
|
|
72
|
+
// Determine base branch if not provided
|
|
73
|
+
if (!baseBranch) {
|
|
74
|
+
try {
|
|
75
|
+
// Try to detect main branch
|
|
76
|
+
const branches = execSync('git branch -a', {
|
|
77
|
+
cwd: repoPath,
|
|
78
|
+
encoding: 'utf-8',
|
|
79
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
80
|
+
});
|
|
81
|
+
baseBranch = branches.includes('remotes/origin/main') ? 'main' : 'master';
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
baseBranch = 'main';
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
// Create PR via GitHub API using native https module (SEC-01 fix: no token in shell)
|
|
88
|
+
const data = JSON.stringify({
|
|
89
|
+
title,
|
|
90
|
+
body,
|
|
91
|
+
head: branch,
|
|
92
|
+
base: baseBranch,
|
|
93
|
+
});
|
|
94
|
+
const response = await httpsRequest({
|
|
95
|
+
hostname: 'api.github.com',
|
|
96
|
+
path: `/repos/${owner}/${repo}/pulls`,
|
|
97
|
+
method: 'POST',
|
|
98
|
+
headers: {
|
|
99
|
+
Accept: 'application/vnd.github+json',
|
|
100
|
+
Authorization: `Bearer ${token}`,
|
|
101
|
+
'User-Agent': 'ClaudeDesk-App',
|
|
102
|
+
'Content-Type': 'application/json',
|
|
103
|
+
'Content-Length': Buffer.byteLength(data),
|
|
104
|
+
'X-GitHub-Api-Version': '2022-11-28',
|
|
105
|
+
},
|
|
106
|
+
}, data);
|
|
107
|
+
if (response.statusCode >= 200 && response.statusCode < 300) {
|
|
108
|
+
const pr = JSON.parse(response.body);
|
|
109
|
+
console.log(`[GitHubIntegration] PR created via API: ${pr.html_url}`);
|
|
110
|
+
return { success: true, prUrl: pr.html_url };
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
let errorMsg = response.body;
|
|
114
|
+
try {
|
|
115
|
+
const err = JSON.parse(response.body);
|
|
116
|
+
errorMsg = err.message || response.body;
|
|
117
|
+
}
|
|
118
|
+
catch {
|
|
119
|
+
// Use raw body as error
|
|
120
|
+
}
|
|
121
|
+
console.error(`[GitHubIntegration] API error creating PR: ${errorMsg}`);
|
|
122
|
+
return { success: false, error: errorMsg };
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
const err = error;
|
|
127
|
+
const errorMsg = err.stderr?.toString() || err.message || 'Unknown error';
|
|
128
|
+
console.error(`[GitHubIntegration] Failed to create PR via API: ${errorMsg}`);
|
|
129
|
+
return { success: false, error: errorMsg };
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Create a pull request.
|
|
134
|
+
* First tries OAuth API if workspace has a token, then falls back to gh CLI.
|
|
135
|
+
*
|
|
136
|
+
* @param repoPath - Path to the repository (working directory for git commands)
|
|
137
|
+
* @param branch - Branch to create PR from
|
|
138
|
+
* @param title - PR title
|
|
139
|
+
* @param body - PR body/description
|
|
140
|
+
* @param workspaceLookupPath - Optional path used for workspace token lookup (for worktree support)
|
|
141
|
+
* @returns PRResult with success status and PR URL
|
|
142
|
+
*/
|
|
143
|
+
async createPR(repoPath, branch, title, body, workspaceLookupPath, baseBranch) {
|
|
144
|
+
// First, check if this repo belongs to a workspace with GitHub token
|
|
145
|
+
// Use workspaceLookupPath if provided (for worktree mode), otherwise use repoPath
|
|
146
|
+
const workspace = workspaceManager.getWorkspaceForRepo(workspaceLookupPath || repoPath);
|
|
147
|
+
const token = workspace ? workspaceManager.getGitHubToken(workspace.id) : null;
|
|
148
|
+
if (token) {
|
|
149
|
+
console.log(`[GitHubIntegration] Using OAuth token for PR creation`);
|
|
150
|
+
const result = await this.createPRWithToken(repoPath, branch, title, body, token, baseBranch);
|
|
151
|
+
if (result.success) {
|
|
152
|
+
return result;
|
|
153
|
+
}
|
|
154
|
+
// If API fails, fall through to CLI
|
|
155
|
+
console.log(`[GitHubIntegration] OAuth PR creation failed, trying CLI fallback: ${result.error}`);
|
|
156
|
+
}
|
|
157
|
+
// Fall back to gh CLI
|
|
158
|
+
return this.createPRWithCLI(repoPath, branch, title, body, baseBranch);
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Create a pull request using GitHub CLI (gh).
|
|
162
|
+
* Fallback method when OAuth is not available.
|
|
163
|
+
*/
|
|
164
|
+
createPRWithCLI(repoPath, branch, title, body, baseBranch) {
|
|
165
|
+
if (!this.isAvailable()) {
|
|
166
|
+
return {
|
|
167
|
+
success: false,
|
|
168
|
+
error: 'GitHub CLI (gh) is not installed or not authenticated. Install from https://cli.github.com/, or connect GitHub OAuth in workspace settings.',
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
try {
|
|
172
|
+
// Escape special characters in title and body for shell
|
|
173
|
+
const escapedTitle = title.replace(/"/g, '\\"').replace(/`/g, '\\`');
|
|
174
|
+
const escapedBody = body.replace(/"/g, '\\"').replace(/`/g, '\\`');
|
|
175
|
+
// Build command with optional base branch
|
|
176
|
+
let cmd = `gh pr create --title "${escapedTitle}" --body "${escapedBody}" --head "${branch}"`;
|
|
177
|
+
if (baseBranch) {
|
|
178
|
+
cmd += ` --base "${baseBranch}"`;
|
|
179
|
+
}
|
|
180
|
+
const result = execSync(cmd, {
|
|
181
|
+
cwd: repoPath,
|
|
182
|
+
encoding: 'utf-8',
|
|
183
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
184
|
+
timeout: 60000, // 60s timeout
|
|
185
|
+
}).trim();
|
|
186
|
+
// gh pr create outputs the PR URL on success
|
|
187
|
+
const prUrl = result.match(/https:\/\/github\.com\/.+\/pull\/\d+/)?.[0] || result;
|
|
188
|
+
console.log(`[GitHubIntegration] PR created via CLI: ${prUrl}`);
|
|
189
|
+
return { success: true, prUrl };
|
|
190
|
+
}
|
|
191
|
+
catch (error) {
|
|
192
|
+
const err = error;
|
|
193
|
+
const errorMsg = err.stderr?.toString() || err.message || 'Unknown error';
|
|
194
|
+
console.error(`[GitHubIntegration] Failed to create PR via CLI: ${errorMsg}`);
|
|
195
|
+
return { success: false, error: errorMsg };
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Create a new repository on GitHub and push local code
|
|
200
|
+
* First checks if workspace has a GitHub token, otherwise falls back to gh CLI
|
|
201
|
+
* @param repoPath - Path to the local repository
|
|
202
|
+
* @param repoName - Name for the GitHub repository
|
|
203
|
+
* @param isPrivate - Whether the repo should be private (default: true)
|
|
204
|
+
* @returns Result with success status and remote URL
|
|
205
|
+
*/
|
|
206
|
+
async createRepo(repoPath, repoName, isPrivate = true) {
|
|
207
|
+
// First, check if this repo belongs to a workspace with GitHub token
|
|
208
|
+
const workspace = workspaceManager.getWorkspaceForRepo(repoPath);
|
|
209
|
+
const token = workspace ? workspaceManager.getGitHubToken(workspace.id) : null;
|
|
210
|
+
if (token) {
|
|
211
|
+
// Use GitHub API with workspace token
|
|
212
|
+
return this.createRepoWithToken(repoPath, repoName, isPrivate, token);
|
|
213
|
+
}
|
|
214
|
+
// Fall back to gh CLI
|
|
215
|
+
return this.createRepoWithCLI(repoPath, repoName, isPrivate);
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Create repo using GitHub API with OAuth token
|
|
219
|
+
*/
|
|
220
|
+
async createRepoWithToken(repoPath, repoName, isPrivate, token) {
|
|
221
|
+
try {
|
|
222
|
+
// Create repo via GitHub API using native https module (SEC-01 fix: no token in shell)
|
|
223
|
+
const repoData = JSON.stringify({
|
|
224
|
+
name: repoName,
|
|
225
|
+
private: isPrivate,
|
|
226
|
+
auto_init: false,
|
|
227
|
+
});
|
|
228
|
+
const response = await httpsRequest({
|
|
229
|
+
hostname: 'api.github.com',
|
|
230
|
+
path: '/user/repos',
|
|
231
|
+
method: 'POST',
|
|
232
|
+
headers: {
|
|
233
|
+
Accept: 'application/json',
|
|
234
|
+
Authorization: `Bearer ${token}`,
|
|
235
|
+
'User-Agent': 'ClaudeDesk-App',
|
|
236
|
+
'Content-Type': 'application/json',
|
|
237
|
+
'Content-Length': Buffer.byteLength(repoData),
|
|
238
|
+
},
|
|
239
|
+
}, repoData);
|
|
240
|
+
if (response.statusCode < 200 || response.statusCode >= 300) {
|
|
241
|
+
console.error(`[GitHubIntegration] API error: ${response.body}`);
|
|
242
|
+
return { success: false, error: response.body };
|
|
243
|
+
}
|
|
244
|
+
const repo = JSON.parse(response.body);
|
|
245
|
+
const htmlUrl = repo.html_url;
|
|
246
|
+
const cloneUrl = repo.clone_url;
|
|
247
|
+
// Now add remote and push using git commands with token auth
|
|
248
|
+
// Use credential helper instead of embedding token in URL
|
|
249
|
+
const { createCredentialHelperScript, removeCredentialHelperScript } = await import('./git-credential-helper.js');
|
|
250
|
+
const scriptPath = createCredentialHelperScript(token, 'github');
|
|
251
|
+
try {
|
|
252
|
+
// Add remote (without token in URL)
|
|
253
|
+
execSync(`git remote add origin "${cloneUrl}"`, {
|
|
254
|
+
cwd: repoPath,
|
|
255
|
+
encoding: 'utf-8',
|
|
256
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
257
|
+
});
|
|
258
|
+
// Push with credential helper
|
|
259
|
+
const pushCmd = process.platform === 'win32'
|
|
260
|
+
? 'cmd /c "git push -u origin main || git push -u origin master"'
|
|
261
|
+
: 'git push -u origin main || git push -u origin master';
|
|
262
|
+
execSync(pushCmd, {
|
|
263
|
+
cwd: repoPath,
|
|
264
|
+
encoding: 'utf-8',
|
|
265
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
266
|
+
timeout: 120000,
|
|
267
|
+
env: {
|
|
268
|
+
...process.env,
|
|
269
|
+
GIT_ASKPASS: scriptPath,
|
|
270
|
+
GIT_TERMINAL_PROMPT: '0',
|
|
271
|
+
},
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
finally {
|
|
275
|
+
// Always clean up credential helper script
|
|
276
|
+
removeCredentialHelperScript(scriptPath);
|
|
277
|
+
}
|
|
278
|
+
console.log(`[GitHubIntegration] Repo created via API: ${htmlUrl}`);
|
|
279
|
+
return { success: true, prUrl: htmlUrl };
|
|
280
|
+
}
|
|
281
|
+
catch (error) {
|
|
282
|
+
const err = error;
|
|
283
|
+
const errorMsg = err.stderr?.toString() || err.message || 'Unknown error';
|
|
284
|
+
console.error(`[GitHubIntegration] Failed to create repo via API: ${errorMsg}`);
|
|
285
|
+
return { success: false, error: errorMsg };
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Create repo using GitHub CLI (gh)
|
|
290
|
+
*/
|
|
291
|
+
createRepoWithCLI(repoPath, repoName, isPrivate) {
|
|
292
|
+
if (!this.isAvailable()) {
|
|
293
|
+
return {
|
|
294
|
+
success: false,
|
|
295
|
+
error: 'GitHub CLI (gh) is not installed or not authenticated. Install from https://cli.github.com/',
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
try {
|
|
299
|
+
const visibility = isPrivate ? '--private' : '--public';
|
|
300
|
+
// gh repo create will create the repo and set up remote origin
|
|
301
|
+
// --source=. uses current directory
|
|
302
|
+
// --remote=origin sets up the remote
|
|
303
|
+
// --push pushes the code
|
|
304
|
+
const result = execSync(`gh repo create ${repoName} ${visibility} --source=. --remote=origin --push`, {
|
|
305
|
+
cwd: repoPath,
|
|
306
|
+
encoding: 'utf-8',
|
|
307
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
308
|
+
timeout: 120000, // 2 min timeout for push
|
|
309
|
+
}).trim();
|
|
310
|
+
// Extract the repo URL from output
|
|
311
|
+
const repoUrl = result.match(/https:\/\/github\.com\/[^\s]+/)?.[0] || result;
|
|
312
|
+
console.log(`[GitHubIntegration] Repo created via CLI: ${repoUrl}`);
|
|
313
|
+
return { success: true, prUrl: repoUrl };
|
|
314
|
+
}
|
|
315
|
+
catch (error) {
|
|
316
|
+
const err = error;
|
|
317
|
+
const errorMsg = err.stderr?.toString() || err.message || 'Unknown error';
|
|
318
|
+
console.error(`[GitHubIntegration] Failed to create repo via CLI: ${errorMsg}`);
|
|
319
|
+
return { success: false, error: errorMsg };
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Get the URL to create a PR manually in the browser
|
|
324
|
+
* @param repoPath - Path to the repository
|
|
325
|
+
* @param branch - Branch to create PR from
|
|
326
|
+
*/
|
|
327
|
+
getPRCreateUrl(repoPath, branch) {
|
|
328
|
+
try {
|
|
329
|
+
// Get the remote URL
|
|
330
|
+
const remoteUrl = execSync('git remote get-url origin', {
|
|
331
|
+
cwd: repoPath,
|
|
332
|
+
encoding: 'utf-8',
|
|
333
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
334
|
+
}).trim();
|
|
335
|
+
// Parse GitHub URL from remote
|
|
336
|
+
// Supports: git@github.com:user/repo.git, https://github.com/user/repo.git
|
|
337
|
+
let match = remoteUrl.match(/github\.com[:/]([^/]+)\/([^/.]+)/);
|
|
338
|
+
if (!match)
|
|
339
|
+
return null;
|
|
340
|
+
const [, owner, repo] = match;
|
|
341
|
+
return `https://github.com/${owner}/${repo}/compare/main...${branch}?expand=1`;
|
|
342
|
+
}
|
|
343
|
+
catch {
|
|
344
|
+
return null;
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
// Singleton instance
|
|
349
|
+
export const githubIntegration = new GitHubIntegration();
|
|
350
|
+
//# sourceMappingURL=github-integration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-integration.js","sourceRoot":"","sources":["../../src/core/github-integration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitHub OAuth Device Flow Implementation
|
|
3
|
+
*
|
|
4
|
+
* The device flow allows CLI/desktop apps to authenticate without a callback URL:
|
|
5
|
+
* 1. Request a device code from GitHub
|
|
6
|
+
* 2. User goes to github.com/login/device and enters the code
|
|
7
|
+
* 3. App polls GitHub until user completes authorization
|
|
8
|
+
* 4. GitHub returns access token
|
|
9
|
+
*
|
|
10
|
+
* See: https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/authorizing-oauth-apps#device-flow
|
|
11
|
+
*/
|
|
12
|
+
export interface DeviceCodeResponse {
|
|
13
|
+
deviceCode: string;
|
|
14
|
+
userCode: string;
|
|
15
|
+
verificationUri: string;
|
|
16
|
+
expiresIn: number;
|
|
17
|
+
interval: number;
|
|
18
|
+
}
|
|
19
|
+
export interface TokenResponse {
|
|
20
|
+
accessToken: string;
|
|
21
|
+
tokenType: string;
|
|
22
|
+
scope: string;
|
|
23
|
+
}
|
|
24
|
+
export interface GitHubUser {
|
|
25
|
+
login: string;
|
|
26
|
+
name: string | null;
|
|
27
|
+
avatarUrl: string;
|
|
28
|
+
}
|
|
29
|
+
export type PollStatus = 'pending' | 'success' | 'expired' | 'error';
|
|
30
|
+
export interface PollResult {
|
|
31
|
+
status: PollStatus;
|
|
32
|
+
token?: TokenResponse;
|
|
33
|
+
error?: string;
|
|
34
|
+
}
|
|
35
|
+
export declare class GitHubDeviceAuth {
|
|
36
|
+
private clientId;
|
|
37
|
+
constructor(clientId: string);
|
|
38
|
+
/**
|
|
39
|
+
* Step 1: Request a device code from GitHub
|
|
40
|
+
* User will need to visit the verification URI and enter the user code
|
|
41
|
+
*/
|
|
42
|
+
requestDeviceCode(scope?: string): Promise<DeviceCodeResponse>;
|
|
43
|
+
/**
|
|
44
|
+
* Step 2: Poll for access token
|
|
45
|
+
* Call this periodically (respecting the interval) until authorization completes
|
|
46
|
+
*/
|
|
47
|
+
pollForToken(deviceCode: string): Promise<PollResult>;
|
|
48
|
+
/**
|
|
49
|
+
* Get the polling interval for a device code session
|
|
50
|
+
*/
|
|
51
|
+
getPollingInterval(deviceCode: string): number;
|
|
52
|
+
/**
|
|
53
|
+
* Cancel an active device code session
|
|
54
|
+
*/
|
|
55
|
+
cancelSession(deviceCode: string): void;
|
|
56
|
+
/**
|
|
57
|
+
* Get user info using an access token
|
|
58
|
+
*/
|
|
59
|
+
getUser(accessToken: string): Promise<GitHubUser>;
|
|
60
|
+
/**
|
|
61
|
+
* Verify that an access token is still valid
|
|
62
|
+
*/
|
|
63
|
+
verifyToken(accessToken: string): Promise<boolean>;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Create a new GitHub API client with an access token
|
|
67
|
+
* For making authenticated GitHub API calls
|
|
68
|
+
*/
|
|
69
|
+
export declare class GitHubAPI {
|
|
70
|
+
private accessToken;
|
|
71
|
+
constructor(accessToken: string);
|
|
72
|
+
private request;
|
|
73
|
+
getUser(): Promise<GitHubUser>;
|
|
74
|
+
createRepo(name: string, isPrivate?: boolean, description?: string): Promise<{
|
|
75
|
+
name: string;
|
|
76
|
+
fullName: string;
|
|
77
|
+
htmlUrl: string;
|
|
78
|
+
cloneUrl: string;
|
|
79
|
+
sshUrl: string;
|
|
80
|
+
}>;
|
|
81
|
+
listRepos(page?: number, perPage?: number): Promise<Array<{
|
|
82
|
+
name: string;
|
|
83
|
+
fullName: string;
|
|
84
|
+
htmlUrl: string;
|
|
85
|
+
private: boolean;
|
|
86
|
+
}>>;
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=github-oauth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-oauth.d.ts","sourceRoot":"","sources":["../../src/core/github-oauth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAGD,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAErE,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAUD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAS;gBAEb,QAAQ,EAAE,MAAM;IAI5B;;;OAGG;IACG,iBAAiB,CAAC,KAAK,GAAE,MAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAuC5E;;;OAGG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA0E3D;;OAEG;IACH,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAK9C;;OAEG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAIvC;;OAEG;IACG,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAuBvD;;OAEG;IACG,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAczD;AAED;;;GAGG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,WAAW,CAAS;gBAEhB,WAAW,EAAE,MAAM;YAIjB,OAAO;IAuBf,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC;IAS9B,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,GAAE,OAAc,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QACvF,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IAuBI,SAAS,CAAC,IAAI,GAAE,MAAU,EAAE,OAAO,GAAE,MAAW,GAAG,OAAO,CAAC,KAAK,CAAC;QACrE,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC,CAAC;CASJ"}
|