Skip to content

Commit 708a34e

Browse files
committed
Merge remote-tracking branch 'upstream/main'
* upstream/main: Fix issue due date edit toggle bug (go-gitea#23723) Fix profile page email display, respect settings (go-gitea#23747) Update Gitea version in docs (go-gitea#23755) Fix SVG close tag, improve commit graph page UI alignment (go-gitea#23751) Remove incorrect HTML self close tag (go-gitea#23748) Refactor repo commit list (go-gitea#23690) Fix tags view (go-gitea#23243) Add commit info in action page (go-gitea#23210) Use GitHub Actions compatible globbing for `branches`, `tag`, `path` filter (go-gitea#22804)
2 parents 5bd354a + 8df1b4b commit 708a34e

Some content is hidden

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

66 files changed

+372
-232
lines changed

docs/config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ params:
1818
description: Git with a cup of tea
1919
author: The Gitea Authors
2020
website: https://docs.gitea.io
21-
version: 1.18.5
21+
version: 1.19.0
2222
minGoVersion: 1.19
2323
goVersion: 1.20
2424
minNodeVersion: 16

modules/actions/workflows.go

Lines changed: 107 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import (
1616
"github.com/gobwas/glob"
1717
"github.com/nektos/act/pkg/jobparser"
1818
"github.com/nektos/act/pkg/model"
19+
"github.com/nektos/act/pkg/workflowpattern"
1920
)
2021

2122
func ListWorkflows(commit *git.Commit) (git.Entries, error) {
@@ -152,40 +153,94 @@ func matchPushEvent(commit *git.Commit, pushPayload *api.PushPayload, evt *jobpa
152153
}
153154

154155
matchTimes := 0
156+
hasBranchFilter := false
157+
hasTagFilter := false
158+
refName := git.RefName(pushPayload.Ref)
155159
// all acts conditions should be satisfied
156160
for cond, vals := range evt.Acts {
157161
switch cond {
158-
case "branches", "tags":
159-
refShortName := git.RefName(pushPayload.Ref).ShortName()
160-
for _, val := range vals {
161-
if glob.MustCompile(val, '/').Match(refShortName) {
162-
matchTimes++
162+
case "branches":
163+
hasBranchFilter = true
164+
if !refName.IsBranch() {
165+
break
166+
}
167+
patterns, err := workflowpattern.CompilePatterns(vals...)
168+
if err != nil {
169+
break
170+
}
171+
if !workflowpattern.Skip(patterns, []string{refName.ShortName()}, &workflowpattern.EmptyTraceWriter{}) {
172+
matchTimes++
173+
}
174+
case "branches-ignore":
175+
hasBranchFilter = true
176+
if !refName.IsBranch() {
177+
break
178+
}
179+
patterns, err := workflowpattern.CompilePatterns(vals...)
180+
if err != nil {
181+
break
182+
}
183+
if !workflowpattern.Filter(patterns, []string{refName.ShortName()}, &workflowpattern.EmptyTraceWriter{}) {
184+
matchTimes++
185+
}
186+
case "tags":
187+
hasTagFilter = true
188+
if !refName.IsTag() {
189+
break
190+
}
191+
patterns, err := workflowpattern.CompilePatterns(vals...)
192+
if err != nil {
193+
break
194+
}
195+
if !workflowpattern.Skip(patterns, []string{refName.ShortName()}, &workflowpattern.EmptyTraceWriter{}) {
196+
matchTimes++
197+
}
198+
case "tags-ignore":
199+
hasTagFilter = true
200+
if !refName.IsTag() {
201+
break
202+
}
203+
patterns, err := workflowpattern.CompilePatterns(vals...)
204+
if err != nil {
205+
break
206+
}
207+
if !workflowpattern.Filter(patterns, []string{refName.ShortName()}, &workflowpattern.EmptyTraceWriter{}) {
208+
matchTimes++
209+
}
210+
case "paths":
211+
filesChanged, err := commit.GetFilesChangedSinceCommit(pushPayload.Before)
212+
if err != nil {
213+
log.Error("GetFilesChangedSinceCommit [commit_sha1: %s]: %v", commit.ID.String(), err)
214+
} else {
215+
patterns, err := workflowpattern.CompilePatterns(vals...)
216+
if err != nil {
163217
break
164218
}
219+
if !workflowpattern.Skip(patterns, filesChanged, &workflowpattern.EmptyTraceWriter{}) {
220+
matchTimes++
221+
}
165222
}
166-
case "paths":
223+
case "paths-ignore":
167224
filesChanged, err := commit.GetFilesChangedSinceCommit(pushPayload.Before)
168225
if err != nil {
169226
log.Error("GetFilesChangedSinceCommit [commit_sha1: %s]: %v", commit.ID.String(), err)
170227
} else {
171-
for _, val := range vals {
172-
matched := false
173-
for _, file := range filesChanged {
174-
if glob.MustCompile(val, '/').Match(file) {
175-
matched = true
176-
break
177-
}
178-
}
179-
if matched {
180-
matchTimes++
181-
break
182-
}
228+
patterns, err := workflowpattern.CompilePatterns(vals...)
229+
if err != nil {
230+
break
231+
}
232+
if !workflowpattern.Filter(patterns, filesChanged, &workflowpattern.EmptyTraceWriter{}) {
233+
matchTimes++
183234
}
184235
}
185236
default:
186237
log.Warn("push event unsupported condition %q", cond)
187238
}
188239
}
240+
// if both branch and tag filter are defined in the workflow only one needs to match
241+
if hasBranchFilter && hasTagFilter {
242+
matchTimes++
243+
}
189244
return matchTimes == len(evt.Acts)
190245
}
191246

@@ -237,30 +292,47 @@ func matchPullRequestEvent(commit *git.Commit, prPayload *api.PullRequestPayload
237292
}
238293
}
239294
case "branches":
240-
refShortName := git.RefName(prPayload.PullRequest.Base.Ref).ShortName()
241-
for _, val := range vals {
242-
if glob.MustCompile(val, '/').Match(refShortName) {
243-
matchTimes++
295+
refName := git.RefName(prPayload.PullRequest.Base.Ref)
296+
patterns, err := workflowpattern.CompilePatterns(vals...)
297+
if err != nil {
298+
break
299+
}
300+
if !workflowpattern.Skip(patterns, []string{refName.ShortName()}, &workflowpattern.EmptyTraceWriter{}) {
301+
matchTimes++
302+
}
303+
case "branches-ignore":
304+
refName := git.RefName(prPayload.PullRequest.Base.Ref)
305+
patterns, err := workflowpattern.CompilePatterns(vals...)
306+
if err != nil {
307+
break
308+
}
309+
if !workflowpattern.Filter(patterns, []string{refName.ShortName()}, &workflowpattern.EmptyTraceWriter{}) {
310+
matchTimes++
311+
}
312+
case "paths":
313+
filesChanged, err := commit.GetFilesChangedSinceCommit(prPayload.PullRequest.Base.Ref)
314+
if err != nil {
315+
log.Error("GetFilesChangedSinceCommit [commit_sha1: %s]: %v", commit.ID.String(), err)
316+
} else {
317+
patterns, err := workflowpattern.CompilePatterns(vals...)
318+
if err != nil {
244319
break
245320
}
321+
if !workflowpattern.Skip(patterns, filesChanged, &workflowpattern.EmptyTraceWriter{}) {
322+
matchTimes++
323+
}
246324
}
247-
case "paths":
325+
case "paths-ignore":
248326
filesChanged, err := commit.GetFilesChangedSinceCommit(prPayload.PullRequest.Base.Ref)
249327
if err != nil {
250328
log.Error("GetFilesChangedSinceCommit [commit_sha1: %s]: %v", commit.ID.String(), err)
251329
} else {
252-
for _, val := range vals {
253-
matched := false
254-
for _, file := range filesChanged {
255-
if glob.MustCompile(val, '/').Match(file) {
256-
matched = true
257-
break
258-
}
259-
}
260-
if matched {
261-
matchTimes++
262-
break
263-
}
330+
patterns, err := workflowpattern.CompilePatterns(vals...)
331+
if err != nil {
332+
break
333+
}
334+
if !workflowpattern.Filter(patterns, filesChanged, &workflowpattern.EmptyTraceWriter{}) {
335+
matchTimes++
264336
}
265337
}
266338
default:

options/locale/locale_en-US.ini

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1068,6 +1068,7 @@ release = Release
10681068
releases = Releases
10691069
tag = Tag
10701070
released_this = released this
1071+
tagged_this = tagged this
10711072
file.title = %s at %s
10721073
file_raw = Raw
10731074
file_history = History
@@ -2287,6 +2288,7 @@ release.compare = Compare
22872288
release.edit = edit
22882289
release.ahead.commits = <strong>%d</strong> commits
22892290
release.ahead.target = to %s since this release
2291+
tag.ahead.target = to %s since this tag
22902292
release.source_code = Source Code
22912293
release.new_subheader = Releases organize project versions.
22922294
release.edit_subheader = Releases organize project versions.

routers/web/repo/actions/view.go

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
"code.gitea.io/gitea/models/db"
1515
"code.gitea.io/gitea/models/unit"
1616
"code.gitea.io/gitea/modules/actions"
17+
"code.gitea.io/gitea/modules/base"
1718
context_module "code.gitea.io/gitea/modules/context"
1819
"code.gitea.io/gitea/modules/log"
1920
"code.gitea.io/gitea/modules/timeutil"
@@ -57,6 +58,7 @@ type ViewResponse struct {
5758
CanApprove bool `json:"canApprove"` // the run needs an approval and the doer has permission to approve
5859
Done bool `json:"done"`
5960
Jobs []*ViewJob `json:"jobs"`
61+
Commit ViewCommit `json:"commit"`
6062
} `json:"run"`
6163
CurrentJob struct {
6264
Title string `json:"title"`
@@ -76,6 +78,25 @@ type ViewJob struct {
7678
CanRerun bool `json:"canRerun"`
7779
}
7880

81+
type ViewCommit struct {
82+
LocaleCommit string `json:"localeCommit"`
83+
LocalePushedBy string `json:"localePushedBy"`
84+
ShortSha string `json:"shortSHA"`
85+
Link string `json:"link"`
86+
Pusher ViewUser `json:"pusher"`
87+
Branch ViewBranch `json:"branch"`
88+
}
89+
90+
type ViewUser struct {
91+
DisplayName string `json:"displayName"`
92+
Link string `json:"link"`
93+
}
94+
95+
type ViewBranch struct {
96+
Name string `json:"name"`
97+
Link string `json:"link"`
98+
}
99+
79100
type ViewJobStep struct {
80101
Summary string `json:"summary"`
81102
Duration string `json:"duration"`
@@ -104,6 +125,10 @@ func ViewPost(ctx *context_module.Context) {
104125
return
105126
}
106127
run := current.Run
128+
if err := run.LoadAttributes(ctx); err != nil {
129+
ctx.Error(http.StatusInternalServerError, err.Error())
130+
return
131+
}
107132

108133
resp := &ViewResponse{}
109134

@@ -123,6 +148,23 @@ func ViewPost(ctx *context_module.Context) {
123148
})
124149
}
125150

151+
pusher := ViewUser{
152+
DisplayName: run.TriggerUser.GetDisplayName(),
153+
Link: run.TriggerUser.HomeLink(),
154+
}
155+
branch := ViewBranch{
156+
Name: run.PrettyRef(),
157+
Link: run.RefLink(),
158+
}
159+
resp.State.Run.Commit = ViewCommit{
160+
LocaleCommit: ctx.Tr("actions.runs.commit"),
161+
LocalePushedBy: ctx.Tr("actions.runs.pushed_by"),
162+
ShortSha: base.ShortSha(run.CommitSHA),
163+
Link: fmt.Sprintf("%s/commit/%s", run.Repo.Link(), run.CommitSHA),
164+
Pusher: pusher,
165+
Branch: branch,
166+
}
167+
126168
var task *actions_model.ActionTask
127169
if current.TaskID > 0 {
128170
var err error

routers/web/repo/release.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,8 +226,8 @@ func releasesOrTagsFeed(ctx *context.Context, isReleasesOnly bool, formatType st
226226

227227
// SingleRelease renders a single release's page
228228
func SingleRelease(ctx *context.Context) {
229-
ctx.Data["Title"] = ctx.Tr("repo.release.releases")
230229
ctx.Data["PageIsReleaseList"] = true
230+
ctx.Data["DefaultBranch"] = ctx.Repo.Repository.DefaultBranch
231231

232232
writeAccess := ctx.Repo.CanWrite(unit.TypeReleases)
233233
ctx.Data["CanCreateRelease"] = writeAccess && !ctx.Repo.Repository.IsArchived
@@ -241,6 +241,12 @@ func SingleRelease(ctx *context.Context) {
241241
ctx.ServerError("GetReleasesByRepoID", err)
242242
return
243243
}
244+
ctx.Data["PageIsSingleTag"] = release.IsTag
245+
if release.IsTag {
246+
ctx.Data["Title"] = release.TagName
247+
} else {
248+
ctx.Data["Title"] = release.Title
249+
}
244250

245251
err = repo_model.GetReleaseAttachments(ctx, release)
246252
if err != nil {

routers/web/user/profile.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,7 @@ func Profile(ctx *context.Context) {
308308
ctx.Data["IsPackageEnabled"] = setting.Packages.Enabled
309309
ctx.Data["IsRepoIndexerEnabled"] = setting.Indexer.RepoIndexerEnabled
310310

311-
ctx.Data["ShowUserEmail"] = len(ctx.ContextUser.Email) > 0 && ctx.IsSigned && (!ctx.ContextUser.KeepEmailPrivate || ctx.ContextUser.ID == ctx.Doer.ID)
311+
ctx.Data["ShowUserEmail"] = setting.UI.ShowUserEmail && ctx.ContextUser.Email != "" && ctx.IsSigned && !ctx.ContextUser.KeepEmailPrivate
312312

313313
ctx.HTML(http.StatusOK, tplProfile)
314314
}

services/repository/push.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -374,15 +374,20 @@ func pushUpdateAddTags(ctx context.Context, repo *repo_model.Repository, gitRepo
374374
rel, has := relMap[lowerTag]
375375

376376
if !has {
377+
parts := strings.SplitN(tag.Message, "\n", 2)
378+
note := ""
379+
if len(parts) > 1 {
380+
note = parts[1]
381+
}
377382
rel = &repo_model.Release{
378383
RepoID: repo.ID,
379-
Title: "",
384+
Title: parts[0],
380385
TagName: tags[i],
381386
LowerTagName: lowerTag,
382387
Target: "",
383388
Sha1: commit.ID.String(),
384389
NumCommits: commitsCount,
385-
Note: "",
390+
Note: note,
386391
IsDraft: false,
387392
IsPrerelease: false,
388393
IsTag: true,

templates/admin/auth/edit.tmpl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -328,11 +328,11 @@
328328

329329
{{range .OAuth2Providers}}{{if .CustomURLSettings}}
330330
<input id="{{.Name}}_customURLSettings" type="hidden" data-required="{{.CustomURLSettings.Required}}" data-available="true">
331-
<input id="{{.Name}}_token_url" value="{{.CustomURLSettings.TokenURL.Value}}" data-available="{{.CustomURLSettings.TokenURL.Available}}" data-required="{{.CustomURLSettings.TokenURL.Required}}" type="hidden" />
332-
<input id="{{.Name}}_auth_url" value="{{.CustomURLSettings.AuthURL.Value}}" data-available="{{.CustomURLSettings.AuthURL.Available}}" data-required="{{.CustomURLSettings.AuthURL.Required}}" type="hidden" />
333-
<input id="{{.Name}}_profile_url" value="{{.CustomURLSettings.ProfileURL.Value}}" data-available="{{.CustomURLSettings.ProfileURL.Available}}" data-required="{{.CustomURLSettings.ProfileURL.Required}}" type="hidden" />
334-
<input id="{{.Name}}_email_url" value="{{.CustomURLSettings.EmailURL.Value}}" data-available="{{.CustomURLSettings.EmailURL.Available}}" data-required="{{.CustomURLSettings.EmailURL.Required}}" type="hidden" />
335-
<input id="{{.Name}}_tenant" value="{{.CustomURLSettings.Tenant.Value}}" data-available="{{.CustomURLSettings.Tenant.Available}}" data-required="{{.CustomURLSettings.Tenant.Required}}" type="hidden" />
331+
<input id="{{.Name}}_token_url" value="{{.CustomURLSettings.TokenURL.Value}}" data-available="{{.CustomURLSettings.TokenURL.Available}}" data-required="{{.CustomURLSettings.TokenURL.Required}}" type="hidden">
332+
<input id="{{.Name}}_auth_url" value="{{.CustomURLSettings.AuthURL.Value}}" data-available="{{.CustomURLSettings.AuthURL.Available}}" data-required="{{.CustomURLSettings.AuthURL.Required}}" type="hidden">
333+
<input id="{{.Name}}_profile_url" value="{{.CustomURLSettings.ProfileURL.Value}}" data-available="{{.CustomURLSettings.ProfileURL.Available}}" data-required="{{.CustomURLSettings.ProfileURL.Required}}" type="hidden">
334+
<input id="{{.Name}}_email_url" value="{{.CustomURLSettings.EmailURL.Value}}" data-available="{{.CustomURLSettings.EmailURL.Available}}" data-required="{{.CustomURLSettings.EmailURL.Required}}" type="hidden">
335+
<input id="{{.Name}}_tenant" value="{{.CustomURLSettings.Tenant.Value}}" data-available="{{.CustomURLSettings.Tenant.Available}}" data-required="{{.CustomURLSettings.Tenant.Required}}" type="hidden">
336336
{{end}}{{end}}
337337

338338
<div class="field">

templates/admin/auth/new.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
<!-- PAM -->
3939
<div class="pam required field {{if not (eq .type 4)}}gt-hidden{{end}}">
4040
<label for="pam_service_name">{{.locale.Tr "admin.auths.pam_service_name"}}</label>
41-
<input id="pam_service_name" name="pam_service_name" value="{{.pam_service_name}}" />
41+
<input id="pam_service_name" name="pam_service_name" value="{{.pam_service_name}}">
4242
<label for="pam_email_domain">{{.locale.Tr "admin.auths.pam_email_domain"}}</label>
4343
<input id="pam_email_domain" name="pam_email_domain" value="{{.pam_email_domain}}">
4444
</div>

templates/admin/auth/source/oauth.tmpl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,11 +65,11 @@
6565

6666
{{range .OAuth2Providers}}{{if .CustomURLSettings}}
6767
<input id="{{.Name}}_customURLSettings" type="hidden" data-required="{{.CustomURLSettings.Required}}" data-available="true">
68-
<input id="{{.Name}}_token_url" value="{{.CustomURLSettings.TokenURL.Value}}" data-available="{{.CustomURLSettings.TokenURL.Available}}" data-required="{{.CustomURLSettings.TokenURL.Required}}" type="hidden" />
69-
<input id="{{.Name}}_auth_url" value="{{.CustomURLSettings.AuthURL.Value}}" data-available="{{.CustomURLSettings.AuthURL.Available}}" data-required="{{.CustomURLSettings.AuthURL.Required}}" type="hidden" />
70-
<input id="{{.Name}}_profile_url" value="{{.CustomURLSettings.ProfileURL.Value}}" data-available="{{.CustomURLSettings.ProfileURL.Available}}" data-required="{{.CustomURLSettings.ProfileURL.Required}}" type="hidden" />
71-
<input id="{{.Name}}_email_url" value="{{.CustomURLSettings.EmailURL.Value}}" data-available="{{.CustomURLSettings.EmailURL.Available}}" data-required="{{.CustomURLSettings.EmailURL.Required}}" type="hidden" />
72-
<input id="{{.Name}}_tenant" value="{{.CustomURLSettings.Tenant.Value}}" data-available="{{.CustomURLSettings.Tenant.Available}}" data-required="{{.CustomURLSettings.Tenant.Required}}" type="hidden" />
68+
<input id="{{.Name}}_token_url" value="{{.CustomURLSettings.TokenURL.Value}}" data-available="{{.CustomURLSettings.TokenURL.Available}}" data-required="{{.CustomURLSettings.TokenURL.Required}}" type="hidden">
69+
<input id="{{.Name}}_auth_url" value="{{.CustomURLSettings.AuthURL.Value}}" data-available="{{.CustomURLSettings.AuthURL.Available}}" data-required="{{.CustomURLSettings.AuthURL.Required}}" type="hidden">
70+
<input id="{{.Name}}_profile_url" value="{{.CustomURLSettings.ProfileURL.Value}}" data-available="{{.CustomURLSettings.ProfileURL.Available}}" data-required="{{.CustomURLSettings.ProfileURL.Required}}" type="hidden">
71+
<input id="{{.Name}}_email_url" value="{{.CustomURLSettings.EmailURL.Value}}" data-available="{{.CustomURLSettings.EmailURL.Available}}" data-required="{{.CustomURLSettings.EmailURL.Required}}" type="hidden">
72+
<input id="{{.Name}}_tenant" value="{{.CustomURLSettings.Tenant.Value}}" data-available="{{.CustomURLSettings.Tenant.Available}}" data-required="{{.CustomURLSettings.Tenant.Required}}" type="hidden">
7373
{{end}}{{end}}
7474

7575
<div class="field">

templates/admin/cron.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
{{end}}
3030
</tbody>
3131
</table>
32-
<input type="hidden" name="from" value="monitor"/>
32+
<input type="hidden" name="from" value="monitor">
3333
{{.CsrfTokenHtml}}
3434
</form>
3535
</div>

0 commit comments

Comments
 (0)