fix: clearer logic on getting ref

This commit is contained in:
BoYanZh 2024-11-10 19:26:52 -05:00
parent cbd4fb8a52
commit 3dea5ee2fb
No known key found for this signature in database
GPG Key ID: CA088E6D9284F870
1 changed files with 17 additions and 14 deletions

View File

@ -21,22 +21,25 @@ func GetWorkflowBadge(ctx *context.Context) {
branch := ctx.Req.URL.Query().Get("branch")
tag := ctx.Req.URL.Query().Get("tag")
useLatestTag := ctx.Req.URL.Query().Has("latest_tag")
if branch == "" && tag == "" && !useLatestTag {
branch = ctx.Repo.Repository.DefaultBranch
}
ref := fmt.Sprintf("refs/heads/%s", branch)
if branch == "" && tag != "" {
if useLatestTag {
tags, _, err := ctx.Repo.GitRepo.GetTagInfos(0, 1)
if err != nil {
ctx.ServerError("GetTagInfos", err)
return
}
if len(tags) != 0 {
tag = tags[0].Name
}
var ref string
switch {
case useLatestTag:
tags, _, err := ctx.Repo.GitRepo.GetTagInfos(0, 1)
if err != nil {
ctx.ServerError("GetTagInfos", err)
return
}
if len(tags) != 0 {
tag = tags[0].Name
}
ref = fmt.Sprintf("refs/tags/%s", tag)
case tag != "":
ref = fmt.Sprintf("refs/tags/%s", tag)
case branch != "":
ref = fmt.Sprintf("refs/heads/%s", branch)
default:
branch = ctx.Repo.Repository.DefaultBranch
ref = fmt.Sprintf("refs/heads/%s", branch)
}
event := ctx.Req.URL.Query().Get("event")