diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2015-01-07 22:28:37 +0000 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2015-01-07 22:28:37 +0000 |
commit | 54e6c5ae362790f597a8be110895bed0a660f238 (patch) | |
tree | d6f86ef7ef25a30a185977ee359fec6b06c700a1 /lib | |
parent | 7693baea93c5104dc6fdddff2dad7d69ddf3631f (diff) | |
parent | 55db19ad5f0f3b858776857e2a69e18927d05fc8 (diff) | |
download | gitlab-ci-54e6c5ae362790f597a8be110895bed0a660f238.tar.gz |
Merge branch 'register-specific-runner' into 'master'
Register specific runner via API without admin access
See merge request !21
Diffstat (limited to 'lib')
-rw-r--r-- | lib/api/runners.rb | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/lib/api/runners.rb b/lib/api/runners.rb index ef78b09..f8239a1 100644 --- a/lib/api/runners.rb +++ b/lib/api/runners.rb @@ -28,10 +28,18 @@ module API # Example Request: # POST /runners/register post "register" do - authenticate_runners! required_attributes! [:token] - runner = Runner.create + runner = + if params[:token] == GitlabCi::REGISTRATION_TOKEN + # Create shared runner. Requires admin access + Runner.create + elsif project = Project.find_by(token: params[:token]) + # Create a specific runner for project. + project.runners.create + end + + return forbidden! unless runner if runner.id present runner, with: Entities::Runner |