Skip to content

Commit d33c8ae

Browse files
author
Gusted
authored
Merge branch 'main' into fix-team-issue-overview
2 parents 6d0ea61 + 9efa471 commit d33c8ae

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+604
-367
lines changed

cmd/hook.go

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ import (
1515
"strings"
1616
"time"
1717

18-
"code.gitea.io/gitea/models"
1918
"code.gitea.io/gitea/modules/git"
2019
"code.gitea.io/gitea/modules/private"
20+
repo_module "code.gitea.io/gitea/modules/repository"
2121
"code.gitea.io/gitea/modules/setting"
2222
"code.gitea.io/gitea/modules/util"
2323

@@ -162,7 +162,7 @@ func (n *nilWriter) WriteString(s string) (int, error) {
162162
}
163163

164164
func runHookPreReceive(c *cli.Context) error {
165-
if os.Getenv(models.EnvIsInternal) == "true" {
165+
if isInternal, _ := strconv.ParseBool(os.Getenv(repo_module.EnvIsInternal)); isInternal {
166166
return nil
167167
}
168168
ctx, cancel := installSignals()
@@ -180,12 +180,12 @@ Gitea or set your environment appropriately.`, "")
180180
}
181181

182182
// the environment is set by serv command
183-
isUncyclo := os.Getenv(models.EnvRepoIsUncyclo) == "true"
184-
username := os.Getenv(models.EnvRepoUsername)
185-
reponame := os.Getenv(models.EnvRepoName)
186-
userID, _ := strconv.ParseInt(os.Getenv(models.EnvPusherID), 10, 64)
187-
prID, _ := strconv.ParseInt(os.Getenv(models.EnvPRID), 10, 64)
188-
deployKeyID, _ := strconv.ParseInt(os.Getenv(models.EnvDeployKeyID), 10, 64)
183+
isUncyclo, _ := strconv.ParseBool(os.Getenv(repo_module.EnvRepoIsUncyclo))
184+
username := os.Getenv(repo_module.EnvRepoUsername)
185+
reponame := os.Getenv(repo_module.EnvRepoName)
186+
userID, _ := strconv.ParseInt(os.Getenv(repo_module.EnvPusherID), 10, 64)
187+
prID, _ := strconv.ParseInt(os.Getenv(repo_module.EnvPRID), 10, 64)
188+
deployKeyID, _ := strconv.ParseInt(os.Getenv(repo_module.EnvDeployKeyID), 10, 64)
189189

190190
hookOptions := private.HookOptions{
191191
UserID: userID,
@@ -314,7 +314,7 @@ func runHookPostReceive(c *cli.Context) error {
314314
}
315315

316316
// Now if we're an internal don't do anything else
317-
if os.Getenv(models.EnvIsInternal) == "true" {
317+
if isInternal, _ := strconv.ParseBool(os.Getenv(repo_module.EnvIsInternal)); isInternal {
318318
return nil
319319
}
320320

@@ -343,11 +343,11 @@ Gitea or set your environment appropriately.`, "")
343343
}
344344

345345
// the environment is set by serv command
346-
repoUser := os.Getenv(models.EnvRepoUsername)
347-
isUncyclo := os.Getenv(models.EnvRepoIsUncyclo) == "true"
348-
repoName := os.Getenv(models.EnvRepoName)
349-
pusherID, _ := strconv.ParseInt(os.Getenv(models.EnvPusherID), 10, 64)
350-
pusherName := os.Getenv(models.EnvPusherName)
346+
repoUser := os.Getenv(repo_module.EnvRepoUsername)
347+
isUncyclo, _ := strconv.ParseBool(os.Getenv(repo_module.EnvRepoIsUncyclo))
348+
repoName := os.Getenv(repo_module.EnvRepoName)
349+
pusherID, _ := strconv.ParseInt(os.Getenv(repo_module.EnvPusherID), 10, 64)
350+
pusherName := os.Getenv(repo_module.EnvPusherName)
351351

352352
hookOptions := private.HookOptions{
353353
UserName: pusherName,
@@ -503,10 +503,10 @@ Gitea or set your environment appropriately.`, "")
503503
}
504504

505505
reader := bufio.NewReader(os.Stdin)
506-
repoUser := os.Getenv(models.EnvRepoUsername)
507-
repoName := os.Getenv(models.EnvRepoName)
508-
pusherID, _ := strconv.ParseInt(os.Getenv(models.EnvPusherID), 10, 64)
509-
pusherName := os.Getenv(models.EnvPusherName)
506+
repoUser := os.Getenv(repo_module.EnvRepoUsername)
507+
repoName := os.Getenv(repo_module.EnvRepoName)
508+
pusherID, _ := strconv.ParseInt(os.Getenv(repo_module.EnvPusherID), 10, 64)
509+
pusherName := os.Getenv(repo_module.EnvPusherName)
510510

511511
// 1. Version and features negotiation.
512512
// S: PKT-LINE(version=1\0push-options atomic...) / PKT-LINE(version=1\n)

cmd/serv.go

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
"code.gitea.io/gitea/modules/log"
2525
"code.gitea.io/gitea/modules/pprof"
2626
"code.gitea.io/gitea/modules/private"
27+
repo_module "code.gitea.io/gitea/modules/repository"
2728
"code.gitea.io/gitea/modules/setting"
2829
"code.gitea.io/gitea/services/lfs"
2930

@@ -235,17 +236,17 @@ func runServ(c *cli.Context) error {
235236
}
236237
return fail("Internal Server Error", "%s", err.Error())
237238
}
238-
os.Setenv(models.EnvRepoIsUncyclo, strconv.FormatBool(results.IsUncyclo))
239-
os.Setenv(models.EnvRepoName, results.RepoName)
240-
os.Setenv(models.EnvRepoUsername, results.OwnerName)
241-
os.Setenv(models.EnvPusherName, results.UserName)
242-
os.Setenv(models.EnvPusherEmail, results.UserEmail)
243-
os.Setenv(models.EnvPusherID, strconv.FormatInt(results.UserID, 10))
244-
os.Setenv(models.EnvRepoID, strconv.FormatInt(results.RepoID, 10))
245-
os.Setenv(models.EnvPRID, fmt.Sprintf("%d", 0))
246-
os.Setenv(models.EnvDeployKeyID, fmt.Sprintf("%d", results.DeployKeyID))
247-
os.Setenv(models.EnvKeyID, fmt.Sprintf("%d", results.KeyID))
248-
os.Setenv(models.EnvAppURL, setting.AppURL)
239+
os.Setenv(repo_module.EnvRepoIsUncyclo, strconv.FormatBool(results.IsUncyclo))
240+
os.Setenv(repo_module.EnvRepoName, results.RepoName)
241+
os.Setenv(repo_module.EnvRepoUsername, results.OwnerName)
242+
os.Setenv(repo_module.EnvPusherName, results.UserName)
243+
os.Setenv(repo_module.EnvPusherEmail, results.UserEmail)
244+
os.Setenv(repo_module.EnvPusherID, strconv.FormatInt(results.UserID, 10))
245+
os.Setenv(repo_module.EnvRepoID, strconv.FormatInt(results.RepoID, 10))
246+
os.Setenv(repo_module.EnvPRID, fmt.Sprintf("%d", 0))
247+
os.Setenv(repo_module.EnvDeployKeyID, fmt.Sprintf("%d", results.DeployKeyID))
248+
os.Setenv(repo_module.EnvKeyID, fmt.Sprintf("%d", results.KeyID))
249+
os.Setenv(repo_module.EnvAppURL, setting.AppURL)
249250

250251
// LFS token authentication
251252
if verb == lfsAuthenticateVerb {

contrib/pr/checkout.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,12 @@ import (
2424
"strconv"
2525
"time"
2626

27-
"code.gitea.io/gitea/models"
2827
"code.gitea.io/gitea/models/db"
2928
"code.gitea.io/gitea/models/unittest"
3029
gitea_git "code.gitea.io/gitea/modules/git"
3130
"code.gitea.io/gitea/modules/markup"
3231
"code.gitea.io/gitea/modules/markup/external"
32+
repo_module "code.gitea.io/gitea/modules/repository"
3333
"code.gitea.io/gitea/modules/setting"
3434
"code.gitea.io/gitea/modules/util"
3535
"code.gitea.io/gitea/routers"
@@ -111,7 +111,7 @@ func runPR() {
111111
}
112112
unittest.LoadFixtures()
113113
util.RemoveAll(setting.RepoRootPath)
114-
util.RemoveAll(models.LocalCopyPath())
114+
util.RemoveAll(repo_module.LocalCopyPath())
115115
unittest.CopyDir(path.Join(curDir, "integrations/gitea-repositories-meta"), setting.RepoRootPath)
116116

117117
log.Printf("[PR] Setting up router\n")

docs/content/doc/usage/issue-pull-request-templates.en-us.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,39 @@ Possible file names for PR templates:
4343
- `.github/PULL_REQUEST_TEMPLATE.md`
4444
- `.github/pull_request_template.md`
4545

46+
Possible file names for PR default merge message templates:
47+
48+
- `.gitea/default_merge_message/MERGE_TEMPLATE.md`
49+
- `.gitea/default_merge_message/REBASE_TEMPLATE.md`
50+
- `.gitea/default_merge_message/REBASE-MERGE_TEMPLATE.md`
51+
- `.gitea/default_merge_message/SQUASH_TEMPLATE.md`
52+
- `.gitea/default_merge_message/MANUALLY-MERGED_TEMPLATE.md`
53+
- `.gitea/default_merge_message/REBASE-UPDATE-ONLY_TEMPLATE.md`
54+
55+
Possible file names for PR default merge message templates:
56+
57+
- `.gitea/default_merge_message/MERGE_TEMPLATE.md`
58+
- `.gitea/default_merge_message/REBASE_TEMPLATE.md`
59+
- `.gitea/default_merge_message/REBASE-MERGE_TEMPLATE.md`
60+
- `.gitea/default_merge_message/SQUASH_TEMPLATE.md`
61+
- `.gitea/default_merge_message/MANUALLY-MERGED_TEMPLATE.md`
62+
- `.gitea/default_merge_message/REBASE-UPDATE-ONLY_TEMPLATE.md`
63+
64+
You can use the following variables enclosed in `${}` inside these templates which follow [os.Expand](https://pkg.go.dev/os#Expand) syntax:
65+
66+
- BaseRepoOwnerName: Base repository owner name of this pull request
67+
- BaseRepoName: Base repository name of this pull request
68+
- BaseBranch: Base repository target branch name of this pull request
69+
- HeadRepoOwnerName: Head repository owner name of this pull request
70+
- HeadRepoName: Head repository name of this pull request
71+
- HeadBranch: Head repository branch name of this pull request
72+
- PullRequestTitle: Pull request's title
73+
- PullRequestDescription: Pull request's description
74+
- PullRequestPosterName: Pull request's poster name
75+
- PullRequestIndex: Pull request's index number
76+
- PullRequestReference: Pull request's reference char with index number. i.e. #1, !2
77+
- ClosingIssues: return a string contains all issues which will be closed by this pull request i.e. `close #1, close #2`
78+
4679
Additionally, the New Issue page URL can be suffixed with `?title=Issue+Title&body=Issue+Text` and the form will be populated with those strings. Those strings will be used instead of the template if there is one.
4780

4881
## Issue Template Directory

integrations/integration_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,14 @@ import (
2424
"testing"
2525
"time"
2626

27-
"code.gitea.io/gitea/models"
2827
"code.gitea.io/gitea/models/unittest"
2928
"code.gitea.io/gitea/modules/base"
3029
"code.gitea.io/gitea/modules/git"
3130
"code.gitea.io/gitea/modules/graceful"
3231
"code.gitea.io/gitea/modules/json"
3332
"code.gitea.io/gitea/modules/log"
3433
"code.gitea.io/gitea/modules/queue"
34+
repo_module "code.gitea.io/gitea/modules/repository"
3535
"code.gitea.io/gitea/modules/setting"
3636
"code.gitea.io/gitea/modules/storage"
3737
"code.gitea.io/gitea/modules/util"
@@ -173,7 +173,7 @@ func initIntegrationTest() {
173173
setting.SetCustomPathAndConf("", "", "")
174174
setting.LoadForTest()
175175
setting.Repository.DefaultBranch = "master" // many test code still assume that default branch is called "master"
176-
_ = util.RemoveAll(models.LocalCopyPath())
176+
_ = util.RemoveAll(repo_module.LocalCopyPath())
177177
git.CheckLFSVersion()
178178
setting.InitDBConfig()
179179
if err := storage.Init(); err != nil {

integrations/mssql.ini.tmpl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,3 +102,6 @@ INTERNAL_TOKEN = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE0OTU1NTE2MTh9.h
102102

103103
[lfs]
104104
PATH = integrations/gitea-integration-mssql/data/lfs
105+
106+
[packages]
107+
ENABLED = true

integrations/mysql.ini.tmpl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,3 +118,6 @@ DISABLE_GIT_HOOKS = false
118118
INSTALL_LOCK = true
119119
SECRET_KEY = 9pCviYTWSb
120120
INTERNAL_TOKEN = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE0OTU1NTE2MTh9.hhSVGOANkaKk3vfCd2jDOIww4pUk0xtg9JRde5UogyQ
121+
122+
[packages]
123+
ENABLED = true

integrations/mysql8.ini.tmpl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,3 +99,6 @@ INTERNAL_TOKEN = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE0OTU1NTE2MTh9.h
9999

100100
[lfs]
101101
PATH = integrations/gitea-integration-mysql8/data/lfs
102+
103+
[packages]
104+
ENABLED = true

integrations/pgsql.ini.tmpl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,3 +103,6 @@ INTERNAL_TOKEN = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE0OTU1NTE2MTh9.h
103103

104104
[lfs]
105105
PATH = integrations/gitea-integration-pgsql/data/lfs
106+
107+
[packages]
108+
ENABLED = true

integrations/pull_merge_test.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ package integrations
66

77
import (
88
"bytes"
9+
"context"
910
"fmt"
1011
"net/http"
1112
"net/http/httptest"
@@ -243,11 +244,11 @@ func TestCantMergeConflict(t *testing.T) {
243244
gitRepo, err := git.OpenRepository(git.DefaultContext, repo_model.RepoPath(user1.Name, repo1.Name))
244245
assert.NoError(t, err)
245246

246-
err = pull.Merge(pr, user1, gitRepo, repo_model.MergeStyleMerge, "", "CONFLICT")
247+
err = pull.Merge(context.Background(), pr, user1, gitRepo, repo_model.MergeStyleMerge, "", "CONFLICT")
247248
assert.Error(t, err, "Merge should return an error due to conflict")
248249
assert.True(t, models.IsErrMergeConflicts(err), "Merge error is not a conflict error")
249250

250-
err = pull.Merge(pr, user1, gitRepo, repo_model.MergeStyleRebase, "", "CONFLICT")
251+
err = pull.Merge(context.Background(), pr, user1, gitRepo, repo_model.MergeStyleRebase, "", "CONFLICT")
251252
assert.Error(t, err, "Merge should return an error due to conflict")
252253
assert.True(t, models.IsErrRebaseConflicts(err), "Merge error is not a conflict error")
253254
gitRepo.Close()
@@ -342,7 +343,7 @@ func TestCantMergeUnrelated(t *testing.T) {
342343
BaseBranch: "base",
343344
}).(*models.PullRequest)
344345

345-
err = pull.Merge(pr, user1, gitRepo, repo_model.MergeStyleMerge, "", "UNRELATED")
346+
err = pull.Merge(context.Background(), pr, user1, gitRepo, repo_model.MergeStyleMerge, "", "UNRELATED")
346347
assert.Error(t, err, "Merge should return an error due to unrelated")
347348
assert.True(t, models.IsErrMergeUnrelatedHistories(err), "Merge error is not a unrelated histories error")
348349
gitRepo.Close()

integrations/sqlite.ini.tmpl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,3 +101,6 @@ JWT_SECRET = KZb_QLUd4fYVyxetjxC4eZkrBgWM2SndOOWDNtgUUko
101101

102102
[lfs]
103103
PATH = integrations/gitea-integration-sqlite/data/lfs
104+
105+
[packages]
106+
ENABLED = true

models/db/error.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,3 +42,18 @@ func IsErrSSHDisabled(err error) bool {
4242
func (err ErrSSHDisabled) Error() string {
4343
return "SSH is disabled"
4444
}
45+
46+
// ErrNotExist represents a non-exist error.
47+
type ErrNotExist struct {
48+
ID int64
49+
}
50+
51+
// IsErrNotExist checks if an error is an ErrNotExist
52+
func IsErrNotExist(err error) bool {
53+
_, ok := err.(ErrNotExist)
54+
return ok
55+
}
56+
57+
func (err ErrNotExist) Error() string {
58+
return fmt.Sprintf("record does not exist [id: %d]", err.ID)
59+
}

models/error.go

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,21 +13,6 @@ import (
1313
"code.gitea.io/gitea/modules/git"
1414
)
1515

16-
// ErrNotExist represents a non-exist error.
17-
type ErrNotExist struct {
18-
ID int64
19-
}
20-
21-
// IsErrNotExist checks if an error is an ErrNotExist
22-
func IsErrNotExist(err error) bool {
23-
_, ok := err.(ErrNotExist)
24-
return ok
25-
}
26-
27-
func (err ErrNotExist) Error() string {
28-
return fmt.Sprintf("record does not exist [id: %d]", err.ID)
29-
}
30-
3116
// ErrUserOwnRepos represents a "UserOwnRepos" kind of error.
3217
type ErrUserOwnRepos struct {
3318
UID int64

models/helper.go

Lines changed: 0 additions & 17 deletions
This file was deleted.

models/issue_comment.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1360,6 +1360,28 @@ func CreatePushPullComment(ctx context.Context, pusher *user_model.User, pr *Pul
13601360
return
13611361
}
13621362

1363+
// CreateAutoMergeComment is a internal function, only use it for CommentTypePRScheduledToAutoMerge and CommentTypePRUnScheduledToAutoMerge CommentTypes
1364+
func CreateAutoMergeComment(ctx context.Context, typ CommentType, pr *PullRequest, doer *user_model.User) (comment *Comment, err error) {
1365+
if typ != CommentTypePRScheduledToAutoMerge && typ != CommentTypePRUnScheduledToAutoMerge {
1366+
return nil, fmt.Errorf("comment type %d cannot be used to create an auto merge comment", typ)
1367+
}
1368+
if err = pr.LoadIssueCtx(ctx); err != nil {
1369+
return
1370+
}
1371+
1372+
if err = pr.LoadBaseRepoCtx(ctx); err != nil {
1373+
return
1374+
}
1375+
1376+
comment, err = CreateCommentCtx(ctx, &CreateCommentOptions{
1377+
Type: typ,
1378+
Doer: doer,
1379+
Repo: pr.BaseRepo,
1380+
Issue: pr.Issue,
1381+
})
1382+
return
1383+
}
1384+
13631385
// getCommitsFromRepo get commit IDs from repo in between oldCommitID and newCommitID
13641386
// isForcePush will be true if oldCommit isn't on the branch
13651387
// Commit on baseBranch will skip

models/issue_tracked_time.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ func DeleteIssueUserTimes(issue *Issue, user *user_model.User) error {
251251
return err
252252
}
253253
if removedTime == 0 {
254-
return ErrNotExist{}
254+
return db.ErrNotExist{}
255255
}
256256

257257
if err := issue.LoadRepo(ctx); err != nil {
@@ -311,7 +311,7 @@ func deleteTimes(e db.Engine, opts FindTrackedTimesOptions) (removedTime int64,
311311

312312
func deleteTime(e db.Engine, t *TrackedTime) error {
313313
if t.Deleted {
314-
return ErrNotExist{ID: t.ID}
314+
return db.ErrNotExist{ID: t.ID}
315315
}
316316
t.Deleted = true
317317
_, err := e.ID(t.ID).Cols("deleted").Update(t)
@@ -325,7 +325,7 @@ func GetTrackedTimeByID(id int64) (*TrackedTime, error) {
325325
if err != nil {
326326
return nil, err
327327
} else if !has {
328-
return nil, ErrNotExist{ID: id}
328+
return nil, db.ErrNotExist{ID: id}
329329
}
330330
return time, nil
331331
}

models/migrations/v215.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ func addReviewViewedFiles(x *xorm.Engine) error {
1515
type ReviewState struct {
1616
ID int64 `xorm:"pk autoincr"`
1717
UserID int64 `xorm:"NOT NULL UNIQUE(pull_commit_user)"`
18-
PullID int64 `xorm:"NOT NULL UNIQUE(pull_commit_user) DEFAULT 0"`
18+
PullID int64 `xorm:"NOT NULL INDEX UNIQUE(pull_commit_user) DEFAULT 0"`
1919
CommitSHA string `xorm:"NOT NULL VARCHAR(40) UNIQUE(pull_commit_user)"`
2020
UpdatedFiles map[string]pull.ViewedState `xorm:"NOT NULL LONGTEXT JSON"`
2121
UpdatedUnix timeutil.TimeStamp `xorm:"updated"`

0 commit comments

Comments
 (0)