From 40d3b66fda4bc106f6cb3d314119af40c53052bf Mon Sep 17 00:00:00 2001 From: fe80 Date: Mon, 5 Aug 2024 11:58:28 +0200 Subject: [PATCH] feat(client): add project_languages methode --- lib/gitlab/client/projects.rb | 13 ++++++++++++- spec/fixtures/project_languages.json | 1 + spec/gitlab/client/projects_spec.rb | 11 +++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 spec/fixtures/project_languages.json diff --git a/lib/gitlab/client/projects.rb b/lib/gitlab/client/projects.rb index 36cc245a9..493c925be 100644 --- a/lib/gitlab/client/projects.rb +++ b/lib/gitlab/client/projects.rb @@ -3,7 +3,7 @@ class Gitlab::Client # Defines methods related to projects. # @see https://docs.gitlab.com/ce/api/projects.html - module Projects + module Projects # rubocop:disable Metrics/ModuleLength # Gets a list of projects owned by the authenticated user. # # @example @@ -704,5 +704,16 @@ def delete_project_custom_attribute(key, project_id = nil) def project_deploy_tokens(project, options = {}) get("/projects/#{url_encode project}/deploy_tokens", query: options) end + + # Get languages used with percentage value + # + # @example + # Gitlab.project_languages(42) + # + # @param [Integer, String] id The ID or path of a project. + # @return [Gitlab::ObjectifiedHash] + def project_languages(project) + get("/projects/#{url_encode project}/languages") + end end end diff --git a/spec/fixtures/project_languages.json b/spec/fixtures/project_languages.json new file mode 100644 index 000000000..33152cf76 --- /dev/null +++ b/spec/fixtures/project_languages.json @@ -0,0 +1 @@ +{"Ruby":99.99,"Shell":0.01} diff --git a/spec/gitlab/client/projects_spec.rb b/spec/gitlab/client/projects_spec.rb index e80ffb24c..4afb3ab68 100644 --- a/spec/gitlab/client/projects_spec.rb +++ b/spec/gitlab/client/projects_spec.rb @@ -925,4 +925,15 @@ expect(@custom_attributes.first.username).to eq 'gitlab+deploy-token-93' end end + + describe '.project_languages' do + before do + stub_get('/projects/2/languages', 'project_languages') + @custom_attributes = Gitlab.project_languages(2) + end + + it 'Return a GitlabHash with lanagues informations' do + expect(@custom_attributes).to be_a Gitlab::ObjectifiedHash + end + end end