diff --git a/packages/publisher/github/src/Config.ts b/packages/publisher/github/src/Config.ts index 90963e14b5..d54745caba 100644 --- a/packages/publisher/github/src/Config.ts +++ b/packages/publisher/github/src/Config.ts @@ -39,4 +39,8 @@ export interface PublisherGitHubConfig { * Whether or not this release should be tagged as a draft */ draft?: boolean; + /** + * Prepended to the package version to determine the release name (default "v") + */ + tagPrefix?: string; } diff --git a/packages/publisher/github/src/PublisherGithub.ts b/packages/publisher/github/src/PublisherGithub.ts index 85128e42c8..a4e9e94e52 100644 --- a/packages/publisher/github/src/PublisherGithub.ts +++ b/packages/publisher/github/src/PublisherGithub.ts @@ -27,7 +27,7 @@ export default class PublisherGithub extends PublisherBase; type OctokitReleaseAsset = GetResponseDataTypeFromEndpointMethod; - for (const releaseName of Object.keys(perReleaseArtifacts)) { + for (const releaseVersion of Object.keys(perReleaseArtifacts)) { let release: OctokitRelease | undefined; - const artifacts = perReleaseArtifacts[releaseName]; + const artifacts = perReleaseArtifacts[releaseVersion]; + const releaseName = `${config.tagPrefix ?? 'v'}${releaseVersion}`; await asyncOra(`Searching for target release: ${releaseName}`, async () => { try { @@ -62,7 +63,7 @@ export default class PublisherGithub extends PublisherBase testRelease.tag_name === `v${releaseName}`); + ).data.find((testRelease: GitHubRelease) => testRelease.tag_name === releaseName); if (!release) { throw new NoReleaseError(404); } @@ -73,8 +74,8 @@ export default class PublisherGithub extends PublisherBase { + await asyncOra(`Uploading Artifacts ${uploaded}/${artifacts.length} to ${releaseName}`, async (uploadSpinner) => { const updateSpinner = () => { - uploadSpinner.text = `Uploading Artifacts ${uploaded}/${artifacts.length} to v${releaseName}`; + uploadSpinner.text = `Uploading Artifacts ${uploaded}/${artifacts.length} to ${releaseName}`; }; const flatArtifacts: string[] = [];