1- const { BEGINNER_LABEL , INTERMEDIATE_LABEL , ADVANCED_LABEL } = require ( './shared/labels.js' ) ;
1+ const {
2+ GOOD_FIRST_ISSUE_LABEL ,
3+ BEGINNER_LABEL ,
4+ INTERMEDIATE_LABEL ,
5+ ADVANCED_LABEL ,
6+ isSafeLabel,
7+ } = require ( './shared/labels.js' ) ;
8+
9+ for ( const label of [ GOOD_FIRST_ISSUE_LABEL , BEGINNER_LABEL , INTERMEDIATE_LABEL , ADVANCED_LABEL ] ) {
10+ if ( ! isSafeLabel ( label ) ) {
11+ throw new Error ( `Invalid configured label: ${ label } ` ) ;
12+ }
13+ }
214
315const SUPPORTED_GFI_REPOS = [
416 'hiero-sdk-cpp' ,
@@ -61,7 +73,7 @@ module.exports = async ({ github, context, core }) => {
6173 // Determine issue difficulty level
6274 const difficultyLevels = {
6375 beginner : labelSet . has ( BEGINNER_LABEL . toLowerCase ( ) ) ,
64- goodFirstIssue : labelSet . has ( 'good first issue' ) ,
76+ goodFirstIssue : labelSet . has ( GOOD_FIRST_ISSUE_LABEL . toLowerCase ( ) ) ,
6577 intermediate : labelSet . has ( INTERMEDIATE_LABEL . toLowerCase ( ) ) ,
6678 advanced : labelSet . has ( ADVANCED_LABEL . toLowerCase ( ) ) ,
6779 } ;
@@ -83,21 +95,21 @@ module.exports = async ({ github, context, core }) => {
8395 let isFallback = false ;
8496
8597 recommendedIssues = await searchIssues ( github , core , repoOwner , repoName , BEGINNER_LABEL ) ;
86- recommendedLabel = 'Beginner' ;
98+ recommendedLabel = BEGINNER_LABEL ;
8799
88100 if ( recommendedIssues . length === 0 ) {
89101 isFallback = true ;
90- recommendedIssues = await searchIssues ( github , core , repoOwner , repoName , 'good first issue' ) ;
91- recommendedLabel = 'Good First Issue' ;
102+ recommendedIssues = await searchIssues ( github , core , repoOwner , repoName , GOOD_FIRST_ISSUE_LABEL ) ;
103+ recommendedLabel = GOOD_FIRST_ISSUE_LABEL ;
92104 }
93105
94106
95107 // Remove the issue they just solved
96108 recommendedIssues = recommendedIssues . filter ( i => i . number !== issueNumber ) ;
97109
98110 // Generate and post comment
99- const completedLabel = difficultyLevels . goodFirstIssue ? 'Good First Issue' : 'Beginner' ;
100- const completedLabelText = completedLabel === 'Beginner' ? 'Beginner issue' : completedLabel ;
111+ const completedLabel = difficultyLevels . goodFirstIssue ? GOOD_FIRST_ISSUE_LABEL : BEGINNER_LABEL ;
112+ const completedLabelText = completedLabel === BEGINNER_LABEL ? ` ${ BEGINNER_LABEL } issue` : completedLabel ;
101113 const recommendationMeta = {
102114 completedLabelText,
103115 recommendedLabel,
@@ -172,7 +184,7 @@ async function generateAndPostComment(github, context, core, prNumber, recommend
172184 `org:${ context . repo . owner } ` ,
173185 'archived:false' ,
174186 'no:assignee' ,
175- '( label:"good first issue" OR label:"skill: good first issue")' ,
187+ ` label:"${ GOOD_FIRST_ISSUE_LABEL } "` ,
176188 `(${ repoQuery } )` ,
177189 ] . join ( ' ' ) ;
178190
0 commit comments