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 := "" | |