+++ /dev/null
-class CommitLoadContext < BaseContext
- def execute
- result = {
- commit: nil,
- suppress_diff: false,
- line_notes: [],
- notes_count: 0,
- note: nil,
- status: :ok
- }
-
- commit = project.repository.commit(params[:id])
-
- if commit
- line_notes = project.notes.for_commit_id(commit.id).inline
-
- result[:commit] = commit
- result[:note] = project.build_commit_note(commit)
- result[:line_notes] = line_notes
- result[:notes_count] = project.notes.for_commit_id(commit.id).count
- result[:branches] = project.repository.branch_names_contains(commit.id)
-
- begin
- result[:suppress_diff] = true if commit.diff_suppress? && !params[:force_show_diff]
- result[:force_suppress_diff] = commit.diff_force_suppress?
- rescue Grit::Git::GitTimeout
- result[:suppress_diff] = true
- result[:status] = :huge_commit
- end
- end
-
- result
- end
-end
before_filter :authorize_read_project!
before_filter :authorize_code_access!
before_filter :require_non_empty_project
+ before_filter :commit
def show
- result = CommitLoadContext.new(project, current_user, params).execute
+ return git_not_found! unless @commit
- @commit = result[:commit]
+ @line_notes = project.notes.for_commit_id(commit.id).inline
+ @branches = project.repository.branch_names_contains(commit.id)
- if @commit.nil?
- git_not_found!
- return
+ begin
+ @suppress_diff = true if commit.diff_suppress? && !params[:force_show_diff]
+ @force_suppress_diff = commit.diff_force_suppress?
+ rescue Grit::Git::GitTimeout
+ @suppress_diff = true
+ @status = :huge_commit
end
- @suppress_diff = result[:suppress_diff]
- @force_suppress_diff = result[:force_suppress_diff]
-
- @note = result[:note]
- @line_notes = result[:line_notes]
- @branches = result[:branches]
- @notes_count = result[:notes_count]
+ @note = project.build_commit_note(commit)
+ @notes_count = project.notes.for_commit_id(commit.id).count
@notes = project.notes.for_commit_id(@commit.id).not_inline.fresh
@noteable = @commit
-
@comments_allowed = @reply_allowed = true
- @comments_target = { noteable_type: 'Commit',
- commit_id: @commit.id }
+ @comments_target = {
+ noteable_type: 'Commit',
+ commit_id: @commit.id
+ }
respond_to do |format|
format.html do
format.patch { render text: @commit.to_patch }
end
end
+
+ def commit
+ @commit ||= project.repository.commit(params[:id])
+ end
end
# GET /projects/:id/repository/commits/:sha/diff
get ":id/repository/commits/:sha/diff" do
sha = params[:sha]
- result = CommitLoadContext.new(user_project, current_user, {id: sha}).execute
- not_found! "Commit" unless result[:commit]
- result[:commit].diffs
+ commit = user_project.repository.commit(sha)
+ not_found! "Commit" unless commit
+ commit.diffs
end
# Get a project repository tree