@@ -38,15 +38,19 @@ class IssueService extends Base {
3838 return { message : `Successfully added labels to issue #${ issueNumber } ` , details : stdout . trim ( ) } ;
3939 } catch ( error ) {
4040 console . error ( `Error adding labels to issue #${ issueNumber } :` , error ) ;
41- throw new Error ( `Failed to add labels to issue #${ issueNumber } .` ) ;
41+ return {
42+ error : 'GitHub CLI command failed' ,
43+ message : `gh issue edit ${ issueNumber } --add-label failed with exit code ${ error . code } ` ,
44+ code : 'GH_CLI_ERROR'
45+ } ;
4246 }
4347 }
4448
4549 /**
4650 * Removes labels from an issue or pull request.
4751 * @param {number } issueNumber - The number of the issue or PR.
4852 * @param {string[] } labels - An array of labels to remove.
49- * @returns {Promise<object> } A promise that resolves to a success message .
53+ * @returns {Promise<object> } A promise that resolves to a success or error object .
5054 */
5155 async removeLabels ( issueNumber , labels ) {
5256 const labelString = labels . join ( ',' ) ;
@@ -55,7 +59,11 @@ class IssueService extends Base {
5559 return { message : `Successfully removed labels from issue #${ issueNumber } ` , details : stdout . trim ( ) } ;
5660 } catch ( error ) {
5761 console . error ( `Error removing labels from issue #${ issueNumber } :` , error ) ;
58- throw new Error ( `Failed to remove labels from issue #${ issueNumber } .` ) ;
62+ return {
63+ error : 'GitHub CLI command failed' ,
64+ message : `gh issue edit ${ issueNumber } --remove-label failed with exit code ${ error . code } ` ,
65+ code : 'GH_CLI_ERROR'
66+ } ;
5967 }
6068 }
6169}
0 commit comments