Added tag_push_events to the web_hooks
* Added a scope to the web_hooks model * Added extra checkbooks in de hooks overview window
This commit is contained in:
parent
d02e129a54
commit
9a676ccc0a
5 changed files with 85 additions and 49 deletions
|
@ -17,9 +17,10 @@
|
|||
class ProjectHook < WebHook
|
||||
belongs_to :project
|
||||
|
||||
attr_accessible :push_events, :issues_events, :merge_requests_events
|
||||
attr_accessible :push_events, :issues_events, :merge_requests_events, :tag_push_events
|
||||
|
||||
scope :push_hooks, -> { where(push_events: true) }
|
||||
scope :tag_push_hooks, -> { where(tag_push_events: true) }
|
||||
scope :issue_hooks, -> { where(issues_events: true) }
|
||||
scope :merge_request_hooks, -> { where(merge_requests_events: true) }
|
||||
end
|
||||
|
|
|
@ -26,6 +26,13 @@
|
|||
%strong Push events
|
||||
%p.light
|
||||
This url will be triggered by a push to the repository
|
||||
%div
|
||||
= f.check_box :tag_push_events, class: 'pull-left'
|
||||
.prepend-left-20
|
||||
= f.label :tag_push_events, class: 'list-label' do
|
||||
%strong Tag push events
|
||||
%p.light
|
||||
This url will be triggered when a new tag is pushed to the repository
|
||||
%div
|
||||
= f.check_box :issues_events, class: 'pull-left'
|
||||
.prepend-left-20
|
||||
|
@ -56,6 +63,6 @@
|
|||
.clearfix
|
||||
%span.monospace= hook.url
|
||||
%p
|
||||
- %w(push_events issues_events merge_requests_events).each do |trigger|
|
||||
- %w(push_events tag_push_events issues_events merge_requests_events).each do |trigger|
|
||||
- if hook.send(trigger)
|
||||
%span.label.label-gray= trigger.titleize
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
class AddTagPushHooksToProjectHook < ActiveRecord::Migration
|
||||
def change
|
||||
add_column :web_hooks, :tag_push_events, :boolean, default: false
|
||||
end
|
||||
end
|
90
db/schema.rb
90
db/schema.rb
|
@ -11,15 +11,18 @@
|
|||
#
|
||||
# It's strongly recommended that you check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(version: 20140304005354) do
|
||||
ActiveRecord::Schema.define(version: 20140305193308) do
|
||||
|
||||
# These are extensions that must be enabled in order to support this database
|
||||
enable_extension "plpgsql"
|
||||
|
||||
create_table "broadcast_messages", force: true do |t|
|
||||
t.text "message", null: false
|
||||
t.datetime "starts_at"
|
||||
t.datetime "ends_at"
|
||||
t.integer "alert_type"
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.string "color"
|
||||
t.string "font"
|
||||
end
|
||||
|
@ -27,8 +30,8 @@ ActiveRecord::Schema.define(version: 20140304005354) do
|
|||
create_table "deploy_keys_projects", force: true do |t|
|
||||
t.integer "deploy_key_id", null: false
|
||||
t.integer "project_id", null: false
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
end
|
||||
|
||||
add_index "deploy_keys_projects", ["project_id"], name: "index_deploy_keys_projects_on_project_id", using: :btree
|
||||
|
@ -49,8 +52,8 @@ ActiveRecord::Schema.define(version: 20140304005354) do
|
|||
t.string "title"
|
||||
t.text "data"
|
||||
t.integer "project_id"
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.integer "action"
|
||||
t.integer "author_id"
|
||||
end
|
||||
|
@ -65,8 +68,8 @@ ActiveRecord::Schema.define(version: 20140304005354) do
|
|||
create_table "forked_project_links", force: true do |t|
|
||||
t.integer "forked_to_project_id", null: false
|
||||
t.integer "forked_from_project_id", null: false
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
end
|
||||
|
||||
add_index "forked_project_links", ["forked_to_project_id"], name: "index_forked_project_links_on_forked_to_project_id", unique: true, using: :btree
|
||||
|
@ -76,8 +79,8 @@ ActiveRecord::Schema.define(version: 20140304005354) do
|
|||
t.integer "assignee_id"
|
||||
t.integer "author_id"
|
||||
t.integer "project_id"
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.integer "position", default: 0
|
||||
t.string "branch_name"
|
||||
t.text "description"
|
||||
|
@ -95,8 +98,8 @@ ActiveRecord::Schema.define(version: 20140304005354) do
|
|||
|
||||
create_table "keys", force: true do |t|
|
||||
t.integer "user_id"
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.text "key"
|
||||
t.string "title"
|
||||
t.string "type"
|
||||
|
@ -107,8 +110,8 @@ ActiveRecord::Schema.define(version: 20140304005354) do
|
|||
|
||||
create_table "merge_request_diffs", force: true do |t|
|
||||
t.string "state", default: "collected", null: false
|
||||
t.text "st_commits", limit: 2147483647
|
||||
t.text "st_diffs", limit: 2147483647
|
||||
t.text "st_commits"
|
||||
t.text "st_diffs"
|
||||
t.integer "merge_request_id", null: false
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
|
@ -123,8 +126,8 @@ ActiveRecord::Schema.define(version: 20140304005354) do
|
|||
t.integer "author_id"
|
||||
t.integer "assignee_id"
|
||||
t.string "title"
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.integer "milestone_id"
|
||||
t.string "state"
|
||||
t.string "merge_status"
|
||||
|
@ -138,7 +141,7 @@ ActiveRecord::Schema.define(version: 20140304005354) do
|
|||
add_index "merge_requests", ["created_at"], name: "index_merge_requests_on_created_at", using: :btree
|
||||
add_index "merge_requests", ["milestone_id"], name: "index_merge_requests_on_milestone_id", using: :btree
|
||||
add_index "merge_requests", ["source_branch"], name: "index_merge_requests_on_source_branch", using: :btree
|
||||
add_index "merge_requests", ["source_project_id"], name: "index_merge_requests_on_project_id", using: :btree
|
||||
add_index "merge_requests", ["source_project_id"], name: "index_merge_requests_on_source_project_id", using: :btree
|
||||
add_index "merge_requests", ["target_branch"], name: "index_merge_requests_on_target_branch", using: :btree
|
||||
add_index "merge_requests", ["title"], name: "index_merge_requests_on_title", using: :btree
|
||||
|
||||
|
@ -147,8 +150,8 @@ ActiveRecord::Schema.define(version: 20140304005354) do
|
|||
t.integer "project_id", null: false
|
||||
t.text "description"
|
||||
t.date "due_date"
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.string "state"
|
||||
t.integer "iid"
|
||||
end
|
||||
|
@ -160,8 +163,8 @@ ActiveRecord::Schema.define(version: 20140304005354) do
|
|||
t.string "name", null: false
|
||||
t.string "path", null: false
|
||||
t.integer "owner_id"
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.string "type"
|
||||
t.string "description", default: "", null: false
|
||||
t.string "avatar"
|
||||
|
@ -176,15 +179,15 @@ ActiveRecord::Schema.define(version: 20140304005354) do
|
|||
t.text "note"
|
||||
t.string "noteable_type"
|
||||
t.integer "author_id"
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.integer "project_id"
|
||||
t.string "attachment"
|
||||
t.string "line_code"
|
||||
t.string "commit_id"
|
||||
t.integer "noteable_id"
|
||||
t.text "st_diff"
|
||||
t.boolean "system", default: false, null: false
|
||||
t.text "st_diff"
|
||||
end
|
||||
|
||||
add_index "notes", ["author_id"], name: "index_notes_on_author_id", using: :btree
|
||||
|
@ -199,8 +202,8 @@ ActiveRecord::Schema.define(version: 20140304005354) do
|
|||
t.string "name"
|
||||
t.string "path"
|
||||
t.text "description"
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.integer "creator_id"
|
||||
t.boolean "issues_enabled", default: true, null: false
|
||||
t.boolean "wall_enabled", default: true, null: false
|
||||
|
@ -217,15 +220,15 @@ ActiveRecord::Schema.define(version: 20140304005354) do
|
|||
t.boolean "archived", default: false, null: false
|
||||
end
|
||||
|
||||
add_index "projects", ["creator_id"], name: "index_projects_on_owner_id", using: :btree
|
||||
add_index "projects", ["creator_id"], name: "index_projects_on_creator_id", using: :btree
|
||||
add_index "projects", ["last_activity_at"], name: "index_projects_on_last_activity_at", using: :btree
|
||||
add_index "projects", ["namespace_id"], name: "index_projects_on_namespace_id", using: :btree
|
||||
|
||||
create_table "protected_branches", force: true do |t|
|
||||
t.integer "project_id", null: false
|
||||
t.string "name", null: false
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
end
|
||||
|
||||
add_index "protected_branches", ["project_id"], name: "index_protected_branches_on_project_id", using: :btree
|
||||
|
@ -235,8 +238,8 @@ ActiveRecord::Schema.define(version: 20140304005354) do
|
|||
t.string "title"
|
||||
t.string "token"
|
||||
t.integer "project_id", null: false
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.boolean "active", default: false, null: false
|
||||
t.string "project_url"
|
||||
t.string "subdomain"
|
||||
|
@ -249,11 +252,11 @@ ActiveRecord::Schema.define(version: 20140304005354) do
|
|||
|
||||
create_table "snippets", force: true do |t|
|
||||
t.string "title"
|
||||
t.text "content", limit: 2147483647
|
||||
t.text "content"
|
||||
t.integer "author_id", null: false
|
||||
t.integer "project_id"
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.string "file_name"
|
||||
t.datetime "expires_at"
|
||||
t.boolean "private", default: true, null: false
|
||||
|
@ -293,8 +296,8 @@ ActiveRecord::Schema.define(version: 20140304005354) do
|
|||
t.datetime "last_sign_in_at"
|
||||
t.string "current_sign_in_ip"
|
||||
t.string "last_sign_in_ip"
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.string "name"
|
||||
t.boolean "admin", default: false, null: false
|
||||
t.integer "projects_limit", default: 10
|
||||
|
@ -338,8 +341,8 @@ ActiveRecord::Schema.define(version: 20140304005354) do
|
|||
t.integer "group_access", null: false
|
||||
t.integer "group_id", null: false
|
||||
t.integer "user_id", null: false
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.integer "notification_level", default: 3, null: false
|
||||
end
|
||||
|
||||
|
@ -348,8 +351,8 @@ ActiveRecord::Schema.define(version: 20140304005354) do
|
|||
create_table "users_projects", force: true do |t|
|
||||
t.integer "user_id", null: false
|
||||
t.integer "project_id", null: false
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.integer "project_access", default: 0, null: false
|
||||
t.integer "notification_level", default: 3, null: false
|
||||
end
|
||||
|
@ -361,13 +364,14 @@ ActiveRecord::Schema.define(version: 20140304005354) do
|
|||
create_table "web_hooks", force: true do |t|
|
||||
t.string "url"
|
||||
t.integer "project_id"
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.string "type", default: "ProjectHook"
|
||||
t.integer "service_id"
|
||||
t.boolean "push_events", default: true, null: false
|
||||
t.boolean "issues_events", default: false, null: false
|
||||
t.boolean "merge_requests_events", default: false, null: false
|
||||
t.boolean "tag_push_events", default: false
|
||||
end
|
||||
|
||||
add_index "web_hooks", ["project_id"], name: "index_web_hooks_on_project_id", using: :btree
|
||||
|
|
19
spec/models/project_hook_spec.rb
Normal file
19
spec/models/project_hook_spec.rb
Normal file
|
@ -0,0 +1,19 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe ProjectHook do
|
||||
describe '.push_hooks' do
|
||||
it 'should return hooks for push events only' do
|
||||
hook = create(:project_hook, push_events: true)
|
||||
hook2 = create(:project_hook, push_events: false)
|
||||
expect(ProjectHook.push_hooks).to eq([hook])
|
||||
end
|
||||
end
|
||||
|
||||
describe '.tag_push_hooks' do
|
||||
it 'should return hooks for tag push events only' do
|
||||
hook = create(:project_hook, tag_push_events: true)
|
||||
hook2 = create(:project_hook, tag_push_events: false)
|
||||
expect(ProjectHook.tag_push_hooks).to eq([hook])
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue