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!
= Extensions =
== Arcanist ==
- **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_delete_patches: Script for deleting patch branches
- SBTTestEngine: Runs unit tests for Scala using SBT
- Scalastyle Lint Engine: Runs Scalastyle
- Foodcritic Linter: Runs Foodcritic for Chef cookbooks
- **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.
- Source: https://github.com/vhbit/clang-format-linter
== Phabricator ==
- **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](https://github.com/haskell-infra/libphutil-haskell/blob/master/src/extensions/markup/engine/remarkup/markuprule/PhabricatorRemarkupGhcTracRule.php)
- Custom Differential fields (in our case, to link [Trac](http://trac.edgewall.org) and Phab): [DifferentialGhcTracField](https://github.com/haskell-infra/libphutil-haskell/blob/master/src/extensions/differential/customfield/DifferentialGhcTracField.php)
- Custom Herald actions: [SetTaskEditPolicyHeraldCustomAction](https://github.com/haskell-infra/libphutil-haskell/blob/master/src/extensions/herald/customaction/SetTaskEditPolicyHeraldCustomAction.php) and [SetTaskViewPolicyHeraldCustomAction](https://github.com/haskell-infra/libphutil-haskell/blob/master/src/extensions/herald/customaction/SetTaskViewPolicyHeraldCustomAction.php), 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](https://github.com/haskell-infra/libphutil-haskell/blob/master/src/extensions/bot/handler/PhabricatorBotServerAdminLogHandler.php)
- Custom IRC handlers for various messages: [PhabricatorBotGhcTracHandler](https://github.com/haskell-infra/libphutil-haskell/blob/master/src/extensions/bot/handler/PhabricatorBotGhcTracHandler.php), and [PhabricatorBotMiscGhcHandler](https://github.com/haskell-infra/libphutil-haskell/blob/master/src/extensions/bot/handler/PhabricatorBotMiscGhcHandler.php)
- **libphutil-rackspace**: support for Rackspace Cloud files storage (Files), and Cloud Servers (Drydock)
- Source: https://github.com/haskell-infra/libphutil-rackspace
- NOTE: File storage should be reasonably stable at this point, but may have minor bugs.
- NOTE: Drydock integration is on hold at the moment and incomplete.
- **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 [[https://www.yubico.com/products/services-software/personalization-tools/yubikey-otp/ | Yubikey OTP ]] support for Multi-Factor Authentication (MFA).
- Source: https://github.com/thoughtpolice/libphutil-yubikey
- NOTE: See T8787 for more information.
- **phabricator-azure**: adds Azure Active Directory / Office 365 authentication providers
- https://github.com/tobyhughes/phabricator-azure
- WARNING: To be deprecated by D10297, D10298
- See also: T5899, T4256
- **phabricator-mediawiki**: adds MediaWiki oAuth1 authentication providers. The repository also includes custom fields for user profiles and other misc. Wikimedia-specific extensions.
- https://github.com/wikimedia/phabricator-extensions
- https://phabricator.wikimedia.org/diffusion/PHEX/
- **phabricator-sprint**: Support for Sprints. Task points, Burndown charts.
- https://github.com/wikimedia/phabricator-extensions-Sprint - Maintained by WMF.
- https://github.com/bluehawk/phabricator-sprint - Original codebase.
- See also: T5051
= Packaging =
- **RHEL/Centos 6 packaging**: integrated RPM management for Phabricator
- https://github.com/vinzent/phabricator
- See also: D10509, T4200
- **Nix packages for Arcanist**: //official// Nix and NixOS packages for the command line tool.
- See [the source in nixpkgs](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/tools/misc/arcanist/default.nix).
- 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
= Integrations =
- **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
- **phabulous**: A Phabricator bot for Slack
- Source: https://github.com/etcinit/phabulous
- **Phabricator.Conduit**: C# library for Phabricator Conduit API
- Source: https://github.com/hach-que/Phabricator.Conduit
- **Phabricator Jenkins Plugin**: Play telephone with Jenkins while it builds your code
- Homepage: https://wiki.jenkins-ci.org/display/JENKINS/Phabricator+Differential+Plugin
- **git-phab**: Git subcommand to integrate with phabricator.
- Repository and README: https://phabricator.freedesktop.org/diffusion/GITPHAB/
= Migration =
- **github-wiki-to-phriction**: Python tool for migrating a GitHub wiki to Phriction
- Source: https://github.com/aaron11496/github-wiki-to-phriction
- **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
= Translations =
- Chinese: https://github.com/WuJiahu/phabricator/tree/master/src/infrastructure/internationalization/translation
- German/ Deutsch: P1792 (mainly Maniphest)
= Security =
- **SELinux policies** for Phabricator/Arcanist/Libphutil
- https://github.com/vinzent/phabricator/tree/master/resources/selinux
= Administration Scripts =
== Phabricator ==
- **CentOS 7** Service management/upgrading (with backups) and configurations for SSHD
- https://github.com/neandrake/phab-utils
=== Symbols ===
- P1785 Symbol update script from local clone of a repository.
- See also [Symbol Docs](https://secure.phabricator.com/book/phabricator/article/diffusion_symbols/)
= Training =
== On-boarding ==
- P1876 Script to verity the users are set up correctly with arc, arc token, and SSH keys.
- Short [Presentation](https://docs.google.com/presentation/d/1BNdNMzuVYambeybgVETlTynU74uK47SKXrq7NzgUPFE) for reviewers-only (So they remember to hit submit).