Remove dead code identified by deadcode tool (#37271)
Ran [`deadcode`](https://pkg.go.dev/golang.org/x/tools/cmd/deadcode) (`-test ./...`) to find functions, methods and error types unreachable from any call path (including tests), and removed the truly-dead ones. Co-authored-by: Claude (Opus 4.7) <noreply@anthropic.com>
This commit is contained in:
@@ -7,7 +7,6 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
|
|
||||||
"code.gitea.io/gitea/models/db"
|
"code.gitea.io/gitea/models/db"
|
||||||
repo_model "code.gitea.io/gitea/models/repo"
|
|
||||||
user_model "code.gitea.io/gitea/models/user"
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/container"
|
"code.gitea.io/gitea/modules/container"
|
||||||
"code.gitea.io/gitea/modules/translation"
|
"code.gitea.io/gitea/modules/translation"
|
||||||
@@ -25,12 +24,6 @@ func (runs RunList) GetUserIDs() []int64 {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (runs RunList) GetRepoIDs() []int64 {
|
|
||||||
return container.FilterSlice(runs, func(run *ActionRun) (int64, bool) {
|
|
||||||
return run.RepoID, true
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
func (runs RunList) LoadTriggerUser(ctx context.Context) error {
|
func (runs RunList) LoadTriggerUser(ctx context.Context) error {
|
||||||
userIDs := runs.GetUserIDs()
|
userIDs := runs.GetUserIDs()
|
||||||
users := make(map[int64]*user_model.User, len(userIDs))
|
users := make(map[int64]*user_model.User, len(userIDs))
|
||||||
@@ -50,18 +43,6 @@ func (runs RunList) LoadTriggerUser(ctx context.Context) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (runs RunList) LoadRepos(ctx context.Context) error {
|
|
||||||
repoIDs := runs.GetRepoIDs()
|
|
||||||
repos, err := repo_model.GetRepositoriesMapByIDs(ctx, repoIDs)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
for _, run := range runs {
|
|
||||||
run.Repo = repos[run.RepoID]
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
type FindRunOptions struct {
|
type FindRunOptions struct {
|
||||||
db.ListOptions
|
db.ListOptions
|
||||||
RepoID int64
|
RepoID int64
|
||||||
|
|||||||
@@ -4,62 +4,13 @@
|
|||||||
package actions
|
package actions
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
|
||||||
|
|
||||||
"code.gitea.io/gitea/models/db"
|
"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"
|
|
||||||
|
|
||||||
"xorm.io/builder"
|
"xorm.io/builder"
|
||||||
)
|
)
|
||||||
|
|
||||||
type ScheduleList []*ActionSchedule
|
type ScheduleList []*ActionSchedule
|
||||||
|
|
||||||
// GetUserIDs returns a slice of user's id
|
|
||||||
func (schedules ScheduleList) GetUserIDs() []int64 {
|
|
||||||
return container.FilterSlice(schedules, func(schedule *ActionSchedule) (int64, bool) {
|
|
||||||
return schedule.TriggerUserID, true
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
func (schedules ScheduleList) GetRepoIDs() []int64 {
|
|
||||||
return container.FilterSlice(schedules, func(schedule *ActionSchedule) (int64, bool) {
|
|
||||||
return schedule.RepoID, true
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
func (schedules ScheduleList) LoadTriggerUser(ctx context.Context) error {
|
|
||||||
userIDs := schedules.GetUserIDs()
|
|
||||||
users := make(map[int64]*user_model.User, len(userIDs))
|
|
||||||
if err := db.GetEngine(ctx).In("id", userIDs).Find(&users); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
for _, schedule := range schedules {
|
|
||||||
if schedule.TriggerUserID == user_model.ActionsUserID {
|
|
||||||
schedule.TriggerUser = user_model.NewActionsUser()
|
|
||||||
} else {
|
|
||||||
schedule.TriggerUser = users[schedule.TriggerUserID]
|
|
||||||
if schedule.TriggerUser == nil {
|
|
||||||
schedule.TriggerUser = user_model.NewGhostUser()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (schedules ScheduleList) LoadRepos(ctx context.Context) error {
|
|
||||||
repoIDs := schedules.GetRepoIDs()
|
|
||||||
repos, err := repo_model.GetRepositoriesMapByIDs(ctx, repoIDs)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
for _, schedule := range schedules {
|
|
||||||
schedule.Repo = repos[schedule.RepoID]
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
type FindScheduleOptions struct {
|
type FindScheduleOptions struct {
|
||||||
db.ListOptions
|
db.ListOptions
|
||||||
RepoID int64
|
RepoID int64
|
||||||
|
|||||||
@@ -282,9 +282,3 @@ func GetFeeds(ctx context.Context, opts GetFeedsOptions) (ActionList, int64, err
|
|||||||
|
|
||||||
return actions, count, nil
|
return actions, count, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func CountUserFeeds(ctx context.Context, userID int64) (int64, error) {
|
|
||||||
return db.GetEngine(ctx).Where("user_id = ?", userID).
|
|
||||||
And("is_deleted = ?", false).
|
|
||||||
Count(&Action{})
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -192,28 +192,6 @@ func (err ErrGPGKeyIDAlreadyUsed) Unwrap() error {
|
|||||||
return util.ErrAlreadyExist
|
return util.ErrAlreadyExist
|
||||||
}
|
}
|
||||||
|
|
||||||
// ErrGPGKeyAccessDenied represents a "GPGKeyAccessDenied" kind of Error.
|
|
||||||
type ErrGPGKeyAccessDenied struct {
|
|
||||||
UserID int64
|
|
||||||
KeyID int64
|
|
||||||
}
|
|
||||||
|
|
||||||
// IsErrGPGKeyAccessDenied checks if an error is a ErrGPGKeyAccessDenied.
|
|
||||||
func IsErrGPGKeyAccessDenied(err error) bool {
|
|
||||||
_, ok := err.(ErrGPGKeyAccessDenied)
|
|
||||||
return ok
|
|
||||||
}
|
|
||||||
|
|
||||||
// Error pretty-prints an error of type ErrGPGKeyAccessDenied.
|
|
||||||
func (err ErrGPGKeyAccessDenied) Error() string {
|
|
||||||
return fmt.Sprintf("user does not have access to the key [user_id: %d, key_id: %d]",
|
|
||||||
err.UserID, err.KeyID)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (err ErrGPGKeyAccessDenied) Unwrap() error {
|
|
||||||
return util.ErrPermissionDenied
|
|
||||||
}
|
|
||||||
|
|
||||||
// ErrKeyAccessDenied represents a "KeyAccessDenied" kind of error.
|
// ErrKeyAccessDenied represents a "KeyAccessDenied" kind of error.
|
||||||
type ErrKeyAccessDenied struct {
|
type ErrKeyAccessDenied struct {
|
||||||
UserID int64
|
UserID int64
|
||||||
|
|||||||
@@ -105,14 +105,6 @@ func addDeployKey(ctx context.Context, keyID, repoID int64, name, fingerprint st
|
|||||||
return key, db.Insert(ctx, key)
|
return key, db.Insert(ctx, key)
|
||||||
}
|
}
|
||||||
|
|
||||||
// HasDeployKey returns true if public key is a deploy key of given repository.
|
|
||||||
func HasDeployKey(ctx context.Context, keyID, repoID int64) bool {
|
|
||||||
has, _ := db.GetEngine(ctx).
|
|
||||||
Where("key_id = ? AND repo_id = ?", keyID, repoID).
|
|
||||||
Get(new(DeployKey))
|
|
||||||
return has
|
|
||||||
}
|
|
||||||
|
|
||||||
// AddDeployKey add new deploy key to database and authorized_keys file.
|
// AddDeployKey add new deploy key to database and authorized_keys file.
|
||||||
func AddDeployKey(ctx context.Context, repoID int64, name, content string, readOnly bool) (*DeployKey, error) {
|
func AddDeployKey(ctx context.Context, repoID int64, name, content string, readOnly bool) (*DeployKey, error) {
|
||||||
fingerprint, err := CalcFingerprint(content)
|
fingerprint, err := CalcFingerprint(content)
|
||||||
|
|||||||
@@ -200,13 +200,3 @@ func DeleteCredential(ctx context.Context, id, userID int64) (bool, error) {
|
|||||||
had, err := db.GetEngine(ctx).ID(id).Where("user_id = ?", userID).Delete(&WebAuthnCredential{})
|
had, err := db.GetEngine(ctx).ID(id).Where("user_id = ?", userID).Delete(&WebAuthnCredential{})
|
||||||
return had > 0, err
|
return had > 0, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// WebAuthnCredentials implements the webauthn.User interface
|
|
||||||
func WebAuthnCredentials(ctx context.Context, userID int64) ([]webauthn.Credential, error) {
|
|
||||||
dbCreds, err := GetWebAuthnCredentialsByUID(ctx, userID)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return dbCreds.ToCredentials(), nil
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
|
|
||||||
"code.gitea.io/gitea/models/db"
|
"code.gitea.io/gitea/models/db"
|
||||||
repo_model "code.gitea.io/gitea/models/repo"
|
|
||||||
user_model "code.gitea.io/gitea/models/user"
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/container"
|
"code.gitea.io/gitea/modules/container"
|
||||||
"code.gitea.io/gitea/modules/optional"
|
"code.gitea.io/gitea/modules/optional"
|
||||||
@@ -60,24 +59,6 @@ func (branches BranchList) LoadPusher(ctx context.Context) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (branches BranchList) LoadRepo(ctx context.Context) error {
|
|
||||||
ids := container.FilterSlice(branches, func(branch *Branch) (int64, bool) {
|
|
||||||
return branch.RepoID, branch.RepoID > 0 && branch.Repo == nil
|
|
||||||
})
|
|
||||||
|
|
||||||
reposMap := make(map[int64]*repo_model.Repository, len(ids))
|
|
||||||
if err := db.GetEngine(ctx).In("id", ids).Find(&reposMap); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
for _, branch := range branches {
|
|
||||||
if branch.RepoID <= 0 || branch.Repo != nil {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
branch.Repo = reposMap[branch.RepoID]
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
type FindBranchOptions struct {
|
type FindBranchOptions struct {
|
||||||
db.ListOptions
|
db.ListOptions
|
||||||
RepoID int64
|
RepoID int64
|
||||||
|
|||||||
@@ -89,12 +89,6 @@ type ErrUnknownDependencyType struct {
|
|||||||
Type DependencyType
|
Type DependencyType
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsErrUnknownDependencyType checks if an error is ErrUnknownDependencyType
|
|
||||||
func IsErrUnknownDependencyType(err error) bool {
|
|
||||||
_, ok := err.(ErrUnknownDependencyType)
|
|
||||||
return ok
|
|
||||||
}
|
|
||||||
|
|
||||||
func (err ErrUnknownDependencyType) Error() string {
|
func (err ErrUnknownDependencyType) Error() string {
|
||||||
return fmt.Sprintf("unknown dependency type [type: %d]", err.Type)
|
return fmt.Sprintf("unknown dependency type [type: %d]", err.Type)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,21 +48,6 @@ func (err ErrIssueNotExist) Unwrap() error {
|
|||||||
return util.ErrNotExist
|
return util.ErrNotExist
|
||||||
}
|
}
|
||||||
|
|
||||||
// ErrNewIssueInsert is used when the INSERT statement in newIssue fails
|
|
||||||
type ErrNewIssueInsert struct {
|
|
||||||
OriginalError error
|
|
||||||
}
|
|
||||||
|
|
||||||
// IsErrNewIssueInsert checks if an error is a ErrNewIssueInsert.
|
|
||||||
func IsErrNewIssueInsert(err error) bool {
|
|
||||||
_, ok := err.(ErrNewIssueInsert)
|
|
||||||
return ok
|
|
||||||
}
|
|
||||||
|
|
||||||
func (err ErrNewIssueInsert) Error() string {
|
|
||||||
return err.OriginalError.Error()
|
|
||||||
}
|
|
||||||
|
|
||||||
var ErrIssueAlreadyChanged = util.NewInvalidArgumentErrorf("the issue is already changed")
|
var ErrIssueAlreadyChanged = util.NewInvalidArgumentErrorf("the issue is already changed")
|
||||||
|
|
||||||
// Issue represents an issue or pull request of repository.
|
// Issue represents an issue or pull request of repository.
|
||||||
|
|||||||
@@ -165,27 +165,6 @@ func MovePin(ctx context.Context, issue *Issue, newPosition int) error {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetPinnedIssueIDs(ctx context.Context, repoID int64, isPull bool) ([]int64, error) {
|
|
||||||
var issuePins []IssuePin
|
|
||||||
if err := db.GetEngine(ctx).
|
|
||||||
Table("issue_pin").
|
|
||||||
Where("repo_id = ?", repoID).
|
|
||||||
And("is_pull = ?", isPull).
|
|
||||||
Find(&issuePins); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
sort.Slice(issuePins, func(i, j int) bool {
|
|
||||||
return issuePins[i].PinOrder < issuePins[j].PinOrder
|
|
||||||
})
|
|
||||||
|
|
||||||
var ids []int64
|
|
||||||
for _, pin := range issuePins {
|
|
||||||
ids = append(ids, pin.IssueID)
|
|
||||||
}
|
|
||||||
return ids, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetIssuePinsByRepoID(ctx context.Context, repoID int64, isPull bool) ([]*IssuePin, error) {
|
func GetIssuePinsByRepoID(ctx context.Context, repoID int64, isPull bool) ([]*IssuePin, error) {
|
||||||
var pins []*IssuePin
|
var pins []*IssuePin
|
||||||
if err := db.GetEngine(ctx).Where("repo_id = ? AND is_pull = ?", repoID, isPull).Find(&pins); err != nil {
|
if err := db.GetEngine(ctx).Where("repo_id = ? AND is_pull = ?", repoID, isPull).Find(&pins); err != nil {
|
||||||
|
|||||||
@@ -93,12 +93,6 @@ type ErrIssueIsOpen struct {
|
|||||||
Index int64
|
Index int64
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsErrIssueIsOpen checks if an error is a ErrIssueIsOpen.
|
|
||||||
func IsErrIssueIsOpen(err error) bool {
|
|
||||||
_, ok := err.(ErrIssueIsOpen)
|
|
||||||
return ok
|
|
||||||
}
|
|
||||||
|
|
||||||
func (err ErrIssueIsOpen) Error() string {
|
func (err ErrIssueIsOpen) Error() string {
|
||||||
return fmt.Sprintf("%s [id: %d, repo_id: %d, index: %d] is already open", util.Iif(err.IsPull, "Pull Request", "Issue"), err.ID, err.RepoID, err.Index)
|
return fmt.Sprintf("%s [id: %d, repo_id: %d, index: %d] is already open", util.Iif(err.IsPull, "Pull Request", "Issue"), err.ID, err.RepoID, err.Index)
|
||||||
}
|
}
|
||||||
@@ -441,7 +435,7 @@ func NewIssue(ctx context.Context, repo *repo_model.Repository, issue *Issue, la
|
|||||||
LabelIDs: labelIDs,
|
LabelIDs: labelIDs,
|
||||||
Attachments: uuids,
|
Attachments: uuids,
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
if repo_model.IsErrUserDoesNotHaveAccessToRepo(err) || IsErrNewIssueInsert(err) {
|
if repo_model.IsErrUserDoesNotHaveAccessToRepo(err) {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return fmt.Errorf("newIssue: %w", err)
|
return fmt.Errorf("newIssue: %w", err)
|
||||||
|
|||||||
@@ -475,7 +475,7 @@ func NewPullRequest(ctx context.Context, repo *repo_model.Repository, issue *Iss
|
|||||||
LabelIDs: labelIDs,
|
LabelIDs: labelIDs,
|
||||||
Attachments: uuids,
|
Attachments: uuids,
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
if repo_model.IsErrUserDoesNotHaveAccessToRepo(err) || IsErrNewIssueInsert(err) {
|
if repo_model.IsErrUserDoesNotHaveAccessToRepo(err) {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return fmt.Errorf("newIssue: %w", err)
|
return fmt.Errorf("newIssue: %w", err)
|
||||||
|
|||||||
@@ -28,19 +28,3 @@ func (t *TeamUnit) Unit() unit.Unit {
|
|||||||
func getUnitsByTeamID(ctx context.Context, teamID int64) (units []*TeamUnit, err error) {
|
func getUnitsByTeamID(ctx context.Context, teamID int64) (units []*TeamUnit, err error) {
|
||||||
return units, db.GetEngine(ctx).Where("team_id = ?", teamID).Find(&units)
|
return units, db.GetEngine(ctx).Where("team_id = ?", teamID).Find(&units)
|
||||||
}
|
}
|
||||||
|
|
||||||
// UpdateTeamUnits updates a teams's units
|
|
||||||
func UpdateTeamUnits(ctx context.Context, team *Team, units []TeamUnit) (err error) {
|
|
||||||
return db.WithTx(ctx, func(ctx context.Context) error {
|
|
||||||
if _, err = db.GetEngine(ctx).Where("team_id = ?", team.ID).Delete(new(TeamUnit)); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
if len(units) > 0 {
|
|
||||||
if err = db.Insert(ctx, units); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -36,14 +36,6 @@ type SearchMembersOptions struct {
|
|||||||
TeamID int64
|
TeamID int64
|
||||||
}
|
}
|
||||||
|
|
||||||
func (opts SearchMembersOptions) ToConds() builder.Cond {
|
|
||||||
cond := builder.NewCond()
|
|
||||||
if opts.TeamID > 0 {
|
|
||||||
cond = cond.And(builder.Eq{"": opts.TeamID})
|
|
||||||
}
|
|
||||||
return cond
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetTeamMembers returns all members in given team of organization.
|
// GetTeamMembers returns all members in given team of organization.
|
||||||
func GetTeamMembers(ctx context.Context, opts *SearchMembersOptions) ([]*user_model.User, error) {
|
func GetTeamMembers(ctx context.Context, opts *SearchMembersOptions) ([]*user_model.User, error) {
|
||||||
var members []*user_model.User
|
var members []*user_model.User
|
||||||
|
|||||||
@@ -337,20 +337,6 @@ func SetDefaultColumn(ctx context.Context, projectID, columnID int64) error {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// UpdateColumnSorting update project column sorting
|
|
||||||
func UpdateColumnSorting(ctx context.Context, cl ColumnList) error {
|
|
||||||
return db.WithTx(ctx, func(ctx context.Context) error {
|
|
||||||
for i := range cl {
|
|
||||||
if _, err := db.GetEngine(ctx).ID(cl[i].ID).Cols(
|
|
||||||
"sorting",
|
|
||||||
).Update(cl[i]); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetColumnsByIDs(ctx context.Context, projectID int64, columnsIDs []int64) (ColumnList, error) {
|
func GetColumnsByIDs(ctx context.Context, projectID int64, columnsIDs []int64) (ColumnList, error) {
|
||||||
columns := make([]*Column, 0, 5)
|
columns := make([]*Column, 0, 5)
|
||||||
if len(columnsIDs) == 0 {
|
if len(columnsIDs) == 0 {
|
||||||
|
|||||||
@@ -44,12 +44,6 @@ type ErrTopicNotExist struct {
|
|||||||
Name string
|
Name string
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsErrTopicNotExist checks if an error is an ErrTopicNotExist.
|
|
||||||
func IsErrTopicNotExist(err error) bool {
|
|
||||||
_, ok := err.(ErrTopicNotExist)
|
|
||||||
return ok
|
|
||||||
}
|
|
||||||
|
|
||||||
// Error implements error interface
|
// Error implements error interface
|
||||||
func (err ErrTopicNotExist) Error() string {
|
func (err ErrTopicNotExist) Error() string {
|
||||||
return fmt.Sprintf("topic is not exist [name: %s]", err.Name)
|
return fmt.Sprintf("topic is not exist [name: %s]", err.Name)
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ import (
|
|||||||
"code.gitea.io/gitea/modules/log"
|
"code.gitea.io/gitea/modules/log"
|
||||||
"code.gitea.io/gitea/modules/storage"
|
"code.gitea.io/gitea/modules/storage"
|
||||||
"code.gitea.io/gitea/modules/timeutil"
|
"code.gitea.io/gitea/modules/timeutil"
|
||||||
"code.gitea.io/gitea/modules/util"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// NoticeType describes the notice type
|
// NoticeType describes the notice type
|
||||||
@@ -60,18 +59,6 @@ func CreateRepositoryNotice(desc string, args ...any) error {
|
|||||||
return CreateNotice(graceful.GetManager().ShutdownContext(), NoticeRepository, desc, args...)
|
return CreateNotice(graceful.GetManager().ShutdownContext(), NoticeRepository, desc, args...)
|
||||||
}
|
}
|
||||||
|
|
||||||
// RemoveAllWithNotice removes all directories in given path and
|
|
||||||
// creates a system notice when error occurs.
|
|
||||||
func RemoveAllWithNotice(ctx context.Context, title, path string) {
|
|
||||||
if err := util.RemoveAll(path); err != nil {
|
|
||||||
desc := fmt.Sprintf("%s [%s]: %v", title, path, err)
|
|
||||||
log.Warn(title+" [%s]: %v", path, err)
|
|
||||||
if err = CreateNotice(graceful.GetManager().ShutdownContext(), NoticeRepository, desc); err != nil {
|
|
||||||
log.Error("CreateRepositoryNotice: %v", err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// RemoveStorageWithNotice removes a file from the storage and
|
// RemoveStorageWithNotice removes a file from the storage and
|
||||||
// creates a system notice when error occurs.
|
// creates a system notice when error occurs.
|
||||||
func RemoveStorageWithNotice(ctx context.Context, bucket storage.ObjectStorage, title, path string) {
|
func RemoveStorageWithNotice(ctx context.Context, bucket storage.ObjectStorage, title, path string) {
|
||||||
|
|||||||
@@ -212,12 +212,6 @@ func RemoveUserBadges(ctx context.Context, u *User, badges []*Badge) error {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// RemoveAllUserBadges removes all badges from a user.
|
|
||||||
func RemoveAllUserBadges(ctx context.Context, u *User) error {
|
|
||||||
_, err := db.GetEngine(ctx).Where("user_id=?", u.ID).Delete(&UserBadge{})
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// SearchBadgeOptions represents the options when finding badges
|
// SearchBadgeOptions represents the options when finding badges
|
||||||
type SearchBadgeOptions struct {
|
type SearchBadgeOptions struct {
|
||||||
db.ListOptions
|
db.ListOptions
|
||||||
@@ -258,16 +252,3 @@ func (opts *SearchBadgeOptions) ToOrders() string {
|
|||||||
func SearchBadges(ctx context.Context, opts *SearchBadgeOptions) ([]*Badge, int64, error) {
|
func SearchBadges(ctx context.Context, opts *SearchBadgeOptions) ([]*Badge, int64, error) {
|
||||||
return db.FindAndCount[Badge](ctx, opts)
|
return db.FindAndCount[Badge](ctx, opts)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetBadgeByID returns a specific badge by ID
|
|
||||||
func GetBadgeByID(ctx context.Context, id int64) (*Badge, error) {
|
|
||||||
badge := new(Badge)
|
|
||||||
has, err := db.GetEngine(ctx).ID(id).Get(badge)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
if !has {
|
|
||||||
return nil, util.NewNotExistErrorf("badge does not exist [id: %d]", id)
|
|
||||||
}
|
|
||||||
return badge, nil
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -147,11 +147,6 @@ func InsertEmailAddress(ctx context.Context, email *EmailAddress) (*EmailAddress
|
|||||||
return email, nil
|
return email, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func UpdateEmailAddress(ctx context.Context, email *EmailAddress) error {
|
|
||||||
_, err := db.GetEngine(ctx).ID(email.ID).AllCols().Update(email)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// ValidateEmail check if email is a valid & allowed address
|
// ValidateEmail check if email is a valid & allowed address
|
||||||
func ValidateEmail(email string) error {
|
func ValidateEmail(email string) error {
|
||||||
if err := validateEmailBasic(email); err != nil {
|
if err := validateEmailBasic(email); err != nil {
|
||||||
|
|||||||
@@ -71,27 +71,6 @@ func (err ErrUserProhibitLogin) Unwrap() error {
|
|||||||
return util.ErrPermissionDenied
|
return util.ErrPermissionDenied
|
||||||
}
|
}
|
||||||
|
|
||||||
// ErrUserInactive represents a "ErrUserInactive" kind of error.
|
|
||||||
type ErrUserInactive struct {
|
|
||||||
UID int64
|
|
||||||
Name string
|
|
||||||
}
|
|
||||||
|
|
||||||
// IsErrUserInactive checks if an error is a ErrUserInactive
|
|
||||||
func IsErrUserInactive(err error) bool {
|
|
||||||
_, ok := err.(ErrUserInactive)
|
|
||||||
return ok
|
|
||||||
}
|
|
||||||
|
|
||||||
func (err ErrUserInactive) Error() string {
|
|
||||||
return fmt.Sprintf("user is inactive [uid: %d, name: %s]", err.UID, err.Name)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Unwrap unwraps this error as a ErrPermission error
|
|
||||||
func (err ErrUserInactive) Unwrap() error {
|
|
||||||
return util.ErrPermissionDenied
|
|
||||||
}
|
|
||||||
|
|
||||||
// ErrUserIsNotLocal represents a "ErrUserIsNotLocal" kind of error.
|
// ErrUserIsNotLocal represents a "ErrUserIsNotLocal" kind of error.
|
||||||
type ErrUserIsNotLocal struct {
|
type ErrUserIsNotLocal struct {
|
||||||
UID int64
|
UID int64
|
||||||
|
|||||||
@@ -21,12 +21,6 @@ type ErrExternalLoginUserAlreadyExist struct {
|
|||||||
LoginSourceID int64
|
LoginSourceID int64
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsErrExternalLoginUserAlreadyExist checks if an error is a ExternalLoginUserAlreadyExist.
|
|
||||||
func IsErrExternalLoginUserAlreadyExist(err error) bool {
|
|
||||||
_, ok := err.(ErrExternalLoginUserAlreadyExist)
|
|
||||||
return ok
|
|
||||||
}
|
|
||||||
|
|
||||||
func (err ErrExternalLoginUserAlreadyExist) Error() string {
|
func (err ErrExternalLoginUserAlreadyExist) Error() string {
|
||||||
return fmt.Sprintf("external login user already exists [externalID: %s, userID: %d, loginSourceID: %d]", err.ExternalID, err.UserID, err.LoginSourceID)
|
return fmt.Sprintf("external login user already exists [externalID: %s, userID: %d, loginSourceID: %d]", err.ExternalID, err.UserID, err.LoginSourceID)
|
||||||
}
|
}
|
||||||
@@ -41,12 +35,6 @@ type ErrExternalLoginUserNotExist struct {
|
|||||||
LoginSourceID int64
|
LoginSourceID int64
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsErrExternalLoginUserNotExist checks if an error is a ExternalLoginUserNotExist.
|
|
||||||
func IsErrExternalLoginUserNotExist(err error) bool {
|
|
||||||
_, ok := err.(ErrExternalLoginUserNotExist)
|
|
||||||
return ok
|
|
||||||
}
|
|
||||||
|
|
||||||
func (err ErrExternalLoginUserNotExist) Error() string {
|
func (err ErrExternalLoginUserNotExist) Error() string {
|
||||||
return fmt.Sprintf("external login user link does not exists [userID: %d, loginSourceID: %d]", err.UserID, err.LoginSourceID)
|
return fmt.Sprintf("external login user link does not exists [userID: %d, loginSourceID: %d]", err.UserID, err.LoginSourceID)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,12 +50,6 @@ func (err ErrUserSettingIsNotExist) Unwrap() error {
|
|||||||
return util.ErrNotExist
|
return util.ErrNotExist
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsErrUserSettingIsNotExist return true if err is ErrSettingIsNotExist
|
|
||||||
func IsErrUserSettingIsNotExist(err error) bool {
|
|
||||||
_, ok := err.(ErrUserSettingIsNotExist)
|
|
||||||
return ok
|
|
||||||
}
|
|
||||||
|
|
||||||
// genSettingCacheKey returns the cache key for some configuration
|
// genSettingCacheKey returns the cache key for some configuration
|
||||||
func genSettingCacheKey(userID int64, key string) string {
|
func genSettingCacheKey(userID int64, key string) string {
|
||||||
return fmt.Sprintf("user_%d.setting.%s", userID, key)
|
return fmt.Sprintf("user_%d.setting.%s", userID, key)
|
||||||
|
|||||||
@@ -83,12 +83,6 @@ func Parse(content []byte, options ...ParseOption) ([]*SingleWorkflow, error) {
|
|||||||
return ret, nil
|
return ret, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func WithJobResults(results map[string]string) ParseOption {
|
|
||||||
return func(c *parseContext) {
|
|
||||||
c.jobResults = results
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func WithGitContext(context *model.GithubContext) ParseOption {
|
func WithGitContext(context *model.GithubContext) ParseOption {
|
||||||
return func(c *parseContext) {
|
return func(c *parseContext) {
|
||||||
c.gitContext = context
|
c.gitContext = context
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import (
|
|||||||
"bytes"
|
"bytes"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"strings"
|
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"code.gitea.io/gitea/modules/json"
|
"code.gitea.io/gitea/modules/json"
|
||||||
@@ -110,9 +109,3 @@ func (e *Event) WriteTo(w io.Writer) (int64, error) {
|
|||||||
|
|
||||||
return sum, err
|
return sum, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *Event) String() string {
|
|
||||||
buf := new(strings.Builder)
|
|
||||||
_, _ = e.WriteTo(buf)
|
|
||||||
return buf.String()
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -44,23 +44,6 @@ func CommitsCount(ctx context.Context, repo Repository, opts CommitsCountOptions
|
|||||||
return strconv.ParseInt(strings.TrimSpace(stdout), 10, 64)
|
return strconv.ParseInt(strings.TrimSpace(stdout), 10, 64)
|
||||||
}
|
}
|
||||||
|
|
||||||
// CommitsCountBetween return numbers of commits between two commits
|
|
||||||
func CommitsCountBetween(ctx context.Context, repo Repository, start, end string) (int64, error) {
|
|
||||||
count, err := CommitsCount(ctx, repo, CommitsCountOptions{
|
|
||||||
Revision: []string{start + ".." + end},
|
|
||||||
})
|
|
||||||
|
|
||||||
if err != nil && strings.Contains(err.Error(), "no merge base") {
|
|
||||||
// future versions of git >= 2.28 are likely to return an error if before and last have become unrelated.
|
|
||||||
// previously it would return the results of git rev-list before last so let's try that...
|
|
||||||
return CommitsCount(ctx, repo, CommitsCountOptions{
|
|
||||||
Revision: []string{start, end},
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
return count, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// FileCommitsCount return the number of files at a revision
|
// FileCommitsCount return the number of files at a revision
|
||||||
func FileCommitsCount(ctx context.Context, repo Repository, revision, file string) (int64, error) {
|
func FileCommitsCount(ctx context.Context, repo Repository, revision, file string) (int64, error) {
|
||||||
return CommitsCount(ctx, repo,
|
return CommitsCount(ctx, repo,
|
||||||
|
|||||||
@@ -5,21 +5,11 @@ package gitrepo
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"strings"
|
|
||||||
|
|
||||||
"code.gitea.io/gitea/modules/git/gitcmd"
|
"code.gitea.io/gitea/modules/git/gitcmd"
|
||||||
"code.gitea.io/gitea/modules/globallock"
|
"code.gitea.io/gitea/modules/globallock"
|
||||||
)
|
)
|
||||||
|
|
||||||
func GitConfigGet(ctx context.Context, repo Repository, key string) (string, error) {
|
|
||||||
result, _, err := RunCmdString(ctx, repo, gitcmd.NewCommand("config", "--get").
|
|
||||||
AddDynamicArguments(key))
|
|
||||||
if err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
return strings.TrimSpace(result), nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func getRepoConfigLockKey(repoStoragePath string) string {
|
func getRepoConfigLockKey(repoStoragePath string) string {
|
||||||
return "repo-config:" + repoStoragePath
|
return "repo-config:" + repoStoragePath
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -78,11 +78,6 @@ func (hl *HostMatchList) AppendBuiltin(builtin string) {
|
|||||||
hl.builtins = append(hl.builtins, builtin)
|
hl.builtins = append(hl.builtins, builtin)
|
||||||
}
|
}
|
||||||
|
|
||||||
// AppendPattern appends more pattern to match
|
|
||||||
func (hl *HostMatchList) AppendPattern(pattern string) {
|
|
||||||
hl.patterns = append(hl.patterns, pattern)
|
|
||||||
}
|
|
||||||
|
|
||||||
// IsEmpty checks if the checklist is empty
|
// IsEmpty checks if the checklist is empty
|
||||||
func (hl *HostMatchList) IsEmpty() bool {
|
func (hl *HostMatchList) IsEmpty() bool {
|
||||||
return hl == nil || (len(hl.builtins) == 0 && len(hl.patterns) == 0 && len(hl.ipNets) == 0)
|
return hl == nil || (len(hl.builtins) == 0 && len(hl.patterns) == 0 && len(hl.ipNets) == 0)
|
||||||
|
|||||||
@@ -74,10 +74,6 @@ func (r *GlodmarkRender) Convert(source []byte, writer io.Writer, opts ...parser
|
|||||||
return r.goldmarkMarkdown.Convert(source, writer, opts...)
|
return r.goldmarkMarkdown.Convert(source, writer, opts...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *GlodmarkRender) Renderer() renderer.Renderer {
|
|
||||||
return r.goldmarkMarkdown.Renderer()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *GlodmarkRender) highlightingRenderer(w util.BufWriter, c highlighting.CodeBlockContext, entering bool) {
|
func (r *GlodmarkRender) highlightingRenderer(w util.BufWriter, c highlighting.CodeBlockContext, entering bool) {
|
||||||
if entering {
|
if entering {
|
||||||
languageBytes, _ := c.Language()
|
languageBytes, _ := c.Language()
|
||||||
|
|||||||
@@ -21,25 +21,6 @@ import (
|
|||||||
// ErrURLNotSupported represents url is not supported
|
// ErrURLNotSupported represents url is not supported
|
||||||
var ErrURLNotSupported = errors.New("url method not supported")
|
var ErrURLNotSupported = errors.New("url method not supported")
|
||||||
|
|
||||||
// ErrInvalidConfiguration is called when there is invalid configuration for a storage
|
|
||||||
type ErrInvalidConfiguration struct {
|
|
||||||
cfg any
|
|
||||||
err error
|
|
||||||
}
|
|
||||||
|
|
||||||
func (err ErrInvalidConfiguration) Error() string {
|
|
||||||
if err.err != nil {
|
|
||||||
return fmt.Sprintf("Invalid Configuration Argument: %v: Error: %v", err.cfg, err.err)
|
|
||||||
}
|
|
||||||
return fmt.Sprintf("Invalid Configuration Argument: %v", err.cfg)
|
|
||||||
}
|
|
||||||
|
|
||||||
// IsErrInvalidConfiguration checks if an error is an ErrInvalidConfiguration
|
|
||||||
func IsErrInvalidConfiguration(err error) bool {
|
|
||||||
_, ok := err.(ErrInvalidConfiguration)
|
|
||||||
return ok
|
|
||||||
}
|
|
||||||
|
|
||||||
type Type = setting.StorageType
|
type Type = setting.StorageType
|
||||||
|
|
||||||
// NewStorageFunc is a function that creates a storage
|
// NewStorageFunc is a function that creates a storage
|
||||||
|
|||||||
@@ -51,9 +51,3 @@ func Locale(resp http.ResponseWriter, req *http.Request) translation.Locale {
|
|||||||
func SetLocaleCookie(resp http.ResponseWriter, lang string, maxAge int) {
|
func SetLocaleCookie(resp http.ResponseWriter, lang string, maxAge int) {
|
||||||
SetSiteCookie(resp, "lang", lang, maxAge)
|
SetSiteCookie(resp, "lang", lang, maxAge)
|
||||||
}
|
}
|
||||||
|
|
||||||
// DeleteLocaleCookie convenience function to delete the locale cookie consistently
|
|
||||||
// Setting the lang cookie will trigger the middleware to reset the language to previous state.
|
|
||||||
func DeleteLocaleCookie(resp http.ResponseWriter) {
|
|
||||||
SetSiteCookie(resp, "lang", "", -1)
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -281,11 +281,7 @@ func DeleteGPGKey(ctx *context.APIContext) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if err := asymkey_model.DeleteGPGKey(ctx, ctx.Doer, ctx.PathParamInt64("id")); err != nil {
|
if err := asymkey_model.DeleteGPGKey(ctx, ctx.Doer, ctx.PathParamInt64("id")); err != nil {
|
||||||
if asymkey_model.IsErrGPGKeyAccessDenied(err) {
|
ctx.APIErrorInternal(err)
|
||||||
ctx.APIError(http.StatusForbidden, "You do not have access to this key")
|
|
||||||
} else {
|
|
||||||
ctx.APIErrorInternal(err)
|
|
||||||
}
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -295,8 +291,6 @@ func DeleteGPGKey(ctx *context.APIContext) {
|
|||||||
// HandleAddGPGKeyError handle add GPGKey error
|
// HandleAddGPGKeyError handle add GPGKey error
|
||||||
func HandleAddGPGKeyError(ctx *context.APIContext, err error, token string) {
|
func HandleAddGPGKeyError(ctx *context.APIContext, err error, token string) {
|
||||||
switch {
|
switch {
|
||||||
case asymkey_model.IsErrGPGKeyAccessDenied(err):
|
|
||||||
ctx.APIError(http.StatusUnprocessableEntity, "You do not have access to this GPG key")
|
|
||||||
case asymkey_model.IsErrGPGKeyIDAlreadyUsed(err):
|
case asymkey_model.IsErrGPGKeyIDAlreadyUsed(err):
|
||||||
ctx.APIError(http.StatusUnprocessableEntity, "A key with the same id already exists")
|
ctx.APIError(http.StatusUnprocessableEntity, "A key with the same id already exists")
|
||||||
case asymkey_model.IsErrGPGKeyParsing(err):
|
case asymkey_model.IsErrGPGKeyParsing(err):
|
||||||
|
|||||||
@@ -314,15 +314,6 @@ func SignInPost(ctx *context.Context) {
|
|||||||
log.Warn("Failed authentication attempt for %s from %s: %v", form.UserName, ctx.RemoteAddr(), err)
|
log.Warn("Failed authentication attempt for %s from %s: %v", form.UserName, ctx.RemoteAddr(), err)
|
||||||
ctx.Data["Title"] = ctx.Tr("auth.prohibit_login")
|
ctx.Data["Title"] = ctx.Tr("auth.prohibit_login")
|
||||||
ctx.HTML(http.StatusOK, "user/auth/prohibit_login")
|
ctx.HTML(http.StatusOK, "user/auth/prohibit_login")
|
||||||
} else if user_model.IsErrUserInactive(err) {
|
|
||||||
if setting.Service.RegisterEmailConfirm {
|
|
||||||
ctx.Data["Title"] = ctx.Tr("auth.active_your_account")
|
|
||||||
ctx.HTML(http.StatusOK, TplActivate)
|
|
||||||
} else {
|
|
||||||
log.Warn("Failed authentication attempt for %s from %s: %v", form.UserName, ctx.RemoteAddr(), err)
|
|
||||||
ctx.Data["Title"] = ctx.Tr("auth.prohibit_login")
|
|
||||||
ctx.HTML(http.StatusOK, "user/auth/prohibit_login")
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
ctx.ServerError("UserSignIn", err)
|
ctx.ServerError("UserSignIn", err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -105,16 +105,6 @@ func handleSignInError(ctx *context.Context, userName string, ptrForm any, tmpl
|
|||||||
log.Info("Failed authentication attempt for %s from %s: %v", userName, ctx.RemoteAddr(), err)
|
log.Info("Failed authentication attempt for %s from %s: %v", userName, ctx.RemoteAddr(), err)
|
||||||
ctx.Data["Title"] = ctx.Tr("auth.prohibit_login")
|
ctx.Data["Title"] = ctx.Tr("auth.prohibit_login")
|
||||||
ctx.HTML(http.StatusOK, "user/auth/prohibit_login")
|
ctx.HTML(http.StatusOK, "user/auth/prohibit_login")
|
||||||
} else if user_model.IsErrUserInactive(err) {
|
|
||||||
ctx.Data["user_exists"] = true
|
|
||||||
if setting.Service.RegisterEmailConfirm {
|
|
||||||
ctx.Data["Title"] = ctx.Tr("auth.active_your_account")
|
|
||||||
ctx.HTML(http.StatusOK, TplActivate)
|
|
||||||
} else {
|
|
||||||
log.Info("Failed authentication attempt for %s from %s: %v", userName, ctx.RemoteAddr(), err)
|
|
||||||
ctx.Data["Title"] = ctx.Tr("auth.prohibit_login")
|
|
||||||
ctx.HTML(http.StatusOK, "user/auth/prohibit_login")
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
ctx.ServerError(invoker, err)
|
ctx.ServerError(invoker, err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -109,9 +109,3 @@ func HomeSitemap(ctx *context.Context) {
|
|||||||
log.Error("Failed writing sitemap: %v", err)
|
log.Error("Failed writing sitemap: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// NotFound render 404 page
|
|
||||||
func NotFound(ctx *context.Context) {
|
|
||||||
ctx.Data["Title"] = "Page Not Found"
|
|
||||||
ctx.NotFound(nil)
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -35,14 +35,6 @@ const (
|
|||||||
tplProjectsView templates.TplName = "org/projects/view"
|
tplProjectsView templates.TplName = "org/projects/view"
|
||||||
)
|
)
|
||||||
|
|
||||||
// MustEnableProjects check if projects are enabled in settings
|
|
||||||
func MustEnableProjects(ctx *context.Context) {
|
|
||||||
if unit.TypeProjects.UnitGlobalDisabled() {
|
|
||||||
ctx.NotFound(nil)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Projects renders the home page of projects
|
// Projects renders the home page of projects
|
||||||
func Projects(ctx *context.Context) {
|
func Projects(ctx *context.Context) {
|
||||||
if _, err := shared_user.RenderUserOrgHeader(ctx); err != nil {
|
if _, err := shared_user.RenderUserOrgHeader(ctx); err != nil {
|
||||||
|
|||||||
@@ -362,10 +362,6 @@ func RunnerUpdatePost(ctx *context.Context) {
|
|||||||
ctx.JSONRedirect("")
|
ctx.JSONRedirect("")
|
||||||
}
|
}
|
||||||
|
|
||||||
func RedirectToDefaultSetting(ctx *context.Context) {
|
|
||||||
ctx.Redirect(ctx.Repo.RepoLink + "/settings/actions/runners")
|
|
||||||
}
|
|
||||||
|
|
||||||
func findActionsRunner(ctx *context.Context, rCtx *runnersCtx) *actions_model.ActionRunner {
|
func findActionsRunner(ctx *context.Context, rCtx *runnersCtx) *actions_model.ActionRunner {
|
||||||
runnerID := ctx.PathParamInt64("runnerid")
|
runnerID := ctx.PathParamInt64("runnerid")
|
||||||
opts := &actions_model.FindRunnerOptions{
|
opts := &actions_model.FindRunnerOptions{
|
||||||
|
|||||||
@@ -30,27 +30,6 @@ func UserAssignmentWeb() func(ctx *Context) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// UserIDAssignmentAPI returns a middleware to handle context-user assignment for api routes
|
|
||||||
func UserIDAssignmentAPI() func(ctx *APIContext) {
|
|
||||||
return func(ctx *APIContext) {
|
|
||||||
userID := ctx.PathParamInt64("user-id")
|
|
||||||
|
|
||||||
if ctx.IsSigned && ctx.Doer.ID == userID {
|
|
||||||
ctx.ContextUser = ctx.Doer
|
|
||||||
} else {
|
|
||||||
var err error
|
|
||||||
ctx.ContextUser, err = user_model.GetUserByID(ctx, userID)
|
|
||||||
if err != nil {
|
|
||||||
if user_model.IsErrUserNotExist(err) {
|
|
||||||
ctx.APIError(http.StatusNotFound, err)
|
|
||||||
} else {
|
|
||||||
ctx.APIErrorInternal(err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// UserAssignmentAPI returns a middleware to handle context-user assignment for api routes
|
// UserAssignmentAPI returns a middleware to handle context-user assignment for api routes
|
||||||
func UserAssignmentAPI() func(ctx *APIContext) {
|
func UserAssignmentAPI() func(ctx *APIContext) {
|
||||||
return func(ctx *APIContext) {
|
return func(ctx *APIContext) {
|
||||||
|
|||||||
@@ -1,18 +0,0 @@
|
|||||||
// Copyright 2023 The Gitea Authors. All rights reserved.
|
|
||||||
// SPDX-License-Identifier: MIT
|
|
||||||
|
|
||||||
package convert
|
|
||||||
|
|
||||||
import (
|
|
||||||
secret_model "code.gitea.io/gitea/models/secret"
|
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
|
||||||
)
|
|
||||||
|
|
||||||
// ToSecret converts Secret to API format
|
|
||||||
func ToSecret(secret *secret_model.Secret) *api.Secret {
|
|
||||||
result := &api.Secret{
|
|
||||||
Name: secret.Name,
|
|
||||||
}
|
|
||||||
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
@@ -740,14 +740,3 @@ func (f *AddTimeManuallyForm) Validate(req *http.Request, errs binding.Errors) b
|
|||||||
type SaveTopicForm struct {
|
type SaveTopicForm struct {
|
||||||
Topics []string `binding:"topics;Required;"`
|
Topics []string `binding:"topics;Required;"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// DeadlineForm hold the validation rules for deadlines
|
|
||||||
type DeadlineForm struct {
|
|
||||||
DateString string `form:"date" binding:"Required;Size(10)"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// Validate validates the fields
|
|
||||||
func (f *DeadlineForm) Validate(req *http.Request, errs binding.Errors) binding.Errors {
|
|
||||||
ctx := context.GetValidateContext(req)
|
|
||||||
return middleware.Validate(errs, ctx.Data, f, ctx.Locale)
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -32,11 +32,6 @@ const (
|
|||||||
ContentTypeSubmodule ContentType = "submodule" // submodule content type (submodule)
|
ContentTypeSubmodule ContentType = "submodule" // submodule content type (submodule)
|
||||||
)
|
)
|
||||||
|
|
||||||
// String gets the string of ContentType
|
|
||||||
func (ct *ContentType) String() string {
|
|
||||||
return string(*ct)
|
|
||||||
}
|
|
||||||
|
|
||||||
type GetContentsOrListOptions struct {
|
type GetContentsOrListOptions struct {
|
||||||
TreePath string
|
TreePath string
|
||||||
IncludeSingleFileContent bool // include the file's content when the tree path is a file
|
IncludeSingleFileContent bool // include the file's content when the tree path is a file
|
||||||
|
|||||||
@@ -26,12 +26,6 @@ type ErrSHANotFound struct {
|
|||||||
SHA string
|
SHA string
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsErrSHANotFound checks if an error is a ErrSHANotFound.
|
|
||||||
func IsErrSHANotFound(err error) bool {
|
|
||||||
_, ok := err.(ErrSHANotFound)
|
|
||||||
return ok
|
|
||||||
}
|
|
||||||
|
|
||||||
func (err ErrSHANotFound) Error() string {
|
func (err ErrSHANotFound) Error() string {
|
||||||
return fmt.Sprintf("sha not found [%s]", err.SHA)
|
return fmt.Sprintf("sha not found [%s]", err.SHA)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user