@@ -10,15 +10,29 @@ async function main(): Promise<void> {
1010 try {
1111 console . log ( chalk . bold . cyan ( "\n🚀 RELEASE PREPARATION WIZARD 🚀\n" ) ) ;
1212
13- // Check for GitHub token
14- const githubToken = process . env . GH_PAT ;
15- if ( ! githubToken ) {
16- console . warn ( chalk . yellow ( "⚠️ GH_PAT environment variable not set" ) ) ;
17- console . warn ( chalk . yellow ( " GitHub workflow will need manual triggering" ) ) ;
13+ console . log ( chalk . bold ( "📋 STEP 1: Initialize Jira and GitHub" ) ) ;
14+
15+ // Check GitHub authentication
16+ try {
17+ await gh . ensureAuth ( ) ;
18+ console . log ( chalk . green ( "✅ GitHub authentication verified" ) ) ;
19+ } catch ( error ) {
20+ console . log ( chalk . red ( `❌ GitHub authentication failed: ${ ( error as Error ) . message } ` ) ) ;
21+ console . log ( chalk . yellow ( "\n💡 First, make sure GitHub CLI is installed:" ) ) ;
22+ console . log ( chalk . cyan ( " Download from: https://cli.github.com/" ) ) ;
23+ console . log ( chalk . cyan ( " Or install via brew: brew install gh" ) ) ;
24+ console . log ( chalk . yellow ( "\n💡 Then authenticate with GitHub using one of these options:" ) ) ;
25+ console . log ( chalk . yellow ( " 1. Set GITHUB_TOKEN environment variable:" ) ) ;
26+ console . log ( chalk . cyan ( " export GITHUB_TOKEN=your_token_here" ) ) ;
27+ console . log ( chalk . yellow ( " 2. Set GH_PAT environment variable:" ) ) ;
28+ console . log ( chalk . cyan ( " export GH_PAT=your_token_here" ) ) ;
29+ console . log ( chalk . yellow ( " 3. Use GitHub CLI to authenticate:" ) ) ;
30+ console . log ( chalk . cyan ( " gh auth login" ) ) ;
31+ console . log ( chalk . yellow ( "\n Get a token at: https://github.com/settings/tokens" ) ) ;
32+ process . exit ( 1 ) ;
1833 }
1934
2035 // Step 1: Initialize Jira client
21- console . log ( chalk . bold ( "📋 STEP 1: Initialize Jira" ) ) ;
2236 let jira : Jira ;
2337 try {
2438 jira = await initializeJiraClient ( ) ;
@@ -87,7 +101,7 @@ async function main(): Promise<void> {
87101 console . log ( chalk . green ( "✅ Branch pushed to GitHub" ) ) ;
88102
89103 console . log ( chalk . bold ( "\n📋 STEP 5: GitHub Release Workflow" ) ) ;
90- await triggerGitHubReleaseWorkflow ( pkg . name , tmpBranchName , githubToken ) ;
104+ await triggerGitHubReleaseWorkflow ( pkg . name , tmpBranchName ) ;
91105
92106 console . log ( chalk . bold ( "\n📋 STEP 6: Jira Issue Management" ) ) ;
93107 await manageIssuesForVersion ( jira , jiraVersion . id , jiraVersionName ) ;
@@ -229,29 +243,21 @@ async function manageIssuesForVersion(jira: Jira, versionId: string, versionName
229243 }
230244}
231245
232- async function triggerGitHubReleaseWorkflow (
233- packageName : string ,
234- branchName : string ,
235- githubToken ?: string
236- ) : Promise < void > {
237- if ( githubToken ) {
238- const { triggerWorkflow } = await prompt < { triggerWorkflow : boolean } > ( {
239- type : "confirm" ,
240- name : "triggerWorkflow" ,
241- message : "❓ Trigger GitHub release workflow now?" ,
242- initial : true
243- } ) ;
246+ async function triggerGitHubReleaseWorkflow ( packageName : string , branchName : string ) : Promise < void > {
247+ const { triggerWorkflow } = await prompt < { triggerWorkflow : boolean } > ( {
248+ type : "confirm" ,
249+ name : "triggerWorkflow" ,
250+ message : "❓ Trigger GitHub release workflow now?" ,
251+ initial : true
252+ } ) ;
244253
245- if ( triggerWorkflow ) {
246- console . log ( chalk . blue ( "🔄 Triggering GitHub release workflow..." ) ) ;
247- try {
248- await gh . triggerCreateReleaseWorkflow ( packageName , branchName ) ;
249- console . log ( chalk . green ( "✅ GitHub Release Workflow triggered" ) ) ;
250- } catch ( error ) {
251- console . error ( chalk . red ( `❌ Failed to trigger workflow: ${ ( error as Error ) . message } ` ) ) ;
252- showManualTriggerInstructions ( packageName , branchName ) ;
253- }
254- } else {
254+ if ( triggerWorkflow ) {
255+ console . log ( chalk . blue ( "🔄 Triggering GitHub release workflow..." ) ) ;
256+ try {
257+ await gh . triggerCreateReleaseWorkflow ( packageName , branchName ) ;
258+ console . log ( chalk . green ( "✅ GitHub Release Workflow triggered" ) ) ;
259+ } catch ( error ) {
260+ console . error ( chalk . red ( `❌ Failed to trigger workflow: ${ ( error as Error ) . message } ` ) ) ;
255261 showManualTriggerInstructions ( packageName , branchName ) ;
256262 }
257263 } else {
@@ -347,7 +353,6 @@ async function createReleaseBranch(packageName: string, version: string): Promis
347353}
348354
349355async function initializeJiraClient ( ) : Promise < Jira > {
350- console . log ( chalk . bold ( "🔍 Checking Jira environment variables" ) ) ;
351356 const projectKey = process . env . JIRA_PROJECT_KEY ;
352357 const baseUrl = process . env . JIRA_BASE_URL ;
353358 const apiToken = process . env . JIRA_API_TOKEN ;
@@ -358,6 +363,7 @@ async function initializeJiraClient(): Promise<Jira> {
358363 console . log ( chalk . dim ( " export JIRA_PROJECT_KEY=WEB" ) ) ;
359364 console . log ( chalk . dim ( " export JIRA_BASE_URL=https://your-company.atlassian.net" ) ) ;
360365 console . log ( chalk . dim ( " export [email protected] :ATATT3xFfGF0..." ) ) ; 366+ console . log ( chalk . dim ( " Get your API token at: https://id.atlassian.com/manage-profile/security/api-tokens" ) ) ;
361367 throw new Error ( "Missing Jira environment variables" ) ;
362368 }
363369
0 commit comments