JuliaRegistries / Registrator.jl

Julia package registration bot
https://julialang.org/packages
Other
210 stars 47 forks source link

Detailed workflow to start self-hosted Registrator? #421

Open sairus7 opened 11 months ago

sairus7 commented 11 months ago

Hi guys, I have a question on how should I automate github releases, git tags and versions registered for private Julia packages and registry?

First workflow:

  1. Package author changes Project.toml version
  2. Github Action triggered, that runs Julia with LocatRegistry that makes register, git tag and github release

Second workflow:

  1. Write commands for registrator bot in issues and PRs
  2. TagBot.yml action triggers and makes git tag and github release

For the first workflow, I need to:

  1. Add one custom github action for each private repo.

For the second option I need (to learn how) to:

  1. Self-host and configure Registrator for private repos.
  2. Create Github App and register it.
  3. Add TagBot.yml for each private package repo.

Looks like first workflow is simpler, but maybe it's very easy to use the second one? The problem is, I don't get the exact workflow from this docs, there are just some scattered hints: https://juliaregistries.github.io/Registrator.jl/stable/hosting/#Private-packages-and-registries-1

For now I did the following:

  1. Forked https://github.com/JuliaRegistries/Registrator.jl into my github org
  2. Cloned it into my github self-hosted runner machine
  3. Changed disable_private_registrations to true
  4. ... Which github user should I add in configuration file? I see empty user entries in config.regservice.toml and config.commentbot.toml files along with emal, token, secret. Where should I get them?
  5. ... Where should I control components of registrator?
  6. Run build.sh that builds docker container.
  7. ... Just start docker container? How should I convert/connect it to Github App?
  8. ... How should I install the GitHub App on the repository, and which repo - private registry, or each private package?