@@ -10,15 +10,29 @@ async function main(): Promise<void> {
10
10
try {
11
11
console . log ( chalk . bold . cyan ( "\n🚀 RELEASE PREPARATION WIZARD 🚀\n" ) ) ;
12
12
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 ) ;
18
33
}
19
34
20
35
// Step 1: Initialize Jira client
21
- console . log ( chalk . bold ( "📋 STEP 1: Initialize Jira" ) ) ;
22
36
let jira : Jira ;
23
37
try {
24
38
jira = await initializeJiraClient ( ) ;
@@ -87,7 +101,7 @@ async function main(): Promise<void> {
87
101
console . log ( chalk . green ( "✅ Branch pushed to GitHub" ) ) ;
88
102
89
103
console . log ( chalk . bold ( "\n📋 STEP 5: GitHub Release Workflow" ) ) ;
90
- await triggerGitHubReleaseWorkflow ( pkg . name , tmpBranchName , githubToken ) ;
104
+ await triggerGitHubReleaseWorkflow ( pkg . name , tmpBranchName ) ;
91
105
92
106
console . log ( chalk . bold ( "\n📋 STEP 6: Jira Issue Management" ) ) ;
93
107
await manageIssuesForVersion ( jira , jiraVersion . id , jiraVersionName ) ;
@@ -229,29 +243,21 @@ async function manageIssuesForVersion(jira: Jira, versionId: string, versionName
229
243
}
230
244
}
231
245
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
+ } ) ;
244
253
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 } ` ) ) ;
255
261
showManualTriggerInstructions ( packageName , branchName ) ;
256
262
}
257
263
} else {
@@ -347,7 +353,6 @@ async function createReleaseBranch(packageName: string, version: string): Promis
347
353
}
348
354
349
355
async function initializeJiraClient ( ) : Promise < Jira > {
350
- console . log ( chalk . bold ( "🔍 Checking Jira environment variables" ) ) ;
351
356
const projectKey = process . env . JIRA_PROJECT_KEY ;
352
357
const baseUrl = process . env . JIRA_BASE_URL ;
353
358
const apiToken = process . env . JIRA_API_TOKEN ;
@@ -358,6 +363,7 @@ async function initializeJiraClient(): Promise<Jira> {
358
363
console . log ( chalk . dim ( " export JIRA_PROJECT_KEY=WEB" ) ) ;
359
364
console . log ( chalk . dim ( " export JIRA_BASE_URL=https://your-company.atlassian.net" ) ) ;
360
365
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" ) ) ;
361
367
throw new Error ( "Missing Jira environment variables" ) ;
362
368
}
363
369
0 commit comments