refactor(dev-infra): share more github code between commands (#38656)
Instead of repeating the logic for adding the github token to a repository git url, we add a shared function for automatically computing the URls with token. Additionally, URLs for updating/generating tokens have been moved to a dedicated file in the `utils` folder. Also while being at it, the yargs github token helper is also moved into the dedicated Git/Github related util folder. PR Close #38656
This commit is contained in:

committed by
Alex Rickabaugh

parent
5bf55132fb
commit
78c9972195
36
dev-infra/utils/git/github-urls.ts
Normal file
36
dev-infra/utils/git/github-urls.ts
Normal file
@ -0,0 +1,36 @@
|
||||
/**
|
||||
* @license
|
||||
* Copyright Google LLC All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by an MIT-style license that can be
|
||||
* found in the LICENSE file at https://angular.io/license
|
||||
*/
|
||||
|
||||
|
||||
import {URL} from 'url';
|
||||
import {GithubConfig} from '../config';
|
||||
|
||||
/** URL to the Github page where personal access tokens can be managed. */
|
||||
export const GITHUB_TOKEN_SETTINGS_URL = `https://github.com/settings/tokens`;
|
||||
|
||||
/** URL to the Github page where personal access tokens can be generated. */
|
||||
export const GITHUB_TOKEN_GENERATE_URL = `https://github.com/settings/tokens/new`;
|
||||
|
||||
/** Adds the provided token to the given Github HTTPs remote url. */
|
||||
export function addTokenToGitHttpsUrl(githubHttpsUrl: string, token: string) {
|
||||
const url = new URL(githubHttpsUrl);
|
||||
url.username = token;
|
||||
return url.toString();
|
||||
}
|
||||
|
||||
/** Gets the repository Git URL for the given github config. */
|
||||
export function getRepositoryGitUrl(config: GithubConfig, githubToken?: string): string {
|
||||
if (config.useSsh) {
|
||||
return `git@github.com:${config.owner}/${config.name}.git`;
|
||||
}
|
||||
const baseHttpUrl = `https://github.com/${config.owner}/${config.name}.git`;
|
||||
if (githubToken !== undefined) {
|
||||
return addTokenToGitHttpsUrl(baseHttpUrl, githubToken);
|
||||
}
|
||||
return baseHttpUrl;
|
||||
}
|
Reference in New Issue
Block a user