If the tags can be considered equal to releases, then it should be non-trivial to implement packages, versions, and dependencies. The username should be a requirement similar to the universe for R-universe.
Side note, check other version control systems, maybe they are implementable too?
Branch name is required to extract DESCRIPTION, which is needed for both version and dependencies, but it is possible to try and guess branch name first (master or main) and only make query to user repo data for main branch name if no success. If DESCRIPTION not found even then, throw an error and suggest making an issue (maybe DESCRIPTION is in a different path?).
It is also possible to save pagination data when reading repos for a user. The first reading must be done from the first page, as we don't know how many pages there are. However, when searching for e.g. main branch name of a repository, we could stop iterating through pages after finding the package. We'd have to keep track of page read time (perhaps use page as cache path parameter?).