]> source.dussan.org Git - gitea.git/commitdiff
Update scheduled tasks even if changes are pushed by "ActionsUser" (#32246)
authorZettat123 <zettat123@gmail.com>
Sun, 13 Oct 2024 20:28:32 +0000 (04:28 +0800)
committerGitHub <noreply@github.com>
Sun, 13 Oct 2024 20:28:32 +0000 (20:28 +0000)
Fix #32219

---------

Co-authored-by: delvh <dev.lh@web.de>
services/actions/notifier_helper.go

index b21d889d0369e7fd56d9bf6e1264bb2d1f1452ba..323c6a76e422cbebc82c9b0a9889b83f23233107 100644 (file)
@@ -116,11 +116,20 @@ func (input *notifyInput) Notify(ctx context.Context) {
 }
 
 func notify(ctx context.Context, input *notifyInput) error {
+       shouldDetectSchedules := input.Event == webhook_module.HookEventPush && input.Ref.BranchName() == input.Repo.DefaultBranch
        if input.Doer.IsActions() {
                // avoiding triggering cyclically, for example:
                // a comment of an issue will trigger the runner to add a new comment as reply,
                // and the new comment will trigger the runner again.
                log.Debug("ignore executing %v for event %v whose doer is %v", getMethod(ctx), input.Event, input.Doer.Name)
+
+               // we should update schedule tasks in this case, because
+               //   1. schedule tasks cannot be triggered by other events, so cyclic triggering will not occur
+               //   2. some schedule tasks may update the repo periodically, so the refs of schedule tasks need to be updated
+               if shouldDetectSchedules {
+                       return DetectAndHandleSchedules(ctx, input.Repo)
+               }
+
                return nil
        }
        if input.Repo.IsEmpty || input.Repo.IsArchived {
@@ -174,7 +183,6 @@ func notify(ctx context.Context, input *notifyInput) error {
 
        var detectedWorkflows []*actions_module.DetectedWorkflow
        actionsConfig := input.Repo.MustGetUnit(ctx, unit_model.TypeActions).ActionsConfig()
-       shouldDetectSchedules := input.Event == webhook_module.HookEventPush && input.Ref.BranchName() == input.Repo.DefaultBranch
        workflows, schedules, err := actions_module.DetectWorkflows(gitRepo, commit,
                input.Event,
                input.Payload,