summaryrefslogtreecommitdiffstats
path: root/models
diff options
context:
space:
mode:
authorsillyguodong <33891828+sillyguodong@users.noreply.github.com>2024-03-28 21:40:35 +0100
committerGergely Nagy <forgejo@gergo.csillger.hu>2024-04-07 10:57:53 +0200
commit16696a42f557dd65f335a44f55881d27a3247f97 (patch)
tree1b7fd5fcd4a0a7f80d379b8a8cea949bf11ce1d8 /models
parentFix `DEFAULT_SHOW_FULL_NAME=false` has no effect in commit list and commit gr... (diff)
downloadforgejo-16696a42f557dd65f335a44f55881d27a3247f97.tar.xz
forgejo-16696a42f557dd65f335a44f55881d27a3247f97.zip
Add API for `Variables` (#29520)
close #27801 --------- Co-authored-by: silverwind <me@silverwind.io> (cherry picked from commit 62b073e6f31645e446c7e8d6b5a506f61b47924e) Conflicts: - modules/util/util.go Trivial resolution, only picking the newly introduced function - routers/api/v1/swagger/options.go Trivial resolution. We don't have UserBadges, don't pick that part. - templates/swagger/v1_json.tmpl Regenerated.
Diffstat (limited to 'models')
-rw-r--r--models/actions/variable.go27
1 files changed, 16 insertions, 11 deletions
diff --git a/models/actions/variable.go b/models/actions/variable.go
index 14ded60fac..b0a455e675 100644
--- a/models/actions/variable.go
+++ b/models/actions/variable.go
@@ -6,13 +6,11 @@ package actions
import (
"context"
"errors"
- "fmt"
"strings"
"code.gitea.io/gitea/models/db"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/timeutil"
- "code.gitea.io/gitea/modules/util"
"xorm.io/builder"
)
@@ -55,24 +53,24 @@ type FindVariablesOpts struct {
db.ListOptions
OwnerID int64
RepoID int64
+ Name string
}
func (opts FindVariablesOpts) ToConds() builder.Cond {
cond := builder.NewCond()
+ // Since we now support instance-level variables,
+ // there is no need to check for null values for `owner_id` and `repo_id`
cond = cond.And(builder.Eq{"owner_id": opts.OwnerID})
cond = cond.And(builder.Eq{"repo_id": opts.RepoID})
+
+ if opts.Name != "" {
+ cond = cond.And(builder.Eq{"name": strings.ToUpper(opts.Name)})
+ }
return cond
}
-func GetVariableByID(ctx context.Context, variableID int64) (*ActionVariable, error) {
- var variable ActionVariable
- has, err := db.GetEngine(ctx).Where("id=?", variableID).Get(&variable)
- if err != nil {
- return nil, err
- } else if !has {
- return nil, fmt.Errorf("variable with id %d: %w", variableID, util.ErrNotExist)
- }
- return &variable, nil
+func FindVariables(ctx context.Context, opts FindVariablesOpts) ([]*ActionVariable, error) {
+ return db.Find[ActionVariable](ctx, opts)
}
func UpdateVariable(ctx context.Context, variable *ActionVariable) (bool, error) {
@@ -84,6 +82,13 @@ func UpdateVariable(ctx context.Context, variable *ActionVariable) (bool, error)
return count != 0, err
}
+func DeleteVariable(ctx context.Context, id int64) error {
+ if _, err := db.DeleteByID[ActionVariable](ctx, id); err != nil {
+ return err
+ }
+ return nil
+}
+
func GetVariablesOfRun(ctx context.Context, run *ActionRun) (map[string]string, error) {
variables := map[string]string{}