@eldrforge/kodrdriv 0.0.37 → 0.0.39

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.
@@ -159,6 +159,8 @@ const execute = async (runConfig)=>{
159
159
  });
160
160
  // Track whether the publish process completed successfully
161
161
  let publishCompleted = false;
162
+ // Track whether we've unlinked packages (and thus need to restore them)
163
+ let packagesUnlinked = false;
162
164
  // Run prechecks before starting any work
163
165
  await runPrechecks(runConfig);
164
166
  logger.info('Starting release process...');
@@ -169,6 +171,7 @@ const execute = async (runConfig)=>{
169
171
  if (shouldUnlink) {
170
172
  logger.verbose('Unlinking workspace packages...');
171
173
  await execute$1(runConfig);
174
+ packagesUnlinked = true;
172
175
  } else {
173
176
  logger.verbose('Skipping unlink workspace packages (disabled in config).');
174
177
  }
@@ -283,7 +286,25 @@ const execute = async (runConfig)=>{
283
286
  if (isDryRun) {
284
287
  logger.info(`Would merge PR #${pr.number} using ${mergeMethod} method`);
285
288
  } else {
286
- await mergePullRequest(pr.number, mergeMethod);
289
+ try {
290
+ await mergePullRequest(pr.number, mergeMethod);
291
+ } catch (error) {
292
+ // Check if this is a merge conflict error
293
+ if (error.message && (error.message.includes('not mergeable') || error.message.includes('Pull Request is not mergeable') || error.message.includes('merge conflict'))) {
294
+ logger.error(`❌ Pull Request #${pr.number} has merge conflicts that need to be resolved.`);
295
+ logger.error('');
296
+ logger.error('📋 To resolve this issue:');
297
+ logger.error(` 1. Visit the Pull Request: ${pr.html_url}`);
298
+ logger.error(' 2. Resolve the merge conflicts through GitHub\'s web interface or locally');
299
+ logger.error(' 3. Once conflicts are resolved, re-run the publish command');
300
+ logger.error('');
301
+ logger.error('💡 The command will automatically detect the existing PR and continue from where it left off.');
302
+ throw new Error(`Merge conflicts detected in PR #${pr.number}. Please resolve conflicts and re-run the command.`);
303
+ } else {
304
+ // Re-throw other merge errors
305
+ throw error;
306
+ }
307
+ }
287
308
  }
288
309
  logger.info('Checking out main branch...');
289
310
  await runWithDryRunSupport('git checkout main', isDryRun);
@@ -458,18 +479,13 @@ const execute = async (runConfig)=>{
458
479
  publishCompleted = true; // Mark as completed only if we reach this point
459
480
  } finally{
460
481
  var _runConfig_publish11;
461
- // Always restore linked packages if enabled, regardless of success/failure
462
- // This ensures we don't leave the repository with file: dependencies
482
+ // Link packages if linking is enabled, regardless of whether we unlinked them
463
483
  const shouldLink = ((_runConfig_publish11 = runConfig.publish) === null || _runConfig_publish11 === void 0 ? void 0 : _runConfig_publish11.linkWorkspacePackages) !== false; // default to true
464
484
  if (shouldLink) {
465
- if (publishCompleted) {
466
- logger.verbose('Restoring linked packages after successful publish...');
467
- } else {
468
- logger.verbose('Restoring linked packages after failed publish to avoid leaving file: dependencies...');
469
- }
485
+ logger.verbose('Ensuring linked packages are properly set up...');
470
486
  await execute$4(runConfig);
471
487
  } else {
472
- logger.verbose('Skipping restore linked packages (disabled in config).');
488
+ logger.verbose('Skipping link packages (disabled in config).');
473
489
  }
474
490
  }
475
491
  };
@@ -1 +1 @@
1
- {"version":3,"file":"publish.js","sources":["../../src/commands/publish.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\nimport path from 'path';\nimport * as Commit from './commit';\nimport * as Diff from '../content/diff';\nimport * as Release from './release';\nimport * as Link from './link';\nimport * as Unlink from './unlink';\nimport { getLogger, getDryRunLogger } from '../logging';\nimport { Config, PullRequest } from '../types';\nimport { run, runWithDryRunSupport } from '../util/child';\nimport * as GitHub from '../util/github';\nimport { create as createStorage } from '../util/storage';\nimport { incrementPatchVersion, getOutputPath } from '../util/general';\nimport { DEFAULT_OUTPUT_DIRECTORY } from '../constants';\nimport { safeJsonParse, validatePackageJson } from '../util/validation';\n\nconst scanNpmrcForEnvVars = async (storage: any): Promise<string[]> => {\n const logger = getLogger();\n const npmrcPath = path.join(process.cwd(), '.npmrc');\n const envVars: string[] = [];\n\n if (await storage.exists(npmrcPath)) {\n try {\n const npmrcContent = await storage.readFile(npmrcPath, 'utf-8');\n // Match environment variable patterns like ${VAR_NAME} or $VAR_NAME\n const envVarMatches = npmrcContent.match(/\\$\\{([^}]+)\\}|\\$([A-Z_][A-Z0-9_]*)/g);\n\n if (envVarMatches) {\n for (const match of envVarMatches) {\n // Extract variable name from ${VAR_NAME} or $VAR_NAME format\n const varName = match.replace(/\\$\\{|\\}|\\$/g, '');\n if (varName && !envVars.includes(varName)) {\n envVars.push(varName);\n }\n }\n }\n\n } catch (error: any) {\n logger.warn(`Failed to read .npmrc file at ${npmrcPath}: ${error.message}`);\n logger.verbose('This may affect environment variable detection for publishing');\n }\n } else {\n logger.debug('.npmrc file not found, skipping environment variable scan');\n }\n\n return envVars;\n};\n\nconst validateEnvironmentVariables = (requiredEnvVars: string[], isDryRun: boolean): void => {\n const logger = getDryRunLogger(isDryRun);\n const missingEnvVars: string[] = [];\n\n for (const envVar of requiredEnvVars) {\n if (!process.env[envVar]) {\n missingEnvVars.push(envVar);\n }\n }\n\n if (missingEnvVars.length > 0) {\n if (isDryRun) {\n logger.warn(`Missing required environment variables: ${missingEnvVars.join(', ')}`);\n } else {\n logger.error(`Missing required environment variables: ${missingEnvVars.join(', ')}`);\n throw new Error(`Missing required environment variables: ${missingEnvVars.join(', ')}. Please set these environment variables before running publish.`);\n }\n }\n};\n\nconst runPrechecks = async (runConfig: Config): Promise<void> => {\n const isDryRun = runConfig.dryRun || false;\n const logger = getDryRunLogger(isDryRun);\n const storage = createStorage({ log: logger.info });\n\n logger.info('Running prechecks...');\n\n // Check if we're in a git repository\n try {\n if (isDryRun) {\n logger.info('Would check git repository with: git rev-parse --git-dir');\n } else {\n await run('git rev-parse --git-dir');\n }\n\n } catch (error) {\n if (!isDryRun) {\n throw new Error('Not in a git repository. Please run this command from within a git repository.');\n }\n }\n\n // Check for uncommitted changes\n logger.info('Checking for uncommitted changes...');\n try {\n if (isDryRun) {\n logger.info('Would check git status with: git status --porcelain');\n } else {\n const { stdout } = await run('git status --porcelain');\n if (stdout.trim()) {\n throw new Error('Working directory has uncommitted changes. Please commit or stash your changes before running publish.');\n }\n }\n\n } catch (error) {\n if (!isDryRun) {\n throw new Error('Failed to check git status. Please ensure you are in a valid git repository.');\n }\n }\n\n // Check if we're on a release branch\n logger.info('Checking current branch...');\n if (isDryRun) {\n logger.info('Would verify current branch is a release branch (starts with \"release/\")');\n } else {\n const currentBranch = await GitHub.getCurrentBranchName();\n if (!currentBranch.startsWith('release/')) {\n throw new Error(`Current branch '${currentBranch}' is not a release branch. Please switch to a release branch (e.g., release/1.0.0) before running publish.`);\n }\n }\n\n // Check if prepublishOnly script exists in package.json\n logger.info('Checking for prepublishOnly script...');\n const packageJsonPath = path.join(process.cwd(), 'package.json');\n\n if (!await storage.exists(packageJsonPath)) {\n if (!isDryRun) {\n throw new Error('package.json not found in current directory.');\n } else {\n logger.warn('package.json not found in current directory.');\n }\n } else {\n let packageJson;\n try {\n const packageJsonContents = await storage.readFile(packageJsonPath, 'utf-8');\n const parsed = safeJsonParse(packageJsonContents, packageJsonPath);\n packageJson = validatePackageJson(parsed, packageJsonPath);\n\n } catch (error) {\n if (!isDryRun) {\n throw new Error('Failed to parse package.json. Please ensure it contains valid JSON.');\n } else {\n logger.warn('Failed to parse package.json. Please ensure it contains valid JSON.');\n }\n }\n\n if (packageJson && !packageJson.scripts?.prepublishOnly) {\n if (!isDryRun) {\n throw new Error('prepublishOnly script is required in package.json but was not found. Please add a prepublishOnly script that runs your pre-flight checks (e.g., clean, lint, build, test).');\n } else {\n logger.warn('prepublishOnly script is required in package.json but was not found.');\n }\n }\n }\n\n // Check required environment variables\n logger.verbose('Checking required environment variables...');\n const coreRequiredEnvVars = runConfig.publish?.requiredEnvVars || [];\n const npmrcEnvVars = isDryRun ? [] : await scanNpmrcForEnvVars(storage); // Skip .npmrc scan in dry run\n const allRequiredEnvVars = [...new Set([...coreRequiredEnvVars, ...npmrcEnvVars])];\n\n if (allRequiredEnvVars.length > 0) {\n logger.verbose(`Required environment variables: ${allRequiredEnvVars.join(', ')}`);\n validateEnvironmentVariables(allRequiredEnvVars, isDryRun);\n } else {\n logger.verbose('No required environment variables specified.');\n }\n\n logger.info('All prechecks passed.');\n};\n\nexport const execute = async (runConfig: Config): Promise<void> => {\n const isDryRun = runConfig.dryRun || false;\n const logger = getDryRunLogger(isDryRun);\n const storage = createStorage({ log: logger.info });\n\n // Track whether the publish process completed successfully\n let publishCompleted = false;\n\n // Run prechecks before starting any work\n await runPrechecks(runConfig);\n\n logger.info('Starting release process...');\n\n try {\n // Unlink all workspace packages before starting (if enabled)\n const shouldUnlink = runConfig.publish?.unlinkWorkspacePackages !== false; // default to true\n if (shouldUnlink) {\n logger.verbose('Unlinking workspace packages...');\n await Unlink.execute(runConfig);\n } else {\n logger.verbose('Skipping unlink workspace packages (disabled in config).');\n }\n\n let pr: PullRequest | null = null;\n\n if (isDryRun) {\n logger.info('Would check for existing pull request');\n logger.info('Assuming no existing PR found for demo purposes');\n } else {\n const branchName = await GitHub.getCurrentBranchName();\n pr = await GitHub.findOpenPullRequestByHeadRef(branchName);\n }\n\n if (pr) {\n logger.info(`Found existing pull request for branch: ${pr.html_url}`);\n } else {\n logger.info('No open pull request found, starting new release publishing process...');\n // 1. Prepare for release\n logger.verbose('Preparing for release: switching from workspace to remote dependencies.');\n\n logger.verbose('Updating dependencies to latest versions from registry');\n const updatePatterns = runConfig.publish?.dependencyUpdatePatterns;\n if (updatePatterns && updatePatterns.length > 0) {\n logger.verbose(`Updating dependencies matching patterns: ${updatePatterns.join(', ')}`);\n const patternsArg = updatePatterns.join(' ');\n await runWithDryRunSupport(`npm update ${patternsArg}`, isDryRun);\n } else {\n logger.verbose('No dependency update patterns specified, updating all dependencies');\n await runWithDryRunSupport('npm update', isDryRun);\n }\n\n logger.verbose('Staging changes for release commit');\n await runWithDryRunSupport('git add package.json package-lock.json', isDryRun);\n\n logger.info('Running prepublishOnly script...');\n await runWithDryRunSupport('npm run prepublishOnly', isDryRun);\n\n logger.verbose('Checking for staged changes...');\n if (isDryRun) {\n logger.verbose('Assuming staged changes exist for demo purposes');\n logger.verbose('Would create commit...');\n await Commit.execute(runConfig);\n } else {\n if (await Diff.hasStagedChanges()) {\n logger.verbose('Staged changes found, creating commit...');\n await Commit.execute(runConfig);\n } else {\n logger.verbose('No changes to commit, skipping commit.');\n }\n }\n\n logger.info('Bumping version...');\n // Manually increment version without creating a tag\n if (isDryRun) {\n logger.info('Would manually increment patch version in package.json and commit');\n } else {\n const packageJsonContents = await storage.readFile('package.json', 'utf-8');\n const parsed = safeJsonParse(packageJsonContents, 'package.json');\n const packageJson = validatePackageJson(parsed, 'package.json');\n const currentVersion = packageJson.version;\n const newVersion = incrementPatchVersion(currentVersion);\n packageJson.version = newVersion;\n await storage.writeFile('package.json', JSON.stringify(packageJson, null, 2) + '\\n', 'utf-8');\n logger.info(`Version bumped from ${currentVersion} to ${newVersion}`);\n\n // Stage and commit the version change\n await run('git add package.json');\n await run(`git commit -m \"chore: bump version to ${newVersion}\"`);\n logger.info(`Version change committed: ${newVersion}`);\n }\n\n logger.info('Generating release notes...');\n const releaseSummary = await Release.execute(runConfig);\n\n if (isDryRun) {\n logger.info('Would write release notes to RELEASE_NOTES.md and RELEASE_TITLE.md in output directory');\n } else {\n const outputDirectory = runConfig.outputDirectory || DEFAULT_OUTPUT_DIRECTORY;\n await storage.ensureDirectory(outputDirectory);\n\n const releaseNotesPath = getOutputPath(outputDirectory, 'RELEASE_NOTES.md');\n const releaseTitlePath = getOutputPath(outputDirectory, 'RELEASE_TITLE.md');\n\n await storage.writeFile(releaseNotesPath, releaseSummary.body, 'utf-8');\n await storage.writeFile(releaseTitlePath, releaseSummary.title, 'utf-8');\n logger.info(`Release notes and title generated and saved to ${releaseNotesPath} and ${releaseTitlePath}.`);\n }\n\n logger.info('Pushing to origin...');\n // Get current branch name and push explicitly to avoid pushing to wrong remote/branch\n const currentBranch = await GitHub.getCurrentBranchName();\n await runWithDryRunSupport(`git push origin ${currentBranch}`, isDryRun);\n\n logger.info('Creating pull request...');\n if (isDryRun) {\n logger.info('Would get commit title and create PR with GitHub API');\n pr = { number: 123, html_url: 'https://github.com/mock/repo/pull/123', labels: [] } as PullRequest;\n } else {\n const { stdout: commitTitle } = await run('git log -1 --pretty=%B');\n pr = await GitHub.createPullRequest(commitTitle, 'Automated release PR.', await GitHub.getCurrentBranchName());\n if (!pr) {\n throw new Error('Failed to create pull request.');\n }\n logger.info(`Pull request created: ${pr.html_url}`);\n }\n }\n\n logger.info(`Waiting for PR #${pr!.number} checks to complete...`);\n if (!isDryRun) {\n // Configure timeout and user confirmation behavior\n const timeout = runConfig.publish?.checksTimeout || 300000; // 5 minutes default\n const senditMode = runConfig.publish?.sendit || false;\n // sendit flag overrides skipUserConfirmation - if sendit is true, skip confirmation\n const skipUserConfirmation = senditMode || runConfig.publish?.skipUserConfirmation || false;\n\n await GitHub.waitForPullRequestChecks(pr!.number, {\n timeout,\n skipUserConfirmation\n });\n }\n\n const mergeMethod = runConfig.publish?.mergeMethod || 'squash';\n if (isDryRun) {\n logger.info(`Would merge PR #${pr!.number} using ${mergeMethod} method`);\n } else {\n await GitHub.mergePullRequest(pr!.number, mergeMethod);\n }\n\n logger.info('Checking out main branch...');\n await runWithDryRunSupport('git checkout main', isDryRun);\n await runWithDryRunSupport('git pull origin main', isDryRun);\n\n // Now create and push the tag on the main branch\n logger.info('Creating release tag...');\n let tagName: string;\n if (isDryRun) {\n logger.info('Would read package.json version and create git tag');\n tagName = 'v1.0.0'; // Mock version for dry run\n } else {\n const packageJsonContents = await storage.readFile('package.json', 'utf-8');\n const { version } = JSON.parse(packageJsonContents);\n tagName = `v${version}`;\n\n // Check if tag already exists locally\n try {\n const { stdout } = await run(`git tag -l ${tagName}`);\n if (stdout.trim() === tagName) {\n logger.info(`Tag ${tagName} already exists locally, skipping tag creation`);\n } else {\n await run(`git tag ${tagName}`);\n logger.info(`Created local tag: ${tagName}`);\n }\n } catch (error) {\n // If git tag -l fails, create the tag anyway\n await run(`git tag ${tagName}`);\n logger.info(`Created local tag: ${tagName}`);\n }\n\n // Check if tag exists on remote before pushing\n let tagWasPushed = false;\n try {\n const { stdout } = await run(`git ls-remote origin refs/tags/${tagName}`);\n if (stdout.trim()) {\n logger.info(`Tag ${tagName} already exists on remote, skipping push`);\n } else {\n await run(`git push origin ${tagName}`);\n logger.info(`Pushed tag to remote: ${tagName}`);\n tagWasPushed = true;\n }\n } catch (error) {\n // If ls-remote fails, try to push anyway (might be a new remote)\n try {\n await run(`git push origin ${tagName}`);\n logger.info(`Pushed tag to remote: ${tagName}`);\n tagWasPushed = true;\n } catch (pushError: any) {\n if (pushError.message && pushError.message.includes('already exists')) {\n logger.info(`Tag ${tagName} already exists on remote, continuing...`);\n } else {\n throw pushError;\n }\n }\n }\n\n // If we just pushed a new tag, wait for GitHub to process it\n if (tagWasPushed) {\n logger.verbose('Waiting for GitHub to process the pushed tag...');\n await new Promise(resolve => setTimeout(resolve, 5000)); // 5 second delay\n }\n }\n\n logger.info('Creating GitHub release...');\n if (isDryRun) {\n logger.info('Would read package.json version and create GitHub release with retry logic');\n } else {\n const outputDirectory = runConfig.outputDirectory || DEFAULT_OUTPUT_DIRECTORY;\n const releaseNotesPath = getOutputPath(outputDirectory, 'RELEASE_NOTES.md');\n const releaseTitlePath = getOutputPath(outputDirectory, 'RELEASE_TITLE.md');\n\n const releaseNotesContent = await storage.readFile(releaseNotesPath, 'utf-8');\n const releaseTitle = await storage.readFile(releaseTitlePath, 'utf-8');\n\n // Create release with retry logic to handle GitHub tag processing delays\n let retries = 3;\n while (retries > 0) {\n try {\n await GitHub.createRelease(tagName, releaseTitle, releaseNotesContent);\n logger.info(`GitHub release created successfully for tag: ${tagName}`);\n break; // Success - exit retry loop\n } catch (error: any) {\n // Check if this is a tag-not-found error that we can retry\n const isTagNotFoundError = error.message && (\n error.message.includes('not found') ||\n error.message.includes('does not exist') ||\n error.message.includes('Reference does not exist')\n );\n\n if (isTagNotFoundError && retries > 1) {\n logger.verbose(`Tag ${tagName} not yet available on GitHub, retrying in 3 seconds... (${retries - 1} retries left)`);\n await new Promise(resolve => setTimeout(resolve, 3000));\n retries--;\n } else if (isTagNotFoundError) {\n // Tag not found error and we're out of retries\n throw new Error(`Tag ${tagName} was not found on GitHub after ${3 - retries + 1} attempts. This may indicate a problem with tag creation or GitHub synchronization.`);\n } else {\n // Not a tag-not-found error - re-throw the original error\n throw error;\n }\n }\n }\n }\n\n // Wait for release workflows to complete (if enabled)\n const waitForWorkflows = runConfig.publish?.waitForReleaseWorkflows !== false; // default to true\n if (waitForWorkflows) {\n logger.info('Waiting for release workflows...');\n if (isDryRun) {\n logger.info('Would monitor GitHub Actions workflows triggered by release');\n } else {\n const workflowTimeout = runConfig.publish?.releaseWorkflowsTimeout || 600000; // 10 minutes default\n const senditMode = runConfig.publish?.sendit || false;\n const skipUserConfirmation = senditMode || runConfig.publish?.skipUserConfirmation || false;\n\n // Get workflow names - either from config or auto-detect\n let workflowNames = runConfig.publish?.releaseWorkflowNames;\n\n if (!workflowNames || workflowNames.length === 0) {\n logger.info('No specific workflow names configured, auto-detecting workflows triggered by release events...');\n try {\n workflowNames = await GitHub.getWorkflowsTriggeredByRelease();\n if (workflowNames.length === 0) {\n logger.info('No workflows found that are triggered by release events.');\n } else {\n logger.info(`Auto-detected release workflows: ${workflowNames.join(', ')}`);\n }\n } catch (error: any) {\n logger.warn(`Failed to auto-detect release workflows: ${error.message}`);\n workflowNames = undefined; // Fall back to monitoring all workflows\n }\n }\n\n await GitHub.waitForReleaseWorkflows(tagName, {\n timeout: workflowTimeout,\n workflowNames,\n skipUserConfirmation\n });\n }\n } else {\n logger.verbose('Skipping waiting for release workflows (disabled in config).');\n }\n\n logger.info('Creating new release branch...');\n if (isDryRun) {\n logger.info('Would create next release branch (e.g., release/1.0.1) and push to origin');\n } else {\n const packageJsonContents = await storage.readFile('package.json', 'utf-8');\n const { version } = JSON.parse(packageJsonContents);\n const nextVersion = incrementPatchVersion(version);\n const newBranchName = `release/${nextVersion}`;\n\n // Check if branch already exists locally\n let branchExists = false;\n try {\n await run(`git show-ref --verify --quiet refs/heads/${newBranchName}`);\n branchExists = true;\n } catch {\n // Branch doesn't exist locally\n branchExists = false;\n }\n\n if (branchExists) {\n // Branch exists, switch to it\n await run(`git checkout ${newBranchName}`);\n logger.info(`Switched to existing branch ${newBranchName}`);\n } else {\n // Branch doesn't exist, create it\n await run(`git checkout -b ${newBranchName}`);\n logger.info(`Created new branch ${newBranchName}`);\n }\n\n // Check if branch exists on remote before pushing\n let remoteExists = false;\n try {\n const { stdout } = await run(`git ls-remote origin refs/heads/${newBranchName}`);\n remoteExists = stdout.trim() !== '';\n } catch {\n // Assume remote doesn't exist if ls-remote fails\n remoteExists = false;\n }\n\n if (remoteExists) {\n logger.info(`Branch ${newBranchName} already exists on remote, skipping push`);\n } else {\n await run(`git push -u origin ${newBranchName}`);\n logger.info(`Branch ${newBranchName} pushed to origin.`);\n }\n }\n\n logger.info('Preparation complete.');\n publishCompleted = true; // Mark as completed only if we reach this point\n } finally {\n // Always restore linked packages if enabled, regardless of success/failure\n // This ensures we don't leave the repository with file: dependencies\n const shouldLink = runConfig.publish?.linkWorkspacePackages !== false; // default to true\n if (shouldLink) {\n if (publishCompleted) {\n logger.verbose('Restoring linked packages after successful publish...');\n } else {\n logger.verbose('Restoring linked packages after failed publish to avoid leaving file: dependencies...');\n }\n await Link.execute(runConfig);\n } else {\n logger.verbose('Skipping restore linked packages (disabled in config).');\n }\n }\n};\n"],"names":["scanNpmrcForEnvVars","storage","logger","getLogger","npmrcPath","path","join","process","cwd","envVars","exists","npmrcContent","readFile","envVarMatches","match","varName","replace","includes","push","error","warn","message","verbose","debug","validateEnvironmentVariables","requiredEnvVars","isDryRun","getDryRunLogger","missingEnvVars","envVar","env","length","Error","runPrechecks","runConfig","dryRun","createStorage","log","info","run","stdout","trim","currentBranch","GitHub","startsWith","packageJsonPath","packageJson","packageJsonContents","parsed","safeJsonParse","validatePackageJson","scripts","prepublishOnly","coreRequiredEnvVars","publish","npmrcEnvVars","allRequiredEnvVars","Set","execute","publishCompleted","shouldUnlink","unlinkWorkspacePackages","Unlink","pr","branchName","html_url","updatePatterns","dependencyUpdatePatterns","patternsArg","runWithDryRunSupport","Commit","Diff","currentVersion","version","newVersion","incrementPatchVersion","writeFile","JSON","stringify","releaseSummary","Release","outputDirectory","DEFAULT_OUTPUT_DIRECTORY","ensureDirectory","releaseNotesPath","getOutputPath","releaseTitlePath","body","title","number","labels","commitTitle","timeout","checksTimeout","senditMode","sendit","skipUserConfirmation","mergeMethod","tagName","parse","tagWasPushed","pushError","Promise","resolve","setTimeout","releaseNotesContent","releaseTitle","retries","isTagNotFoundError","waitForWorkflows","waitForReleaseWorkflows","workflowTimeout","releaseWorkflowsTimeout","workflowNames","releaseWorkflowNames","undefined","nextVersion","newBranchName","branchExists","remoteExists","shouldLink","linkWorkspacePackages","Link"],"mappings":"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"}
1
+ {"version":3,"file":"publish.js","sources":["../../src/commands/publish.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\nimport path from 'path';\nimport * as Commit from './commit';\nimport * as Diff from '../content/diff';\nimport * as Release from './release';\nimport * as Link from './link';\nimport * as Unlink from './unlink';\nimport { getLogger, getDryRunLogger } from '../logging';\nimport { Config, PullRequest } from '../types';\nimport { run, runWithDryRunSupport } from '../util/child';\nimport * as GitHub from '../util/github';\nimport { create as createStorage } from '../util/storage';\nimport { incrementPatchVersion, getOutputPath } from '../util/general';\nimport { DEFAULT_OUTPUT_DIRECTORY } from '../constants';\nimport { safeJsonParse, validatePackageJson } from '../util/validation';\n\nconst scanNpmrcForEnvVars = async (storage: any): Promise<string[]> => {\n const logger = getLogger();\n const npmrcPath = path.join(process.cwd(), '.npmrc');\n const envVars: string[] = [];\n\n if (await storage.exists(npmrcPath)) {\n try {\n const npmrcContent = await storage.readFile(npmrcPath, 'utf-8');\n // Match environment variable patterns like ${VAR_NAME} or $VAR_NAME\n const envVarMatches = npmrcContent.match(/\\$\\{([^}]+)\\}|\\$([A-Z_][A-Z0-9_]*)/g);\n\n if (envVarMatches) {\n for (const match of envVarMatches) {\n // Extract variable name from ${VAR_NAME} or $VAR_NAME format\n const varName = match.replace(/\\$\\{|\\}|\\$/g, '');\n if (varName && !envVars.includes(varName)) {\n envVars.push(varName);\n }\n }\n }\n\n } catch (error: any) {\n logger.warn(`Failed to read .npmrc file at ${npmrcPath}: ${error.message}`);\n logger.verbose('This may affect environment variable detection for publishing');\n }\n } else {\n logger.debug('.npmrc file not found, skipping environment variable scan');\n }\n\n return envVars;\n};\n\nconst validateEnvironmentVariables = (requiredEnvVars: string[], isDryRun: boolean): void => {\n const logger = getDryRunLogger(isDryRun);\n const missingEnvVars: string[] = [];\n\n for (const envVar of requiredEnvVars) {\n if (!process.env[envVar]) {\n missingEnvVars.push(envVar);\n }\n }\n\n if (missingEnvVars.length > 0) {\n if (isDryRun) {\n logger.warn(`Missing required environment variables: ${missingEnvVars.join(', ')}`);\n } else {\n logger.error(`Missing required environment variables: ${missingEnvVars.join(', ')}`);\n throw new Error(`Missing required environment variables: ${missingEnvVars.join(', ')}. Please set these environment variables before running publish.`);\n }\n }\n};\n\nconst runPrechecks = async (runConfig: Config): Promise<void> => {\n const isDryRun = runConfig.dryRun || false;\n const logger = getDryRunLogger(isDryRun);\n const storage = createStorage({ log: logger.info });\n\n logger.info('Running prechecks...');\n\n // Check if we're in a git repository\n try {\n if (isDryRun) {\n logger.info('Would check git repository with: git rev-parse --git-dir');\n } else {\n await run('git rev-parse --git-dir');\n }\n\n } catch (error) {\n if (!isDryRun) {\n throw new Error('Not in a git repository. Please run this command from within a git repository.');\n }\n }\n\n // Check for uncommitted changes\n logger.info('Checking for uncommitted changes...');\n try {\n if (isDryRun) {\n logger.info('Would check git status with: git status --porcelain');\n } else {\n const { stdout } = await run('git status --porcelain');\n if (stdout.trim()) {\n throw new Error('Working directory has uncommitted changes. Please commit or stash your changes before running publish.');\n }\n }\n\n } catch (error) {\n if (!isDryRun) {\n throw new Error('Failed to check git status. Please ensure you are in a valid git repository.');\n }\n }\n\n // Check if we're on a release branch\n logger.info('Checking current branch...');\n if (isDryRun) {\n logger.info('Would verify current branch is a release branch (starts with \"release/\")');\n } else {\n const currentBranch = await GitHub.getCurrentBranchName();\n if (!currentBranch.startsWith('release/')) {\n throw new Error(`Current branch '${currentBranch}' is not a release branch. Please switch to a release branch (e.g., release/1.0.0) before running publish.`);\n }\n }\n\n // Check if prepublishOnly script exists in package.json\n logger.info('Checking for prepublishOnly script...');\n const packageJsonPath = path.join(process.cwd(), 'package.json');\n\n if (!await storage.exists(packageJsonPath)) {\n if (!isDryRun) {\n throw new Error('package.json not found in current directory.');\n } else {\n logger.warn('package.json not found in current directory.');\n }\n } else {\n let packageJson;\n try {\n const packageJsonContents = await storage.readFile(packageJsonPath, 'utf-8');\n const parsed = safeJsonParse(packageJsonContents, packageJsonPath);\n packageJson = validatePackageJson(parsed, packageJsonPath);\n\n } catch (error) {\n if (!isDryRun) {\n throw new Error('Failed to parse package.json. Please ensure it contains valid JSON.');\n } else {\n logger.warn('Failed to parse package.json. Please ensure it contains valid JSON.');\n }\n }\n\n if (packageJson && !packageJson.scripts?.prepublishOnly) {\n if (!isDryRun) {\n throw new Error('prepublishOnly script is required in package.json but was not found. Please add a prepublishOnly script that runs your pre-flight checks (e.g., clean, lint, build, test).');\n } else {\n logger.warn('prepublishOnly script is required in package.json but was not found.');\n }\n }\n }\n\n // Check required environment variables\n logger.verbose('Checking required environment variables...');\n const coreRequiredEnvVars = runConfig.publish?.requiredEnvVars || [];\n const npmrcEnvVars = isDryRun ? [] : await scanNpmrcForEnvVars(storage); // Skip .npmrc scan in dry run\n const allRequiredEnvVars = [...new Set([...coreRequiredEnvVars, ...npmrcEnvVars])];\n\n if (allRequiredEnvVars.length > 0) {\n logger.verbose(`Required environment variables: ${allRequiredEnvVars.join(', ')}`);\n validateEnvironmentVariables(allRequiredEnvVars, isDryRun);\n } else {\n logger.verbose('No required environment variables specified.');\n }\n\n logger.info('All prechecks passed.');\n};\n\nexport const execute = async (runConfig: Config): Promise<void> => {\n const isDryRun = runConfig.dryRun || false;\n const logger = getDryRunLogger(isDryRun);\n const storage = createStorage({ log: logger.info });\n\n // Track whether the publish process completed successfully\n let publishCompleted = false;\n // Track whether we've unlinked packages (and thus need to restore them)\n let packagesUnlinked = false;\n\n // Run prechecks before starting any work\n await runPrechecks(runConfig);\n\n logger.info('Starting release process...');\n\n try {\n // Unlink all workspace packages before starting (if enabled)\n const shouldUnlink = runConfig.publish?.unlinkWorkspacePackages !== false; // default to true\n if (shouldUnlink) {\n logger.verbose('Unlinking workspace packages...');\n await Unlink.execute(runConfig);\n packagesUnlinked = true;\n } else {\n logger.verbose('Skipping unlink workspace packages (disabled in config).');\n }\n\n let pr: PullRequest | null = null;\n\n if (isDryRun) {\n logger.info('Would check for existing pull request');\n logger.info('Assuming no existing PR found for demo purposes');\n } else {\n const branchName = await GitHub.getCurrentBranchName();\n pr = await GitHub.findOpenPullRequestByHeadRef(branchName);\n }\n\n if (pr) {\n logger.info(`Found existing pull request for branch: ${pr.html_url}`);\n } else {\n logger.info('No open pull request found, starting new release publishing process...');\n // 1. Prepare for release\n logger.verbose('Preparing for release: switching from workspace to remote dependencies.');\n\n logger.verbose('Updating dependencies to latest versions from registry');\n const updatePatterns = runConfig.publish?.dependencyUpdatePatterns;\n if (updatePatterns && updatePatterns.length > 0) {\n logger.verbose(`Updating dependencies matching patterns: ${updatePatterns.join(', ')}`);\n const patternsArg = updatePatterns.join(' ');\n await runWithDryRunSupport(`npm update ${patternsArg}`, isDryRun);\n } else {\n logger.verbose('No dependency update patterns specified, updating all dependencies');\n await runWithDryRunSupport('npm update', isDryRun);\n }\n\n logger.verbose('Staging changes for release commit');\n await runWithDryRunSupport('git add package.json package-lock.json', isDryRun);\n\n logger.info('Running prepublishOnly script...');\n await runWithDryRunSupport('npm run prepublishOnly', isDryRun);\n\n logger.verbose('Checking for staged changes...');\n if (isDryRun) {\n logger.verbose('Assuming staged changes exist for demo purposes');\n logger.verbose('Would create commit...');\n await Commit.execute(runConfig);\n } else {\n if (await Diff.hasStagedChanges()) {\n logger.verbose('Staged changes found, creating commit...');\n await Commit.execute(runConfig);\n } else {\n logger.verbose('No changes to commit, skipping commit.');\n }\n }\n\n logger.info('Bumping version...');\n // Manually increment version without creating a tag\n if (isDryRun) {\n logger.info('Would manually increment patch version in package.json and commit');\n } else {\n const packageJsonContents = await storage.readFile('package.json', 'utf-8');\n const parsed = safeJsonParse(packageJsonContents, 'package.json');\n const packageJson = validatePackageJson(parsed, 'package.json');\n const currentVersion = packageJson.version;\n const newVersion = incrementPatchVersion(currentVersion);\n packageJson.version = newVersion;\n await storage.writeFile('package.json', JSON.stringify(packageJson, null, 2) + '\\n', 'utf-8');\n logger.info(`Version bumped from ${currentVersion} to ${newVersion}`);\n\n // Stage and commit the version change\n await run('git add package.json');\n await run(`git commit -m \"chore: bump version to ${newVersion}\"`);\n logger.info(`Version change committed: ${newVersion}`);\n }\n\n logger.info('Generating release notes...');\n const releaseSummary = await Release.execute(runConfig);\n\n if (isDryRun) {\n logger.info('Would write release notes to RELEASE_NOTES.md and RELEASE_TITLE.md in output directory');\n } else {\n const outputDirectory = runConfig.outputDirectory || DEFAULT_OUTPUT_DIRECTORY;\n await storage.ensureDirectory(outputDirectory);\n\n const releaseNotesPath = getOutputPath(outputDirectory, 'RELEASE_NOTES.md');\n const releaseTitlePath = getOutputPath(outputDirectory, 'RELEASE_TITLE.md');\n\n await storage.writeFile(releaseNotesPath, releaseSummary.body, 'utf-8');\n await storage.writeFile(releaseTitlePath, releaseSummary.title, 'utf-8');\n logger.info(`Release notes and title generated and saved to ${releaseNotesPath} and ${releaseTitlePath}.`);\n }\n\n logger.info('Pushing to origin...');\n // Get current branch name and push explicitly to avoid pushing to wrong remote/branch\n const currentBranch = await GitHub.getCurrentBranchName();\n await runWithDryRunSupport(`git push origin ${currentBranch}`, isDryRun);\n\n logger.info('Creating pull request...');\n if (isDryRun) {\n logger.info('Would get commit title and create PR with GitHub API');\n pr = { number: 123, html_url: 'https://github.com/mock/repo/pull/123', labels: [] } as PullRequest;\n } else {\n const { stdout: commitTitle } = await run('git log -1 --pretty=%B');\n pr = await GitHub.createPullRequest(commitTitle, 'Automated release PR.', await GitHub.getCurrentBranchName());\n if (!pr) {\n throw new Error('Failed to create pull request.');\n }\n logger.info(`Pull request created: ${pr.html_url}`);\n }\n }\n\n logger.info(`Waiting for PR #${pr!.number} checks to complete...`);\n if (!isDryRun) {\n // Configure timeout and user confirmation behavior\n const timeout = runConfig.publish?.checksTimeout || 300000; // 5 minutes default\n const senditMode = runConfig.publish?.sendit || false;\n // sendit flag overrides skipUserConfirmation - if sendit is true, skip confirmation\n const skipUserConfirmation = senditMode || runConfig.publish?.skipUserConfirmation || false;\n\n await GitHub.waitForPullRequestChecks(pr!.number, {\n timeout,\n skipUserConfirmation\n });\n }\n\n const mergeMethod = runConfig.publish?.mergeMethod || 'squash';\n if (isDryRun) {\n logger.info(`Would merge PR #${pr!.number} using ${mergeMethod} method`);\n } else {\n try {\n await GitHub.mergePullRequest(pr!.number, mergeMethod);\n } catch (error: any) {\n // Check if this is a merge conflict error\n if (error.message && (\n error.message.includes('not mergeable') ||\n error.message.includes('Pull Request is not mergeable') ||\n error.message.includes('merge conflict')\n )) {\n logger.error(`❌ Pull Request #${pr!.number} has merge conflicts that need to be resolved.`);\n logger.error('');\n logger.error('📋 To resolve this issue:');\n logger.error(` 1. Visit the Pull Request: ${pr!.html_url}`);\n logger.error(' 2. Resolve the merge conflicts through GitHub\\'s web interface or locally');\n logger.error(' 3. Once conflicts are resolved, re-run the publish command');\n logger.error('');\n logger.error('💡 The command will automatically detect the existing PR and continue from where it left off.');\n throw new Error(`Merge conflicts detected in PR #${pr!.number}. Please resolve conflicts and re-run the command.`);\n } else {\n // Re-throw other merge errors\n throw error;\n }\n }\n }\n\n logger.info('Checking out main branch...');\n await runWithDryRunSupport('git checkout main', isDryRun);\n await runWithDryRunSupport('git pull origin main', isDryRun);\n\n // Now create and push the tag on the main branch\n logger.info('Creating release tag...');\n let tagName: string;\n if (isDryRun) {\n logger.info('Would read package.json version and create git tag');\n tagName = 'v1.0.0'; // Mock version for dry run\n } else {\n const packageJsonContents = await storage.readFile('package.json', 'utf-8');\n const { version } = JSON.parse(packageJsonContents);\n tagName = `v${version}`;\n\n // Check if tag already exists locally\n try {\n const { stdout } = await run(`git tag -l ${tagName}`);\n if (stdout.trim() === tagName) {\n logger.info(`Tag ${tagName} already exists locally, skipping tag creation`);\n } else {\n await run(`git tag ${tagName}`);\n logger.info(`Created local tag: ${tagName}`);\n }\n } catch (error) {\n // If git tag -l fails, create the tag anyway\n await run(`git tag ${tagName}`);\n logger.info(`Created local tag: ${tagName}`);\n }\n\n // Check if tag exists on remote before pushing\n let tagWasPushed = false;\n try {\n const { stdout } = await run(`git ls-remote origin refs/tags/${tagName}`);\n if (stdout.trim()) {\n logger.info(`Tag ${tagName} already exists on remote, skipping push`);\n } else {\n await run(`git push origin ${tagName}`);\n logger.info(`Pushed tag to remote: ${tagName}`);\n tagWasPushed = true;\n }\n } catch (error) {\n // If ls-remote fails, try to push anyway (might be a new remote)\n try {\n await run(`git push origin ${tagName}`);\n logger.info(`Pushed tag to remote: ${tagName}`);\n tagWasPushed = true;\n } catch (pushError: any) {\n if (pushError.message && pushError.message.includes('already exists')) {\n logger.info(`Tag ${tagName} already exists on remote, continuing...`);\n } else {\n throw pushError;\n }\n }\n }\n\n // If we just pushed a new tag, wait for GitHub to process it\n if (tagWasPushed) {\n logger.verbose('Waiting for GitHub to process the pushed tag...');\n await new Promise(resolve => setTimeout(resolve, 5000)); // 5 second delay\n }\n }\n\n logger.info('Creating GitHub release...');\n if (isDryRun) {\n logger.info('Would read package.json version and create GitHub release with retry logic');\n } else {\n const outputDirectory = runConfig.outputDirectory || DEFAULT_OUTPUT_DIRECTORY;\n const releaseNotesPath = getOutputPath(outputDirectory, 'RELEASE_NOTES.md');\n const releaseTitlePath = getOutputPath(outputDirectory, 'RELEASE_TITLE.md');\n\n const releaseNotesContent = await storage.readFile(releaseNotesPath, 'utf-8');\n const releaseTitle = await storage.readFile(releaseTitlePath, 'utf-8');\n\n // Create release with retry logic to handle GitHub tag processing delays\n let retries = 3;\n while (retries > 0) {\n try {\n await GitHub.createRelease(tagName, releaseTitle, releaseNotesContent);\n logger.info(`GitHub release created successfully for tag: ${tagName}`);\n break; // Success - exit retry loop\n } catch (error: any) {\n // Check if this is a tag-not-found error that we can retry\n const isTagNotFoundError = error.message && (\n error.message.includes('not found') ||\n error.message.includes('does not exist') ||\n error.message.includes('Reference does not exist')\n );\n\n if (isTagNotFoundError && retries > 1) {\n logger.verbose(`Tag ${tagName} not yet available on GitHub, retrying in 3 seconds... (${retries - 1} retries left)`);\n await new Promise(resolve => setTimeout(resolve, 3000));\n retries--;\n } else if (isTagNotFoundError) {\n // Tag not found error and we're out of retries\n throw new Error(`Tag ${tagName} was not found on GitHub after ${3 - retries + 1} attempts. This may indicate a problem with tag creation or GitHub synchronization.`);\n } else {\n // Not a tag-not-found error - re-throw the original error\n throw error;\n }\n }\n }\n }\n\n // Wait for release workflows to complete (if enabled)\n const waitForWorkflows = runConfig.publish?.waitForReleaseWorkflows !== false; // default to true\n if (waitForWorkflows) {\n logger.info('Waiting for release workflows...');\n if (isDryRun) {\n logger.info('Would monitor GitHub Actions workflows triggered by release');\n } else {\n const workflowTimeout = runConfig.publish?.releaseWorkflowsTimeout || 600000; // 10 minutes default\n const senditMode = runConfig.publish?.sendit || false;\n const skipUserConfirmation = senditMode || runConfig.publish?.skipUserConfirmation || false;\n\n // Get workflow names - either from config or auto-detect\n let workflowNames = runConfig.publish?.releaseWorkflowNames;\n\n if (!workflowNames || workflowNames.length === 0) {\n logger.info('No specific workflow names configured, auto-detecting workflows triggered by release events...');\n try {\n workflowNames = await GitHub.getWorkflowsTriggeredByRelease();\n if (workflowNames.length === 0) {\n logger.info('No workflows found that are triggered by release events.');\n } else {\n logger.info(`Auto-detected release workflows: ${workflowNames.join(', ')}`);\n }\n } catch (error: any) {\n logger.warn(`Failed to auto-detect release workflows: ${error.message}`);\n workflowNames = undefined; // Fall back to monitoring all workflows\n }\n }\n\n await GitHub.waitForReleaseWorkflows(tagName, {\n timeout: workflowTimeout,\n workflowNames,\n skipUserConfirmation\n });\n }\n } else {\n logger.verbose('Skipping waiting for release workflows (disabled in config).');\n }\n\n logger.info('Creating new release branch...');\n if (isDryRun) {\n logger.info('Would create next release branch (e.g., release/1.0.1) and push to origin');\n } else {\n const packageJsonContents = await storage.readFile('package.json', 'utf-8');\n const { version } = JSON.parse(packageJsonContents);\n const nextVersion = incrementPatchVersion(version);\n const newBranchName = `release/${nextVersion}`;\n\n // Check if branch already exists locally\n let branchExists = false;\n try {\n await run(`git show-ref --verify --quiet refs/heads/${newBranchName}`);\n branchExists = true;\n } catch {\n // Branch doesn't exist locally\n branchExists = false;\n }\n\n if (branchExists) {\n // Branch exists, switch to it\n await run(`git checkout ${newBranchName}`);\n logger.info(`Switched to existing branch ${newBranchName}`);\n } else {\n // Branch doesn't exist, create it\n await run(`git checkout -b ${newBranchName}`);\n logger.info(`Created new branch ${newBranchName}`);\n }\n\n // Check if branch exists on remote before pushing\n let remoteExists = false;\n try {\n const { stdout } = await run(`git ls-remote origin refs/heads/${newBranchName}`);\n remoteExists = stdout.trim() !== '';\n } catch {\n // Assume remote doesn't exist if ls-remote fails\n remoteExists = false;\n }\n\n if (remoteExists) {\n logger.info(`Branch ${newBranchName} already exists on remote, skipping push`);\n } else {\n await run(`git push -u origin ${newBranchName}`);\n logger.info(`Branch ${newBranchName} pushed to origin.`);\n }\n }\n\n logger.info('Preparation complete.');\n publishCompleted = true; // Mark as completed only if we reach this point\n } finally {\n // Link packages if linking is enabled, regardless of whether we unlinked them\n const shouldLink = runConfig.publish?.linkWorkspacePackages !== false; // default to true\n if (shouldLink) {\n logger.verbose('Ensuring linked packages are properly set up...');\n await Link.execute(runConfig);\n } else {\n logger.verbose('Skipping link packages (disabled in config).');\n }\n }\n};\n"],"names":["scanNpmrcForEnvVars","storage","logger","getLogger","npmrcPath","path","join","process","cwd","envVars","exists","npmrcContent","readFile","envVarMatches","match","varName","replace","includes","push","error","warn","message","verbose","debug","validateEnvironmentVariables","requiredEnvVars","isDryRun","getDryRunLogger","missingEnvVars","envVar","env","length","Error","runPrechecks","runConfig","dryRun","createStorage","log","info","run","stdout","trim","currentBranch","GitHub","startsWith","packageJsonPath","packageJson","packageJsonContents","parsed","safeJsonParse","validatePackageJson","scripts","prepublishOnly","coreRequiredEnvVars","publish","npmrcEnvVars","allRequiredEnvVars","Set","execute","publishCompleted","packagesUnlinked","shouldUnlink","unlinkWorkspacePackages","Unlink","pr","branchName","html_url","updatePatterns","dependencyUpdatePatterns","patternsArg","runWithDryRunSupport","Commit","Diff","currentVersion","version","newVersion","incrementPatchVersion","writeFile","JSON","stringify","releaseSummary","Release","outputDirectory","DEFAULT_OUTPUT_DIRECTORY","ensureDirectory","releaseNotesPath","getOutputPath","releaseTitlePath","body","title","number","labels","commitTitle","timeout","checksTimeout","senditMode","sendit","skipUserConfirmation","mergeMethod","tagName","parse","tagWasPushed","pushError","Promise","resolve","setTimeout","releaseNotesContent","releaseTitle","retries","isTagNotFoundError","waitForWorkflows","waitForReleaseWorkflows","workflowTimeout","releaseWorkflowsTimeout","workflowNames","releaseWorkflowNames","undefined","nextVersion","newBranchName","branchExists","remoteExists","shouldLink","linkWorkspacePackages","Link"],"mappings":"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"}
package/dist/constants.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import os from 'os';
2
2
  import path from 'path';
3
3
 
4
- const VERSION = '0.0.37 (HEAD/95bef54 T:v0.0.37 2025-07-26 15:31:24 -0700) linux x64 v22.17.1';
4
+ const VERSION = '0.0.39 (HEAD/7cfe26a T:v0.0.39 2025-07-26 15:54:18 -0700) linux x64 v22.17.1';
5
5
  const PROGRAM_NAME = 'kodrdriv';
6
6
  const DEFAULT_OVERRIDES = false;
7
7
  const DATE_FORMAT_YEAR_MONTH_DAY_HOURS_MINUTES_SECONDS_MILLISECONDS = 'YYYY-MM-DD-HHmmss.SSS';
@@ -396,11 +396,20 @@ const getWorkflowRunsTriggeredByRelease = async (tagName, workflowNames)=>{
396
396
  });
