Skip to content
Eduardo Trujillo edited this page Feb 20, 2017 · 3 revisions

Since Phabulous 3.0, it is possible to have additional integrations between Slack and Phabricator. This is done through a combination of a Phabricator extension, which provides additional Conduit API methods, and a Phabulous module called extension which makes use of these API methods. This allows Phabulous to:

  • Mention users by the Slack username when the summon command is used.
  • Lookup a Slack username by their Phabricator username.
  • Lookup a Phabricator username by their Slack username.

NOTE: The extension is somewhat experimental. Use at your own risk.

Requirements

Setup

Step 1: Upgrade: Begin by upgrading your Phabricator instance if it is older than 2016 Week 38.

Step 2: Install the extension

  • SSH or login into your Phabricator server and navigate to the directory where your Phabricator install is located.

For example, if our installed was in a directory called websites, we want to cd websites, not cd websites/phabricator:

.
└── websites
    └── phabricator
  • Clone the extension into this directory: git clone https://phabricator.chromabits.com/diffusion/PHPH/phabricator-phabulous.git:
.
└── websites
    ├── phabricator
    └── phabricator-phabulous
  • Edit your phabricator/conf/local/local.json and add the Phabulous library:
{
  //... Other settings
  "load-libraries": {
     "phabulous": "/path/to/websites/phabricator-phabulous/src"
  }
}

Step 4: Load the extension module in Phabulous by adding a - extension entry to the server.modules key in config/main.yaml:

server:
  modules:
    - core
    - extension

Step 5: Add a Slack authentication provider, so your user can link their Phabricator and Slack accounts: https://phabricator.website.cool/auth/.

NOTE: Users should login with the same Slack organization the bot is running on. e.g. If the user links an account from examplea.slack.com, and the bot is running on exampleb.slack.com, it won't be able to find the account.

Troubleshooting

How do I confirm the extension is loaded?

image

Clone this wiki locally