@teambit/ci 0.0.10 → 0.0.12

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.
@@ -33,11 +33,11 @@ export class CiPrCmd implements Command {
33
33
  this.logger.console('🚀 Initializing PR command');
34
34
  if (!this.workspace) throw new OutsideWorkspaceError();
35
35
 
36
- let branch: string;
36
+ let laneIdStr: string;
37
37
  let message: string;
38
38
 
39
39
  if (options.lane) {
40
- branch = options.lane;
40
+ laneIdStr = options.lane;
41
41
  } else {
42
42
  const currentBranch = await this.ci.getBranchName().catch((e) => {
43
43
  throw new Error(`Failed to get branch name from Git: ${e.toString()}`);
@@ -47,7 +47,7 @@ export class CiPrCmd implements Command {
47
47
  }
48
48
  // Sanitize branch name to make it valid for Bit lane IDs by replacing slashes with dashes
49
49
  const sanitizedBranch = currentBranch.replace(/\//g, '-');
50
- branch = `${this.workspace.defaultScope}/${sanitizedBranch}`;
50
+ laneIdStr = `${this.workspace.defaultScope}/${sanitizedBranch}`;
51
51
  }
52
52
 
53
53
  if (options.message) {
@@ -60,11 +60,17 @@ export class CiPrCmd implements Command {
60
60
  message = commitMessage;
61
61
  }
62
62
 
63
- return this.ci.snapPrCommit({
64
- branch,
63
+ const results = await this.ci.snapPrCommit({
64
+ laneIdStr: laneIdStr,
65
65
  message,
66
66
  build: options.build,
67
67
  strict: options.strict,
68
68
  });
69
+
70
+ if (results) {
71
+ return results;
72
+ }
73
+
74
+ return `PR command executed successfully`;
69
75
  }
70
76
  }
@@ -44,15 +44,15 @@ export declare class CiMain {
44
44
  code: number;
45
45
  data: string;
46
46
  }>;
47
- snapPrCommit({ branch, message, build, strict, }: {
48
- branch: string;
47
+ snapPrCommit({ laneIdStr, message, build, strict, }: {
48
+ laneIdStr: string;
49
49
  message: string;
50
50
  build: boolean | undefined;
51
51
  strict: boolean | undefined;
52
- }): Promise<string | {
52
+ }): Promise<"No changes detected, nothing to snap" | {
53
53
  code: number;
54
54
  data: string;
55
- }>;
55
+ } | undefined>;
56
56
  mergePr({ message: argMessage, build, strict }: {
57
57
  message?: string;
58
58
  build?: boolean;
@@ -74,13 +74,6 @@ function _checkout() {
74
74
  };
75
75
  return data;
76
76
  }
77
- function _legacy() {
78
- const data = require("@teambit/legacy.constants");
79
- _legacy = function () {
80
- return data;
81
- };
82
- return data;
83
- }
84
77
  function _chalk() {
85
78
  const data = _interopRequireDefault(require("chalk"));
86
79
  _chalk = function () {
@@ -249,7 +242,8 @@ class CiMain {
249
242
  await this.lanes.switchLanes(laneName, _objectSpread({
250
243
  forceOurs: true,
251
244
  head: true,
252
- workspaceOnly: true
245
+ workspaceOnly: true,
246
+ skipDependencyInstallation: true
253
247
  }, options)).catch(e => {
254
248
  if (e.toString().includes('already checked out')) {
255
249
  this.logger.console(_chalk().default.yellow(`Lane ${laneName} already checked out, skipping checkout`));
@@ -280,21 +274,14 @@ class CiMain {
280
274
  };
281
275
  }
282
276
  async snapPrCommit({
283
- branch,
277
+ laneIdStr,
284
278
  message,
285
279
  build,
286
280
  strict
287
281
  }) {
288
- this.logger.console(_chalk().default.blue(`Branch name: ${branch}`));
282
+ this.logger.console(_chalk().default.blue(`Lane name: ${laneIdStr}`));
289
283
  const originalLane = await this.lanes.getCurrentLane();
290
- const laneId = await this.lanes.parseLaneId(branch);
291
- if (!laneId) {
292
- this.logger.console(_chalk().default.yellow(`No lane found for branch ${branch}`));
293
- return {
294
- code: 1,
295
- data: ''
296
- };
297
- }
284
+ const laneId = await this.lanes.parseLaneId(laneIdStr);
298
285
  const {
299
286
  code,
300
287
  data
@@ -310,15 +297,16 @@ class CiMain {
310
297
  }).catch(e => {
311
298
  throw new Error(`Failed to import components: ${e.toString()}`);
312
299
  });
300
+ this.logger.console('🔄 Lane Management');
301
+ const availableLanesInScope = await this.lanes.getLanes({
302
+ remote: laneId.scope
303
+ }).catch(e => {
304
+ throw new Error(`Failed to get lanes in scope ${laneId.scope}: ${e.toString()}`);
305
+ });
306
+ const laneExists = availableLanesInScope.find(lane => lane.id.name === laneId.name);
307
+ let foundErr;
313
308
  try {
314
- this.logger.console('🔄 Lane Management');
315
- const availableLanesInScope = await this.lanes.getLanes({
316
- remote: laneId.scope
317
- }).catch(e => {
318
- throw new Error(`Failed to get lanes in scope ${laneId.scope}: ${e.toString()}`);
319
- });
320
- const newLaneExists = availableLanesInScope.find(lane => lane.id.name === laneId.name);
321
- if (newLaneExists) {
309
+ if (laneExists) {
322
310
  const lane = await this.lanes.importLaneObject(laneId, true);
323
311
  this.workspace.consumer.setCurrentLane(laneId, true);
324
312
  const laneIds = lane.toComponentIds();
@@ -328,22 +316,17 @@ class CiMain {
328
316
  this.logger.console(_chalk().default.green(`Imported lane ${laneId.toString()}`));
329
317
  } else {
330
318
  this.logger.console(_chalk().default.blue(`Creating lane ${laneId.toString()}`));
331
- const createdLane = await this.lanes.createLane(laneId.name, {
332
- scope: laneId.scope,
333
- forkLaneNewScope: true
334
- }).catch(e => {
335
- if (e.toString().includes('already exists')) {
319
+ try {
320
+ await this.lanes.createLane(laneId.name, {
321
+ scope: laneId.scope,
322
+ forkLaneNewScope: true
323
+ });
324
+ } catch (e) {
325
+ if (e.message.includes('already exists')) {
336
326
  this.logger.console(_chalk().default.yellow(`Lane ${laneId.toString()} already exists, skipping creation`));
337
- return true;
327
+ } else {
328
+ throw new Error(`Failed to create lane ${laneId.toString()}: ${e.toString()}`);
338
329
  }
339
- this.logger.console(_chalk().default.red(`Failed to create lane ${laneId.toString()}: ${e.toString()}`));
340
- return null;
341
- });
342
- if (!createdLane) {
343
- return {
344
- code: 1,
345
- data: ''
346
- };
347
330
  }
348
331
  }
349
332
  const currentLane = await this.lanes.getCurrentLane();
@@ -357,71 +340,35 @@ class CiMain {
357
340
  const results = await this.snapping.snap({
358
341
  message,
359
342
  build,
360
- exitOnFirstFailedTask: true,
361
- unmodified: false
343
+ exitOnFirstFailedTask: true
362
344
  });
363
345
  if (!results) {
364
- this.logger.console(_chalk().default.yellow('No changes detected, nothing to snap'));
365
- this.logger.console(_chalk().default.green('Lane is up to date'));
366
- return {
367
- code: 0,
368
- data: 'No changes detected, nothing to snap'
369
- };
346
+ return 'No changes detected, nothing to snap';
370
347
  }
371
348
  const {
372
- snappedComponents,
373
- autoSnappedResults,
374
- warnings,
375
- newComponents,
376
- laneName,
377
- removedComponents
349
+ snappedComponents
378
350
  } = results;
379
- const changedComponents = snappedComponents.filter(component => {
380
- return !newComponents.searchWithoutVersion(component.id) && !removedComponents?.searchWithoutVersion(component.id);
381
- });
382
- const addedComponents = snappedComponents.filter(component => newComponents.searchWithoutVersion(component.id));
383
- const autoTaggedCount = autoSnappedResults ? autoSnappedResults.length : 0;
384
- const warningsOutput = warnings?.length ? `${_chalk().default.yellow(warnings.join('\n'))}\n\n` : '';
385
- const compInBold = id => {
386
- const version = id.hasVersion() ? `@${id.version}` : '';
387
- return `${_chalk().default.bold(id.toStringWithoutVersion())}${version}`;
388
- };
389
- const outputComponents = comps => {
390
- return comps.map(component => {
391
- let componentOutput = ` > ${compInBold(component.id)}`;
392
- const autoTag = autoSnappedResults.filter(result => result.triggeredBy.searchWithoutVersion(component.id));
393
- if (autoTag.length) {
394
- const autoTagComp = autoTag.map(a =>
395
- // @ts-ignore
396
- compInBold(a.component.id));
397
- componentOutput += `\n ${_legacy().AUTO_SNAPPED_MSG} (${autoTagComp.length} total):
398
- ${autoTagComp.join('\n ')}`;
399
- }
400
- return componentOutput;
401
- }).join('\n');
402
- };
403
- const outputIfExists = (label, explanation, components) => {
404
- if (!components.length) return '';
405
- return `\n${_chalk().default.underline(label)}\n(${explanation})\n${outputComponents(components)}\n`;
406
- };
407
- const laneStr = laneName ? ` on "${laneName}" lane` : '';
351
+ const snapOutput = (0, _snapping().snapResultOutput)(results);
352
+ this.logger.console(snapOutput);
408
353
  this.logger.console(_chalk().default.blue(`Exporting ${snappedComponents.length} components`));
409
- await this.exporter.export();
410
- this.logger.console(_chalk().default.green(`Exported ${snappedComponents.length} components`));
411
-
412
- // Switch back to main
413
- await this.switchToLane('main');
414
- return outputIfExists('new components', 'first version for components', addedComponents) + outputIfExists('changed components', 'components that got a version bump', changedComponents) + (0, _snapping().outputIdsIfExists)('removed components', removedComponents) + warningsOutput + _chalk().default.green(`\n${snappedComponents.length + autoTaggedCount} component(s) snapped${laneStr}`);
354
+ const exportResults = await this.exporter.export();
355
+ this.logger.console(_chalk().default.green(`Exported ${exportResults.componentsIds.length} components`));
415
356
  } catch (e) {
416
- throw new Error(`Unhandled error: ${e.toString()}`);
357
+ foundErr = e;
358
+ throw e;
417
359
  } finally {
360
+ if (foundErr) {
361
+ this.logger.console(_chalk().default.red(`Found error: ${foundErr.message}`));
362
+ }
418
363
  // Whatever happens, switch back to the original lane
419
364
  this.logger.console('🔄 Cleanup');
420
365
  this.logger.console(_chalk().default.blue(`Switching back to ${originalLane?.name ?? 'main'}`));
421
366
  const lane = await this.lanes.getCurrentLane();
422
367
  if (!lane) {
368
+ this.logger.console(_chalk().default.yellow('Already on main, no need to switch. Checking out to head'));
423
369
  await this.lanes.checkout.checkout({
424
- head: true
370
+ head: true,
371
+ skipNpmInstall: true
425
372
  });
426
373
  } else {
427
374
  await this.switchToLane(originalLane?.name ?? 'main');
@@ -442,9 +389,7 @@ class CiMain {
442
389
  // this doesn't normally happen. we expect this mergePr to be called from the default branch, which normally checks
443
390
  // out to main lane.
444
391
  this.logger.console(_chalk().default.blue(`Currently on lane ${currentLane.name}, switching to main`));
445
- await this.switchToLane('main', {
446
- skipDependencyInstallation: true
447
- });
392
+ await this.switchToLane('main');
448
393
  this.logger.console(_chalk().default.green('Switched to main lane'));
449
394
  }
450
395
 
@@ -1 +1 @@
1
- {"version":3,"names":["_cli","data","require","_logger","_workspace","_builder","_status","_lanes","_snapping","_export","_importer","_checkout","_legacy","_chalk","_interopRequireDefault","_ci","_ci2","_verify","_pr","_merge","_git","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","CiMain","constructor","workspace","builder","status","lanes","snapping","exporter","importer","checkout","logger","provider","cli","loggerAspect","createLogger","CiAspect","id","ci","ciCmd","CiCmd","commands","CiVerifyCmd","CiPrCmd","CiMergeCmd","register","getBranchName","process","env","GITHUB_HEAD_REF","branch","git","current","Error","toString","getDefaultBranchName","result","raw","defaultBranch","trim","split","pop","branches","all","includes","console","chalk","yellow","getGitCommitMessage","commit","log","maxCount","latest","message","body","verifyWorkspaceStatusInternal","strict","blue","ignoreCircularDependencies","componentsWithErrors","componentsWithIssues","issues","hasTagBlockerIssues","componentsWithWarnings","red","code","green","switchToLane","laneName","options","switchLanes","forceOurs","head","workspaceOnly","catch","verifyWorkspaceStatus","components","list","build","throwErrorsIfExist","snapPrCommit","originalLane","getCurrentLane","laneId","parseLaneId","import","ids","installNpmPackages","writeConfigFiles","availableLanesInScope","getLanes","remote","scope","newLaneExists","find","lane","name","importLaneObject","consumer","setCurrentLane","laneIds","toComponentIds","compId","bitMap","updateComponentId","write","importCurrentObjects","createdLane","createLane","forkLaneNewScope","currentLane","results","snap","exitOnFirstFailedTask","unmodified","snappedComponents","autoSnappedResults","warnings","newComponents","removedComponents","changedComponents","component","searchWithoutVersion","addedComponents","autoTaggedCount","warningsOutput","join","compInBold","version","hasVersion","bold","toStringWithoutVersion","outputComponents","comps","map","componentOutput","autoTag","triggeredBy","autoTagComp","a","AUTO_SNAPPED_MSG","outputIfExists","label","explanation","underline","laneStr","export","outputIdsIfExists","mergePr","argMessage","skipDependencyInstallation","pull","skipNpmInstall","hasSoftTaggedComponents","softTaggedComponents","tagResults","tag","failFast","persist","tagOutput","tagResultOutput","hasTaggedComponents","taggedComponents","exportResult","componentsIds","addConfig","add","archiveLane","removeLanes","exports","MainRuntime","CLIAspect","WorkspaceAspect","LoggerAspect","BuilderAspect","StatusAspect","LanesAspect","SnappingAspect","ExportAspect","ImporterAspect","CheckoutAspect","addRuntime"],"sources":["ci.main.runtime.ts"],"sourcesContent":["import type { RuntimeDefinition } from '@teambit/harmony';\nimport { CLIAspect, type CLIMain, MainRuntime } from '@teambit/cli';\nimport { LoggerAspect, type LoggerMain, type Logger } from '@teambit/logger';\nimport { WorkspaceAspect, type Workspace } from '@teambit/workspace';\nimport { BuilderAspect, type BuilderMain } from '@teambit/builder';\nimport { StatusAspect, type StatusMain } from '@teambit/status';\nimport { LanesAspect, type LanesMain } from '@teambit/lanes';\nimport { SnappingAspect, SnapResults, tagResultOutput, type SnappingMain } from '@teambit/snapping';\nimport { ExportAspect, type ExportMain } from '@teambit/export';\nimport { ImporterAspect, type ImporterMain } from '@teambit/importer';\nimport { CheckoutAspect, type CheckoutMain } from '@teambit/checkout';\nimport { ComponentID } from '@teambit/component-id';\nimport { ConsumerComponent } from '@teambit/legacy.consumer-component';\nimport { AUTO_SNAPPED_MSG } from '@teambit/legacy.constants';\nimport { outputIdsIfExists } from '@teambit/snapping';\nimport { SwitchLaneOptions } from '@teambit/lanes';\nimport chalk from 'chalk';\nimport { CiAspect } from './ci.aspect';\nimport { CiCmd } from './ci.cmd';\nimport { CiVerifyCmd } from './commands/verify.cmd';\nimport { CiPrCmd } from './commands/pr.cmd';\nimport { CiMergeCmd } from './commands/merge.cmd';\nimport { git } from './git';\n\nexport class CiMain {\n static runtime = MainRuntime as RuntimeDefinition;\n\n static dependencies: any = [\n CLIAspect,\n WorkspaceAspect,\n LoggerAspect,\n BuilderAspect,\n StatusAspect,\n LanesAspect,\n SnappingAspect,\n ExportAspect,\n ImporterAspect,\n CheckoutAspect,\n ];\n\n static slots: any = [];\n\n constructor(\n private workspace: Workspace,\n\n private builder: BuilderMain,\n\n private status: StatusMain,\n\n private lanes: LanesMain,\n\n private snapping: SnappingMain,\n\n private exporter: ExportMain,\n\n private importer: ImporterMain,\n\n private checkout: CheckoutMain,\n\n private logger: Logger\n ) {}\n\n static async provider([\n cli,\n workspace,\n loggerAspect,\n builder,\n status,\n lanes,\n snapping,\n exporter,\n importer,\n checkout,\n ]: [\n CLIMain,\n Workspace,\n LoggerMain,\n BuilderMain,\n StatusMain,\n LanesMain,\n SnappingMain,\n ExportMain,\n ImporterMain,\n CheckoutMain,\n ]) {\n const logger = loggerAspect.createLogger(CiAspect.id);\n\n const ci = new CiMain(workspace, builder, status, lanes, snapping, exporter, importer, checkout, logger);\n\n const ciCmd = new CiCmd(workspace, logger);\n\n ciCmd.commands = [\n new CiVerifyCmd(workspace, logger, ci),\n new CiPrCmd(workspace, logger, ci),\n new CiMergeCmd(workspace, logger, ci),\n ];\n\n cli.register(ciCmd);\n return ci;\n }\n\n async getBranchName() {\n try {\n // if we are running on github, use the GITHUB_HEAD_REF env var\n if (process.env.GITHUB_HEAD_REF) return process.env.GITHUB_HEAD_REF;\n\n const branch = await git.branch();\n return branch.current;\n } catch (e: any) {\n throw new Error(`Unable to read branch: ${e.toString()}`);\n }\n }\n\n async getDefaultBranchName() {\n try {\n // Try to get the default branch from git symbolic-ref\n const result = await git.raw(['symbolic-ref', 'refs/remotes/origin/HEAD']);\n const defaultBranch = result.trim().split('/').pop();\n return defaultBranch || 'master';\n } catch (e: any) {\n // Fallback to common default branch names\n try {\n const branches = await git.branch(['-r']);\n if (branches.all.includes('origin/main')) return 'main';\n if (branches.all.includes('origin/master')) return 'master';\n return 'master'; // Final fallback\n } catch {\n this.logger.console(chalk.yellow(`Unable to detect default branch, using 'master': ${e.toString()}`));\n return 'master';\n }\n }\n }\n\n async getGitCommitMessage() {\n try {\n const commit = await git.log({\n maxCount: 1,\n });\n if (!commit.latest) {\n return null;\n }\n const { message, body } = commit.latest;\n return body ? `${message}\\n\\n${body}` : message;\n } catch (e: any) {\n throw new Error(`Unable to read commit message: ${e.toString()}`);\n }\n }\n\n private async verifyWorkspaceStatusInternal(strict: boolean = false) {\n this.logger.console('📊 Workspace Status');\n this.logger.console(chalk.blue('Verifying status of workspace'));\n const status = await this.status.status({\n lanes: true,\n ignoreCircularDependencies: false,\n });\n\n // Check for blocking issues (errors) vs warnings\n const componentsWithErrors = status.componentsWithIssues.filter(({ issues }) => issues.hasTagBlockerIssues());\n\n const componentsWithWarnings = status.componentsWithIssues.filter(({ issues }) => !issues.hasTagBlockerIssues());\n\n if (componentsWithWarnings.length > 0) {\n if (strict) {\n this.logger.console(\n chalk.red(\n `Found ${componentsWithWarnings.length} components with warnings (strict mode), run 'bit status' to see the warnings.`\n )\n );\n return { code: 1, data: '', status };\n } else {\n this.logger.console(\n chalk.yellow(\n `Found ${componentsWithWarnings.length} components with warnings, run 'bit status' to see the warnings.`\n )\n );\n }\n }\n\n if (componentsWithErrors.length > 0) {\n this.logger.console(\n chalk.red(`Found ${componentsWithErrors.length} components with errors, run 'bit status' to see the errors.`)\n );\n return { code: 1, data: '', status };\n }\n\n this.logger.console(chalk.green('Workspace status is correct'));\n return { code: 0, data: '', status };\n }\n\n private async switchToLane(laneName: string, options: SwitchLaneOptions = {}) {\n this.logger.console(chalk.blue(`Switching to ${laneName}`));\n await this.lanes\n .switchLanes(laneName, {\n forceOurs: true,\n head: true,\n workspaceOnly: true,\n ...options,\n })\n .catch((e) => {\n if (e.toString().includes('already checked out')) {\n this.logger.console(chalk.yellow(`Lane ${laneName} already checked out, skipping checkout`));\n return true;\n }\n this.logger.console(chalk.red(`Failed to checkout lane ${laneName}: ${e.toString()}`));\n return null;\n });\n }\n\n async verifyWorkspaceStatus() {\n const { code, data } = await this.verifyWorkspaceStatusInternal();\n if (code !== 0) return { code, data };\n\n this.logger.console('🔨 Build Process');\n const components = await this.workspace.list();\n\n this.logger.console(chalk.blue(`Building ${components.length} components`));\n\n const build = await this.builder.build(components);\n\n build.throwErrorsIfExist();\n\n this.logger.console(chalk.green('Components built'));\n\n return { code: 0, data: '' };\n }\n\n async snapPrCommit({\n branch,\n message,\n build,\n strict,\n }: {\n branch: string;\n message: string;\n build: boolean | undefined;\n strict: boolean | undefined;\n }) {\n this.logger.console(chalk.blue(`Branch name: ${branch}`));\n\n const originalLane = await this.lanes.getCurrentLane();\n\n const laneId = await this.lanes.parseLaneId(branch);\n\n if (!laneId) {\n this.logger.console(chalk.yellow(`No lane found for branch ${branch}`));\n return { code: 1, data: '' };\n }\n\n const { code, data } = await this.verifyWorkspaceStatusInternal(strict);\n if (code !== 0) return { code, data };\n\n await this.importer\n .import({\n ids: [],\n installNpmPackages: false,\n writeConfigFiles: false,\n })\n .catch((e) => {\n throw new Error(`Failed to import components: ${e.toString()}`);\n });\n\n try {\n this.logger.console('🔄 Lane Management');\n const availableLanesInScope = await this.lanes\n .getLanes({\n remote: laneId.scope,\n })\n .catch((e) => {\n throw new Error(`Failed to get lanes in scope ${laneId.scope}: ${e.toString()}`);\n });\n\n const newLaneExists = availableLanesInScope.find((lane) => lane.id.name === laneId.name);\n\n if (newLaneExists) {\n const lane = await this.lanes.importLaneObject(laneId, true);\n this.workspace.consumer.setCurrentLane(laneId, true);\n const laneIds = lane.toComponentIds();\n laneIds.forEach((compId) => this.workspace.consumer.bitMap.updateComponentId(compId));\n await this.workspace.bitMap.write();\n await this.importer.importCurrentObjects();\n\n this.logger.console(chalk.green(`Imported lane ${laneId.toString()}`));\n } else {\n this.logger.console(chalk.blue(`Creating lane ${laneId.toString()}`));\n\n const createdLane = await this.lanes\n .createLane(laneId.name, {\n scope: laneId.scope,\n forkLaneNewScope: true,\n })\n .catch((e) => {\n if (e.toString().includes('already exists')) {\n this.logger.console(chalk.yellow(`Lane ${laneId.toString()} already exists, skipping creation`));\n return true;\n }\n this.logger.console(chalk.red(`Failed to create lane ${laneId.toString()}: ${e.toString()}`));\n return null;\n });\n\n if (!createdLane) {\n return { code: 1, data: '' };\n }\n }\n\n const currentLane = await this.lanes.getCurrentLane();\n\n this.logger.console(chalk.blue(`Current lane: ${currentLane?.name ?? 'main'}`));\n\n if (currentLane?.name === laneId.name) {\n this.logger.console(chalk.yellow(`Current lane is already ${laneId.name}, skipping switch`));\n } else {\n await this.switchToLane(laneId.toString());\n }\n\n this.logger.console('📦 Snapping Components');\n const results = await this.snapping.snap({\n message,\n build,\n exitOnFirstFailedTask: true,\n unmodified: false,\n });\n\n if (!results) {\n this.logger.console(chalk.yellow('No changes detected, nothing to snap'));\n this.logger.console(chalk.green('Lane is up to date'));\n return { code: 0, data: 'No changes detected, nothing to snap' };\n }\n\n const {\n snappedComponents,\n autoSnappedResults,\n warnings,\n newComponents,\n laneName,\n removedComponents,\n }: SnapResults = results;\n const changedComponents = snappedComponents.filter((component) => {\n return (\n !newComponents.searchWithoutVersion(component.id) && !removedComponents?.searchWithoutVersion(component.id)\n );\n });\n const addedComponents = snappedComponents.filter((component) => newComponents.searchWithoutVersion(component.id));\n const autoTaggedCount = autoSnappedResults ? autoSnappedResults.length : 0;\n\n const warningsOutput = warnings?.length ? `${chalk.yellow(warnings.join('\\n'))}\\n\\n` : '';\n\n const compInBold = (id: ComponentID) => {\n const version = id.hasVersion() ? `@${id.version}` : '';\n return `${chalk.bold(id.toStringWithoutVersion())}${version}`;\n };\n\n const outputComponents = (comps: ConsumerComponent[]) => {\n return comps\n .map((component) => {\n let componentOutput = ` > ${compInBold(component.id)}`;\n const autoTag = autoSnappedResults.filter((result) =>\n result.triggeredBy.searchWithoutVersion(component.id)\n );\n if (autoTag.length) {\n const autoTagComp = autoTag.map((a) =>\n // @ts-ignore\n compInBold(a.component.id)\n );\n componentOutput += `\\n ${AUTO_SNAPPED_MSG} (${autoTagComp.length} total):\n ${autoTagComp.join('\\n ')}`;\n }\n return componentOutput;\n })\n .join('\\n');\n };\n\n const outputIfExists = (label, explanation, components) => {\n if (!components.length) return '';\n return `\\n${chalk.underline(label)}\\n(${explanation})\\n${outputComponents(components)}\\n`;\n };\n\n const laneStr = laneName ? ` on \"${laneName}\" lane` : '';\n\n this.logger.console(chalk.blue(`Exporting ${snappedComponents.length} components`));\n\n await this.exporter.export();\n\n this.logger.console(chalk.green(`Exported ${snappedComponents.length} components`));\n\n // Switch back to main\n await this.switchToLane('main');\n\n return (\n outputIfExists('new components', 'first version for components', addedComponents) +\n outputIfExists('changed components', 'components that got a version bump', changedComponents) +\n outputIdsIfExists('removed components', removedComponents) +\n warningsOutput +\n chalk.green(`\\n${snappedComponents.length + autoTaggedCount} component(s) snapped${laneStr}`)\n );\n } catch (e: any) {\n throw new Error(`Unhandled error: ${e.toString()}`);\n } finally {\n // Whatever happens, switch back to the original lane\n this.logger.console('🔄 Cleanup');\n this.logger.console(chalk.blue(`Switching back to ${originalLane?.name ?? 'main'}`));\n const lane = await this.lanes.getCurrentLane();\n if (!lane) {\n await this.lanes.checkout.checkout({\n head: true,\n });\n } else {\n await this.switchToLane(originalLane?.name ?? 'main');\n }\n }\n }\n\n async mergePr({ message: argMessage, build, strict }: { message?: string; build?: boolean; strict?: boolean }) {\n const message = argMessage || (await this.getGitCommitMessage());\n if (!message) {\n throw new Error('Failed to get commit message from git. Please provide a message using --message option.');\n }\n\n const currentLane = await this.lanes.getCurrentLane();\n\n if (currentLane) {\n // this doesn't normally happen. we expect this mergePr to be called from the default branch, which normally checks\n // out to main lane.\n this.logger.console(chalk.blue(`Currently on lane ${currentLane.name}, switching to main`));\n await this.switchToLane('main', { skipDependencyInstallation: true });\n this.logger.console(chalk.green('Switched to main lane'));\n }\n\n // Pull latest changes from remote to ensure we have the most up-to-date .bitmap\n // This prevents issues when multiple PRs are merged in sequence\n const defaultBranch = await this.getDefaultBranchName();\n this.logger.console(chalk.blue(`Pulling latest git changes from ${defaultBranch} branch`));\n await git.pull('origin', defaultBranch);\n this.logger.console(chalk.green('Pulled latest git changes'));\n\n this.logger.console('🔄 Checking out to main head');\n await this.checkout.checkout({\n forceOurs: true,\n head: true,\n skipNpmInstall: true,\n });\n\n const { code, data, status } = await this.verifyWorkspaceStatusInternal(strict);\n if (code !== 0) return { code, data };\n\n const hasSoftTaggedComponents = status.softTaggedComponents.length > 0;\n\n this.logger.console('📦 Component Operations');\n this.logger.console(chalk.blue('Tagging components'));\n const tagResults = await this.snapping.tag({\n all: true,\n message,\n build,\n failFast: true,\n persist: hasSoftTaggedComponents,\n });\n\n if (tagResults) {\n const tagOutput = tagResultOutput(tagResults);\n this.logger.console(tagOutput);\n } else {\n this.logger.console(chalk.yellow('No components to tag'));\n }\n\n const hasTaggedComponents = tagResults?.taggedComponents && tagResults.taggedComponents.length > 0;\n\n if (hasTaggedComponents) {\n this.logger.console(chalk.blue('Exporting components'));\n const exportResult = await this.exporter.export();\n\n if (exportResult.componentsIds.length > 0) {\n this.logger.console(chalk.green(`Exported ${exportResult.componentsIds.length} component(s)`));\n } else {\n this.logger.console(chalk.yellow('Nothing to export'));\n }\n\n this.logger.console('🔄 Git Operations');\n // Set user.email and user.name\n await git.addConfig('user.email', 'bit-ci[bot]@bit.cloud');\n await git.addConfig('user.name', 'Bit CI');\n\n // Commit the .bitmap and pnpm-lock.yaml files using Git\n await git.add(['.bitmap', 'pnpm-lock.yaml']);\n await git.commit('chore: update .bitmap and lockfiles as needed [skip ci]');\n\n // Pull latest changes and push the commit to the remote repository\n await git.pull('origin', defaultBranch);\n await git.push('origin', defaultBranch);\n } else {\n this.logger.console(chalk.yellow('No components were tagged, skipping export and git operations'));\n }\n\n this.logger.console(chalk.green('Merged PR'));\n\n if (currentLane) {\n this.logger.console('🗑️ Lane Cleanup');\n const laneId = currentLane.id;\n this.logger.console(chalk.blue(`Archiving lane ${laneId.toString()}`));\n const archiveLane = await this.lanes.removeLanes([laneId()]);\n if (archiveLane) {\n this.logger.console(chalk.green('Lane archived'));\n } else {\n this.logger.console(chalk.yellow('Failed to archive lane'));\n }\n }\n\n return { code: 0, data: '' };\n }\n}\n\n// @ts-ignore\nCiAspect.addRuntime(CiMain);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_cli","data","require","_logger","_workspace","_builder","_status","_lanes","_snapping","_export","_importer","_checkout","_chalk","_interopRequireDefault","_ci","_ci2","_verify","_pr","_merge","_git","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","CiMain","constructor","workspace","builder","status","lanes","snapping","exporter","importer","checkout","logger","provider","cli","loggerAspect","createLogger","CiAspect","id","ci","ciCmd","CiCmd","commands","CiVerifyCmd","CiPrCmd","CiMergeCmd","register","getBranchName","process","env","GITHUB_HEAD_REF","branch","git","current","Error","toString","getDefaultBranchName","result","raw","defaultBranch","trim","split","pop","branches","all","includes","console","chalk","yellow","getGitCommitMessage","commit","log","maxCount","latest","message","body","verifyWorkspaceStatusInternal","strict","blue","ignoreCircularDependencies","componentsWithErrors","componentsWithIssues","issues","hasTagBlockerIssues","componentsWithWarnings","red","code","green","switchToLane","laneName","options","switchLanes","forceOurs","head","workspaceOnly","skipDependencyInstallation","catch","verifyWorkspaceStatus","components","list","build","throwErrorsIfExist","snapPrCommit","laneIdStr","originalLane","getCurrentLane","laneId","parseLaneId","import","ids","installNpmPackages","writeConfigFiles","availableLanesInScope","getLanes","remote","scope","laneExists","find","lane","name","foundErr","importLaneObject","consumer","setCurrentLane","laneIds","toComponentIds","compId","bitMap","updateComponentId","write","importCurrentObjects","createLane","forkLaneNewScope","currentLane","results","snap","exitOnFirstFailedTask","snappedComponents","snapOutput","snapResultOutput","exportResults","export","componentsIds","skipNpmInstall","mergePr","argMessage","pull","hasSoftTaggedComponents","softTaggedComponents","tagResults","tag","failFast","persist","tagOutput","tagResultOutput","hasTaggedComponents","taggedComponents","exportResult","addConfig","add","archiveLane","removeLanes","exports","MainRuntime","CLIAspect","WorkspaceAspect","LoggerAspect","BuilderAspect","StatusAspect","LanesAspect","SnappingAspect","ExportAspect","ImporterAspect","CheckoutAspect","addRuntime"],"sources":["ci.main.runtime.ts"],"sourcesContent":["import type { RuntimeDefinition } from '@teambit/harmony';\nimport { CLIAspect, type CLIMain, MainRuntime } from '@teambit/cli';\nimport { LoggerAspect, type LoggerMain, type Logger } from '@teambit/logger';\nimport { WorkspaceAspect, type Workspace } from '@teambit/workspace';\nimport { BuilderAspect, type BuilderMain } from '@teambit/builder';\nimport { StatusAspect, type StatusMain } from '@teambit/status';\nimport { LanesAspect, type LanesMain } from '@teambit/lanes';\nimport { SnappingAspect, SnapResults, tagResultOutput, snapResultOutput, type SnappingMain } from '@teambit/snapping';\nimport { ExportAspect, type ExportMain } from '@teambit/export';\nimport { ImporterAspect, type ImporterMain } from '@teambit/importer';\nimport { CheckoutAspect, type CheckoutMain } from '@teambit/checkout';\nimport { SwitchLaneOptions } from '@teambit/lanes';\nimport chalk from 'chalk';\nimport { CiAspect } from './ci.aspect';\nimport { CiCmd } from './ci.cmd';\nimport { CiVerifyCmd } from './commands/verify.cmd';\nimport { CiPrCmd } from './commands/pr.cmd';\nimport { CiMergeCmd } from './commands/merge.cmd';\nimport { git } from './git';\n\nexport class CiMain {\n static runtime = MainRuntime as RuntimeDefinition;\n\n static dependencies: any = [\n CLIAspect,\n WorkspaceAspect,\n LoggerAspect,\n BuilderAspect,\n StatusAspect,\n LanesAspect,\n SnappingAspect,\n ExportAspect,\n ImporterAspect,\n CheckoutAspect,\n ];\n\n static slots: any = [];\n\n constructor(\n private workspace: Workspace,\n\n private builder: BuilderMain,\n\n private status: StatusMain,\n\n private lanes: LanesMain,\n\n private snapping: SnappingMain,\n\n private exporter: ExportMain,\n\n private importer: ImporterMain,\n\n private checkout: CheckoutMain,\n\n private logger: Logger\n ) {}\n\n static async provider([\n cli,\n workspace,\n loggerAspect,\n builder,\n status,\n lanes,\n snapping,\n exporter,\n importer,\n checkout,\n ]: [\n CLIMain,\n Workspace,\n LoggerMain,\n BuilderMain,\n StatusMain,\n LanesMain,\n SnappingMain,\n ExportMain,\n ImporterMain,\n CheckoutMain,\n ]) {\n const logger = loggerAspect.createLogger(CiAspect.id);\n const ci = new CiMain(workspace, builder, status, lanes, snapping, exporter, importer, checkout, logger);\n const ciCmd = new CiCmd(workspace, logger);\n ciCmd.commands = [\n new CiVerifyCmd(workspace, logger, ci),\n new CiPrCmd(workspace, logger, ci),\n new CiMergeCmd(workspace, logger, ci),\n ];\n cli.register(ciCmd);\n\n return ci;\n }\n\n async getBranchName() {\n try {\n // if we are running on github, use the GITHUB_HEAD_REF env var\n if (process.env.GITHUB_HEAD_REF) return process.env.GITHUB_HEAD_REF;\n\n const branch = await git.branch();\n return branch.current;\n } catch (e: any) {\n throw new Error(`Unable to read branch: ${e.toString()}`);\n }\n }\n\n async getDefaultBranchName() {\n try {\n // Try to get the default branch from git symbolic-ref\n const result = await git.raw(['symbolic-ref', 'refs/remotes/origin/HEAD']);\n const defaultBranch = result.trim().split('/').pop();\n return defaultBranch || 'master';\n } catch (e: any) {\n // Fallback to common default branch names\n try {\n const branches = await git.branch(['-r']);\n if (branches.all.includes('origin/main')) return 'main';\n if (branches.all.includes('origin/master')) return 'master';\n return 'master'; // Final fallback\n } catch {\n this.logger.console(chalk.yellow(`Unable to detect default branch, using 'master': ${e.toString()}`));\n return 'master';\n }\n }\n }\n\n async getGitCommitMessage() {\n try {\n const commit = await git.log({\n maxCount: 1,\n });\n if (!commit.latest) {\n return null;\n }\n const { message, body } = commit.latest;\n return body ? `${message}\\n\\n${body}` : message;\n } catch (e: any) {\n throw new Error(`Unable to read commit message: ${e.toString()}`);\n }\n }\n\n private async verifyWorkspaceStatusInternal(strict: boolean = false) {\n this.logger.console('📊 Workspace Status');\n this.logger.console(chalk.blue('Verifying status of workspace'));\n const status = await this.status.status({\n lanes: true,\n ignoreCircularDependencies: false,\n });\n\n // Check for blocking issues (errors) vs warnings\n const componentsWithErrors = status.componentsWithIssues.filter(({ issues }) => issues.hasTagBlockerIssues());\n\n const componentsWithWarnings = status.componentsWithIssues.filter(({ issues }) => !issues.hasTagBlockerIssues());\n\n if (componentsWithWarnings.length > 0) {\n if (strict) {\n this.logger.console(\n chalk.red(\n `Found ${componentsWithWarnings.length} components with warnings (strict mode), run 'bit status' to see the warnings.`\n )\n );\n return { code: 1, data: '', status };\n } else {\n this.logger.console(\n chalk.yellow(\n `Found ${componentsWithWarnings.length} components with warnings, run 'bit status' to see the warnings.`\n )\n );\n }\n }\n\n if (componentsWithErrors.length > 0) {\n this.logger.console(\n chalk.red(`Found ${componentsWithErrors.length} components with errors, run 'bit status' to see the errors.`)\n );\n return { code: 1, data: '', status };\n }\n\n this.logger.console(chalk.green('Workspace status is correct'));\n return { code: 0, data: '', status };\n }\n\n private async switchToLane(laneName: string, options: SwitchLaneOptions = {}) {\n this.logger.console(chalk.blue(`Switching to ${laneName}`));\n await this.lanes\n .switchLanes(laneName, {\n forceOurs: true,\n head: true,\n workspaceOnly: true,\n skipDependencyInstallation: true,\n ...options,\n })\n .catch((e) => {\n if (e.toString().includes('already checked out')) {\n this.logger.console(chalk.yellow(`Lane ${laneName} already checked out, skipping checkout`));\n return true;\n }\n this.logger.console(chalk.red(`Failed to checkout lane ${laneName}: ${e.toString()}`));\n return null;\n });\n }\n\n async verifyWorkspaceStatus() {\n const { code, data } = await this.verifyWorkspaceStatusInternal();\n if (code !== 0) return { code, data };\n\n this.logger.console('🔨 Build Process');\n const components = await this.workspace.list();\n\n this.logger.console(chalk.blue(`Building ${components.length} components`));\n\n const build = await this.builder.build(components);\n\n build.throwErrorsIfExist();\n\n this.logger.console(chalk.green('Components built'));\n\n return { code: 0, data: '' };\n }\n\n async snapPrCommit({\n laneIdStr,\n message,\n build,\n strict,\n }: {\n laneIdStr: string;\n message: string;\n build: boolean | undefined;\n strict: boolean | undefined;\n }) {\n this.logger.console(chalk.blue(`Lane name: ${laneIdStr}`));\n\n const originalLane = await this.lanes.getCurrentLane();\n\n const laneId = await this.lanes.parseLaneId(laneIdStr);\n\n const { code, data } = await this.verifyWorkspaceStatusInternal(strict);\n if (code !== 0) return { code, data };\n\n await this.importer\n .import({\n ids: [],\n installNpmPackages: false,\n writeConfigFiles: false,\n })\n .catch((e) => {\n throw new Error(`Failed to import components: ${e.toString()}`);\n });\n\n this.logger.console('🔄 Lane Management');\n const availableLanesInScope = await this.lanes\n .getLanes({\n remote: laneId.scope,\n })\n .catch((e) => {\n throw new Error(`Failed to get lanes in scope ${laneId.scope}: ${e.toString()}`);\n });\n\n const laneExists = availableLanesInScope.find((lane) => lane.id.name === laneId.name);\n\n let foundErr: Error | undefined;\n try {\n if (laneExists) {\n const lane = await this.lanes.importLaneObject(laneId, true);\n this.workspace.consumer.setCurrentLane(laneId, true);\n const laneIds = lane.toComponentIds();\n laneIds.forEach((compId) => this.workspace.consumer.bitMap.updateComponentId(compId));\n await this.workspace.bitMap.write();\n await this.importer.importCurrentObjects();\n\n this.logger.console(chalk.green(`Imported lane ${laneId.toString()}`));\n } else {\n this.logger.console(chalk.blue(`Creating lane ${laneId.toString()}`));\n\n try {\n await this.lanes.createLane(laneId.name, {\n scope: laneId.scope,\n forkLaneNewScope: true,\n });\n } catch (e: any) {\n if (e.message.includes('already exists')) {\n this.logger.console(chalk.yellow(`Lane ${laneId.toString()} already exists, skipping creation`));\n } else {\n throw new Error(`Failed to create lane ${laneId.toString()}: ${e.toString()}`);\n }\n }\n }\n\n const currentLane = await this.lanes.getCurrentLane();\n\n this.logger.console(chalk.blue(`Current lane: ${currentLane?.name ?? 'main'}`));\n\n if (currentLane?.name === laneId.name) {\n this.logger.console(chalk.yellow(`Current lane is already ${laneId.name}, skipping switch`));\n } else {\n await this.switchToLane(laneId.toString());\n }\n\n this.logger.console('📦 Snapping Components');\n const results = await this.snapping.snap({\n message,\n build,\n exitOnFirstFailedTask: true,\n });\n\n if (!results) {\n return 'No changes detected, nothing to snap';\n }\n\n const { snappedComponents }: SnapResults = results;\n\n const snapOutput = snapResultOutput(results);\n this.logger.console(snapOutput);\n\n this.logger.console(chalk.blue(`Exporting ${snappedComponents.length} components`));\n\n const exportResults = await this.exporter.export();\n\n this.logger.console(chalk.green(`Exported ${exportResults.componentsIds.length} components`));\n } catch (e: any) {\n foundErr = e;\n throw e;\n } finally {\n if (foundErr) {\n this.logger.console(chalk.red(`Found error: ${foundErr.message}`));\n }\n // Whatever happens, switch back to the original lane\n this.logger.console('🔄 Cleanup');\n this.logger.console(chalk.blue(`Switching back to ${originalLane?.name ?? 'main'}`));\n const lane = await this.lanes.getCurrentLane();\n if (!lane) {\n this.logger.console(chalk.yellow('Already on main, no need to switch. Checking out to head'));\n await this.lanes.checkout.checkout({\n head: true,\n skipNpmInstall: true,\n });\n } else {\n await this.switchToLane(originalLane?.name ?? 'main');\n }\n }\n }\n\n async mergePr({ message: argMessage, build, strict }: { message?: string; build?: boolean; strict?: boolean }) {\n const message = argMessage || (await this.getGitCommitMessage());\n if (!message) {\n throw new Error('Failed to get commit message from git. Please provide a message using --message option.');\n }\n\n const currentLane = await this.lanes.getCurrentLane();\n\n if (currentLane) {\n // this doesn't normally happen. we expect this mergePr to be called from the default branch, which normally checks\n // out to main lane.\n this.logger.console(chalk.blue(`Currently on lane ${currentLane.name}, switching to main`));\n await this.switchToLane('main');\n this.logger.console(chalk.green('Switched to main lane'));\n }\n\n // Pull latest changes from remote to ensure we have the most up-to-date .bitmap\n // This prevents issues when multiple PRs are merged in sequence\n const defaultBranch = await this.getDefaultBranchName();\n this.logger.console(chalk.blue(`Pulling latest git changes from ${defaultBranch} branch`));\n await git.pull('origin', defaultBranch);\n this.logger.console(chalk.green('Pulled latest git changes'));\n\n this.logger.console('🔄 Checking out to main head');\n await this.checkout.checkout({\n forceOurs: true,\n head: true,\n skipNpmInstall: true,\n });\n\n const { code, data, status } = await this.verifyWorkspaceStatusInternal(strict);\n if (code !== 0) return { code, data };\n\n const hasSoftTaggedComponents = status.softTaggedComponents.length > 0;\n\n this.logger.console('📦 Component Operations');\n this.logger.console(chalk.blue('Tagging components'));\n const tagResults = await this.snapping.tag({\n all: true,\n message,\n build,\n failFast: true,\n persist: hasSoftTaggedComponents,\n });\n\n if (tagResults) {\n const tagOutput = tagResultOutput(tagResults);\n this.logger.console(tagOutput);\n } else {\n this.logger.console(chalk.yellow('No components to tag'));\n }\n\n const hasTaggedComponents = tagResults?.taggedComponents && tagResults.taggedComponents.length > 0;\n\n if (hasTaggedComponents) {\n this.logger.console(chalk.blue('Exporting components'));\n const exportResult = await this.exporter.export();\n\n if (exportResult.componentsIds.length > 0) {\n this.logger.console(chalk.green(`Exported ${exportResult.componentsIds.length} component(s)`));\n } else {\n this.logger.console(chalk.yellow('Nothing to export'));\n }\n\n this.logger.console('🔄 Git Operations');\n // Set user.email and user.name\n await git.addConfig('user.email', 'bit-ci[bot]@bit.cloud');\n await git.addConfig('user.name', 'Bit CI');\n\n // Commit the .bitmap and pnpm-lock.yaml files using Git\n await git.add(['.bitmap', 'pnpm-lock.yaml']);\n await git.commit('chore: update .bitmap and lockfiles as needed [skip ci]');\n\n // Pull latest changes and push the commit to the remote repository\n await git.pull('origin', defaultBranch);\n await git.push('origin', defaultBranch);\n } else {\n this.logger.console(chalk.yellow('No components were tagged, skipping export and git operations'));\n }\n\n this.logger.console(chalk.green('Merged PR'));\n\n if (currentLane) {\n this.logger.console('🗑️ Lane Cleanup');\n const laneId = currentLane.id;\n this.logger.console(chalk.blue(`Archiving lane ${laneId.toString()}`));\n const archiveLane = await this.lanes.removeLanes([laneId()]);\n if (archiveLane) {\n this.logger.console(chalk.green('Lane archived'));\n } else {\n this.logger.console(chalk.yellow('Failed to archive lane'));\n }\n }\n\n return { code: 0, data: '' };\n }\n}\n\n// @ts-ignore\nCiAspect.addRuntime(CiMain);\n"],"mappings":"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","ignoreList":[]}
@@ -17,9 +17,9 @@ export declare class CiPrCmd implements Command {
17
17
  group: string;
18
18
  options: CommandOptions;
19
19
  constructor(workspace: Workspace, logger: Logger, ci: CiMain);
20
- report(args: unknown, options: Options): Promise<string | {
20
+ report(args: unknown, options: Options): Promise<"No changes detected, nothing to snap" | {
21
21
  code: number;
22
22
  data: string;
23
- }>;
23
+ } | "PR command executed successfully">;
24
24
  }
25
25
  export {};
@@ -28,10 +28,10 @@ class CiPrCmd {
28
28
  this.logger.console('\n\n');
29
29
  this.logger.console('🚀 Initializing PR command');
30
30
  if (!this.workspace) throw new (_workspace().OutsideWorkspaceError)();
31
- let branch;
31
+ let laneIdStr;
32
32
  let message;
33
33
  if (options.lane) {
34
- branch = options.lane;
34
+ laneIdStr = options.lane;
35
35
  } else {
36
36
  const currentBranch = await this.ci.getBranchName().catch(e => {
37
37
  throw new Error(`Failed to get branch name from Git: ${e.toString()}`);
@@ -41,7 +41,7 @@ class CiPrCmd {
41
41
  }
42
42
  // Sanitize branch name to make it valid for Bit lane IDs by replacing slashes with dashes
43
43
  const sanitizedBranch = currentBranch.replace(/\//g, '-');
44
- branch = `${this.workspace.defaultScope}/${sanitizedBranch}`;
44
+ laneIdStr = `${this.workspace.defaultScope}/${sanitizedBranch}`;
45
45
  }
46
46
  if (options.message) {
47
47
  message = options.message;
@@ -52,12 +52,16 @@ class CiPrCmd {
52
52
  }
53
53
  message = commitMessage;
54
54
  }
55
- return this.ci.snapPrCommit({
56
- branch,
55
+ const results = await this.ci.snapPrCommit({
56
+ laneIdStr: laneIdStr,
57
57
  message,
58
58
  build: options.build,
59
59
  strict: options.strict
60
60
  });
61
+ if (results) {
62
+ return results;
63
+ }
64
+ return `PR command executed successfully`;
61
65
  }
62
66
  }
63
67
  exports.CiPrCmd = CiPrCmd;
@@ -1 +1 @@
1
- {"version":3,"names":["_workspace","data","require","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","CiPrCmd","constructor","workspace","logger","ci","report","args","options","console","OutsideWorkspaceError","branch","message","lane","currentBranch","getBranchName","catch","Error","toString","sanitizedBranch","replace","defaultScope","commitMessage","getGitCommitMessage","snapPrCommit","build","strict","exports"],"sources":["pr.cmd.ts"],"sourcesContent":["import type { Command, CommandOptions } from '@teambit/cli';\nimport type { Logger } from '@teambit/logger';\nimport { OutsideWorkspaceError, type Workspace } from '@teambit/workspace';\nimport type { CiMain } from '../ci.main.runtime';\n\ntype Options = {\n message?: string;\n build?: boolean;\n lane?: string;\n strict?: boolean;\n};\n\nexport class CiPrCmd implements Command {\n name = 'pr';\n description = 'This command is meant to run when a PR was open/updated and meant to export a lane to bit-cloud.';\n group = 'collaborate';\n\n options: CommandOptions = [\n ['m', 'message <message>', 'If set, set it as the snap message, if not, try and grab from git-commit-message'],\n ['l', 'lane <lane>', 'If set, use as the lane name, if not available, grab from git-branch name'],\n ['b', 'build', 'Set to true to build the app locally, false (default) will build on Ripple CI'],\n ['s', 'strict', 'Set to true to fail on warnings as well as errors, false (default) only fails on errors'],\n ];\n\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private ci: CiMain\n ) {}\n\n async report(args: unknown, options: Options) {\n this.logger.console('\\n\\n');\n this.logger.console('🚀 Initializing PR command');\n if (!this.workspace) throw new OutsideWorkspaceError();\n\n let branch: string;\n let message: string;\n\n if (options.lane) {\n branch = options.lane;\n } else {\n const currentBranch = await this.ci.getBranchName().catch((e) => {\n throw new Error(`Failed to get branch name from Git: ${e.toString()}`);\n });\n if (!currentBranch) {\n throw new Error('Failed to get branch name');\n }\n // Sanitize branch name to make it valid for Bit lane IDs by replacing slashes with dashes\n const sanitizedBranch = currentBranch.replace(/\\//g, '-');\n branch = `${this.workspace.defaultScope}/${sanitizedBranch}`;\n }\n\n if (options.message) {\n message = options.message;\n } else {\n const commitMessage = await this.ci.getGitCommitMessage();\n if (!commitMessage) {\n throw new Error('Failed to get commit message');\n }\n message = commitMessage;\n }\n\n return this.ci.snapPrCommit({\n branch,\n message,\n build: options.build,\n strict: options.strict,\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_workspace","data","require","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","CiPrCmd","constructor","workspace","logger","ci","report","args","options","console","OutsideWorkspaceError","laneIdStr","message","lane","currentBranch","getBranchName","catch","Error","toString","sanitizedBranch","replace","defaultScope","commitMessage","getGitCommitMessage","results","snapPrCommit","build","strict","exports"],"sources":["pr.cmd.ts"],"sourcesContent":["import type { Command, CommandOptions } from '@teambit/cli';\nimport type { Logger } from '@teambit/logger';\nimport { OutsideWorkspaceError, type Workspace } from '@teambit/workspace';\nimport type { CiMain } from '../ci.main.runtime';\n\ntype Options = {\n message?: string;\n build?: boolean;\n lane?: string;\n strict?: boolean;\n};\n\nexport class CiPrCmd implements Command {\n name = 'pr';\n description = 'This command is meant to run when a PR was open/updated and meant to export a lane to bit-cloud.';\n group = 'collaborate';\n\n options: CommandOptions = [\n ['m', 'message <message>', 'If set, set it as the snap message, if not, try and grab from git-commit-message'],\n ['l', 'lane <lane>', 'If set, use as the lane name, if not available, grab from git-branch name'],\n ['b', 'build', 'Set to true to build the app locally, false (default) will build on Ripple CI'],\n ['s', 'strict', 'Set to true to fail on warnings as well as errors, false (default) only fails on errors'],\n ];\n\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private ci: CiMain\n ) {}\n\n async report(args: unknown, options: Options) {\n this.logger.console('\\n\\n');\n this.logger.console('🚀 Initializing PR command');\n if (!this.workspace) throw new OutsideWorkspaceError();\n\n let laneIdStr: string;\n let message: string;\n\n if (options.lane) {\n laneIdStr = options.lane;\n } else {\n const currentBranch = await this.ci.getBranchName().catch((e) => {\n throw new Error(`Failed to get branch name from Git: ${e.toString()}`);\n });\n if (!currentBranch) {\n throw new Error('Failed to get branch name');\n }\n // Sanitize branch name to make it valid for Bit lane IDs by replacing slashes with dashes\n const sanitizedBranch = currentBranch.replace(/\\//g, '-');\n laneIdStr = `${this.workspace.defaultScope}/${sanitizedBranch}`;\n }\n\n if (options.message) {\n message = options.message;\n } else {\n const commitMessage = await this.ci.getGitCommitMessage();\n if (!commitMessage) {\n throw new Error('Failed to get commit message');\n }\n message = commitMessage;\n }\n\n const results = await this.ci.snapPrCommit({\n laneIdStr: laneIdStr,\n message,\n build: options.build,\n strict: options.strict,\n });\n\n if (results) {\n return results;\n }\n\n return `PR command executed successfully`;\n }\n}\n"],"mappings":";;;;;;AAEA,SAAAA,WAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,UAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA2E,SAAAE,gBAAAC,CAAA,EAAAC,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAE,cAAA,CAAAF,CAAA,MAAAD,CAAA,GAAAI,MAAA,CAAAC,cAAA,CAAAL,CAAA,EAAAC,CAAA,IAAAK,KAAA,EAAAJ,CAAA,EAAAK,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAT,CAAA,CAAAC,CAAA,IAAAC,CAAA,EAAAF,CAAA;AAAA,SAAAG,eAAAD,CAAA,QAAAQ,CAAA,GAAAC,YAAA,CAAAT,CAAA,uCAAAQ,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAT,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAF,CAAA,GAAAE,CAAA,CAAAU,MAAA,CAAAC,WAAA,kBAAAb,CAAA,QAAAU,CAAA,GAAAV,CAAA,CAAAc,IAAA,CAAAZ,CAAA,EAAAD,CAAA,uCAAAS,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAAd,CAAA,GAAAe,MAAA,GAAAC,MAAA,EAAAf,CAAA;AAUpE,MAAMgB,OAAO,CAAoB;EAYtCC,WAAWA,CACDC,SAAoB,EACpBC,MAAc,EACdC,EAAU,EAClB;IAAA,KAHQF,SAAoB,GAApBA,SAAoB;IAAA,KACpBC,MAAc,GAAdA,MAAc;IAAA,KACdC,EAAU,GAAVA,EAAU;IAAAvB,eAAA,eAdb,IAAI;IAAAA,eAAA,sBACG,kGAAkG;IAAAA,eAAA,gBACxG,aAAa;IAAAA,eAAA,kBAEK,CACxB,CAAC,GAAG,EAAE,mBAAmB,EAAE,kFAAkF,CAAC,EAC9G,CAAC,GAAG,EAAE,aAAa,EAAE,2EAA2E,CAAC,EACjG,CAAC,GAAG,EAAE,OAAO,EAAE,+EAA+E,CAAC,EAC/F,CAAC,GAAG,EAAE,QAAQ,EAAE,yFAAyF,CAAC,CAC3G;EAME;EAEH,MAAMwB,MAAMA,CAACC,IAAa,EAAEC,OAAgB,EAAE;IAC5C,IAAI,CAACJ,MAAM,CAACK,OAAO,CAAC,MAAM,CAAC;IAC3B,IAAI,CAACL,MAAM,CAACK,OAAO,CAAC,4BAA4B,CAAC;IACjD,IAAI,CAAC,IAAI,CAACN,SAAS,EAAE,MAAM,KAAIO,kCAAqB,EAAC,CAAC;IAEtD,IAAIC,SAAiB;IACrB,IAAIC,OAAe;IAEnB,IAAIJ,OAAO,CAACK,IAAI,EAAE;MAChBF,SAAS,GAAGH,OAAO,CAACK,IAAI;IAC1B,CAAC,MAAM;MACL,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACT,EAAE,CAACU,aAAa,CAAC,CAAC,CAACC,KAAK,CAAEjC,CAAC,IAAK;QAC/D,MAAM,IAAIkC,KAAK,CAAC,uCAAuClC,CAAC,CAACmC,QAAQ,CAAC,CAAC,EAAE,CAAC;MACxE,CAAC,CAAC;MACF,IAAI,CAACJ,aAAa,EAAE;QAClB,MAAM,IAAIG,KAAK,CAAC,2BAA2B,CAAC;MAC9C;MACA;MACA,MAAME,eAAe,GAAGL,aAAa,CAACM,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;MACzDT,SAAS,GAAG,GAAG,IAAI,CAACR,SAAS,CAACkB,YAAY,IAAIF,eAAe,EAAE;IACjE;IAEA,IAAIX,OAAO,CAACI,OAAO,EAAE;MACnBA,OAAO,GAAGJ,OAAO,CAACI,OAAO;IAC3B,CAAC,MAAM;MACL,MAAMU,aAAa,GAAG,MAAM,IAAI,CAACjB,EAAE,CAACkB,mBAAmB,CAAC,CAAC;MACzD,IAAI,CAACD,aAAa,EAAE;QAClB,MAAM,IAAIL,KAAK,CAAC,8BAA8B,CAAC;MACjD;MACAL,OAAO,GAAGU,aAAa;IACzB;IAEA,MAAME,OAAO,GAAG,MAAM,IAAI,CAACnB,EAAE,CAACoB,YAAY,CAAC;MACzCd,SAAS,EAAEA,SAAS;MACpBC,OAAO;MACPc,KAAK,EAAElB,OAAO,CAACkB,KAAK;MACpBC,MAAM,EAAEnB,OAAO,CAACmB;IAClB,CAAC,CAAC;IAEF,IAAIH,OAAO,EAAE;MACX,OAAOA,OAAO;IAChB;IAEA,OAAO,kCAAkC;EAC3C;AACF;AAACI,OAAA,CAAA3B,OAAA,GAAAA,OAAA","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  ;
2
- import * as overview_0 from '/Users/davidfirst/Library/Caches/Bit/capsules/4ff44c81b/teambit.git_ci@0.0.10/dist/ci.docs.mdx';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.git_ci@0.0.12/dist/ci.docs.mdx';
3
3
 
4
4
  export const compositions = [];
5
5
  export const overview = [overview_0];
package/package.json CHANGED
@@ -1,30 +1,27 @@
1
1
  {
2
2
  "name": "@teambit/ci",
3
- "version": "0.0.10",
3
+ "version": "0.0.12",
4
4
  "homepage": "https://bit.cloud/teambit/git/ci",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.git",
8
8
  "name": "ci",
9
- "version": "0.0.10"
9
+ "version": "0.0.12"
10
10
  },
11
11
  "dependencies": {
12
12
  "chalk": "4.1.2",
13
13
  "simple-git": "^3.28.0",
14
14
  "@teambit/harmony": "0.4.7",
15
- "@teambit/component-id": "1.2.4",
16
- "@teambit/cli": "0.0.1227",
17
- "@teambit/logger": "0.0.1320",
18
- "@teambit/workspace": "1.0.650",
19
- "@teambit/builder": "1.0.650",
20
- "@teambit/checkout": "1.0.650",
21
- "@teambit/export": "1.0.650",
22
- "@teambit/importer": "1.0.650",
23
- "@teambit/lanes": "1.0.651",
24
- "@teambit/legacy.constants": "0.0.12",
25
- "@teambit/legacy.consumer-component": "0.0.56",
26
- "@teambit/snapping": "1.0.650",
27
- "@teambit/status": "1.0.651"
15
+ "@teambit/cli": "0.0.1229",
16
+ "@teambit/logger": "0.0.1322",
17
+ "@teambit/workspace": "1.0.652",
18
+ "@teambit/builder": "1.0.652",
19
+ "@teambit/checkout": "1.0.652",
20
+ "@teambit/export": "1.0.652",
21
+ "@teambit/importer": "1.0.652",
22
+ "@teambit/lanes": "1.0.653",
23
+ "@teambit/snapping": "1.0.652",
24
+ "@teambit/status": "1.0.653"
28
25
  },
29
26
  "devDependencies": {
30
27
  "@teambit/harmony.envs.core-aspect-env": "0.0.70"