Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package digger-cli for openSUSE:Factory checked in at 2026-07-21 23:10:36 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/digger-cli (Old) and /work/SRC/openSUSE:Factory/.digger-cli.new.24530 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "digger-cli" Tue Jul 21 23:10:36 2026 rev:53 rq:1366867 version:0.6.148 Changes: -------- --- /work/SRC/openSUSE:Factory/digger-cli/digger-cli.changes 2026-07-01 16:54:28.066204041 +0200 +++ /work/SRC/openSUSE:Factory/.digger-cli.new.24530/digger-cli.changes 2026-07-21 23:10:56.855419929 +0200 @@ -1,0 +2,10 @@ +Tue Jul 21 05:38:14 UTC 2026 - Johannes Kastl <[email protected]> + +- Update to version 0.6.148: + * fix: allow digger apply when digger/apply is the sole required + blocking check by @joshuamkite-nfb in #2661 + * Feat/terragrunt parallelism by @s1ntaxe770r in #2667 + * fix: paginate ListReviews in GetApprovals so approvals beyond + 30 comments by @s1ntaxe770r in #2674 + +------------------------------------------------------------------- Old: ---- digger-cli-0.6.147.obscpio New: ---- digger-cli-0.6.148.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ digger-cli.spec ++++++ --- /var/tmp/diff_new_pack.axeYi1/_old 2026-07-21 23:10:58.487475728 +0200 +++ /var/tmp/diff_new_pack.axeYi1/_new 2026-07-21 23:10:58.491475864 +0200 @@ -19,7 +19,7 @@ %define executable_name digger Name: digger-cli -Version: 0.6.147 +Version: 0.6.148 Release: 0 Summary: CLI for the digger open source IaC orchestration tool License: Apache-2.0 ++++++ _service ++++++ --- /var/tmp/diff_new_pack.axeYi1/_old 2026-07-21 23:10:58.531477232 +0200 +++ /var/tmp/diff_new_pack.axeYi1/_new 2026-07-21 23:10:58.535477369 +0200 @@ -6,8 +6,8 @@ <param name="exclude">go.mod</param> <param name="exclude">go.work</param> <param name="exclude">go.work.sum</param> - <param name="revision">refs/tags/v0.6.147</param> - <param name="match-tag">v0.6.147</param> + <param name="revision">refs/tags/v0.6.148</param> + <param name="match-tag">v0.6.148</param> <param name="versionformat">@PARENT_TAG@</param> <param name="versionrewrite-pattern">v(.*)</param> <param name="changesgenerate">enable</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.axeYi1/_old 2026-07-21 23:10:58.559478189 +0200 +++ /var/tmp/diff_new_pack.axeYi1/_new 2026-07-21 23:10:58.563478326 +0200 @@ -5,6 +5,6 @@ <param name="url">https://github.com/johanneskastl/digger</param> <param name="changesrevision">8fe377068e53e2050ff4c745388d8428d2b13bb0</param></service><service name="tar_scm"> <param name="url">https://github.com/diggerhq/digger.git</param> - <param name="changesrevision">6baf84cd9cd7c6522b98504f4a2258474d6c2de3</param></service></servicedata> + <param name="changesrevision">3053cda26247aa3cb94dcd4b8a253ee3cbc78243</param></service></servicedata> (No newline at EOF) ++++++ digger-cli-0.6.147.obscpio -> digger-cli-0.6.148.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/digger-cli-0.6.147/libs/ci/github/github.go new/digger-cli-0.6.148/libs/ci/github/github.go --- old/digger-cli-0.6.147/libs/ci/github/github.go 2026-06-28 11:06:39.000000000 +0200 +++ new/digger-cli-0.6.148/libs/ci/github/github.go 2026-07-21 06:37:17.000000000 +0200 @@ -245,9 +245,21 @@ } func (svc GithubService) GetApprovals(prNumber int) ([]string, error) { - reviews, _, err := svc.Client.PullRequests.ListReviews(context.Background(), svc.Owner, svc.RepoName, prNumber, &github.ListOptions{}) - if err != nil { - return nil, err + // Paginate through all reviews: GitHub returns at most 30 per page by + // default, so a PR with 30+ reviews (e.g. automated per-file COMMENTED + // reviews) would otherwise hide approvals submitted after the first page. + reviews := make([]*github.PullRequestReview, 0) + opts := &github.ListOptions{PerPage: 100} + for { + reviewsPage, resp, err := svc.Client.PullRequests.ListReviews(context.Background(), svc.Owner, svc.RepoName, prNumber, opts) + if err != nil { + return nil, err + } + reviews = append(reviews, reviewsPage...) + if resp.NextPage == 0 { + break + } + opts.Page = resp.NextPage } // Track the latest review state per user diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/digger-cli-0.6.147/libs/ci/github/github_test.go new/digger-cli-0.6.148/libs/ci/github/github_test.go --- old/digger-cli-0.6.147/libs/ci/github/github_test.go 2026-06-28 11:06:39.000000000 +0200 +++ new/digger-cli-0.6.148/libs/ci/github/github_test.go 2026-07-21 06:37:17.000000000 +0200 @@ -5,6 +5,8 @@ "testing" "github.com/diggerhq/digger/libs/digger_config" + "github.com/google/go-github/v61/github" + "github.com/migueleliasweb/go-github-mock/src/mock" "github.com/stretchr/testify/assert" ) @@ -121,3 +123,50 @@ // 45 changed files including 1 renamed file so the previous filename is included assert.Equal(t, 46, len(files)) } + +func TestGetApprovalsPaginatesBeyondFirstPage(t *testing.T) { + // Regression test for PRs with >30 reviews: automated tools can post + // dozens of COMMENTED reviews before any human approves, pushing the + // real approvals past GitHub's default page size (30). GetApprovals + // must paginate, and its latest-state-per-user logic must span pages: + // - alice: CHANGES_REQUESTED on page 1, APPROVED on page 2 -> approver + // - bob: APPROVED on page 1, CHANGES_REQUESTED on page 2 -> NOT an approver + // - carol: APPROVED on page 2 only -> approver + review := func(user, state string) *github.PullRequestReview { + return &github.PullRequestReview{ + User: &github.User{Login: github.String(user)}, + State: github.String(state), + } + } + + pageOne := make([]*github.PullRequestReview, 0, 33) + for i := 0; i < 31; i++ { + pageOne = append(pageOne, review("review-bot", "COMMENTED")) + } + pageOne = append(pageOne, review("alice", "CHANGES_REQUESTED"), review("bob", "APPROVED")) + + pageTwo := []*github.PullRequestReview{ + review("alice", "APPROVED"), + review("bob", "CHANGES_REQUESTED"), + review("carol", "APPROVED"), + } + + mockedHTTPClient := mock.NewMockedHTTPClient( + mock.WithRequestMatchPages( + mock.GetReposPullsReviewsByOwnerByRepoByPullNumber, + pageOne, + pageTwo, + ), + ) + + svc := GithubService{ + Client: github.NewClient(mockedHTTPClient), + Owner: "diggerhq", + RepoName: "digger", + } + + approvals, err := svc.GetApprovals(1) + + assert.NoError(t, err) + assert.ElementsMatch(t, []string{"alice", "carol"}, approvals) +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/digger-cli-0.6.147/libs/go.mod new/digger-cli-0.6.148/libs/go.mod --- old/digger-cli-0.6.147/libs/go.mod 2026-06-28 11:06:39.000000000 +0200 +++ new/digger-cli-0.6.148/libs/go.mod 2026-07-21 06:37:17.000000000 +0200 @@ -104,6 +104,7 @@ github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect github.com/blang/semver v3.5.1+incompatible // indirect github.com/bmatcuk/doublestar v1.3.4 // indirect + github.com/buger/jsonparser v1.1.1 // indirect github.com/cenkalti/backoff/v3 v3.2.2 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cloudflare/circl v1.6.1 // indirect @@ -123,6 +124,8 @@ github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect github.com/go-git/go-billy/v5 v5.6.0 // indirect github.com/go-ini/ini v1.67.0 // indirect + github.com/go-kit/log v0.2.1 // indirect + github.com/go-logfmt/logfmt v0.5.1 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/gobwas/glob v0.2.3 // indirect @@ -183,6 +186,7 @@ github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-runewidth v0.0.15 // indirect github.com/mattn/go-zglob v0.0.3 // indirect + github.com/migueleliasweb/go-github-mock v0.0.23 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/go-testing-interface v1.14.1 // indirect diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/digger-cli-0.6.147/libs/go.sum new/digger-cli-0.6.148/libs/go.sum --- old/digger-cli-0.6.147/libs/go.sum 2026-06-28 11:06:39.000000000 +0200 +++ new/digger-cli-0.6.148/libs/go.sum 2026-07-21 06:37:17.000000000 +0200 @@ -846,6 +846,8 @@ github.com/bradleyfalzon/ghinstallation/v2 v2.16.0/go.mod h1:OeVe5ggFzoBnmgitZe/A+BqGOnv1DvU/0uiLQi1wutM= github.com/bufbuild/protocompile v0.4.0 h1:LbFKd2XowZvQ/kajzguUp2DC9UEIQhIq77fZZlaQsNA= github.com/bufbuild/protocompile v0.4.0/go.mod h1:3v93+mbWn/v3xzN+31nwkJfrEpAUwp+BagBSZWx+TP8= +github.com/buger/jsonparser v1.1.1 h1:2PnMjfWD7wBILjqQbt530v576A/cAbQvEW9gGIpYMUs= +github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= github.com/bytecodealliance/wasmtime-go/v3 v3.0.2 h1:3uZCA/BLTIu+DqCfguByNMJa2HVHpXvjfy0Dy7g6fuA= github.com/bytecodealliance/wasmtime-go/v3 v3.0.2/go.mod h1:RnUjnIXxEJcL6BgCvNyzCCRzZcxCgsZCi+RNlvYor5Q= github.com/caarlos0/env/v11 v11.1.0 h1:a5qZqieE9ZfzdvbbdhTalRrHT5vu/4V1/ad1Ka6frhI= @@ -1017,11 +1019,15 @@ github.com/go-ini/ini v1.67.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= +github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= github.com/go-latex/latex v0.0.0-20210118124228-b3d85cf34e07/go.mod h1:CO1AlKB2CSIqUrmQPqA0gdRIlnLEY0gK5JGjh37zN5U= github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81/go.mod h1:SX0U8uGpxhq9o2S/CELCSUxEWWAuoCUcVCQWv7G2OCk= github.com/go-ldap/ldap/v3 v3.1.10/go.mod h1:5Zun81jBTabRaI8lzN7E1JjyEl1g6zI6u9pd8luAK4Q= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +github.com/go-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNVA= +github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= @@ -1454,6 +1460,8 @@ github.com/miekg/dns v1.0.8/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.57 h1:Jzi7ApEIzwEPLHWRcafCN9LZSBbqQpxjt/wpgvg7wcM= github.com/miekg/dns v1.1.57/go.mod h1:uqRjCRUuEAA6qsOiJvDd+CFo/vW+y5WR6SNmHE55hZk= +github.com/migueleliasweb/go-github-mock v0.0.23 h1:GOi9oX/+Seu9JQ19V8bPDLqDI7M9iEOjo3g8v1k6L2c= +github.com/migueleliasweb/go-github-mock v0.0.23/go.mod h1:NsT8FGbkvIZQtDu38+295sZEX8snaUiiQgsGxi6GUxk= github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcsrzbxHt8iiaC+zU4b1ylILSosueou12R++wfY= github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3/go.mod h1:RagcQ7I8IeTMnF8JTXieKnO4Z6JCsikNEzj0DwauVzE= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= ++++++ digger-cli.obsinfo ++++++ --- /var/tmp/diff_new_pack.axeYi1/_old 2026-07-21 23:11:00.723552178 +0200 +++ /var/tmp/diff_new_pack.axeYi1/_new 2026-07-21 23:11:00.767553682 +0200 @@ -1,5 +1,5 @@ name: digger-cli -version: 0.6.147 -mtime: 1782637599 -commit: 6baf84cd9cd7c6522b98504f4a2258474d6c2de3 +version: 0.6.148 +mtime: 1784608637 +commit: 3053cda26247aa3cb94dcd4b8a253ee3cbc78243 ++++++ vendor.tar.gz ++++++ /work/SRC/openSUSE:Factory/digger-cli/vendor.tar.gz /work/SRC/openSUSE:Factory/.digger-cli.new.24530/vendor.tar.gz differ: char 135, line 2
