agent-skills-cli 1.0.9 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +110 -14
- package/dist/__tests__/git-auth.test.d.ts +11 -0
- package/dist/__tests__/git-auth.test.d.ts.map +1 -0
- package/dist/__tests__/git-auth.test.js +160 -0
- package/dist/__tests__/git-auth.test.js.map +1 -0
- package/dist/__tests__/skill-lock.test.d.ts +8 -0
- package/dist/__tests__/skill-lock.test.d.ts.map +1 -0
- package/dist/__tests__/skill-lock.test.js +104 -0
- package/dist/__tests__/skill-lock.test.js.map +1 -0
- package/dist/__tests__/skillsrc.test.d.ts +11 -0
- package/dist/__tests__/skillsrc.test.d.ts.map +1 -0
- package/dist/__tests__/skillsrc.test.js +185 -0
- package/dist/__tests__/skillsrc.test.js.map +1 -0
- package/dist/__tests__/source-parser.test.d.ts +16 -0
- package/dist/__tests__/source-parser.test.d.ts.map +1 -0
- package/dist/__tests__/source-parser.test.js +231 -0
- package/dist/__tests__/source-parser.test.js.map +1 -0
- package/dist/adapters/adapter.d.ts +51 -0
- package/dist/adapters/adapter.d.ts.map +1 -0
- package/dist/adapters/adapter.js +51 -0
- package/dist/adapters/adapter.js.map +1 -0
- package/dist/adapters/claude.d.ts +16 -0
- package/dist/adapters/claude.d.ts.map +1 -0
- package/dist/adapters/claude.js +30 -0
- package/dist/adapters/claude.js.map +1 -0
- package/dist/adapters/copilot.d.ts +16 -0
- package/dist/adapters/copilot.d.ts.map +1 -0
- package/dist/adapters/copilot.js +32 -0
- package/dist/adapters/copilot.js.map +1 -0
- package/dist/adapters/cursor.d.ts +17 -0
- package/dist/adapters/cursor.d.ts.map +1 -0
- package/dist/adapters/cursor.js +34 -0
- package/dist/adapters/cursor.js.map +1 -0
- package/dist/adapters/index.d.ts +11 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +10 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/universal.d.ts +12 -0
- package/dist/adapters/universal.d.ts.map +1 -0
- package/dist/adapters/universal.js +16 -0
- package/dist/adapters/universal.js.map +1 -0
- package/dist/cli/agents.d.ts +11 -0
- package/dist/cli/agents.d.ts.map +1 -1
- package/dist/cli/agents.js +47 -0
- package/dist/cli/agents.js.map +1 -1
- package/dist/cli/commands/convert.d.ts.map +1 -1
- package/dist/cli/commands/convert.js +16 -65
- package/dist/cli/commands/convert.js.map +1 -1
- package/dist/cli/commands/export.d.ts.map +1 -1
- package/dist/cli/commands/export.js +15 -7
- package/dist/cli/commands/export.js.map +1 -1
- package/dist/cli/commands/install.d.ts +8 -0
- package/dist/cli/commands/install.d.ts.map +1 -1
- package/dist/cli/commands/install.js +203 -90
- package/dist/cli/commands/install.js.map +1 -1
- package/dist/cli/commands/score.d.ts +10 -0
- package/dist/cli/commands/score.d.ts.map +1 -0
- package/dist/cli/commands/score.js +91 -0
- package/dist/cli/commands/score.js.map +1 -0
- package/dist/cli/commands/show.d.ts.map +1 -1
- package/dist/cli/commands/show.js +8 -0
- package/dist/cli/commands/show.js.map +1 -1
- package/dist/cli/commands/submit-repo.d.ts +11 -0
- package/dist/cli/commands/submit-repo.d.ts.map +1 -0
- package/dist/cli/commands/submit-repo.js +133 -0
- package/dist/cli/commands/submit-repo.js.map +1 -0
- package/dist/cli/commands/submit.d.ts.map +1 -1
- package/dist/cli/commands/submit.js +10 -0
- package/dist/cli/commands/submit.js.map +1 -1
- package/dist/cli/index.js +4 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/core/git-auth.d.ts +74 -0
- package/dist/core/git-auth.d.ts.map +1 -0
- package/dist/core/git-auth.js +299 -0
- package/dist/core/git-auth.js.map +1 -0
- package/dist/core/index.d.ts +6 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +7 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/quality.d.ts +48 -0
- package/dist/core/quality.d.ts.map +1 -0
- package/dist/core/quality.js +241 -0
- package/dist/core/quality.js.map +1 -0
- package/dist/core/skill-lock.d.ts +1 -1
- package/dist/core/skill-lock.d.ts.map +1 -1
- package/dist/core/skillsrc.d.ts +65 -0
- package/dist/core/skillsrc.d.ts.map +1 -0
- package/dist/core/skillsrc.js +161 -0
- package/dist/core/skillsrc.js.map +1 -0
- package/dist/core/source-parser.d.ts +9 -1
- package/dist/core/source-parser.d.ts.map +1 -1
- package/dist/core/source-parser.js +85 -6
- package/dist/core/source-parser.js.map +1 -1
- package/package.json +9 -3
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Submit-Repo Command
|
|
3
|
+
* Submit a GitHub repo link for marketplace indexing.
|
|
4
|
+
* We extract everything from the repo — user only provides the link.
|
|
5
|
+
*/
|
|
6
|
+
import chalk from 'chalk';
|
|
7
|
+
import ora from 'ora';
|
|
8
|
+
/**
|
|
9
|
+
* Register the submit-repo command
|
|
10
|
+
*/
|
|
11
|
+
export function registerSubmitRepoCommand(program) {
|
|
12
|
+
program
|
|
13
|
+
.command('submit-repo <repo>')
|
|
14
|
+
.description('Submit a GitHub repo to be indexed in the marketplace')
|
|
15
|
+
.action(async (repo) => {
|
|
16
|
+
try {
|
|
17
|
+
await submitRepoCommand(repo);
|
|
18
|
+
}
|
|
19
|
+
catch (err) {
|
|
20
|
+
console.error(chalk.red('Error:'), err.message);
|
|
21
|
+
process.exit(1);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
// API endpoint
|
|
26
|
+
const SUBMIT_REPO_API = 'https://www.agentskills.in/api/repos/submit';
|
|
27
|
+
/**
|
|
28
|
+
* Run the submit-repo command
|
|
29
|
+
*/
|
|
30
|
+
async function submitRepoCommand(repo) {
|
|
31
|
+
// Parse owner/repo from any format
|
|
32
|
+
const parts = repo
|
|
33
|
+
.replace(/https?:\/\/(www\.)?github\.com\//, '')
|
|
34
|
+
.replace(/\.git$/, '')
|
|
35
|
+
.replace(/\/$/, '')
|
|
36
|
+
.split('/');
|
|
37
|
+
if (parts.length !== 2 || !parts[0] || !parts[1]) {
|
|
38
|
+
console.error(chalk.red('Invalid repo. Use: owner/repo or a GitHub URL'));
|
|
39
|
+
console.log(chalk.dim(' Example: skills submit-repo facebook/react'));
|
|
40
|
+
process.exit(1);
|
|
41
|
+
}
|
|
42
|
+
const [owner, repoName] = parts;
|
|
43
|
+
console.log('');
|
|
44
|
+
console.log(chalk.bold('📤 Submit Skills Repository'));
|
|
45
|
+
console.log('');
|
|
46
|
+
// Step 1: Fetch repo info from GitHub
|
|
47
|
+
const spinner = ora('Fetching repo info from GitHub...').start();
|
|
48
|
+
let repoData;
|
|
49
|
+
try {
|
|
50
|
+
const res = await fetch(`https://api.github.com/repos/${owner}/${repoName}`, {
|
|
51
|
+
headers: { 'Accept': 'application/vnd.github.v3+json' },
|
|
52
|
+
});
|
|
53
|
+
if (!res.ok) {
|
|
54
|
+
spinner.fail(res.status === 404 ? 'Repository not found' : `GitHub API error: ${res.status}`);
|
|
55
|
+
process.exit(1);
|
|
56
|
+
}
|
|
57
|
+
repoData = await res.json();
|
|
58
|
+
spinner.succeed(`Found ${chalk.cyan(repoData.full_name)}`);
|
|
59
|
+
}
|
|
60
|
+
catch (err) {
|
|
61
|
+
spinner.fail('Could not reach GitHub API');
|
|
62
|
+
console.log(chalk.dim(` ${err.message}`));
|
|
63
|
+
process.exit(1);
|
|
64
|
+
}
|
|
65
|
+
// Step 2: Scan for SKILL.md files
|
|
66
|
+
const scanSpinner = ora('Scanning for skills...').start();
|
|
67
|
+
let skillPaths = [];
|
|
68
|
+
try {
|
|
69
|
+
const treeRes = await fetch(`https://api.github.com/repos/${owner}/${repoName}/git/trees/${repoData.default_branch}?recursive=1`, { headers: { 'Accept': 'application/vnd.github.v3+json' } });
|
|
70
|
+
if (treeRes.ok) {
|
|
71
|
+
const treeData = await treeRes.json();
|
|
72
|
+
skillPaths = (treeData.tree || [])
|
|
73
|
+
.filter((f) => f.type === 'blob' && f.path.endsWith('SKILL.md'))
|
|
74
|
+
.map((f) => f.path);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
catch { /* non-critical */ }
|
|
78
|
+
if (skillPaths.length === 0) {
|
|
79
|
+
scanSpinner.warn('No SKILL.md files found — repo will still be submitted for review');
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
scanSpinner.succeed(`Found ${chalk.bold(skillPaths.length)} skill(s)`);
|
|
83
|
+
for (const p of skillPaths.slice(0, 5)) {
|
|
84
|
+
console.log(chalk.dim(` ${p}`));
|
|
85
|
+
}
|
|
86
|
+
if (skillPaths.length > 5) {
|
|
87
|
+
console.log(chalk.dim(` ... and ${skillPaths.length - 5} more`));
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
// Step 3: Submit
|
|
91
|
+
const submitSpinner = ora('Submitting for indexing...').start();
|
|
92
|
+
try {
|
|
93
|
+
const response = await fetch(SUBMIT_REPO_API, {
|
|
94
|
+
method: 'POST',
|
|
95
|
+
headers: { 'Content-Type': 'application/json' },
|
|
96
|
+
body: JSON.stringify({
|
|
97
|
+
full_name: repoData.full_name,
|
|
98
|
+
html_url: repoData.html_url,
|
|
99
|
+
description: repoData.description || '',
|
|
100
|
+
stars: repoData.stargazers_count || 0,
|
|
101
|
+
language: repoData.language || '',
|
|
102
|
+
license: repoData.license?.spdx_id || '',
|
|
103
|
+
default_branch: repoData.default_branch,
|
|
104
|
+
skills_count: skillPaths.length,
|
|
105
|
+
skill_paths: skillPaths,
|
|
106
|
+
}),
|
|
107
|
+
});
|
|
108
|
+
if (response.ok) {
|
|
109
|
+
submitSpinner.succeed('Submitted!');
|
|
110
|
+
console.log('');
|
|
111
|
+
console.log(chalk.green('✨ Your repo has been submitted for indexing!'));
|
|
112
|
+
console.log(chalk.dim(' Skills will appear in the marketplace once processed.'));
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
const data = await response.json().catch(() => ({}));
|
|
116
|
+
if (response.status === 409) {
|
|
117
|
+
submitSpinner.warn('Already submitted');
|
|
118
|
+
console.log(chalk.dim(` Status: ${data.status || 'pending'}`));
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
submitSpinner.fail(data.error || `Failed (${response.status})`);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
catch (err) {
|
|
126
|
+
submitSpinner.fail('Could not reach API');
|
|
127
|
+
console.log(chalk.dim(` ${err.message}`));
|
|
128
|
+
console.log(chalk.dim(' Submit via GitHub issue instead:'));
|
|
129
|
+
console.log(chalk.dim(` ${chalk.white('https://github.com/Karanjot786/agent-skills-cli/issues/new')}`));
|
|
130
|
+
}
|
|
131
|
+
console.log('');
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=submit-repo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"submit-repo.js","sourceRoot":"","sources":["../../../src/cli/commands/submit-repo.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"submit.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/submit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"submit.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/submit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,MAAM,WAAW,aAAa;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAKD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAc5D"}
|
|
@@ -9,6 +9,7 @@ import { readFile, stat } from 'fs/promises';
|
|
|
9
9
|
import { existsSync } from 'fs';
|
|
10
10
|
import { resolve, join, basename } from 'path';
|
|
11
11
|
import { loadSkill, validateMetadata, validateBody } from '../../core/index.js';
|
|
12
|
+
import { assessQuality, formatScoreBar, getScoreColor } from '../../core/quality.js';
|
|
12
13
|
// Supabase API for submission
|
|
13
14
|
const SUBMIT_API = 'https://www.agentskills.in/api/skills/submit';
|
|
14
15
|
/**
|
|
@@ -87,6 +88,15 @@ async function submitCommand(targetPath, options) {
|
|
|
87
88
|
}
|
|
88
89
|
spinner.succeed('Skill validated');
|
|
89
90
|
console.log('');
|
|
91
|
+
// Step 1.5: Quality score
|
|
92
|
+
const quality = await assessQuality(resolvedPath);
|
|
93
|
+
const qColor = getScoreColor(quality.overall);
|
|
94
|
+
console.log(` ${chalk.dim('Quality:')} ${chalk[qColor](formatScoreBar(quality.overall, 15))} ${chalk.bold[qColor](quality.grade)}`);
|
|
95
|
+
if (quality.overall < 50) {
|
|
96
|
+
console.log(chalk.yellow(` ⚠ Low quality score (${quality.overall}/100). Consider improving before submitting.`));
|
|
97
|
+
console.log(chalk.dim(` Run: skills score ${targetPath} --verbose`));
|
|
98
|
+
}
|
|
99
|
+
console.log('');
|
|
90
100
|
// Step 2: Extract metadata
|
|
91
101
|
const skillName = options.name || skill.metadata?.name || basename(resolvedPath);
|
|
92
102
|
const description = skill.metadata?.description || '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"submit.js","sourceRoot":"","sources":["../../../src/cli/commands/submit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"submit.js","sourceRoot":"","sources":["../../../src/cli/commands/submit.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -45,6 +45,8 @@ import { registerBlueprintCommand } from './commands/blueprint.js';
|
|
|
45
45
|
import { registerCiCommand } from './commands/ci.js';
|
|
46
46
|
import { registerTrackCommand } from './commands/track.js';
|
|
47
47
|
import { registerInsightCommand } from './commands/insight.js';
|
|
48
|
+
import { registerScoreCommand } from './commands/score.js';
|
|
49
|
+
import { registerSubmitRepoCommand } from './commands/submit-repo.js';
|
|
48
50
|
import { registerMethodCommand } from './commands/method.js';
|
|
49
51
|
// ─── Program setup ─────────────────────────────────────────────────────────
|
|
50
52
|
const program = new Command();
|
|
@@ -239,5 +241,7 @@ registerCiCommand(program);
|
|
|
239
241
|
registerTrackCommand(program);
|
|
240
242
|
registerInsightCommand(program);
|
|
241
243
|
registerMethodCommand(program);
|
|
244
|
+
registerScoreCommand(program);
|
|
245
|
+
registerSubmitRepoCommand(program);
|
|
242
246
|
program.parse();
|
|
243
247
|
//# sourceMappingURL=index.js.map
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Git Authentication Module
|
|
3
|
+
* Resolves credentials for private Git repositories across platforms
|
|
4
|
+
*
|
|
5
|
+
* Supports:
|
|
6
|
+
* - Environment variables (GIT_TOKEN, GITLAB_TOKEN, BITBUCKET_TOKEN, GH_TOKEN)
|
|
7
|
+
* - SSH key detection
|
|
8
|
+
* - Git credential helper
|
|
9
|
+
* - Interactive token prompt (fallback)
|
|
10
|
+
*/
|
|
11
|
+
export type GitHost = 'github' | 'gitlab' | 'bitbucket' | 'custom';
|
|
12
|
+
export interface GitAuthResult {
|
|
13
|
+
/** The authentication method that was resolved */
|
|
14
|
+
method: 'token' | 'ssh' | 'credential-helper' | 'netrc' | 'none';
|
|
15
|
+
/** Token value if method is 'token' */
|
|
16
|
+
token?: string;
|
|
17
|
+
/** Whether SSH keys are available */
|
|
18
|
+
sshAvailable?: boolean;
|
|
19
|
+
/** Detected host type */
|
|
20
|
+
host: GitHost;
|
|
21
|
+
}
|
|
22
|
+
export interface CloneOptions {
|
|
23
|
+
/** Branch or tag to checkout */
|
|
24
|
+
ref?: string;
|
|
25
|
+
/** Clone depth (default: 1 for shallow) */
|
|
26
|
+
depth?: number;
|
|
27
|
+
/** Subpath within the repo to sparse-checkout */
|
|
28
|
+
subpath?: string;
|
|
29
|
+
/** Explicit auth token to use (overrides auto-detection) */
|
|
30
|
+
token?: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Detect the Git hosting provider from a URL
|
|
34
|
+
*/
|
|
35
|
+
export declare function detectGitHost(url: string): GitHost;
|
|
36
|
+
/**
|
|
37
|
+
* Resolve Git authentication for a given URL
|
|
38
|
+
*
|
|
39
|
+
* Resolution priority:
|
|
40
|
+
* 1. Environment variables (host-specific)
|
|
41
|
+
* 2. SSH key availability (for SSH URLs)
|
|
42
|
+
* 3. Git credential helper
|
|
43
|
+
* 4. .netrc file
|
|
44
|
+
* 5. None (public repo or will fail)
|
|
45
|
+
*/
|
|
46
|
+
export declare function resolveGitAuth(url: string, explicitToken?: string): Promise<GitAuthResult>;
|
|
47
|
+
/**
|
|
48
|
+
* Build an authenticated HTTPS URL by injecting a token
|
|
49
|
+
*
|
|
50
|
+
* Input: https://gitlab.com/team/repo.git + token "abc123"
|
|
51
|
+
* Output: https://oauth2:abc123@gitlab.com/team/repo.git
|
|
52
|
+
*/
|
|
53
|
+
export declare function buildAuthenticatedUrl(url: string, token: string): string;
|
|
54
|
+
/**
|
|
55
|
+
* Convert an SSH URL to HTTPS URL for token-based auth
|
|
56
|
+
* git@github.com:owner/repo.git → https://github.com/owner/repo.git
|
|
57
|
+
*/
|
|
58
|
+
export declare function sshToHttps(url: string): string;
|
|
59
|
+
/**
|
|
60
|
+
* Normalize a Git URL for cloning
|
|
61
|
+
* Ensures URL has .git suffix and proper protocol
|
|
62
|
+
*/
|
|
63
|
+
export declare function normalizeGitUrl(url: string): string;
|
|
64
|
+
/**
|
|
65
|
+
* Clone a Git repository with automatic authentication
|
|
66
|
+
*
|
|
67
|
+
* Handles SSH, HTTPS+token, and public repos transparently.
|
|
68
|
+
*/
|
|
69
|
+
export declare function cloneWithAuth(url: string, destDir: string, options?: CloneOptions): Promise<void>;
|
|
70
|
+
/**
|
|
71
|
+
* Get the display-safe version of a URL (strips tokens)
|
|
72
|
+
*/
|
|
73
|
+
export declare function sanitizeUrl(url: string): string;
|
|
74
|
+
//# sourceMappingURL=git-auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-auth.d.ts","sourceRoot":"","sources":["../../src/core/git-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAaH,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;AAEnE,MAAM,WAAW,aAAa;IAC1B,kDAAkD;IAClD,MAAM,EAAE,OAAO,GAAG,KAAK,GAAG,mBAAmB,GAAG,OAAO,GAAG,MAAM,CAAC;IACjE,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,yBAAyB;IACzB,IAAI,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IACzB,gCAAgC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAID;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAMlD;AA2HD;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAsChG;AAID;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAUxE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAM9C;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAiBnD;AAID;;;;GAIG;AACH,wBAAsB,aAAa,CAC/B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,YAAY,GACvB,OAAO,CAAC,IAAI,CAAC,CAuDf;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI/C"}
|
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Git Authentication Module
|
|
3
|
+
* Resolves credentials for private Git repositories across platforms
|
|
4
|
+
*
|
|
5
|
+
* Supports:
|
|
6
|
+
* - Environment variables (GIT_TOKEN, GITLAB_TOKEN, BITBUCKET_TOKEN, GH_TOKEN)
|
|
7
|
+
* - SSH key detection
|
|
8
|
+
* - Git credential helper
|
|
9
|
+
* - Interactive token prompt (fallback)
|
|
10
|
+
*/
|
|
11
|
+
import { exec } from 'child_process';
|
|
12
|
+
import { promisify } from 'util';
|
|
13
|
+
import { existsSync } from 'fs';
|
|
14
|
+
import { readFile } from 'fs/promises';
|
|
15
|
+
import { join } from 'path';
|
|
16
|
+
import { homedir } from 'os';
|
|
17
|
+
const execAsync = promisify(exec);
|
|
18
|
+
// ─── Host Detection ──────────────────────────────────────────────────
|
|
19
|
+
/**
|
|
20
|
+
* Detect the Git hosting provider from a URL
|
|
21
|
+
*/
|
|
22
|
+
export function detectGitHost(url) {
|
|
23
|
+
const lower = url.toLowerCase();
|
|
24
|
+
if (lower.includes('github.com') || lower.includes('github'))
|
|
25
|
+
return 'github';
|
|
26
|
+
if (lower.includes('gitlab.com') || lower.includes('gitlab'))
|
|
27
|
+
return 'gitlab';
|
|
28
|
+
if (lower.includes('bitbucket.org') || lower.includes('bitbucket'))
|
|
29
|
+
return 'bitbucket';
|
|
30
|
+
return 'custom';
|
|
31
|
+
}
|
|
32
|
+
// ─── Token Resolution ────────────────────────────────────────────────
|
|
33
|
+
/**
|
|
34
|
+
* Map of environment variables to check for each host type
|
|
35
|
+
*/
|
|
36
|
+
const HOST_ENV_VARS = {
|
|
37
|
+
github: ['GH_TOKEN', 'GITHUB_TOKEN', 'GIT_TOKEN'],
|
|
38
|
+
gitlab: ['GITLAB_TOKEN', 'GL_TOKEN', 'GIT_TOKEN'],
|
|
39
|
+
bitbucket: ['BITBUCKET_TOKEN', 'BB_TOKEN', 'GIT_TOKEN'],
|
|
40
|
+
custom: ['GIT_TOKEN', 'GITLAB_TOKEN', 'GH_TOKEN'],
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Try to resolve a token from environment variables
|
|
44
|
+
*/
|
|
45
|
+
function resolveTokenFromEnv(host) {
|
|
46
|
+
const vars = HOST_ENV_VARS[host];
|
|
47
|
+
for (const envVar of vars) {
|
|
48
|
+
const value = process.env[envVar];
|
|
49
|
+
if (value && value.trim()) {
|
|
50
|
+
return value.trim();
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return undefined;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Check if SSH keys are available via ssh-agent
|
|
57
|
+
*/
|
|
58
|
+
async function checkSshAvailable() {
|
|
59
|
+
try {
|
|
60
|
+
const { stdout } = await execAsync('ssh-add -l', { timeout: 5000 });
|
|
61
|
+
// ssh-add -l returns identities if any are loaded
|
|
62
|
+
return !stdout.includes('no identities');
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
// Also check if SSH key files exist
|
|
66
|
+
const sshDir = join(homedir(), '.ssh');
|
|
67
|
+
return (existsSync(join(sshDir, 'id_rsa')) ||
|
|
68
|
+
existsSync(join(sshDir, 'id_ed25519')) ||
|
|
69
|
+
existsSync(join(sshDir, 'id_ecdsa')));
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Try to resolve a token from Git credential helper
|
|
74
|
+
*/
|
|
75
|
+
async function resolveFromCredentialHelper(hostname) {
|
|
76
|
+
try {
|
|
77
|
+
// Check if a credential helper is configured
|
|
78
|
+
const { stdout: helper } = await execAsync('git config credential.helper', { timeout: 3000 });
|
|
79
|
+
if (!helper.trim())
|
|
80
|
+
return undefined;
|
|
81
|
+
// Try to get credentials using a script that writes to stdin and reads stdout
|
|
82
|
+
const { stdout } = await execAsync(`printf 'protocol=https\nhost=${hostname}\n\n' | git credential fill`, {
|
|
83
|
+
timeout: 3000,
|
|
84
|
+
env: {
|
|
85
|
+
...process.env,
|
|
86
|
+
GIT_TERMINAL_PROMPT: '0',
|
|
87
|
+
},
|
|
88
|
+
});
|
|
89
|
+
const passwordMatch = stdout.match(/password=(.+)/);
|
|
90
|
+
if (passwordMatch) {
|
|
91
|
+
return passwordMatch[1].trim();
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
// Credential helper not available or failed
|
|
96
|
+
}
|
|
97
|
+
return undefined;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Try to resolve credentials from .netrc file
|
|
101
|
+
*/
|
|
102
|
+
async function resolveFromNetrc(hostname) {
|
|
103
|
+
const netrcPath = join(homedir(), process.platform === 'win32' ? '_netrc' : '.netrc');
|
|
104
|
+
if (!existsSync(netrcPath))
|
|
105
|
+
return undefined;
|
|
106
|
+
try {
|
|
107
|
+
const content = await readFile(netrcPath, 'utf-8');
|
|
108
|
+
// Simple .netrc parser — find machine entry for this host
|
|
109
|
+
const machineRegex = new RegExp(`machine\\s+${hostname.replace('.', '\\.')}[\\s\\S]*?password\\s+(\\S+)`, 'i');
|
|
110
|
+
const match = content.match(machineRegex);
|
|
111
|
+
if (match)
|
|
112
|
+
return match[1];
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
// .netrc not readable
|
|
116
|
+
}
|
|
117
|
+
return undefined;
|
|
118
|
+
}
|
|
119
|
+
// ─── Main Auth Resolution ────────────────────────────────────────────
|
|
120
|
+
/**
|
|
121
|
+
* Extract hostname from a Git URL
|
|
122
|
+
*/
|
|
123
|
+
function extractHostname(url) {
|
|
124
|
+
// SSH format: git@hostname:path
|
|
125
|
+
const sshMatch = url.match(/^git@([^:]+):/);
|
|
126
|
+
if (sshMatch)
|
|
127
|
+
return sshMatch[1];
|
|
128
|
+
// HTTPS format
|
|
129
|
+
try {
|
|
130
|
+
const parsed = new URL(url);
|
|
131
|
+
return parsed.hostname;
|
|
132
|
+
}
|
|
133
|
+
catch {
|
|
134
|
+
// Try extracting from path-like URLs
|
|
135
|
+
const match = url.match(/^https?:\/\/([^/:]+)/);
|
|
136
|
+
if (match)
|
|
137
|
+
return match[1];
|
|
138
|
+
}
|
|
139
|
+
return url;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Resolve Git authentication for a given URL
|
|
143
|
+
*
|
|
144
|
+
* Resolution priority:
|
|
145
|
+
* 1. Environment variables (host-specific)
|
|
146
|
+
* 2. SSH key availability (for SSH URLs)
|
|
147
|
+
* 3. Git credential helper
|
|
148
|
+
* 4. .netrc file
|
|
149
|
+
* 5. None (public repo or will fail)
|
|
150
|
+
*/
|
|
151
|
+
export async function resolveGitAuth(url, explicitToken) {
|
|
152
|
+
const host = detectGitHost(url);
|
|
153
|
+
const hostname = extractHostname(url);
|
|
154
|
+
// Explicit token takes priority
|
|
155
|
+
if (explicitToken) {
|
|
156
|
+
return { method: 'token', token: explicitToken, host };
|
|
157
|
+
}
|
|
158
|
+
// 1. Environment variables
|
|
159
|
+
const envToken = resolveTokenFromEnv(host);
|
|
160
|
+
if (envToken) {
|
|
161
|
+
return { method: 'token', token: envToken, host };
|
|
162
|
+
}
|
|
163
|
+
// 2. SSH availability (for SSH URLs)
|
|
164
|
+
const isSshUrl = url.startsWith('git@') || url.includes('ssh://');
|
|
165
|
+
if (isSshUrl) {
|
|
166
|
+
const sshAvailable = await checkSshAvailable();
|
|
167
|
+
if (sshAvailable) {
|
|
168
|
+
return { method: 'ssh', sshAvailable: true, host };
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
// 3. Git credential helper
|
|
172
|
+
const credToken = await resolveFromCredentialHelper(hostname);
|
|
173
|
+
if (credToken) {
|
|
174
|
+
return { method: 'credential-helper', token: credToken, host };
|
|
175
|
+
}
|
|
176
|
+
// 4. .netrc
|
|
177
|
+
const netrcToken = await resolveFromNetrc(hostname);
|
|
178
|
+
if (netrcToken) {
|
|
179
|
+
return { method: 'netrc', token: netrcToken, host };
|
|
180
|
+
}
|
|
181
|
+
// 5. No auth found — will attempt without authentication
|
|
182
|
+
return { method: 'none', host };
|
|
183
|
+
}
|
|
184
|
+
// ─── URL Manipulation ────────────────────────────────────────────────
|
|
185
|
+
/**
|
|
186
|
+
* Build an authenticated HTTPS URL by injecting a token
|
|
187
|
+
*
|
|
188
|
+
* Input: https://gitlab.com/team/repo.git + token "abc123"
|
|
189
|
+
* Output: https://oauth2:abc123@gitlab.com/team/repo.git
|
|
190
|
+
*/
|
|
191
|
+
export function buildAuthenticatedUrl(url, token) {
|
|
192
|
+
try {
|
|
193
|
+
const parsed = new URL(url);
|
|
194
|
+
parsed.username = 'oauth2';
|
|
195
|
+
parsed.password = token;
|
|
196
|
+
return parsed.toString();
|
|
197
|
+
}
|
|
198
|
+
catch {
|
|
199
|
+
// Fallback: inject after protocol
|
|
200
|
+
return url.replace(/^(https?:\/\/)/, `$1oauth2:${token}@`);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Convert an SSH URL to HTTPS URL for token-based auth
|
|
205
|
+
* git@github.com:owner/repo.git → https://github.com/owner/repo.git
|
|
206
|
+
*/
|
|
207
|
+
export function sshToHttps(url) {
|
|
208
|
+
const match = url.match(/^git@([^:]+):(.+?)(?:\.git)?$/);
|
|
209
|
+
if (match) {
|
|
210
|
+
return `https://${match[1]}/${match[2]}.git`;
|
|
211
|
+
}
|
|
212
|
+
return url;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Normalize a Git URL for cloning
|
|
216
|
+
* Ensures URL has .git suffix and proper protocol
|
|
217
|
+
*/
|
|
218
|
+
export function normalizeGitUrl(url) {
|
|
219
|
+
// Already an SSH URL — leave as-is
|
|
220
|
+
if (url.startsWith('git@') || url.startsWith('ssh://')) {
|
|
221
|
+
return url;
|
|
222
|
+
}
|
|
223
|
+
// Ensure HTTPS prefix
|
|
224
|
+
if (!url.startsWith('http://') && !url.startsWith('https://')) {
|
|
225
|
+
url = `https://${url}`;
|
|
226
|
+
}
|
|
227
|
+
// Ensure .git suffix
|
|
228
|
+
if (!url.endsWith('.git')) {
|
|
229
|
+
url = `${url}.git`;
|
|
230
|
+
}
|
|
231
|
+
return url;
|
|
232
|
+
}
|
|
233
|
+
// ─── Clone with Auth ─────────────────────────────────────────────────
|
|
234
|
+
/**
|
|
235
|
+
* Clone a Git repository with automatic authentication
|
|
236
|
+
*
|
|
237
|
+
* Handles SSH, HTTPS+token, and public repos transparently.
|
|
238
|
+
*/
|
|
239
|
+
export async function cloneWithAuth(url, destDir, options) {
|
|
240
|
+
const { ref, depth = 1, token } = options || {};
|
|
241
|
+
// Resolve authentication
|
|
242
|
+
const auth = await resolveGitAuth(url, token);
|
|
243
|
+
// Build the clone URL
|
|
244
|
+
let cloneUrl;
|
|
245
|
+
if (auth.method === 'ssh' || (auth.method === 'none' && url.startsWith('git@'))) {
|
|
246
|
+
// Use SSH URL directly
|
|
247
|
+
cloneUrl = url;
|
|
248
|
+
}
|
|
249
|
+
else if (auth.token) {
|
|
250
|
+
// Convert SSH to HTTPS if needed, then inject token
|
|
251
|
+
const httpsUrl = url.startsWith('git@') ? sshToHttps(url) : normalizeGitUrl(url);
|
|
252
|
+
cloneUrl = buildAuthenticatedUrl(httpsUrl, auth.token);
|
|
253
|
+
}
|
|
254
|
+
else {
|
|
255
|
+
// No auth — try public access
|
|
256
|
+
cloneUrl = normalizeGitUrl(url);
|
|
257
|
+
}
|
|
258
|
+
// Build clone command
|
|
259
|
+
const args = ['git', 'clone'];
|
|
260
|
+
if (depth)
|
|
261
|
+
args.push('--depth', String(depth));
|
|
262
|
+
if (ref)
|
|
263
|
+
args.push('--branch', ref);
|
|
264
|
+
args.push(cloneUrl, '.');
|
|
265
|
+
try {
|
|
266
|
+
await execAsync(args.join(' '), {
|
|
267
|
+
cwd: destDir,
|
|
268
|
+
timeout: 60000, // 60s timeout
|
|
269
|
+
env: {
|
|
270
|
+
...process.env,
|
|
271
|
+
// Suppress interactive prompts in CI
|
|
272
|
+
GIT_TERMINAL_PROMPT: '0',
|
|
273
|
+
},
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
catch (err) {
|
|
277
|
+
// Clean error message (strip token from output)
|
|
278
|
+
const message = (err.stderr || err.message || 'Unknown error')
|
|
279
|
+
.replace(/oauth2:[^@]+@/g, 'oauth2:***@')
|
|
280
|
+
.trim();
|
|
281
|
+
if (message.includes('Authentication failed') || message.includes('403') || message.includes('401')) {
|
|
282
|
+
const host = detectGitHost(url);
|
|
283
|
+
const envVars = HOST_ENV_VARS[host].join(' or ');
|
|
284
|
+
throw new Error(`Authentication failed for ${url}\n` +
|
|
285
|
+
`Set ${envVars} environment variable, or use --token flag.\n` +
|
|
286
|
+
`For SSH, ensure your key is added: ssh-add ~/.ssh/id_ed25519`);
|
|
287
|
+
}
|
|
288
|
+
throw new Error(`Git clone failed: ${message}`);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Get the display-safe version of a URL (strips tokens)
|
|
293
|
+
*/
|
|
294
|
+
export function sanitizeUrl(url) {
|
|
295
|
+
return url
|
|
296
|
+
.replace(/oauth2:[^@]+@/g, 'oauth2:***@')
|
|
297
|
+
.replace(/(https?:\/\/)[^:]+:[^@]+@/g, '$1***:***@');
|
|
298
|
+
}
|
|
299
|
+
//# sourceMappingURL=git-auth.js.map
|