summaryrefslogtreecommitdiffstats
path: root/models
diff options
context:
space:
mode:
authorJakobDev <jakobdev@gmx.de>2024-12-19 16:11:12 +0100
committerJakobDev <jakobdev@gmx.de>2024-12-19 16:11:12 +0100
commit265174bd5e19d3687ddb9a63f2b4fde851a130b7 (patch)
tree793411d98a8b571b9e0f2843f93eba829bb65860 /models
parentUpdate (diff)
parentUpdate dependency @playwright/test to v1.49.1 (forgejo) (#6308) (diff)
downloadforgejo-265174bd5e19d3687ddb9a63f2b4fde851a130b7.tar.xz
forgejo-265174bd5e19d3687ddb9a63f2b4fde851a130b7.zip
Merge branch 'forgejo' into repocard
Diffstat (limited to 'models')
-rw-r--r--models/actions/run.go1
-rw-r--r--models/actions/run_job.go4
-rw-r--r--models/db/context_committer_test.go6
-rw-r--r--models/fixtures/action_run.yml19
-rw-r--r--models/fixtures/action_run_job.yml43
-rw-r--r--models/fixtures/action_task.yml60
-rw-r--r--models/fixtures/action_task_output.yml20
-rw-r--r--models/git/branch.go18
8 files changed, 164 insertions, 7 deletions
diff --git a/models/actions/run.go b/models/actions/run.go
index 06a1290d5d..c5512106b9 100644
--- a/models/actions/run.go
+++ b/models/actions/run.go
@@ -37,6 +37,7 @@ type ActionRun struct {
TriggerUser *user_model.User `xorm:"-"`
ScheduleID int64
Ref string `xorm:"index"` // the commit/tag/… that caused the run
+ IsRefDeleted bool `xorm:"-"`
CommitSHA string
IsForkPullRequest bool // If this is triggered by a PR from a forked repository or an untrusted user, we need to check if it is approved and limit permissions when running the workflow.
NeedApproval bool // may need approval if it's a fork pull request
diff --git a/models/actions/run_job.go b/models/actions/run_job.go
index 4b8664077d..2319af8e08 100644
--- a/models/actions/run_job.go
+++ b/models/actions/run_job.go
@@ -137,7 +137,7 @@ func UpdateRunJob(ctx context.Context, job *ActionRunJob, cond builder.Cond, col
if err != nil {
return 0, err
}
- run.Status = aggregateJobStatus(jobs)
+ run.Status = AggregateJobStatus(jobs)
if run.Started.IsZero() && run.Status.IsRunning() {
run.Started = timeutil.TimeStampNow()
}
@@ -152,7 +152,7 @@ func UpdateRunJob(ctx context.Context, job *ActionRunJob, cond builder.Cond, col
return affected, nil
}
-func aggregateJobStatus(jobs []*ActionRunJob) Status {
+func AggregateJobStatus(jobs []*ActionRunJob) Status {
allDone := true
allWaiting := true
hasFailure := false
diff --git a/models/db/context_committer_test.go b/models/db/context_committer_test.go
index 38e91f22ed..849c5dea41 100644
--- a/models/db/context_committer_test.go
+++ b/models/db/context_committer_test.go
@@ -4,7 +4,7 @@
package db // it's not db_test, because this file is for testing the private type halfCommitter
import (
- "fmt"
+ "errors"
"testing"
"github.com/stretchr/testify/assert"
@@ -80,7 +80,7 @@ func Test_halfCommitter(t *testing.T) {
testWithCommitter(mockCommitter, func(committer Committer) error {
defer committer.Close()
if true {
- return fmt.Errorf("error")
+ return errors.New("error")
}
return committer.Commit()
})
@@ -94,7 +94,7 @@ func Test_halfCommitter(t *testing.T) {
testWithCommitter(mockCommitter, func(committer Committer) error {
committer.Close()
committer.Commit()
- return fmt.Errorf("error")
+ return errors.New("error")
})
mockCommitter.Assert(t)
diff --git a/models/fixtures/action_run.yml b/models/fixtures/action_run.yml
index 9c60b352f9..2fe9094d13 100644
--- a/models/fixtures/action_run.yml
+++ b/models/fixtures/action_run.yml
@@ -414,6 +414,25 @@
"total_commits": 0
}
-
+ id: 793
+ title: "job output"
+ repo_id: 4
+ owner_id: 1
+ workflow_id: "test.yaml"
+ index: 189
+ trigger_user_id: 1
+ ref: "refs/heads/master"
+ commit_sha: "c2d72f548424103f01ee1dc02889c1e2bff816b0"
+ event: "push"
+ is_fork_pull_request: 0
+ status: 1
+ started: 1683636528
+ stopped: 1683636626
+ created: 1683636108
+ updated: 1683636626
+ need_approval: 0
+ approved_by: 0
+-
id: 891
title: "update actions"
repo_id: 1
diff --git a/models/fixtures/action_run_job.yml b/models/fixtures/action_run_job.yml
index 0b02d0e17e..117bb5ea05 100644
--- a/models/fixtures/action_run_job.yml
+++ b/models/fixtures/action_run_job.yml
@@ -27,6 +27,49 @@
started: 1683636528
stopped: 1683636626
-
+ id: 194
+ run_id: 793
+ repo_id: 4
+ owner_id: 1
+ commit_sha: c2d72f548424103f01ee1dc02889c1e2bff816b0
+ is_fork_pull_request: 0
+ name: job1 (1)
+ attempt: 1
+ job_id: job1
+ task_id: 49
+ status: 1
+ started: 1683636528
+ stopped: 1683636626
+-
+ id: 195
+ run_id: 793
+ repo_id: 4
+ owner_id: 1
+ commit_sha: c2d72f548424103f01ee1dc02889c1e2bff816b0
+ is_fork_pull_request: 0
+ name: job1 (2)
+ attempt: 1
+ job_id: job1
+ task_id: 50
+ status: 1
+ started: 1683636528
+ stopped: 1683636626
+-
+ id: 196
+ run_id: 793
+ repo_id: 4
+ owner_id: 1
+ commit_sha: c2d72f548424103f01ee1dc02889c1e2bff816b0
+ is_fork_pull_request: 0
+ name: job2
+ attempt: 1
+ job_id: job2
+ needs: [job1]
+ task_id: 51
+ status: 5
+ started: 1683636528
+ stopped: 1683636626
+-
id: 292
run_id: 891
repo_id: 1
diff --git a/models/fixtures/action_task.yml b/models/fixtures/action_task.yml
index d88a8ed8a9..506a47d8a0 100644
--- a/models/fixtures/action_task.yml
+++ b/models/fixtures/action_task.yml
@@ -57,3 +57,63 @@
log_length: 707
log_size: 90179
log_expired: 0
+-
+ id: 49
+ job_id: 194
+ attempt: 1
+ runner_id: 1
+ status: 1 # success
+ started: 1683636528
+ stopped: 1683636626
+ repo_id: 4
+ owner_id: 1
+ commit_sha: c2d72f548424103f01ee1dc02889c1e2bff816b0
+ is_fork_pull_request: 0
+ token_hash: b8d3962425466b6709b9ac51446f93260c54afe8e7b6d3686e34f991fb8a8953822b0deed86fe41a103f34bc48dbc4784220
+ token_salt: ffffffffff
+ token_last_eight: ffffffff
+ log_filename: artifact-test2/2f/47.log
+ log_in_storage: 1
+ log_length: 707
+ log_size: 90179
+ log_expired: 0
+-
+ id: 50
+ job_id: 195
+ attempt: 1
+ runner_id: 1
+ status: 1 # success
+ started: 1683636528
+ stopped: 1683636626
+ repo_id: 4
+ owner_id: 1
+ commit_sha: c2d72f548424103f01ee1dc02889c1e2bff816b0
+ is_fork_pull_request: 0
+ token_hash: b8d3962425466b6709b9ac51446f93260c54afe8e7b6d3686e34f991fb8a8953822b0deed86fe41a103f34bc48dbc4784221
+ token_salt: ffffffffff
+ token_last_eight: ffffffff
+ log_filename: artifact-test2/2f/47.log
+ log_in_storage: 1
+ log_length: 707
+ log_size: 90179
+ log_expired: 0
+-
+ id: 51
+ job_id: 196
+ attempt: 1
+ runner_id: 1
+ status: 6 # running
+ started: 1683636528
+ stopped: 1683636626
+ repo_id: 4
+ owner_id: 1
+ commit_sha: c2d72f548424103f01ee1dc02889c1e2bff816b0
+ is_fork_pull_request: 0
+ token_hash: b8d3962425466b6709b9ac51446f93260c54afe8e7b6d3686e34f991fb8a8953822b0deed86fe41a103f34bc48dbc4784222
+ token_salt: ffffffffff
+ token_last_eight: ffffffff
+ log_filename: artifact-test2/2f/47.log
+ log_in_storage: 1
+ log_length: 707
+ log_size: 90179
+ log_expired: 0
diff --git a/models/fixtures/action_task_output.yml b/models/fixtures/action_task_output.yml
new file mode 100644
index 0000000000..314e9f7115
--- /dev/null
+++ b/models/fixtures/action_task_output.yml
@@ -0,0 +1,20 @@
+-
+ id: 1
+ task_id: 49
+ output_key: output_a
+ output_value: abc
+-
+ id: 2
+ task_id: 49
+ output_key: output_b
+ output_value: ''
+-
+ id: 3
+ task_id: 50
+ output_key: output_a
+ output_value: ''
+-
+ id: 4
+ task_id: 50
+ output_key: output_b
+ output_value: bbb
diff --git a/models/git/branch.go b/models/git/branch.go
index 74923f2b9b..702d767c75 100644
--- a/models/git/branch.go
+++ b/models/git/branch.go
@@ -11,6 +11,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/git"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/timeutil"
@@ -162,9 +163,22 @@ func GetBranch(ctx context.Context, repoID int64, branchName string) (*Branch, e
return &branch, nil
}
-func GetBranches(ctx context.Context, repoID int64, branchNames []string) ([]*Branch, error) {
+func GetBranches(ctx context.Context, repoID int64, branchNames []string, includeDeleted bool) ([]*Branch, error) {
branches := make([]*Branch, 0, len(branchNames))
- return branches, db.GetEngine(ctx).Where("repo_id=?", repoID).In("name", branchNames).Find(&branches)
+
+ sess := db.GetEngine(ctx).Where("repo_id=?", repoID).In("name", branchNames)
+ if !includeDeleted {
+ sess.And("is_deleted=?", false)
+ }
+ return branches, sess.Find(&branches)
+}
+
+func BranchesToNamesSet(branches []*Branch) container.Set[string] {
+ names := make(container.Set[string], len(branches))
+ for _, branch := range branches {
+ names.Add(branch.Name)
+ }
+ return names
}
func AddBranches(ctx context.Context, branches []*Branch) error {