Phabricator API Wrapper for Ruby.
- [Install Phabricator Arcanist] (http://www.phabricator.com/docs/phabricator/article/Arcanist_User_Guide.html#installing-arcanist).
- Launch
arc install-certificateand follow instructions. You must have~/.arcrcafter this step. - Clone this repo with
$ git clone git@github.com:Melevir/ruby-phabricator.git.
In your code import wrapper.rb and use Phabricator API with make_api_call method. For example:
commits = ["rPRJc58eef262b497647bdec510c2ca2dcbd15f9d4e5",]
commit_info = make_api_call 'diffusion.getcommits', {"commits" => commits}
commit_message = commit_info['result'].values[0]['commitMessage']
puts commit_messageShortcuts are sets of commnds that covers most usual user cases.
Avalible shortcuts:
Returns statuses and phabricator urls of given commit.
Usage:
require 'ruby-phabricator/shortcuts.rb'
project_sid = 'MYPRJ' # Phabricator project slug
changesets = [
'de21b90bfac6cf0cf71593d5b2feca05131b1f88',
'ebc0730753794f6266e94f3329d693adb71ab583'
] # commit's hashes, which statuses you need
arcrc_path = File.expand_path('./.arcrc') # Path to .arcrc file
data = get_commit_status project_sid, changesets, arcrc_path
commit1_status = data['de21b90bfac6cf0cf71593d5b2feca05131b1f88']['status'] # string representation of commit's status, e.g. 'accepted' or 'concerned'
commit2_url = data['ebc0730753794f6266e94f3329d693adb71ab583']['url'] # url to phabricator's page of the commitReturns list of branches, that contain specified commit. This can't be done with Conduit, so the info is extracted from direct request to Phabricator page. It can be rather slow and requires additional auth data (username and cookie value):
require 'ruby-phabricator/shortcuts.rb'
project_sid = 'MYPRJ' # Phabricator project slug
changesets = [
'de21b90bfac6cf0cf71593d5b2feca05131b1f88',
'ebc0730753794f6266e94f3329d693adb71ab583'
] # commit's hashes, which branches you need
arcrc_path = File.expand_path('./.arcrc') # Path to .arcrc file
login = 'John'
auth_cookie = 'some_long_auth_hash'
branches = get_commits_branches project_sid, changesets, arcrc_path, login, auth_cookie_value
commit1_branches = branches['de21b90bfac6cf0cf71593d5b2feca05131b1f88'] # list of branches namesphabricator.rb provides command-line interface to make_api_call method. Sample usage:
$ cd /somewhere/ruby-phabricator/
$ ruby ./phabricator.rb conduit.ping
{"result"=>"dev", "error_code"=>nil, "error_info"=>nil}
$ ruby ./phabricator.rb --data='{"name": "PRJ"}' arcanist.projectinfo
{"result"=>nil, "error_code"=>"ERR-BAD-ARCANIST-PROJECT", "error_info"=>"No such project exists."}
- More shortcut functions
- Wrap as gem

