Sign in

Search issue titles and bodies, change requests and comments. Private repositories you cannot read are not included.

vole
Clone

Read only, no credentials:

https://rodent.software/git/vole.git

Write over SSH with a registered key:

git clone ssh://git@0.0.0.0:2222/vole.git

A free and open-source forge that lives in your Git repo.

Filter workflow events by mentions and assignment

727df38613897e6ffd56e1df05a2f674174bf547 · Keenan Nemetz · 8d ago · parent eb07ff56

Filter workflow events by mentions and assignment

Add mentioned, replied-to, assigned-to, and author filters to issue, comment, and change-request triggers. Move the role vocabulary into core/role so author.role is validated without importing the access store, and pin mentions, reply authors, and assignee changes in the event payload.

server/ci.go +16−7

@@ -137,11 +137,15 @@ type queueSpec struct {
137 137 // does; a combined result does not, and a metadata event does only on its base
138 138 // branch.
139 139 deployPages bool
140 // push selects push triggers (branch, tag, path filters). When false, trigger
141 // and action select an event trigger.
142 push bool
143 trigger string
144 action string
140 // push selects push triggers (branch, tag, path filters). When false, trigger,
141 // action and event select an event trigger.
142 push bool
143 trigger string
144 action string
145 // event carries the filters a non-push trigger is evaluated against. Kind and
146 // Action are filled from trigger and action in queue, so a caller only supplies
147 // what the event payload says about its body, sender and assignees.
148 event ci.EventContext
145 149 payload string
146 150 occurrence string
147 151 changed []string
@@ -175,8 +179,13 @@ func (s *Server) queue(m *repo.Meta, repoName string, spec queueSpec) int {
175 179 if !wf.AppliesToPush(spec.branch, spec.tag, spec.changed) {
176 180 continue
177 181 }
178 } else if !wf.AppliesToEvent(spec.trigger, spec.action) {
179 continue
182 } else {
183 event := spec.event
184 event.Kind = spec.trigger
185 event.Action = spec.action
186 if !wf.AppliesToEvent(event) {
187 continue
188 }
180 189 }
181 190 for _, job := range wf.Jobs {
182 191 site := ""