deploys_controller.rb
1.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
class DeploysController < ApplicationController
protect_from_forgery :except => :create
skip_before_filter :verify_authenticity_token, :only => :create
skip_before_filter :authenticate_user!, :only => :create
def create
@app = App.find_by_api_key!(params[:api_key])
if params[:deploy]
deploy = {
:username => params[:deploy][:local_username],
:environment => params[:deploy][:rails_env],
:repository => params[:deploy][:scm_repository],
:revision => params[:deploy][:scm_revision],
:message => params[:deploy][:message]
}
end
# handle Heroku's HTTP post deployhook format
deploy ||= {
:username => params[:user],
:environment => params[:rack_env].try(:downcase) || params[:app],
:repository => "git@heroku.com:#{params[:app]}.git",
:revision => params[:head],
}
@deploy = @app.deploys.create!(deploy)
render :xml => @deploy
end
def index
# See AppsController#find_app for the reasoning behind this code.
app = App.find(params[:app_id])
raise(Mongoid::Errors::DocumentNotFound.new(App,app.id)) unless current_user.admin? || current_user.watching?(app)
@deploys = app.deploys.order_by(:created_at.desc).paginate(:page => params[:page], :per_page => 10)
end
end