Controlling the Buzz in Swarm
In my last article we covered how you can have any tool in your production pipeline add events to the Swarm activity feed. However sometimes you have the opposite issue; you need to prevent events from showing up in the activity stream. A common use case for ﬁltering out events is to prevent automated processes from ﬂooding the activity stream.
Swarm has a couple ways to ﬁlter events. The easiest by far is to add a user to the 'ignored_users' list in Swarm. There is a conﬁguration parameter in Swarm that allows you to specify users you never want to see activity for. For example, Swarm ships with the Git Fusion user ﬁltered out, but you can add your own users as well. In your Swarm installation ﬁnd your conﬁg.php ﬁle in data directory and include the following block:
'activity' => array( 'ignored_users' => array('some-noisy-user') ),
Just add the Perforce user you want to ignore to the array. For example if I have a daemon that compiles a set of web pages from a template language into their ﬁnal form I could exclude that user by setting:
'activity' => array( 'ignored_users' => array('web_daemon') ),
If you need to reject events based on criteria other than user name you are going to need to build a Swarm module using PHP. Fear not; you don't need to understand the entirety of Zend Framework 2 to build a ﬁltering module. The sample code for ﬁltering activity is in our Public Depot and is well commented. The module you create will be called after an event is put into the event processing queue, but before it is stored and displayed to users. Your code can inspect the contents of the event and stop its propagation if it meets your criteria.
Sound useful? Head on over to the Public Depot and grab the source. If you have any questions about modifying Swarm or have a Swarm hacking article idea, the Swarm development team and myself are always available in the Perforce Forums or you can track me down on Twitter.