mina-twist 0.1.0

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 34f2641ff25b582ebde5b55e9b02549e59ac8b6877c106d24434dd01bcfdb085
4
+ data.tar.gz: 8f398094163f6e635ae90c866113b8d60043ab8cb4f16474d28a4357bab6e0f9
5
+ SHA512:
6
+ metadata.gz: e0c67c069fb50f5084d8b5464c51f7bb77bbb44b1ad0eef1d1b451d475f8c0c0f3250ff3efc1936c6752d662ecacb0f654c737afdd51c5e74852427322658f0e
7
+ data.tar.gz: 84c3eb84f5553fdd2830d3d77e505bf587b59c6770b6046936e10dfa0deac890334b77f4edfdf8d3f38353bf480a8ed1d34a1e22c91a765e967fd1299fe0779e
@@ -0,0 +1,47 @@
1
+ require 'json'
2
+ require 'net/http'
3
+ require 'mina'
4
+
5
+ namespace :twist do
6
+ set :twist_url, -> { ENV['TWIST_URL'] }
7
+ set :author, -> { ENV['GIT_AUTHOR_NAME'] || `git config user.name`.chomp }
8
+ set :commit, -> { ENV['GIT_COMMIT'] || `git rev-parse #{fetch(:branch)} | cut -c 1-7`.strip }
9
+ set :environment, -> { ENV['to'] }
10
+
11
+ task :starting do
12
+ notification = "#{fetch(:author).call} is deploying branch #{branch_name} to #{fetch(:environment).call}"
13
+ post_twist_thread(notification)
14
+ set(:start_time, Time.now)
15
+ end
16
+
17
+ task :finished do
18
+ end_time = Time.now
19
+ start_time = fetch(:start_time)
20
+ elapsed = end_time.to_i - start_time.to_i
21
+
22
+ notification = "#{fetch(:author).call} successfully deployed branch #{branch_name} in #{elapsed} seconds."
23
+ post_twist_thread(notification)
24
+ end
25
+
26
+ def branch_name
27
+ "#{fetch(:branch)} (#{fetch(:commit).call})"
28
+ end
29
+
30
+ def post_twist_thread(message)
31
+ uri = URI.parse(fetch(:twist_url))
32
+ http = Net::HTTP.new(uri.host, uri.port)
33
+ http.use_ssl = true
34
+ http.verify_mode = OpenSSL::SSL::VERIFY_NONE
35
+
36
+ payload = {
37
+ content: message
38
+ }
39
+ headers = {'Content-Type': 'application/json'}
40
+
41
+ request = Net::HTTP::Post.new(uri.request_uri, headers)
42
+ request.body = payload.to_json
43
+
44
+ # Call Twist webhook
45
+ puts http.request(request)
46
+ end
47
+ end
@@ -0,0 +1,6 @@
1
+
2
+ module Mina
3
+ module Twist
4
+ VERSION = '0.1.0'
5
+ end
6
+ end
data/lib/mina/twist.rb ADDED
@@ -0,0 +1,7 @@
1
+ require 'mina/twist/tasks'
2
+ require 'mina/twist/version'
3
+
4
+ module Mina
5
+ module Twist
6
+ end
7
+ end
metadata ADDED
@@ -0,0 +1,102 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mina-twist
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Rodrigo Coutinho
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-06-22 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: pry
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: mina
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: 0.3.8
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: 0.3.8
69
+ description: Twist web hook from mina
70
+ email:
71
+ - rodrigo.coutinho15@gmail.com
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files: []
75
+ files:
76
+ - lib/mina/twist.rb
77
+ - lib/mina/twist/tasks.rb
78
+ - lib/mina/twist/version.rb
79
+ homepage: https://github.com/digaoddc/mina-twist
80
+ licenses:
81
+ - MIT
82
+ metadata: {}
83
+ post_install_message:
84
+ rdoc_options: []
85
+ require_paths:
86
+ - lib
87
+ required_ruby_version: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - ">="
90
+ - !ruby/object:Gem::Version
91
+ version: '0'
92
+ required_rubygems_version: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ requirements: []
98
+ rubygems_version: 3.0.3
99
+ signing_key:
100
+ specification_version: 4
101
+ summary: Twist web hook from mina
102
+ test_files: []