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 | 12 | end |
| 13 | 13 | |
| 14 | 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 | 21 | redirect_to project_branches_path(@project) |
| 18 | 22 | end |
| 19 | 23 | |
| 20 | 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 | 29 | end |
| 26 | 30 | |
| 27 | 31 | respond_to do |format| | ... | ... |
app/controllers/projects/tags_controller.rb
| ... | ... | @@ -8,20 +8,24 @@ class Projects::TagsController < Projects::ApplicationController |
| 8 | 8 | before_filter :authorize_admin_project!, only: [:destroy] |
| 9 | 9 | |
| 10 | 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 | 12 | end |
| 13 | 13 | |
| 14 | 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 | 21 | redirect_to project_tags_path(@project) |
| 18 | 22 | end |
| 19 | 23 | |
| 20 | 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 | 29 | end |
| 26 | 30 | |
| 27 | 31 | respond_to do |format| | ... | ... |
app/models/event.rb
| ... | ... | @@ -55,14 +55,22 @@ class Event < ActiveRecord::Base |
| 55 | 55 | end |
| 56 | 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 | 67 | Event.create( |
| 60 | 68 | project: project, |
| 61 | 69 | action: Event::PUSHED, |
| 62 | 70 | data: { |
| 63 | 71 | ref: "#{prefix}/#{ref.name}", |
| 64 | - before: ref.commit.id, | |
| 65 | - after: '00000000' | |
| 72 | + before: before, | |
| 73 | + after: after | |
| 66 | 74 | }, |
| 67 | 75 | author_id: user.id |
| 68 | 76 | ) | ... | ... |
app/models/repository.rb
| ... | ... | @@ -35,6 +35,14 @@ class Repository |
| 35 | 35 | commits |
| 36 | 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 | 46 | def add_branch(branch_name, ref) |
| 39 | 47 | Rails.cache.delete(cache_key(:branch_names)) |
| 40 | 48 | ... | ... |