Handle race condition when authenticating to the CLI

This commit is contained in:
Koen Vlaswinkel
2023-01-17 09:31:58 +01:00
parent 20a06238a2
commit e8799ad275

View File

@@ -619,7 +619,17 @@ export class CodeQLCliServer implements Disposable {
progressReporter, progressReporter,
async (line) => { async (line) => {
if (line.startsWith("Enter value for --github-auth-stdin")) { if (line.startsWith("Enter value for --github-auth-stdin")) {
return credentials.getAccessToken(); try {
return await credentials.getAccessToken();
} catch (e) {
// If the user cancels the authentication prompt, we still need to give a value to the CLI.
// By giving a potentially invalid value, the user will just get a 401/403 when they try to access a
// private package and the access token is invalid.
// This code path is very rare to hit. It would only be hit if the user is logged in when
// starting the command, then logging out before the getAccessToken() is called again and
// then cancelling the authentication prompt.
return accessToken;
}
} }
return undefined; return undefined;