Commit f29f23e8a048573f8cbf7dd84836f3b2812037df
Exists in
master
and in
17 other branches
Merge branch 'gitlab_yml' into 'master'
Gitlab Yml
Showing
5 changed files
with
124 additions
and
77 deletions
Show diff stats
files/gitlab-cookbooks/gitlab/attributes/default.rb
| ... | ... | @@ -43,18 +43,61 @@ default['gitlab']['gitlab-rails']['dir'] = "/var/opt/gitlab/gitlab-rails" |
| 43 | 43 | default['gitlab']['gitlab-rails']['log_directory'] = "/var/log/gitlab/gitlab-rails" |
| 44 | 44 | default['gitlab']['gitlab-rails']['environment'] = 'production' |
| 45 | 45 | |
| 46 | -default['gitlab']['gitlab-rails']['repositories_path'] = "/var/opt/gitlab/repositories" | |
| 47 | -default['gitlab']['gitlab-rails']['satellites_path'] = "/var/opt/gitlab/gitlab-satellites" | |
| 48 | 46 | default['gitlab']['gitlab-rails']['internal_api_url'] = "http://localhost:8080" |
| 49 | -default['gitlab']['gitlab-rails']['external_fqdn'] = node['fqdn'] | |
| 50 | -default['gitlab']['gitlab-rails']['external_port'] = 80 | |
| 51 | -default['gitlab']['gitlab-rails']['external_https'] = false | |
| 52 | -default['gitlab']['gitlab-rails']['notification_email'] = "gitlab@#{node['fqdn']}" | |
| 53 | -default['gitlab']['gitlab-rails']['support_email'] = "support@example.com" | |
| 54 | 47 | default['gitlab']['gitlab-rails']['uploads_directory'] = "/var/opt/gitlab/uploads" |
| 55 | 48 | default['gitlab']['gitlab-rails']['rate_limit_requests_per_period'] = 10 |
| 56 | 49 | default['gitlab']['gitlab-rails']['rate_limit_period'] = 60 |
| 57 | 50 | |
| 51 | +default['gitlab']['gitlab-rails']['gitlab_host'] = node['fqdn'] | |
| 52 | +default['gitlab']['gitlab-rails']['gitlab_port'] = 80 | |
| 53 | +default['gitlab']['gitlab-rails']['gitlab_https'] = false | |
| 54 | +default['gitlab']['gitlab-rails']['gitlab_email_from'] = "gitlab@#{node['fqdn']}" | |
| 55 | +default['gitlab']['gitlab-rails']['gitlab_support_email'] = "support@localhost" | |
| 56 | +default['gitlab']['gitlab-rails']['gitlab_default_projects_limit'] = 10 | |
| 57 | +default['gitlab']['gitlab-rails']['gitlab_default_can_create_group'] = true | |
| 58 | +default['gitlab']['gitlab-rails']['gitlab_username_changing_enabled'] = true | |
| 59 | +default['gitlab']['gitlab-rails']['gitlab_default_theme'] = 2 | |
| 60 | +default['gitlab']['gitlab-rails']['gitlab_signup_enabled'] = false | |
| 61 | +default['gitlab']['gitlab-rails']['gitlab_default_projects_features_issues'] = true | |
| 62 | +default['gitlab']['gitlab-rails']['gitlab_default_projects_features_merge_requests'] = true | |
| 63 | +default['gitlab']['gitlab-rails']['gitlab_default_projects_features_wiki'] = true | |
| 64 | +default['gitlab']['gitlab-rails']['gitlab_default_projects_features_wall'] = false | |
| 65 | +default['gitlab']['gitlab-rails']['gitlab_default_projects_features_snippets'] = false | |
| 66 | +default['gitlab']['gitlab-rails']['gitlab_default_projects_features_visibility_level'] = "private" | |
| 67 | +default['gitlab']['gitlab-rails']['issues_tracker_redmine'] = false | |
| 68 | +default['gitlab']['gitlab-rails']['issues_tracker_redmine_title'] = "Redmine" | |
| 69 | +default['gitlab']['gitlab-rails']['issues_tracker_redmine_project_url'] = "http://redmine.sample/projects/:issues_tracker_id" | |
| 70 | +default['gitlab']['gitlab-rails']['issues_tracker_redmine_issues_url'] = "http://redmine.sample/issues/:id" | |
| 71 | +default['gitlab']['gitlab-rails']['issues_tracker_redmine_new_issue_url'] = "http://redmine.sample/projects/:issues_tracker_id/issues/new" | |
| 72 | +default['gitlab']['gitlab-rails']['issues_tracker_jira'] = false | |
| 73 | +default['gitlab']['gitlab-rails']['issues_tracker_jira_title'] = "Atlassian Jira" | |
| 74 | +default['gitlab']['gitlab-rails']['issues_tracker_jira_project_url'] = "http://jira.sample/issues/?jql=project=:issues_tracker_id" | |
| 75 | +default['gitlab']['gitlab-rails']['issues_tracker_jira_issues_url'] = "http://jira.sample/browse/:id" | |
| 76 | +default['gitlab']['gitlab-rails']['issues_tracker_jira_new_issue_url'] = "http://jira.sample/secure/CreateIssue.jspa" | |
| 77 | +default['gitlab']['gitlab-rails']['gravatar_enabled'] = true | |
| 78 | +default['gitlab']['gitlab-rails']['gravatar_plain_url'] = "http://www.gravatar.com/avatar/%{hash}?s=%{size}&d=mm" | |
| 79 | +default['gitlab']['gitlab-rails']['gravatar_ssl_url'] = "https://secure.gravatar.com/avatar/%{hash}?s=%{size}&d=mm" | |
| 80 | +default['gitlab']['gitlab-rails']['ldap_enabled'] = false | |
| 81 | +default['gitlab']['gitlab-rails']['ldap_host'] = "_your_ldap_server" | |
| 82 | +default['gitlab']['gitlab-rails']['ldap_base'] = "_the_base_where_you_search_for_users" | |
| 83 | +default['gitlab']['gitlab-rails']['ldap_port'] = 636 | |
| 84 | +default['gitlab']['gitlab-rails']['ldap_uid'] = "sAMAccountName" | |
| 85 | +default['gitlab']['gitlab-rails']['ldap_method'] = "ssl" | |
| 86 | +default['gitlab']['gitlab-rails']['ldap_bind_dn'] = "_the_full_dn_of_the_user_you_will_bind_with" | |
| 87 | +default['gitlab']['gitlab-rails']['ldap_password'] = "_the_password_of_the_bind_user" | |
| 88 | +default['gitlab']['gitlab-rails']['ldap_allow_username_or_email_login'] = true | |
| 89 | +default['gitlab']['gitlab-rails']['satellites_path'] = "/var/opt/gitlab/gitlab-satellites" | |
| 90 | +default['gitlab']['gitlab-rails']['backup_path'] = "tmp/backups" | |
| 91 | +default['gitlab']['gitlab-rails']['gitlab_shell_path'] = "/opt/gitlab/embedded/service/gitlab-shell/" | |
| 92 | +default['gitlab']['gitlab-rails']['gitlab_shell_repos_path'] = "/home/git/repositories/" | |
| 93 | +default['gitlab']['gitlab-rails']['gitlab_shell_hooks_path'] = "/opt/gitlab/embedded/service/gitlab-shell/hooks/" | |
| 94 | +default['gitlab']['gitlab-rails']['gitlab_shell_upload_pack'] = true | |
| 95 | +default['gitlab']['gitlab-rails']['gitlab_shell_receive_pack'] = true | |
| 96 | +default['gitlab']['gitlab-rails']['git_bin_path'] = "/opt/gitlab/embedded/bin/git" | |
| 97 | +default['gitlab']['gitlab-rails']['git_max_size'] = 5242880 | |
| 98 | +default['gitlab']['gitlab-rails']['git_timeout'] = 10 | |
| 99 | +default['gitlab']['gitlab-rails']['extra'] = | |
| 100 | + | |
| 58 | 101 | |
| 59 | 102 | #### |
| 60 | 103 | # Unicorn | ... | ... |
files/gitlab-cookbooks/gitlab/libraries/gitlab.rb
| ... | ... | @@ -84,14 +84,14 @@ module Gitlab |
| 84 | 84 | raise "External URL must include a FQDN" |
| 85 | 85 | end |
| 86 | 86 | Gitlab['user']['git_user_email'] ||= "gitlab@#{uri.host}" |
| 87 | - Gitlab['gitlab_rails']['external_fqdn'] = uri.host | |
| 88 | - Gitlab['gitlab_rails']['notification_email'] ||= "gitlab@#{uri.host}" | |
| 87 | + Gitlab['gitlab_rails']['gitlab_host'] = uri.host | |
| 88 | + Gitlab['gitlab_rails']['gitlab_email_from'] ||= "gitlab@#{uri.host}" | |
| 89 | 89 | |
| 90 | 90 | case uri.scheme |
| 91 | 91 | when "http" |
| 92 | - Gitlab['gitlab_rails']['external_https'] = false | |
| 92 | + Gitlab['gitlab_rails']['gitlab_https'] = false | |
| 93 | 93 | when "https" |
| 94 | - Gitlab['gitlab_rails']['external_https'] = true | |
| 94 | + Gitlab['gitlab_rails']['gitlab_https'] = true | |
| 95 | 95 | else |
| 96 | 96 | raise "Unsupported external URL scheme: #{uri.scheme}" |
| 97 | 97 | end |
| ... | ... | @@ -100,7 +100,7 @@ module Gitlab |
| 100 | 100 | raise "Unsupported external URL path: #{uri.path}" |
| 101 | 101 | end |
| 102 | 102 | |
| 103 | - Gitlab['gitlab_rails']['external_port'] = uri.port | |
| 103 | + Gitlab['gitlab_rails']['gitlab_port'] = uri.port | |
| 104 | 104 | end |
| 105 | 105 | |
| 106 | 106 | def generate_hash | ... | ... |
files/gitlab-cookbooks/gitlab/recipes/gitlab-shell.rb
| ... | ... | @@ -20,7 +20,7 @@ git_user = node['gitlab']['user']['username'] |
| 20 | 20 | git_group = node['gitlab']['user']['group'] |
| 21 | 21 | gitlab_shell_dir = "/opt/gitlab/embedded/service/gitlab-shell" |
| 22 | 22 | gitlab_shell_var_dir = "/var/opt/gitlab/gitlab-shell" |
| 23 | -repositories_path = node['gitlab']['gitlab-rails']['repositories_path'] | |
| 23 | +repositories_path = node['gitlab']['gitlab-rails']['gitlab_shell_repos_path'] | |
| 24 | 24 | ssh_dir = File.join(node['gitlab']['user']['home'], ".ssh") |
| 25 | 25 | log_directory = node['gitlab']['gitlab-shell']['log_directory'] |
| 26 | 26 | ... | ... |
files/gitlab-cookbooks/gitlab/recipes/nginx.rb
| ... | ... | @@ -44,7 +44,7 @@ template nginx_vars[:gitlab_http_config] do |
| 44 | 44 | mode "0644" |
| 45 | 45 | variables(nginx_vars.merge( |
| 46 | 46 | { |
| 47 | - :fqdn => node['gitlab']['gitlab-rails']['external_fqdn'], | |
| 47 | + :fqdn => node['gitlab']['gitlab-rails']['gitlab_host'], | |
| 48 | 48 | :socket => node['gitlab']['unicorn']['socket'] |
| 49 | 49 | } |
| 50 | 50 | )) | ... | ... |
files/gitlab-cookbooks/gitlab/templates/default/gitlab.yml.erb
| ... | ... | @@ -15,9 +15,9 @@ production: &base |
| 15 | 15 | ## GitLab settings |
| 16 | 16 | gitlab: |
| 17 | 17 | ## Web server settings (note: host is the FQDN, do not include http://) |
| 18 | - host: <%= node['gitlab']['gitlab-rails']['external_fqdn'] %> | |
| 19 | - port: <%= node['gitlab']['gitlab-rails']['external_port'] %> | |
| 20 | - https: <%= node['gitlab']['gitlab-rails']['external_https'] %> | |
| 18 | + host: <%= @gitlab_host %> | |
| 19 | + port: <%= @gitlab_port %> | |
| 20 | + https: <%= @gitlab_https %> | |
| 21 | 21 | |
| 22 | 22 | # Uncomment and customize the last line to run in a non-root path |
| 23 | 23 | # WARNING: We recommend creating a FQDN to host GitLab in a root path instead of this. |
| ... | ... | @@ -35,27 +35,27 @@ production: &base |
| 35 | 35 | |
| 36 | 36 | ## Email settings |
| 37 | 37 | # Email address used in the "From" field in mails sent by GitLab |
| 38 | - email_from: <%= node['gitlab']['gitlab-rails']['notification_email'] %> | |
| 38 | + email_from: <%= @gitlab_email_from %> | |
| 39 | 39 | |
| 40 | 40 | # Email address of your support contact (default: same as email_from) |
| 41 | - support_email: <%= node['gitlab']['gitlab-rails']['support_email'] %> | |
| 41 | + support_email: <%= @gitlab_support_email %> | |
| 42 | 42 | |
| 43 | 43 | ## User settings |
| 44 | 44 | default_projects_limit: 10 |
| 45 | - # default_can_create_group: false # default: true | |
| 46 | - # username_changing_enabled: false # default: true - User can change her username/namespace | |
| 45 | + default_can_create_group: <%= @gitlab_default_can_create_group %> # default: true | |
| 46 | + username_changing_enabled: <%= @username_changing_enabled %> # default: true - User can change her username/namespace | |
| 47 | 47 | ## Default theme |
| 48 | 48 | ## BASIC = 1 |
| 49 | 49 | ## MARS = 2 |
| 50 | 50 | ## MODERN = 3 |
| 51 | 51 | ## GRAY = 4 |
| 52 | 52 | ## COLOR = 5 |
| 53 | - # default_theme: 2 # default: 2 | |
| 53 | + default_theme: <%= @gitlab_default_theme %> # default: 2 | |
| 54 | 54 | |
| 55 | 55 | |
| 56 | 56 | ## Users management |
| 57 | 57 | # default: false - Account passwords are not sent via the email if signup is enabled. |
| 58 | - # signup_enabled: true | |
| 58 | + signup_enabled: <%= @gitlab_signup_enabled %> | |
| 59 | 59 | |
| 60 | 60 | # Restrict setting visibility levels for non-admin users. |
| 61 | 61 | # The default is to allow all levels. |
| ... | ... | @@ -69,47 +69,51 @@ production: &base |
| 69 | 69 | |
| 70 | 70 | ## Default project features settings |
| 71 | 71 | default_projects_features: |
| 72 | - issues: true | |
| 73 | - merge_requests: true | |
| 74 | - wiki: true | |
| 75 | - wall: false | |
| 76 | - snippets: false | |
| 77 | - visibility_level: "private" # can be "private" | "internal" | "public" | |
| 72 | + issues: <%= @gitlab_default_projects_features_issues %> | |
| 73 | + merge_requests: <%= @gitlab_default_projects_features_merge_requests %> | |
| 74 | + wiki: <%= @gitlab_default_projects_features_wiki %> | |
| 75 | + wall: <%= @gitlab_default_projects_features_wall %> | |
| 76 | + snippets: <%= @gitlab_default_projects_features_snippets %> | |
| 77 | + visibility_level: "<%= @gitlab_default_projects_features_visibility_level %>" # can be "private" | "internal" | "public" | |
| 78 | 78 | |
| 79 | 79 | ## External issues trackers |
| 80 | 80 | issues_tracker: |
| 81 | - # redmine: | |
| 82 | - # title: "Redmine" | |
| 83 | - # ## If not nil, link 'Issues' on project page will be replaced with this | |
| 84 | - # ## Use placeholders: | |
| 85 | - # ## :project_id - GitLab project identifier | |
| 86 | - # ## :issues_tracker_id - Project Name or Id in external issue tracker | |
| 87 | - # project_url: "http://redmine.sample/projects/:issues_tracker_id" | |
| 88 | - # | |
| 89 | - # ## If not nil, links from /#\d/ entities from commit messages will replaced with this | |
| 90 | - # ## Use placeholders: | |
| 91 | - # ## :project_id - GitLab project identifier | |
| 92 | - # ## :issues_tracker_id - Project Name or Id in external issue tracker | |
| 93 | - # ## :id - Issue id (from commit messages) | |
| 94 | - # issues_url: "http://redmine.sample/issues/:id" | |
| 95 | - # | |
| 96 | - # ## If not nil, linkis to creating new issues will be replaced with this | |
| 97 | - # ## Use placeholders: | |
| 98 | - # ## :project_id - GitLab project identifier | |
| 99 | - # ## :issues_tracker_id - Project Name or Id in external issue tracker | |
| 100 | - # new_issue_url: "http://redmine.sample/projects/:issues_tracker_id/issues/new" | |
| 101 | - # | |
| 102 | - # jira: | |
| 103 | - # title: "Atlassian Jira" | |
| 104 | - # project_url: "http://jira.sample/issues/?jql=project=:issues_tracker_id" | |
| 105 | - # issues_url: "http://jira.sample/browse/:id" | |
| 106 | - # new_issue_url: "http://jira.sample/secure/CreateIssue.jspa" | |
| 81 | + <% if @issues_tracker_redmine %> | |
| 82 | + redmine: | |
| 83 | + title: "<%= @issues_tracker_redmine_title %>" | |
| 84 | + ## If not nil, link 'Issues' on project page will be replaced with this | |
| 85 | + ## Use placeholders: | |
| 86 | + ## :project_id - GitLab project identifier | |
| 87 | + ## :issues_tracker_id - Project Name or Id in external issue tracker | |
| 88 | + project_url: "<%= @issues_tracker_redmine_project_url %>" | |
| 89 | + | |
| 90 | + ## If not nil, links from /#\d/ entities from commit messages will replaced with this | |
| 91 | + ## Use placeholders: | |
| 92 | + ## :project_id - GitLab project identifier | |
| 93 | + ## :issues_tracker_id - Project Name or Id in external issue tracker | |
| 94 | + ## :id - Issue id (from commit messages) | |
| 95 | + issues_url: "<%= @issues_tracker_redmine_issues_url %>" | |
| 96 | + | |
| 97 | + ## If not nil, linkis to creating new issues will be replaced with this | |
| 98 | + ## Use placeholders: | |
| 99 | + ## :project_id - GitLab project identifier | |
| 100 | + ## :issues_tracker_id - Project Name or Id in external issue tracker | |
| 101 | + new_issue_url: "<%= @issues_tracker_redmine_new_issue_url %>" | |
| 102 | + <% end %> | |
| 103 | + | |
| 104 | + <% if @issues_tracker_jira %> | |
| 105 | + jira: | |
| 106 | + title: "<%= @issues_tracker_jira_title %>" | |
| 107 | + project_url: "<%= @issues_tracker_jira_project_url %>" | |
| 108 | + issues_url: "<%= @issues_tracker_jira_issues_url %>" | |
| 109 | + new_issue_url: "<%= @issues_tracker_jira_new_issue_url %>" | |
| 110 | + <% end %> | |
| 107 | 111 | |
| 108 | 112 | ## Gravatar |
| 109 | 113 | gravatar: |
| 110 | - enabled: true # Use user avatar image from Gravatar.com (default: true) | |
| 111 | - # plain_url: "http://..." # default: http://www.gravatar.com/avatar/%{hash}?s=%{size}&d=mm | |
| 112 | - # ssl_url: "https://..." # default: https://secure.gravatar.com/avatar/%{hash}?s=%{size}&d=mm | |
| 114 | + enabled: <%= @gravatar_enabled %> # Use user avatar image from Gravatar.com (default: true) | |
| 115 | + plain_url: "<%= @gravatar_plain_url %>" # default: http://www.gravatar.com/avatar/%{hash}?s=%{size}&d=mm | |
| 116 | + ssl_url: "<%= @gravatar_ssl_url %>" # default: https://secure.gravatar.com/avatar/%{hash}?s=%{size}&d=mm | |
| 113 | 117 | |
| 114 | 118 | # |
| 115 | 119 | # 2. Auth settings |
| ... | ... | @@ -119,14 +123,14 @@ production: &base |
| 119 | 123 | # You can inspect a sample of the LDAP users with login access by running: |
| 120 | 124 | # bundle exec rake gitlab:ldap:check RAILS_ENV=production |
| 121 | 125 | ldap: |
| 122 | - enabled: false | |
| 123 | - host: '_your_ldap_server' | |
| 124 | - base: '_the_base_where_you_search_for_users' | |
| 125 | - port: 636 | |
| 126 | - uid: 'sAMAccountName' | |
| 127 | - method: 'ssl' # "tls" or "ssl" or "plain" | |
| 128 | - bind_dn: '_the_full_dn_of_the_user_you_will_bind_with' | |
| 129 | - password: '_the_password_of_the_bind_user' | |
| 126 | + enabled: <%= @ldap_enabled %> | |
| 127 | + host: '<%= @ldap_host %>' | |
| 128 | + base: '<%= @ldap_base %>' | |
| 129 | + port: <%= @ldap_port %> | |
| 130 | + uid: '<%= @ldap_uid %>' | |
| 131 | + method: '<%= @ldap_method %>' # "tls" or "ssl" or "plain" | |
| 132 | + bind_dn: '<%= @ldap_bind_dn %>' | |
| 133 | + password: '<%= @ldap_password %>' | |
| 130 | 134 | # If allow_username_or_email_login is enabled, GitLab will ignore everything |
| 131 | 135 | # after the first '@' in the LDAP username submitted by the user on login. |
| 132 | 136 | # |
| ... | ... | @@ -136,7 +140,7 @@ production: &base |
| 136 | 140 | # |
| 137 | 141 | # If you are using "uid: 'userPrincipalName'" on ActiveDirectory you need to |
| 138 | 142 | # disable this setting, because the userPrincipalName contains an '@'. |
| 139 | - allow_username_or_email_login: true | |
| 143 | + allow_username_or_email_login: <%= @ldap_allow_username_or_email_login %> | |
| 140 | 144 | |
| 141 | 145 | ## OmniAuth settings |
| 142 | 146 | omniauth: |
| ... | ... | @@ -175,24 +179,24 @@ production: &base |
| 175 | 179 | # GitLab Satellites |
| 176 | 180 | satellites: |
| 177 | 181 | # Relative paths are relative to Rails.root (default: tmp/repo_satellites/) |
| 178 | - path: <%= node['gitlab']['gitlab-rails']['satellites_path'] %> | |
| 182 | + path: <%= @satellites_path %> | |
| 179 | 183 | |
| 180 | 184 | ## Backup settings |
| 181 | 185 | backup: |
| 182 | - path: "tmp/backups" # Relative paths are relative to Rails.root (default: tmp/backups/) | |
| 186 | + path: "<%= @backup_path %>" # Relative paths are relative to Rails.root (default: tmp/backups/) | |
| 183 | 187 | # keep_time: 604800 # default: 0 (forever) (in seconds) |
| 184 | 188 | |
| 185 | 189 | ## GitLab Shell settings |
| 186 | 190 | gitlab_shell: |
| 187 | - path: /opt/gitlab/embedded/service/gitlab-shell/ | |
| 191 | + path: <%= @gitlab_shell_path %> | |
| 188 | 192 | |
| 189 | 193 | # REPOS_PATH MUST NOT BE A SYMLINK!!! |
| 190 | - repos_path: <%= node['gitlab']['gitlab-rails']['repositories_path'] %> | |
| 191 | - hooks_path: /opt/gitlab/embedded/service/gitlab-shell/hooks/ | |
| 194 | + repos_path: <%= @gitlab_shell_repos_path %> | |
| 195 | + hooks_path: <%= @gitlab_shell_hooks_path %> | |
| 192 | 196 | |
| 193 | 197 | # Git over HTTP |
| 194 | - upload_pack: true | |
| 195 | - receive_pack: true | |
| 198 | + upload_pack: <%= @gitlab_shell_upload_pack %> | |
| 199 | + receive_pack: <%= @gitlab_shell_receive_pack %> | |
| 196 | 200 | |
| 197 | 201 | # If you use non-standard ssh port you need to specify it |
| 198 | 202 | # ssh_port: 22 |
| ... | ... | @@ -201,13 +205,13 @@ production: &base |
| 201 | 205 | # CAUTION! |
| 202 | 206 | # Use the default values unless you really know what you are doing |
| 203 | 207 | git: |
| 204 | - bin_path: /opt/gitlab/embedded/bin/git | |
| 208 | + bin_path: <%= @git_bin_path %> | |
| 205 | 209 | # The next value is the maximum memory size grit can use |
| 206 | 210 | # Given in number of bytes per git object (e.g. a commit) |
| 207 | 211 | # This value can be increased if you have very large commits |
| 208 | - max_size: 5242880 # 5.megabytes | |
| 212 | + max_size: <%= @git_max_size %> # 5.megabytes | |
| 209 | 213 | # Git timeout to read a commit, in seconds |
| 210 | - timeout: 10 | |
| 214 | + timeout: <%= @git_timeout %> | |
| 211 | 215 | |
| 212 | 216 | # |
| 213 | 217 | # 4. Extra customization | ... | ... |