Confusing UX when trying to add a group runner to a specific project outside a group
Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.
Summary
On the Runners page it seems to be possible to add group runners to a specific project (outside that group).
However, after clicking the button, you simply get a 500 error message.
If that's something that shouldn't be made possible, the button should either be grayed out, or filtered in first place, with a note about why it's filtered.
Steps to reproduce
- Create a GitLab CI runner inside a specific group and a project inside
- Forked the project into your personal space
- Try to add the recently created Runner to that personal fork
- Boom
Relevant logs and/or screenshots
==> /var/log/gitlab/gitlab-rails/production.log <==
Started POST "/admin/projects/fklink/foo/runner_projects" for 185.104.140.104 at 2018-08-28 11:59:30 +0200
Processing by Admin::RunnerProjectsController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"[FILTERED]", "runner_project"=>{"runner_id"=>"3"}, "namespace_id"=>"fklink", "project_id"=>"foo"}
Completed 500 Internal Server Error in 21ms (ActiveRecord: 3.8ms)
==> /var/log/gitlab/gitlab-rails/production_json.log <==
{"method":"POST","path":"/admin/projects/fklink/foo/runner_projects","format":"html","controller":"Admin::RunnerProjectsController","action":"create","status":500,"error":"ArgumentError: Transitioning a group runner to a project runner is not supported","duration":22.71,"view":0.0,"db":3.84,"time":"2018-08-28T09:59:31.000Z","params":[{"key":"utf8","value":"✓"},{"key":"authenticity_token","value":"[FILTERED]"},{"key":"runner_project","value":{"runner_id":"3"}},{"key":"namespace_id","value":"fklink"},{"key":"project_id","value":"foo"}],"remote_ip":"185.104.140.104","user_id":1,"username":"root"}
==> /var/log/gitlab/gitlab-rails/production.log <==
ArgumentError (Transitioning a group runner to a project runner is not supported):
app/models/ci/runner.rb:126:in `assign_to'
lib/gitlab/metrics/instrumentation.rb:159:in `block in assign_to'
lib/gitlab/metrics/method_call.rb:34:in `measure'
lib/gitlab/metrics/instrumentation.rb:159:in `assign_to'
app/controllers/admin/runner_projects_controller.rb:7:in `create'
lib/gitlab/i18n.rb:51:in `with_locale'
lib/gitlab/i18n.rb:57:in `with_user_locale'
app/controllers/application_controller.rb:401:in `set_locale'
lib/gitlab/middleware/multipart.rb:97:in `call'
lib/gitlab/request_profiler/middleware.rb:14:in `call'
lib/gitlab/middleware/go.rb:17:in `call'
lib/gitlab/etag_caching/middleware.rb:11:in `call'
lib/gitlab/middleware/rails_queue_duration.rb:22:in `call'
lib/gitlab/metrics/rack_middleware.rb:15:in `block in call'
lib/gitlab/metrics/transaction.rb:53:in `run'
lib/gitlab/metrics/rack_middleware.rb:15:in `call'
lib/gitlab/middleware/read_only/controller.rb:38:in `call'
lib/gitlab/middleware/read_only.rb:16:in `call'
lib/gitlab/middleware/basic_health_check.rb:25:in `call'
lib/gitlab/request_context.rb:18:in `call'
lib/gitlab/metrics/requests_rack_middleware.rb:27:in `call'
lib/gitlab/middleware/release_env.rb:10:in `call'
Edited by 🤖 GitLab Bot 🤖