@@ -78,6 +78,7 @@ export class GithubHelper {
7878 useIssuesForAllMergeRequests : boolean ;
7979 milestoneMap ?: Map < number , SimpleMilestone > ;
8080 users : Set < string > ;
81+ members : Set < string > ;
8182
8283 constructor (
8384 githubApi : GitHubApi ,
@@ -99,6 +100,19 @@ export class GithubHelper {
99100 this . delayInMs = 2000 ;
100101 this . useIssuesForAllMergeRequests = useIssuesForAllMergeRequests ;
101102 this . users = new Set < string > ( ) ;
103+
104+ this . members = new Set < string > ( ) ;
105+
106+ // TODO: won't work if ownerIsOrg is false
107+ githubApi . orgs . listMembers ( {
108+ org : this . githubOwner ,
109+ } ) . then ( members => {
110+ for ( let member of members . data ) {
111+ this . members . add ( member . login ) ;
112+ }
113+ } ) . catch ( err => {
114+ console . error ( `Failed to fetch organization members: ${ err } ` ) ;
115+ } ) ;
102116 }
103117
104118 /*
@@ -381,9 +395,16 @@ export class GithubHelper {
381395 if ( username === settings . github . username ) {
382396 assignees . push ( settings . github . username ) ;
383397 } else if ( settings . usermap && settings . usermap [ username ] ) {
384- assignees . push ( settings . usermap [ username ] ) ;
398+ let gitHubUsername = settings . usermap [ username ] ;
399+ if ( this . members . has ( gitHubUsername ) ) {
400+ assignees . push ( gitHubUsername ) ;
401+ }
402+ else {
403+ console . log ( `Cannot assign assignee: User ${ gitHubUsername } is not a member of ${ this . githubOwner } ` ) ;
404+ }
385405 }
386406 }
407+
387408 return assignees ;
388409 }
389410
@@ -1239,7 +1260,7 @@ export class GithubHelper {
12391260 return Promise . resolve ( ) ;
12401261 }
12411262
1242- // Use the Issues API; all pull requests are issues, and we're not modifying any pull request-sepecific fields. This
1263+ // Use the Issues API; all pull requests are issues, and we're not modifying any pull request-specific fields. This
12431264 // then works for merge requests that cannot be created and are migrated as issues.
12441265 return await this . githubApi . issues . update ( props ) ;
12451266 }
0 commit comments