update MANIFEST_URL (#111)

This commit is contained in:
Maxim Lobanov 2020-07-15 12:26:28 +03:00 committed by GitHub
parent 2989dc4a1a
commit 6f45e887f6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 276 additions and 273 deletions

543
dist/index.js vendored
View file

@ -2361,46 +2361,46 @@ const Range = __webpack_require__(124)
/***/ (function(__unusedmodule, exports, __webpack_require__) { /***/ (function(__unusedmodule, exports, __webpack_require__) {
"use strict"; "use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) { return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next()); step((generator = generator.apply(thisArg, _arguments || [])).next());
}); });
}; };
var __importStar = (this && this.__importStar) || function (mod) { var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod; if (mod && mod.__esModule) return mod;
var result = {}; var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod; result["default"] = mod;
return result; return result;
}; };
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
const core = __importStar(__webpack_require__(470)); const core = __importStar(__webpack_require__(470));
const finder = __importStar(__webpack_require__(927)); const finder = __importStar(__webpack_require__(927));
const path = __importStar(__webpack_require__(622)); const path = __importStar(__webpack_require__(622));
const os = __importStar(__webpack_require__(87)); const os = __importStar(__webpack_require__(87));
function run() { function run() {
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
try { try {
let version = core.getInput('python-version'); let version = core.getInput('python-version');
if (version) { if (version) {
const arch = core.getInput('architecture') || os.arch(); const arch = core.getInput('architecture') || os.arch();
const installed = yield finder.findPythonVersion(version, arch); const installed = yield finder.findPythonVersion(version, arch);
core.info(`Successfully setup ${installed.impl} (${installed.version})`); core.info(`Successfully setup ${installed.impl} (${installed.version})`);
} }
const matchersPath = path.join(__dirname, '..', '.github'); const matchersPath = path.join(__dirname, '..', '.github');
core.info(`##[add-matcher]${path.join(matchersPath, 'python.json')}`); core.info(`##[add-matcher]${path.join(matchersPath, 'python.json')}`);
} }
catch (err) { catch (err) {
core.setFailed(err.message); core.setFailed(err.message);
} }
}); });
} }
run(); run();
/***/ }), /***/ }),
@ -6312,83 +6312,84 @@ module.exports = diff
/***/ (function(__unusedmodule, exports, __webpack_require__) { /***/ (function(__unusedmodule, exports, __webpack_require__) {
"use strict"; "use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) { return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next()); step((generator = generator.apply(thisArg, _arguments || [])).next());
}); });
}; };
var __importStar = (this && this.__importStar) || function (mod) { var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod; if (mod && mod.__esModule) return mod;
var result = {}; var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod; result["default"] = mod;
return result; return result;
}; };
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
const path = __importStar(__webpack_require__(622)); const path = __importStar(__webpack_require__(622));
const core = __importStar(__webpack_require__(470)); const core = __importStar(__webpack_require__(470));
const tc = __importStar(__webpack_require__(533)); const tc = __importStar(__webpack_require__(533));
const exec = __importStar(__webpack_require__(986)); const exec = __importStar(__webpack_require__(986));
const TOKEN = core.getInput('token'); const TOKEN = core.getInput('token');
const AUTH = !TOKEN || isGhes() ? undefined : `token ${TOKEN}`; const AUTH = !TOKEN || isGhes() ? undefined : `token ${TOKEN}`;
const MANIFEST_REPO_OWNER = 'actions'; const MANIFEST_REPO_OWNER = 'actions';
const MANIFEST_REPO_NAME = 'python-versions'; const MANIFEST_REPO_NAME = 'python-versions';
exports.MANIFEST_URL = `https://raw.githubusercontent.com/${MANIFEST_REPO_OWNER}/${MANIFEST_REPO_NAME}/master/versions-manifest.json`; const MANIFEST_REPO_BRANCH = 'main';
const IS_WINDOWS = process.platform === 'win32'; exports.MANIFEST_URL = `https://raw.githubusercontent.com/${MANIFEST_REPO_OWNER}/${MANIFEST_REPO_NAME}/${MANIFEST_REPO_BRANCH}/versions-manifest.json`;
function findReleaseFromManifest(semanticVersionSpec, architecture) { const IS_WINDOWS = process.platform === 'win32';
return __awaiter(this, void 0, void 0, function* () { function findReleaseFromManifest(semanticVersionSpec, architecture) {
const manifest = yield tc.getManifestFromRepo(MANIFEST_REPO_OWNER, MANIFEST_REPO_NAME, AUTH); return __awaiter(this, void 0, void 0, function* () {
return yield tc.findFromManifest(semanticVersionSpec, true, manifest, architecture); const manifest = yield tc.getManifestFromRepo(MANIFEST_REPO_OWNER, MANIFEST_REPO_NAME, AUTH, MANIFEST_REPO_BRANCH);
}); return yield tc.findFromManifest(semanticVersionSpec, true, manifest, architecture);
} });
exports.findReleaseFromManifest = findReleaseFromManifest; }
function installPython(workingDirectory) { exports.findReleaseFromManifest = findReleaseFromManifest;
return __awaiter(this, void 0, void 0, function* () { function installPython(workingDirectory) {
const options = { return __awaiter(this, void 0, void 0, function* () {
cwd: workingDirectory, const options = {
silent: true, cwd: workingDirectory,
listeners: { silent: true,
stdout: (data) => { listeners: {
core.debug(data.toString().trim()); stdout: (data) => {
} core.debug(data.toString().trim());
} }
}; }
if (IS_WINDOWS) { };
yield exec.exec('powershell', ['./setup.ps1'], options); if (IS_WINDOWS) {
} yield exec.exec('powershell', ['./setup.ps1'], options);
else { }
yield exec.exec('bash', ['./setup.sh'], options); else {
} yield exec.exec('bash', ['./setup.sh'], options);
}); }
} });
function installCpythonFromRelease(release) { }
return __awaiter(this, void 0, void 0, function* () { function installCpythonFromRelease(release) {
const downloadUrl = release.files[0].download_url; return __awaiter(this, void 0, void 0, function* () {
core.info(`Download from "${downloadUrl}"`); const downloadUrl = release.files[0].download_url;
const pythonPath = yield tc.downloadTool(downloadUrl, undefined, AUTH); core.info(`Download from "${downloadUrl}"`);
const fileName = path.basename(pythonPath, '.zip'); const pythonPath = yield tc.downloadTool(downloadUrl, undefined, AUTH);
core.info('Extract downloaded archive'); const fileName = path.basename(pythonPath, '.zip');
let pythonExtractedFolder; core.info('Extract downloaded archive');
if (IS_WINDOWS) { let pythonExtractedFolder;
pythonExtractedFolder = yield tc.extractZip(pythonPath, `./${fileName}`); if (IS_WINDOWS) {
} pythonExtractedFolder = yield tc.extractZip(pythonPath, `./${fileName}`);
else { }
pythonExtractedFolder = yield tc.extractTar(pythonPath, `./${fileName}`); else {
} pythonExtractedFolder = yield tc.extractTar(pythonPath, `./${fileName}`);
core.info('Execute installation script'); }
yield installPython(pythonExtractedFolder); core.info('Execute installation script');
}); yield installPython(pythonExtractedFolder);
} });
exports.installCpythonFromRelease = installCpythonFromRelease; }
function isGhes() { exports.installCpythonFromRelease = installCpythonFromRelease;
const ghUrl = new URL(process.env['GITHUB_SERVER_URL'] || 'https://github.com'); function isGhes() {
return ghUrl.hostname.toUpperCase() !== 'GITHUB.COM'; const ghUrl = new URL(process.env['GITHUB_SERVER_URL'] || 'https://github.com');
} return ghUrl.hostname.toUpperCase() !== 'GITHUB.COM';
}
/***/ }), /***/ }),
@ -6569,160 +6570,160 @@ module.exports = lte
/***/ (function(__unusedmodule, exports, __webpack_require__) { /***/ (function(__unusedmodule, exports, __webpack_require__) {
"use strict"; "use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) { return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next()); step((generator = generator.apply(thisArg, _arguments || [])).next());
}); });
}; };
var __importStar = (this && this.__importStar) || function (mod) { var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod; if (mod && mod.__esModule) return mod;
var result = {}; var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod; result["default"] = mod;
return result; return result;
}; };
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
const os = __importStar(__webpack_require__(87)); const os = __importStar(__webpack_require__(87));
const path = __importStar(__webpack_require__(622)); const path = __importStar(__webpack_require__(622));
const semver = __importStar(__webpack_require__(876)); const semver = __importStar(__webpack_require__(876));
const installer = __importStar(__webpack_require__(824)); const installer = __importStar(__webpack_require__(824));
const core = __importStar(__webpack_require__(470)); const core = __importStar(__webpack_require__(470));
const tc = __importStar(__webpack_require__(533)); const tc = __importStar(__webpack_require__(533));
const IS_WINDOWS = process.platform === 'win32'; const IS_WINDOWS = process.platform === 'win32';
// Python has "scripts" or "bin" directories where command-line tools that come with packages are installed. // Python has "scripts" or "bin" directories where command-line tools that come with packages are installed.
// This is where pip is, along with anything that pip installs. // This is where pip is, along with anything that pip installs.
// There is a seperate directory for `pip install --user`. // There is a seperate directory for `pip install --user`.
// //
// For reference, these directories are as follows: // For reference, these directories are as follows:
// macOS / Linux: // macOS / Linux:
// <sys.prefix>/bin (by default /usr/local/bin, but not on hosted agents -- see the `else`) // <sys.prefix>/bin (by default /usr/local/bin, but not on hosted agents -- see the `else`)
// (--user) ~/.local/bin // (--user) ~/.local/bin
// Windows: // Windows:
// <Python installation dir>\Scripts // <Python installation dir>\Scripts
// (--user) %APPDATA%\Python\PythonXY\Scripts // (--user) %APPDATA%\Python\PythonXY\Scripts
// See https://docs.python.org/3/library/sysconfig.html // See https://docs.python.org/3/library/sysconfig.html
function binDir(installDir) { function binDir(installDir) {
if (IS_WINDOWS) { if (IS_WINDOWS) {
return path.join(installDir, 'Scripts'); return path.join(installDir, 'Scripts');
} }
else { else {
return path.join(installDir, 'bin'); return path.join(installDir, 'bin');
} }
} }
// Note on the tool cache layout for PyPy: // Note on the tool cache layout for PyPy:
// PyPy has its own versioning scheme that doesn't follow the Python versioning scheme. // PyPy has its own versioning scheme that doesn't follow the Python versioning scheme.
// A particular version of PyPy may contain one or more versions of the Python interpreter. // A particular version of PyPy may contain one or more versions of the Python interpreter.
// For example, PyPy 7.0 contains Python 2.7, 3.5, and 3.6-alpha. // For example, PyPy 7.0 contains Python 2.7, 3.5, and 3.6-alpha.
// We only care about the Python version, so we don't use the PyPy version for the tool cache. // We only care about the Python version, so we don't use the PyPy version for the tool cache.
function usePyPy(majorVersion, architecture) { function usePyPy(majorVersion, architecture) {
const findPyPy = tc.find.bind(undefined, 'PyPy', majorVersion.toString()); const findPyPy = tc.find.bind(undefined, 'PyPy', majorVersion.toString());
let installDir = findPyPy(architecture); let installDir = findPyPy(architecture);
if (!installDir && IS_WINDOWS) { if (!installDir && IS_WINDOWS) {
// PyPy only precompiles binaries for x86, but the architecture parameter defaults to x64. // PyPy only precompiles binaries for x86, but the architecture parameter defaults to x64.
// On our Windows virtual environments, we only install an x86 version. // On our Windows virtual environments, we only install an x86 version.
// Fall back to x86. // Fall back to x86.
installDir = findPyPy('x86'); installDir = findPyPy('x86');
} }
if (!installDir) { if (!installDir) {
// PyPy not installed in $(Agent.ToolsDirectory) // PyPy not installed in $(Agent.ToolsDirectory)
throw new Error(`PyPy ${majorVersion} not found`); throw new Error(`PyPy ${majorVersion} not found`);
} }
// For PyPy, Windows uses 'bin', not 'Scripts'. // For PyPy, Windows uses 'bin', not 'Scripts'.
const _binDir = path.join(installDir, 'bin'); const _binDir = path.join(installDir, 'bin');
// On Linux and macOS, the Python interpreter is in 'bin'. // On Linux and macOS, the Python interpreter is in 'bin'.
// On Windows, it is in the installation root. // On Windows, it is in the installation root.
const pythonLocation = IS_WINDOWS ? installDir : _binDir; const pythonLocation = IS_WINDOWS ? installDir : _binDir;
core.exportVariable('pythonLocation', pythonLocation); core.exportVariable('pythonLocation', pythonLocation);
core.addPath(installDir); core.addPath(installDir);
core.addPath(_binDir); core.addPath(_binDir);
const impl = 'pypy' + majorVersion.toString(); const impl = 'pypy' + majorVersion.toString();
core.setOutput('python-version', impl); core.setOutput('python-version', impl);
return { impl: impl, version: versionFromPath(installDir) }; return { impl: impl, version: versionFromPath(installDir) };
} }
function useCpythonVersion(version, architecture) { function useCpythonVersion(version, architecture) {
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
const desugaredVersionSpec = desugarDevVersion(version); const desugaredVersionSpec = desugarDevVersion(version);
const semanticVersionSpec = pythonVersionToSemantic(desugaredVersionSpec); const semanticVersionSpec = pythonVersionToSemantic(desugaredVersionSpec);
core.debug(`Semantic version spec of ${version} is ${semanticVersionSpec}`); core.debug(`Semantic version spec of ${version} is ${semanticVersionSpec}`);
let installDir = tc.find('Python', semanticVersionSpec, architecture); let installDir = tc.find('Python', semanticVersionSpec, architecture);
if (!installDir) { if (!installDir) {
core.info(`Version ${semanticVersionSpec} was not found in the local cache`); core.info(`Version ${semanticVersionSpec} was not found in the local cache`);
const foundRelease = yield installer.findReleaseFromManifest(semanticVersionSpec, architecture); const foundRelease = yield installer.findReleaseFromManifest(semanticVersionSpec, architecture);
if (foundRelease && foundRelease.files && foundRelease.files.length > 0) { if (foundRelease && foundRelease.files && foundRelease.files.length > 0) {
core.info(`Version ${semanticVersionSpec} is available for downloading`); core.info(`Version ${semanticVersionSpec} is available for downloading`);
yield installer.installCpythonFromRelease(foundRelease); yield installer.installCpythonFromRelease(foundRelease);
installDir = tc.find('Python', semanticVersionSpec, architecture); installDir = tc.find('Python', semanticVersionSpec, architecture);
} }
} }
if (!installDir) { if (!installDir) {
throw new Error([ throw new Error([
`Version ${version} with arch ${architecture} not found`, `Version ${version} with arch ${architecture} not found`,
`The list of all available versions can be found here: ${installer.MANIFEST_URL}` `The list of all available versions can be found here: ${installer.MANIFEST_URL}`
].join(os.EOL)); ].join(os.EOL));
} }
core.exportVariable('pythonLocation', installDir); core.exportVariable('pythonLocation', installDir);
core.addPath(installDir); core.addPath(installDir);
core.addPath(binDir(installDir)); core.addPath(binDir(installDir));
if (IS_WINDOWS) { if (IS_WINDOWS) {
// Add --user directory // Add --user directory
// `installDir` from tool cache should look like $RUNNER_TOOL_CACHE/Python/<semantic version>/x64/ // `installDir` from tool cache should look like $RUNNER_TOOL_CACHE/Python/<semantic version>/x64/
// So if `findLocalTool` succeeded above, we must have a conformant `installDir` // So if `findLocalTool` succeeded above, we must have a conformant `installDir`
const version = path.basename(path.dirname(installDir)); const version = path.basename(path.dirname(installDir));
const major = semver.major(version); const major = semver.major(version);
const minor = semver.minor(version); const minor = semver.minor(version);
const userScriptsDir = path.join(process.env['APPDATA'] || '', 'Python', `Python${major}${minor}`, 'Scripts'); const userScriptsDir = path.join(process.env['APPDATA'] || '', 'Python', `Python${major}${minor}`, 'Scripts');
core.addPath(userScriptsDir); core.addPath(userScriptsDir);
} }
// On Linux and macOS, pip will create the --user directory and add it to PATH as needed. // On Linux and macOS, pip will create the --user directory and add it to PATH as needed.
const installed = versionFromPath(installDir); const installed = versionFromPath(installDir);
core.setOutput('python-version', installed); core.setOutput('python-version', installed);
return { impl: 'CPython', version: installed }; return { impl: 'CPython', version: installed };
}); });
} }
/** Convert versions like `3.8-dev` to a version like `>= 3.8.0-a0`. */ /** Convert versions like `3.8-dev` to a version like `>= 3.8.0-a0`. */
function desugarDevVersion(versionSpec) { function desugarDevVersion(versionSpec) {
if (versionSpec.endsWith('-dev')) { if (versionSpec.endsWith('-dev')) {
const versionRoot = versionSpec.slice(0, -'-dev'.length); const versionRoot = versionSpec.slice(0, -'-dev'.length);
return `>= ${versionRoot}.0-a0`; return `>= ${versionRoot}.0-a0`;
} }
else { else {
return versionSpec; return versionSpec;
} }
} }
/** Extracts python version from install path from hosted tool cache as described in README.md */ /** Extracts python version from install path from hosted tool cache as described in README.md */
function versionFromPath(installDir) { function versionFromPath(installDir) {
const parts = installDir.split(path.sep); const parts = installDir.split(path.sep);
const idx = parts.findIndex(part => part === 'PyPy' || part === 'Python'); const idx = parts.findIndex(part => part === 'PyPy' || part === 'Python');
return parts[idx + 1] || ''; return parts[idx + 1] || '';
} }
/** /**
* Python's prelease versions look like `3.7.0b2`. * Python's prelease versions look like `3.7.0b2`.
* This is the one part of Python versioning that does not look like semantic versioning, which specifies `3.7.0-b2`. * This is the one part of Python versioning that does not look like semantic versioning, which specifies `3.7.0-b2`.
* If the version spec contains prerelease versions, we need to convert them to the semantic version equivalent. * If the version spec contains prerelease versions, we need to convert them to the semantic version equivalent.
*/ */
function pythonVersionToSemantic(versionSpec) { function pythonVersionToSemantic(versionSpec) {
const prereleaseVersion = /(\d+\.\d+\.\d+)((?:a|b|rc)\d*)/g; const prereleaseVersion = /(\d+\.\d+\.\d+)((?:a|b|rc)\d*)/g;
return versionSpec.replace(prereleaseVersion, '$1-$2'); return versionSpec.replace(prereleaseVersion, '$1-$2');
} }
exports.pythonVersionToSemantic = pythonVersionToSemantic; exports.pythonVersionToSemantic = pythonVersionToSemantic;
function findPythonVersion(version, architecture) { function findPythonVersion(version, architecture) {
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
switch (version.toUpperCase()) { switch (version.toUpperCase()) {
case 'PYPY2': case 'PYPY2':
return usePyPy(2, architecture); return usePyPy(2, architecture);
case 'PYPY3': case 'PYPY3':
return usePyPy(3, architecture); return usePyPy(3, architecture);
default: default:
return yield useCpythonVersion(version, architecture); return yield useCpythonVersion(version, architecture);
} }
}); });
} }
exports.findPythonVersion = findPythonVersion; exports.findPythonVersion = findPythonVersion;
/***/ }), /***/ }),

