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