web hooks scaffold started

This commit is contained in:
Dmitriy Zaporozhets 2012-01-04 00:42:14 +02:00
parent 8d7aaf0e55
commit 2dae0e18e0
10 changed files with 85 additions and 4 deletions

View file

@ -0,0 +1,43 @@
class HooksController < ApplicationController
before_filter :authenticate_user!
before_filter :project
layout "project"
# Authorize
before_filter :add_project_abilities
before_filter :authorize_read_project!
before_filter :authorize_admin_project!, :only => [:new, :create, :destroy]
respond_to :html
def index
@hooks = @project.web_hooks
end
def new
@hook = @project.web_hooks.new
end
def create
@hook = @project.web_hooks.new(params[:hook])
@hook.author = current_user
@hook.save
if @hook.valid?
redirect_to [@project, @hook]
else
respond_with(@hook)
end
end
def show
@hook = @project.web_hooks.find(params[:id])
end
def destroy
@hook = @project.web_hooks.find(params[:id])
@hook.destroy
redirect_to project_hooks_path(@project)
end
end

View file

@ -68,7 +68,7 @@ class ProjectsController < ApplicationController
def show
return render "projects/empty" unless @project.repo_exists? && @project.has_commits?
limit = (params[:limit] || 20).to_i
limit = (params[:limit] || 10).to_i
@activities = @project.cached_updates(limit)
end

View file

@ -9,7 +9,7 @@ class RepositoriesController < ApplicationController
layout "project"
def show
@activities = @project.fresh_commits(20)
@activities = @project.fresh_commits(10)
end
def branches

View file

@ -82,5 +82,6 @@ end
# linkedin :string(255) default(""), not null
# twitter :string(255) default(""), not null
# authentication_token :string(255)
# dark_scheme :boolean default(FALSE), not null
#

View file

@ -18,3 +18,14 @@ class WebHook < ActiveRecord::Base
# There was a problem calling this web hook, let's forget about it.
end
end
# == Schema Information
#
# Table name: web_hooks
#
# id :integer not null, primary key
# url :string(255)
# project_id :integer
# created_at :datetime
# updated_at :datetime
#

View file

@ -0,0 +1,10 @@
= render "repositories/head"
- unless @hooks.empty?
%div.update-data.ui-box.ui-box-small
.data
- @hooks.each do |hook|
%a.update-item{:href => project_hooks_path(@project, hook)}
%span.update-title{:style => "margin-bottom:0px;"}
= hook.url
- else
%h3 No hooks

View file

@ -1,4 +1,6 @@
class PostReceive
@queue = :post_receive
def self.perform(reponame, oldrev, newrev, ref)
project = Project.find_by_path(reponame)
return false if project.nil?

View file

@ -1,8 +1,8 @@
Gitlab::Application.routes.draw do
# Optionally, enable Resque here
# require 'resque/server'
# mount Resque::Server.new, at: '/info/resque'
require 'resque/server'
mount Resque::Server.new, at: '/info/resque'
get 'tags'=> 'tags#index'
get 'tags/:tag' => 'projects#index'
@ -83,6 +83,8 @@ Gitlab::Application.routes.draw do
get :commits
end
end
resources :hooks, :only => [:index, :new, :create, :destroy, :show]
resources :snippets
resources :commits
resources :team_members

View file

@ -65,5 +65,6 @@ end
# linkedin :string(255) default(""), not null
# twitter :string(255) default(""), not null
# authentication_token :string(255)
# dark_scheme :boolean default(FALSE), not null
#

View file

@ -52,3 +52,14 @@ describe WebHook do
end
end
end
# == Schema Information
#
# Table name: web_hooks
#
# id :integer not null, primary key
# url :string(255)
# project_id :integer
# created_at :datetime
# updated_at :datetime
#