capistrano-hook 0.3.0 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c6734a63af83178f4c7b8199305e4a70aa5e4f31
4
- data.tar.gz: c4b53ab0c45b1874b7b2a9d7283404626407f1a4
3
+ metadata.gz: 9e5f778e0764d7fe69d8750bab671b06838bc931
4
+ data.tar.gz: b485c2534e1d2d94fc80a7f426c9fab725ccda42
5
5
  SHA512:
6
- metadata.gz: 4621f0f1b45015a06115978e31ce8333871db88fae44ad8f59ff40efce5adc516d5aa86c7357ad237abdf2d17e9c8d46a1a3c9fb3a60b59d1eeec8697217f378
7
- data.tar.gz: 44be5d2351f624f3314638837899e3806bb66ee83a8c06ec5245ff3283332ff8bf9de264eec3cbcc3abb634087fca346efdd645d23f33ed0dd2b8ec8b90478ee
6
+ metadata.gz: c2949d100809fa35d82bfb433558920b4673a20002bdb7a48541689aed549843791cdba36b8b117a94e1902185b67b13a05cd27b554384c66a72d28aecf1e111
7
+ data.tar.gz: 8b652526794b49792f82c3bf43ec0777a21de3b4fab1b3d6b36a5fa989b53614c175ddb8534aa1ab17ce0df2fe68e0ee8fb99ea2ffc2a209328135cbf4495bf0
@@ -1,16 +1,14 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 1.9.3
4
3
  - 2.0.0
5
4
  - 2.1
6
5
  - 2.2.2
6
+ - 2.2.3
7
7
  - ruby-head
8
- - jruby-19mode
9
8
  - rbx-2
10
9
  matrix:
11
10
  allow_failures:
12
11
  - rvm: ruby-head
13
- - rvm: jruby-19mode
14
12
  - rvm: rbx-2
15
13
  before_install: gem install bundler -v 1.10.5
16
14
  script:
data/README.md CHANGED
@@ -1,12 +1,19 @@
1
1
  # Capistrano::Hook
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/capistrano-hook.svg)](http://badge.fury.io/rb/capistrano-hook)
4
- [![Build Status](https://travis-ci.org/yulii/capistrano-hook.svg)](https://travis-ci.org/yulii/capistrano-hook)
4
+ [![Build Status](https://travis-ci.org/yulii/capistrano-hook.svg?branch=master)](https://travis-ci.org/yulii/capistrano-hook)
5
5
  [![Code Climate](https://codeclimate.com/github/yulii/capistrano-hook/badges/gpa.svg)](https://codeclimate.com/github/yulii/capistrano-hook)
6
6
  [![Dependency Status](https://gemnasium.com/yulii/capistrano-hook.svg)](https://gemnasium.com/yulii/capistrano-hook)
7
7
 
8
8
  Notification hooks include start, finish and fail of deployments.
9
9
 
10
+ ## Features
11
+
12
+ ### Webhoook
13
+
14
+ Notify Capistrano deployments via webhook API.
15
+ Just set the webhook URL and message.
16
+
10
17
  ## Installation
11
18
 
12
19
  Add this line to your application's Gemfile:
@@ -23,7 +30,9 @@ Add this line to your Capfile:
23
30
  require 'capistrano/hook'
24
31
  ```
25
32
 
26
- Capistrano hook will not be run with no settings. You can setting the variables shown below.
33
+ ### Webhook
34
+
35
+ Webhook will not be run with no settings. You can setting the variables shown below.
27
36
 
28
37
  ```ruby
29
38
  set :webhook_url, 'https://yulii.github.io/services'
@@ -34,15 +43,29 @@ set :webhook_reverting_payload, { text: 'Reverting...' }
34
43
  set :webhook_rollbacked_payload, { text: 'Rollback has been completed!' }
35
44
  ```
36
45
 
46
+ ### Testing
47
+
37
48
  Test your setup by running:
49
+
38
50
  ```
39
- cap production webhook:post:starting
40
- cap production webhook:post:finished
41
- cap production webhook:post:failed
42
- cap production webhook:post:reverting
43
- cap production webhook:post:rollbacked
44
- ```
51
+ # List the webhook configured variables
52
+ $ cap production webhook:config:list
53
+
54
+ # Post a starting message
55
+ $ cap production webhook:post:starting
56
+
57
+ # Post a finished message
58
+ $ cap production webhook:post:finished
45
59
 
60
+ # Post a failed message
61
+ $ cap production webhook:post:failed
62
+
63
+ # Post a reverting message
64
+ $ cap production webhook:post:reverting
65
+
66
+ # Post a rollbacked message
67
+ $ cap production webhook:post:rollbacked
68
+ ```
46
69
 
47
70
  ### Slack
48
71
 
@@ -1,5 +1,5 @@
1
1
  module Capistrano
2
2
  module Hook
3
- VERSION = '0.3.0'.freeze
3
+ VERSION = '0.3.2'.freeze
4
4
  end
5
5
  end
@@ -13,9 +13,13 @@ module Capistrano
13
13
  def post(params)
14
14
  # TODO: rescue / logger
15
15
  http.start do
16
- request = Net::HTTP::Post.new(uri.path)
17
- request.set_form_data(payload: params.to_json)
18
- http.request(request)
16
+ http.request(request(params))
17
+ end
18
+ end
19
+
20
+ def request(params)
21
+ Net::HTTP::Post.new(uri.path).tap do |o|
22
+ o.set_form_data(payload: params.to_json)
19
23
  end
20
24
  end
21
25
 
@@ -1,18 +1,15 @@
1
- namespace :webhook do
2
- desc <<-DESC
3
- Capistrano hook will not be run with no settings.
4
-
5
- You can setting the variables shown below.
6
-
7
- set :webhook_url, 'https://yulii.github.io'
8
- set :webhook_starting_payload, { text: 'Now, deploying...' }
9
- set :webhook_finished_payload, { text: 'Deployment has been completed!' }
10
- set :webhook_failed_payload, { text: 'Oops! something went wrong.' }
11
- set :webhook_reverting_payload, { text: 'Reverting...' }
12
- set :webhook_rollbacked_payload, { text: 'Rollback has been completed!' }
13
-
14
- DESC
1
+ # Capistrano hook will not be run with no settings.
2
+ #
3
+ # You can setting the variables shown below.
4
+ #
5
+ # set :webhook_url, 'https://yulii.github.io'
6
+ # set :webhook_starting_payload, { text: 'Now, deploying...' }
7
+ # set :webhook_finished_payload, { text: 'Deployment has been completed!' }
8
+ # set :webhook_failed_payload, { text: 'Oops! something went wrong.' }
9
+ # set :webhook_reverting_payload, { text: 'Reverting...' }
10
+ # set :webhook_rollbacked_payload, { text: 'Rollback has been completed!' }
15
11
 
12
+ namespace :webhook do
16
13
  def webhook(url, payload)
17
14
  return if url.nil? || payload.nil? || payload.empty?
18
15
  info "POST #{url} payload='#{payload}'"
@@ -25,7 +22,28 @@ namespace :webhook do
25
22
  end
26
23
  end
27
24
 
25
+ namespace :config do
26
+ desc 'List the webhook configured variables'
27
+ task :list do
28
+ run_locally do
29
+ keys = [:webhook_url,
30
+ :webhook_starting_payload,
31
+ :webhook_finished_payload,
32
+ :webhook_failed_payload,
33
+ :webhook_reverting_payload,
34
+ :webhook_rollbacked_payload
35
+ ].sort
36
+ padding = keys.max { |a, b| a.length <=> b.length }.length
37
+ keys.each do |key|
38
+ next if fetch(key).nil? || fetch(key).empty?
39
+ puts ":#{key.to_s.ljust(padding)} => #{fetch(key)}"
40
+ end
41
+ end
42
+ end
43
+ end
44
+
28
45
  namespace :post do
46
+ desc 'Post a starting message if :webhook_url and :webhook_starting_payload are present'
29
47
  task :starting do
30
48
  run_locally do
31
49
  url = fetch(:webhook_url)
@@ -34,6 +52,7 @@ namespace :webhook do
34
52
  end
35
53
  end
36
54
 
55
+ desc 'Post a finished message if :webhook_url and :webhook_finished_payload are present'
37
56
  task :finished do
38
57
  run_locally do
39
58
  url = fetch(:webhook_url)
@@ -42,6 +61,7 @@ namespace :webhook do
42
61
  end
43
62
  end
44
63
 
64
+ desc 'Post a failed message if :webhook_url and :webhook_failed_payload are present'
45
65
  task :failed do
46
66
  run_locally do
47
67
  url = fetch(:webhook_url)
@@ -50,6 +70,7 @@ namespace :webhook do
50
70
  end
51
71
  end
52
72
 
73
+ desc 'Post a reverting message if :webhook_url and :webhook_reverting_payload are present'
53
74
  task :reverting do
54
75
  run_locally do
55
76
  url = fetch(:webhook_url)
@@ -58,6 +79,7 @@ namespace :webhook do
58
79
  end
59
80
  end
60
81
 
82
+ desc 'Post a rollbacked message if :webhook_url and :webhook_rollbacked_payload are present'
61
83
  task :rollbacked do
62
84
  run_locally do
63
85
  url = fetch(:webhook_url)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-hook
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - yulii
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-08-20 00:00:00.000000000 Z
11
+ date: 2015-10-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: capistrano