Community Resources
Community Resources
Looking for install scripts, extensions, libraries, or plugins for Phabricator or Arcanist? Have something you want to share? Add a link here.
We imagine eventually having real support for listing and managing extensions and applications, see T5055 and T5447 for some discussion.
IMPORTANT: This page is primarily community-maintained and things linked here have not been vetted by the Phabricator upstream. They may not work at all, or may destroy all your data forever. Use these resources at your own risk!
NOTE: When creating a resource for sharing, please consider specifying a license; Some users are pretty pedantic about this, and they will not be able to use your gift without one.
Linters and Test Engines
- flarc: Arcanist extensions used at Freelancer.com.
- ESLint linter
- Hadolint linter
- PHP-CS-Fixer linter
- PHPStan linter
- Stylelint linter
- terraform fmt linter
- TSLint linter
- Custom XHPAST rules
- arcanist-extensions: additional testing and linting engines.
- Source: https://github.com/tagview/arcanist-extensions
- Features:
- Multi test engine: run tests using multiple test engines
- RSpec test engine: Ruby's RSpec (version 2 and above) test engine
- Rubocop lint engine: run the Rubocop linter on your Ruby projects
- TAP test engine: run any TAP compatible testing tool
- arcanist-support: additional testing and linting engines used by MET Norway
- Source: https://github.com/metno/arcanist-support
- Features:
- arc-install, arc-uninstall. arc-upgrade: Scripts to simplify installation of arcanist for users
- arc-clean: Script for deleting patch branches
- SBTTestEngine: Runs unit tests for Scala using SBT
- Foodcritic Linter: Runs Foodcritic for Chef cookbooks
- Google CppLint Linter: Fixed version of the Arcanist CPP linter
- Scalastyle Lint Engine: Runs Scalastyle linter
- arcanist-external-json-linter: external linters with first-class messages
- Source: https://github.com/bgamari/arcanist-external-json-linter
- A linter type allowing external linters to produce JSON-serialized violation messages
- clang-format-linter: A linter for C/C++/Objective-C.
- swift-linter: A linter for Swift code.
- xcode-unit-engine: A unit test engine for Xcode projects.
- proselint: A linter for prose.
- arc-tslint: A linter for typescript.
- arc-phpstan: A linter for phpstan.
- arcanist-elixir-support: Linter and unit testing engines for Arcanist
- Source: https://github.com/tolbrino/arcanist-elixir-support
- Open integration tasks: T9796, T9797
- arcanist-android-linter: Linter for Android xml and java based on gradle
- Source: https://github.com/DheerendraRathor/Arcanist-Android-Lint
- Features:
- Complete integration of checkstyle, pmd and findbugs
- A default configuration of Google checkstyle is included, it can be edited to include custom rules
- arcanist-linters: A collection of additional linters in use at Pinterest
- Source: https://github.com/pinterest/arcanist-linters
- License: Apache 2.0
- Linters:
- Apache Thrift - Lints for errors in Apache Thrift IDL (schema) files using the thrift compiler
- Black - Uses the Black opinionated code formatter to normalize the format of Python code.
- Checkstyle - Uses the Checkstyle tool to check Java code against a coding standard
- ESLint - Lints JavaScript and JSX files using ESLint.
- Flawfinder - Lints C/C++ source files using Flawfinder.
- Go Vet - Uses the Go vet command to lint for suspicious code constructs
- Prettier - Formats JavaScript using Prettier.
- Python Imports - Lints for illegal Python module imports
- Python isort - Lints Python imports using isort.
- Python Requirements - Ensures Python package requirements in requirements.txt files are sorted, unique, and pinned to specific versions
- arcanist-extensions-midje: Midje unit test support for Arcanist. Midje is a test framework for Clojure.
- Source: https://github.com/uhd-urz/arcanist-extensions-midje
- License: Apache 2.0
- arc-detekt-linter: Linter for Kotlin code based on Detekt.
- Source: https://github.com/moneybird/arc-detekt-linter
- License: Apache 2.0
- arcanist-htmlhint-linter: Simple htmlhint linter built by BisManOnline
- Source: https://github.com/BisManOnline/arcanist-htmlhint-linter
- License: Apache 2.0
Arcanist Workflows
- arcanist-owners: Adds an arc owners command that displays file ownership information
- Source: https://github.com/pinterest/arcanist-owners
- License: Apache 2.0
Phabricator Extensions
- Phlab: Phabricator extensions used at Freelancer.com:
- Source: https://github.com/freelancer/phlab
- Deadline custom field with reminders that trigger when a task's deadline is approaching
- Herald action to change view policies
- Prometheus metrics endpoint
- RocketChat integrations
- SES mail adapter that supports IAM credentials
- S3 file storage engine that supports IAM credentials
- PhabricatorBotLogger: Chatbot IRC Logging into Conpherence. PhabricatorBotLogger
- libphutil-haskell: various extensions for Haskell.org, possibly useful to the outside world.
- Source: https://github.com/haskell-infra/libphutil-haskell
- Features:
- Custom Remarkup: PhabricatorRemarkupGhcTracRule
- Custom Differential fields (in our case, to link Trac and Phab): DifferentialGhcTracField
- Custom Herald actions: SetTaskEditPolicyHeraldCustomAction and SetTaskViewPolicyHeraldCustomAction, which allow you to automatically assign 'Editable by' and 'Visible to' policies, as Global Maniphest Herald rules. The primary motivation is being able to email an address like security@phabricator.foobar.org, and have all emails sent to this address to have private visibility/editability automatically.
- Various Chatbot extensions for IRC:
- Automated logging into Phriction wikis for users: PhabricatorBotServerAdminLogHandler
- Custom IRC handlers for various messages: PhabricatorBotGhcTracHandler, and PhabricatorBotMiscGhcHandler
- libphutil-scrypt: support for scrypt based password storage
- Source: https://github.com/haskell-infra/libphutil-scrypt
- WARNING: To be deprecated by D10387
- libphutil-yubikey: adds Yubikey OTP support for Multi-Factor Authentication (MFA).
- Source: https://github.com/thoughtpolice/libphutil-yubikey
- NOTE: See T8787 for more information.
- libphutil-backblaze: adds Backblaze B2 file storage backend. Useful if you want S3, but you're super cheap.
- phabricator-azure: adds Azure Active Directory / Office 365 authentication providers
- Wikimedia phab-extensions: Miscellaneous Phabricator extensions maintained by the Wikimedia foundation. Note: some of these depend on hacks in Wikimedia's fork of Phabricator.
- PhabricatorMediaWikiAuthProvider: oAuth1 authentication providers: use your mediawiki to authenticate phabricator logins.
- MediaWikiUserpageCustomField: Adds a link from phabricator user profiles to the associated MediaWiki user page.
- CreatePolicyConduitAPIMethod: Create phabricator policy objects via conduit.
- PolicyQueryConduitAPIMethod: Find policy object details via conduit.
- CustomGithubDownloadLinks: Adds github download links to diffusion repositories that are configured with a valid (enabled/visible) Github remote URI.
- phabricator-antivandalism: a custom herald action which can disable accounts which make rapid edits to maniphest tasks.
- phabricator-sprint: Support for Sprints. Task points, Burndown charts.
- https://github.com/wikimedia/phabricator-extensions-Sprint - deprecated, previously maintained by WMF.
- https://github.com/bluehawk/phabricator-sprint - Original codebase.
- See also: T5051
- phabricator-sparkpost: adds an SparkPost outbound email adapter.
- Source: https://github.com/hiddeco/phabricator-sparkpost
- License: Apache 2.0
- AddSubscribersFromJIRAIssuesHeraldCustomAction: Herald action to CC all watchers from all JIRA tickets marked on a Revision.
- phabricator-tools: Phabricator helper scripts for backups, conduit interactions and extensions for general add-ons to phabricator.
- HeraldMoveSpacesExtension: Phabricator extension that teaches the Herald rule-bot about Spaces and how to set them.
- harbormaster-gocd-buildstep: Phabricator extension that adds GoCD build step to Harbormaster.
- phabricator-mail-xmpp: Mail adapter to send messages through XMPP (Jabber).
- Source: https://github.com/0/phabricator-mail-xmpp
- License: Apache 2.0
- Fancy Tables: Remarkup support for Tables with cell merging and cell background color.
- Provided as a patched Phabricator repository
- Source: https://github.com/Supermarches-Match/phabricator/tree/develop
- Kintaba phabricator extensions: Kintaba's extensions for phabricator.
- Source: https://github.com/Vaultio/phabricator-kintaba
- License: https://github.com/Vaultio/phabricator-kintaba/blob/master/LICENSE
- PhabricatorAzureBlobFileStorageEngine: Adds support for Azure Blob Storage.
- HarbormasterAzureDevopsBuildStepImplementation: Adds Azure Devops Harbormaster step.
Conduit Libraries
- python-phabricator: Python binding for Phabricator Conduit API
- Source and instructions: https://github.com/disqus/python-phabricator
- go-conduit: Go package for Phabricator Conduit API
- Docs (and import path): http://poehls.me/go-conduit
- Usage examples are in the README: https://github.com/jpoehls/go-conduit
- gonduit: Another Go library for Conduit
- Source and docs: https://github.com/etcinit/gonduit
- Phabricator.Conduit: C# library for Phabricator Conduit API
- Phabricator PHP API: Alternative PHP library
- Source and Documentation: https://github.com/Zolli/Phabricator-PHP-API/
- Ponduit: A Powershell client for Conduit
- Source and docs: https://github.com/OCram85/Ponduit/
- phabricator-d-api: D programming language bindings for Conduit
- Source and docs: https://github.com/epiphyte/phabricator-d-api/
- canduit: Node.js Phabricator Conduit API client
- Source and docs: https://github.com/uber/canduit
Integrations
- phabulous: A Phabricator bot for Slack
- Phabricator Jenkins Plugin: Play telephone with Jenkins while it builds your code
- git-phab: Git subcommand to support git-flow-style workflows
- Repository and README: https://phabricator.freedesktop.org/diffusion/GITPHAB/
- Phabricator on Microsoft Azure: Automated deployment of phabricator on a Ubuntu 16.04 VM in Microsoft Azure
- Repository and README: https://github.com/Azure/azure-quickstart-templates/tree/master/phabricator-on-ubuntu
- wuf2p (Webapp User Feedback to Phabricator): a web application plugin for collecting user feedback and sending it straight to Phabricator, creating a task in Maniphest complete with screenshot and detailed info
- Source: https://gitlab.com/simevo/wuf2p
- Keymetrics to Phabricator gateway: Turns Keymetrics errors and exceptions into new tasks in Phabricator
- Repository and README: https://github.com/sheershoff/keymetrics-phabricator-gateway
- Phatality: Kibana plugin for easily submitting log details from kibana directly into a Maniphest task form.
- vim-phabricator: Vim plugin for Phabricator and Arcanist that provides syntax highlighting, support for Fugitive's :Gbrowse command, and user/project completion in diff templates
- arc-vscode: Extension for Visual Studio Code.
Migration
- github-wiki-to-phriction: Python tool for migrating a GitHub wiki to Phriction, and a Pandoc script to output Remarkup.
- ManiphestIncludeCustomFieldsExcelFormat.php: An additional Excel export format which will include a task's custom fields
- Read the large comment at the beginning of the extension to understand its hazards/limitations
- Source: https://github.com/neandrake/phab-utils/tree/master/extensions
- Remarkup-ed messages: Translations of messages from popular (Java) tools into Remarkup.
- Currently Findbugs, soon PMD?
- https://github.com/avivey/remarkup-java
- Kanboard to tasks: semi-manual procedure + Python script for migrating tasks from Kanboard to Phabricator workboards
- Trello to Phabricator import tool: Set of python tools to extract info and cards from Trello and import them into Phabricator.
- Wikimedia to Phriction: Import Wikimedia-style wiki content.
Translations
- Up-to-date Simplified Chinese Translation and Translation Tools (80% coverage): https://github.com/arielyang/phabricator_zh_Hans
- Chinese: https://github.com/WuJiahu/phabricator/tree/master/src/infrastructure/internationalization/translation
- German/ Deutsch: P1792 (mainly Maniphest)
- Russian: https://github.com/believer-ufa/phabricator-russian
- Various languages in progress at translatewiki.net, php source: https://phabricator.wikimedia.org/source/phabricator-translations/
Security
- SELinux policies for Phabricator/Arcanist/Libphutil
Packaging
See also T4200
- Puppet module: A Puppet module for installing and configuring Phabricator. https://forge.puppet.com/joshuaspence/phabricator
- RHEL/Centos 6 packaging: integrated RPM management for Phabricator
- https://github.com/vinzent/phabricator
- See also: D10509
- Nix packages for Arcanist: official Nix and NixOS packages for the command line tool.
- See the source in nixpkgs.
- Updated bi-weekly (usually).
- Can be installed via nix-env -i arcanist
- Bash Script to Install Arcanist: A script written in shell commands to auto install Arcanist command line tool.
- See P1887
- Run by bash filename.sh to install in ~/.arc/. Or run as bash filename.sh -d /path/to/install/dir to pass custom directory for installation
- Chef Cookbook for Phabricator: Chef cookbook for installing and configuring phabricator
- Available on supermarket.chef.io
- See the source on github.
- Contributions are welcomed.
- Packages for Fedora, EL6, EL7
- Repositories in Fedora COPR
- Spec files, utility scripts, systemd unit files, etc.
- Packages are usually updated with new snapshots of the stable branches every couple of weeks
- EL6 and EL7 packages are built and updated but I don't use or test them
- Vagrant environment: Provides a basic installation to get Phabricator up and running using Vagrant
- OpenShift / Kubernetes deployment: Deploy a full Phabricator stack on Red Hat OpenShift Kubernetes clusters.
Apps
- iOS App Simple App (Extended Wrapper) for Phabricator
Browser Extensions
- group-phabricator-notifications: source, Firefox Extension, Chrome Extension
Administration Scripts
- CentOS 7 Service management/upgrading (with backups) and configurations for SSHD
- Ubuntu / Debian Service and SSH daemon management
Symbols
- P1785 Symbol update script from local clone of a repository.
- See also Symbol Docs
Training
On-boarding
- P1876 Script to verity the users are set up correctly with arc, arc token, and SSH keys.
- Short Presentation for reviewers-only (So they remember to hit submit).
Walkthroughs
Tags
None
Referenced Files
None
Tokens
- Last Author
- avivey
- Last Edited
- Apr 1 2021, 6:18 PM
Document Hierarchy
Document Hierarchy
Event Timeline
There are a very large number of changes, so older changes are hidden. Show Older Changes