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) { | func (c *Client) ListOrganizationRunnerGroupsForRepository(ctx context.Context, org, repo string) ([]*github.RunnerGroup, error) { | ||||||
| 	var runnerGroups []*github.RunnerGroup | 	var runnerGroups []*github.RunnerGroup | ||||||
| 
 | 
 | ||||||
| 	opts := github.ListOptions{PerPage: 100} | 	var opts github.ListOrgRunnerGroupOptions | ||||||
|  | 	opts.PerPage = 100 | ||||||
|  | 	opts.VisibleToRepository = repo | ||||||
|  | 
 | ||||||
| 	for { | 	for { | ||||||
| 		list, res, err := c.listOrganizationRunnerGroupsVisibleToRepo(ctx, org, repo, &opts) | 		list, res, err := c.Actions.ListOrganizationRunnerGroups(ctx, org, &opts) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return runnerGroups, fmt.Errorf("failed to list organization runner groups: %w", err) | 			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 | 	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.
 | // cleanup removes expired registration tokens.
 | ||||||
| func (c *Client) cleanup() { | func (c *Client) cleanup() { | ||||||
| 	c.mu.Lock() | 	c.mu.Lock() | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue