From Wikitech
This page contains historical information. It may be outdated or unreliable.

Phawikibugs is an instance of the Phabricator Chat Bot running under the wikibugs account on Portal:Toolforge. It uses the pywikibugs user account to communicate with Phabricator.

Starting and stopping

The bot is written as a Phabricator Daemon, which means we need a wrapper to run it on the Grid:

# because phabricator uses SIGUSR1 to communicate between child and parent, we need to catch this...

cd /data/project/wikibugs/phabricator

function on_EXIT()
  echo Stopping all daemons...
  phabricator/bin/phd stop
  echo Done. Bye-bye!

function on_USR1()
  echo Received SIGUSR1

trap on_USR1 USR1
trap on_EXIT EXIT

echo Starting daemon via PHD!
phabricator/bin/phd launch phabricatorbot `pwd`/phab_config.json
echo Started. Sleep for ALL times!

sleep infinity
#echo Attempting to EXEC daemon
#./libphutil/scripts/daemon/exec/exec_daemon.php PhabricatorBot --load-phutil-library=`pwd`/arcanist/src --load-phutil-library=`pwd`/phabricator/src --verbose -- `pwd`/phab_config.json

The helper script

submits the job to the grid:

jstart -once -mem 1G ./


In phab_config.json. Current configuration:

  "server" : "",
  "port" : 6667,
  "nick" : "phawikibugs",
  "join" : [
  "handlers" : [

  "conduit.uri" : "",
  "conduit.user" : "pywikibugs",
  "conduit.cert" : "[redacted]",

  "macro.size" : 48,
  "macro.aspect" : 0.66,

  "notification.channels" : ["#phabot-test"]

(I think notification.channels is ignored?)


In development. The basic bot works (as provided by Phabricator), but it needs WMF-specific adjustments. See the task list for details.