From 769b1d7d3745ce1fff64abd9b8814a398511ea6f Mon Sep 17 00:00:00 2001 From: Nacho Date: Thu, 5 Sep 2019 16:32:01 +0200 Subject: [PATCH 01/20] Exposing the runners_token in groups as demanded in issue #60774 --- lib/api/entities.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/api/entities.rb b/lib/api/entities.rb index f7cd6d35854afd..5b60e74327a300 100644 --- a/lib/api/entities.rb +++ b/lib/api/entities.rb @@ -385,6 +385,7 @@ class Group < BasicGroupDetails expose :request_access_enabled expose :full_name, :full_path expose :parent_id + expose :runners_token expose :custom_attributes, using: 'API::Entities::CustomAttribute', if: :with_custom_attributes -- GitLab From 4748f005f940d54501f6f4ee6eee2496f0ed9ccd Mon Sep 17 00:00:00 2001 From: Nacho Date: Fri, 6 Sep 2019 08:31:37 +0200 Subject: [PATCH 02/20] Issue #60774 : I understand the limitations on the number of queries as a test but don't understand how can I count them yet. I'll try to see if I can progress on the pipeline while I get some attention. --- spec/requests/api/groups_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/requests/api/groups_spec.rb b/spec/requests/api/groups_spec.rb index 0893dcb39b6afd..5fe23a4c3bc7b9 100644 --- a/spec/requests/api/groups_spec.rb +++ b/spec/requests/api/groups_spec.rb @@ -43,7 +43,7 @@ expect do get api("/groups", admin) - end.not_to exceed_query_limit(control) + end.not_to exceed_query_limit(2 * control + 2) end end -- GitLab From ce79ab18fd11c8c4a533a8608041390052d38bab Mon Sep 17 00:00:00 2001 From: Nacho Date: Fri, 6 Sep 2019 11:12:54 +0200 Subject: [PATCH 03/20] Issue #60774 : After reading this doc https://git.cs.hartford.edu/help/development/query_recorder.md I assume this will be accepted. --- spec/requests/api/groups_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/requests/api/groups_spec.rb b/spec/requests/api/groups_spec.rb index 5fe23a4c3bc7b9..7da1c01421078d 100644 --- a/spec/requests/api/groups_spec.rb +++ b/spec/requests/api/groups_spec.rb @@ -43,7 +43,7 @@ expect do get api("/groups", admin) - end.not_to exceed_query_limit(2 * control + 2) + end.not_to exceed_query_limit(control + acceptable_change) end end -- GitLab From 036e37839cf71039253c7ba47f91f544212db84e Mon Sep 17 00:00:00 2001 From: Nacho Date: Fri, 6 Sep 2019 15:18:52 +0200 Subject: [PATCH 04/20] Issue #60774 : Taking comment from @steveazz into consideration: - The runners_token is only displayed to admins in the GroupDetails entity - Two test cases to show that it only displays when appropriately --- lib/api/entities.rb | 2 +- spec/requests/api/groups_spec.rb | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/lib/api/entities.rb b/lib/api/entities.rb index 5b60e74327a300..0ecc24dd8c9f46 100644 --- a/lib/api/entities.rb +++ b/lib/api/entities.rb @@ -385,7 +385,6 @@ class Group < BasicGroupDetails expose :request_access_enabled expose :full_name, :full_path expose :parent_id - expose :runners_token expose :custom_attributes, using: 'API::Entities::CustomAttribute', if: :with_custom_attributes @@ -401,6 +400,7 @@ class Group < BasicGroupDetails end class GroupDetail < Group + expose :runners_token, if: lambda { |group, options| options[:current_user].admin? expose :projects, using: Entities::Project do |group, options| projects = GroupProjectsFinder.new( group: group, diff --git a/spec/requests/api/groups_spec.rb b/spec/requests/api/groups_spec.rb index 7da1c01421078d..73ec27f60b928e 100644 --- a/spec/requests/api/groups_spec.rb +++ b/spec/requests/api/groups_spec.rb @@ -59,6 +59,16 @@ .to satisfy_one { |group| group['name'] == group1.name } end + it "does not include runners_token information" do + get api("/groups", user1) + + expect(response).to have_gitlab_http_status(200) + expect(response).to include_pagination_headers + expect(json_response).to be_an Array + expect(json_response.length).to eq(1) + expect(json_response.first).not_to include 'runners_token' + end + it "does not include statistics" do get api("/groups", user1), params: { statistics: true } @@ -79,6 +89,16 @@ expect(json_response.length).to eq(2) end + it "includes runners_token information" do + get api("/groups", admin) + + expect(response).to have_gitlab_http_status(200) + expect(response).to include_pagination_headers + expect(json_response).to be_an Array + expect(json_response.length).to eq(2) + expect(json_response.first).to include 'runners_token' + end + it "does not include statistics by default" do get api("/groups", admin) -- GitLab From eac6e241eaba9afeb4ba42432f83d4bcbe25f381 Mon Sep 17 00:00:00 2001 From: Nacho Date: Fri, 6 Sep 2019 15:40:30 +0200 Subject: [PATCH 05/20] Fixing typo --- lib/api/entities.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/api/entities.rb b/lib/api/entities.rb index 0ecc24dd8c9f46..d9f4f1e2670dee 100644 --- a/lib/api/entities.rb +++ b/lib/api/entities.rb @@ -400,7 +400,7 @@ class Group < BasicGroupDetails end class GroupDetail < Group - expose :runners_token, if: lambda { |group, options| options[:current_user].admin? + expose :runners_token, if: lambda { |group, options| options[:current_user].admin? } expose :projects, using: Entities::Project do |group, options| projects = GroupProjectsFinder.new( group: group, -- GitLab From fde6165b1ffabc7174393d276ccbe6fa9223c46b Mon Sep 17 00:00:00 2001 From: Nacho Date: Mon, 9 Sep 2019 08:19:20 +0200 Subject: [PATCH 06/20] Issue #60774 It's accepted that this test fails since it creates more queries than expected. --- spec/requests/api/groups_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/requests/api/groups_spec.rb b/spec/requests/api/groups_spec.rb index 73ec27f60b928e..b8ae0b9ba11b1e 100644 --- a/spec/requests/api/groups_spec.rb +++ b/spec/requests/api/groups_spec.rb @@ -43,7 +43,7 @@ expect do get api("/groups", admin) - end.not_to exceed_query_limit(control + acceptable_change) + end.not_to exceed_query_limit(control) end end -- GitLab From e64fd310f1a813dfe78d5f20e55a8a4721fb584b Mon Sep 17 00:00:00 2001 From: Nacho Date: Mon, 9 Sep 2019 09:49:12 +0200 Subject: [PATCH 07/20] Issue #60774: The option is called :user_can_admin_project in project so I keep it too for the group detail. --- lib/api/entities.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/api/entities.rb b/lib/api/entities.rb index d9f4f1e2670dee..76a235bd172587 100644 --- a/lib/api/entities.rb +++ b/lib/api/entities.rb @@ -400,7 +400,7 @@ class Group < BasicGroupDetails end class GroupDetail < Group - expose :runners_token, if: lambda { |group, options| options[:current_user].admin? } + expose :runners_token, if: lambda { |group, options| options[:user_can_admin_project] } expose :projects, using: Entities::Project do |group, options| projects = GroupProjectsFinder.new( group: group, -- GitLab From 761d2832b1e0f3103993e5409721e89be7d7e583 Mon Sep 17 00:00:00 2001 From: Nacho Date: Mon, 9 Sep 2019 13:52:09 +0200 Subject: [PATCH 08/20] Issue #60774: The issue refers only to the details of a group. Not to add this into the details of all groups. --- spec/requests/api/groups_spec.rb | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/spec/requests/api/groups_spec.rb b/spec/requests/api/groups_spec.rb index b8ae0b9ba11b1e..606290fff259e9 100644 --- a/spec/requests/api/groups_spec.rb +++ b/spec/requests/api/groups_spec.rb @@ -89,14 +89,14 @@ expect(json_response.length).to eq(2) end - it "includes runners_token information" do + it "does not include runners_token information" do get api("/groups", admin) expect(response).to have_gitlab_http_status(200) expect(response).to include_pagination_headers expect(json_response).to be_an Array expect(json_response.length).to eq(2) - expect(json_response.first).to include 'runners_token' + expect(json_response.first).not_to include 'runners_token' end it "does not include statistics by default" do @@ -359,6 +359,7 @@ def response_project_ids(json_response, key) expect(json_response['shared_projects']).to be_an Array expect(json_response['shared_projects'].length).to eq(1) expect(json_response['shared_projects'][0]['id']).to eq(project.id) + expect(json_response).not_to include 'runners_token' end it "returns one of user1's groups without projects when with_projects option is set to false" do @@ -370,6 +371,7 @@ def response_project_ids(json_response, key) expect(response).to have_gitlab_http_status(200) expect(json_response['projects']).to be_nil expect(json_response['shared_projects']).to be_nil + expect(json_response).not_to include 'runners_token' end it "does not return a non existing group" do @@ -427,6 +429,13 @@ def response_project_ids(json_response, key) expect(json_response['name']).to eq(group2.name) end + it "returns information of the runners_token for the group" do + get api("/groups/#{group2.id}", admin) + + expect(response).to have_gitlab_http_status(200) + expect(json_response).to include 'runners_token' + end + it "does not return a non existing group" do get api("/groups/1328", admin) -- GitLab From 503ad463256858a54202842cb6ec3496137bfb50 Mon Sep 17 00:00:00 2001 From: Nacho Date: Mon, 9 Sep 2019 15:42:07 +0200 Subject: [PATCH 09/20] Issue #60774: As per comment, check on whether a user can admin the group. I'm implementing it as if the user is an admin. --- lib/api/entities.rb | 2 +- lib/api/groups.rb | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/api/entities.rb b/lib/api/entities.rb index 76a235bd172587..8b01b5c2d71a2b 100644 --- a/lib/api/entities.rb +++ b/lib/api/entities.rb @@ -400,7 +400,7 @@ class Group < BasicGroupDetails end class GroupDetail < Group - expose :runners_token, if: lambda { |group, options| options[:user_can_admin_project] } + expose :runners_token, if: lambda { |group, options| options[:user_can_admin_group] } expose :projects, using: Entities::Project do |group, options| projects = GroupProjectsFinder.new( group: group, diff --git a/lib/api/groups.rb b/lib/api/groups.rb index 0b086f2e36dae0..a6d035113d7a27 100644 --- a/lib/api/groups.rb +++ b/lib/api/groups.rb @@ -85,6 +85,7 @@ def present_groups(params, groups) with: Entities::Group, current_user: current_user, statistics: params[:statistics] && current_user.admin? + user_can_admin_group: current_user.admin? } groups = groups.with_statistics if options[:statistics] -- GitLab From eb272858f0630a39e32bff703069fffe7e01907d Mon Sep 17 00:00:00 2001 From: Nacho Date: Mon, 9 Sep 2019 15:55:29 +0200 Subject: [PATCH 10/20] Issue #60774 Fixing a typo. --- lib/api/groups.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/api/groups.rb b/lib/api/groups.rb index a6d035113d7a27..c92973fe2ee9ff 100644 --- a/lib/api/groups.rb +++ b/lib/api/groups.rb @@ -84,7 +84,7 @@ def present_groups(params, groups) options = { with: Entities::Group, current_user: current_user, - statistics: params[:statistics] && current_user.admin? + statistics: params[:statistics] && current_user.admin?, user_can_admin_group: current_user.admin? } -- GitLab From 206675dea9144789b6d79e623243edf75b6681ae Mon Sep 17 00:00:00 2001 From: Nacho Date: Mon, 9 Sep 2019 21:34:13 +0200 Subject: [PATCH 11/20] Issue #60774: Checking whether current_user contains a valid user and whether this user is an admin for the group --- lib/api/groups.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/api/groups.rb b/lib/api/groups.rb index c92973fe2ee9ff..8dfcc34614a771 100644 --- a/lib/api/groups.rb +++ b/lib/api/groups.rb @@ -84,8 +84,7 @@ def present_groups(params, groups) options = { with: Entities::Group, current_user: current_user, - statistics: params[:statistics] && current_user.admin?, - user_can_admin_group: current_user.admin? + statistics: params[:statistics] && current_user.admin? } groups = groups.with_statistics if options[:statistics] @@ -174,7 +173,8 @@ def present_groups(params, groups) options = { with: params[:with_projects] ? Entities::GroupDetail : Entities::Group, - current_user: current_user + current_user: current_user, + user_can_admin_group: current_user.present? && current_user.admin? } group, options = with_custom_attributes(group, options) -- GitLab From c7456b5c5a2c5fc7a8c0e76d0a44767b7c47a5d7 Mon Sep 17 00:00:00 2001 From: Nacho Otal Date: Tue, 10 Sep 2019 07:50:41 +0000 Subject: [PATCH 12/20] Apply suggestion to lib/api/groups.rb --- lib/api/groups.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/api/groups.rb b/lib/api/groups.rb index 8dfcc34614a771..2a82469a007e81 100644 --- a/lib/api/groups.rb +++ b/lib/api/groups.rb @@ -174,7 +174,7 @@ def present_groups(params, groups) options = { with: params[:with_projects] ? Entities::GroupDetail : Entities::Group, current_user: current_user, - user_can_admin_group: current_user.present? && current_user.admin? + user_can_admin_group: current_user.present? && can?(current_user, :admin_group, group) } group, options = with_custom_attributes(group, options) -- GitLab From fb69d17509688090df217122fa3f480c0838eca8 Mon Sep 17 00:00:00 2001 From: Nacho Date: Tue, 10 Sep 2019 11:35:14 +0200 Subject: [PATCH 13/20] Issue #60774: Fixing the tests for the cases of admin and no admin of a group --- spec/requests/api/groups_spec.rb | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/spec/requests/api/groups_spec.rb b/spec/requests/api/groups_spec.rb index 606290fff259e9..6b0455a23a0288 100644 --- a/spec/requests/api/groups_spec.rb +++ b/spec/requests/api/groups_spec.rb @@ -359,7 +359,6 @@ def response_project_ids(json_response, key) expect(json_response['shared_projects']).to be_an Array expect(json_response['shared_projects'].length).to eq(1) expect(json_response['shared_projects'][0]['id']).to eq(project.id) - expect(json_response).not_to include 'runners_token' end it "returns one of user1's groups without projects when with_projects option is set to false" do @@ -374,6 +373,21 @@ def response_project_ids(json_response, key) expect(json_response).not_to include 'runners_token' end + it "doesn't return runners_token if the user is not the owner of the group" do + get api("/groups/#{group1.id}", user3) + + expect(response).to have_gitlab_http_status(200) + expect(json_response).not_to include 'runners_token' + end + + it "returns runners_token if the user is the owner of the group" do + group1.add_owner(user3) + get api("/groups/#{group1.id}", user3) + + expect(response).to have_gitlab_http_status(200) + expect(json_response).to include 'runners_token' + end + it "does not return a non existing group" do get api("/groups/1328", user1) -- GitLab From aac0848589ff3c94efee5e48891b8cc84d060813 Mon Sep 17 00:00:00 2001 From: Nacho Date: Wed, 11 Sep 2019 08:47:43 +0200 Subject: [PATCH 14/20] Issue #60774: Adding documentation and changelog to explain the change on the feature --- changelogs/unreleased/enabling_runners_token_for_groups.yml | 5 +++++ doc/api/groups.md | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 changelogs/unreleased/enabling_runners_token_for_groups.yml diff --git a/changelogs/unreleased/enabling_runners_token_for_groups.yml b/changelogs/unreleased/enabling_runners_token_for_groups.yml new file mode 100644 index 00000000000000..87964ecd853b40 --- /dev/null +++ b/changelogs/unreleased/enabling_runners_token_for_groups.yml @@ -0,0 +1,5 @@ +--- +title: Adds the of the group if the user that requests group info is admin of it +merge_request: 32707 +author: Ignacio Lorenzo Subirá Otal nachootal@gmail.com +type: changed diff --git a/doc/api/groups.md b/doc/api/groups.md index 8b13462b887e48..5fabe85bf8a0e8 100644 --- a/doc/api/groups.md +++ b/doc/api/groups.md @@ -208,7 +208,7 @@ Example response: ## Details of a group Get all details of a group. This endpoint can be accessed without authentication -if the group is publicly accessible. +if the group is publicly accessible. In case the user that requests is admin of the group, it will return the `runners_token` for the group too. ``` GET /groups/:id -- GitLab From b89e0ecf24df0b19fc2a0f6551c879cf652351d9 Mon Sep 17 00:00:00 2001 From: Nacho Otal Date: Wed, 11 Sep 2019 10:38:22 +0000 Subject: [PATCH 15/20] Apply suggestion to lib/api/groups.rb --- lib/api/groups.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/api/groups.rb b/lib/api/groups.rb index 2a82469a007e81..a1934647cdfa4f 100644 --- a/lib/api/groups.rb +++ b/lib/api/groups.rb @@ -174,7 +174,7 @@ def present_groups(params, groups) options = { with: params[:with_projects] ? Entities::GroupDetail : Entities::Group, current_user: current_user, - user_can_admin_group: current_user.present? && can?(current_user, :admin_group, group) + user_can_admin_group: current_user.present? && can?(current_user, :admin_group, group) } group, options = with_custom_attributes(group, options) -- GitLab From 2a26d0fcf1ba58faf62010476eb8d289e9be8721 Mon Sep 17 00:00:00 2001 From: Nacho Date: Wed, 11 Sep 2019 12:50:06 +0200 Subject: [PATCH 16/20] Issue #60774: Adding runners_token to example in documentation --- doc/api/groups.md | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/api/groups.md b/doc/api/groups.md index 5fabe85bf8a0e8..18e71f488cedce 100644 --- a/doc/api/groups.md +++ b/doc/api/groups.md @@ -240,6 +240,7 @@ Example response: "request_access_enabled": false, "full_name": "Twitter", "full_path": "twitter", + "runners_token": "ba324ca7b1c77fc20bb9", "file_template_project_id": 1, "parent_id": null, "projects": [ -- GitLab From 29529bb189d1d7c624a76784085a3dc9fd4abf30 Mon Sep 17 00:00:00 2001 From: Nacho Date: Wed, 11 Sep 2019 12:58:14 +0200 Subject: [PATCH 17/20] Issue #60774: As mentioned in comments of the merge request, need to check on this case too --- spec/requests/api/groups_spec.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/requests/api/groups_spec.rb b/spec/requests/api/groups_spec.rb index 6b0455a23a0288..2f18161ad788c9 100644 --- a/spec/requests/api/groups_spec.rb +++ b/spec/requests/api/groups_spec.rb @@ -312,6 +312,7 @@ def response_project_ids(json_response, key) get api("/groups/#{group1.id}") expect(response).to have_gitlab_http_status(200) + expect(json_response).not_to include 'runners_token' end it 'returns only public projects in the group' do -- GitLab From 0dc25a7d3ac4c832a8f15fe00916d9da24043720 Mon Sep 17 00:00:00 2001 From: Nacho Date: Thu, 12 Sep 2019 15:39:50 +0200 Subject: [PATCH 18/20] Issue #60774: Improving on style for test. Improving the description of the changelog --- .../enabling_runners_token_for_groups.yml | 2 +- spec/requests/api/groups_spec.rb | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/changelogs/unreleased/enabling_runners_token_for_groups.yml b/changelogs/unreleased/enabling_runners_token_for_groups.yml index 87964ecd853b40..a050044e2aafdd 100644 --- a/changelogs/unreleased/enabling_runners_token_for_groups.yml +++ b/changelogs/unreleased/enabling_runners_token_for_groups.yml @@ -1,5 +1,5 @@ --- -title: Adds the of the group if the user that requests group info is admin of it +title: Adds the runners_token of the group if the user that requests the group info is admin of it merge_request: 32707 author: Ignacio Lorenzo Subirá Otal nachootal@gmail.com type: changed diff --git a/spec/requests/api/groups_spec.rb b/spec/requests/api/groups_spec.rb index 2f18161ad788c9..b3acf531ccb85c 100644 --- a/spec/requests/api/groups_spec.rb +++ b/spec/requests/api/groups_spec.rb @@ -66,7 +66,7 @@ expect(response).to include_pagination_headers expect(json_response).to be_an Array expect(json_response.length).to eq(1) - expect(json_response.first).not_to include 'runners_token' + expect(json_response.first).not_to include('runners_token') end it "does not include statistics" do @@ -96,7 +96,7 @@ expect(response).to include_pagination_headers expect(json_response).to be_an Array expect(json_response.length).to eq(2) - expect(json_response.first).not_to include 'runners_token' + expect(json_response.first).not_to include('runners_token') end it "does not include statistics by default" do @@ -312,7 +312,7 @@ def response_project_ids(json_response, key) get api("/groups/#{group1.id}") expect(response).to have_gitlab_http_status(200) - expect(json_response).not_to include 'runners_token' + expect(json_response).not_to include('runners_token') end it 'returns only public projects in the group' do @@ -371,14 +371,14 @@ def response_project_ids(json_response, key) expect(response).to have_gitlab_http_status(200) expect(json_response['projects']).to be_nil expect(json_response['shared_projects']).to be_nil - expect(json_response).not_to include 'runners_token' + expect(json_response).not_to include('runners_token') end it "doesn't return runners_token if the user is not the owner of the group" do get api("/groups/#{group1.id}", user3) expect(response).to have_gitlab_http_status(200) - expect(json_response).not_to include 'runners_token' + expect(json_response).not_to include('runners_token') end it "returns runners_token if the user is the owner of the group" do @@ -386,7 +386,7 @@ def response_project_ids(json_response, key) get api("/groups/#{group1.id}", user3) expect(response).to have_gitlab_http_status(200) - expect(json_response).to include 'runners_token' + expect(json_response).to include('runners_token') end it "does not return a non existing group" do @@ -448,7 +448,7 @@ def response_project_ids(json_response, key) get api("/groups/#{group2.id}", admin) expect(response).to have_gitlab_http_status(200) - expect(json_response).to include 'runners_token' + expect(json_response).to include('runners_token') end it "does not return a non existing group" do -- GitLab From a9dd3d6369e89d79465cd17b7b17e83f6e82102c Mon Sep 17 00:00:00 2001 From: Nacho Date: Thu, 12 Sep 2019 15:47:39 +0200 Subject: [PATCH 19/20] Issue #60774: current_user is always present at this level and the permissions can always be checked --- lib/api/groups.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/api/groups.rb b/lib/api/groups.rb index a1934647cdfa4f..83860949e3e352 100644 --- a/lib/api/groups.rb +++ b/lib/api/groups.rb @@ -174,7 +174,7 @@ def present_groups(params, groups) options = { with: params[:with_projects] ? Entities::GroupDetail : Entities::Group, current_user: current_user, - user_can_admin_group: current_user.present? && can?(current_user, :admin_group, group) + user_can_admin_group: can?(current_user, :admin_group, group) } group, options = with_custom_attributes(group, options) -- GitLab From c3b6a69743461f389eca6a681804a9d7a344d84d Mon Sep 17 00:00:00 2001 From: Nacho Date: Mon, 16 Sep 2019 22:22:03 +0200 Subject: [PATCH 20/20] Issue #60774 Correcting merge request number since this is to be merged already at gitlab and not anymore at gitlab ce --- changelogs/unreleased/enabling_runners_token_for_groups.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changelogs/unreleased/enabling_runners_token_for_groups.yml b/changelogs/unreleased/enabling_runners_token_for_groups.yml index a050044e2aafdd..9e55aca82dec7c 100644 --- a/changelogs/unreleased/enabling_runners_token_for_groups.yml +++ b/changelogs/unreleased/enabling_runners_token_for_groups.yml @@ -1,5 +1,5 @@ --- title: Adds the runners_token of the group if the user that requests the group info is admin of it -merge_request: 32707 +merge_request: 16831 author: Ignacio Lorenzo Subirá Otal nachootal@gmail.com type: changed -- GitLab