Use the go-github impl of ListRunnerGroups with visible_to_repository (#1578)
Ref #1402
This commit is contained in:
parent
73e430ce54
commit
f661249f07
|
|
@ -272,9 +272,12 @@ func (c *Client) ListOrganizationRunnerGroups(ctx context.Context, org string) (
|
|||
func (c *Client) ListOrganizationRunnerGroupsForRepository(ctx context.Context, org, repo string) ([]*github.RunnerGroup, error) {
|
||||
var runnerGroups []*github.RunnerGroup
|
||||
|
||||
opts := github.ListOptions{PerPage: 100}
|
||||
var opts github.ListOrgRunnerGroupOptions
|
||||
opts.PerPage = 100
|
||||
opts.VisibleToRepository = repo
|
||||
|
||||
for {
|
||||
list, res, err := c.listOrganizationRunnerGroupsVisibleToRepo(ctx, org, repo, &opts)
|
||||
list, res, err := c.Actions.ListOrganizationRunnerGroups(ctx, org, &opts)
|
||||
if err != nil {
|
||||
return runnerGroups, fmt.Errorf("failed to list organization runner groups: %w", err)
|
||||
}
|
||||
|
|
@ -310,42 +313,6 @@ func (c *Client) ListRunnerGroupRepositoryAccesses(ctx context.Context, org stri
|
|||
return repos, nil
|
||||
}
|
||||
|
||||
// listOrganizationRunnerGroupsVisibleToRepo lists all self-hosted runner groups configured in an organization which can be used by the repository.
|
||||
//
|
||||
// GitHub API docs: https://docs.github.com/en/rest/reference/actions#list-self-hosted-runner-groups-for-an-organization
|
||||
func (c *Client) listOrganizationRunnerGroupsVisibleToRepo(ctx context.Context, org, repo string, opts *github.ListOptions) (*github.RunnerGroups, *github.Response, error) {
|
||||
repoName := repo
|
||||
parts := strings.Split(repo, "/")
|
||||
if len(parts) == 2 {
|
||||
repoName = parts[1]
|
||||
}
|
||||
|
||||
u := fmt.Sprintf("orgs/%v/actions/runner-groups?visible_to_repository=%v", org, repoName)
|
||||
|
||||
if opts != nil {
|
||||
if opts.PerPage > 0 {
|
||||
u = fmt.Sprintf("%v&per_page=%v", u, opts.PerPage)
|
||||
}
|
||||
|
||||
if opts.Page > 0 {
|
||||
u = fmt.Sprintf("%v&page=%v", u, opts.Page)
|
||||
}
|
||||
}
|
||||
|
||||
req, err := c.Client.NewRequest("GET", u, nil)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
groups := &github.RunnerGroups{}
|
||||
resp, err := c.Client.Do(ctx, req, &groups)
|
||||
if err != nil {
|
||||
return nil, resp, err
|
||||
}
|
||||
|
||||
return groups, resp, nil
|
||||
}
|
||||
|
||||
// cleanup removes expired registration tokens.
|
||||
func (c *Client) cleanup() {
|
||||
c.mu.Lock()
|
||||
|
|
|
|||
Loading…
Reference in New Issue