D7935: phabricator: use .arcconfig for `phabricator.url` if not set locally
mharbison72 (Matt Harbison)
phabricator at mercurial-scm.org
Fri Jan 17 22:47:40 UTC 2020
mharbison72 created this revision.
Herald added subscribers: mercurial-devel, Kwan.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
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
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D7935
AFFECTED FILES
.arcconfig
hgext/phabricator.py
tests/test-phabricator.t
CHANGE DETAILS
diff --git a/tests/test-phabricator.t b/tests/test-phabricator.t
--- a/tests/test-phabricator.t
+++ b/tests/test-phabricator.t
@@ -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
diff --git a/hgext/phabricator.py b/hgext/phabricator.py
--- a/hgext/phabricator.py
+++ b/hgext/phabricator.py
@@ -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
diff --git a/.arcconfig b/.arcconfig
--- a/.arcconfig
+++ b/.arcconfig
@@ -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:.^"
To: mharbison72, #hg-reviewers
Cc: Kwan, mercurial-devel
More information about the Mercurial-devel
mailing list