specweave 1.0.427 → 1.0.428

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.
@@ -31,6 +31,16 @@ export interface GitHubCloningResult {
31
31
  /** List of repo names being cloned (for 1:1 project mapping) */
32
32
  clonedRepos: string[];
33
33
  }
34
+ /**
35
+ * Build clone URL based on user's URL format preference
36
+ *
37
+ * @param owner - Repository owner (org or user)
38
+ * @param repo - Repository name
39
+ * @param pat - Personal Access Token (only used for HTTPS)
40
+ * @param gitUrlFormat - User's preference: 'ssh' or 'https'
41
+ * @returns Clone URL in the requested format
42
+ */
43
+ export declare function buildGitHubCloneUrl(owner: string, repo: string, pat: string, gitUrlFormat?: 'ssh' | 'https'): string;
34
44
  /**
35
45
  * Trigger GitHub repository cloning during init
36
46
  *
@@ -48,4 +58,44 @@ export interface GitHubCloningResult {
48
58
  * @returns Cloning result with job ID and list of repos being cloned (v1.0.9)
49
59
  */
50
60
  export declare function triggerGitHubRepoCloning(projectPath: string, githubRepoSelection: GitHubRepoSelection, clonePattern: ClonePatternResult, gitUrlFormat?: 'ssh' | 'https', excludeRepos?: string[]): Promise<GitHubCloningResult>;
61
+ /**
62
+ * Options for cloning a single GitHub repository
63
+ */
64
+ export interface SingleRepoCloneOptions {
65
+ /** Raw repo identifier (any format: owner/repo, URL, SSH) */
66
+ repoIdentifier: string;
67
+ /** Project root path */
68
+ projectPath: string;
69
+ /** GitHub PAT (optional for SSH) */
70
+ pat?: string;
71
+ /** Dry-run mode — validate only, don't clone */
72
+ dryRun?: boolean;
73
+ }
74
+ /**
75
+ * Result of a single repo clone operation
76
+ */
77
+ export interface SingleRepoCloneResult {
78
+ /** Whether the clone job was launched */
79
+ cloned: boolean;
80
+ /** Job ID if clone was launched */
81
+ jobId?: string;
82
+ /** Whether repo was already cloned locally */
83
+ alreadyCloned?: boolean;
84
+ /** Parsed owner */
85
+ owner?: string;
86
+ /** Parsed repo name */
87
+ repo?: string;
88
+ /** Error message if failed */
89
+ error?: string;
90
+ }
91
+ /**
92
+ * Clone a single GitHub repository into the umbrella workspace.
93
+ *
94
+ * Validates the repo exists, checks for local duplicates, then
95
+ * launches a background clone job via existing infrastructure.
96
+ *
97
+ * @param options - Clone options including repo identifier and project path
98
+ * @returns Result with clone status, job ID, or error
99
+ */
100
+ export declare function cloneSingleGitHubRepo(options: SingleRepoCloneOptions): Promise<SingleRepoCloneResult>;
51
101
  //# sourceMappingURL=github-repo-cloning.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"github-repo-cloning.d.ts","sourceRoot":"","sources":["../../../../../src/cli/helpers/init/github-repo-cloning.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAA+B,KAAK,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAIhG;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,mCAAmC;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,4BAA4B;IAC5B,GAAG,EAAE,MAAM,CAAC;CACb;AAuQD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAmDD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,wBAAwB,CAC5C,WAAW,EAAE,MAAM,EACnB,mBAAmB,EAAE,mBAAmB,EACxC,YAAY,EAAE,kBAAkB,EAChC,YAAY,GAAE,KAAK,GAAG,OAAiB,EACvC,YAAY,GAAE,MAAM,EAAO,GAC1B,OAAO,CAAC,mBAAmB,CAAC,CAsH9B"}
