diff options
Diffstat (limited to 'app/controllers/commits_controller.rb')
-rw-r--r-- | app/controllers/commits_controller.rb | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/app/controllers/commits_controller.rb b/app/controllers/commits_controller.rb new file mode 100644 index 00000000000..d7daec13f0f --- /dev/null +++ b/app/controllers/commits_controller.rb @@ -0,0 +1,44 @@ +require "base64" + +class CommitsController < ApplicationController + before_filter :project + + # Authorize + before_filter :add_project_abilities + before_filter :authorize_read_project! + + def index + @repo = project.repo + @branch = if !params[:branch].blank? + params[:branch] + elsif !params[:tag].blank? + params[:tag] + else + "master" + end + + if params[:path] + @commits = @repo.log(@branch, params[:path], :max_count => params[:limit] || 100, :skip => params[:offset] || 0) + else + @commits = @repo.commits(@branch, params[:limit] || 100, params[:offset] || 0) + end + + respond_to do |format| + format.html # index.html.erb + format.js + format.json { render json: @commits } + end + end + + def show + @commit = project.repo.commits(params[:id]).first + @notes = project.notes.where(:noteable_id => @commit.id, :noteable_type => "Commit") + @note = @project.notes.new(:noteable_id => @commit.id, :noteable_type => "Commit") + + respond_to do |format| + format.html # show.html.erb + format.js + format.json { render json: @commit } + end + end +end |