Updating GitLab url parsing; fix authed list_refs#353
Updating GitLab url parsing; fix authed list_refs#353gaborcsardi merged 9 commits intor-lib:mainfrom
Conversation
|
Since GitLab can have arbitrarily nested projects and some alternative syntax would be needed to differentiate I appreciate that the current string style is quite brief, but maybe something more explicit would be a nice fallback? |
We push it down to the git protocol functions.
Will be pushed down to the git protocol.
|
Thanks! I changed this a bit to add auth to all git HTTP queries. There is two things to do still:
|
That is not great, because other tools will interpret the
Yes, this could work. |
|
Actually, some the git and gitlab tests are already "live", so we can update those later, and I am going to merge this now, after updating the docs. |
|
Thanks you again! |
# pak 0.8.0 * `pkg_deps()` now accepts a vector of package names. * The metadata cache now does not use source URLs for packages in `Archive` on Posit Package Manager repositories. This URLs may serve a different package, even a source package when the main URL for the same package serves a binary package. The alternative URLs are not needed on PPM, anyway, because PPM is in a consistent state w.r.t. metadata and package files (#623). * pak now supports `gitlab::` package sources better, by adding explicit syntax to specify subdirectories (r-lib/pkgdepends#353, @dgkf). * `gitlab::` and `git::` package sources now support git submodules if the `git-submodules` configuration option is set to `TRUE`. See `?"pak-config"` (r-lib/pkgdepends#354). * The new `?ignore-unavailable` parameter makes it easy to ignore soft dependencies that are unavailable (#606). * pak now automatically ignores soft dependencies that have an incompatible OS type (`OS_type` entry in `DESCRIPTION`) when installing packages. * `repo_add()` and the `ppm_*()` functions, e.g. `ppm_snapshots()`, now work again after the PPM API changes (r-lib/pkgcache#110, r-lib/pkgcache#115). # pak 0.7.2 * pak now supports using parameters for all packages with the `*=?<param>` form. E.g. `*=?source` installs all packages from source. * pak now supports R 4.4.0 again, and also Rtools44.
This PR is intended to fix #328 with a few other related fixes
Updates parsing for GitLab remotes, which currently is forgetting a
/between the host and "username". Unlike GitHub, GitLab allows arbitrary nesting of groups:username/repogroup/subgroup/subsubgroup/projectThis throws a wrench in the subdir parsing. To allow a subdir, I added a
/-/separator:group/subgroup/project/-/sub/dir@ref/-/is a reserved name used for other server paths, so there's no risk of conflict with project paths.Calls to
/info/refs?service=git-upload-packrequire authentication, which is currently ignored. I added this authentication toasync_git_list_refs_v2andasync_git_send_message_v2, necessary for solving package dependencies.Let me know if I'm on the right track, or if you think this is better solved some other way.