-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Support for explicitly setting the latest release #2593
Description
GitHub recently changed the way the latest version can be managed, to allow explicitly setting the latest release. Previously, the latest release would be the most recently created non-pre-release.
https://github.blog/changelog/2022-10-21-explicitly-set-the-latest-release/
In the web UI, this shows up as two checkboxes. In the API, this is set using the make_latest parameter, which defaults to true for newly created releases.
https://docs.github.com/en/rest/releases/releases?apiVersion=2022-11-28#update-a-release
It does not seem that this parameter is available in the RepositoryRelease struct yet.
go-github/github/repos_releases.go
Lines 21 to 29 in 153bbc2
| type RepositoryRelease struct { | |
| TagName *string `json:"tag_name,omitempty"` | |
| TargetCommitish *string `json:"target_commitish,omitempty"` | |
| Name *string `json:"name,omitempty"` | |
| Body *string `json:"body,omitempty"` | |
| Draft *bool `json:"draft,omitempty"` | |
| Prerelease *bool `json:"prerelease,omitempty"` | |
| DiscussionCategoryName *string `json:"discussion_category_name,omitempty"` | |
My sample workflow is to attempt to promote an existing pre-release to the latest release. For example, given a set of releases for a repository:
TITLE TYPE TAG NAME PUBLISHED
Release-4 Pre-release Release-4 about 16 minutes ago
Release-3 Pre-release Release-3 about 17 minutes ago
Release-2 Latest Release-2 about 17 minutes ago
Release-1 Release-1 about 17 minutes ago
Removing the pre-release flag from Release-4:
githubClient.Repositories.EditRelease(context.Background(),
owner, repo, *release.ID,
&github.RepositoryRelease{Prerelease: github.Bool(false)})This results in,
TITLE TYPE TAG NAME PUBLISHED
Release-4 Release-4 about 19 minutes ago
Release-3 Pre-release Release-3 about 19 minutes ago
Release-2 Latest Release-2 about 19 minutes ago
Release-1 Release-1 about 19 minutes ago
It would be useful if this were possible:
githubClient.Repositories.EditRelease(context.Background(),
owner, repo, *release.ID,
&github.RepositoryRelease{
Prerelease: github.Bool(false),
Makelatest: "true", // string, because parameter supports "true", "false", "legacy"
})