#14 Forge listing support

Open
opened 1 year ago by JustAnotherArchivist · 0 comments

Forges usually have ways of listing repositories, either globally or per user/organisation. codearchiver should have a way of listing those to archive forges in their entirety or subsections of them, e.g. codearchiver https://gitea.arpa.li/ or codearchiver https://gitea.arpa.li/JustAnotherArchivist. This would emit some data from the forge listing and run each discovered repository with the appropriate module (possibly with an option to skip that).

Software Heritage has implementations of listers for various forges: https://gitlab.softwareheritage.org/swh/devel/swh-lister

Implementing this would likely mean separate FooInstance, FooUser/FooOrganisation, and FooRepository modules. Note that these can’t be detected from the URL alone, even if you know the forge type. For example, GitLab does not allow for distinguishing users and repositories; a URL like https://gitlab.example.org/foo/bar could be an ‘subgroup’ (subunit of an organisation) bar of foo or a ‘project’ (~ repository).

Forges usually have ways of listing repositories, either globally or per user/organisation. codearchiver should have a way of listing those to archive forges in their entirety or subsections of them, e.g. `codearchiver https://gitea.arpa.li/` or `codearchiver https://gitea.arpa.li/JustAnotherArchivist`. This would emit some data from the forge listing and run each discovered repository with the appropriate module (possibly with an option to skip that). Software Heritage has implementations of listers for various forges: https://gitlab.softwareheritage.org/swh/devel/swh-lister Implementing this would likely mean separate `FooInstance`, `FooUser`/`FooOrganisation`, and `FooRepository` modules. Note that these can't be detected from the URL alone, even if you know the forge type. For example, GitLab does not allow for distinguishing users and repositories; a URL like `https://gitlab.example.org/foo/bar` could be an 'subgroup' (subunit of an organisation) `bar` of `foo` or a 'project' (~ repository).
JustAnotherArchivist added the
enhancement
label 1 year ago
Sign in to join this conversation.
No Milestone
No Assignees
1 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.