MCPcopy Create free account
hub / github.com/angular/dev-infra / _createGithubReleaseForVersion

Function _createGithubReleaseForVersion

ng-dev/release/publish/actions.ts:657–691  ·  view source on GitHub ↗

* Creates a Github release for the specified version. The release is created * by tagging the version bump commit, and by creating the release entry. * * Expects the version bump commit and changelog to be available in the * upstream remote. * * @param releaseNotes The release note

(
    releaseNotes: ReleaseNotes,
    versionBumpCommitSha: string,
    isPrerelease: boolean,
    showAsLatestOnGitHub: boolean,
  )

Source from the content-addressed store, hash-verified

655 * the "latest" version of the project. I.e. GitHub will show this version as "latest".
656 */
657 private async _createGithubReleaseForVersion(
658 releaseNotes: ReleaseNotes,
659 versionBumpCommitSha: string,
660 isPrerelease: boolean,
661 showAsLatestOnGitHub: boolean,
662 ) {
663 const tagName = getReleaseTagForVersion(releaseNotes.version);
664 await this.git.github.git.createRef({
665 ...this.git.remoteParams,
666 ref: `refs/tags/${tagName}`,
667 sha: versionBumpCommitSha,
668 });
669 Log.info(green(` ✓ Tagged v${releaseNotes.version} release upstream.`));
670
671 let releaseBody = await releaseNotes.getGithubReleaseEntry();
672
673 // If the release body exceeds the Github body limit, we just provide
674 // a link to the changelog entry in the Github release entry.
675 if (releaseBody.length > githubReleaseBodyLimit) {
676 const releaseNotesUrl = await this._getGithubChangelogUrlForRef(releaseNotes, tagName);
677 releaseBody =
678 `Release notes are too large to be captured here. ` +
679 `[View all changes here](${releaseNotesUrl}).`;
680 }
681
682 await this.git.github.repos.createRelease({
683 ...this.git.remoteParams,
684 name: releaseNotes.version.toString(),
685 tag_name: tagName,
686 prerelease: isPrerelease,
687 make_latest: showAsLatestOnGitHub ? 'true' : 'false',
688 body: releaseBody,
689 });
690 Log.info(green(` ✓ Created v${releaseNotes.version} release in Github.`));
691 }
692
693 /** Gets a Github URL that resolves to the release notes in the given ref. */
694 private async _getGithubChangelogUrlForRef(releaseNotes: ReleaseNotes, ref: string) {

Callers

nothing calls this directly

Calls 3

getReleaseTagForVersionFunction · 0.85
getGithubReleaseEntryMethod · 0.80
toStringMethod · 0.45

Tested by

no test coverage detected