porting all github actions from bluesky-social/indigo to tangled CI

tweak logic

Changed files
+14 -10
automod
engine
+14 -10
automod/engine/persist.go
··· 43 43 44 44 // de-dupe actions 45 45 newLabels := dedupeLabelActions(c.effects.AccountLabels, c.Account.AccountLabels, c.Account.AccountNegatedLabels) 46 - rmdLabels := dedupeStrings(c.effects.RemovedAccountLabels) 47 - for _, lbl := range c.effects.RemovedAccountLabels { 48 - if !keyword.TokenInSet(lbl, c.Account.AccountLabels) { 46 + var rmdLabels []string 47 + for _, lbl := range dedupeStrings(c.effects.RemovedAccountLabels) { 48 + // we don't need to try and remove labels whenever they are either _not_ already in the account labels, _or_ if they are 49 + // being applied by some other rule before persisting 50 + if !keyword.TokenInSet(lbl, c.Account.AccountLabels) || keyword.TokenInSet(lbl, c.effects.AccountLabels) { 49 51 continue 50 52 } 51 53 rmdLabels = append(rmdLabels, lbl) ··· 273 275 274 276 atURI := c.RecordOp.ATURI().String() 275 277 newLabels := dedupeStrings(c.effects.RecordLabels) 276 - rmdLabels := dedupeStrings(c.effects.RemovedRecordLabels) 278 + var rmdLabels []string 277 279 newTags := dedupeStrings(c.effects.RecordTags) 278 280 newEscalation := c.effects.RecordEscalate 279 281 newAcknowledge := c.effects.RecordAcknowledge ··· 287 289 } else { 288 290 var existingLabels []string 289 291 var negLabels []string 290 - var neededRmdLabels []string 291 292 for _, lbl := range rv.Labels { 292 293 if lbl.Neg != nil && *lbl.Neg == true { 293 294 negLabels = append(negLabels, lbl.Val) 294 295 } else { 295 296 existingLabels = append(existingLabels, lbl.Val) 296 - 297 - if keyword.TokenInSet(lbl.Val, rmdLabels) { 298 - neededRmdLabels = append(neededRmdLabels, lbl.Val) 299 - } 300 297 } 301 298 } 302 299 existingLabels = dedupeStrings(existingLabels) 303 300 negLabels = dedupeStrings(negLabels) 304 301 newLabels = dedupeLabelActions(newLabels, existingLabels, negLabels) 305 - rmdLabels = neededRmdLabels 302 + for _, lbl := range dedupeStrings(c.effects.RemovedRecordLabels) { 303 + // we don't need to try and remove labels whenever they are either _not_ already in the record labels, _or_ if they are 304 + // being applied by some other rule before persisting 305 + if !keyword.TokenInSet(lbl, existingLabels) || keyword.TokenInSet(lbl, newLabels) { 306 + continue 307 + } 308 + rmdLabels = append(rmdLabels, lbl) 309 + } 306 310 existingTags := []string{} 307 311 hasSubjectStatus := rv.Moderation != nil && rv.Moderation.SubjectStatus != nil 308 312 if hasSubjectStatus && rv.Moderation.SubjectStatus.Tags != nil {