gitlab-org--gitlab-foss/app/controllers/projects/commit_controller.rb

46 lines
1.2 KiB
Ruby
Raw Normal View History

2012-09-17 14:08:02 +00:00
# Controller for a specific Commit
#
# Not to be confused with CommitsController, plural.
class Projects::CommitController < Projects::ApplicationController
2012-09-17 14:08:02 +00:00
# Authorize
before_filter :authorize_read_project!
before_filter :authorize_code_access!
before_filter :require_non_empty_project
def show
result = CommitLoadContext.new(project, current_user, params).execute
2012-09-17 14:08:02 +00:00
@commit = result[:commit]
2013-06-12 13:43:58 +00:00
if @commit.nil?
git_not_found!
return
end
2012-09-17 14:08:02 +00:00
2012-12-02 19:43:39 +00:00
@suppress_diff = result[:suppress_diff]
@force_suppress_diff = result[:force_suppress_diff]
2012-12-02 19:43:39 +00:00
@note = result[:note]
@line_notes = result[:line_notes]
@branches = result[:branches]
2012-12-02 19:43:39 +00:00
@notes_count = result[:notes_count]
@notes = project.notes.for_commit_id(@commit.id).not_inline.fresh
@noteable = @commit
2012-12-02 19:43:39 +00:00
@comments_allowed = @reply_allowed = true
@comments_target = { noteable_type: 'Commit',
2013-01-02 19:49:27 +00:00
commit_id: @commit.id }
respond_to do |format|
format.html do
if result[:status] == :huge_commit
render "huge_commit" and return
end
end
2012-09-17 14:08:02 +00:00
2012-11-22 19:49:44 +00:00
format.diff { render text: @commit.to_diff }
format.patch { render text: @commit.to_patch }
2012-09-17 14:08:02 +00:00
end
end
end