Commit 8587e3a357add7371b2286f3ab642c9ea8f58e2e
1 parent
2a37db4c
Exists in
master
and in
4 other branches
create corresponding events when create branch/tag with UI
Showing
4 changed files
with
36 additions
and
12 deletions
Show diff stats
app/controllers/projects/branches_controller.rb
@@ -12,16 +12,20 @@ class Projects::BranchesController < Projects::ApplicationController | @@ -12,16 +12,20 @@ class Projects::BranchesController < Projects::ApplicationController | ||
12 | end | 12 | end |
13 | 13 | ||
14 | def create | 14 | def create |
15 | - @project.repository.add_branch(params[:branch_name], params[:ref]) | 15 | + @repository.add_branch(params[:branch_name], params[:ref]) |
16 | + | ||
17 | + if new_branch = @repository.find_branch(params[:branch_name]) | ||
18 | + Event.create_ref_event(@project, current_user, new_branch, 'add') | ||
19 | + end | ||
16 | 20 | ||
17 | redirect_to project_branches_path(@project) | 21 | redirect_to project_branches_path(@project) |
18 | end | 22 | end |
19 | 23 | ||
20 | def destroy | 24 | def destroy |
21 | - branch = @project.repository.branches.find { |branch| branch.name == params[:id] } | 25 | + branch = @repository.find_branch(params[:id]) |
22 | 26 | ||
23 | - if branch && @project.repository.rm_branch(branch.name) | ||
24 | - Event.create_rm_ref(@project, current_user, branch) | 27 | + if branch && @repository.rm_branch(branch.name) |
28 | + Event.create_ref_event(@project, current_user, branch, 'rm') | ||
25 | end | 29 | end |
26 | 30 | ||
27 | respond_to do |format| | 31 | respond_to do |format| |
app/controllers/projects/tags_controller.rb
@@ -8,20 +8,24 @@ class Projects::TagsController < Projects::ApplicationController | @@ -8,20 +8,24 @@ class Projects::TagsController < Projects::ApplicationController | ||
8 | before_filter :authorize_admin_project!, only: [:destroy] | 8 | before_filter :authorize_admin_project!, only: [:destroy] |
9 | 9 | ||
10 | def index | 10 | def index |
11 | - @tags = Kaminari.paginate_array(@project.repository.tags).page(params[:page]).per(30) | 11 | + @tags = Kaminari.paginate_array(@repository.tags).page(params[:page]).per(30) |
12 | end | 12 | end |
13 | 13 | ||
14 | def create | 14 | def create |
15 | - @project.repository.add_tag(params[:tag_name], params[:ref]) | 15 | + @repository.add_tag(params[:tag_name], params[:ref]) |
16 | + | ||
17 | + if new_tag = @repository.find_tag(params[:tag_name]) | ||
18 | + Event.create_ref_event(@project, current_user, new_tag, 'add', 'refs/tags') | ||
19 | + end | ||
16 | 20 | ||
17 | redirect_to project_tags_path(@project) | 21 | redirect_to project_tags_path(@project) |
18 | end | 22 | end |
19 | 23 | ||
20 | def destroy | 24 | def destroy |
21 | - tag = @project.repository.tags.find { |tag| tag.name == params[:id] } | 25 | + tag = @repository.find_tag(params[:id]) |
22 | 26 | ||
23 | - if tag && @project.repository.rm_tag(tag.name) | ||
24 | - Event.create_rm_ref(@project, current_user, tag, 'refs/tags') | 27 | + if tag && @repository.rm_tag(tag.name) |
28 | + Event.create_ref_event(@project, current_user, tag, 'rm', 'refs/tags') | ||
25 | end | 29 | end |
26 | 30 | ||
27 | respond_to do |format| | 31 | respond_to do |format| |
app/models/event.rb
@@ -55,14 +55,22 @@ class Event < ActiveRecord::Base | @@ -55,14 +55,22 @@ class Event < ActiveRecord::Base | ||
55 | end | 55 | end |
56 | end | 56 | end |
57 | 57 | ||
58 | - def create_rm_ref(project, user, ref, prefix = 'refs/heads') | 58 | + def create_ref_event(project, user, ref, action = 'add', prefix = 'refs/heads') |
59 | + if action.to_s == 'add' | ||
60 | + before = '00000000' | ||
61 | + after = ref.commit.id | ||
62 | + else | ||
63 | + before = ref.commit.id | ||
64 | + after = '00000000' | ||
65 | + end | ||
66 | + | ||
59 | Event.create( | 67 | Event.create( |
60 | project: project, | 68 | project: project, |
61 | action: Event::PUSHED, | 69 | action: Event::PUSHED, |
62 | data: { | 70 | data: { |
63 | ref: "#{prefix}/#{ref.name}", | 71 | ref: "#{prefix}/#{ref.name}", |
64 | - before: ref.commit.id, | ||
65 | - after: '00000000' | 72 | + before: before, |
73 | + after: after | ||
66 | }, | 74 | }, |
67 | author_id: user.id | 75 | author_id: user.id |
68 | ) | 76 | ) |
app/models/repository.rb
@@ -35,6 +35,14 @@ class Repository | @@ -35,6 +35,14 @@ class Repository | ||
35 | commits | 35 | commits |
36 | end | 36 | end |
37 | 37 | ||
38 | + def find_branch(name) | ||
39 | + branches.find { |branch| branch.name == name } | ||
40 | + end | ||
41 | + | ||
42 | + def find_tag(name) | ||
43 | + tags.find { |tag| tag.name == name } | ||
44 | + end | ||
45 | + | ||
38 | def add_branch(branch_name, ref) | 46 | def add_branch(branch_name, ref) |
39 | Rails.cache.delete(cache_key(:branch_names)) | 47 | Rails.cache.delete(cache_key(:branch_names)) |
40 | 48 |