vault/tools/pipeline/internal/pkg/github/commit.go
Vault Automation 0c6c13dd38
license: update headers to IBM Corp. (#10229) (#10233)
* license: update headers to IBM Corp.
* `make proto`
* update offset because source file changed

Signed-off-by: Ryan Cragun <me@ryan.ec>
Co-authored-by: Ryan Cragun <me@ryan.ec>
2025-10-21 15:20:20 -06:00

44 lines
975 B
Go

// Copyright IBM Corp. 2016, 2025
// SPDX-License-Identifier: BUSL-1.1
package github
import (
"context"
"log/slog"
libgithub "github.com/google/go-github/v74/github"
slogctx "github.com/veqryn/slog-context"
)
// listCommitStatuses lists all of the statuses associated with a commit.
func listCommitStatuses(
ctx context.Context,
github *libgithub.Client,
owner string,
repo string,
ref string,
) ([]*libgithub.RepoStatus, error) {
ctx = slogctx.Append(ctx,
slog.String("owner", owner),
slog.String("repo", repo),
slog.String("commit-ref", ref),
)
slog.Default().DebugContext(ctx, "listing commit statuses")
opts := &libgithub.ListOptions{PerPage: PerPageMax}
statuses := []*libgithub.RepoStatus{}
for {
ss, res, err := github.Repositories.ListStatuses(ctx, owner, repo, ref, opts)
if err != nil {
return nil, err
}
statuses = append(statuses, ss...)
if res.NextPage == 0 {
return statuses, nil
}
opts.Page = res.NextPage
}
}