This commit is contained in:
Lunny Xiao 2022-10-14 21:48:47 +08:00 committed by Jason Song
parent 8ec691f3ce
commit e7d5c99b42
8 changed files with 56 additions and 43 deletions

View File

@ -29,17 +29,18 @@ func (err ErrSecretDataInvalid) Error() string {
var nameRE = regexp.MustCompile("[^a-zA-Z0-9-_.]+")
// Secret represents a secret
type Secret struct {
ID int64
UserID int64 `xorm:"index"`
RepoID int64 `xorm:"index"`
Name string
Data string
PullRequest bool
ID int64
UserID int64 `xorm:"index"`
RepoID int64 `xorm:"index"`
Name string
Data string
PullRequest bool
CreatedUnix timeutil.TimeStamp `xorm:"created"`
}
// Validate validates the required fields and formats.
// Validate validates the required fields and formats.
func (s *Secret) Validate() error {
switch {
case len(s.Name) == 0:

View File

@ -41,7 +41,7 @@ func FindObjects[Object any](ctx context.Context, cond builder.Cond, opts *ListO
if opts.Page < 1 {
opts.Page = 1
}
sess.Limit(opts.PageSize, opts.PageSize * (opts.Page - 1))
sess.Limit(opts.PageSize, opts.PageSize*(opts.Page-1))
}
return sess.Find(objects)
}

25
models/migrations/v227.go Normal file
View File

@ -0,0 +1,25 @@
// Copyright 2022 The Gitea Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package migrations
import (
"code.gitea.io/gitea/modules/timeutil"
"xorm.io/xorm"
)
func createSecretsTable(x *xorm.Engine) error {
type Secret struct {
ID int64
UserID int64 `xorm:"index"`
RepoID int64 `xorm:"index"`
Name string
Data string
PullRequest bool
CreatedUnix timeutil.TimeStamp `xorm:"created"`
}
return x.Sync(new(Secret))
}

View File

@ -9,7 +9,6 @@ import (
"crypto/rand"
"encoding/base64"
"io"
"math/big"
"time"
"code.gitea.io/gitea/modules/util"
@ -79,12 +78,3 @@ func NewMasterKey() ([]byte, error) {
return secretBytes, nil
}
func randomInt(max *big.Int) (int, error) {
rand, err := rand.Int(rand.Reader, max)
if err != nil {
return 0, err
}
return int(rand.Int64()), nil
}

View File

@ -215,8 +215,8 @@ var (
HMACKey string `ini:"HMAC_KEY"`
Allways bool
}{}
MasterKeyProvider string
MasterKey []byte
MasterKeyProvider string
MasterKey []byte
// UI settings
UI = struct {

View File

@ -13,8 +13,7 @@ import (
"io"
)
type aesEncryptionProvider struct {
}
type aesEncryptionProvider struct{}
func NewAesEncryptionProvider() EncryptionProvider {
return &aesEncryptionProvider{}

View File

@ -4,8 +4,7 @@
package secrets
type nopMasterKeyProvider struct {
}
type nopMasterKeyProvider struct{}
// NewNopMasterKeyProvider returns master key provider that holds no master key and is always unsealed
func NewNopMasterKeyProvider() MasterKeyProvider {

View File

@ -103,16 +103,16 @@ func DecryptString(enc string) (string, error) {
}
func InsertRepoSecret(ctx context.Context, repoID int64, key, data string, pullRequest bool) error {
v, err := EncryptString( data)
v, err := EncryptString(data)
if err != nil {
return err
}
return db.Insert(ctx, &auth_model.Secret{
RepoID: repoID,
Name: key,
Data: v,
PullRequest: pullRequest,
})
return db.Insert(ctx, &auth_model.Secret{
RepoID: repoID,
Name: key,
Data: v,
PullRequest: pullRequest,
})
}
func InsertOrgSecret(ctx context.Context, userID int64, key, data string, pullRequest bool) error {
@ -120,26 +120,25 @@ func InsertOrgSecret(ctx context.Context, userID int64, key, data string, pullRe
if err != nil {
return err
}
return db.Insert(ctx, &auth_model.Secret{
UserID: userID,
Name: key,
Data: v,
PullRequest: pullRequest,
})
return db.Insert(ctx, &auth_model.Secret{
UserID: userID,
Name: key,
Data: v,
PullRequest: pullRequest,
})
}
func DeleteSecretByID(ctx context.Context, id int64) error {
_, err := db.DeleteByBean(ctx, &auth_model.Secret{ID: id})
return err
_, err := db.DeleteByBean(ctx, &auth_model.Secret{ID: id})
return err
}
func FindRepoSecrets(ctx context.Context,repoID int64) ([]*auth_model.Secret, error) {
func FindRepoSecrets(ctx context.Context, repoID int64) ([]*auth_model.Secret, error) {
var res []*auth_model.Secret
return res, db.FindObjects(ctx, builder.Eq{"repo_id": repoID}, nil,&res)
return res, db.FindObjects(ctx, builder.Eq{"repo_id": repoID}, nil, &res)
}
func FindUserSecrets(ctx context.Context, userID int64) ([]*auth_model.Secret, error) {
var res []*auth_model.Secret
return res, db.FindObjects(ctx, builder.Eq{"user_id": userID}, nil,&res)
return res, db.FindObjects(ctx, builder.Eq{"user_id": userID}, nil, &res)
}