D5299: phabricator: fallback reading arcanist config files
Kwan (Ian Moody)
phabricator at mercurial-scm.org
Sun May 12 07:04:20 EDT 2019
Kwan added inline comments.
> philpep wrote in phabricator.py:175
> I'd be nice to cache the result of `readarcconfig` but I don't known how to implement this, any suggestion ?
Looks like annotating it with `@util.cachefunc` is enough?
> Kwan wrote in phabricator.py:217-222
> Something I realised with some testing is that this requires both .arcconfig and .arcrc, one can't rely on the repo's .arcconfig for the repo settings while using .hg/hgrc for the auth settings (or use hgrc for phab url with .arcrc for auth). Maybe it could instead do the following:
> hgrcurl = repo.ui.config(b'phabricator', b'url')
> arcurl, arctoken, __ = readarcconfig(repo)
> url = hgrcurl or arcurl
> if not url:
> res = [etc...]
> hgrctoken = None
> if res:
> hgrctoken = auth.get(b'token')
> token = hgrctoken or arctoken
> if not token:
> That way any mix of settings in hgrc or .arcconfig/.arcrc would work, with hgrc having precedence.
Although, this wouldn't work with changing phab instances in hgrc, and using .arcrc for the token, since `readarcconfig` would return the token for the original URL. An alternative would be having `readarcconfig` return a dict mapping hosts to tokens (with '/api/' stripped from the hosts), and then `readurltoken` does `token = hgrctoken or arctokens.get(url)`.
To: philpep, #hg-reviewers
Cc: Kwan, mharbison72, mercurial-devel
More information about the Mercurial-devel