Phabricator Integration

Learn how to set up Screenshotbot to notify you on Phabricator revisions.

Introduction

Phabricator is a powerful tool that can host your repositories, and can be used for code reviews. Phabricator doesn't seamlessly integrate with commercial CI providers, so in this document we'll assume that you are using Jenkins as your CI. These steps would still work with other CI providers, but you might have to tweak the steps required in order to get the Diff ID.

At the end of this set up, you'll have a screenshotbot user on Phabricator that will comment on your diffs whenever it detects a change.

Phabricator Preparation

Screenshotbot will need a bot user to access Phabricator. As an Admin you can find this underPeople app:

We recommend naming the bot screenshotbot, but the name does not matter. At this point you'll need the Conduit API Key, which we'll use later in Screenshotbot.

Setting up Screenshotbot

Set up the Phabricator URL and the Conduit key on Screenshotbot from Settings.

Updating Jenkins or your CI

Finally, we need to provide the Diff ID when calling the Screenshotbot CLI. The exact parameters depend on your platform (Android/iOS/Selenium). Let's work with a specific example. Let's say you're using the Phabricator for Jenkins plugin. This plugin will set up the DIFF_ID parameter on your jobs, and the job will be triggered by Harbormaster.

In this case you can pass the additional argument to the CLI:

~/screenshotbot/recorder ...
    --phabricator-diff-id "$DIFF_ID"
    ...

Getting notifications on Phabricator

If you've set everything right, you'll now get notified on every Phabricator diff that has chanes. Note that by default, we don't notify diffs that: