From e8547ed2d52f797f85f4fc0288b8134bbd38bc27 Mon Sep 17 00:00:00 2001 From: Shunsuke Suzuki Date: Sat, 19 Jul 2025 14:13:14 +0900 Subject: [PATCH 1/2] feat: add the field to Digest to ReleaseAsset https://github.blog/changelog/2025-06-03-releases-now-expose-digests-for-release-assets/ https://docs.github.com/en/rest/releases/releases?apiVersion=2022-11-28#get-a-release The `Get a Release` API returns digests of assets. To get digests, this commit adds the field `Digest` and the method `GetDigest` to `ReleaseAsset`. --- github/github-accessors.go | 8 ++++++++ github/github-accessors_test.go | 11 +++++++++++ github/repos_releases.go | 1 + 3 files changed, 20 insertions(+) diff --git a/github/github-accessors.go b/github/github-accessors.go index 7f6499fe23a..fe05b27f7c0 100644 --- a/github/github-accessors.go +++ b/github/github-accessors.go @@ -21142,6 +21142,14 @@ func (r *ReleaseAsset) GetURL() string { return *r.URL } +// GetDigest returns the digest if it's non-nil, zero value otherwise. +func (r *ReleaseAsset) GetDigest() string { + if r == nil || r.Digest == nil { + return "" + } + return *r.Digest +} + // GetAction returns the Action field if it's non-nil, zero value otherwise. func (r *ReleaseEvent) GetAction() string { if r == nil || r.Action == nil { diff --git a/github/github-accessors_test.go b/github/github-accessors_test.go index 980688ae0ee..5269d1fc01c 100644 --- a/github/github-accessors_test.go +++ b/github/github-accessors_test.go @@ -27245,6 +27245,17 @@ func TestReleaseAsset_GetURL(tt *testing.T) { r.GetURL() } +func TestReleaseAsset_GetDigest(tt *testing.T) { + tt.Parallel() + var zeroValue string + r := &ReleaseAsset{Digest: &zeroValue} + r.GetDigest() + r = &ReleaseAsset{} + r.GetDigest() + r = nil + r.GetDigest() +} + func TestReleaseEvent_GetAction(tt *testing.T) { tt.Parallel() var zeroValue string diff --git a/github/repos_releases.go b/github/repos_releases.go index d4b4591bfbb..fb90c0fd240 100644 --- a/github/repos_releases.go +++ b/github/repos_releases.go @@ -79,6 +79,7 @@ type ReleaseAsset struct { BrowserDownloadURL *string `json:"browser_download_url,omitempty"` Uploader *User `json:"uploader,omitempty"` NodeID *string `json:"node_id,omitempty"` + Digest *string `json:"digest,omitempty"` } func (r ReleaseAsset) String() string { From 956a007e23fad6da55ad265fb182844e0f45893d Mon Sep 17 00:00:00 2001 From: Shunsuke Suzuki Date: Sat, 19 Jul 2025 14:18:18 +0900 Subject: [PATCH 2/2] Run ./script/generate.sh --- github/github-accessors.go | 16 ++++++++-------- github/github-accessors_test.go | 22 +++++++++++----------- github/github-stringify_test.go | 3 ++- 3 files changed, 21 insertions(+), 20 deletions(-) diff --git a/github/github-accessors.go b/github/github-accessors.go index fe05b27f7c0..ad06c78c9fa 100644 --- a/github/github-accessors.go +++ b/github/github-accessors.go @@ -21062,6 +21062,14 @@ func (r *ReleaseAsset) GetCreatedAt() Timestamp { return *r.CreatedAt } +// GetDigest returns the Digest field if it's non-nil, zero value otherwise. +func (r *ReleaseAsset) GetDigest() string { + if r == nil || r.Digest == nil { + return "" + } + return *r.Digest +} + // GetDownloadCount returns the DownloadCount field if it's non-nil, zero value otherwise. func (r *ReleaseAsset) GetDownloadCount() int { if r == nil || r.DownloadCount == nil { @@ -21142,14 +21150,6 @@ func (r *ReleaseAsset) GetURL() string { return *r.URL } -// GetDigest returns the digest if it's non-nil, zero value otherwise. -func (r *ReleaseAsset) GetDigest() string { - if r == nil || r.Digest == nil { - return "" - } - return *r.Digest -} - // GetAction returns the Action field if it's non-nil, zero value otherwise. func (r *ReleaseEvent) GetAction() string { if r == nil || r.Action == nil { diff --git a/github/github-accessors_test.go b/github/github-accessors_test.go index 5269d1fc01c..0abd03fe319 100644 --- a/github/github-accessors_test.go +++ b/github/github-accessors_test.go @@ -27138,6 +27138,17 @@ func TestReleaseAsset_GetCreatedAt(tt *testing.T) { r.GetCreatedAt() } +func TestReleaseAsset_GetDigest(tt *testing.T) { + tt.Parallel() + var zeroValue string + r := &ReleaseAsset{Digest: &zeroValue} + r.GetDigest() + r = &ReleaseAsset{} + r.GetDigest() + r = nil + r.GetDigest() +} + func TestReleaseAsset_GetDownloadCount(tt *testing.T) { tt.Parallel() var zeroValue int @@ -27245,17 +27256,6 @@ func TestReleaseAsset_GetURL(tt *testing.T) { r.GetURL() } -func TestReleaseAsset_GetDigest(tt *testing.T) { - tt.Parallel() - var zeroValue string - r := &ReleaseAsset{Digest: &zeroValue} - r.GetDigest() - r = &ReleaseAsset{} - r.GetDigest() - r = nil - r.GetDigest() -} - func TestReleaseEvent_GetAction(tt *testing.T) { tt.Parallel() var zeroValue string diff --git a/github/github-stringify_test.go b/github/github-stringify_test.go index 4563959967e..603bf87dc07 100644 --- a/github/github-stringify_test.go +++ b/github/github-stringify_test.go @@ -1661,8 +1661,9 @@ func TestReleaseAsset_String(t *testing.T) { BrowserDownloadURL: Ptr(""), Uploader: &User{}, NodeID: Ptr(""), + Digest: Ptr(""), } - want := `github.ReleaseAsset{ID:0, URL:"", Name:"", Label:"", State:"", ContentType:"", Size:0, DownloadCount:0, CreatedAt:github.Timestamp{0001-01-01 00:00:00 +0000 UTC}, UpdatedAt:github.Timestamp{0001-01-01 00:00:00 +0000 UTC}, BrowserDownloadURL:"", Uploader:github.User{}, NodeID:""}` + want := `github.ReleaseAsset{ID:0, URL:"", Name:"", Label:"", State:"", ContentType:"", Size:0, DownloadCount:0, CreatedAt:github.Timestamp{0001-01-01 00:00:00 +0000 UTC}, UpdatedAt:github.Timestamp{0001-01-01 00:00:00 +0000 UTC}, BrowserDownloadURL:"", Uploader:github.User{}, NodeID:"", Digest:""}` if got := v.String(); got != want { t.Errorf("ReleaseAsset.String = %v, want %v", got, want) }