Galaxy: Determine scope of supporting private repos

Created on 7 Nov 2017  路  6Comments  路  Source: ansible/galaxy

Figure out what work needs to be done, and maybe start a POC.

prioritlow

Most helpful comment

As @gregdek suggested we focus first on adding GitLab support, which will allow decoupling Galaxy from GitHub.

Adding GitLab support will require the following changes in Galaxy and Ansible projects:

  1. Authentication:

    • We need to add support of multiple social providers (at least GitLab) and allow user to add multiple social provides to his account.

  2. Data model:

    • Currently Galaxy data model is GitHub specific, we have to adjust our database and search schema to support GitLab as well. However since GitLab is quite similar to GitHub in terms of repositories, stars, forks, etc. Perfect scenario is to make data model extendable to simplify adding more data providers.

  3. Frontend:

    • User account page. Allow user to login with multiple social providers and add additional ones to his profile. See GitLab user profile page for example.

  4. ansible-galaxy client:

    • Role download URL template is hardcoded inside ansible-galaxy source code. It should be retrieved from Galaxy API.

    • Galaxy client uses GitHub credentials to authenticate. Client authentication should be provider-agnostic or support multiple providers.

  5. Galaxy API:

    • Provide download endpoint (e.g. URL) in existing API or implement special API endpoint for download.

    • Provider-agnostic authentication. Use can have only GitLab or GitHub account or both together. Galaxy API authentication should not depend on external provider.

All 6 comments

Private repos can mean several things:

  1. private repositories on GitHub.com
  2. private git server
  3. private GitHub enterprise
  4. It could also mean that someone wants to pull content in form GitLab or some other SCM.

Deliverables for this issue are:

  1. Write-up on changes needed to pull private repositories from GitHub.com and any possible issues/questions that arise from introducing private repos (i.e. authentication, access control, etc.)
  2. Write-up on changes needed to pull content from private git server and any possible issues/questions.
  3. Write-up on requirements to pull content from GitLab and any possible issues/questions.

As @gregdek suggested we focus first on adding GitLab support, which will allow decoupling Galaxy from GitHub.

Adding GitLab support will require the following changes in Galaxy and Ansible projects:

  1. Authentication:

    • We need to add support of multiple social providers (at least GitLab) and allow user to add multiple social provides to his account.

  2. Data model:

    • Currently Galaxy data model is GitHub specific, we have to adjust our database and search schema to support GitLab as well. However since GitLab is quite similar to GitHub in terms of repositories, stars, forks, etc. Perfect scenario is to make data model extendable to simplify adding more data providers.

  3. Frontend:

    • User account page. Allow user to login with multiple social providers and add additional ones to his profile. See GitLab user profile page for example.

  4. ansible-galaxy client:

    • Role download URL template is hardcoded inside ansible-galaxy source code. It should be retrieved from Galaxy API.

    • Galaxy client uses GitHub credentials to authenticate. Client authentication should be provider-agnostic or support multiple providers.

  5. Galaxy API:

    • Provide download endpoint (e.g. URL) in existing API or implement special API endpoint for download.

    • Provider-agnostic authentication. Use can have only GitLab or GitHub account or both together. Galaxy API authentication should not depend on external provider.

We have a private gitlab enterprise instance and I would really, really love to be able to have a private ansible galaxy instance pull stuff from our gitlab.
I can't help code-wise, but I can put you in contact with Gitlab Support in case you have questions.

Hello @chouseknecht, do you have any updates regarding this enhancement?

Hello @chouseknecht , Is there any plan to implement this in near future?

At least via collection this may be solved indirectly. :/

Was this page helpful?
0 / 5 - 0 ratings

Related issues

gustavomcarmo picture gustavomcarmo  路  7Comments

robertdebock picture robertdebock  路  7Comments

chouseknecht picture chouseknecht  路  3Comments

marcossegovia picture marcossegovia  路  6Comments

cfawcett82 picture cfawcett82  路  4Comments