diff options
author | Valery Sizov <vsv2711@gmail.com> | 2015-04-30 18:14:00 +0300 |
---|---|---|
committer | Valery Sizov <vsv2711@gmail.com> | 2015-04-30 18:14:00 +0300 |
commit | d25381b10976380ac06a94d3b0fcc174ef7481df (patch) | |
tree | 6244399d9a891de01d39a63ca9c0826a522e8ab5 | |
parent | 4886b2d58436026fba7499a04ec7b6419c321c76 (diff) | |
download | gitlab-ci-ci_forking.tar.gz |
forking projectsci_forking
-rw-r--r-- | app/models/fork.rb | 12 | ||||
-rw-r--r-- | app/services/create_project_service.rb | 2 | ||||
-rw-r--r-- | app/views/builds/show.html.haml | 2 | ||||
-rw-r--r-- | app/views/projects/_gitlab.html.haml | 5 | ||||
-rw-r--r-- | app/views/projects/_project.html.haml | 10 | ||||
-rw-r--r-- | db/migrate/20150429000160_add_parent_id_to_project.rb | 1 | ||||
-rw-r--r-- | db/schema.rb | 1 |
7 files changed, 25 insertions, 8 deletions
diff --git a/app/models/fork.rb b/app/models/fork.rb new file mode 100644 index 0000000..55e8ac2 --- /dev/null +++ b/app/models/fork.rb @@ -0,0 +1,12 @@ +class Fork < Project + has_many :jobs, primary_key: :parent_id, foreign_key: :project_id, dependent: nil + + # Fork has no own jobs + def build_default_job + nil + end + + def self.model_name + Project.model_name + end +end
\ No newline at end of file diff --git a/app/services/create_project_service.rb b/app/services/create_project_service.rb index 5cca00f..2b6dc91 100644 --- a/app/services/create_project_service.rb +++ b/app/services/create_project_service.rb @@ -2,7 +2,7 @@ class CreateProjectService include Rails.application.routes.url_helpers def execute(current_user, params, project_route, forked_project = nil) - @project = Project.parse(params) + @project = forked_project? ? Fork.parse(params) : Project.parse(params) Project.transaction do @project.build_default_job diff --git a/app/views/builds/show.html.haml b/app/views/builds/show.html.haml index d26bee0..9be3a58 100644 --- a/app/views/builds/show.html.haml +++ b/app/views/builds/show.html.haml @@ -2,7 +2,7 @@ = link_to @project.name, @project @ = @commit.short_sha - - if current_user.can_manage_project?(@project.gitlab_id) + - if current_user.can_manage_project?(@project.gitlab_id) && !@project.fork? .pull-right = link_to project_jobs_path(@project), class: "btn btn-default btn-small" do %i.icon-edit.icon-white diff --git a/app/views/projects/_gitlab.html.haml b/app/views/projects/_gitlab.html.haml index 9847842..55a959d 100644 --- a/app/views/projects/_gitlab.html.haml +++ b/app/views/projects/_gitlab.html.haml @@ -16,19 +16,16 @@ %table.table.projects-table %thead %tr - %th ID %th Project Name %th Last commit %th Access %th Commits - = render @projects + = render partial: "project", collection: @projects - @gl_projects.sort_by(&:name_with_namespace).each do |project| %tr.light %td - \- - %td = project.name_with_namespace %td %small Not added to CI diff --git a/app/views/projects/_project.html.haml b/app/views/projects/_project.html.haml index af2e123..ce25f51 100644 --- a/app/views/projects/_project.html.haml +++ b/app/views/projects/_project.html.haml @@ -1,10 +1,16 @@ - last_commit = project.last_commit %tr.alert{class: commit_status_alert_class(last_commit) } - %td - = project.id + %td = link_to project do %strong= project.name + + + - if project.fork? + %i.icon-code-fork + - else + %i.icon-code + %td - if last_commit #{last_commit.status} (#{commit_link(last_commit)}) diff --git a/db/migrate/20150429000160_add_parent_id_to_project.rb b/db/migrate/20150429000160_add_parent_id_to_project.rb index 9c728b4..d55be41 100644 --- a/db/migrate/20150429000160_add_parent_id_to_project.rb +++ b/db/migrate/20150429000160_add_parent_id_to_project.rb @@ -1,5 +1,6 @@ class AddParentIdToProject < ActiveRecord::Migration def change add_column :projects, :parent_id, :integer + add_column :projects, :type, :string end end diff --git a/db/schema.rb b/db/schema.rb index 77cceaa..5f86d22 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -101,6 +101,7 @@ ActiveRecord::Schema.define(version: 20150429000160) do t.string "coverage_regex" t.boolean "shared_runners_enabled", default: false t.integer "parent_id" + t.string "type" end create_table "runner_projects", force: true do |t| |