View file

@ -8,7 +8,8 @@ const TOKEN = core.getInput('token');
const AUTH = !TOKEN || isGhes() ? undefined : `token ${TOKEN}`; const AUTH = !TOKEN || isGhes() ? undefined : `token ${TOKEN}`;
const MANIFEST_REPO_OWNER = 'actions'; const MANIFEST_REPO_OWNER = 'actions';
const MANIFEST_REPO_NAME = 'python-versions'; const MANIFEST_REPO_NAME = 'python-versions';
export const MANIFEST_URL = `https://raw.githubusercontent.com/${MANIFEST_REPO_OWNER}/${MANIFEST_REPO_NAME}/master/versions-manifest.json`; const MANIFEST_REPO_BRANCH = 'main';
export const MANIFEST_URL = `https://raw.githubusercontent.com/${MANIFEST_REPO_OWNER}/${MANIFEST_REPO_NAME}/${MANIFEST_REPO_BRANCH}/versions-manifest.json`;
const IS_WINDOWS = process.platform === 'win32'; const IS_WINDOWS = process.platform === 'win32';
@ -19,7 +20,8 @@ export async function findReleaseFromManifest(
const manifest: tc.IToolRelease[] = await tc.getManifestFromRepo( const manifest: tc.IToolRelease[] = await tc.getManifestFromRepo(
MANIFEST_REPO_OWNER, MANIFEST_REPO_OWNER,
MANIFEST_REPO_NAME, MANIFEST_REPO_NAME,
AUTH AUTH,
MANIFEST_REPO_BRANCH
); );
return await tc.findFromManifest( return await tc.findFromManifest(
semanticVersionSpec, semanticVersionSpec,