Page MenuHome

BlenderID support in Phabricator
Open, NormalPublic

Description

There are two instances of the integration:

  • Support BlenderID OAuth2 login in phabricator.
  • Support BlenderID badge system

More information needed.

Details

Type
To Do

Related Objects

Event Timeline

i have started to integrate the BlenderID OAuth2 for phabricator. you should be able to see something in the following days

Hi Frederic. Francesco has mentioned someone working on it. Could you give a bit more detail on that and how far you got already?

Good morning Dalai! At the moment I m testing the OAuth2 login communication between Phabricator and Blender ID. It seems to be pretty straight forward as its well implemented on both side. I m actually spending more time setting things up.
In Phabricator, i m simply extending the PhabricatorOAuth2AuthProvider class, which handle all the work.
Right now, as Blender ID require an https return URI, i have to change my local phabricator to https.
Implementing the badge system will required more coding. I have still not had a look at it, thats why the OAuth2 login is a good warm up for me :)
at the moment, I can only work a couple hours a day for Blender.

Frederic (TaOuch) added a comment.EditedSun, Sep 1, 5:06 PM

HI. i have couple of questions

  • in order to have phabricator running, it needs also arcanist and libphutil. in the git.blender i see only Phabricator. i tried to used arcanist and libphutil from Phacility but then i get a missmatch version. so for now i using the one from Phacility, but what shall i do to make the one from git.blender work?
  • i get my app authorized by my local blender id. then Phabricator tries to query api/me, but my local blender id throw an error,

AttributeError: 'AnonymousUser' object has no attribute 'roles'

here is an example of the URI
http://id.local:8000/api/me?access_token=dkM1nazOTk2GR57hxCHMgy7XKho9Zb

i get same error in either curl or postman.
from the browser where i m logged it returns a nice JSON

  • the same access token works for many users. the browser returns me the data of the user which is logged. i thought an access token was tight to a user ... ?

The Phabricator repository indeed doesn't have the arcanist and libphutil as submodule. You need to clone those repositories as per Phabricator installation guide, then checkout the following sha1s:

arcanist: 7329bc7c32b995a7dce0319723857cbdf4f95a91
libphutil: ada64585035e8fbdf5d0dd6abfb6c13e6b160b7d

Installation doc: https://secure.phabricator.com/book/phabricator/article/installation_guide/ (under Installing Required Components)

thanks. it works now
in order to have a new OAuth2 provider in Phabricator, i have to add a class also in lipphutil

'PhutilBlenderIDAuthAdapter' => 'auth/PhutilBlenderIDAuthAdapter.php'

The custom code is to be places under src/extensions folder. We already have custom apps for buildbot and documentation integration.

Also, you don't need to manually add phutil library map, use arc liberate for this.

For the badge system I would imagine we would use existing Phabricator's badges, and some cronjob type of a thing to synchronize those from Blender ID using Conduit API. At least that's what seemed most clean approach when we've looked into this with @Francesco Siddi (fsiddi).

thanks. src/extensions works like a charm