@@ -28,6 +28,13 @@ export async function updateCaretakerTeamViaPrompt() {
2828 getGroupMembers ( `${ caretakerGroup } -roster` ) ,
2929 getGroupMembers ( `${ caretakerGroup } -roster-emea` ) ,
3030 ] ) ;
31+ if ( emeaRoster === null ) {
32+ Log . debug ( ` Unable to retrieve members of the group: ${ caretakerGroup } -roster-emea` ) ;
33+ }
34+ if ( roster === null ) {
35+ Log . error ( ` ✘ Unable to retrieve members of the group: ${ caretakerGroup } -roster` ) ;
36+ return ;
37+ }
3138
3239 /** The list of users selected to be members of the caretaker group. */
3340 const selectedPrimaryAndSecondary = await Prompt . checkbox < string > ( {
@@ -44,31 +51,34 @@ export async function updateCaretakerTeamViaPrompt() {
4451 } ,
4552 } ) ;
4653
47- const emeaOptions = emeaRoster
48- // Do not show members that are already selected as primary/secondary.
49- . filter ( ( m ) => ! selectedPrimaryAndSecondary . includes ( m ) )
50- . map ( ( member ) => ( {
51- value : member ,
52- name : `${ member } (EMEA)` ,
53- checked : current . has ( member ) ,
54- } ) ) ;
55- const selectedEmea = await Prompt . select < string > ( {
56- choices : emeaOptions ,
57- message : 'Select EMEA caretaker' ,
58- } ) ;
54+ let selectedEmea = '' ;
55+ if ( emeaRoster !== null ) {
56+ const emeaOptions = emeaRoster
57+ // Do not show members that are already selected as primary/secondary.
58+ . filter ( ( m ) => ! selectedPrimaryAndSecondary . includes ( m ) )
59+ . map ( ( member ) => ( {
60+ value : member ,
61+ name : `${ member } (EMEA)` ,
62+ checked : current . has ( member ) ,
63+ } ) ) ;
64+ selectedEmea = await Prompt . select < string > ( {
65+ choices : emeaOptions ,
66+ message : 'Select EMEA caretaker' ,
67+ } ) ;
5968
60- /** Whether the user positively confirmed the selected made. */
61- const confirmation = await Prompt . confirm ( {
62- default : true ,
63- message : 'Are you sure?' ,
64- } ) ;
69+ /** Whether the user positively confirmed the selected made. */
70+ const confirmation = await Prompt . confirm ( {
71+ default : true ,
72+ message : 'Are you sure?' ,
73+ } ) ;
6574
66- if ( confirmation === false ) {
67- Log . warn ( ' ⚠ Skipping caretaker group update.' ) ;
68- return ;
75+ if ( confirmation === false ) {
76+ Log . warn ( ' ⚠ Skipping caretaker group update.' ) ;
77+ return ;
78+ }
6979 }
7080
71- const selectedSorted = [ ...selectedPrimaryAndSecondary , selectedEmea ] . sort ( ) ;
81+ const selectedSorted = [ ...selectedPrimaryAndSecondary , selectedEmea ] . filter ( ( _ ) => ! ! _ ) . sort ( ) ;
7282 const currentSorted = Array . from ( current ) . sort ( ) ;
7383
7484 if ( JSON . stringify ( selectedSorted ) === JSON . stringify ( currentSorted ) ) {
@@ -89,15 +99,19 @@ export async function updateCaretakerTeamViaPrompt() {
8999async function getGroupMembers ( group : string ) {
90100 /** The authenticated GitClient instance. */
91101 const git = await AuthenticatedGitClient . get ( ) ;
92-
93- return (
94- await git . github . teams . listMembersInOrg ( {
95- org : git . remoteConfig . owner ,
96- team_slug : group ,
97- } )
98- ) . data
99- . filter ( ( _ ) => ! ! _ )
100- . map ( ( member ) => member ! . login ) ;
102+ try {
103+ return (
104+ await git . github . teams . listMembersInOrg ( {
105+ org : git . remoteConfig . owner ,
106+ team_slug : group ,
107+ } )
108+ ) . data
109+ . filter ( ( _ ) => ! ! _ )
110+ . map ( ( member ) => member ! . login ) ;
111+ } catch ( e ) {
112+ Log . debug ( e ) ;
113+ return null ;
114+ }
101115}
102116
103117async function setCaretakerGroup ( group : string , members : string [ ] ) {
@@ -106,7 +120,7 @@ async function setCaretakerGroup(group: string, members: string[]) {
106120 /** The full name of the group <org>/<group name>. */
107121 const fullSlug = `${ git . remoteConfig . owner } /${ group } ` ;
108122 /** The list of current members of the group. */
109- const current = await getGroupMembers ( group ) ;
123+ const current = ( await getGroupMembers ( group ) ) || [ ] ;
110124 /** The list of users to be removed from the group. */
111125 const removed = current . filter ( ( login ) => ! members . includes ( login ) ) ;
112126 /** Add a user to the group. */
0 commit comments