Misc #21628
Updated by k0kubun (Takashi Kokubun) 1 day ago
## Announcement
We will change the way default gems are synchronized to ruby/ruby.
* **Before**: Push to gem repository → webhook.cgi → git.ruby-lang.org pushes to ruby/ruby
* **After**: Push to gem repository → GitHub Actions on gem repository → GitHub Actions on ruby/ruby pushes to ruby/ruby
## Background
* The apache2 server for https://git.ruby-lang.org has been taken down because it has been under DDoS attacks and we couldn't handle it. As a result, its webhook.cgi is no longer online.
* It was hard for default gem maintainers to notice sync failures, look at their logs, and fix them.
* Moving the implementation to GitHub Actions would make them more visible and accessible for the maintainers.
## Operations
To set up sync from ruby/xxx to ruby/ruby, you need to do the following operations:
1. [Optional] Remove `https://git.ruby-lang.org/webhook` from Settings > Webhooks if it's currently set.
2. On Settings > Secrets and variables > Actions > Organization secrets, make sure the repository has access to `RUBY_SYNC_DEFAULT_GEMS_PRIVATE_KEY`
* Consult @hsbt if it's not visible for the repository. "ruby-sync-default-gems GitHub App Private Key" is managed under the "Ruby core team" 1Password vault.
3. Add this GitHub Actions workflow [.github/workflows/sync-ruby.yml](https://github.com/ruby/erb/blob/5866284586ae56235f6113b3b310e604380e8896/.github/workflows/sync-ruby.yml) to the repository.
* Change `on.push.branches` from `master` to `main` if the default branch is `main`.