Skip to content
Snippets Groups Projects
Unverified Commit 9b042624 authored by Eduardo Trujillo's avatar Eduardo Trujillo
Browse files

feat(posts): Add post on Phabulous 3

parent d7ebfa21
No related branches found
No related tags found
No related merge requests found
images/posts/phabulous3.png

223 KiB

---
title: Phabulous 3
date: Sun Mar 05 20:36:38 UTC 2017
author: Eduardo Trujillo
uuid: 1b952356-47e2-40aa-a689-4604819d38ae
---
**Phabulous** is a server written in Go capable of receiving event
notifications from [Phabricator][phab], a suite of developer tools and forward
them to a [Slack][slack] community, while also providing additional
functionality through a bot interface.
![You can interact with Phabulous over chat messages](/images/posts/phabulous3.png)
The project started while I was working at [Seller Labs][sl] and Phabricator
was their repository hosting tool. We mainly wanted to have better integration
with Slack, just like GitHub and Bitbucket had.
Over time, Seller Labs migrated to GitHub and other tools, so development on
Phabulous slowed down a bit since I wasn't using it on a daily basis any more.
However, this does not mean the project is dead, I've quietly been finding some
spare time to work on improving Phabulous, and it has received a few
contributions through pull requests.
I recently landed a large refactor of the project which should make future
contribution and extensions easier. I've reorganized how the code is structured
to make better use of Go interfaces.
In a perfect world, I would have enough time to write an extensive test suite
for the project, but given my limited time, I've only been able to cover
certain simple part of the project. The transition to interfaces has allowed me
to improve the coverage of the project since dependencies can now be easily
mocked.
Another side effect that came naturally from this transition was the increased
modularity of the code. Want to implement a connector for a different chat
protocol? Or do you want to add a new command? Just implement the interfaces.
While still technically in beta, I'm happy to say that Phabulous has reached
v3.0.0. With this new release, you can expect the following new features:
- **Experimental support for IRC**: The bot is now able to connect and work
over IRC networks. Functionality is almost on-par with what is available on
Slack.
- **Modules:** Commands and functionality are now split into modules. You can
enable/disable them in the configuration file, as well as implementing your
own modules when forking the project.
- **Improved integration between Slack and Phabricator:** Phabricator added a
new authentication provider that allows you to sign in with your Slack
account. Phabulous makes use of this new integration with a new extension.
This extension allows the bot to lookup Slack account IDs over the Conduit
API, which means the bot can properly mention users on the chat by using
their Slack username rather than their Phabricator username.
- **Summon improvements:** The summon command can now expand project members if
a project is assigned as a reviewer of a revision. Additionally, the lookup
algorithm has been optimized to perform less requests on the Conduit API.
- Many other small fixes and improvements.
You can get the latest version of the bot by using [Docker][1] or by
downloading the latest release on [GitHub][2].
[phab]: https://www.phacility.com
[sl]: https://sellerlabs.com
[slack]: https://slack.com
[1]: https://github.com/etcinit/phabulous/wiki/Docker
[2]: https://github.com/etcinit/phabulous/releases
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment