• Douwe Maan's avatar
    Merge branch '24059-round-robin-repository-storage' into 'master' · 9c66b78c
    Douwe Maan authored
    Resolve "Introduce round-robin project creation to spread load over multiple shards"
    
    Allow multiple shards to be enabled in the admin settings page, balancing project creation across all enabled shards.
    
    * `f.select ..., multiple: true` isn't the most beautiful UI in the world, but switching to `collection_check_boxes` (or a facsimile thereof) isn't trivial
    * Should `pick_repository_storage` be a method of `ApplicationSetting`, or `Project`? It's going to accrete logic over time so perhaps it should be its own class already?
    * This is written to avoid the need for a database migration, so it is`serialize :repository_storage` without `, Array`. This is tested, but alternatives include:
      * Add a database migration
      * Write a custom Coder that will accept a String or Array in `load` and always `dump an Array.
    
    Closes #24059
    
    See merge request !7273
    Signed-off-by: default avatarRémy Coutable <remy@rymai.me>
    9c66b78c
project_spec.rb 54.3 KB