summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMathieu Parent <math.parent@gmail.com>2019-05-15 14:35:55 +0200
committerMathieu Parent <math.parent@gmail.com>2019-07-03 16:18:05 +0200
commit353e68772c8b57ef4a98be094f2674d28a2dedcd (patch)
tree2bccce84d64aeae32415e7b4231178779825a072 /lib
parent26b7b475586b67c9e9aee7ec7311cca712901dbc (diff)
downloadgitlab-ce-353e68772c8b57ef4a98be094f2674d28a2dedcd.tar.gz
Add build_git_strategy attribute to project API
We map the boolean to the string 'fetch' or 'clone', to be more explicit.
Diffstat (limited to 'lib')
-rw-r--r--lib/api/entities.rb3
-rw-r--r--lib/api/helpers/projects_helpers.rb2
2 files changed, 5 insertions, 0 deletions
diff --git a/lib/api/entities.rb b/lib/api/entities.rb
index 4bd4442a76e..0389ff0e045 100644
--- a/lib/api/entities.rb
+++ b/lib/api/entities.rb
@@ -275,6 +275,9 @@ module API
expose :runners_token, if: lambda { |_project, options| options[:user_can_admin_project] }
expose :ci_default_git_depth
expose :public_builds, as: :public_jobs
+ expose :build_git_strategy, if: lambda { |project, options| options[:user_can_admin_project] } do |project, options|
+ project.build_allow_git_fetch ? 'fetch' : 'clone'
+ end
expose :ci_config_path, if: -> (project, options) { Ability.allowed?(options[:current_user], :download_code, project) }
expose :shared_with_groups do |project, options|
SharedGroup.represent(project.project_group_links, options)
diff --git a/lib/api/helpers/projects_helpers.rb b/lib/api/helpers/projects_helpers.rb
index 36d93d9457f..bc847968c25 100644
--- a/lib/api/helpers/projects_helpers.rb
+++ b/lib/api/helpers/projects_helpers.rb
@@ -8,6 +8,7 @@ module API
params :optional_project_params_ce do
optional :description, type: String, desc: 'The description of the project'
+ optional :build_git_strategy, type: String, values: %w(fetch clone), desc: 'The Git strategy. Defaults to `fetch`'
optional :ci_config_path, type: String, desc: 'The path to CI config file. Defaults to `.gitlab-ci.yml`'
# TODO: remove in API v5, replaced by *_access_level
@@ -58,6 +59,7 @@ module API
def self.update_params_at_least_one_of
[
+ :build_git_strategy,
:builds_access_level,
:ci_config_path,
:container_registry_enabled,