1
+ {"version":3,"file":"github-repo-cloning.d.ts","sourceRoot":"","sources":["../../../../../src/cli/helpers/init/github-repo-cloning.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,OAAO,EAA+B,KAAK,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAKhG;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,mCAAmC;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,4BAA4B;IAC5B,GAAG,EAAE,MAAM,CAAC;CACb;AAuQD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AA8BD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,YAAY,GAAE,KAAK,GAAG,OAAiB,GACtC,MAAM,CAKR;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,wBAAwB,CAC5C,WAAW,EAAE,MAAM,EACnB,mBAAmB,EAAE,mBAAmB,EACxC,YAAY,EAAE,kBAAkB,EAChC,YAAY,GAAE,KAAK,GAAG,OAAiB,EACvC,YAAY,GAAE,MAAM,EAAO,GAC1B,OAAO,CAAC,mBAAmB,CAAC,CAsH9B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,6DAA6D;IAC7D,cAAc,EAAE,MAAM,CAAC;IACvB,wBAAwB;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,yCAAyC;IACzC,MAAM,EAAE,OAAO,CAAC;IAChB,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mBAAmB;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,qBAAqB,CAAC,CAyFhC"}
@@ -13,8 +13,11 @@
13
13
  * @module cli/helpers/init/github-repo-cloning
14
14
  */
15
15
  import chalk from 'chalk';
16
+ import * as fs from 'fs';
17
+ import * as path from 'path';
16
18
  import { filterRepositoriesByPattern } from '../selection-strategy.js';
17
19
  import { launchCloneJob } from '../../../core/background/job-launcher.js';
20
+ import { parseRepoIdentifier } from '../../../core/repo-structure/url-generator.js';
18
21
  import { REPO_FETCH_LIMITS } from './types.js';
19
22
  /**
20
23
  * Parse rate limit headers from GitHub API response
@@ -234,7 +237,7 @@ function buildGitHubSshCloneUrl(owner, repo) {
234
237
  * @param gitUrlFormat - User's preference: 'ssh' or 'https'
235
238
  * @returns Clone URL in the requested format
236
239
  */
237
- function buildGitHubCloneUrl(owner, repo, pat, gitUrlFormat = 'https') {
240
+ export function buildGitHubCloneUrl(owner, repo, pat, gitUrlFormat = 'https') {
238
241
  if (gitUrlFormat === 'ssh') {
239
242
  return buildGitHubSshCloneUrl(owner, repo);
240
243
  }
@@ -356,4 +359,92 @@ export async function triggerGitHubRepoCloning(projectPath, githubRepoSelection,
356
359
  clonedRepos: filteredRepos.map(r => r.name)
357
360
  };
358
361
  }
362
+ /**
363
+ * Clone a single GitHub repository into the umbrella workspace.
364
+ *
365
+ * Validates the repo exists, checks for local duplicates, then
366
+ * launches a background clone job via existing infrastructure.
367
+ *
368
+ * @param options - Clone options including repo identifier and project path
369
+ * @returns Result with clone status, job ID, or error
370
+ */
371
+ export async function cloneSingleGitHubRepo(options) {
372
+ const { repoIdentifier, projectPath, pat, dryRun } = options;
373
+ // Step 1: Parse input
374
+ const parsed = parseRepoIdentifier(repoIdentifier);
375
+ if (!parsed) {
376
+ return {
377
+ cloned: false,
378
+ error: 'Invalid repo format. Supported formats: owner/repo, github.com/owner/repo, https://github.com/owner/repo, git@github.com:owner/repo.git'
379
+ };
380
+ }
381
+ const { owner, repo, inputType } = parsed;
382
+ const urlFormat = inputType === 'ssh' ? 'ssh' : 'https';
383
+ // Step 2: Resolve token — required for HTTPS/shorthand, optional for SSH
384
+ if (!pat && inputType !== 'ssh') {
385
+ return {
386
+ cloned: false,
387
+ owner,
388
+ repo,
389
+ error: 'No GitHub token found. Set GH_TOKEN or GITHUB_TOKEN environment variable, or use SSH format (git@github.com:owner/repo.git).'
390
+ };
391
+ }
392
+ // Step 3: Validate repo exists via GitHub API (if token available)
393
+ if (pat) {
394
+ try {
395
+ const response = await fetch(`https://api.github.com/repos/${owner}/${repo}`, {
396
+ headers: {
397
+ 'Authorization': `Bearer ${pat}`,
398
+ 'Accept': 'application/vnd.github+json',
399
+ 'X-GitHub-Api-Version': '2022-11-28'
400
+ }
401
+ });
402
+ if (!response.ok) {
403
+ return {
404
+ cloned: false,
405
+ owner,
406
+ repo,
407
+ error: `Repository ${owner}/${repo} not found or you don't have access. Check the repo name and ensure your token has 'repo' scope.`
408
+ };
409
+ }
410
+ }
411
+ catch (err) {
412
+ console.log(chalk.yellow(` ⚠️ Could not validate repo (network error), proceeding with clone...`));
413
+ }
414
+ }
415
+ // Step 4: Check local existence
416
+ const localGitPath = path.join(projectPath, 'repositories', owner, repo, '.git');
417
+ if (fs.existsSync(localGitPath)) {
418
+ console.log(chalk.green(` ✓ Repository ${owner}/${repo} already cloned at repositories/${owner}/${repo}`));
419
+ return { cloned: false, alreadyCloned: true, owner, repo };
420
+ }
421
+ // Step 5: Dry-run — validate only, don't clone
422
+ if (dryRun) {
423
+ console.log(chalk.cyan(` 🔎 DRY RUN: Would clone ${owner}/${repo} to repositories/${owner}/${repo}`));
424
+ return { cloned: false, owner, repo };
425
+ }
426
+ // Step 6: Build clone URL and launch job
427
+ const cloneUrl = buildGitHubCloneUrl(owner, repo, pat || '', urlFormat);
428
+ console.log(chalk.blue(`\n🔄 Cloning ${owner}/${repo}...\n`));
429
+ const result = await launchCloneJob({
430
+ projectPath,
431
+ repositories: [{
432
+ owner,
433
+ name: repo,
434
+ path: `repositories/${owner}/${repo}`,
435
+ cloneUrl
436
+ }]
437
+ });
438
+ if (!result.skippedPreFlight) {
439
+ console.log(chalk.green(` ✓ Clone job started (Job ID: ${result.job.id})`));
440
+ console.log(chalk.gray(` Target: repositories/${owner}/${repo}`));
441
+ console.log(chalk.cyan(` Check progress: /sw:jobs`));
442
+ }
443
+ return {
444
+ cloned: true,
445
+ jobId: result.job.id,
446
+ owner,
447
+ repo
448
+ };
449
+ }
359
450
  //# sourceMappingURL=github-repo-cloning.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"github-repo-cloning.js","sourceRoot":"","sources":["../../../../../src/cli/helpers/init/github-repo-cloning.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github-repo-cloning.js","sourceRoot":"","sources":["../../../../../src/cli/helpers/init/github-repo-cloning.ts"],"names":[],"mappings":"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"}
@@ -61,6 +61,25 @@ export declare function parseGitRemoteUrl(url: string): {
61
61
  urlType: UrlType;
62
62
  host: string;
63
63
  } | null;
64
+ /**
65
+ * Parse a repository identifier from various input formats.
66
+ *
67
+ * Supports:
68
+ * - `owner/repo` shorthand (assumes github.com)
69
+ * - `github.com/owner/repo` (bare host, no protocol)
70
+ * - `https://github.com/owner/repo[.git][/tree/main/...]`
71
+ * - `git@github.com:owner/repo[.git]`
72
+ *
73
+ * Delegates to `parseGitRemoteUrl()` for standard git URL formats.
74
+ *
75
+ * @param input - Repository identifier in any supported format
76
+ * @returns Parsed owner/repo with input type, or null if unparseable
77
+ */
78
+ export declare function parseRepoIdentifier(input: string): {
79
+ owner: string;
80
+ repo: string;
81
+ inputType: 'ssh' | 'https' | 'shorthand';
82
+ } | null;
64
83
  /**
65
84
  * Detect Git platform from hostname
66
85
  *
@@ -1 +1 @@
1
- {"version":3,"file":"url-generator.d.ts","sourceRoot":"","sources":["../../../../src/core/repo-structure/url-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,OAAO,GAAG,KAAK,GAAG,OAAO,CAAC;AAEtC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,EAChB,QAAQ,GAAE,WAAoC,GAC7C,MAAM,CAQR;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,IAAI,CAwBP;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,cAAc,GAAG,SAAS,CAM9G"}
1
+ {"version":3,"file":"url-generator.d.ts","sourceRoot":"","sources":["../../../../src/core/repo-structure/url-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,OAAO,GAAG,KAAK,GAAG,OAAO,CAAC;AAEtC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,EAChB,QAAQ,GAAE,WAAoC,GAC7C,MAAM,CAQR;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,IAAI,CAwBP;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,KAAK,GAAG,OAAO,GAAG,WAAW,CAAC;CAC1C,GAAG,IAAI,CA2CP;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,cAAc,GAAG,SAAS,CAM9G"}
@@ -81,6 +81,54 @@ export function parseGitRemoteUrl(url) {
81
81
  }
82
82
  return null;
83
83
  }
84
+ /**
85
+ * Parse a repository identifier from various input formats.
86
+ *
87
+ * Supports:
88
+ * - `owner/repo` shorthand (assumes github.com)
89
+ * - `github.com/owner/repo` (bare host, no protocol)
90
+ * - `https://github.com/owner/repo[.git][/tree/main/...]`
91
+ * - `git@github.com:owner/repo[.git]`
92
+ *
93
+ * Delegates to `parseGitRemoteUrl()` for standard git URL formats.
94
+ *
95
+ * @param input - Repository identifier in any supported format
96
+ * @returns Parsed owner/repo with input type, or null if unparseable
97
+ */
98
+ export function parseRepoIdentifier(input) {
99
+ const trimmed = input.trim();
100
+ if (!trimmed)
101
+ return null;
102
+ // 1. Try HTTPS URLs with extra path segments (e.g. /tree/main)
103
+ // Strip to https://host/owner/repo before delegating
104
+ const httpsExtraPath = trimmed.match(/^(https?:\/\/github\.com\/[\w.-]+\/[\w.-]+?)(?:\.git)?(?:\/.*)?$/);
105
+ if (httpsExtraPath) {
106
+ const gitResult = parseGitRemoteUrl(httpsExtraPath[1]);
107
+ if (gitResult) {
108
+ return { owner: gitResult.owner, repo: gitResult.repo, inputType: 'https' };
109
+ }
110
+ }
111
+ // 2. Try standard git URL formats via existing parser
112
+ const gitResult = parseGitRemoteUrl(trimmed);
113
+ if (gitResult && gitResult.host.includes('github')) {
114
+ return {
115
+ owner: gitResult.owner,
116
+ repo: gitResult.repo.replace(/\.git$/, ''),
117
+ inputType: gitResult.urlType
118
+ };
119
+ }
120
+ // 3. github.com/owner/repo (bare host, no protocol)
121
+ const bareHostMatch = trimmed.match(/^github\.com\/([\w.-]+)\/([\w.-]+?)(?:\.git)?\/?(?:\/.*)?$/);
122
+ if (bareHostMatch) {
123
+ return { owner: bareHostMatch[1], repo: bareHostMatch[2], inputType: 'https' };
124
+ }
125
+ // 4. owner/repo shorthand (exactly two segments)
126
+ const shorthandMatch = trimmed.match(/^([\w.-]+)\/([\w.-]+?)(?:\.git)?\/?$/);
127
+ if (shorthandMatch) {
128
+ return { owner: shorthandMatch[1], repo: shorthandMatch[2], inputType: 'shorthand' };
129
+ }
130
+ return null;
131
+ }
84
132
  /**
85
133
  * Detect Git platform from hostname
86
134
  *
@@ -1 +1 @@
1
- {"version":3,"file":"url-generator.js","sourceRoot":"","sources":["../../../../src/core/repo-structure/url-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,oBAAoB,CAClC,KAAa,EACb,IAAY,EACZ,OAAgB,EAChB,WAAwB,EAAE,IAAI,EAAE,YAAY,EAAE;IAE9C,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,IAAI,KAAK,CAAC;IAE1C,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;QACtB,OAAO,GAAG,OAAO,IAAI,QAAQ,CAAC,IAAI,IAAI,KAAK,IAAI,IAAI,MAAM,CAAC;IAC5D,CAAC;SAAM,CAAC;QACN,OAAO,WAAW,QAAQ,CAAC,IAAI,IAAI,KAAK,IAAI,IAAI,MAAM,CAAC;IACzD,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAM3C,4CAA4C;IAC5C,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;IACpF,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;YACjB,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;YAClB,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;YACjB,OAAO,EAAE,KAAK;SACf,CAAC;IACJ,CAAC;IAED,kDAAkD;IAClD,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;IACvF,IAAI,UAAU,EAAE,CAAC;QACf,OAAO;YACL,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;YACnB,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;YACpB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;YACnB,OAAO,EAAE,OAAO;SACjB,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC7C,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC7C,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,WAAW,CAAC;IACnD,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAAE,OAAO,cAAc,CAAC;IAC/F,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"url-generator.js","sourceRoot":"","sources":["../../../../src/core/repo-structure/url-generator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "specweave",
3
- "version": "1.0.427",
3
+ "version": "1.0.428",
4
4
  "description": "Spec-driven development framework for AI coding agents. Works with Claude Code, Codex, Antigravity, Cursor, Copilot & more. 100+ skills, 49 CLI commands, verified skill certification, autonomous execution, and living documentation.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,5 +1,5 @@
1
1
  ---
2
- description: Clone GitHub repositories to local workspace. Use after init if cloning was skipped, to resume interrupted cloning, or to add repos later. Already-cloned repos are automatically skipped.
2
+ description: Clone GitHub repositories to local workspace. Supports single repo (--repo owner/repo) or org-level bulk cloning (--org). Use after init to add repos. Already-cloned repos are automatically skipped.
3
3
  ---
4
4
 
5
5
  # Clone GitHub Repositories Command
@@ -9,6 +9,7 @@ You are a GitHub repository cloning expert. Help users clone repositories from G
9
9
  ## Purpose
10
10
 
11
11
  This command clones GitHub repositories **after** initial SpecWeave setup (`specweave init`). Use when:
12
+ - **Adding a single repo** with `--repo owner/repo` (any URL format supported)
12
13
  - User skipped cloning during init
13
14
  - **Resuming interrupted cloning** (already-cloned repos are skipped!)
14
15
  - Adding repositories from organization
@@ -26,6 +27,21 @@ This command clones GitHub repositories **after** initial SpecWeave setup (`spec
26
27
  ## Command Syntax
27
28
 
28
29
  ```bash
30
+ # Clone a single repo (owner/repo shorthand)
31
+ /sw-github:clone --repo "owner/repo"
32
+
33
+ # Clone a single repo (full URL)
34
+ /sw-github:clone --repo "https://github.com/owner/repo"
35
+
36
+ # Clone a single repo (SSH URL)
37
+ /sw-github:clone --repo "git@github.com:owner/repo.git"
38
+
39
+ # Clone a single repo (bare host)
40
+ /sw-github:clone --repo "github.com/owner/repo"
41
+
42
+ # Single repo dry-run (validate only)
43
+ /sw-github:clone --repo "owner/repo" --dry-run
44
+
29
45
  # Interactive mode (prompts for everything)
30
46
  /sw-github:clone
31
47
 
@@ -45,10 +61,63 @@ This command clones GitHub repositories **after** initial SpecWeave setup (`spec
45
61
  /sw-github:clone
46
62
  ```
47
63
 
64
+ **Flag precedence**: When `--repo` is provided, `--org` and `--pattern` are ignored.
65
+
48
66
  ## Your Task
49
67
 
50
68
  When the user runs this command:
51
69
 
70
+ ### Step 0: Single Repo Mode (--repo)
71
+
72
+ If the user provided `--repo`, bypass org-level cloning entirely:
73
+
74
+ ```typescript
75
+ import { cloneSingleGitHubRepo } from '../../../src/cli/helpers/init/github-repo-cloning.js';
76
+ import { readEnvFile, parseEnvFile } from '../../../src/utils/env-file.js';
77
+
78
+ if (args.repo) {
79
+ // Resolve token
80
+ let pat = process.env.GH_TOKEN || process.env.GITHUB_TOKEN;
81
+ if (!pat) {
82
+ const envContent = readEnvFile(projectPath);
83
+ if (envContent) {
84
+ const parsed = parseEnvFile(envContent);
85
+ pat = parsed.GH_TOKEN || parsed.GITHUB_TOKEN;
86
+ }
87
+ }
88
+
89
+ const result = await cloneSingleGitHubRepo({
90
+ repoIdentifier: args.repo,
91
+ projectPath,
92
+ pat,
93
+ dryRun: args.dryRun,
94
+ });
95
+
96
+ if (result.error) {
97
+ console.log(chalk.red(`❌ ${result.error}`));
98
+ } else if (result.alreadyCloned) {
99
+ console.log(chalk.green(`✅ ${result.owner}/${result.repo} already cloned.`));
100
+ } else if (result.cloned) {
101
+ console.log(chalk.green(`\n✅ Cloning ${result.owner}/${result.repo} started!`));
102
+ console.log(chalk.cyan(` /sw:jobs → Check progress`));
103
+ } else if (args.dryRun) {
104
+ console.log(chalk.cyan(`🔎 DRY RUN: Would clone ${result.owner}/${result.repo}`));
105
+ }
106
+
107
+ return; // Skip all remaining steps
108
+ }
109
+ ```
110
+
111
+ **Supported input formats for `--repo`:**
112
+ - `owner/repo` — shorthand (assumes github.com, uses HTTPS with PAT)
113
+ - `github.com/owner/repo` — bare host (uses HTTPS with PAT)
114
+ - `https://github.com/owner/repo` — full HTTPS URL (uses HTTPS with PAT)
115
+ - `git@github.com:owner/repo.git` — SSH URL (uses SSH key, no PAT needed)
116
+
117
+ **Token requirement:** HTTPS/shorthand formats require `GH_TOKEN` or `GITHUB_TOKEN`. SSH format uses SSH key authentication and does not require a token.
118
+
119
+ ---
120
+
52
121
  ### Step 1: Check Prerequisites
53
122
 
54
123
  ```typescript
@@ -462,6 +531,41 @@ Clone 425 repositories to current directory? (Y/n)
462
531
  Remove --dry-run to actually clone.
463
532
  ```
464
533
 
534
+ ### Example 5: Clone Single Repo
535
+ **User**: `/sw-github:clone --repo "anton-abyzov/vskill"`
536
+
537
+ **Output**:
538
+ ```
539
+ 📦 GitHub Repository Cloning
540
+
541
+ ✓ GitHub token found
542
+ Validating repository...
543
+ ✓ Repository anton-abyzov/vskill exists
544
+
545
+ 🔄 Cloning anton-abyzov/vskill...
546
+
547
+ ✓ Clone job started (Job ID: abc12345)
548
+ Target: repositories/anton-abyzov/vskill
549
+ Check progress: /sw:jobs
550
+
551
+ ✅ Cloning anton-abyzov/vskill started!
552
+ ```
553
+
554
+ ### Example 6: Single Repo (Already Cloned)
555
+ **User**: `/sw-github:clone --repo "anton-abyzov/vskill"`
556
+
557
+ **Output**:
558
+ ```
559
+ ✅ anton-abyzov/vskill already cloned.
560
+ ```
561
+
562
+ ## Post-Init Tip
563
+
564
+ After `specweave init` completes, you can add individual repos at any time:
565
+ ```bash
566
+ /sw-github:clone --repo "owner/repo"
567
+ ```
568
+
465
569
  ## Important Notes
466
570
 
467
571
  ### Resume = Just Re-run!