Phabricator

From Bitpost wiki
Revision as of 15:52, 26 March 2016 by M (talk | contribs)
WORKFLOW
Workflow columns Backlog => In Progress => Fixed
Create a task Click dropdown on Backlog, select Create Task.
Start a task Drag it from Backlog to In Progress, and change Priority to High (so that the CI dashboard shows the task).
Finish a task Drag it from In Progress to Done, and change Status to Resolved (so that the CI dashboard doesn't show the task).
Tips
If you are viewing a board by priority, and drag, the dropped task will have its priority automatically adjusted to fit in drag zone. This works great if you can drag a new item from Backlog to a spot above an existing In Progress item.

I changed the default task priority from "Needs Triage" (90) to "Normal" (50) to make my flow simpler. I don't need someone else to set the initial priority.

Natural and By-priority sorting BOTH maintain their specific orders. Fucking weird. NEVER USE NATURAL. Ever. You have to set sort by priority and save as default for new boards.

Wikipedia is done with Phabricator and is a great resource, for example their project management guidelines.

Maintenance
  • Stop phabricator (I usually ignore this step)
  • Update code
m@bitpost cd development/phabricator/libphutil && git pull
m@bitpost cd ../arcanist && git pull
m@bitpost cd ../phabricator && git pull
  • Upgrade the mysql schema
m@bitpost cd development/phabricator/phabricator
bin/storage upgrade
  • Restart phabricator
# restart apache
m@bitpost cd development/phabricator/phabricator
bin/phd start
Install
Installing Phabricator is as simple as any other LAMP installation. We grabbed the three primary git repos, here:
m@bitpost cd development/phabricator
git clone https://github.com/phacility/libphutil.git
git clone https://github.com/phacility/arcanist.git
git clone https://github.com/phacility/phabricator.git

Then set up an alias and directory in apache. Then a mysql user + db. Browse to the url to finish. Easy peasy.

API
The Phabricator API can be used to extract a query of tasks. You need to get a (permanent) auth certificate from arcanist:
m@bitpost cd development/phabricator/arcanist
bin/arc set-config default https://thedigitalage.org/
emacs .arcconfig # and set phabricator.uri to the same
bin/arc install-certificate

That will tell you to browse here. You'll get an "API Token" once you log in, eg cli-5sdfksomkhgvasdlfkwfelk or whatever (NOT that one).

Paste API Token from that page: cli-5fxsvztkshgvtc7ssdf
Writing ~/.arcrc...
SUCCESS!  API Token installed.

It then creates ~/.arcrc with the token, which is used by subsequent arc calls, like this:

Now you can use that in the API calls to authenticate, like this:

curl https://tdigitalage.org/api/maniphest.query -d api.token=cli-5fxsvztksdfsomkhgvczjtcdts 

Pretty easy to use once you have the initial bullshit done. It certainly isn't secure though.

bitpost.com uses the API to get a list of tasks. Generally, it's a really really bad setup though, as anyone can sniff out that auth token. Use ssl, for sure: https://bitpost.com. Maybe I should actually disable non-SSL bitpost.com... Actually the only viable solution is to do it server-side. Geesh. See bitpost.com/ci.php code for details.

View active tokens here:

https://thedigitalage.org/settings/panel/apitokens/