How to use Registrator.jl for private registry

Hi all :slight_smile:

I’m currently setting up a private registry for our company packages. I checked out LocalRegistry.jl and Registrator.jl. Seems like Registrator.jl is only used for the general registry though.

My requirements are:

  • I want to register packages from a subdir of a github repo
  • I want automated updates after something gets pushed to main and the version number increased.

Do you now any tutorial or resouces where I can learn that. Equaly nice would be a tutorial here.

Thanks a lot!

Getting that to work is certainly possible with LocalRegistry but is mostly a question of setting up CI jobs and authorizations. What git/CI environment are you using?

If it happens to be GitLab you can find some relevant information in
Julia and Gitlab self-hosted : a state-of-the-art? - #6 by GunnarFarneback and the rest of that thread.

We are using Github. Does that work similar?

Similar at a high level but the details are certainly different. I have only done this with GitLab and BitBucket.

One critical step that’s missing in LocalRegistry is to automatically create a PR to the registry. For GitLab that is supported with the create_gitlab_mr argument, but the technique used there is not applicable to GitHub and instead it needs to be done through GitHub API calls. The GitHub package can help with that. If you can figure out the details I’d be happy to add it as a package extension to LocalRegistry.

(Strictly speaking you don’t have to go through a PR for your private registry but could let LocalRegistry push directly to the default branch. If you do it like that you can ignore what I wrote above but you lose some flexibility like being able to run RegistryCI on the registry changes.)

Regardless what approach you use you will need to figure out the authentication needed for CI in a package repository to push to and possibly make a PR to the registry repository.

Just to say my company does use registrator for a private registry. It is a bit more complicated since you need an always-running server to host it, but it does work for private registries too.