Skip to content
Snippets Groups Projects
Commit 679667d6 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets
Browse files

Merge branch 'master' of gitlab.com:gitlab-org/gitlab-ce

parents 096bb561 ada95df8
No related branches found
No related tags found
No related merge requests found
Loading
@@ -14,6 +14,7 @@ v 8.1.0 (unreleased)
Loading
@@ -14,6 +14,7 @@ v 8.1.0 (unreleased)
- Add notes and SSL verification entries to hook APIs (Ben Boeckel) - Add notes and SSL verification entries to hook APIs (Ben Boeckel)
- Fix grammar in admin area "labels" .nothing-here-block when no labels exist. - Fix grammar in admin area "labels" .nothing-here-block when no labels exist.
- Move CI runners page to project settings area - Move CI runners page to project settings area
- Move CI variables page to project settings area
   
v 8.0.3 v 8.0.3
- Fix URL shown in Slack notifications - Fix URL shown in Slack notifications
Loading
Loading
module Ci
class VariablesController < Ci::ApplicationController
before_action :authenticate_user!
before_action :project
before_action :authorize_access_project!
before_action :authorize_manage_project!
layout 'ci/project'
def show
end
def update
if project.update_attributes(project_params)
Ci::EventService.new.change_project_settings(current_user, project)
redirect_to ci_project_variables_path(project), notice: 'Variables were successfully updated.'
else
render action: 'show'
end
end
private
def project
@project ||= Ci::Project.find(params[:project_id])
end
def project_params
params.require(:project).permit({ variables_attributes: [:id, :key, :value, :_destroy] })
end
end
end
Loading
@@ -31,4 +31,8 @@ class Projects::ApplicationController < ApplicationController
Loading
@@ -31,4 +31,8 @@ class Projects::ApplicationController < ApplicationController
def ci_enabled def ci_enabled
return render_404 unless @project.gitlab_ci? return render_404 unless @project.gitlab_ci?
end end
def ci_project
@ci_project ||= @project.gitlab_ci_project
end
end end
Loading
@@ -55,10 +55,6 @@ class Projects::RunnersController < Projects::ApplicationController
Loading
@@ -55,10 +55,6 @@ class Projects::RunnersController < Projects::ApplicationController
   
protected protected
   
def ci_project
@ci_project = @project.gitlab_ci_project
end
def set_runner def set_runner
@runner ||= @ci_project.runners.find(params[:id]) @runner ||= @ci_project.runners.find(params[:id])
end end
Loading
Loading
class Projects::VariablesController < Projects::ApplicationController
before_action :ci_project
before_action :authorize_admin_project!
layout 'project_settings'
def show
end
def update
if ci_project.update_attributes(project_params)
Ci::EventService.new.change_project_settings(current_user, ci_project)
redirect_to namespace_project_variables_path(project.namespace, project), notice: 'Variables were successfully updated.'
else
render action: 'show'
end
end
private
def project_params
params.require(:project).permit({ variables_attributes: [:id, :key, :value, :_destroy] })
end
end
module AuthHelper module AuthHelper
PROVIDERS_WITH_ICONS = %w(twitter github gitlab bitbucket google_oauth2).freeze PROVIDERS_WITH_ICONS = %w(twitter github gitlab bitbucket google_oauth2).freeze
FORM_BASED_PROVIDERS = [/\Aldap/, 'kerberos', 'crowd'].freeze FORM_BASED_PROVIDERS = [/\Aldap/, 'crowd'].freeze
   
def ldap_enabled? def ldap_enabled?
Gitlab.config.ldap.enabled Gitlab.config.ldap.enabled
Loading
Loading
Loading
@@ -11,11 +11,6 @@
Loading
@@ -11,11 +11,6 @@
%span %span
Commits Commits
%span.count= @project.commits.count %span.count= @project.commits.count
= nav_link path: 'variables#show' do
= link_to ci_project_variables_path(@project) do
= icon('code fw')
%span
Variables
= nav_link path: 'web_hooks#index' do = nav_link path: 'web_hooks#index' do
= link_to ci_project_web_hooks_path(@project) do = link_to ci_project_web_hooks_path(@project) do
= icon('link fw') = icon('link fw')
Loading
Loading
Loading
@@ -40,3 +40,8 @@
Loading
@@ -40,3 +40,8 @@
= icon('cog fw') = icon('cog fw')
%span %span
Runners Runners
= nav_link(controller: :variables) do
= link_to namespace_project_variables_path(@project.namespace, @project) do
= icon('code fw')
%span
Variables
%h3.page-title %h3.page-title
Secret Variables Secret Variables
   