397
397
  // Filter runs that were triggered by our specific release
398
398
  const releaseRuns = runsResponse.data.workflow_runs.filter((run)=>{
399
- // Must be a release event
400
- if (run.event !== 'release') {
401
- logger.debug(`Excluding workflow run ${run.id}: not a release event (${run.event})`);
399
+ // Must be a release or push event (tag pushes trigger workflows with event=push)
400
+ if (run.event !== 'release' && run.event !== 'push') {
401
+ logger.debug(`Excluding workflow run ${run.id}: not a release or push event (${run.event})`);
402
402
  return false;
403
403
  }
404
+ // For push events, be more restrictive - only include if head_branch is null (indicating tag push)
405
+ if (run.event === 'push') {
406
+ // Tag pushes typically have head_branch as null, branch pushes have the branch name
407
+ if (run.head_branch !== null) {
408
+ logger.debug(`Excluding push event workflow run ${run.id}: appears to be branch push (head_branch: ${run.head_branch})`);
409
+ return false;
410
+ }
411
+ logger.debug(`Including push event workflow run ${run.id}: appears to be tag push (head_branch: null)`);
412
+ }
404
413
  // Must have required data
405
414
  if (!run.head_sha || !run.created_at) {
406
415
  logger.debug(`Excluding workflow run ${run.id}: missing required data (head_sha: ${run.head_sha}, created_at: ${run.created_at})`);
@@ -423,10 +432,16 @@ const getWorkflowRunsTriggeredByRelease = async (tagName, workflowNames)=>{
423
432
  logger.debug(`Excluding workflow run ${run.id}: commit SHA mismatch (run: ${run.head_sha}, release: ${releaseCommitSha})`);
424
433
  return false; // Be strict about commit SHA matching
425
434
  }
426
- // If we don't have release info but it's a release event, check if it matches our tag name
427
- // Look for the tag name in run references (this is a fallback when we can't get release info)
428
- if (!releaseCreatedAt && run.head_branch && !run.head_branch.includes(tagName.replace('v', ''))) {
429
- logger.debug(`Excluding workflow run ${run.id}: branch doesn't match tag pattern (branch: ${run.head_branch}, tag: ${tagName})`);
435
+ // If we don't have release info, use more permissive fallback filtering
436
+ // For tag pushes, head_branch is often null, so we can't rely on branch name matching
437
+ if (!releaseCreatedAt && run.event === 'release' && run.head_branch && !run.head_branch.includes(tagName.replace('v', ''))) {
438
+ logger.debug(`Excluding workflow run ${run.id}: branch doesn't match tag pattern for release event (branch: ${run.head_branch}, tag: ${tagName})`);
439
+ return false;
440
+ }
441
+ // For push events without release info, be conservative and exclude them
442
+ // unless we have other indicators that this is a tag push
443
+ if (!releaseCreatedAt && run.event === 'push') {
444
+ logger.debug(`Excluding push event workflow run ${run.id} due to lack of release info (cannot confirm this is a tag push)`);
430
445
  return false;
431
446
  }
432
447
  logger.debug(`Including workflow run ${run.id}: ${run.name} (${run.status}/${run.conclusion}) created ${run.created_at}`);
@@ -1 +1 @@
1
- {"version":3,"file":"github.js","sources":["../../src/util/github.ts"],"sourcesContent":["import { Octokit } from '@octokit/rest';\nimport { getLogger } from '../logging';\nimport { PullRequest, MergeMethod } from '../types';\nimport { run } from './child';\nimport { promptConfirmation } from './stdin';\n\nexport const getOctokit = (): Octokit => {\n const logger = getLogger();\n const token = process.env.GITHUB_TOKEN;\n\n if (!token) {\n logger.error('GITHUB_TOKEN environment variable is not set.');\n throw new Error('GITHUB_TOKEN is not set.');\n }\n\n return new Octokit({\n auth: token,\n });\n};\n\nexport const getCurrentBranchName = async (): Promise<string> => {\n const { stdout } = await run('git rev-parse --abbrev-ref HEAD');\n return stdout.trim();\n};\n\nexport const getRepoDetails = async (): Promise<{ owner: string; repo: string }> => {\n const { stdout } = await run('git remote get-url origin');\n const url = stdout.trim();\n // git@github.com:owner/repo.git or https://github.com/owner/repo.git\n const match = url.match(/github\\.com[/:]([\\w-]+)\\/([\\w.-]+)\\.git/);\n if (!match) {\n throw new Error(`Could not parse repository owner and name from origin URL: \"${url}\". Expected format: git@github.com:owner/repo.git or https://github.com/owner/repo.git`);\n }\n return { owner: match[1], repo: match[2] };\n};\n\nexport const createPullRequest = async (\n title: string,\n body: string,\n head: string,\n base: string = 'main'\n): Promise<PullRequest> => {\n const octokit = getOctokit();\n const { owner, repo } = await getRepoDetails();\n\n const response = await octokit.pulls.create({\n owner,\n repo,\n title,\n body,\n head,\n base,\n });\n\n return response.data;\n};\n\nexport const findOpenPullRequestByHeadRef = async (head: string): Promise<PullRequest | null> => {\n const octokit = getOctokit();\n const { owner, repo } = await getRepoDetails();\n const logger = getLogger();\n\n try {\n logger.debug(`Searching for open pull requests with head: ${owner}:${head} in ${owner}/${repo}`);\n\n const response = await octokit.pulls.list({\n owner,\n repo,\n state: 'open',\n head: `${owner}:${head}`,\n });\n\n logger.debug(`Found ${response.data.length} open pull requests`);\n return response.data[0] ?? null;\n } catch (error: any) {\n logger.error(`Failed to find open pull requests: ${error.message}`);\n if (error.status === 404) {\n logger.error(`Repository ${owner}/${repo} not found or access denied. Please check your GITHUB_TOKEN permissions.`);\n }\n throw error;\n }\n};\n\nconst delay = (ms: number) => new Promise(resolve => setTimeout(resolve, ms));\n\n// Check if repository has GitHub Actions workflows configured\nconst hasWorkflowsConfigured = async (): Promise<boolean> => {\n const octokit = getOctokit();\n const { owner, repo } = await getRepoDetails();\n\n try {\n const response = await octokit.actions.listRepoWorkflows({\n owner,\n repo,\n });\n\n return response.data.workflows.length > 0;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (error: any) {\n // If we can't check workflows (e.g., no Actions permission), assume they might exist\n return true;\n }\n};\n\nexport const waitForPullRequestChecks = async (prNumber: number, options: { timeout?: number; skipUserConfirmation?: boolean } = {}): Promise<void> => {\n const octokit = getOctokit();\n const { owner, repo } = await getRepoDetails();\n const logger = getLogger();\n const timeout = options.timeout || 300000; // 5 minutes default timeout\n const skipUserConfirmation = options.skipUserConfirmation || false;\n\n const startTime = Date.now();\n let consecutiveNoChecksCount = 0;\n const maxConsecutiveNoChecks = 6; // 6 consecutive checks (1 minute) with no checks before asking user\n\n while (true) {\n const elapsedTime = Date.now() - startTime;\n\n // Check for timeout\n if (elapsedTime > timeout) {\n logger.warn(`Timeout reached (${timeout / 1000}s) while waiting for PR #${prNumber} checks.`);\n\n if (!skipUserConfirmation) {\n const proceedWithoutChecks = await promptConfirmation(\n `⚠️ Timeout reached while waiting for PR #${prNumber} checks.\\n` +\n `This might indicate that no checks are configured for this repository.\\n` +\n `Do you want to proceed with merging the PR without waiting for checks?`\n );\n\n if (proceedWithoutChecks) {\n logger.info('User chose to proceed without waiting for checks.');\n return;\n } else {\n throw new Error(`Timeout waiting for PR #${prNumber} checks. User chose not to proceed.`);\n }\n } else {\n throw new Error(`Timeout waiting for PR #${prNumber} checks (${timeout / 1000}s)`);\n }\n }\n\n const pr = await octokit.pulls.get({\n owner,\n repo,\n pull_number: prNumber,\n });\n\n const checkRunsResponse = await octokit.checks.listForRef({\n owner,\n repo,\n ref: pr.data.head.sha,\n });\n\n const checkRuns = checkRunsResponse.data.check_runs;\n\n if (checkRuns.length === 0) {\n consecutiveNoChecksCount++;\n logger.info(`PR #${prNumber}: No checks found (${consecutiveNoChecksCount}/${maxConsecutiveNoChecks}). Waiting...`);\n\n // After several consecutive \"no checks\" responses, check if workflows are configured\n if (consecutiveNoChecksCount >= maxConsecutiveNoChecks) {\n logger.info(`No checks detected for ${maxConsecutiveNoChecks} consecutive attempts. Checking repository configuration...`);\n\n const hasWorkflows = await hasWorkflowsConfigured();\n\n if (!hasWorkflows) {\n logger.warn(`No GitHub Actions workflows found in repository ${owner}/${repo}.`);\n\n if (!skipUserConfirmation) {\n const proceedWithoutChecks = await promptConfirmation(\n `⚠️ No GitHub Actions workflows or checks are configured for this repository.\\n` +\n `PR #${prNumber} will never have status checks to wait for.\\n` +\n `Do you want to proceed with merging the PR without checks?`\n );\n\n if (proceedWithoutChecks) {\n logger.info('User chose to proceed without checks (no workflows configured).');\n return;\n } else {\n throw new Error(`No checks configured for PR #${prNumber}. User chose not to proceed.`);\n }\n } else {\n // In non-interactive mode, proceed if no workflows are configured\n logger.info('No workflows configured, proceeding without checks.');\n return;\n }\n } else {\n logger.info('GitHub Actions workflows are configured. Continuing to wait for checks...');\n consecutiveNoChecksCount = 0; // Reset counter since workflows exist\n }\n }\n\n await delay(10000);\n continue;\n }\n\n // Reset the no-checks counter since we found some checks\n consecutiveNoChecksCount = 0;\n\n const failingChecks = checkRuns.filter(\n (cr) => cr.conclusion && ['failure', 'timed_out', 'cancelled'].includes(cr.conclusion)\n );\n\n if (failingChecks.length > 0) {\n const { owner, repo } = await getRepoDetails();\n const prUrl = `https://github.com/${owner}/${repo}/pull/${prNumber}`;\n\n // Get current branch name for better guidance\n let currentBranch: string | undefined;\n try {\n currentBranch = await getCurrentBranchName();\n } catch {\n // Fallback to generic branch reference if we can't get the current branch\n currentBranch = undefined;\n }\n\n // Collect detailed information about each failed check\n const detailedFailedChecks = await Promise.all(\n failingChecks.map(async (check) => {\n try {\n // Get additional details from the check run\n const checkDetails = await octokit.checks.get({\n owner,\n repo,\n check_run_id: check.id,\n });\n\n return {\n name: check.name,\n conclusion: check.conclusion || 'unknown',\n detailsUrl: check.details_url || undefined,\n summary: checkDetails.data.output?.summary || undefined,\n output: {\n title: checkDetails.data.output?.title || undefined,\n summary: checkDetails.data.output?.summary || undefined,\n text: checkDetails.data.output?.text || undefined,\n },\n };\n } catch {\n // Fallback to basic information if we can't get details\n return {\n name: check.name,\n conclusion: check.conclusion || 'unknown',\n detailsUrl: check.details_url || undefined,\n };\n }\n })\n );\n\n logger.error(`❌ PR #${prNumber} has ${failingChecks.length} failing check${failingChecks.length > 1 ? 's' : ''}:`);\n logger.error('');\n\n for (const check of detailedFailedChecks) {\n const statusIcon = check.conclusion === 'failure' ? '❌' :\n check.conclusion === 'timed_out' ? '⏰' : '🚫';\n logger.error(`${statusIcon} ${check.name}: ${check.conclusion}`);\n\n // Show more detailed error information if available\n if (check.output?.title && check.output.title !== check.name) {\n logger.error(` Issue: ${check.output.title}`);\n }\n\n if (check.output?.summary) {\n // Truncate very long summaries\n const summary = check.output.summary.length > 200\n ? check.output.summary.substring(0, 200) + '...'\n : check.output.summary;\n logger.error(` Summary: ${summary}`);\n }\n\n // Include direct link to check details\n if (check.detailsUrl) {\n logger.error(` Details: ${check.detailsUrl}`);\n }\n logger.error('');\n }\n\n // Import the new error class\n const { PullRequestCheckError } = await import('../error/CommandErrors');\n\n // Create and throw the enhanced error with detailed recovery instructions\n const prError = new PullRequestCheckError(\n `PR #${prNumber} checks failed. ${failingChecks.length} check${failingChecks.length > 1 ? 's' : ''} failed.`,\n prNumber,\n detailedFailedChecks,\n prUrl,\n currentBranch\n );\n\n // Display recovery instructions\n const instructions = prError.getRecoveryInstructions();\n for (const instruction of instructions) {\n logger.error(instruction);\n }\n logger.error('');\n\n throw prError;\n }\n\n const allChecksCompleted = checkRuns.every((cr) => cr.status === 'completed');\n\n if (allChecksCompleted) {\n logger.info(`All checks for PR #${prNumber} have completed successfully.`);\n return;\n }\n\n const completedCount = checkRuns.filter(cr => cr.status === 'completed').length;\n logger.info(`PR #${prNumber} checks: ${completedCount}/${checkRuns.length} completed. Waiting...`);\n\n await delay(10000); // wait 10 seconds\n }\n};\n\nexport const mergePullRequest = async (prNumber: number, mergeMethod: MergeMethod = 'squash'): Promise<void> => {\n const octokit = getOctokit();\n const { owner, repo } = await getRepoDetails();\n const logger = getLogger();\n\n logger.info(`Merging PR #${prNumber} using ${mergeMethod} method...`);\n const pr = await octokit.pulls.get({\n owner,\n repo,\n pull_number: prNumber,\n });\n const headBranch = pr.data.head.ref;\n\n await octokit.pulls.merge({\n owner,\n repo,\n pull_number: prNumber,\n merge_method: mergeMethod,\n });\n logger.info(`PR #${prNumber} merged using ${mergeMethod} method.`);\n\n logger.info(`Deleting branch ${headBranch}...`);\n await octokit.git.deleteRef({\n owner,\n repo,\n ref: `heads/${headBranch}`,\n });\n logger.info(`Branch ${headBranch} deleted.`);\n};\n\nexport const createRelease = async (tagName: string, title: string, notes: string): Promise<void> => {\n const octokit = getOctokit();\n const { owner, repo } = await getRepoDetails();\n const logger = getLogger();\n\n logger.info(`Creating release for tag ${tagName}...`);\n await octokit.repos.createRelease({\n owner,\n repo,\n tag_name: tagName,\n name: title,\n body: notes,\n });\n logger.info(`Release ${tagName} created.`);\n};\n\nexport const getReleaseByTagName = async (tagName: string): Promise<any> => {\n const octokit = getOctokit();\n const { owner, repo } = await getRepoDetails();\n const logger = getLogger();\n\n try {\n const response = await octokit.repos.getReleaseByTag({\n owner,\n repo,\n tag: tagName,\n });\n\n logger.debug(`Found release for tag ${tagName}: created at ${response.data.created_at}`);\n return response.data;\n } catch (error: any) {\n logger.debug(`Failed to get release for tag ${tagName}: ${error.message}`);\n throw error;\n }\n};\n\nexport const getOpenIssues = async (limit: number = 20): Promise<string> => {\n const octokit = getOctokit();\n const { owner, repo } = await getRepoDetails();\n const logger = getLogger();\n\n try {\n logger.debug(`Fetching up to ${limit} open GitHub issues...`);\n\n const response = await octokit.issues.listForRepo({\n owner,\n repo,\n state: 'open',\n per_page: Math.min(limit, 100), // GitHub API limit\n sort: 'updated',\n direction: 'desc',\n });\n\n const issues = response.data.filter(issue => !issue.pull_request); // Filter out PRs\n\n if (issues.length === 0) {\n logger.debug('No open issues found');\n return '';\n }\n\n const issueStrings = issues.slice(0, limit).map(issue => {\n const labels = issue.labels.map(label =>\n typeof label === 'string' ? label : label.name\n ).join(', ');\n\n return [\n `Issue #${issue.number}: ${issue.title}`,\n `Labels: ${labels || 'none'}`,\n `Created: ${issue.created_at}`,\n `Updated: ${issue.updated_at}`,\n `Body: ${issue.body?.substring(0, 500) || 'No description'}${issue.body && issue.body.length > 500 ? '...' : ''}`,\n '---'\n ].join('\\n');\n });\n\n logger.debug(`Fetched ${issues.length} open issues`);\n return issueStrings.join('\\n\\n');\n } catch (error: any) {\n logger.warn('Failed to fetch GitHub issues: %s', error.message);\n return '';\n }\n};\n\nexport const createIssue = async (\n title: string,\n body: string,\n labels?: string[]\n): Promise<{ number: number; html_url: string }> => {\n const octokit = getOctokit();\n const { owner, repo } = await getRepoDetails();\n\n const response = await octokit.issues.create({\n owner,\n repo,\n title,\n body,\n labels: labels || [],\n });\n\n return {\n number: response.data.number,\n html_url: response.data.html_url,\n };\n};\n\nexport const getWorkflowRunsTriggeredByRelease = async (tagName: string, workflowNames?: string[]): Promise<any[]> => {\n const octokit = getOctokit();\n const { owner, repo } = await getRepoDetails();\n const logger = getLogger();\n\n try {\n logger.debug(`Fetching workflow runs triggered by release ${tagName}...`);\n\n // Get release information to filter by creation time and commit SHA\n let releaseInfo: any;\n try {\n releaseInfo = await getReleaseByTagName(tagName);\n } catch (error: any) {\n logger.warn(`Could not get release info for ${tagName}: ${error.message}. Will use fallback filtering.`);\n }\n\n const releaseCreatedAt = releaseInfo?.created_at;\n const releaseCommitSha = releaseInfo?.target_commitish;\n\n if (releaseCreatedAt) {\n logger.debug(`Release ${tagName} was created at ${releaseCreatedAt}, filtering workflows created after this time`);\n }\n\n // Get all workflows\n const workflowsResponse = await octokit.actions.listRepoWorkflows({\n owner,\n repo,\n });\n\n const relevantWorkflows = workflowsResponse.data.workflows.filter(workflow => {\n // If specific workflow names are provided, only include those\n if (workflowNames && workflowNames.length > 0) {\n return workflowNames.includes(workflow.name);\n }\n // Otherwise, find workflows that trigger on releases\n return true; // We'll filter by event later when we get the runs\n });\n\n logger.debug(`Found ${relevantWorkflows.length} workflows to check`);\n\n const allRuns: any[] = [];\n\n // Get recent workflow runs for each workflow\n for (const workflow of relevantWorkflows) {\n try {\n const runsResponse = await octokit.actions.listWorkflowRuns({\n owner,\n repo,\n workflow_id: workflow.id,\n per_page: 20, // Check more runs to account for filtering\n });\n\n // Filter runs that were triggered by our specific release\n const releaseRuns = runsResponse.data.workflow_runs.filter(run => {\n // Must be a release event\n if (run.event !== 'release') {\n logger.debug(`Excluding workflow run ${run.id}: not a release event (${run.event})`);\n return false;\n }\n\n // Must have required data\n if (!run.head_sha || !run.created_at) {\n logger.debug(`Excluding workflow run ${run.id}: missing required data (head_sha: ${run.head_sha}, created_at: ${run.created_at})`);\n return false;\n }\n\n // If we have release info, filter by creation time more strictly\n if (releaseCreatedAt) {\n const runCreatedAt = new Date(run.created_at).getTime();\n const releaseCreatedAtTime = new Date(releaseCreatedAt).getTime();\n\n // Be more strict: only include runs created within 10 minutes after the release\n // This helps exclude old workflow runs that might match other criteria\n const timeDiff = runCreatedAt - releaseCreatedAtTime;\n if (timeDiff < -30000 || timeDiff > 600000) { // 30 seconds before to 10 minutes after\n logger.debug(`Excluding workflow run ${run.id}: outside time window (run: ${run.created_at}, release: ${releaseCreatedAt}, diff: ${timeDiff}ms)`);\n return false;\n }\n }\n\n // Additional check: if we have the release commit SHA, be stricter about matching it\n if (releaseCommitSha && run.head_sha !== releaseCommitSha) {\n logger.debug(`Excluding workflow run ${run.id}: commit SHA mismatch (run: ${run.head_sha}, release: ${releaseCommitSha})`);\n return false; // Be strict about commit SHA matching\n }\n\n // If we don't have release info but it's a release event, check if it matches our tag name\n // Look for the tag name in run references (this is a fallback when we can't get release info)\n if (!releaseCreatedAt && run.head_branch && !run.head_branch.includes(tagName.replace('v', ''))) {\n logger.debug(`Excluding workflow run ${run.id}: branch doesn't match tag pattern (branch: ${run.head_branch}, tag: ${tagName})`);\n return false;\n }\n\n logger.debug(`Including workflow run ${run.id}: ${run.name} (${run.status}/${run.conclusion}) created ${run.created_at}`);\n return true;\n });\n\n allRuns.push(...releaseRuns);\n\n if (releaseRuns.length > 0) {\n logger.debug(`Found ${releaseRuns.length} relevant workflow runs for ${workflow.name}`);\n }\n } catch (error: any) {\n logger.warn(`Failed to get runs for workflow ${workflow.name}: ${error.message}`);\n }\n }\n\n // Sort by creation time (newest first) and prioritize runs with matching commit SHA\n allRuns.sort((a, b) => {\n // First, prioritize runs with matching commit SHA if we have release info\n if (releaseCommitSha) {\n const aMatches = a.head_sha === releaseCommitSha;\n const bMatches = b.head_sha === releaseCommitSha;\n if (aMatches && !bMatches) return -1;\n if (!aMatches && bMatches) return 1;\n }\n\n // Then sort by creation time (newest first)\n return new Date(b.created_at).getTime() - new Date(a.created_at).getTime();\n });\n\n logger.debug(`Found ${allRuns.length} workflow runs triggered by release ${tagName}`);\n\n if (allRuns.length > 0 && releaseCreatedAt) {\n logger.debug(`Workflow runs created after release ${tagName}:`);\n allRuns.forEach(run => {\n logger.debug(`- ${run.name}: created ${run.created_at}, commit ${run.head_sha?.substring(0, 7)}`);\n });\n }\n\n return allRuns;\n } catch (error: any) {\n logger.warn(`Failed to fetch workflow runs: ${error.message}`);\n return [];\n }\n};\n\nexport const waitForReleaseWorkflows = async (\n tagName: string,\n options: {\n timeout?: number;\n workflowNames?: string[];\n skipUserConfirmation?: boolean;\n } = {}\n): Promise<void> => {\n const logger = getLogger();\n const timeout = options.timeout || 600000; // 10 minutes default\n const skipUserConfirmation = options.skipUserConfirmation || false;\n\n logger.info(`Waiting for workflows triggered by release ${tagName}...`);\n\n // Wait a bit for workflows to start (GitHub can take a moment to trigger them)\n logger.debug('Waiting 30 seconds for workflows to start...');\n await delay(30000);\n\n const startTime = Date.now();\n let workflowRuns: any[] = [];\n let consecutiveNoWorkflowsCount = 0;\n const maxConsecutiveNoWorkflows = 6; // 1 minute of checking before asking user\n\n while (true) {\n const elapsedTime = Date.now() - startTime;\n\n // Check for timeout\n if (elapsedTime > timeout) {\n logger.warn(`Timeout reached (${timeout / 1000}s) while waiting for release workflows.`);\n\n if (!skipUserConfirmation) {\n const proceedWithoutWorkflows = await promptConfirmation(\n `⚠️ Timeout reached while waiting for release workflows for ${tagName}.\\n` +\n `This might indicate that no workflows are configured to trigger on releases.\\n` +\n `Do you want to proceed anyway?`\n );\n\n if (proceedWithoutWorkflows) {\n logger.info('User chose to proceed without waiting for release workflows.');\n return;\n } else {\n throw new Error(`Timeout waiting for release workflows for ${tagName}. User chose not to proceed.`);\n }\n } else {\n throw new Error(`Timeout waiting for release workflows for ${tagName} (${timeout / 1000}s)`);\n }\n }\n\n // Get current workflow runs\n workflowRuns = await getWorkflowRunsTriggeredByRelease(tagName, options.workflowNames);\n\n if (workflowRuns.length === 0) {\n consecutiveNoWorkflowsCount++;\n logger.info(`No release workflows found (${consecutiveNoWorkflowsCount}/${maxConsecutiveNoWorkflows}). Waiting...`);\n\n // After several attempts with no workflows, ask user if they want to continue\n if (consecutiveNoWorkflowsCount >= maxConsecutiveNoWorkflows) {\n logger.warn(`No workflows triggered by release ${tagName} after ${maxConsecutiveNoWorkflows} attempts.`);\n\n if (!skipUserConfirmation) {\n const proceedWithoutWorkflows = await promptConfirmation(\n `⚠️ No GitHub Actions workflows appear to be triggered by the release ${tagName}.\\n` +\n `This might be expected if no workflows are configured for release events.\\n` +\n `Do you want to proceed without waiting for workflows?`\n );\n\n if (proceedWithoutWorkflows) {\n logger.info('User chose to proceed without release workflows.');\n return;\n } else {\n throw new Error(`No release workflows found for ${tagName}. User chose not to proceed.`);\n }\n } else {\n // In non-interactive mode, proceed if no workflows are found\n logger.info('No release workflows found, proceeding.');\n return;\n }\n }\n\n await delay(10000);\n continue;\n }\n\n // Reset counter since we found workflows\n consecutiveNoWorkflowsCount = 0;\n\n // Check status of all workflow runs\n const failingRuns = workflowRuns.filter(run =>\n run.conclusion && ['failure', 'timed_out', 'cancelled'].includes(run.conclusion)\n );\n\n if (failingRuns.length > 0) {\n logger.error(`Release workflows for ${tagName} have failures:`);\n for (const run of failingRuns) {\n logger.error(`- ${run.name}: ${run.conclusion} (${run.html_url})`);\n }\n throw new Error(`Release workflows for ${tagName} failed.`);\n }\n\n const allWorkflowsCompleted = workflowRuns.every(run => run.status === 'completed');\n\n if (allWorkflowsCompleted) {\n const successfulRuns = workflowRuns.filter(run => run.conclusion === 'success');\n logger.info(`All ${workflowRuns.length} release workflows for ${tagName} completed successfully.`);\n for (const run of successfulRuns) {\n logger.info(`✓ ${run.name}: ${run.conclusion}`);\n }\n return;\n }\n\n const completedCount = workflowRuns.filter(run => run.status === 'completed').length;\n const runningCount = workflowRuns.filter(run => run.status === 'in_progress').length;\n const queuedCount = workflowRuns.filter(run => run.status === 'queued').length;\n\n // Log detailed information about each workflow run being tracked\n if (workflowRuns.length > 0) {\n logger.debug(`Tracking ${workflowRuns.length} workflow runs for release ${tagName}:`);\n workflowRuns.forEach(run => {\n const statusIcon = run.status === 'completed' ?\n (run.conclusion === 'success' ? '✅' : run.conclusion === 'failure' ? '❌' : '⚠️') :\n run.status === 'in_progress' ? '🔄' : '⏳';\n logger.debug(` ${statusIcon} ${run.name} (${run.status}${run.conclusion ? `/${run.conclusion}` : ''}) - created ${run.created_at}`);\n });\n }\n\n logger.info(\n `Release workflows for ${tagName}: ${completedCount} completed, ${runningCount} running, ${queuedCount} queued (${workflowRuns.length} total)`\n );\n\n await delay(15000); // wait 15 seconds\n }\n};\n\nexport const getWorkflowsTriggeredByRelease = async (): Promise<string[]> => {\n const octokit = getOctokit();\n const { owner, repo } = await getRepoDetails();\n const logger = getLogger();\n\n try {\n logger.debug('Analyzing workflows to find those triggered by release events...');\n\n // Get all workflows\n const workflowsResponse = await octokit.actions.listRepoWorkflows({\n owner,\n repo,\n });\n\n const releaseWorkflows: string[] = [];\n\n // Check each workflow's configuration\n for (const workflow of workflowsResponse.data.workflows) {\n try {\n // Get the workflow file content\n const workflowPath = workflow.path;\n logger.debug(`Analyzing workflow: ${workflow.name} (${workflowPath})`);\n\n const contentResponse = await octokit.repos.getContent({\n owner,\n repo,\n path: workflowPath,\n });\n\n // Handle the response - it could be a file or directory\n if ('content' in contentResponse.data && contentResponse.data.type === 'file') {\n // Decode the base64 content\n const content = Buffer.from(contentResponse.data.content, 'base64').toString('utf-8');\n\n // Parse the YAML to check trigger conditions\n if (isTriggeredByRelease(content, workflow.name)) {\n logger.debug(`✓ Workflow \"${workflow.name}\" will be triggered by release events`);\n releaseWorkflows.push(workflow.name);\n } else {\n logger.debug(`✗ Workflow \"${workflow.name}\" will not be triggered by release events`);\n }\n } else {\n logger.warn(`Could not read content for workflow ${workflow.name}`);\n }\n } catch (error: any) {\n logger.warn(`Failed to analyze workflow ${workflow.name}: ${error.message}`);\n }\n }\n\n logger.info(`Found ${releaseWorkflows.length} workflows that will be triggered by release events: ${releaseWorkflows.join(', ')}`);\n return releaseWorkflows;\n } catch (error: any) {\n logger.error(`Failed to analyze workflows: ${error.message}`);\n return [];\n }\n};\n\nconst isTriggeredByRelease = (workflowContent: string, workflowName: string): boolean => {\n const logger = getLogger();\n\n try {\n // Simple regex-based parsing since we don't want to add a YAML dependency\n // Look for common release trigger patterns\n\n // Pattern 1: on.release (with or without types)\n // on:\n // release:\n // types: [published, created, ...]\n const releaseEventPattern = /(?:^|\\n)\\s*on\\s*:\\s*(?:\\n|\\r\\n)(?:\\s+[^\\S\\r\\n]+)*(?:\\s+release\\s*:)/m;\n\n // Pattern 2: on: [push, release] or on: release\n const onReleasePattern = /(?:^|\\n)\\s*on\\s*:\\s*(?:\\[.*release.*\\]|release)\\s*(?:\\n|$)/m;\n\n // Pattern 3: push with tag patterns that look like releases\n // on:\n // push:\n // tags:\n // - 'v*'\n // - 'release/*'\n const tagPushPattern = /(?:^|\\r?\\n)[^\\S\\r\\n]*on\\s*:\\s*\\r?\\n(?:[^\\S\\r\\n]*[^\\r\\n]+(?:\\r?\\n))*?[^\\S\\r\\n]*push\\s*:\\s*\\r?\\n(?:[^\\S\\r\\n]*tags\\s*:\\s*(?:\\r?\\n|\\[)[^\\]\\r\\n]*(?:v\\*|release|tag)[^\\]\\r\\n]*)/mi;\n\n const isTriggered = releaseEventPattern.test(workflowContent) ||\n onReleasePattern.test(workflowContent) ||\n tagPushPattern.test(workflowContent);\n\n if (isTriggered) {\n logger.debug(`Workflow \"${workflowName}\" trigger patterns detected in content`);\n }\n\n return isTriggered;\n } catch (error: any) {\n logger.warn(`Failed to parse workflow content for ${workflowName}: ${error.message}`);\n return false;\n }\n};\n"],"names":["getOctokit","logger","getLogger","token","process","env","GITHUB_TOKEN","error","Error","Octokit","auth","getCurrentBranchName","stdout","run","trim","getRepoDetails","url","match","owner","repo","createPullRequest","title","body","head","base","octokit","response","pulls","create","data","findOpenPullRequestByHeadRef","debug","list","state","length","message","status","delay","ms","Promise","resolve","setTimeout","hasWorkflowsConfigured","actions","listRepoWorkflows","workflows","waitForPullRequestChecks","prNumber","options","timeout","skipUserConfirmation","startTime","Date","now","consecutiveNoChecksCount","maxConsecutiveNoChecks","elapsedTime","warn","proceedWithoutChecks","promptConfirmation","info","pr","get","pull_number","checkRunsResponse","checks","listForRef","ref","sha","checkRuns","check_runs","hasWorkflows","failingChecks","filter","cr","conclusion","includes","prUrl","currentBranch","undefined","detailedFailedChecks","all","map","check","checkDetails","check_run_id","id","name","detailsUrl","details_url","summary","output","text","statusIcon","substring","PullRequestCheckError","prError","instructions","getRecoveryInstructions","instruction","allChecksCompleted","every","completedCount","mergePullRequest","mergeMethod","headBranch","merge","merge_method","git","deleteRef","createRelease","tagName","notes","repos","tag_name","getReleaseByTagName","getReleaseByTag","tag","created_at","getOpenIssues","limit","issues","listForRepo","per_page","Math","min","sort","direction","issue","pull_request","issueStrings","slice","labels","label","join","number","updated_at","createIssue","html_url","getWorkflowRunsTriggeredByRelease","workflowNames","releaseInfo","releaseCreatedAt","releaseCommitSha","target_commitish","workflowsResponse","relevantWorkflows","workflow","allRuns","runsResponse","listWorkflowRuns","workflow_id","releaseRuns","workflow_runs","event","head_sha","runCreatedAt","getTime","releaseCreatedAtTime","timeDiff","head_branch","replace","push","a","b","aMatches","bMatches","forEach","waitForReleaseWorkflows","workflowRuns","consecutiveNoWorkflowsCount","maxConsecutiveNoWorkflows","proceedWithoutWorkflows","failingRuns","allWorkflowsCompleted","successfulRuns","runningCount","queuedCount","getWorkflowsTriggeredByRelease","releaseWorkflows","workflowPath","path","contentResponse","getContent","type","content","Buffer","from","toString","isTriggeredByRelease","workflowContent","workflowName","releaseEventPattern","onReleasePattern","tagPushPattern","isTriggered","test"],"mappings":"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"}
1
+ {"version":3,"file":"github.js","sources":["../../src/util/github.ts"],"sourcesContent":["import { Octokit } from '@octokit/rest';\nimport { getLogger } from '../logging';\nimport { PullRequest, MergeMethod } from '../types';\nimport { run } from './child';\nimport { promptConfirmation } from './stdin';\n\nexport const getOctokit = (): Octokit => {\n const logger = getLogger();\n const token = process.env.GITHUB_TOKEN;\n\n if (!token) {\n logger.error('GITHUB_TOKEN environment variable is not set.');\n throw new Error('GITHUB_TOKEN is not set.');\n }\n\n return new Octokit({\n auth: token,\n });\n};\n\nexport const getCurrentBranchName = async (): Promise<string> => {\n const { stdout } = await run('git rev-parse --abbrev-ref HEAD');\n return stdout.trim();\n};\n\nexport const getRepoDetails = async (): Promise<{ owner: string; repo: string }> => {\n const { stdout } = await run('git remote get-url origin');\n const url = stdout.trim();\n // git@github.com:owner/repo.git or https://github.com/owner/repo.git\n const match = url.match(/github\\.com[/:]([\\w-]+)\\/([\\w.-]+)\\.git/);\n if (!match) {\n throw new Error(`Could not parse repository owner and name from origin URL: \"${url}\". Expected format: git@github.com:owner/repo.git or https://github.com/owner/repo.git`);\n }\n return { owner: match[1], repo: match[2] };\n};\n\nexport const createPullRequest = async (\n title: string,\n body: string,\n head: string,\n base: string = 'main'\n): Promise<PullRequest> => {\n const octokit = getOctokit();\n const { owner, repo } = await getRepoDetails();\n\n const response = await octokit.pulls.create({\n owner,\n repo,\n title,\n body,\n head,\n base,\n });\n\n return response.data;\n};\n\nexport const findOpenPullRequestByHeadRef = async (head: string): Promise<PullRequest | null> => {\n const octokit = getOctokit();\n const { owner, repo } = await getRepoDetails();\n const logger = getLogger();\n\n try {\n logger.debug(`Searching for open pull requests with head: ${owner}:${head} in ${owner}/${repo}`);\n\n const response = await octokit.pulls.list({\n owner,\n repo,\n state: 'open',\n head: `${owner}:${head}`,\n });\n\n logger.debug(`Found ${response.data.length} open pull requests`);\n return response.data[0] ?? null;\n } catch (error: any) {\n logger.error(`Failed to find open pull requests: ${error.message}`);\n if (error.status === 404) {\n logger.error(`Repository ${owner}/${repo} not found or access denied. Please check your GITHUB_TOKEN permissions.`);\n }\n throw error;\n }\n};\n\nconst delay = (ms: number) => new Promise(resolve => setTimeout(resolve, ms));\n\n// Check if repository has GitHub Actions workflows configured\nconst hasWorkflowsConfigured = async (): Promise<boolean> => {\n const octokit = getOctokit();\n const { owner, repo } = await getRepoDetails();\n\n try {\n const response = await octokit.actions.listRepoWorkflows({\n owner,\n repo,\n });\n\n return response.data.workflows.length > 0;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (error: any) {\n // If we can't check workflows (e.g., no Actions permission), assume they might exist\n return true;\n }\n};\n\nexport const waitForPullRequestChecks = async (prNumber: number, options: { timeout?: number; skipUserConfirmation?: boolean } = {}): Promise<void> => {\n const octokit = getOctokit();\n const { owner, repo } = await getRepoDetails();\n const logger = getLogger();\n const timeout = options.timeout || 300000; // 5 minutes default timeout\n const skipUserConfirmation = options.skipUserConfirmation || false;\n\n const startTime = Date.now();\n let consecutiveNoChecksCount = 0;\n const maxConsecutiveNoChecks = 6; // 6 consecutive checks (1 minute) with no checks before asking user\n\n while (true) {\n const elapsedTime = Date.now() - startTime;\n\n // Check for timeout\n if (elapsedTime > timeout) {\n logger.warn(`Timeout reached (${timeout / 1000}s) while waiting for PR #${prNumber} checks.`);\n\n if (!skipUserConfirmation) {\n const proceedWithoutChecks = await promptConfirmation(\n `⚠️ Timeout reached while waiting for PR #${prNumber} checks.\\n` +\n `This might indicate that no checks are configured for this repository.\\n` +\n `Do you want to proceed with merging the PR without waiting for checks?`\n );\n\n if (proceedWithoutChecks) {\n logger.info('User chose to proceed without waiting for checks.');\n return;\n } else {\n throw new Error(`Timeout waiting for PR #${prNumber} checks. User chose not to proceed.`);\n }\n } else {\n throw new Error(`Timeout waiting for PR #${prNumber} checks (${timeout / 1000}s)`);\n }\n }\n\n const pr = await octokit.pulls.get({\n owner,\n repo,\n pull_number: prNumber,\n });\n\n const checkRunsResponse = await octokit.checks.listForRef({\n owner,\n repo,\n ref: pr.data.head.sha,\n });\n\n const checkRuns = checkRunsResponse.data.check_runs;\n\n if (checkRuns.length === 0) {\n consecutiveNoChecksCount++;\n logger.info(`PR #${prNumber}: No checks found (${consecutiveNoChecksCount}/${maxConsecutiveNoChecks}). Waiting...`);\n\n // After several consecutive \"no checks\" responses, check if workflows are configured\n if (consecutiveNoChecksCount >= maxConsecutiveNoChecks) {\n logger.info(`No checks detected for ${maxConsecutiveNoChecks} consecutive attempts. Checking repository configuration...`);\n\n const hasWorkflows = await hasWorkflowsConfigured();\n\n if (!hasWorkflows) {\n logger.warn(`No GitHub Actions workflows found in repository ${owner}/${repo}.`);\n\n if (!skipUserConfirmation) {\n const proceedWithoutChecks = await promptConfirmation(\n `⚠️ No GitHub Actions workflows or checks are configured for this repository.\\n` +\n `PR #${prNumber} will never have status checks to wait for.\\n` +\n `Do you want to proceed with merging the PR without checks?`\n );\n\n if (proceedWithoutChecks) {\n logger.info('User chose to proceed without checks (no workflows configured).');\n return;\n } else {\n throw new Error(`No checks configured for PR #${prNumber}. User chose not to proceed.`);\n }\n } else {\n // In non-interactive mode, proceed if no workflows are configured\n logger.info('No workflows configured, proceeding without checks.');\n return;\n }\n } else {\n logger.info('GitHub Actions workflows are configured. Continuing to wait for checks...');\n consecutiveNoChecksCount = 0; // Reset counter since workflows exist\n }\n }\n\n await delay(10000);\n continue;\n }\n\n // Reset the no-checks counter since we found some checks\n consecutiveNoChecksCount = 0;\n\n const failingChecks = checkRuns.filter(\n (cr) => cr.conclusion && ['failure', 'timed_out', 'cancelled'].includes(cr.conclusion)\n );\n\n if (failingChecks.length > 0) {\n const { owner, repo } = await getRepoDetails();\n const prUrl = `https://github.com/${owner}/${repo}/pull/${prNumber}`;\n\n // Get current branch name for better guidance\n let currentBranch: string | undefined;\n try {\n currentBranch = await getCurrentBranchName();\n } catch {\n // Fallback to generic branch reference if we can't get the current branch\n currentBranch = undefined;\n }\n\n // Collect detailed information about each failed check\n const detailedFailedChecks = await Promise.all(\n failingChecks.map(async (check) => {\n try {\n // Get additional details from the check run\n const checkDetails = await octokit.checks.get({\n owner,\n repo,\n check_run_id: check.id,\n });\n\n return {\n name: check.name,\n conclusion: check.conclusion || 'unknown',\n detailsUrl: check.details_url || undefined,\n summary: checkDetails.data.output?.summary || undefined,\n output: {\n title: checkDetails.data.output?.title || undefined,\n summary: checkDetails.data.output?.summary || undefined,\n text: checkDetails.data.output?.text || undefined,\n },\n };\n } catch {\n // Fallback to basic information if we can't get details\n return {\n name: check.name,\n conclusion: check.conclusion || 'unknown',\n detailsUrl: check.details_url || undefined,\n };\n }\n })\n );\n\n logger.error(`❌ PR #${prNumber} has ${failingChecks.length} failing check${failingChecks.length > 1 ? 's' : ''}:`);\n logger.error('');\n\n for (const check of detailedFailedChecks) {\n const statusIcon = check.conclusion === 'failure' ? '❌' :\n check.conclusion === 'timed_out' ? '⏰' : '🚫';\n logger.error(`${statusIcon} ${check.name}: ${check.conclusion}`);\n\n // Show more detailed error information if available\n if (check.output?.title && check.output.title !== check.name) {\n logger.error(` Issue: ${check.output.title}`);\n }\n\n if (check.output?.summary) {\n // Truncate very long summaries\n const summary = check.output.summary.length > 200\n ? check.output.summary.substring(0, 200) + '...'\n : check.output.summary;\n logger.error(` Summary: ${summary}`);\n }\n\n // Include direct link to check details\n if (check.detailsUrl) {\n logger.error(` Details: ${check.detailsUrl}`);\n }\n logger.error('');\n }\n\n // Import the new error class\n const { PullRequestCheckError } = await import('../error/CommandErrors');\n\n // Create and throw the enhanced error with detailed recovery instructions\n const prError = new PullRequestCheckError(\n `PR #${prNumber} checks failed. ${failingChecks.length} check${failingChecks.length > 1 ? 's' : ''} failed.`,\n prNumber,\n detailedFailedChecks,\n prUrl,\n currentBranch\n );\n\n // Display recovery instructions\n const instructions = prError.getRecoveryInstructions();\n for (const instruction of instructions) {\n logger.error(instruction);\n }\n logger.error('');\n\n throw prError;\n }\n\n const allChecksCompleted = checkRuns.every((cr) => cr.status === 'completed');\n\n if (allChecksCompleted) {\n logger.info(`All checks for PR #${prNumber} have completed successfully.`);\n return;\n }\n\n const completedCount = checkRuns.filter(cr => cr.status === 'completed').length;\n logger.info(`PR #${prNumber} checks: ${completedCount}/${checkRuns.length} completed. Waiting...`);\n\n await delay(10000); // wait 10 seconds\n }\n};\n\nexport const mergePullRequest = async (prNumber: number, mergeMethod: MergeMethod = 'squash'): Promise<void> => {\n const octokit = getOctokit();\n const { owner, repo } = await getRepoDetails();\n const logger = getLogger();\n\n logger.info(`Merging PR #${prNumber} using ${mergeMethod} method...`);\n const pr = await octokit.pulls.get({\n owner,\n repo,\n pull_number: prNumber,\n });\n const headBranch = pr.data.head.ref;\n\n await octokit.pulls.merge({\n owner,\n repo,\n pull_number: prNumber,\n merge_method: mergeMethod,\n });\n logger.info(`PR #${prNumber} merged using ${mergeMethod} method.`);\n\n logger.info(`Deleting branch ${headBranch}...`);\n await octokit.git.deleteRef({\n owner,\n repo,\n ref: `heads/${headBranch}`,\n });\n logger.info(`Branch ${headBranch} deleted.`);\n};\n\nexport const createRelease = async (tagName: string, title: string, notes: string): Promise<void> => {\n const octokit = getOctokit();\n const { owner, repo } = await getRepoDetails();\n const logger = getLogger();\n\n logger.info(`Creating release for tag ${tagName}...`);\n await octokit.repos.createRelease({\n owner,\n repo,\n tag_name: tagName,\n name: title,\n body: notes,\n });\n logger.info(`Release ${tagName} created.`);\n};\n\nexport const getReleaseByTagName = async (tagName: string): Promise<any> => {\n const octokit = getOctokit();\n const { owner, repo } = await getRepoDetails();\n const logger = getLogger();\n\n try {\n const response = await octokit.repos.getReleaseByTag({\n owner,\n repo,\n tag: tagName,\n });\n\n logger.debug(`Found release for tag ${tagName}: created at ${response.data.created_at}`);\n return response.data;\n } catch (error: any) {\n logger.debug(`Failed to get release for tag ${tagName}: ${error.message}`);\n throw error;\n }\n};\n\nexport const getOpenIssues = async (limit: number = 20): Promise<string> => {\n const octokit = getOctokit();\n const { owner, repo } = await getRepoDetails();\n const logger = getLogger();\n\n try {\n logger.debug(`Fetching up to ${limit} open GitHub issues...`);\n\n const response = await octokit.issues.listForRepo({\n owner,\n repo,\n state: 'open',\n per_page: Math.min(limit, 100), // GitHub API limit\n sort: 'updated',\n direction: 'desc',\n });\n\n const issues = response.data.filter(issue => !issue.pull_request); // Filter out PRs\n\n if (issues.length === 0) {\n logger.debug('No open issues found');\n return '';\n }\n\n const issueStrings = issues.slice(0, limit).map(issue => {\n const labels = issue.labels.map(label =>\n typeof label === 'string' ? label : label.name\n ).join(', ');\n\n return [\n `Issue #${issue.number}: ${issue.title}`,\n `Labels: ${labels || 'none'}`,\n `Created: ${issue.created_at}`,\n `Updated: ${issue.updated_at}`,\n `Body: ${issue.body?.substring(0, 500) || 'No description'}${issue.body && issue.body.length > 500 ? '...' : ''}`,\n '---'\n ].join('\\n');\n });\n\n logger.debug(`Fetched ${issues.length} open issues`);\n return issueStrings.join('\\n\\n');\n } catch (error: any) {\n logger.warn('Failed to fetch GitHub issues: %s', error.message);\n return '';\n }\n};\n\nexport const createIssue = async (\n title: string,\n body: string,\n labels?: string[]\n): Promise<{ number: number; html_url: string }> => {\n const octokit = getOctokit();\n const { owner, repo } = await getRepoDetails();\n\n const response = await octokit.issues.create({\n owner,\n repo,\n title,\n body,\n labels: labels || [],\n });\n\n return {\n number: response.data.number,\n html_url: response.data.html_url,\n };\n};\n\nexport const getWorkflowRunsTriggeredByRelease = async (tagName: string, workflowNames?: string[]): Promise<any[]> => {\n const octokit = getOctokit();\n const { owner, repo } = await getRepoDetails();\n const logger = getLogger();\n\n try {\n logger.debug(`Fetching workflow runs triggered by release ${tagName}...`);\n\n // Get release information to filter by creation time and commit SHA\n let releaseInfo: any;\n try {\n releaseInfo = await getReleaseByTagName(tagName);\n } catch (error: any) {\n logger.warn(`Could not get release info for ${tagName}: ${error.message}. Will use fallback filtering.`);\n }\n\n const releaseCreatedAt = releaseInfo?.created_at;\n const releaseCommitSha = releaseInfo?.target_commitish;\n\n if (releaseCreatedAt) {\n logger.debug(`Release ${tagName} was created at ${releaseCreatedAt}, filtering workflows created after this time`);\n }\n\n // Get all workflows\n const workflowsResponse = await octokit.actions.listRepoWorkflows({\n owner,\n repo,\n });\n\n const relevantWorkflows = workflowsResponse.data.workflows.filter(workflow => {\n // If specific workflow names are provided, only include those\n if (workflowNames && workflowNames.length > 0) {\n return workflowNames.includes(workflow.name);\n }\n // Otherwise, find workflows that trigger on releases\n return true; // We'll filter by event later when we get the runs\n });\n\n logger.debug(`Found ${relevantWorkflows.length} workflows to check`);\n\n const allRuns: any[] = [];\n\n // Get recent workflow runs for each workflow\n for (const workflow of relevantWorkflows) {\n try {\n const runsResponse = await octokit.actions.listWorkflowRuns({\n owner,\n repo,\n workflow_id: workflow.id,\n per_page: 20, // Check more runs to account for filtering\n });\n\n // Filter runs that were triggered by our specific release\n const releaseRuns = runsResponse.data.workflow_runs.filter(run => {\n // Must be a release or push event (tag pushes trigger workflows with event=push)\n if (run.event !== 'release' && run.event !== 'push') {\n logger.debug(`Excluding workflow run ${run.id}: not a release or push event (${run.event})`);\n return false;\n }\n\n // For push events, be more restrictive - only include if head_branch is null (indicating tag push)\n if (run.event === 'push') {\n // Tag pushes typically have head_branch as null, branch pushes have the branch name\n if (run.head_branch !== null) {\n logger.debug(`Excluding push event workflow run ${run.id}: appears to be branch push (head_branch: ${run.head_branch})`);\n return false;\n }\n logger.debug(`Including push event workflow run ${run.id}: appears to be tag push (head_branch: null)`);\n }\n\n // Must have required data\n if (!run.head_sha || !run.created_at) {\n logger.debug(`Excluding workflow run ${run.id}: missing required data (head_sha: ${run.head_sha}, created_at: ${run.created_at})`);\n return false;\n }\n\n // If we have release info, filter by creation time more strictly\n if (releaseCreatedAt) {\n const runCreatedAt = new Date(run.created_at).getTime();\n const releaseCreatedAtTime = new Date(releaseCreatedAt).getTime();\n\n // Be more strict: only include runs created within 10 minutes after the release\n // This helps exclude old workflow runs that might match other criteria\n const timeDiff = runCreatedAt - releaseCreatedAtTime;\n if (timeDiff < -30000 || timeDiff > 600000) { // 30 seconds before to 10 minutes after\n logger.debug(`Excluding workflow run ${run.id}: outside time window (run: ${run.created_at}, release: ${releaseCreatedAt}, diff: ${timeDiff}ms)`);\n return false;\n }\n }\n\n // Additional check: if we have the release commit SHA, be stricter about matching it\n if (releaseCommitSha && run.head_sha !== releaseCommitSha) {\n logger.debug(`Excluding workflow run ${run.id}: commit SHA mismatch (run: ${run.head_sha}, release: ${releaseCommitSha})`);\n return false; // Be strict about commit SHA matching\n }\n\n // If we don't have release info, use more permissive fallback filtering\n // For tag pushes, head_branch is often null, so we can't rely on branch name matching\n if (!releaseCreatedAt && run.event === 'release' && run.head_branch && !run.head_branch.includes(tagName.replace('v', ''))) {\n logger.debug(`Excluding workflow run ${run.id}: branch doesn't match tag pattern for release event (branch: ${run.head_branch}, tag: ${tagName})`);\n return false;\n }\n\n // For push events without release info, be conservative and exclude them\n // unless we have other indicators that this is a tag push\n if (!releaseCreatedAt && run.event === 'push') {\n logger.debug(`Excluding push event workflow run ${run.id} due to lack of release info (cannot confirm this is a tag push)`);\n return false;\n }\n\n logger.debug(`Including workflow run ${run.id}: ${run.name} (${run.status}/${run.conclusion}) created ${run.created_at}`);\n return true;\n });\n\n allRuns.push(...releaseRuns);\n\n if (releaseRuns.length > 0) {\n logger.debug(`Found ${releaseRuns.length} relevant workflow runs for ${workflow.name}`);\n }\n } catch (error: any) {\n logger.warn(`Failed to get runs for workflow ${workflow.name}: ${error.message}`);\n }\n }\n\n // Sort by creation time (newest first) and prioritize runs with matching commit SHA\n allRuns.sort((a, b) => {\n // First, prioritize runs with matching commit SHA if we have release info\n if (releaseCommitSha) {\n const aMatches = a.head_sha === releaseCommitSha;\n const bMatches = b.head_sha === releaseCommitSha;\n if (aMatches && !bMatches) return -1;\n if (!aMatches && bMatches) return 1;\n }\n\n // Then sort by creation time (newest first)\n return new Date(b.created_at).getTime() - new Date(a.created_at).getTime();\n });\n\n logger.debug(`Found ${allRuns.length} workflow runs triggered by release ${tagName}`);\n\n if (allRuns.length > 0 && releaseCreatedAt) {\n logger.debug(`Workflow runs created after release ${tagName}:`);\n allRuns.forEach(run => {\n logger.debug(`- ${run.name}: created ${run.created_at}, commit ${run.head_sha?.substring(0, 7)}`);\n });\n }\n\n return allRuns;\n } catch (error: any) {\n logger.warn(`Failed to fetch workflow runs: ${error.message}`);\n return [];\n }\n};\n\nexport const waitForReleaseWorkflows = async (\n tagName: string,\n options: {\n timeout?: number;\n workflowNames?: string[];\n skipUserConfirmation?: boolean;\n } = {}\n): Promise<void> => {\n const logger = getLogger();\n const timeout = options.timeout || 600000; // 10 minutes default\n const skipUserConfirmation = options.skipUserConfirmation || false;\n\n logger.info(`Waiting for workflows triggered by release ${tagName}...`);\n\n // Wait a bit for workflows to start (GitHub can take a moment to trigger them)\n logger.debug('Waiting 30 seconds for workflows to start...');\n await delay(30000);\n\n const startTime = Date.now();\n let workflowRuns: any[] = [];\n let consecutiveNoWorkflowsCount = 0;\n const maxConsecutiveNoWorkflows = 6; // 1 minute of checking before asking user\n\n while (true) {\n const elapsedTime = Date.now() - startTime;\n\n // Check for timeout\n if (elapsedTime > timeout) {\n logger.warn(`Timeout reached (${timeout / 1000}s) while waiting for release workflows.`);\n\n if (!skipUserConfirmation) {\n const proceedWithoutWorkflows = await promptConfirmation(\n `⚠️ Timeout reached while waiting for release workflows for ${tagName}.\\n` +\n `This might indicate that no workflows are configured to trigger on releases.\\n` +\n `Do you want to proceed anyway?`\n );\n\n if (proceedWithoutWorkflows) {\n logger.info('User chose to proceed without waiting for release workflows.');\n return;\n } else {\n throw new Error(`Timeout waiting for release workflows for ${tagName}. User chose not to proceed.`);\n }\n } else {\n throw new Error(`Timeout waiting for release workflows for ${tagName} (${timeout / 1000}s)`);\n }\n }\n\n // Get current workflow runs\n workflowRuns = await getWorkflowRunsTriggeredByRelease(tagName, options.workflowNames);\n\n if (workflowRuns.length === 0) {\n consecutiveNoWorkflowsCount++;\n logger.info(`No release workflows found (${consecutiveNoWorkflowsCount}/${maxConsecutiveNoWorkflows}). Waiting...`);\n\n // After several attempts with no workflows, ask user if they want to continue\n if (consecutiveNoWorkflowsCount >= maxConsecutiveNoWorkflows) {\n logger.warn(`No workflows triggered by release ${tagName} after ${maxConsecutiveNoWorkflows} attempts.`);\n\n if (!skipUserConfirmation) {\n const proceedWithoutWorkflows = await promptConfirmation(\n `⚠️ No GitHub Actions workflows appear to be triggered by the release ${tagName}.\\n` +\n `This might be expected if no workflows are configured for release events.\\n` +\n `Do you want to proceed without waiting for workflows?`\n );\n\n if (proceedWithoutWorkflows) {\n logger.info('User chose to proceed without release workflows.');\n return;\n } else {\n throw new Error(`No release workflows found for ${tagName}. User chose not to proceed.`);\n }\n } else {\n // In non-interactive mode, proceed if no workflows are found\n logger.info('No release workflows found, proceeding.');\n return;\n }\n }\n\n await delay(10000);\n continue;\n }\n\n // Reset counter since we found workflows\n consecutiveNoWorkflowsCount = 0;\n\n // Check status of all workflow runs\n const failingRuns = workflowRuns.filter(run =>\n run.conclusion && ['failure', 'timed_out', 'cancelled'].includes(run.conclusion)\n );\n\n if (failingRuns.length > 0) {\n logger.error(`Release workflows for ${tagName} have failures:`);\n for (const run of failingRuns) {\n logger.error(`- ${run.name}: ${run.conclusion} (${run.html_url})`);\n }\n throw new Error(`Release workflows for ${tagName} failed.`);\n }\n\n const allWorkflowsCompleted = workflowRuns.every(run => run.status === 'completed');\n\n if (allWorkflowsCompleted) {\n const successfulRuns = workflowRuns.filter(run => run.conclusion === 'success');\n logger.info(`All ${workflowRuns.length} release workflows for ${tagName} completed successfully.`);\n for (const run of successfulRuns) {\n logger.info(`✓ ${run.name}: ${run.conclusion}`);\n }\n return;\n }\n\n const completedCount = workflowRuns.filter(run => run.status === 'completed').length;\n const runningCount = workflowRuns.filter(run => run.status === 'in_progress').length;\n const queuedCount = workflowRuns.filter(run => run.status === 'queued').length;\n\n // Log detailed information about each workflow run being tracked\n if (workflowRuns.length > 0) {\n logger.debug(`Tracking ${workflowRuns.length} workflow runs for release ${tagName}:`);\n workflowRuns.forEach(run => {\n const statusIcon = run.status === 'completed' ?\n (run.conclusion === 'success' ? '✅' : run.conclusion === 'failure' ? '❌' : '⚠️') :\n run.status === 'in_progress' ? '🔄' : '⏳';\n logger.debug(` ${statusIcon} ${run.name} (${run.status}${run.conclusion ? `/${run.conclusion}` : ''}) - created ${run.created_at}`);\n });\n }\n\n logger.info(\n `Release workflows for ${tagName}: ${completedCount} completed, ${runningCount} running, ${queuedCount} queued (${workflowRuns.length} total)`\n );\n\n await delay(15000); // wait 15 seconds\n }\n};\n\nexport const getWorkflowsTriggeredByRelease = async (): Promise<string[]> => {\n const octokit = getOctokit();\n const { owner, repo } = await getRepoDetails();\n const logger = getLogger();\n\n try {\n logger.debug('Analyzing workflows to find those triggered by release events...');\n\n // Get all workflows\n const workflowsResponse = await octokit.actions.listRepoWorkflows({\n owner,\n repo,\n });\n\n const releaseWorkflows: string[] = [];\n\n // Check each workflow's configuration\n for (const workflow of workflowsResponse.data.workflows) {\n try {\n // Get the workflow file content\n const workflowPath = workflow.path;\n logger.debug(`Analyzing workflow: ${workflow.name} (${workflowPath})`);\n\n const contentResponse = await octokit.repos.getContent({\n owner,\n repo,\n path: workflowPath,\n });\n\n // Handle the response - it could be a file or directory\n if ('content' in contentResponse.data && contentResponse.data.type === 'file') {\n // Decode the base64 content\n const content = Buffer.from(contentResponse.data.content, 'base64').toString('utf-8');\n\n // Parse the YAML to check trigger conditions\n if (isTriggeredByRelease(content, workflow.name)) {\n logger.debug(`✓ Workflow \"${workflow.name}\" will be triggered by release events`);\n releaseWorkflows.push(workflow.name);\n } else {\n logger.debug(`✗ Workflow \"${workflow.name}\" will not be triggered by release events`);\n }\n } else {\n logger.warn(`Could not read content for workflow ${workflow.name}`);\n }\n } catch (error: any) {\n logger.warn(`Failed to analyze workflow ${workflow.name}: ${error.message}`);\n }\n }\n\n logger.info(`Found ${releaseWorkflows.length} workflows that will be triggered by release events: ${releaseWorkflows.join(', ')}`);\n return releaseWorkflows;\n } catch (error: any) {\n logger.error(`Failed to analyze workflows: ${error.message}`);\n return [];\n }\n};\n\nconst isTriggeredByRelease = (workflowContent: string, workflowName: string): boolean => {\n const logger = getLogger();\n\n try {\n // Simple regex-based parsing since we don't want to add a YAML dependency\n // Look for common release trigger patterns\n\n // Pattern 1: on.release (with or without types)\n // on:\n // release:\n // types: [published, created, ...]\n const releaseEventPattern = /(?:^|\\n)\\s*on\\s*:\\s*(?:\\n|\\r\\n)(?:\\s+[^\\S\\r\\n]+)*(?:\\s+release\\s*:)/m;\n\n // Pattern 2: on: [push, release] or on: release\n const onReleasePattern = /(?:^|\\n)\\s*on\\s*:\\s*(?:\\[.*release.*\\]|release)\\s*(?:\\n|$)/m;\n\n // Pattern 3: push with tag patterns that look like releases\n // on:\n // push:\n // tags:\n // - 'v*'\n // - 'release/*'\n const tagPushPattern = /(?:^|\\r?\\n)[^\\S\\r\\n]*on\\s*:\\s*\\r?\\n(?:[^\\S\\r\\n]*[^\\r\\n]+(?:\\r?\\n))*?[^\\S\\r\\n]*push\\s*:\\s*\\r?\\n(?:[^\\S\\r\\n]*tags\\s*:\\s*(?:\\r?\\n|\\[)[^\\]\\r\\n]*(?:v\\*|release|tag)[^\\]\\r\\n]*)/mi;\n\n const isTriggered = releaseEventPattern.test(workflowContent) ||\n onReleasePattern.test(workflowContent) ||\n tagPushPattern.test(workflowContent);\n\n if (isTriggered) {\n logger.debug(`Workflow \"${workflowName}\" trigger patterns detected in content`);\n }\n\n return isTriggered;\n } catch (error: any) {\n logger.warn(`Failed to parse workflow content for ${workflowName}: ${error.message}`);\n return false;\n }\n};\n"],"names":["getOctokit","logger","getLogger","token","process","env","GITHUB_TOKEN","error","Error","Octokit","auth","getCurrentBranchName","stdout","run","trim","getRepoDetails","url","match","owner","repo","createPullRequest","title","body","head","base","octokit","response","pulls","create","data","findOpenPullRequestByHeadRef","debug","list","state","length","message","status","delay","ms","Promise","resolve","setTimeout","hasWorkflowsConfigured","actions","listRepoWorkflows","workflows","waitForPullRequestChecks","prNumber","options","timeout","skipUserConfirmation","startTime","Date","now","consecutiveNoChecksCount","maxConsecutiveNoChecks","elapsedTime","warn","proceedWithoutChecks","promptConfirmation","info","pr","get","pull_number","checkRunsResponse","checks","listForRef","ref","sha","checkRuns","check_runs","hasWorkflows","failingChecks","filter","cr","conclusion","includes","prUrl","currentBranch","undefined","detailedFailedChecks","all","map","check","checkDetails","check_run_id","id","name","detailsUrl","details_url","summary","output","text","statusIcon","substring","PullRequestCheckError","prError","instructions","getRecoveryInstructions","instruction","allChecksCompleted","every","completedCount","mergePullRequest","mergeMethod","headBranch","merge","merge_method","git","deleteRef","createRelease","tagName","notes","repos","tag_name","getReleaseByTagName","getReleaseByTag","tag","created_at","getOpenIssues","limit","issues","listForRepo","per_page","Math","min","sort","direction","issue","pull_request","issueStrings","slice","labels","label","join","number","updated_at","createIssue","html_url","getWorkflowRunsTriggeredByRelease","workflowNames","releaseInfo","releaseCreatedAt","releaseCommitSha","target_commitish","workflowsResponse","relevantWorkflows","workflow","allRuns","runsResponse","listWorkflowRuns","workflow_id","releaseRuns","workflow_runs","event","head_branch","head_sha","runCreatedAt","getTime","releaseCreatedAtTime","timeDiff","replace","push","a","b","aMatches","bMatches","forEach","waitForReleaseWorkflows","workflowRuns","consecutiveNoWorkflowsCount","maxConsecutiveNoWorkflows","proceedWithoutWorkflows","failingRuns","allWorkflowsCompleted","successfulRuns","runningCount","queuedCount","getWorkflowsTriggeredByRelease","releaseWorkflows","workflowPath","path","contentResponse","getContent","type","content","Buffer","from","toString","isTriggeredByRelease","workflowContent","workflowName","releaseEventPattern","onReleasePattern","tagPushPattern","isTriggered","test"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eldrforge/kodrdriv",
3
- "version": "0.0.37",
3
+ "version": "0.0.39",
4
4
  "description": "Create Intelligent Release Notes or Change Logs from Git",
5
5
  "main": "dist/main.js",
6
6
  "type": "module",