1
1
mirror of https://github.com/go-gitea/gitea synced 2025-09-28 03:28:13 +00:00

add models and services

This commit is contained in:
Lunny Xiao
2022-10-07 22:43:56 +08:00
committed by Jason Song
parent 4af45f7bc9
commit ab4f539453
6 changed files with 201 additions and 0 deletions

54
models/auth/secret.go Normal file
View File

@@ -0,0 +1,54 @@
// 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 auth
import (
"fmt"
"regexp"
"code.gitea.io/gitea/modules/timeutil"
)
type ErrSecretNameInvalid struct {
Name string
}
func (err ErrSecretNameInvalid) Error() string {
return fmt.Sprintf("secret name %s is invalid", err.Name)
}
type ErrSecretDataInvalid struct {
Data string
}
func (err ErrSecretDataInvalid) Error() string {
return fmt.Sprintf("secret data %s is invalid", err.Data)
}
var nameRE = regexp.MustCompile("[^a-zA-Z0-9-_.]+")
type Secret struct {
ID int64
UserID int64 `xorm:"index"`
RepoID int64 `xorm:"index"`
Name string
Data string
PullRequest bool
CreatedUnix timeutil.TimeStamp
}
// Validate validates the required fields and formats.
func (s *Secret) Validate() error {
switch {
case len(s.Name) == 0:
return ErrSecretNameInvalid{Name: s.Name}
case len(s.Data) == 0:
return ErrSecretDataInvalid{Data: s.Data}
case nameRE.MatchString(s.Name):
return ErrSecretNameInvalid{Name: s.Name}
default:
return nil
}
}