%p.light %p.light
These variables will be set to environment by the runner and will be hidden in the build log. These variables will be set to environment by the runner and will be hidden in the build log.
%br %br
So you can use them for passwords, secret keys or whatever you want. So you can use them for passwords, secret keys or whatever you want.
   
%hr %hr
   
   
= nested_form_for @project, url: url_for(controller: 'ci/variables', action: 'update'), html: { class: 'form-horizontal' } do |f| = nested_form_for @ci_project, url: url_for(controller: 'projects/variables', action: 'update'), html: { class: 'form-horizontal' } do |f|
- if @project.errors.any? - if @project.errors.any?
#error_explanation #error_explanation
%p.lead= "#{pluralize(@project.errors.count, "error")} prohibited this project from being saved:" %p.lead= "#{pluralize(@ci_project.errors.count, "error")} prohibited this project from being saved:"
.alert.alert-error .alert.alert-error
%ul %ul
- @project.errors.full_messages.each do |msg| - @ci_project.errors.full_messages.each do |msg|
%li= msg %li= msg
   
= f.fields_for :variables do |variable_form| = f.fields_for :variables do |variable_form|
Loading
Loading
Loading
@@ -58,7 +58,6 @@ Gitlab::Application.routes.draw do
Loading
@@ -58,7 +58,6 @@ Gitlab::Application.routes.draw do
resources :runner_projects, only: [:create, :destroy] resources :runner_projects, only: [:create, :destroy]
   
resources :events, only: [:index] resources :events, only: [:index]
resource :variables, only: [:show, :update]
end end
   
resource :user_sessions do resource :user_sessions do
Loading
@@ -591,6 +590,7 @@ Gitlab::Application.routes.draw do
Loading
@@ -591,6 +590,7 @@ Gitlab::Application.routes.draw do
resources :branches, only: [:index, :new, :create, :destroy], constraints: { id: Gitlab::Regex.git_reference_regex } resources :branches, only: [:index, :new, :create, :destroy], constraints: { id: Gitlab::Regex.git_reference_regex }
resources :tags, only: [:index, :new, :create, :destroy], constraints: { id: Gitlab::Regex.git_reference_regex } resources :tags, only: [:index, :new, :create, :destroy], constraints: { id: Gitlab::Regex.git_reference_regex }
resources :protected_branches, only: [:index, :create, :update, :destroy], constraints: { id: Gitlab::Regex.git_reference_regex } resources :protected_branches, only: [:index, :create, :update, :destroy], constraints: { id: Gitlab::Regex.git_reference_regex }
resource :variables, only: [:show, :update]
   
resources :hooks, only: [:index, :create, :destroy], constraints: { id: /\d+/ } do resources :hooks, only: [:index, :create, :destroy], constraints: { id: /\d+/ } do
member do member do
Loading
Loading
require 'spec_helper' require 'spec_helper'
   
describe "Variables" do describe "Variables" do
let(:user) { create(:user) } let(:user) { create(:user) }
before { login_as(user) }
before do
login_as(user)
end
   
describe "specific runners" do describe "specific runners" do
before do before do
@project = FactoryGirl.create :ci_project @project = FactoryGirl.create :ci_project
@project.gl_project.team << [user, :master] @gl_project = @project.gl_project
@gl_project.team << [user, :master]
end end
   
it "creates variable", js: true do it "creates variable", js: true do
visit ci_project_variables_path(@project) visit namespace_project_variables_path(@gl_project.namespace, @gl_project)
click_on "Add a variable" click_on "Add a variable"
fill_in "Key", with: "SECRET_KEY" fill_in "Key", with: "SECRET_KEY"
fill_in "Value", with: "SECRET_VALUE" fill_in "Value", with: "SECRET_VALUE"
click_on "Save changes" click_on "Save changes"
expect(page).to have_content("Variables were successfully updated.") expect(page).to have_content("Variables were successfully updated.")
expect(@project.variables.count).to eq(1) expect(@project.variables.count).to eq(1)
end end
end end
end end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment