}
func (runners RunnerList) getRepoIDs() []int64 {
- repoIDs := make(container.Set[int64], len(runners))
- for _, runner := range runners {
- if runner.RepoID == 0 {
- continue
- }
- if _, ok := repoIDs[runner.RepoID]; !ok {
- repoIDs[runner.RepoID] = struct{}{}
- }
- }
- return repoIDs.Values()
+ return container.FilterSlice(runners, func(runner *ActionRunner) (int64, bool) {
+ return runner.RepoID, runner.RepoID > 0
+ })
}
func (runners RunnerList) LoadRepos(ctx context.Context) error {
}
func (nl NotificationList) getPendingRepoIDs() []int64 {
- ids := make(container.Set[int64], len(nl))
- for _, notification := range nl {
- if notification.Repository != nil {
- continue
+ return container.FilterSlice(nl, func(n *Notification) (int64, bool) {
+ if n.Repository != nil {
+ return 0, false
}
- ids.Add(notification.RepoID)
- }
- return ids.Values()
+ return n.RepoID, true
+ })
}
// LoadRepos loads repositories from database
// get the repo IDs to be loaded later, these IDs are for issue.Repo and issue.PullRequest.HeadRepo
func (issues IssueList) getRepoIDs() []int64 {
- repoIDs := make(container.Set[int64], len(issues))
- for _, issue := range issues {
+ return container.FilterSlice(issues, func(issue *Issue) (int64, bool) {
if issue.Repo == nil {
- repoIDs.Add(issue.RepoID)
+ return issue.RepoID, true
}
if issue.PullRequest != nil && issue.PullRequest.HeadRepo == nil {
- repoIDs.Add(issue.PullRequest.HeadRepoID)
+ return issue.PullRequest.HeadRepoID, true
}
- }
- return repoIDs.Values()
+ return 0, false
+ })
}
// LoadRepositories loads issues' all repositories