Mercurial > hg
changeset 44128:ff396501e841
phabricator: use .arcconfig for `phabricator.url` if not set locally
This setting is also per repo; see the previous commit for details.
The existing `conduit_uri` setting is the previous name of `phabricator.uri`[1]
and while it could easily be queried before the latter for compatibility, the
config in this repo has '/api' appended. That's already done in `callconduit()`,
which would clearly end up giving the wrong result. It looks like the path of
the URL is now ignored in user configs[2], so add the modern setting without it
to this repo's .arcconfig.
Sadly, we still need to have contributors configure `auth.hg.phabtoken` (and
therefore `auth.hg.prefix` to link it to `phabricator.url`) in order to submit
patches, but at least now it's localized to a single section.
[1] https://secure.phabricator.com/book/phabricator/article/arcanist_new_project/
[2] https://github.com/phacility/arcanist/blob/cc850163f30c4697e925df0d6212469679600a2c/scripts/arcanist.php#L271
Differential Revision: https://phab.mercurial-scm.org/D7935
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Fri, 17 Jan 2020 16:56:49 -0500 |
parents | 59b3fe1e2021 |
children | 84a0102c05c7 baa4e7fdfd47 |
files | .arcconfig hgext/phabricator.py tests/test-phabricator.t |
diffstat | 3 files changed, 11 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/.arcconfig Fri Jan 17 14:21:40 2020 -0500 +++ b/.arcconfig Fri Jan 17 16:56:49 2020 -0500 @@ -1,5 +1,6 @@ { "conduit_uri": "https://phab.mercurial-scm.org/api", + "phabricator.uri": "https://phab.mercurial-scm.org/", "repository.callsign": "HG", "arc.land.onto.default": "@", "base": "hg:.^"
--- a/hgext/phabricator.py Fri Jan 17 14:21:40 2020 -0500 +++ b/hgext/phabricator.py Fri Jan 17 16:56:49 2020 -0500 @@ -178,11 +178,16 @@ except IOError: pass + cfg = util.sortdict() + if b"repository.callsign" in arcconfig: - ui.applyconfig( - {(b"phabricator", b"callsign"): arcconfig[b"repository.callsign"]}, - source=wdirvfs.join(b".arcconfig"), - ) + cfg[(b"phabricator", b"callsign")] = arcconfig[b"repository.callsign"] + + if b"phabricator.uri" in arcconfig: + cfg[(b"phabricator", b"url")] = arcconfig[b"phabricator.uri"] + + if cfg: + ui.applyconfig(cfg, source=wdirvfs.join(b".arcconfig")) return orig(ui, wdirvfs, hgvfs, requirements) or result # Load .hg/hgrc
--- a/tests/test-phabricator.t Fri Jan 17 14:21:40 2020 -0500 +++ b/tests/test-phabricator.t Fri Jan 17 16:56:49 2020 -0500 @@ -228,8 +228,8 @@ $ mv .hg/hgrc .hg/hgrc.bak $ hg config phabricator --debug read config from: */.hgrc (glob) - */.hgrc:*: phabricator.url=global (glob) $TESTTMP/repo/.arcconfig: phabricator.callsign=HG + $TESTTMP/repo/.arcconfig: phabricator.url=https://phab.mercurial-scm.org/ But it doesn't override local config $ cat >> .hg/hgrc << EOF