Skip to content

Commit fa613f3

Browse files
authored
handle failed policy set-version (#7848)
* handle failed policy set-version * linting * handle instances where caseless is not defined on response
1 parent f381c5f commit fa613f3

File tree

3 files changed

+21
-3
lines changed

3 files changed

+21
-3
lines changed

src/cli/commands/policies.js

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -124,9 +124,16 @@ const {run, setFlags, examples} = buildSubCommands('policies', {
124124
bundleVersion = 'berry';
125125
isV2 = true;
126126
} else {
127-
const releases = await fetchReleases(config, {
128-
includePrereleases: allowRc,
129-
});
127+
let releases = [];
128+
129+
try {
130+
releases = await fetchReleases(config, {
131+
includePrereleases: allowRc,
132+
});
133+
} catch (e) {
134+
reporter.error(e.message);
135+
return;
136+
}
130137

131138
const release = releases.find(release => {
132139
// $FlowFixMe

src/reporters/lang/en.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -358,6 +358,7 @@ const messages = {
358358
errorExtractingTarball: 'Extracting tar content of $1 failed, the file appears to be corrupt: $0',
359359
updateInstalling: 'Installing $0...',
360360
hostedGitResolveError: 'Error connecting to repository. Please, check the url.',
361+
unauthorizedResponse: 'Received a 401 from $0. $1',
361362

362363
unknownFetcherFor: 'Unknown fetcher for $0',
363364

src/util/request-manager.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,6 +373,11 @@ export default class RequestManager {
373373
rejectNext(err);
374374
};
375375

376+
const rejectWithoutUrl = function(err) {
377+
err.message = err.message;
378+
rejectNext(err);
379+
};
380+
376381
const queueForRetry = reason => {
377382
const attempts = params.retryAttempts || 0;
378383
if (attempts >= this.maxRetryAttempts - 1) {
@@ -428,6 +433,11 @@ export default class RequestManager {
428433
}
429434
}
430435

436+
if (res.statusCode === 401 && res.caseless && res.caseless.get('server') === 'GitHub.com') {
437+
const message = `${res.body.message}. If using GITHUB_TOKEN in your env, check that it is valid.`;
438+
rejectWithoutUrl(new Error(this.reporter.lang('unauthorizedResponse', res.caseless.get('server'), message)));
439+
}
440+
431441
if (res.statusCode === 401 && res.headers['www-authenticate']) {
432442
const authMethods = res.headers['www-authenticate'].split(/,\s*/).map(s => s.toLowerCase());
433443

0 commit comments

Comments
 (0)