diff --git a/__tests__/tools.test.ts b/__tests__/tools.test.ts index 1a6b1acf..4bc7db4f 100644 --- a/__tests__/tools.test.ts +++ b/__tests__/tools.test.ts @@ -267,6 +267,15 @@ describe('Tools tests', () => { expect(await tools.getComposerUrl('2')).toContain( 'https://getcomposer.org/composer-2.phar' ); + expect(await tools.getComposerUrl('1.7.2')).toContain( + 'https://github.com/composer/composer/releases/download/1.7.2/composer.phar' + ); + expect(await tools.getComposerUrl('2.0.0-RC2')).toContain( + 'https://github.com/composer/composer/releases/download/2.0.0-RC2/composer.phar' + ); + expect(await tools.getComposerUrl('wrong')).toContain( + 'https://getcomposer.org/composer-stable.phar' + ); }); it('checking getSymfonyUri', async () => { diff --git a/dist/index.js b/dist/index.js index 83836f34..a44fb254 100644 --- a/dist/index.js +++ b/dist/index.js @@ -2058,6 +2058,10 @@ async function getComposerUrl(version) { case '2': return (cache_url + 'https://getcomposer.org/composer-' + version + '.phar'); default: + if (/^\d+\.\d+\.\d+[\w-]*$/.test(version)) { + return (cache_url + + `https://github.com/composer/composer/releases/download/${version}/composer.phar`); + } return cache_url + 'https://getcomposer.org/composer-stable.phar'; } } diff --git a/src/tools.ts b/src/tools.ts index 8a05a44a..050802d4 100644 --- a/src/tools.ts +++ b/src/tools.ts @@ -344,6 +344,12 @@ export async function getComposerUrl(version: string): Promise { cache_url + 'https://getcomposer.org/composer-' + version + '.phar' ); default: + if (/^\d+\.\d+\.\d+[\w-]*$/.test(version)) { + return ( + cache_url + + `https://github.com/composer/composer/releases/download/${version}/composer.phar` + ); + } return cache_url + 'https://getcomposer.org/composer-stable.phar'; } }