Skip to content

Add GitlabPages to SyncRemotesService

Steve Abrams requested to merge delivery2580-pages-sync-remotes-service into master

What does this MR do and why?

We are moving gitlab-pages to managed versioning. gitlab-com/gl-infra/delivery#2580 (closed) covers some of the last tasks needed in release-tools to finish this transition. One of the changes needed is once the new stable branch is automatically created by release-tools, it needs to be synced to other remotes (dev, security). This MR makes that update.

Here we update ReleaseTools::Services::SyncRemotesService and ReleaseTools::Security::SyncRemotesService to sync gitlab-pages. This update is behind a feature flag :pages_managed_versioning so it can be enabled at the same time as other changes implemented in gitlab-com/gl-infra/delivery#2580 (closed).

This is related to !2086 (merged) and !2087 (merged)

Screenshots

Dry running the two services updated in this MR:

~/workspace/gitlab-org/release-tools (delivery2580-pages-sync-remotes-service ✔) TEST='true' RELEASE_BOT_PRODUCTION_TOKEN=$TOKEN RELEASE_BOT_OPS_TOKEN=$OPS_TOKEN be pry --gem
[3] pry(main)> ReleaseTools::Services::SyncRemotesService.new(ReleaseTools::Version.new('15.8.0')).execute
2022-12-09 09:13:28.240251 D [dry-run] ReleaseTools::GitlabClient -- [HTTParty] [2022-12-09 09:13:28 -0700] 200 "GET https://gitlab.com/api/v4/projects/gitlab-org%2Fcharts%2Fgitlab/repository/tags" -
2022-12-09 09:13:28.648305 D [dry-run] ReleaseTools::GitlabClient -- [HTTParty] [2022-12-09 09:13:28 -0700] 200 "GET https://gitlab.com/api/v4/projects/gitlab-org%2Fcharts%2Fgitlab/repository/tags?id=gitlab-org%2Fcharts%2Fgitlab&order_by=updated&page=2&per_page=100&search=%5Ev&sort=desc" -
2022-12-09 09:13:29.145326 D [dry-run] ReleaseTools::GitlabClient -- [HTTParty] [2022-12-09 09:13:29 -0700] 200 "GET https://gitlab.com/api/v4/projects/gitlab-org%2Fcharts%2Fgitlab/repository/tags?id=gitlab-org%2Fcharts%2Fgitlab&order_by=updated&page=3&per_page=100&search=%5Ev&sort=desc" -
2022-12-09 09:13:29.547228 D [dry-run] ReleaseTools::GitlabClient -- [HTTParty] [2022-12-09 09:13:29 -0700] 200 "GET https://gitlab.com/api/v4/projects/gitlab-org%2Fcharts%2Fgitlab/repository/tags?id=gitlab-org%2Fcharts%2Fgitlab&order_by=updated&page=4&per_page=100&search=%5Ev&sort=desc" -
2022-12-09 09:13:29.959989 D [dry-run] ReleaseTools::GitlabClient -- [HTTParty] [2022-12-09 09:13:29 -0700] 200 "GET https://gitlab.com/api/v4/projects/gitlab-org%2Fcharts%2Fgitlab/repository/tags?id=gitlab-org%2Fcharts%2Fgitlab&order_by=updated&page=5&per_page=100&search=%5Ev&sort=desc" -
2022-12-09 09:13:29.964545 I [dry-run] ReleaseTools::Services::SyncRemotesService -- Syncing remotes -- {:project=>gitlab-org/gitlab-foss, :remotes=>[:canonical, :dev, :security]}
2022-12-09 09:13:29.964643 I [dry-run] ReleaseTools::Services::SyncRemotesService -- Syncing remotes -- {:project=>gitlab-org/gitlab, :remotes=>[:canonical, :dev, :security]}
2022-12-09 09:13:29.964840 I [dry-run] ReleaseTools::Services::SyncRemotesService -- Syncing remotes -- {:project=>gitlab-org/omnibus-gitlab, :remotes=>[:canonical, :dev, :security]}
2022-12-09 09:13:29.964878 I [dry-run] ReleaseTools::Services::SyncRemotesService -- Syncing remotes -- {:project=>gitlab-org/build/CNG, :remotes=>[:canonical, :security, :dev]}
2022-12-09 09:13:29.964910 I [dry-run] ReleaseTools::Services::SyncRemotesService -- Syncing remotes -- {:project=>gitlab-org/gitaly, :remotes=>[:canonical, :dev, :security]}
2022-12-09 09:13:29.964955 I [dry-run] ReleaseTools::Services::SyncRemotesService -- Syncing remotes -- {:project=>gitlab-org/charts/gitlab, :remotes=>[:canonical, :security, :dev]}
2022-12-09 09:13:29.964984 I [dry-run] ReleaseTools::Services::SyncRemotesService -- Syncing remotes -- {:project=>gitlab-org/gitlab-pages, :remotes=>[:canonical, :dev, :security]}
2022-12-09 09:13:29.965439 W [dry-run] ReleaseTools::RemoteRepository -- Pushes will be ignored because of TEST env
2022-12-09 09:13:55.150002 I [dry-run] ReleaseTools::Services::SyncRemotesService -- Fetching tag from dev -- {:project=>gitlab-org/gitlab-foss, :name=>"v15.8.0"}
2022-12-09 09:13:55.917050 W [dry-run] ReleaseTools::RemoteRepository -- Pushes will be ignored because of TEST env
2022-12-09 09:14:34.141082 I [dry-run] ReleaseTools::Services::SyncRemotesService -- Fetching tag from dev -- {:project=>gitlab-org/gitlab, :name=>"v15.8.0-ee"}
2022-12-09 09:14:34.711232 W [dry-run] ReleaseTools::RemoteRepository -- Pushes will be ignored because of TEST env
2022-12-09 09:14:37.289469 I [dry-run] ReleaseTools::Services::SyncRemotesService -- Fetching tag from dev -- {:project=>gitlab-org/omnibus-gitlab, :name=>"15.8.0+ee.0"}
2022-12-09 09:14:38.219180 I [dry-run] ReleaseTools::Services::SyncRemotesService -- Fetching tag from dev -- {:project=>gitlab-org/omnibus-gitlab, :name=>"15.8.0+ce.0"}
2022-12-09 09:14:39.240515 W [dry-run] ReleaseTools::RemoteRepository -- Pushes will be ignored because of TEST env
2022-12-09 09:14:41.022793 I [dry-run] ReleaseTools::Services::SyncRemotesService -- Fetching tag from dev -- {:project=>gitlab-org/build/CNG, :name=>"v15.8.0"}
2022-12-09 09:14:41.563224 I [dry-run] ReleaseTools::Services::SyncRemotesService -- Fetching tag from dev -- {:project=>gitlab-org/build/CNG, :name=>"v15.8.0-ee"}
2022-12-09 09:14:42.220856 I [dry-run] ReleaseTools::Services::SyncRemotesService -- Fetching tag from dev -- {:project=>gitlab-org/build/CNG, :name=>"v15.8.0-ubi8"}
2022-12-09 09:14:42.810274 I [dry-run] ReleaseTools::Services::SyncRemotesService -- Fetching tag from dev -- {:project=>gitlab-org/build/CNG, :name=>"v15.8.0-fips"}
2022-12-09 09:14:43.398079 W [dry-run] ReleaseTools::RemoteRepository -- Pushes will be ignored because of TEST env
2022-12-09 09:14:46.680322 I [dry-run] ReleaseTools::Services::SyncRemotesService -- Fetching tag from dev -- {:project=>gitlab-org/gitaly, :name=>"v15.8.0"}
2022-12-09 09:14:47.214896 W [dry-run] ReleaseTools::RemoteRepository -- Pushes will be ignored because of TEST env
2022-12-09 09:14:54.071827 I [dry-run] ReleaseTools::Services::SyncRemotesService -- Fetching tag from dev -- {:project=>gitlab-org/charts/gitlab, :name=>"v6.7.0"}
2022-12-09 09:14:54.598047 W [dry-run] ReleaseTools::RemoteRepository -- Pushes will be ignored because of TEST env
2022-12-09 09:14:56.149804 I [dry-run] ReleaseTools::Services::SyncRemotesService -- Fetching tag from dev -- {:project=>gitlab-org/gitlab-pages, :name=>"v15.8.0"}
=> ["v15.8.0"]
[4] pry(main)> ReleaseTools::Security::SyncRemotesService.new.execute
=> [gitlab-org/gitlab, gitlab-org/gitlab-foss, gitlab-org/omnibus-gitlab, gitlab-org/gitaly, gitlab-org/charts/gitlab, gitlab-org/cloud-native/gitlab-operator, gitlab-org/gitlab-pages]
[5] pry(main)> 2022-12-09 09:15:26.570126 I [dry-run] ReleaseTools::Security::SyncRemotesService -- Syncing branches -- {:project=>gitlab-org/gitlab, :branches=>["master"]}
2022-12-09 09:15:26.570318 I [dry-run] ReleaseTools::Security::SyncRemotesService -- Syncing remotes -- {:project=>gitlab-org/gitlab, :remotes=>[:canonical, :dev, :security]}
2022-12-09 09:15:26.572256 I [dry-run] ReleaseTools::Security::SyncRemotesService -- Syncing branches -- {:project=>gitlab-org/gitlab-foss, :branches=>["master"]}
2022-12-09 09:15:26.572271 I [dry-run] ReleaseTools::Security::SyncRemotesService -- Syncing remotes -- {:project=>gitlab-org/gitlab-foss, :remotes=>[:canonical, :dev, :security]}
2022-12-09 09:15:26.572297 I [dry-run] ReleaseTools::Security::SyncRemotesService -- Syncing branches -- {:project=>gitlab-org/omnibus-gitlab, :branches=>["master"]}
2022-12-09 09:15:26.572444 I [dry-run] ReleaseTools::Security::SyncRemotesService -- Syncing remotes -- {:project=>gitlab-org/omnibus-gitlab, :remotes=>[:canonical, :dev, :security]}
2022-12-09 09:15:26.572456 I [dry-run] ReleaseTools::Security::SyncRemotesService -- Syncing branches -- {:project=>gitlab-org/gitaly, :branches=>["master"]}
2022-12-09 09:15:26.572468 I [dry-run] ReleaseTools::Security::SyncRemotesService -- Syncing remotes -- {:project=>gitlab-org/gitaly, :remotes=>[:canonical, :dev, :security]}
2022-12-09 09:15:26.572479 I [dry-run] ReleaseTools::Security::SyncRemotesService -- Syncing branches -- {:project=>gitlab-org/charts/gitlab, :branches=>["master"]}
2022-12-09 09:15:26.572525 I [dry-run] ReleaseTools::Security::SyncRemotesService -- Syncing remotes -- {:project=>gitlab-org/charts/gitlab, :remotes=>[:canonical, :security, :dev]}
2022-12-09 09:15:26.572549 I [dry-run] ReleaseTools::Security::SyncRemotesService -- Syncing branches -- {:project=>gitlab-org/cloud-native/gitlab-operator, :branches=>["master"]}
2022-12-09 09:15:26.572561 I [dry-run] ReleaseTools::Security::SyncRemotesService -- Syncing remotes -- {:project=>gitlab-org/cloud-native/gitlab-operator, :remotes=>[:canonical, :dev, :security]}
2022-12-09 09:15:26.572574 I [dry-run] ReleaseTools::Security::SyncRemotesService -- Syncing branches -- {:project=>gitlab-org/gitlab-pages, :branches=>["master"]}
2022-12-09 09:15:26.572584 I [dry-run] ReleaseTools::Security::SyncRemotesService -- Syncing remotes -- {:project=>gitlab-org/gitlab-pages, :remotes=>[:canonical, :dev, :security]}

Note if you want to run this locally, you will need to enable the :pages_managed_versioning feature flag or comment it out from the code before running.

Author Check-list

  • [-] Has documentation been updated?
Edited by Steve Abrams

Merge request reports