Skip to main content

Pure python cli for Phabricator

Project description


A simple cli tool for Phabricator. Aims at being some sort of arcanist on steroids.


Preferably in a venv:

(venv) user@host:~/src/project$ pip install pyarcanist


The main cli entry point is the pyarc command:

(venv) user@host:~/src/project$ pyarc --help
Usage: pyarc [OPTIONS] COMMAND [ARGS]...

  Entry point

  -v, --verbose / --no-verbose
  -h, --host TEXT
  -t, --token TEXT
  --help                        Show this message and exit.

  diff          List Diffs
  send-message  Send a harbormaster message
  whoami        Gives informations on the current user

By default, it will use your ~/.arcrc file to get your Phabricator connection credentials, but you can also pass the --host or --token options.


This commands allows to query currently open Phabricator Diff objects (not only your Diff).

(venv) user@host:~/src/project$ pyarc diff --help
Usage: pyarc diff [OPTIONS]

  List Diffs

  -u, --mine / --all-users
  -A, --all-repos / --current-repo
  -s, --summary / --default
  --help                          Show this message and exit.

If it is executed from a directory which is a git repo corresponding to a Phabricator repository (a Diffusion oject), then the default behavior of the diff command is to display Diff objects for the current repo only (ie. --current-repo).

If it is executed in a directory that does not match any project in Phabricator, then all (open) Diff are returned by default (ie. --all-repos).

Note that the matching between the local git repository and the Phabricator Diffusion object if made on tracked remote repositories (git remote): it looks for a configured tracked repositories of the local git which URL corresponds to a public URI of one of the Phabricator Diffusion object.


(venv) user@host:~/src/project$ pyarc diff -As
Changes Planned  D617: Always output valid JSON-LD.
Accepted         D619: Translate authors from package.json

(venv) user@host:~/src/project$ pyarc diff -A
Needs Review     D617
Repo: swh-indexer (DCIDX)
Author: vlorentz
Created: 7 days ago
Modified: 38 minutes ago
  Always output valid JSON-LD.

  Our metadata extraction used to export a nested dict structure
  loosely based on JSON-LD with

  This diff makes it output proper JSON-LD data.

  Note that because of some issues (eg. and the impossibility to
  represent a software entity without a specific version), I removed
  `softwareRequirements` and `softwareSuggestions` from the output

  As a side-effect, it resolves T1289

  PS: Morane, don't review this diff today, it can wait until tomorrow :)

Needs Review     D619
Repo: swh-indexer (DCIDX)
Author: vlorentz
Created: 6 days ago
Modified: 33 minutes ago
  Translate authors from package.json

  This is an example of hardcoded translation that's impossible
  to do directly from the crosswalk table

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyarcanist-0.0.1.tar.gz (18.4 kB view hashes)

Uploaded Source

Built Distribution

pyarcanist-0.0.1-py3-none-any.whl (20.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page