%YAML 1.2 --- # This is some metadata about the badge name: M-maybe Design (Design Team II) description: Lichtenstein approves! You resolved 10 Design Team tickets! creator: ralph discussion: https://pagure.io/design/issue/367 image_url: https://badges.fedoraproject.org/pngs/367_artist_badge_royl_3_16.png issuer_id: fedora-project # We'll perform our more costly check (defined below) only when # we receive messages that match this 'trigger' trigger: all: - topic: trac.ticket.update - lambda: msg.get('msg', {}).get('instance', {}).get('project_name', None) == 'Design Team' - lambda: "'status' in msg.get('msg', {}).get('old_values', {})" - lambda: msg.get('msg', {}).get('ticket', {}).get('status', None) == 'closed' - lambda: msg.get('msg', {}).get('ticket', {}).get('resolution', None) == 'fixed' - lambda: msg.get('msg', {}).get('ticket', {}).get('owner', None) != None # Once the check has been triggered, this defines what we actually check. criteria: datanommer: filter: topics: - "%(topic)s" users: - "%(msg.ticket.owner)s" rows_per_page: 9999999 operation: lambda: > len([ msg for msg in query.all() if msg.msg['instance']['project_name'] == 'Design Team' and msg.msg['ticket']['status'] == 'closed' and msg.msg['ticket']['resolution'] == 'fixed' and msg.msg['ticket']['owner'] == "%(msg.comment.update.user.name)s" ]) condition: greater than or equal to: 10 recipient: "%(msg.ticket.owner)s"