Skip to content

Conversation

palkerecsenyi
Copy link
Member

Closes #188


  • Created a pair of abstract (ABC) classes to represent all information and functionality specific to indivudal VCS providers. The abstract methods take inputs and return outputs that are fully generic, using a set of new 'generic models'. Provider implementations are responsible for mapping API data to/from these models. The implemented methods of this pair of classes should not make any calls to the DB in order to keep responsibilities clearly separated and prevent unexpected behaviour.

  • Added provider implementations for GitHub and GitLab. For GitHub, much of the existing code was kept with some small changes. For GitLab, some code was taken (with permission to relicense under MIT) from https://codebase.helmholtz.cloud/rodare/invenio-gitlab.

  • This commit on its own is UNRELEASABLE. We will merge multiple commits related to the VCS upgrade into the vcs-staging branch and then merge them all into master once we have a fully release-ready prototype. At that point, we will create a squash commit.

* Created a pair of abstract (ABC) classes to represent all information
and functionality specific to indivudal VCS providers. The abstract
methods take inputs and return outputs that are fully generic, using a
set of new 'generic models'. Provider implementations are responsible
for mapping API data to/from these models. The implemented methods of
this pair of classes should not make any calls to the DB in order to
keep responsibilities clearly separated and prevent unexpected
behaviour.

* Added provider implementations for GitHub and GitLab. For GitHub, much
of the existing code was kept with some small changes. For GitLab, some
code was taken (with permission to relicense under MIT) from
https://codebase.helmholtz.cloud/rodare/invenio-gitlab.

* This commit on its own is UNRELEASABLE. We will merge multiple commits
related to the VCS upgrade into the `vcs-staging` branch and then merge
them all into `master` once we have a fully release-ready prototype. At
that point, we will create a squash commit.
@palkerecsenyi palkerecsenyi changed the title WIP: feat(vcs): generic provider interface + contrib implementations feat(vcs): generic provider interface + contrib implementations Sep 25, 2025
@palkerecsenyi palkerecsenyi linked an issue Sep 25, 2025 that may be closed by this pull request
13 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Make invenio-github support other VCS providers

1 participant