44 lines
952 B
Go
44 lines
952 B
Go
package simulator
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
"github.com/actions/actions-runner-controller/github"
|
|
"github.com/go-logr/logr"
|
|
)
|
|
|
|
type Simulator struct {
|
|
Client *github.Client
|
|
Log logr.Logger
|
|
}
|
|
|
|
func (c *Simulator) GetRunnerGroupsVisibleToRepository(ctx context.Context, org, repo string, managed *VisibleRunnerGroups) (*VisibleRunnerGroups, error) {
|
|
visible := NewVisibleRunnerGroups()
|
|
|
|
if org == "" {
|
|
panic(fmt.Sprintf("BUG: owner should not be empty in this context. repo=%v", repo))
|
|
}
|
|
|
|
runnerGroups, err := c.Client.ListOrganizationRunnerGroupsForRepository(ctx, org, repo)
|
|
if err != nil {
|
|
return visible, err
|
|
}
|
|
|
|
if c.Log.V(3).Enabled() {
|
|
c.Log.V(3).Info("ListOrganizationRunnerGroupsForRepository succeeded", "runerGroups", runnerGroups)
|
|
}
|
|
|
|
for _, runnerGroup := range runnerGroups {
|
|
ref := NewRunnerGroupFromGitHub(runnerGroup)
|
|
|
|
if !managed.Includes(ref) {
|
|
continue
|
|
}
|
|
|
|
visible.Add(ref)
|
|
}
|
|
|
|
return visible, nil
|
|
}
|