From 46da3854b6dad6c633673ce8639b4698b6df309a Mon Sep 17 00:00:00 2001 From: HesterG Date: Wed, 15 Mar 2023 11:14:54 +0800 Subject: [PATCH 1/7] fix sort tag by time --- models/repo/release.go | 22 ++++++++++++++++++++++ modules/context/repo.go | 18 ++++-------------- 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/models/repo/release.go b/models/repo/release.go index abf91bc4bbab0..2214b352dc2c5 100644 --- a/models/repo/release.go +++ b/models/repo/release.go @@ -253,6 +253,28 @@ func GetReleasesByRepoID(ctx context.Context, repoID int64, opts FindReleasesOpt return rels, sess.Find(&rels) } +func GetTagNamesByRepoID(ctx context.Context, repoID int64) ([]string, error) { + listOptions := db.ListOptions{ + ListAll: true, + } + opts := FindReleasesOptions{ + ListOptions: listOptions, + } + + tags := make([]string, 0) + sess := db.GetEngine(ctx). + Table("release"). + Desc("created_unix", "id"). + Where(opts.toConds(repoID)). + Cols("tag_name") + + schema, _ := db.TableInfo(new(Release)) + + fmt.Println(schema) + + return tags, sess.Find(&tags) +} + // CountReleasesByRepoID returns a number of releases matching FindReleaseOptions and RepoID. func CountReleasesByRepoID(repoID int64, opts FindReleasesOptions) (int64, error) { return db.GetEngine(db.DefaultContext).Where(opts.toConds(repoID)).Count(new(Release)) diff --git a/modules/context/repo.go b/modules/context/repo.go index e4ac65e9618c4..754e03d01cc6d 100644 --- a/modules/context/repo.go +++ b/modules/context/repo.go @@ -660,24 +660,14 @@ func RepoAssignment(ctx *Context) (cancel context.CancelFunc) { return } - tags, err := ctx.Repo.GitRepo.GetTags(0, 0) + tags, err := repo_model.GetTagNamesByRepoID(ctx, ctx.Repo.Repository.ID) if err != nil { - if strings.Contains(err.Error(), "fatal: not a git repository ") { - log.Error("Repository %-v has a broken repository on the file system: %s Error: %v", ctx.Repo.Repository, ctx.Repo.Repository.RepoPath(), err) - ctx.Repo.Repository.Status = repo_model.RepositoryBroken - ctx.Repo.Repository.IsEmpty = true - ctx.Data["BranchName"] = ctx.Repo.Repository.DefaultBranch - // Only allow access to base of repo or settings - if !isHomeOrSettings { - ctx.Redirect(ctx.Repo.RepoLink) - } - return - } - ctx.ServerError("GetTags", err) + ctx.ServerError("GetTagNamesByRepoID", err) return } ctx.Data["Tags"] = tags - + fmt.Println(tags) + fmt.Println("RepoAssignmentRepoAssignment") brs, _, err := ctx.Repo.GitRepo.GetBranchNames(0, 0) if err != nil { ctx.ServerError("GetBranches", err) From 0fa286c2f526b38f4a6dcab65860c6be4d5357b3 Mon Sep 17 00:00:00 2001 From: HesterG Date: Wed, 15 Mar 2023 12:16:30 +0800 Subject: [PATCH 2/7] fix sort at compare --- models/repo/release.go | 1 + routers/web/repo/compare.go | 5 ++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/models/repo/release.go b/models/repo/release.go index 2214b352dc2c5..29324564ce7da 100644 --- a/models/repo/release.go +++ b/models/repo/release.go @@ -253,6 +253,7 @@ func GetReleasesByRepoID(ctx context.Context, repoID int64, opts FindReleasesOpt return rels, sess.Find(&rels) } +// GetTagNamesByRepoID returns a list of tag names of repository. func GetTagNamesByRepoID(ctx context.Context, repoID int64) ([]string, error) { listOptions := db.ListOptions{ ListAll: true, diff --git a/routers/web/repo/compare.go b/routers/web/repo/compare.go index f21611c6348dd..d68f491e0fafc 100644 --- a/routers/web/repo/compare.go +++ b/routers/web/repo/compare.go @@ -717,8 +717,7 @@ func CompareDiff(ctx *context.Context) { return } - baseGitRepo := ctx.Repo.GitRepo - baseTags, err := baseGitRepo.GetTags(0, 0) + baseTags, err := repo_model.GetTagNamesByRepoID(ctx, ctx.Repo.Repository.ID) if err != nil { ctx.ServerError("GetTags", err) return @@ -738,7 +737,7 @@ func CompareDiff(ctx *context.Context) { } ctx.Data["HeadBranches"] = headBranches - headTags, err := ci.HeadGitRepo.GetTags(0, 0) + headTags, err := repo_model.GetTagNamesByRepoID(ctx, ci.HeadRepo.ID) if err != nil { ctx.ServerError("GetTags", err) return From 57ecb998f48de866540cfbe58ce1065f5e749df6 Mon Sep 17 00:00:00 2001 From: HesterG Date: Wed, 15 Mar 2023 13:57:49 +0800 Subject: [PATCH 3/7] remove print --- models/repo/release.go | 6 +----- modules/context/repo.go | 2 -- routers/web/repo/compare.go | 4 ++-- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/models/repo/release.go b/models/repo/release.go index 29324564ce7da..80467c5c77840 100644 --- a/models/repo/release.go +++ b/models/repo/release.go @@ -253,7 +253,7 @@ func GetReleasesByRepoID(ctx context.Context, repoID int64, opts FindReleasesOpt return rels, sess.Find(&rels) } -// GetTagNamesByRepoID returns a list of tag names of repository. +// GetTagNamesByRepoID returns a list of release tag names of repository. func GetTagNamesByRepoID(ctx context.Context, repoID int64) ([]string, error) { listOptions := db.ListOptions{ ListAll: true, @@ -269,10 +269,6 @@ func GetTagNamesByRepoID(ctx context.Context, repoID int64) ([]string, error) { Where(opts.toConds(repoID)). Cols("tag_name") - schema, _ := db.TableInfo(new(Release)) - - fmt.Println(schema) - return tags, sess.Find(&tags) } diff --git a/modules/context/repo.go b/modules/context/repo.go index 754e03d01cc6d..0847da9e9c612 100644 --- a/modules/context/repo.go +++ b/modules/context/repo.go @@ -666,8 +666,6 @@ func RepoAssignment(ctx *Context) (cancel context.CancelFunc) { return } ctx.Data["Tags"] = tags - fmt.Println(tags) - fmt.Println("RepoAssignmentRepoAssignment") brs, _, err := ctx.Repo.GitRepo.GetBranchNames(0, 0) if err != nil { ctx.ServerError("GetBranches", err) diff --git a/routers/web/repo/compare.go b/routers/web/repo/compare.go index d68f491e0fafc..dcc520f92ee8b 100644 --- a/routers/web/repo/compare.go +++ b/routers/web/repo/compare.go @@ -719,7 +719,7 @@ func CompareDiff(ctx *context.Context) { baseTags, err := repo_model.GetTagNamesByRepoID(ctx, ctx.Repo.Repository.ID) if err != nil { - ctx.ServerError("GetTags", err) + ctx.ServerError("GetTagNamesByRepoID", err) return } ctx.Data["Tags"] = baseTags @@ -732,7 +732,7 @@ func CompareDiff(ctx *context.Context) { headBranches, _, err := ci.HeadGitRepo.GetBranchNames(0, 0) if err != nil { - ctx.ServerError("GetBranches", err) + ctx.ServerError("GetTagNamesByRepoID", err) return } ctx.Data["HeadBranches"] = headBranches From 320e34298f959e1707dcfc8e79a1e0d1fc5f1697 Mon Sep 17 00:00:00 2001 From: HesterG Date: Wed, 15 Mar 2023 15:05:43 +0800 Subject: [PATCH 4/7] add IncludeDrafts and IncludeTags options --- models/repo/release.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/models/repo/release.go b/models/repo/release.go index 80467c5c77840..f102031599c5e 100644 --- a/models/repo/release.go +++ b/models/repo/release.go @@ -259,7 +259,9 @@ func GetTagNamesByRepoID(ctx context.Context, repoID int64) ([]string, error) { ListAll: true, } opts := FindReleasesOptions{ - ListOptions: listOptions, + ListOptions: listOptions, + IncludeDrafts: true, + IncludeTags: true, } tags := make([]string, 0) From f2d6cdfd39276e515471e63ada1730d86324f154 Mon Sep 17 00:00:00 2001 From: HesterG Date: Wed, 15 Mar 2023 15:20:42 +0800 Subject: [PATCH 5/7] revert unnecessary deletion --- modules/context/repo.go | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/context/repo.go b/modules/context/repo.go index 0847da9e9c612..b83caf4e4b529 100644 --- a/modules/context/repo.go +++ b/modules/context/repo.go @@ -666,6 +666,7 @@ func RepoAssignment(ctx *Context) (cancel context.CancelFunc) { return } ctx.Data["Tags"] = tags + brs, _, err := ctx.Repo.GitRepo.GetBranchNames(0, 0) if err != nil { ctx.ServerError("GetBranches", err) From 0d61e492e5cbab2d1c8bd2976981bfc25a88c1a0 Mon Sep 17 00:00:00 2001 From: HesterG Date: Wed, 15 Mar 2023 15:29:04 +0800 Subject: [PATCH 6/7] give correct error msg --- routers/web/repo/compare.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/routers/web/repo/compare.go b/routers/web/repo/compare.go index dcc520f92ee8b..d7e7bac7b7815 100644 --- a/routers/web/repo/compare.go +++ b/routers/web/repo/compare.go @@ -732,14 +732,14 @@ func CompareDiff(ctx *context.Context) { headBranches, _, err := ci.HeadGitRepo.GetBranchNames(0, 0) if err != nil { - ctx.ServerError("GetTagNamesByRepoID", err) + ctx.ServerError("GetBranches", err) return } ctx.Data["HeadBranches"] = headBranches headTags, err := repo_model.GetTagNamesByRepoID(ctx, ci.HeadRepo.ID) if err != nil { - ctx.ServerError("GetTags", err) + ctx.ServerError("GetTagNamesByRepoID", err) return } ctx.Data["HeadTags"] = headTags From d42a6a4e150a4b489dfe8c8d3f15b1c918cc5eb3 Mon Sep 17 00:00:00 2001 From: HesterG Date: Wed, 15 Mar 2023 15:33:52 +0800 Subject: [PATCH 7/7] add HasSha1 config --- models/repo/release.go | 1 + 1 file changed, 1 insertion(+) diff --git a/models/repo/release.go b/models/repo/release.go index f102031599c5e..f7b24044b9c2c 100644 --- a/models/repo/release.go +++ b/models/repo/release.go @@ -262,6 +262,7 @@ func GetTagNamesByRepoID(ctx context.Context, repoID int64) ([]string, error) { ListOptions: listOptions, IncludeDrafts: true, IncludeTags: true, + HasSha1: util.OptionalBoolTrue, } tags := make([]string, 0)