Skip to content

Commit f607c27

Browse files
committed
Merge remote-tracking branch 'giteaofficial/main'
* giteaofficial/main: [skip ci] Updated licenses and gitignores Use correct hash for "git update-index" (go-gitea#30626) Fix repo home UI when there is no repo description (go-gitea#30552) Fix dropdown text ellipsis (go-gitea#30628) fix(api): refactor branch and tag existence checks (go-gitea#30618) Add --skip-db option to dump command (go-gitea#30613) Fix flash on dashboard (go-gitea#30572) chore: use errors.New to replace fmt.Errorf with no parameters will much better (go-gitea#30621) Fix issue comment form and quick-submit (go-gitea#30623) Use maintained gziphandler (go-gitea#30592) [skip ci] Updated translations via Crowdin Fix package list performance (go-gitea#30520) Clarify permission "HasAccess" behavior (go-gitea#30585) Fix links in PyPI Simple Repository API page (go-gitea#30594) Use action user as the trigger user of schedules (go-gitea#30581) Fix commit file status parser (go-gitea#30602) Fix HEAD method for robots.txt (go-gitea#30603)
2 parents 5f81fe7 + 31386dc commit f607c27

Some content is hidden

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

52 files changed

+342
-244
lines changed

assets/go-licenses.json

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmd/admin_auth.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
package cmd
55

66
import (
7+
"errors"
78
"fmt"
89
"os"
910
"text/tabwriter"
@@ -91,7 +92,7 @@ func runListAuth(c *cli.Context) error {
9192

9293
func runDeleteAuth(c *cli.Context) error {
9394
if !c.IsSet("id") {
94-
return fmt.Errorf("--id flag is missing")
95+
return errors.New("--id flag is missing")
9596
}
9697

9798
ctx, cancel := installSignals()

cmd/admin_auth_oauth.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
package cmd
55

66
import (
7+
"errors"
78
"fmt"
89
"net/url"
910

@@ -193,7 +194,7 @@ func runAddOauth(c *cli.Context) error {
193194

194195
func runUpdateOauth(c *cli.Context) error {
195196
if !c.IsSet("id") {
196-
return fmt.Errorf("--id flag is missing")
197+
return errors.New("--id flag is missing")
197198
}
198199

199200
ctx, cancel := installSignals()

cmd/admin_auth_stmp.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ package cmd
55

66
import (
77
"errors"
8-
"fmt"
98
"strings"
109

1110
auth_model "code.gitea.io/gitea/models/auth"
@@ -166,7 +165,7 @@ func runAddSMTP(c *cli.Context) error {
166165

167166
func runUpdateSMTP(c *cli.Context) error {
168167
if !c.IsSet("id") {
169-
return fmt.Errorf("--id flag is missing")
168+
return errors.New("--id flag is missing")
170169
}
171170

172171
ctx, cancel := installSignals()

cmd/admin_user_delete.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
package cmd
55

66
import (
7+
"errors"
78
"fmt"
89
"strings"
910

@@ -42,7 +43,7 @@ var microcmdUserDelete = &cli.Command{
4243

4344
func runDeleteUser(c *cli.Context) error {
4445
if !c.IsSet("id") && !c.IsSet("username") && !c.IsSet("email") {
45-
return fmt.Errorf("You must provide the id, username or email of a user to delete")
46+
return errors.New("You must provide the id, username or email of a user to delete")
4647
}
4748

4849
ctx, cancel := installSignals()

cmd/admin_user_generate_access_token.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
package cmd
55

66
import (
7+
"errors"
78
"fmt"
89

910
auth_model "code.gitea.io/gitea/models/auth"
@@ -42,7 +43,7 @@ var microcmdUserGenerateAccessToken = &cli.Command{
4243

4344
func runGenerateAccessToken(c *cli.Context) error {
4445
if !c.IsSet("username") {
45-
return fmt.Errorf("You must provide a username to generate a token for")
46+
return errors.New("You must provide a username to generate a token for")
4647
}
4748

4849
ctx, cancel := installSignals()
@@ -68,7 +69,7 @@ func runGenerateAccessToken(c *cli.Context) error {
6869
return err
6970
}
7071
if exist {
71-
return fmt.Errorf("access token name has been used already")
72+
return errors.New("access token name has been used already")
7273
}
7374

7475
// make sure the scopes are valid

cmd/dump.go

Lines changed: 34 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,10 @@ var CmdDump = &cli.Command{
8787
Name: "skip-index",
8888
Usage: "Skip bleve index data",
8989
},
90+
&cli.BoolFlag{
91+
Name: "skip-db",
92+
Usage: "Skip database",
93+
},
9094
&cli.StringFlag{
9195
Name: "type",
9296
Usage: fmt.Sprintf(`Dump output format, default to "zip", supported types: %s`, strings.Join(dump.SupportedOutputTypes, ", ")),
@@ -185,35 +189,41 @@ func runDump(ctx *cli.Context) error {
185189
}
186190
}
187191

188-
tmpDir := ctx.String("tempdir")
189-
if _, err := os.Stat(tmpDir); os.IsNotExist(err) {
190-
fatal("Path does not exist: %s", tmpDir)
191-
}
192+
if ctx.Bool("skip-db") {
193+
// Ensure that we don't dump the database file that may reside in setting.AppDataPath or elsewhere.
194+
dumper.GlobalExcludeAbsPath(setting.Database.Path)
195+
log.Info("Skipping database")
196+
} else {
197+
tmpDir := ctx.String("tempdir")
198+
if _, err := os.Stat(tmpDir); os.IsNotExist(err) {
199+
fatal("Path does not exist: %s", tmpDir)
200+
}
192201

193-
dbDump, err := os.CreateTemp(tmpDir, "gitea-db.sql")
194-
if err != nil {
195-
fatal("Failed to create tmp file: %v", err)
196-
}
197-
defer func() {
198-
_ = dbDump.Close()
199-
if err := util.Remove(dbDump.Name()); err != nil {
200-
log.Warn("Unable to remove temporary file: %s: Error: %v", dbDump.Name(), err)
202+
dbDump, err := os.CreateTemp(tmpDir, "gitea-db.sql")
203+
if err != nil {
204+
fatal("Failed to create tmp file: %v", err)
201205
}
202-
}()
206+
defer func() {
207+
_ = dbDump.Close()
208+
if err := util.Remove(dbDump.Name()); err != nil {
209+
log.Warn("Unable to remove temporary file: %s: Error: %v", dbDump.Name(), err)
210+
}
211+
}()
203212

204-
targetDBType := ctx.String("database")
205-
if len(targetDBType) > 0 && targetDBType != setting.Database.Type.String() {
206-
log.Info("Dumping database %s => %s...", setting.Database.Type, targetDBType)
207-
} else {
208-
log.Info("Dumping database...")
209-
}
213+
targetDBType := ctx.String("database")
214+
if len(targetDBType) > 0 && targetDBType != setting.Database.Type.String() {
215+
log.Info("Dumping database %s => %s...", setting.Database.Type, targetDBType)
216+
} else {
217+
log.Info("Dumping database...")
218+
}
210219

211-
if err := db.DumpDatabase(dbDump.Name(), targetDBType); err != nil {
212-
fatal("Failed to dump database: %v", err)
213-
}
220+
if err := db.DumpDatabase(dbDump.Name(), targetDBType); err != nil {
221+
fatal("Failed to dump database: %v", err)
222+
}
214223

215-
if err = dumper.AddFile("gitea-db.sql", dbDump.Name()); err != nil {
216-
fatal("Failed to include gitea-db.sql: %v", err)
224+
if err = dumper.AddFile("gitea-db.sql", dbDump.Name()); err != nil {
225+
fatal("Failed to include gitea-db.sql: %v", err)
226+
}
217227
}
218228

219229
log.Info("Adding custom configuration file from %s", setting.CustomConf)

cmd/embedded.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -157,9 +157,9 @@ func runViewDo(c *cli.Context) error {
157157
}
158158

159159
if len(matchedAssetFiles) == 0 {
160-
return fmt.Errorf("no files matched the given pattern")
160+
return errors.New("no files matched the given pattern")
161161
} else if len(matchedAssetFiles) > 1 {
162-
return fmt.Errorf("too many files matched the given pattern, try to be more specific")
162+
return errors.New("too many files matched the given pattern, try to be more specific")
163163
}
164164

165165
data, err := matchedAssetFiles[0].fs.ReadFile(matchedAssetFiles[0].name)
@@ -180,7 +180,7 @@ func runExtractDo(c *cli.Context) error {
180180
}
181181

182182
if c.NArg() == 0 {
183-
return fmt.Errorf("a list of pattern of files to extract is mandatory (e.g. '**' for all)")
183+
return errors.New("a list of pattern of files to extract is mandatory (e.g. '**' for all)")
184184
}
185185

186186
destdir := "."

cmd/manager_logging.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
package cmd
55

66
import (
7+
"errors"
78
"fmt"
89
"os"
910

@@ -249,7 +250,7 @@ func runAddFileLogger(c *cli.Context) error {
249250
if c.IsSet("filename") {
250251
vals["filename"] = c.String("filename")
251252
} else {
252-
return fmt.Errorf("filename must be set when creating a file logger")
253+
return errors.New("filename must be set when creating a file logger")
253254
}
254255
if c.IsSet("rotate") {
255256
vals["rotate"] = c.Bool("rotate")

go.mod

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ require (
1616
gitea.com/lunny/levelqueue v0.4.2-0.20230414023320-3c0159fe0fe4
1717
github.com/42wim/sshsig v0.0.0-20211121163825-841cf5bbc121
1818
github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358
19-
github.com/NYTimes/gziphandler v1.1.1
2019
github.com/PuerkitoBio/goquery v1.9.1
2120
github.com/alecthomas/chroma/v2 v2.13.0
2221
github.com/blakesmith/ar v0.0.0-20190502131153-809d4375e1fb
@@ -67,7 +66,7 @@ require (
6766
github.com/json-iterator/go v1.1.12
6867
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51
6968
github.com/keybase/go-crypto v0.0.0-20200123153347-de78d2cb44f4
70-
github.com/klauspost/compress v1.17.7
69+
github.com/klauspost/compress v1.17.8
7170
github.com/klauspost/cpuid/v2 v2.2.7
7271
github.com/lib/pq v1.10.9
7372
github.com/markbates/goth v1.79.0

go.sum

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,6 @@ github.com/Masterminds/sprig/v3 v3.2.3/go.mod h1:rXcFaZ2zZbLRJv/xSysmlgIM1u11eBa
7070
github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY=
7171
github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow=
7272
github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM=
73-
github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I=
74-
github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c=
7573
github.com/ProtonMail/go-crypto v1.0.0 h1:LRuvITjQWX+WIfr930YHG2HNfjR1uOfyf5vE0kC2U78=
7674
github.com/ProtonMail/go-crypto v1.0.0/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0=
7775
github.com/PuerkitoBio/goquery v1.9.1 h1:mTL6XjbJTZdpfL+Gwl5U2h1l9yEkJjhmlTeV9VPW7UI=
@@ -500,8 +498,8 @@ github.com/klauspost/compress v1.11.4/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYs
500498
github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
501499
github.com/klauspost/compress v1.15.0/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
502500
github.com/klauspost/compress v1.15.6/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU=
503-
github.com/klauspost/compress v1.17.7 h1:ehO88t2UGzQK66LMdE8tibEd1ErmzZjNEqWkjLAKQQg=
504-
github.com/klauspost/compress v1.17.7/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw=
501+
github.com/klauspost/compress v1.17.8 h1:YcnTYrq7MikUT7k0Yb5eceMmALQPYBW/Xltxn0NAMnU=
502+
github.com/klauspost/compress v1.17.8/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw=
505503
github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=
506504
github.com/klauspost/cpuid/v2 v2.0.1/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
507505
github.com/klauspost/cpuid/v2 v2.0.12/go.mod h1:g2LTdtYhdyuGPqyWyv7qRAmj1WBqxuObKfj5c0PQa7c=

models/auth/oauth2.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"crypto/sha256"
99
"encoding/base32"
1010
"encoding/base64"
11+
"errors"
1112
"fmt"
1213
"net"
1314
"net/url"
@@ -294,7 +295,7 @@ func UpdateOAuth2Application(ctx context.Context, opts UpdateOAuth2ApplicationOp
294295
return nil, err
295296
}
296297
if app.UID != opts.UserID {
297-
return nil, fmt.Errorf("UID mismatch")
298+
return nil, errors.New("UID mismatch")
298299
}
299300
builtinApps := BuiltinApplications()
300301
if _, builtin := builtinApps[app.ClientID]; builtin {

models/git/lfs_lock.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ package git
55

66
import (
77
"context"
8-
"fmt"
8+
"errors"
99
"strings"
1010
"time"
1111

@@ -148,7 +148,7 @@ func DeleteLFSLockByID(ctx context.Context, id int64, repo *repo_model.Repositor
148148
}
149149

150150
if !force && u.ID != lock.OwnerID {
151-
return nil, fmt.Errorf("user doesn't own lock and force flag is not set")
151+
return nil, errors.New("user doesn't own lock and force flag is not set")
152152
}
153153

154154
if _, err := db.GetEngine(dbCtx).ID(id).Delete(new(LFSLock)); err != nil {

models/org_team.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ func removeAllRepositories(ctx context.Context, t *organization.Team) (err error
118118

119119
// Remove watches from all users and now unaccessible repos
120120
for _, user := range t.Members {
121-
has, err := access_model.HasAccess(ctx, user.ID, repo)
121+
has, err := access_model.HasAnyUnitAccess(ctx, user.ID, repo)
122122
if err != nil {
123123
return err
124124
} else if has {
@@ -544,7 +544,7 @@ func ReconsiderRepoIssuesAssignee(ctx context.Context, repo *repo_model.Reposito
544544
}
545545

546546
func ReconsiderWatches(ctx context.Context, repo *repo_model.Repository, user *user_model.User) error {
547-
if has, err := access_model.HasAccess(ctx, user.ID, repo); err != nil || has {
547+
if has, err := access_model.HasAnyUnitAccess(ctx, user.ID, repo); err != nil || has {
548548
return err
549549
}
550550
if err := repo_model.WatchRepo(ctx, user, repo, false); err != nil {

models/packages/package_version.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -287,9 +287,10 @@ func (opts *PackageSearchOptions) configureOrderBy(e db.Engine) {
287287
// SearchVersions gets all versions of packages matching the search options
288288
func SearchVersions(ctx context.Context, opts *PackageSearchOptions) ([]*PackageVersion, int64, error) {
289289
sess := db.GetEngine(ctx).
290-
Where(opts.ToConds()).
290+
Select("package_version.*").
291291
Table("package_version").
292-
Join("INNER", "package", "package.id = package_version.package_id")
292+
Join("INNER", "package", "package.id = package_version.package_id").
293+
Where(opts.ToConds())
293294

294295
opts.configureOrderBy(sess)
295296

@@ -304,19 +305,18 @@ func SearchVersions(ctx context.Context, opts *PackageSearchOptions) ([]*Package
304305

305306
// SearchLatestVersions gets the latest version of every package matching the search options
306307
func SearchLatestVersions(ctx context.Context, opts *PackageSearchOptions) ([]*PackageVersion, int64, error) {
307-
cond := opts.ToConds().
308-
And(builder.Expr("pv2.id IS NULL"))
309-
310-
joinCond := builder.Expr("package_version.package_id = pv2.package_id AND (package_version.created_unix < pv2.created_unix OR (package_version.created_unix = pv2.created_unix AND package_version.id < pv2.id))")
311-
if opts.IsInternal.Has() {
312-
joinCond = joinCond.And(builder.Eq{"pv2.is_internal": opts.IsInternal.Value()})
313-
}
308+
in := builder.
309+
Select("MAX(package_version.id)").
310+
From("package_version").
311+
InnerJoin("package", "package.id = package_version.package_id").
312+
Where(opts.ToConds()).
313+
GroupBy("package_version.package_id")
314314

315315
sess := db.GetEngine(ctx).
316+
Select("package_version.*").
316317
Table("package_version").
317-
Join("LEFT", "package_version pv2", joinCond).
318318
Join("INNER", "package", "package.id = package_version.package_id").
319-
Where(cond)
319+
Where(builder.In("package_version.id", in))
320320

321321
opts.configureOrderBy(sess)
322322

models/perm/access/access_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -79,17 +79,17 @@ func TestHasAccess(t *testing.T) {
7979
repo2 := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 3})
8080
assert.True(t, repo2.IsPrivate)
8181

82-
has, err := access_model.HasAccess(db.DefaultContext, user1.ID, repo1)
82+
has, err := access_model.HasAnyUnitAccess(db.DefaultContext, user1.ID, repo1)
8383
assert.NoError(t, err)
8484
assert.True(t, has)
8585

86-
_, err = access_model.HasAccess(db.DefaultContext, user1.ID, repo2)
86+
_, err = access_model.HasAnyUnitAccess(db.DefaultContext, user1.ID, repo2)
8787
assert.NoError(t, err)
8888

89-
_, err = access_model.HasAccess(db.DefaultContext, user2.ID, repo1)
89+
_, err = access_model.HasAnyUnitAccess(db.DefaultContext, user2.ID, repo1)
9090
assert.NoError(t, err)
9191

92-
_, err = access_model.HasAccess(db.DefaultContext, user2.ID, repo2)
92+
_, err = access_model.HasAnyUnitAccess(db.DefaultContext, user2.ID, repo2)
9393
assert.NoError(t, err)
9494
}
9595

0 commit comments

Comments
 (0)