@teambit/ci 1.0.352 → 1.0.354

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.
@@ -398,14 +398,14 @@ class CiMain {
398
398
 
399
399
  // Use unique temp lane name to avoid race conditions when multiple CI jobs run concurrently
400
400
  const tempLaneName = `${laneId.name}-${(0, _toolboxString().generateRandomStr)(5)}`;
401
- this.logger.console(_chalk().default.blue(`Creating temporary lane ${laneId.scope}/${tempLaneName}`));
402
401
  let foundErr;
403
402
  let renamedToFinalName = false;
404
403
  try {
405
- await this.lanes.createLane(tempLaneName, {
404
+ const createLaneResult = await this.lanes.createLane(tempLaneName, {
406
405
  scope: laneId.scope,
407
406
  forkLaneNewScope: true
408
407
  });
408
+ this.logger.console(_chalk().default.blue(`Created temporary lane ${laneId.scope}/${tempLaneName} (hash: ${createLaneResult.hash})`));
409
409
  const currentLane = await this.lanes.getCurrentLane();
410
410
  this.logger.console(_chalk().default.blue(`Current lane: ${currentLane?.name ?? 'main'}`));
411
411
  if (currentLane?.name !== tempLaneName) {
@@ -1 +1 @@
1
- {"version":3,"names":["_cli","data","require","_logger","_workspace","_builder","_status","_lanes","_snapping","_export","_importer","_checkout","_execa","_interopRequireDefault","_chalk","_ci","_ci2","_verify","_pr","_merge","_git","_componentId","_lodash","_sourceBranchDetector","_toolboxString","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","LANE_HASH_MISMATCH_MARKER","CiMain","constructor","workspace","builder","status","lanes","snapping","exporter","importer","checkout","logger","config","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","convertBranchToLaneId","branchName","sanitizedBranch","replace","toLowerCase","defaultScope","getDefaultBranchName","result","raw","defaultBranch","trim","split","pop","branches","all","includes","console","chalk","yellow","getGitCommitMessage","commit","log","maxCount","latest","message","body","parseVersionBumpFromCommit","commitMessage","useExplicitBumpKeywords","blue","useConventionalCommitsForVersionBump","test","getCustomCommitMessage","commitMessageScript","parts","command","args","slice","execa","cwd","path","encoding","customMessage","stdout","green","verifyWorkspaceStatusInternal","strict","statusOutput","code","formatStatusOutput","warnings","failOnError","consoleSuccess","switchToLane","laneName","options","switchLanes","forceOurs","head","workspaceOnly","skipDependencyInstallation","red","verifyWorkspaceStatus","components","list","build","throwErrorsIfExist","snapPrCommit","laneIdStr","dryRun","originalLane","getCurrentLane","laneId","parseLaneId","import","ids","installNpmPackages","writeConfigFiles","catch","tempLaneName","name","generateRandomStr","scope","foundErr","renamedToFinalName","createLane","forkLaneNewScope","currentLane","results","snap","exitOnFirstFailedTask","removeLanes","remote","force","snappedComponents","snapOutput","snapResultOutput","existingLanes","getLanes","archiveResult","archiveLane","stillExists","verifyErr","rename","exportResults","exportWithRetryOnLaneHashMismatch","componentsIds","targetLane","skipNpmInstall","tempLaneFullName","cleanupErr","mergePr","argMessage","releaseType","preReleaseId","incrementBy","explicitVersionBump","verbose","versionsFile","autoMergeResolve","forceTheirs","skipPush","noBitmapCommit","initialCommitSha","revparse","laneComponents","changedIds","consumer","bitMap","resetLaneComponentsToNew","changedIdsList","ComponentIdList","fromArray","legacyScope","removeMany","clearCache","write","gitStatus","hasChanges","files","stash","pull","importCurrentObjects","checkoutProps","mergeStrategy","checkoutResults","reportToString","checkoutOutput","restoreLaneConfigChanges","workspaceConfigUpdateResult","workspaceDepsConflicts","workspaceConfigConflictWriteError","bold","gray","leftUnresolvedConflicts","componentsWithConflicts","c","filesStatus","values","some","conflictedComponentIds","map","hasSoftTaggedComponents","softTaggedComponents","finalReleaseType","determineReleaseType","tagResults","tag","failFast","persist","tagOutput","tagResultOutput","hasTaggedComponents","taggedComponents","exportResult","export","commitAndPushBitmapChanges","performLaneCleanup","addConfig","statusBeforeCommit","file","working_dir","index","diff","error","add","statusAfterCommit","repo","objects","activeComponents","isDeleted","Promise","laneComp","laneVersion","load","laneConfig","extensions","toConfigObject","mainConfig","modelComp","getModelComponentIfExist","changeVersion","undefined","mainHead","getHead","mainVersion","aspectId","entries","isEqual","updated","addComponentConfig","explicitLaneName","sourceBranchDetector","SourceBranchDetector","sourceBranchName","getSourceBranchName","maxAttempts","isHashMismatchErr","err","attempt","archiveErr","cause","throwOnError","lastCommit","detectedReleaseType","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 } from '@teambit/lanes';\nimport type { SwitchLaneOptions, LanesMain } from '@teambit/lanes';\nimport { SnappingAspect, tagResultOutput, snapResultOutput } from '@teambit/snapping';\nimport type { SnapResults, SnappingMain } from '@teambit/snapping';\nimport { ExportAspect, type ExportMain } from '@teambit/export';\nimport { ImporterAspect, type ImporterMain } from '@teambit/importer';\nimport { CheckoutAspect, checkoutOutput, type CheckoutMain } from '@teambit/checkout';\nimport type { MergeStrategy } from '@teambit/component.modules.merge-helper';\nimport execa from 'execa';\nimport chalk from 'chalk';\nimport type { ReleaseType } from 'semver';\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';\nimport { ComponentIdList } from '@teambit/component-id';\nimport { isEqual } from 'lodash';\nimport type { Version, LaneComponent } from '@teambit/objects';\nimport { SourceBranchDetector } from './source-branch-detector';\nimport { generateRandomStr } from '@teambit/toolbox.string.random';\n\n/**\n * Sentinel substring emitted by the hub when a lane push is rejected because a lane with the same\n * id already exists with a different hash. Thrown as `BitError` from\n * `components/legacy/scope/repositories/sources.ts` and wrapped in `UnexpectedNetworkError` across\n * the wire, so we match on the message text rather than an error class.\n */\nconst LANE_HASH_MISMATCH_MARKER = 'a lane with the same id already exists with a different hash';\n\nexport interface CiWorkspaceConfig {\n /**\n * Path to a custom script that generates commit messages for `bit ci merge` operations.\n * The script will be executed when components are tagged and committed to the repository.\n * If not specified, falls back to the default commit message:\n * \"chore: update .bitmap and lockfiles as needed [skip ci]\"\n *\n * @example\n * ```json\n * {\n * \"teambit.git/ci\": {\n * \"commitMessageScript\": \"node scripts/generate-commit-message.js\"\n * }\n * }\n * ```\n */\n commitMessageScript?: string;\n\n /**\n * Enables automatic version bump detection from conventional commit messages.\n * When enabled, the system analyzes commit messages to determine the appropriate version bump:\n * - `feat!:` or `BREAKING CHANGE` → major version bump\n * - `feat:` → minor version bump\n * - `fix:` → patch version bump\n *\n * Only applies when no explicit version flags (--patch, --minor, --major) are provided.\n *\n * @default false\n * @example\n * ```json\n * {\n * \"teambit.git/ci\": {\n * \"useConventionalCommitsForVersionBump\": true\n * }\n * }\n * ```\n */\n useConventionalCommitsForVersionBump?: boolean;\n\n /**\n * Enables detection of explicit version bump keywords in commit messages.\n * When enabled, the system looks for these keywords in commit messages:\n * - `BIT-BUMP-MAJOR` → major version bump\n * - `BIT-BUMP-MINOR` → minor version bump\n *\n * These keywords have higher priority than conventional commits parsing.\n * Only applies when no explicit version flags are provided.\n *\n * @default true\n * @example\n * ```json\n * {\n * \"teambit.git/ci\": {\n * \"useExplicitBumpKeywords\": true\n * }\n * }\n * ```\n */\n useExplicitBumpKeywords?: boolean;\n}\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 private config: CiWorkspaceConfig\n ) {}\n\n static async provider(\n [cli, workspace, loggerAspect, builder, status, lanes, snapping, exporter, importer, checkout]: [\n CLIMain,\n Workspace,\n LoggerMain,\n BuilderMain,\n StatusMain,\n LanesMain,\n SnappingMain,\n ExportMain,\n ImporterMain,\n CheckoutMain,\n ],\n config: CiWorkspaceConfig\n ) {\n const logger = loggerAspect.createLogger(CiAspect.id);\n const ci = new CiMain(workspace, builder, status, lanes, snapping, exporter, importer, checkout, logger, config);\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 /**\n * Converts a branch name to a lane ID string using Bit's naming conventions.\n * Sanitizes branch name by replacing slashes and dots with dashes, converting to lowercase, then\n * prefixes with the workspace's default scope.\n *\n * @param branchName - The git branch name to convert\n * @returns Lane ID in format: {defaultScope}/{sanitizedBranch}\n * @example convertBranchToLaneId(\"feature/New-Component\") => \"my-scope/feature-new-component\"\n */\n convertBranchToLaneId(branchName: string): string {\n // Sanitize branch name to make it valid for Bit lane IDs by replacing slashes and dots with dashes\n // and converting to lowercase\n const sanitizedBranch = branchName.replace(/[/.]/g, '-').toLowerCase();\n return `${this.workspace.defaultScope}/${sanitizedBranch}`;\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 parseVersionBumpFromCommit(commitMessage: string): ReleaseType | null {\n // Check explicit bump keywords (highest priority after env vars)\n if (this.config.useExplicitBumpKeywords !== false) {\n // default to true\n if (commitMessage.includes('BIT-BUMP-MAJOR')) {\n this.logger.console(chalk.blue('Found BIT-BUMP-MAJOR keyword in commit message'));\n return 'major';\n }\n if (commitMessage.includes('BIT-BUMP-MINOR')) {\n this.logger.console(chalk.blue('Found BIT-BUMP-MINOR keyword in commit message'));\n return 'minor';\n }\n }\n\n // Check conventional commits if enabled\n if (this.config.useConventionalCommitsForVersionBump) {\n // Check for breaking changes (major version bump)\n if (/^feat!(\\(.+\\))?:|^fix!(\\(.+\\))?:|BREAKING CHANGE/m.test(commitMessage)) {\n this.logger.console(chalk.blue('Found breaking changes in commit message (conventional commits)'));\n return 'major';\n }\n\n // Check for features (minor version bump)\n if (/^feat(\\(.+\\))?:/m.test(commitMessage)) {\n this.logger.console(chalk.blue('Found feature commits (conventional commits)'));\n return 'minor';\n }\n\n // Check for fixes (patch version bump) - explicit patch not needed as it's default\n if (/^fix(\\(.+\\))?:/m.test(commitMessage)) {\n this.logger.console(chalk.blue('Found fix commits (conventional commits) - using default patch'));\n return 'patch';\n }\n }\n\n return null; // No specific version bump detected\n }\n\n private async getCustomCommitMessage() {\n try {\n const commitMessageScript = this.config.commitMessageScript;\n\n if (commitMessageScript) {\n this.logger.console(chalk.blue(`Running custom commit message script: ${commitMessageScript}`));\n\n // Parse the command to avoid shell injection\n const parts = commitMessageScript.split(' ');\n const command = parts[0];\n const args = parts.slice(1);\n\n const result = await execa(command, args, {\n cwd: this.workspace.path,\n encoding: 'utf8',\n });\n const customMessage = result.stdout.trim();\n\n if (customMessage) {\n this.logger.console(chalk.green(`Using custom commit message: ${customMessage}`));\n return customMessage;\n }\n }\n } catch (e: any) {\n this.logger.console(chalk.yellow(`Failed to run custom commit message script: ${e.toString()}`));\n }\n\n // Fallback to default message\n return 'chore: update .bitmap and lockfiles as needed [skip ci]';\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\n const status = await this.status.status({ lanes: true });\n const { data: statusOutput, code } = await this.status.formatStatusOutput(\n status,\n strict\n ? { strict: true, warnings: true } // When strict=true, fail on both errors and warnings\n : { failOnError: true, warnings: false } // By default, fail only on errors (tag blockers)\n );\n\n // Log the formatted status output\n this.logger.console(statusOutput);\n\n if (code !== 0) {\n throw new Error('Workspace status verification failed');\n }\n\n this.logger.consoleSuccess(chalk.green('Workspace status is correct'));\n return { status };\n }\n\n private async switchToLane(laneName: string, options: SwitchLaneOptions = {}) {\n this.logger.console(chalk.blue(`Switching to ${laneName}`));\n try {\n await this.lanes.switchLanes(laneName, {\n forceOurs: true,\n head: true,\n workspaceOnly: true,\n skipDependencyInstallation: true,\n ...options,\n });\n } catch (e: any) {\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 switching to ${laneName}: ${e.toString()}`));\n }\n }\n\n async verifyWorkspaceStatus() {\n await this.verifyWorkspaceStatusInternal();\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 dryRun,\n }: {\n laneIdStr: string;\n message: string;\n build: boolean | undefined;\n strict: boolean | undefined;\n dryRun?: boolean;\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 await this.verifyWorkspaceStatusInternal(strict);\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\n // Use unique temp lane name to avoid race conditions when multiple CI jobs run concurrently\n const tempLaneName = `${laneId.name}-${generateRandomStr(5)}`;\n this.logger.console(chalk.blue(`Creating temporary lane ${laneId.scope}/${tempLaneName}`));\n\n let foundErr: Error | undefined;\n let renamedToFinalName = false;\n try {\n await this.lanes.createLane(tempLaneName, {\n scope: laneId.scope,\n forkLaneNewScope: true,\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 !== tempLaneName) {\n throw new Error(\n `Expected to be on lane ${tempLaneName} after creation, but current lane is ${currentLane?.name ?? 'main'}`\n );\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 // No changes to snap - switch back to main and remove the temp lane we created\n this.logger.console(chalk.yellow('No changes detected, removing temporary lane'));\n await this.switchToLane(originalLane?.name ?? 'main');\n await this.lanes.removeLanes([tempLaneName], { remote: false, force: true });\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 if (dryRun) {\n this.logger.console(chalk.yellow('🏃 Dry-run mode: skipping export, lane deletion, and rename'));\n this.logger.console(chalk.green(`Snapped ${snappedComponents.length} component(s) successfully`));\n this.logger.console(\n chalk.blue(\n `Temporary lane \"${laneId.scope}/${tempLaneName}\" kept for debugging. Remove it with: bit lane remove ${laneId.scope}/${tempLaneName}`\n )\n );\n return snapOutput;\n }\n\n // Finalize atomically: delete existing lane, rename temp lane, export\n this.logger.console('🔄 Finalizing Lane');\n\n // Check if original lane exists on remote and delete it (query by name to avoid fetching all lanes)\n const existingLanes = await this.lanes.getLanes({ remote: laneId.scope, name: laneId.name }).catch((e) => {\n // Lane not found is expected on first run - just means nothing to delete\n if (e.toString().includes('was not found')) {\n return [];\n }\n throw new Error(`Failed to check lane ${laneId.toString()}: ${e.toString()}`);\n });\n\n if (existingLanes.length) {\n this.logger.console(chalk.blue(`Deleting existing remote lane ${laneId.toString()}`));\n const archiveResult = await this.archiveLane(laneId.toString(), true); // throwOnError: delete must succeed before export\n if (archiveResult === 'not-found') {\n // `getLanes` just reported the lane exists, but the delete API says \"not found\". Re-query\n // to confirm. If the lane still shows up, something is off on the remote (delete can't\n // see what list/export can), and retrying will never converge.\n let stillExists;\n try {\n stillExists = await this.lanes.getLanes({ remote: laneId.scope, name: laneId.name });\n } catch (verifyErr: any) {\n throw new Error(\n `failed to verify whether remote lane ${laneId.toString()} still exists after delete returned \"not found\": ${verifyErr?.message || verifyErr}`\n );\n }\n if (stillExists.length) {\n throw new Error(\n `unable to delete remote lane ${laneId.toString()}: the remote reports the lane as \"not found\" from ` +\n `the delete API but still lists it from the query API. maybe this is a remote issue on bit.cloud. ` +\n `please contact support or manually delete the lane on bit.cloud before re-running CI.`\n );\n }\n }\n }\n\n // Rename temp lane to original name\n this.logger.console(chalk.blue(`Renaming lane from ${tempLaneName} to ${laneId.name}`));\n await this.lanes.rename(laneId.name, tempLaneName);\n renamedToFinalName = true;\n\n // Export with the correct name. Retry on hash-mismatch, which indicates a concurrent CI job\n // pushed the same lane id between our pre-export delete and our merge on the hub.\n this.logger.console(chalk.blue(`Exporting ${snappedComponents.length} components`));\n const exportResults = await this.exportWithRetryOnLaneHashMismatch(laneId.toString());\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 // Always switch back to the original lane\n this.logger.console('🔄 Cleanup');\n const targetLane = originalLane?.name ?? 'main';\n this.logger.console(chalk.blue(`Switching back to ${targetLane}`));\n\n const currentLane = await this.lanes.getCurrentLane();\n if (currentLane) {\n await this.switchToLane(targetLane);\n } else {\n this.logger.console(chalk.yellow('Already on main, checking out to head'));\n await this.lanes.checkout.checkout({ head: true, skipNpmInstall: true });\n }\n\n // Clean up orphaned temporary lane on error. Skip if the rename to the final name already\n // happened - in that case the temp name no longer exists locally, and the lane under the\n // final name may have been partially exported; leave it alone rather than wipe evidence.\n if (foundErr && !renamedToFinalName) {\n const tempLaneFullName = `${laneId.scope}/${tempLaneName}`;\n this.logger.console(chalk.blue(`Cleaning up temporary lane ${tempLaneFullName}`));\n try {\n await this.lanes.removeLanes([tempLaneFullName], { remote: false, force: true });\n this.logger.console(chalk.green(`Removed temporary lane ${tempLaneFullName}`));\n } catch (cleanupErr: any) {\n // Ignore cleanup errors to avoid masking the original error\n this.logger.console(chalk.yellow(`Failed to clean up temporary lane: ${cleanupErr?.message || cleanupErr}`));\n }\n }\n }\n }\n\n async mergePr({\n message: argMessage,\n build,\n strict,\n releaseType,\n preReleaseId,\n incrementBy,\n explicitVersionBump,\n verbose,\n versionsFile,\n autoMergeResolve,\n forceTheirs,\n laneName,\n skipPush,\n noBitmapCommit,\n }: {\n message?: string;\n build?: boolean;\n strict?: boolean;\n releaseType: ReleaseType;\n preReleaseId?: string;\n incrementBy?: number;\n explicitVersionBump?: boolean;\n verbose?: boolean;\n versionsFile?: string;\n autoMergeResolve?: MergeStrategy;\n forceTheirs?: boolean;\n laneName?: string;\n skipPush?: boolean;\n noBitmapCommit?: boolean;\n }) {\n // Capture the initial commit SHA before any operations modify the repository\n const initialCommitSha = await git.revparse(['HEAD']);\n\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 const laneComponents = currentLane?.components;\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 is needed to make sure components that were created on the lane are now available on main.\n // without this, the switch to main above, marks those components as not-available, and won't be tagged later on.\n // don't use the high-level `consumer.resetLaneNew()`, because it deletes the entire local scope.\n const changedIds = this.workspace.consumer.bitMap.resetLaneComponentsToNew();\n if (changedIds.length) {\n const changedIdsList = ComponentIdList.fromArray(changedIds);\n await this.workspace.scope.legacyScope.removeMany(changedIdsList, true);\n\n await this.workspace.clearCache();\n await this.workspace.bitMap.write('reset lane new');\n }\n\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\n // Check if there are any changes to stash before rebasing\n const gitStatus = await git.status();\n const hasChanges = gitStatus.files.length > 0;\n\n if (hasChanges) {\n this.logger.console(chalk.yellow('Stashing uncommitted changes before rebase'));\n await git.stash(['push', '-u', '-m', 'CI merge temporary stash']);\n }\n\n await git.pull('origin', defaultBranch, { '--rebase': 'true' });\n\n if (hasChanges) {\n this.logger.console(chalk.yellow('Restoring stashed changes after rebase'));\n await git.stash(['pop']);\n }\n\n this.logger.console(chalk.green('Pulled latest git changes'));\n\n this.logger.console('🔄 Checking out to main head');\n await this.importer.importCurrentObjects();\n\n const checkoutProps = {\n forceOurs: !forceTheirs && !autoMergeResolve, // only force ours if neither forceTheirs nor autoMergeResolve is specified\n head: true,\n skipNpmInstall: true,\n ...(forceTheirs && { forceTheirs }),\n ...(autoMergeResolve && { mergeStrategy: autoMergeResolve }),\n };\n const checkoutResults = await this.checkout.checkout(checkoutProps);\n\n await this.workspace.bitMap.write('checkout head');\n this.logger.console(reportToString(checkoutOutput(checkoutResults, checkoutProps)));\n\n if (laneComponents?.length) {\n await this.restoreLaneConfigChanges(laneComponents);\n }\n\n // Check for workspace.jsonc conflicts\n if (\n checkoutResults.workspaceConfigUpdateResult?.workspaceDepsConflicts ||\n checkoutResults.workspaceConfigUpdateResult?.workspaceConfigConflictWriteError\n ) {\n this.logger.console(chalk.red('❌ workspace.jsonc conflicts detected during checkout'));\n this.logger.console(chalk.blue('\\nTo resolve these conflicts, please run:'));\n this.logger.console(chalk.bold(' bit checkout head'));\n this.logger.console(chalk.gray('\\nThis will allow you to manually resolve the conflicts in workspace.jsonc.'));\n\n throw new Error(\n 'Cannot complete CI merge due to workspace.jsonc conflicts. Please run \"bit checkout head\" and fix the conflicts manually.'\n );\n }\n\n // Check for conflicts when using manual merge strategy\n if (autoMergeResolve === 'manual' && checkoutResults.leftUnresolvedConflicts) {\n const componentsWithConflicts =\n checkoutResults.components?.filter(\n (c) => c.filesStatus && Object.values(c.filesStatus).some((status) => status === 'manual')\n ) || [];\n\n const conflictedComponentIds = componentsWithConflicts.map((c) => c.id.toString());\n\n this.logger.console(chalk.red('❌ Merge conflicts detected during checkout'));\n this.logger.console(chalk.yellow('The following components have conflicts:'));\n conflictedComponentIds.forEach((id) => {\n this.logger.console(chalk.yellow(` - ${id}`));\n });\n this.logger.console(chalk.blue('\\nTo resolve these conflicts, please run:'));\n this.logger.console(chalk.bold(' bit checkout head'));\n this.logger.console(chalk.gray('\\nThis will allow you to manually resolve the conflicts.'));\n\n throw new Error(\n 'Cannot complete CI merge due to unresolved conflicts. Please resolve conflicts manually and try again.'\n );\n }\n\n const { status } = await this.verifyWorkspaceStatusInternal(strict);\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 finalReleaseType = await this.determineReleaseType(releaseType, explicitVersionBump);\n const tagResults = await this.snapping.tag({\n all: true,\n message,\n build,\n failFast: true,\n persist: hasSoftTaggedComponents,\n releaseType: finalReleaseType,\n preReleaseId,\n incrementBy,\n versionsFile,\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 if (noBitmapCommit) {\n this.logger.console(\n chalk.yellow(\n 'Skipping bitmap commit (--no-bitmap-commit flag). The new versions are in scope; no git commit will be created on the default branch.'\n )\n );\n this.logger.console(\n chalk.gray(\n 'Developers auto-sync their local .bitmap on the next bit command after `git pull` when `bitmapAutoSync: true` is set in workspace.jsonc.'\n )\n );\n } else {\n await this.commitAndPushBitmapChanges({ verbose, skipPush, defaultBranch });\n }\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 // Enhanced lane cleanup logic\n await this.performLaneCleanup(currentLane, laneName, initialCommitSha);\n\n return { code: 0, data: '' };\n }\n\n /**\n * Stage every changed file (post-tag/export the bitmap, lockfiles, and any files\n * touched by `bit checkout head` may differ), commit with the configured message,\n * rebase against origin, and push — unless `skipPush` was passed.\n */\n private async commitAndPushBitmapChanges({\n verbose,\n skipPush,\n defaultBranch,\n }: {\n verbose?: boolean;\n skipPush?: boolean;\n defaultBranch: string;\n }) {\n this.logger.console('🔄 Git Operations');\n await git.addConfig('user.email', 'bit-ci[bot]@bit.cloud');\n await git.addConfig('user.name', 'Bit CI');\n\n const statusBeforeCommit = await git.status();\n this.logger.console(chalk.blue(`Git status before commit: ${statusBeforeCommit.files.length} files`));\n statusBeforeCommit.files.forEach((file) => {\n this.logger.console(chalk.gray(` ${file.working_dir}${file.index} ${file.path}`));\n });\n\n if (verbose && statusBeforeCommit.files.length > 0) {\n try {\n const diff = await git.diff();\n if (diff) {\n this.logger.console(chalk.blue('Git diff before commit:'));\n this.logger.console(diff);\n }\n } catch (error) {\n this.logger.console(chalk.yellow(`Failed to show git diff: ${error}`));\n }\n }\n\n // Stage everything: `bit checkout head` earlier in the flow may modify files\n // beyond .bitmap and pnpm-lock.yaml, so a narrow `git add` would miss them.\n await git.add(['.']);\n const commitMessage = await this.getCustomCommitMessage();\n await git.commit(commitMessage);\n\n const statusAfterCommit = await git.status();\n this.logger.console(chalk.blue(`Git status after commit: ${statusAfterCommit.files.length} files`));\n statusAfterCommit.files.forEach((file) => {\n this.logger.console(chalk.gray(` ${file.working_dir}${file.index} ${file.path}`));\n });\n\n await git.pull('origin', defaultBranch, { '--rebase': 'true' });\n if (skipPush) {\n this.logger.console(chalk.yellow('Skipping git push (--skip-push flag)'));\n return;\n }\n await git.push('origin', defaultBranch);\n }\n\n /**\n * Compare lane Version extensions with main Version extensions for each component.\n * Any config differences (e.g. env-set, deps-set) are saved to .bitmap so they survive\n * the switch from lane to main and get included in the subsequent tag.\n */\n private async restoreLaneConfigChanges(laneComponents: LaneComponent[]) {\n const scope = this.workspace.scope.legacyScope;\n const repo = scope.objects;\n let hasChanges = false;\n\n const activeComponents = laneComponents.filter((c) => !c.isDeleted);\n await Promise.all(\n activeComponents.map(async (laneComp) => {\n const laneVersion = (await repo.load(laneComp.head)) as Version;\n if (!laneVersion) {\n this.logger.console(chalk.yellow(`Warning: could not load Version object for ${laneComp.id.toString()}`));\n return;\n }\n\n const laneConfig = laneVersion.extensions.toConfigObject();\n if (!laneConfig || Object.keys(laneConfig).length === 0) return;\n\n // Get main Version for comparison\n let mainConfig: Record<string, any> = {};\n const modelComp = await scope.getModelComponentIfExist(laneComp.id.changeVersion(undefined));\n const mainHead = modelComp?.getHead();\n if (mainHead) {\n const mainVersion = (await repo.load(mainHead)) as Version;\n mainConfig = mainVersion?.extensions.toConfigObject() ?? {};\n }\n\n for (const [aspectId, config] of Object.entries(laneConfig)) {\n if (!isEqual(config, mainConfig[aspectId])) {\n const updated = this.workspace.bitMap.addComponentConfig(\n laneComp.id,\n aspectId,\n config as Record<string, any>\n );\n if (updated) hasChanges = true;\n }\n }\n })\n );\n\n if (hasChanges) {\n await this.workspace.bitMap.write('restore lane config');\n await this.workspace.clearCache();\n this.logger.console(chalk.blue('Restored config changes from lane'));\n }\n }\n\n /**\n * Performs lane cleanup by attempting to detect and delete the source lane\n * after a successful merge, even when running on the main branch\n */\n private async performLaneCleanup(currentLane: any, explicitLaneName?: string, initialCommitSha?: string) {\n this.logger.console('🗑️ Lane Cleanup');\n\n // If we already have a current lane, use it\n if (currentLane) {\n this.logger.console(chalk.blue(`Found current lane: ${currentLane.name}`));\n const laneId = currentLane.id();\n await this.archiveLane(laneId.toString());\n return;\n }\n\n // If no current lane but explicit lane name provided, try to delete it\n if (explicitLaneName) {\n this.logger.console(chalk.blue(`Using explicitly provided lane name: ${explicitLaneName}`));\n try {\n const laneId = await this.lanes.parseLaneId(explicitLaneName);\n await this.archiveLane(laneId.toString());\n return;\n } catch (e: any) {\n this.logger.console(chalk.yellow(`Failed to parse lane name '${explicitLaneName}': ${e.message}`));\n }\n }\n\n // Try to auto-detect source branch/lane name using the dedicated detector\n const sourceBranchDetector = new SourceBranchDetector(this.logger);\n const sourceBranchName = await sourceBranchDetector.getSourceBranchName(initialCommitSha);\n if (!sourceBranchName) {\n this.logger.console(chalk.yellow('No current lane and unable to detect source branch - skipping lane cleanup'));\n return;\n }\n try {\n const laneIdStr = this.convertBranchToLaneId(sourceBranchName);\n\n this.logger.console(\n chalk.blue(`Attempting to delete lane based on source branch: ${sourceBranchName} -> ${laneIdStr}`)\n );\n\n const laneId = await this.lanes.parseLaneId(laneIdStr);\n await this.archiveLane(laneId.toString());\n } catch (e: any) {\n this.logger.console(\n chalk.yellow(`Error during lane cleanup for source branch '${sourceBranchName}': ${e.message}`)\n );\n }\n }\n\n /**\n * Export with retry on lane hash-mismatch, caused by a concurrent `bit ci pr` run pushing the\n * same lane id between our pre-export delete and the hub's merge (the export takes 1-2 minutes,\n * plenty of time to race). Before each retry we skip if the PR branch has advanced past our\n * commit - in that case a newer run will publish the correct lane, and retrying with our older\n * snaps would regress the PR preview.\n */\n private async exportWithRetryOnLaneHashMismatch(laneIdStr: string, maxAttempts = 3) {\n const isHashMismatchErr = (err: any) => (err?.message || err?.toString() || '').includes(LANE_HASH_MISMATCH_MARKER);\n\n for (let attempt = 1; attempt <= maxAttempts; attempt += 1) {\n try {\n return await this.exporter.export();\n } catch (e: any) {\n if (!isHashMismatchErr(e) || attempt === maxAttempts) throw e;\n this.logger.console(\n chalk.yellow(\n `Export attempt ${attempt}/${maxAttempts} failed with lane hash mismatch on \"${laneIdStr}\" (likely a concurrent CI push). Deleting remote lane and retrying.`\n )\n );\n try {\n await this.archiveLane(laneIdStr, true);\n } catch (archiveErr: any) {\n // Preserve the original export error - rethrowing the archive error would hide the real\n // reason the push was rejected.\n this.logger.console(\n chalk.yellow(\n `Failed to delete remote lane \"${laneIdStr}\" while recovering from hash mismatch: ${archiveErr?.message || archiveErr}. Rethrowing the original export error.`\n )\n );\n if (e && typeof e === 'object' && (e as any).cause == null) {\n (e as any).cause = archiveErr;\n }\n throw e;\n }\n }\n }\n throw new Error(`exportWithRetryOnLaneHashMismatch: exhausted ${maxAttempts} attempts for lane ${laneIdStr}`);\n }\n\n /**\n * Archives (deletes) a lane with proper error handling and logging.\n * @param throwOnError - if true, throws on failure (use for critical operations like pre-export cleanup)\n */\n private async archiveLane(laneId: string, throwOnError = false): Promise<'deleted' | 'not-found' | 'error'> {\n try {\n this.logger.console(chalk.blue(`Archiving lane ${laneId}`));\n // force means to remove the lane even if it was not merged. in this case, we don't care much because main already has the changes.\n const archiveLane = await this.lanes.removeLanes([laneId], { remote: true, force: true });\n if (archiveLane.length) {\n this.logger.console(chalk.green(`Lane '${laneId}' archived successfully`));\n return 'deleted';\n }\n this.logger.console(chalk.yellow(`Failed to archive lane '${laneId}' - no lanes were removed`));\n return 'not-found';\n } catch (e: any) {\n if (e.message?.includes('was not found') || e.toString().includes('was not found')) {\n this.logger.console(chalk.yellow(`Lane '${laneId}' was not found on the remote`));\n return 'not-found';\n }\n this.logger.console(chalk.red(`Error archiving lane '${laneId}': ${e.message}`));\n if (throwOnError) {\n throw new Error(`Failed to delete remote lane '${laneId}': ${e.message}`);\n }\n return 'error';\n // Don't throw the error - lane cleanup is not critical to the merge process\n }\n }\n\n /**\n * Auto-detect version bump from commit messages if no explicit version bump was provided\n */\n private async determineReleaseType(releaseType: ReleaseType, explicitVersionBump?: boolean): Promise<ReleaseType> {\n if (explicitVersionBump) {\n this.logger.console(chalk.blue(`Using explicit version bump: ${releaseType}`));\n return releaseType;\n }\n // Only auto-detect if user didn't specify any version flags\n const lastCommit = await this.getGitCommitMessage();\n if (!lastCommit) {\n this.logger.console(chalk.blue('No commit message found, using default patch'));\n return releaseType;\n }\n const detectedReleaseType = this.parseVersionBumpFromCommit(lastCommit);\n if (detectedReleaseType) {\n this.logger.console(chalk.green(`Auto-detected version bump: ${detectedReleaseType}`));\n return detectedReleaseType;\n }\n this.logger.console(chalk.blue('No specific version bump detected, using default patch'));\n return releaseType;\n }\n}\n\nfunction reportToString(result: string | { data: string }): string {\n return typeof result === 'string' ? result : result.data;\n}\n\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","_execa","_interopRequireDefault","_chalk","_ci","_ci2","_verify","_pr","_merge","_git","_componentId","_lodash","_sourceBranchDetector","_toolboxString","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","LANE_HASH_MISMATCH_MARKER","CiMain","constructor","workspace","builder","status","lanes","snapping","exporter","importer","checkout","logger","config","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","convertBranchToLaneId","branchName","sanitizedBranch","replace","toLowerCase","defaultScope","getDefaultBranchName","result","raw","defaultBranch","trim","split","pop","branches","all","includes","console","chalk","yellow","getGitCommitMessage","commit","log","maxCount","latest","message","body","parseVersionBumpFromCommit","commitMessage","useExplicitBumpKeywords","blue","useConventionalCommitsForVersionBump","test","getCustomCommitMessage","commitMessageScript","parts","command","args","slice","execa","cwd","path","encoding","customMessage","stdout","green","verifyWorkspaceStatusInternal","strict","statusOutput","code","formatStatusOutput","warnings","failOnError","consoleSuccess","switchToLane","laneName","options","switchLanes","forceOurs","head","workspaceOnly","skipDependencyInstallation","red","verifyWorkspaceStatus","components","list","build","throwErrorsIfExist","snapPrCommit","laneIdStr","dryRun","originalLane","getCurrentLane","laneId","parseLaneId","import","ids","installNpmPackages","writeConfigFiles","catch","tempLaneName","name","generateRandomStr","foundErr","renamedToFinalName","createLaneResult","createLane","scope","forkLaneNewScope","hash","currentLane","results","snap","exitOnFirstFailedTask","removeLanes","remote","force","snappedComponents","snapOutput","snapResultOutput","existingLanes","getLanes","archiveResult","archiveLane","stillExists","verifyErr","rename","exportResults","exportWithRetryOnLaneHashMismatch","componentsIds","targetLane","skipNpmInstall","tempLaneFullName","cleanupErr","mergePr","argMessage","releaseType","preReleaseId","incrementBy","explicitVersionBump","verbose","versionsFile","autoMergeResolve","forceTheirs","skipPush","noBitmapCommit","initialCommitSha","revparse","laneComponents","changedIds","consumer","bitMap","resetLaneComponentsToNew","changedIdsList","ComponentIdList","fromArray","legacyScope","removeMany","clearCache","write","gitStatus","hasChanges","files","stash","pull","importCurrentObjects","checkoutProps","mergeStrategy","checkoutResults","reportToString","checkoutOutput","restoreLaneConfigChanges","workspaceConfigUpdateResult","workspaceDepsConflicts","workspaceConfigConflictWriteError","bold","gray","leftUnresolvedConflicts","componentsWithConflicts","c","filesStatus","values","some","conflictedComponentIds","map","hasSoftTaggedComponents","softTaggedComponents","finalReleaseType","determineReleaseType","tagResults","tag","failFast","persist","tagOutput","tagResultOutput","hasTaggedComponents","taggedComponents","exportResult","export","commitAndPushBitmapChanges","performLaneCleanup","addConfig","statusBeforeCommit","file","working_dir","index","diff","error","add","statusAfterCommit","repo","objects","activeComponents","isDeleted","Promise","laneComp","laneVersion","load","laneConfig","extensions","toConfigObject","mainConfig","modelComp","getModelComponentIfExist","changeVersion","undefined","mainHead","getHead","mainVersion","aspectId","entries","isEqual","updated","addComponentConfig","explicitLaneName","sourceBranchDetector","SourceBranchDetector","sourceBranchName","getSourceBranchName","maxAttempts","isHashMismatchErr","err","attempt","archiveErr","cause","throwOnError","lastCommit","detectedReleaseType","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 } from '@teambit/lanes';\nimport type { SwitchLaneOptions, LanesMain } from '@teambit/lanes';\nimport { SnappingAspect, tagResultOutput, snapResultOutput } from '@teambit/snapping';\nimport type { SnapResults, SnappingMain } from '@teambit/snapping';\nimport { ExportAspect, type ExportMain } from '@teambit/export';\nimport { ImporterAspect, type ImporterMain } from '@teambit/importer';\nimport { CheckoutAspect, checkoutOutput, type CheckoutMain } from '@teambit/checkout';\nimport type { MergeStrategy } from '@teambit/component.modules.merge-helper';\nimport execa from 'execa';\nimport chalk from 'chalk';\nimport type { ReleaseType } from 'semver';\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';\nimport { ComponentIdList } from '@teambit/component-id';\nimport { isEqual } from 'lodash';\nimport type { Version, LaneComponent } from '@teambit/objects';\nimport { SourceBranchDetector } from './source-branch-detector';\nimport { generateRandomStr } from '@teambit/toolbox.string.random';\n\n/**\n * Sentinel substring emitted by the hub when a lane push is rejected because a lane with the same\n * id already exists with a different hash. Thrown as `BitError` from\n * `components/legacy/scope/repositories/sources.ts` and wrapped in `UnexpectedNetworkError` across\n * the wire, so we match on the message text rather than an error class.\n */\nconst LANE_HASH_MISMATCH_MARKER = 'a lane with the same id already exists with a different hash';\n\nexport interface CiWorkspaceConfig {\n /**\n * Path to a custom script that generates commit messages for `bit ci merge` operations.\n * The script will be executed when components are tagged and committed to the repository.\n * If not specified, falls back to the default commit message:\n * \"chore: update .bitmap and lockfiles as needed [skip ci]\"\n *\n * @example\n * ```json\n * {\n * \"teambit.git/ci\": {\n * \"commitMessageScript\": \"node scripts/generate-commit-message.js\"\n * }\n * }\n * ```\n */\n commitMessageScript?: string;\n\n /**\n * Enables automatic version bump detection from conventional commit messages.\n * When enabled, the system analyzes commit messages to determine the appropriate version bump:\n * - `feat!:` or `BREAKING CHANGE` → major version bump\n * - `feat:` → minor version bump\n * - `fix:` → patch version bump\n *\n * Only applies when no explicit version flags (--patch, --minor, --major) are provided.\n *\n * @default false\n * @example\n * ```json\n * {\n * \"teambit.git/ci\": {\n * \"useConventionalCommitsForVersionBump\": true\n * }\n * }\n * ```\n */\n useConventionalCommitsForVersionBump?: boolean;\n\n /**\n * Enables detection of explicit version bump keywords in commit messages.\n * When enabled, the system looks for these keywords in commit messages:\n * - `BIT-BUMP-MAJOR` → major version bump\n * - `BIT-BUMP-MINOR` → minor version bump\n *\n * These keywords have higher priority than conventional commits parsing.\n * Only applies when no explicit version flags are provided.\n *\n * @default true\n * @example\n * ```json\n * {\n * \"teambit.git/ci\": {\n * \"useExplicitBumpKeywords\": true\n * }\n * }\n * ```\n */\n useExplicitBumpKeywords?: boolean;\n}\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 private config: CiWorkspaceConfig\n ) {}\n\n static async provider(\n [cli, workspace, loggerAspect, builder, status, lanes, snapping, exporter, importer, checkout]: [\n CLIMain,\n Workspace,\n LoggerMain,\n BuilderMain,\n StatusMain,\n LanesMain,\n SnappingMain,\n ExportMain,\n ImporterMain,\n CheckoutMain,\n ],\n config: CiWorkspaceConfig\n ) {\n const logger = loggerAspect.createLogger(CiAspect.id);\n const ci = new CiMain(workspace, builder, status, lanes, snapping, exporter, importer, checkout, logger, config);\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 /**\n * Converts a branch name to a lane ID string using Bit's naming conventions.\n * Sanitizes branch name by replacing slashes and dots with dashes, converting to lowercase, then\n * prefixes with the workspace's default scope.\n *\n * @param branchName - The git branch name to convert\n * @returns Lane ID in format: {defaultScope}/{sanitizedBranch}\n * @example convertBranchToLaneId(\"feature/New-Component\") => \"my-scope/feature-new-component\"\n */\n convertBranchToLaneId(branchName: string): string {\n // Sanitize branch name to make it valid for Bit lane IDs by replacing slashes and dots with dashes\n // and converting to lowercase\n const sanitizedBranch = branchName.replace(/[/.]/g, '-').toLowerCase();\n return `${this.workspace.defaultScope}/${sanitizedBranch}`;\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 parseVersionBumpFromCommit(commitMessage: string): ReleaseType | null {\n // Check explicit bump keywords (highest priority after env vars)\n if (this.config.useExplicitBumpKeywords !== false) {\n // default to true\n if (commitMessage.includes('BIT-BUMP-MAJOR')) {\n this.logger.console(chalk.blue('Found BIT-BUMP-MAJOR keyword in commit message'));\n return 'major';\n }\n if (commitMessage.includes('BIT-BUMP-MINOR')) {\n this.logger.console(chalk.blue('Found BIT-BUMP-MINOR keyword in commit message'));\n return 'minor';\n }\n }\n\n // Check conventional commits if enabled\n if (this.config.useConventionalCommitsForVersionBump) {\n // Check for breaking changes (major version bump)\n if (/^feat!(\\(.+\\))?:|^fix!(\\(.+\\))?:|BREAKING CHANGE/m.test(commitMessage)) {\n this.logger.console(chalk.blue('Found breaking changes in commit message (conventional commits)'));\n return 'major';\n }\n\n // Check for features (minor version bump)\n if (/^feat(\\(.+\\))?:/m.test(commitMessage)) {\n this.logger.console(chalk.blue('Found feature commits (conventional commits)'));\n return 'minor';\n }\n\n // Check for fixes (patch version bump) - explicit patch not needed as it's default\n if (/^fix(\\(.+\\))?:/m.test(commitMessage)) {\n this.logger.console(chalk.blue('Found fix commits (conventional commits) - using default patch'));\n return 'patch';\n }\n }\n\n return null; // No specific version bump detected\n }\n\n private async getCustomCommitMessage() {\n try {\n const commitMessageScript = this.config.commitMessageScript;\n\n if (commitMessageScript) {\n this.logger.console(chalk.blue(`Running custom commit message script: ${commitMessageScript}`));\n\n // Parse the command to avoid shell injection\n const parts = commitMessageScript.split(' ');\n const command = parts[0];\n const args = parts.slice(1);\n\n const result = await execa(command, args, {\n cwd: this.workspace.path,\n encoding: 'utf8',\n });\n const customMessage = result.stdout.trim();\n\n if (customMessage) {\n this.logger.console(chalk.green(`Using custom commit message: ${customMessage}`));\n return customMessage;\n }\n }\n } catch (e: any) {\n this.logger.console(chalk.yellow(`Failed to run custom commit message script: ${e.toString()}`));\n }\n\n // Fallback to default message\n return 'chore: update .bitmap and lockfiles as needed [skip ci]';\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\n const status = await this.status.status({ lanes: true });\n const { data: statusOutput, code } = await this.status.formatStatusOutput(\n status,\n strict\n ? { strict: true, warnings: true } // When strict=true, fail on both errors and warnings\n : { failOnError: true, warnings: false } // By default, fail only on errors (tag blockers)\n );\n\n // Log the formatted status output\n this.logger.console(statusOutput);\n\n if (code !== 0) {\n throw new Error('Workspace status verification failed');\n }\n\n this.logger.consoleSuccess(chalk.green('Workspace status is correct'));\n return { status };\n }\n\n private async switchToLane(laneName: string, options: SwitchLaneOptions = {}) {\n this.logger.console(chalk.blue(`Switching to ${laneName}`));\n try {\n await this.lanes.switchLanes(laneName, {\n forceOurs: true,\n head: true,\n workspaceOnly: true,\n skipDependencyInstallation: true,\n ...options,\n });\n } catch (e: any) {\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 switching to ${laneName}: ${e.toString()}`));\n }\n }\n\n async verifyWorkspaceStatus() {\n await this.verifyWorkspaceStatusInternal();\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 dryRun,\n }: {\n laneIdStr: string;\n message: string;\n build: boolean | undefined;\n strict: boolean | undefined;\n dryRun?: boolean;\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 await this.verifyWorkspaceStatusInternal(strict);\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\n // Use unique temp lane name to avoid race conditions when multiple CI jobs run concurrently\n const tempLaneName = `${laneId.name}-${generateRandomStr(5)}`;\n\n let foundErr: Error | undefined;\n let renamedToFinalName = false;\n try {\n const createLaneResult = await this.lanes.createLane(tempLaneName, {\n scope: laneId.scope,\n forkLaneNewScope: true,\n });\n this.logger.console(\n chalk.blue(`Created temporary lane ${laneId.scope}/${tempLaneName} (hash: ${createLaneResult.hash})`)\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 !== tempLaneName) {\n throw new Error(\n `Expected to be on lane ${tempLaneName} after creation, but current lane is ${currentLane?.name ?? 'main'}`\n );\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 // No changes to snap - switch back to main and remove the temp lane we created\n this.logger.console(chalk.yellow('No changes detected, removing temporary lane'));\n await this.switchToLane(originalLane?.name ?? 'main');\n await this.lanes.removeLanes([tempLaneName], { remote: false, force: true });\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 if (dryRun) {\n this.logger.console(chalk.yellow('🏃 Dry-run mode: skipping export, lane deletion, and rename'));\n this.logger.console(chalk.green(`Snapped ${snappedComponents.length} component(s) successfully`));\n this.logger.console(\n chalk.blue(\n `Temporary lane \"${laneId.scope}/${tempLaneName}\" kept for debugging. Remove it with: bit lane remove ${laneId.scope}/${tempLaneName}`\n )\n );\n return snapOutput;\n }\n\n // Finalize atomically: delete existing lane, rename temp lane, export\n this.logger.console('🔄 Finalizing Lane');\n\n // Check if original lane exists on remote and delete it (query by name to avoid fetching all lanes)\n const existingLanes = await this.lanes.getLanes({ remote: laneId.scope, name: laneId.name }).catch((e) => {\n // Lane not found is expected on first run - just means nothing to delete\n if (e.toString().includes('was not found')) {\n return [];\n }\n throw new Error(`Failed to check lane ${laneId.toString()}: ${e.toString()}`);\n });\n\n if (existingLanes.length) {\n this.logger.console(chalk.blue(`Deleting existing remote lane ${laneId.toString()}`));\n const archiveResult = await this.archiveLane(laneId.toString(), true); // throwOnError: delete must succeed before export\n if (archiveResult === 'not-found') {\n // `getLanes` just reported the lane exists, but the delete API says \"not found\". Re-query\n // to confirm. If the lane still shows up, something is off on the remote (delete can't\n // see what list/export can), and retrying will never converge.\n let stillExists;\n try {\n stillExists = await this.lanes.getLanes({ remote: laneId.scope, name: laneId.name });\n } catch (verifyErr: any) {\n throw new Error(\n `failed to verify whether remote lane ${laneId.toString()} still exists after delete returned \"not found\": ${verifyErr?.message || verifyErr}`\n );\n }\n if (stillExists.length) {\n throw new Error(\n `unable to delete remote lane ${laneId.toString()}: the remote reports the lane as \"not found\" from ` +\n `the delete API but still lists it from the query API. maybe this is a remote issue on bit.cloud. ` +\n `please contact support or manually delete the lane on bit.cloud before re-running CI.`\n );\n }\n }\n }\n\n // Rename temp lane to original name\n this.logger.console(chalk.blue(`Renaming lane from ${tempLaneName} to ${laneId.name}`));\n await this.lanes.rename(laneId.name, tempLaneName);\n renamedToFinalName = true;\n\n // Export with the correct name. Retry on hash-mismatch, which indicates a concurrent CI job\n // pushed the same lane id between our pre-export delete and our merge on the hub.\n this.logger.console(chalk.blue(`Exporting ${snappedComponents.length} components`));\n const exportResults = await this.exportWithRetryOnLaneHashMismatch(laneId.toString());\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 // Always switch back to the original lane\n this.logger.console('🔄 Cleanup');\n const targetLane = originalLane?.name ?? 'main';\n this.logger.console(chalk.blue(`Switching back to ${targetLane}`));\n\n const currentLane = await this.lanes.getCurrentLane();\n if (currentLane) {\n await this.switchToLane(targetLane);\n } else {\n this.logger.console(chalk.yellow('Already on main, checking out to head'));\n await this.lanes.checkout.checkout({ head: true, skipNpmInstall: true });\n }\n\n // Clean up orphaned temporary lane on error. Skip if the rename to the final name already\n // happened - in that case the temp name no longer exists locally, and the lane under the\n // final name may have been partially exported; leave it alone rather than wipe evidence.\n if (foundErr && !renamedToFinalName) {\n const tempLaneFullName = `${laneId.scope}/${tempLaneName}`;\n this.logger.console(chalk.blue(`Cleaning up temporary lane ${tempLaneFullName}`));\n try {\n await this.lanes.removeLanes([tempLaneFullName], { remote: false, force: true });\n this.logger.console(chalk.green(`Removed temporary lane ${tempLaneFullName}`));\n } catch (cleanupErr: any) {\n // Ignore cleanup errors to avoid masking the original error\n this.logger.console(chalk.yellow(`Failed to clean up temporary lane: ${cleanupErr?.message || cleanupErr}`));\n }\n }\n }\n }\n\n async mergePr({\n message: argMessage,\n build,\n strict,\n releaseType,\n preReleaseId,\n incrementBy,\n explicitVersionBump,\n verbose,\n versionsFile,\n autoMergeResolve,\n forceTheirs,\n laneName,\n skipPush,\n noBitmapCommit,\n }: {\n message?: string;\n build?: boolean;\n strict?: boolean;\n releaseType: ReleaseType;\n preReleaseId?: string;\n incrementBy?: number;\n explicitVersionBump?: boolean;\n verbose?: boolean;\n versionsFile?: string;\n autoMergeResolve?: MergeStrategy;\n forceTheirs?: boolean;\n laneName?: string;\n skipPush?: boolean;\n noBitmapCommit?: boolean;\n }) {\n // Capture the initial commit SHA before any operations modify the repository\n const initialCommitSha = await git.revparse(['HEAD']);\n\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 const laneComponents = currentLane?.components;\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 is needed to make sure components that were created on the lane are now available on main.\n // without this, the switch to main above, marks those components as not-available, and won't be tagged later on.\n // don't use the high-level `consumer.resetLaneNew()`, because it deletes the entire local scope.\n const changedIds = this.workspace.consumer.bitMap.resetLaneComponentsToNew();\n if (changedIds.length) {\n const changedIdsList = ComponentIdList.fromArray(changedIds);\n await this.workspace.scope.legacyScope.removeMany(changedIdsList, true);\n\n await this.workspace.clearCache();\n await this.workspace.bitMap.write('reset lane new');\n }\n\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\n // Check if there are any changes to stash before rebasing\n const gitStatus = await git.status();\n const hasChanges = gitStatus.files.length > 0;\n\n if (hasChanges) {\n this.logger.console(chalk.yellow('Stashing uncommitted changes before rebase'));\n await git.stash(['push', '-u', '-m', 'CI merge temporary stash']);\n }\n\n await git.pull('origin', defaultBranch, { '--rebase': 'true' });\n\n if (hasChanges) {\n this.logger.console(chalk.yellow('Restoring stashed changes after rebase'));\n await git.stash(['pop']);\n }\n\n this.logger.console(chalk.green('Pulled latest git changes'));\n\n this.logger.console('🔄 Checking out to main head');\n await this.importer.importCurrentObjects();\n\n const checkoutProps = {\n forceOurs: !forceTheirs && !autoMergeResolve, // only force ours if neither forceTheirs nor autoMergeResolve is specified\n head: true,\n skipNpmInstall: true,\n ...(forceTheirs && { forceTheirs }),\n ...(autoMergeResolve && { mergeStrategy: autoMergeResolve }),\n };\n const checkoutResults = await this.checkout.checkout(checkoutProps);\n\n await this.workspace.bitMap.write('checkout head');\n this.logger.console(reportToString(checkoutOutput(checkoutResults, checkoutProps)));\n\n if (laneComponents?.length) {\n await this.restoreLaneConfigChanges(laneComponents);\n }\n\n // Check for workspace.jsonc conflicts\n if (\n checkoutResults.workspaceConfigUpdateResult?.workspaceDepsConflicts ||\n checkoutResults.workspaceConfigUpdateResult?.workspaceConfigConflictWriteError\n ) {\n this.logger.console(chalk.red('❌ workspace.jsonc conflicts detected during checkout'));\n this.logger.console(chalk.blue('\\nTo resolve these conflicts, please run:'));\n this.logger.console(chalk.bold(' bit checkout head'));\n this.logger.console(chalk.gray('\\nThis will allow you to manually resolve the conflicts in workspace.jsonc.'));\n\n throw new Error(\n 'Cannot complete CI merge due to workspace.jsonc conflicts. Please run \"bit checkout head\" and fix the conflicts manually.'\n );\n }\n\n // Check for conflicts when using manual merge strategy\n if (autoMergeResolve === 'manual' && checkoutResults.leftUnresolvedConflicts) {\n const componentsWithConflicts =\n checkoutResults.components?.filter(\n (c) => c.filesStatus && Object.values(c.filesStatus).some((status) => status === 'manual')\n ) || [];\n\n const conflictedComponentIds = componentsWithConflicts.map((c) => c.id.toString());\n\n this.logger.console(chalk.red('❌ Merge conflicts detected during checkout'));\n this.logger.console(chalk.yellow('The following components have conflicts:'));\n conflictedComponentIds.forEach((id) => {\n this.logger.console(chalk.yellow(` - ${id}`));\n });\n this.logger.console(chalk.blue('\\nTo resolve these conflicts, please run:'));\n this.logger.console(chalk.bold(' bit checkout head'));\n this.logger.console(chalk.gray('\\nThis will allow you to manually resolve the conflicts.'));\n\n throw new Error(\n 'Cannot complete CI merge due to unresolved conflicts. Please resolve conflicts manually and try again.'\n );\n }\n\n const { status } = await this.verifyWorkspaceStatusInternal(strict);\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 finalReleaseType = await this.determineReleaseType(releaseType, explicitVersionBump);\n const tagResults = await this.snapping.tag({\n all: true,\n message,\n build,\n failFast: true,\n persist: hasSoftTaggedComponents,\n releaseType: finalReleaseType,\n preReleaseId,\n incrementBy,\n versionsFile,\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 if (noBitmapCommit) {\n this.logger.console(\n chalk.yellow(\n 'Skipping bitmap commit (--no-bitmap-commit flag). The new versions are in scope; no git commit will be created on the default branch.'\n )\n );\n this.logger.console(\n chalk.gray(\n 'Developers auto-sync their local .bitmap on the next bit command after `git pull` when `bitmapAutoSync: true` is set in workspace.jsonc.'\n )\n );\n } else {\n await this.commitAndPushBitmapChanges({ verbose, skipPush, defaultBranch });\n }\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 // Enhanced lane cleanup logic\n await this.performLaneCleanup(currentLane, laneName, initialCommitSha);\n\n return { code: 0, data: '' };\n }\n\n /**\n * Stage every changed file (post-tag/export the bitmap, lockfiles, and any files\n * touched by `bit checkout head` may differ), commit with the configured message,\n * rebase against origin, and push — unless `skipPush` was passed.\n */\n private async commitAndPushBitmapChanges({\n verbose,\n skipPush,\n defaultBranch,\n }: {\n verbose?: boolean;\n skipPush?: boolean;\n defaultBranch: string;\n }) {\n this.logger.console('🔄 Git Operations');\n await git.addConfig('user.email', 'bit-ci[bot]@bit.cloud');\n await git.addConfig('user.name', 'Bit CI');\n\n const statusBeforeCommit = await git.status();\n this.logger.console(chalk.blue(`Git status before commit: ${statusBeforeCommit.files.length} files`));\n statusBeforeCommit.files.forEach((file) => {\n this.logger.console(chalk.gray(` ${file.working_dir}${file.index} ${file.path}`));\n });\n\n if (verbose && statusBeforeCommit.files.length > 0) {\n try {\n const diff = await git.diff();\n if (diff) {\n this.logger.console(chalk.blue('Git diff before commit:'));\n this.logger.console(diff);\n }\n } catch (error) {\n this.logger.console(chalk.yellow(`Failed to show git diff: ${error}`));\n }\n }\n\n // Stage everything: `bit checkout head` earlier in the flow may modify files\n // beyond .bitmap and pnpm-lock.yaml, so a narrow `git add` would miss them.\n await git.add(['.']);\n const commitMessage = await this.getCustomCommitMessage();\n await git.commit(commitMessage);\n\n const statusAfterCommit = await git.status();\n this.logger.console(chalk.blue(`Git status after commit: ${statusAfterCommit.files.length} files`));\n statusAfterCommit.files.forEach((file) => {\n this.logger.console(chalk.gray(` ${file.working_dir}${file.index} ${file.path}`));\n });\n\n await git.pull('origin', defaultBranch, { '--rebase': 'true' });\n if (skipPush) {\n this.logger.console(chalk.yellow('Skipping git push (--skip-push flag)'));\n return;\n }\n await git.push('origin', defaultBranch);\n }\n\n /**\n * Compare lane Version extensions with main Version extensions for each component.\n * Any config differences (e.g. env-set, deps-set) are saved to .bitmap so they survive\n * the switch from lane to main and get included in the subsequent tag.\n */\n private async restoreLaneConfigChanges(laneComponents: LaneComponent[]) {\n const scope = this.workspace.scope.legacyScope;\n const repo = scope.objects;\n let hasChanges = false;\n\n const activeComponents = laneComponents.filter((c) => !c.isDeleted);\n await Promise.all(\n activeComponents.map(async (laneComp) => {\n const laneVersion = (await repo.load(laneComp.head)) as Version;\n if (!laneVersion) {\n this.logger.console(chalk.yellow(`Warning: could not load Version object for ${laneComp.id.toString()}`));\n return;\n }\n\n const laneConfig = laneVersion.extensions.toConfigObject();\n if (!laneConfig || Object.keys(laneConfig).length === 0) return;\n\n // Get main Version for comparison\n let mainConfig: Record<string, any> = {};\n const modelComp = await scope.getModelComponentIfExist(laneComp.id.changeVersion(undefined));\n const mainHead = modelComp?.getHead();\n if (mainHead) {\n const mainVersion = (await repo.load(mainHead)) as Version;\n mainConfig = mainVersion?.extensions.toConfigObject() ?? {};\n }\n\n for (const [aspectId, config] of Object.entries(laneConfig)) {\n if (!isEqual(config, mainConfig[aspectId])) {\n const updated = this.workspace.bitMap.addComponentConfig(\n laneComp.id,\n aspectId,\n config as Record<string, any>\n );\n if (updated) hasChanges = true;\n }\n }\n })\n );\n\n if (hasChanges) {\n await this.workspace.bitMap.write('restore lane config');\n await this.workspace.clearCache();\n this.logger.console(chalk.blue('Restored config changes from lane'));\n }\n }\n\n /**\n * Performs lane cleanup by attempting to detect and delete the source lane\n * after a successful merge, even when running on the main branch\n */\n private async performLaneCleanup(currentLane: any, explicitLaneName?: string, initialCommitSha?: string) {\n this.logger.console('🗑️ Lane Cleanup');\n\n // If we already have a current lane, use it\n if (currentLane) {\n this.logger.console(chalk.blue(`Found current lane: ${currentLane.name}`));\n const laneId = currentLane.id();\n await this.archiveLane(laneId.toString());\n return;\n }\n\n // If no current lane but explicit lane name provided, try to delete it\n if (explicitLaneName) {\n this.logger.console(chalk.blue(`Using explicitly provided lane name: ${explicitLaneName}`));\n try {\n const laneId = await this.lanes.parseLaneId(explicitLaneName);\n await this.archiveLane(laneId.toString());\n return;\n } catch (e: any) {\n this.logger.console(chalk.yellow(`Failed to parse lane name '${explicitLaneName}': ${e.message}`));\n }\n }\n\n // Try to auto-detect source branch/lane name using the dedicated detector\n const sourceBranchDetector = new SourceBranchDetector(this.logger);\n const sourceBranchName = await sourceBranchDetector.getSourceBranchName(initialCommitSha);\n if (!sourceBranchName) {\n this.logger.console(chalk.yellow('No current lane and unable to detect source branch - skipping lane cleanup'));\n return;\n }\n try {\n const laneIdStr = this.convertBranchToLaneId(sourceBranchName);\n\n this.logger.console(\n chalk.blue(`Attempting to delete lane based on source branch: ${sourceBranchName} -> ${laneIdStr}`)\n );\n\n const laneId = await this.lanes.parseLaneId(laneIdStr);\n await this.archiveLane(laneId.toString());\n } catch (e: any) {\n this.logger.console(\n chalk.yellow(`Error during lane cleanup for source branch '${sourceBranchName}': ${e.message}`)\n );\n }\n }\n\n /**\n * Export with retry on lane hash-mismatch, caused by a concurrent `bit ci pr` run pushing the\n * same lane id between our pre-export delete and the hub's merge (the export takes 1-2 minutes,\n * plenty of time to race). Before each retry we skip if the PR branch has advanced past our\n * commit - in that case a newer run will publish the correct lane, and retrying with our older\n * snaps would regress the PR preview.\n */\n private async exportWithRetryOnLaneHashMismatch(laneIdStr: string, maxAttempts = 3) {\n const isHashMismatchErr = (err: any) => (err?.message || err?.toString() || '').includes(LANE_HASH_MISMATCH_MARKER);\n\n for (let attempt = 1; attempt <= maxAttempts; attempt += 1) {\n try {\n return await this.exporter.export();\n } catch (e: any) {\n if (!isHashMismatchErr(e) || attempt === maxAttempts) throw e;\n this.logger.console(\n chalk.yellow(\n `Export attempt ${attempt}/${maxAttempts} failed with lane hash mismatch on \"${laneIdStr}\" (likely a concurrent CI push). Deleting remote lane and retrying.`\n )\n );\n try {\n await this.archiveLane(laneIdStr, true);\n } catch (archiveErr: any) {\n // Preserve the original export error - rethrowing the archive error would hide the real\n // reason the push was rejected.\n this.logger.console(\n chalk.yellow(\n `Failed to delete remote lane \"${laneIdStr}\" while recovering from hash mismatch: ${archiveErr?.message || archiveErr}. Rethrowing the original export error.`\n )\n );\n if (e && typeof e === 'object' && (e as any).cause == null) {\n (e as any).cause = archiveErr;\n }\n throw e;\n }\n }\n }\n throw new Error(`exportWithRetryOnLaneHashMismatch: exhausted ${maxAttempts} attempts for lane ${laneIdStr}`);\n }\n\n /**\n * Archives (deletes) a lane with proper error handling and logging.\n * @param throwOnError - if true, throws on failure (use for critical operations like pre-export cleanup)\n */\n private async archiveLane(laneId: string, throwOnError = false): Promise<'deleted' | 'not-found' | 'error'> {\n try {\n this.logger.console(chalk.blue(`Archiving lane ${laneId}`));\n // force means to remove the lane even if it was not merged. in this case, we don't care much because main already has the changes.\n const archiveLane = await this.lanes.removeLanes([laneId], { remote: true, force: true });\n if (archiveLane.length) {\n this.logger.console(chalk.green(`Lane '${laneId}' archived successfully`));\n return 'deleted';\n }\n this.logger.console(chalk.yellow(`Failed to archive lane '${laneId}' - no lanes were removed`));\n return 'not-found';\n } catch (e: any) {\n if (e.message?.includes('was not found') || e.toString().includes('was not found')) {\n this.logger.console(chalk.yellow(`Lane '${laneId}' was not found on the remote`));\n return 'not-found';\n }\n this.logger.console(chalk.red(`Error archiving lane '${laneId}': ${e.message}`));\n if (throwOnError) {\n throw new Error(`Failed to delete remote lane '${laneId}': ${e.message}`);\n }\n return 'error';\n // Don't throw the error - lane cleanup is not critical to the merge process\n }\n }\n\n /**\n * Auto-detect version bump from commit messages if no explicit version bump was provided\n */\n private async determineReleaseType(releaseType: ReleaseType, explicitVersionBump?: boolean): Promise<ReleaseType> {\n if (explicitVersionBump) {\n this.logger.console(chalk.blue(`Using explicit version bump: ${releaseType}`));\n return releaseType;\n }\n // Only auto-detect if user didn't specify any version flags\n const lastCommit = await this.getGitCommitMessage();\n if (!lastCommit) {\n this.logger.console(chalk.blue('No commit message found, using default patch'));\n return releaseType;\n }\n const detectedReleaseType = this.parseVersionBumpFromCommit(lastCommit);\n if (detectedReleaseType) {\n this.logger.console(chalk.green(`Auto-detected version bump: ${detectedReleaseType}`));\n return detectedReleaseType;\n }\n this.logger.console(chalk.blue('No specific version bump detected, using default patch'));\n return releaseType;\n }\n}\n\nfunction reportToString(result: string | { data: string }): string {\n return typeof result === 'string' ? result : result.data;\n}\n\nCiAspect.addRuntime(CiMain);\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  ;
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.git_ci@1.0.352/dist/ci.docs.mdx';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.git_ci@1.0.354/dist/ci.docs.mdx';
3
3
 
4
4
  export const compositions = [];
5
5
  export const overview = [overview_0];
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/ci",
3
- "version": "1.0.352",
3
+ "version": "1.0.354",
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": "1.0.352"
9
+ "version": "1.0.354"
10
10
  },
11
11
  "dependencies": {
12
12
  "chalk": "4.1.2",
@@ -21,15 +21,15 @@
21
21
  "@teambit/component.modules.merge-helper": "0.0.54",
22
22
  "@teambit/toolbox.string.random": "0.0.13",
23
23
  "@teambit/bit-error": "0.0.404",
24
- "@teambit/workspace": "1.0.972",
25
- "@teambit/builder": "1.0.972",
26
- "@teambit/checkout": "1.0.973",
27
- "@teambit/export": "1.0.972",
28
- "@teambit/importer": "1.0.972",
29
- "@teambit/lanes": "1.0.988",
30
- "@teambit/objects": "0.0.479",
31
- "@teambit/snapping": "1.0.972",
32
- "@teambit/status": "1.0.992"
24
+ "@teambit/workspace": "1.0.973",
25
+ "@teambit/builder": "1.0.973",
26
+ "@teambit/checkout": "1.0.974",
27
+ "@teambit/export": "1.0.973",
28
+ "@teambit/importer": "1.0.973",
29
+ "@teambit/lanes": "1.0.989",
30
+ "@teambit/objects": "0.0.480",
31
+ "@teambit/snapping": "1.0.973",
32
+ "@teambit/status": "1.0.993"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@types/lodash": "4.14.165",