mirror of
https://github.com/go-gitea/gitea
synced 2024-11-19 07:19:25 +01:00
1fc998984f
Signed-off-by: Alex Lau(AvengerMoJo) <avengermojo@gmail.com>
79 lines
1.9 KiB
Go
79 lines
1.9 KiB
Go
// Copyright 2024 The Gitea Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
// WIP RequireAction
|
|
|
|
package actions
|
|
|
|
import (
|
|
"context"
|
|
|
|
"code.gitea.io/gitea/models/db"
|
|
//"code.gitea.io/gitea/models/unit"
|
|
"code.gitea.io/gitea/modules/timeutil"
|
|
|
|
"xorm.io/builder"
|
|
)
|
|
|
|
type RequireAction struct {
|
|
ID int64 `xorm:"pk autoincr"`
|
|
OrgID int64 `xorm:"index"`
|
|
RepoName string `xorm:"VARCHAR(255)"`
|
|
WorkflowName string `xorm:"VARCHAR(255) UNIQUE(require_action) NOT NULL"`
|
|
// Description string `xorm:"LONGTEXT NOT NULL"`
|
|
CreatedUnix timeutil.TimeStamp `xorm:"created NOT NULL"`
|
|
UpdatedUnix timeutil.TimeStamp `xorm:"updated"`
|
|
// RepoRange string // glob match which repositories could use this runner
|
|
}
|
|
|
|
type GlobalWorkflow struct {
|
|
RepoName string
|
|
Filename string
|
|
}
|
|
|
|
func init() {
|
|
db.RegisterModel(new(RequireAction))
|
|
}
|
|
|
|
type FindRequireActionOptions struct {
|
|
db.ListOptions
|
|
RequireActionID int64
|
|
OrgID int64
|
|
RepoName string
|
|
}
|
|
|
|
func (opts FindRequireActionOptions) ToConds() builder.Cond {
|
|
cond := builder.NewCond()
|
|
if opts.OrgID > 0 {
|
|
cond = cond.And(builder.Eq{"org_id": opts.OrgID})
|
|
}
|
|
if opts.RequireActionID > 0 {
|
|
cond = cond.And(builder.Eq{"id": opts.RequireActionID})
|
|
}
|
|
if opts.RepoName != "" {
|
|
cond = cond.And(builder.Eq{"repo_name": opts.RepoName})
|
|
}
|
|
return cond
|
|
}
|
|
|
|
// LoadAttributes loads the attributes of the require action
|
|
func (r *RequireAction) LoadAttributes(ctx context.Context) error {
|
|
// place holder for now.
|
|
return nil
|
|
}
|
|
|
|
// if the workflow is removable
|
|
func (r *RequireAction) Removable(orgID int64) bool {
|
|
// everyone can remove for now
|
|
return r.OrgID == orgID
|
|
}
|
|
|
|
func AddRequireAction(ctx context.Context, orgID int64, repoName, workflowName string) (*RequireAction, error) {
|
|
ra := &RequireAction{
|
|
OrgID: orgID,
|
|
RepoName: repoName,
|
|
WorkflowName: workflowName,
|
|
}
|
|
return ra, db.Insert(ctx, ra)
|
|
}
|