diff --git a/models/actions/run_job_list.go b/models/actions/run_job_list.go index 1904354b4f..047bf64410 100644 --- a/models/actions/run_job_list.go +++ b/models/actions/run_job_list.go @@ -7,6 +7,7 @@ import ( "context" "code.gitea.io/gitea/models/db" + "code.gitea.io/gitea/modules/container" "code.gitea.io/gitea/modules/timeutil" "xorm.io/builder" @@ -15,18 +16,14 @@ import ( type ActionJobList []*ActionRunJob func (jobs ActionJobList) GetRunIDs() []int64 { - runIDsMap := make(map[int64]struct{}) + ids := make(container.Set[int64], len(jobs)) for _, j := range jobs { if j.RunID == 0 { continue } - runIDsMap[j.RunID] = struct{}{} + ids.Add(j.RunID) } - runIDs := make([]int64, 0, len(runIDsMap)) - for runID := range runIDsMap { - runIDs = append(runIDs, runID) - } - return runIDs + return ids.Values() } func (jobs ActionJobList) LoadRuns(ctx context.Context, withRepo bool) error { diff --git a/models/actions/run_list.go b/models/actions/run_list.go index 5e8facc7c1..f9d8417227 100644 --- a/models/actions/run_list.go +++ b/models/actions/run_list.go @@ -9,6 +9,7 @@ import ( "code.gitea.io/gitea/models/db" repo_model "code.gitea.io/gitea/models/repo" user_model "code.gitea.io/gitea/models/user" + "code.gitea.io/gitea/modules/container" "code.gitea.io/gitea/modules/util" "xorm.io/builder" @@ -18,27 +19,19 @@ type RunList []*ActionRun // GetUserIDs returns a slice of user's id func (runs RunList) GetUserIDs() []int64 { - userIDsMap := make(map[int64]struct{}) + ids := make(container.Set[int64], len(runs)) for _, run := range runs { - userIDsMap[run.TriggerUserID] = struct{}{} + ids.Add(run.TriggerUserID) } - userIDs := make([]int64, 0, len(userIDsMap)) - for userID := range userIDsMap { - userIDs = append(userIDs, userID) - } - return userIDs + return ids.Values() } func (runs RunList) GetRepoIDs() []int64 { - repoIDsMap := make(map[int64]struct{}) + ids := make(container.Set[int64], len(runs)) for _, run := range runs { - repoIDsMap[run.RepoID] = struct{}{} + ids.Add(run.RepoID) } - repoIDs := make([]int64, 0, len(repoIDsMap)) - for repoID := range repoIDsMap { - repoIDs = append(repoIDs, repoID) - } - return repoIDs + return ids.Values() } func (runs RunList) LoadTriggerUser(ctx context.Context) error { diff --git a/models/actions/runner_list.go b/models/actions/runner_list.go index 596fe20a09..87f0886b47 100644 --- a/models/actions/runner_list.go +++ b/models/actions/runner_list.go @@ -16,18 +16,14 @@ type RunnerList []*ActionRunner // GetUserIDs returns a slice of user's id func (runners RunnerList) GetUserIDs() []int64 { - userIDsMap := make(map[int64]struct{}) + ids := make(container.Set[int64], len(runners)) for _, runner := range runners { if runner.OwnerID == 0 { continue } - userIDsMap[runner.OwnerID] = struct{}{} + ids.Add(runner.OwnerID) } - userIDs := make([]int64, 0, len(userIDsMap)) - for userID := range userIDsMap { - userIDs = append(userIDs, userID) - } - return userIDs + return ids.Values() } func (runners RunnerList) LoadOwners(ctx context.Context) error { diff --git a/models/actions/task.go b/models/actions/task.go index 36d5e097ca..1f49444164 100644 --- a/models/actions/task.go +++ b/models/actions/task.go @@ -12,6 +12,7 @@ import ( auth_model "code.gitea.io/gitea/models/auth" "code.gitea.io/gitea/models/db" + "code.gitea.io/gitea/modules/container" "code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/modules/setting" "code.gitea.io/gitea/modules/timeutil" @@ -496,12 +497,13 @@ func StopTask(ctx context.Context, taskID int64, status Status) error { } func isSubset(set, subset []string) bool { - m := make(map[string]struct{}, len(set)) + m := make(container.Set[string], len(set)) for _, v := range set { - m[v] = struct{}{} + m.Add(v) } + for _, v := range subset { - if _, ok := m[v]; !ok { + if m.Contains(v) { return false } } diff --git a/models/actions/task_list.go b/models/actions/task_list.go index fad3bd8eb0..aab87edd57 100644 --- a/models/actions/task_list.go +++ b/models/actions/task_list.go @@ -7,6 +7,7 @@ import ( "context" "code.gitea.io/gitea/models/db" + "code.gitea.io/gitea/modules/container" "code.gitea.io/gitea/modules/timeutil" "xorm.io/builder" @@ -15,18 +16,14 @@ import ( type TaskList []*ActionTask func (tasks TaskList) GetJobIDs() []int64 { - jobIDsMap := make(map[int64]struct{}) + ids := make(container.Set[int64], len(tasks)) for _, t := range tasks { if t.JobID == 0 { continue } - jobIDsMap[t.JobID] = struct{}{} + ids.Add(t.JobID) } - jobIDs := make([]int64, 0, len(jobIDsMap)) - for jobID := range jobIDsMap { - jobIDs = append(jobIDs, jobID) - } - return jobIDs + return ids.Values() } func (tasks TaskList) LoadJobs(ctx context.Context) error {