Skip to content
Snippets Groups Projects
Unverified Commit 037defc7 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets
Browse files

Move CI variables page to project settings

parent b6564195
Branches
Tags
No related merge requests found
...@@ -16,6 +16,7 @@ v 8.1.0 (unreleased) ...@@ -16,6 +16,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 (unreleased) v 8.0.3 (unreleased)
   
......
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
...@@ -31,4 +31,8 @@ class Projects::ApplicationController < ApplicationController ...@@ -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
...@@ -55,10 +55,6 @@ class Projects::RunnersController < Projects::ApplicationController ...@@ -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
......
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
...@@ -11,11 +11,6 @@ ...@@ -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')
......
...@@ -40,3 +40,8 @@ ...@@ -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
...@@ -9,13 +9,13 @@ ...@@ -9,13 +9,13 @@
%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|
......
...@@ -58,7 +58,6 @@ Gitlab::Application.routes.draw do ...@@ -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
...@@ -591,6 +590,7 @@ Gitlab::Application.routes.draw do ...@@ -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
......
...@@ -2,19 +2,17 @@ require 'spec_helper' ...@@ -2,19 +2,17 @@ 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"
...@@ -23,6 +21,5 @@ describe "Variables" do ...@@ -23,6 +21,5 @@ describe "Variables" do
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.
Please register or to comment