mina-teams 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 +7 -0
- data/lib/mina/teams.rb +7 -0
- data/lib/mina/teams/tasks.rb +66 -0
- data/lib/mina/teams/version.rb +6 -0
- metadata +102 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 52d5ab87e43e54d122d668e025000887e8174a31ed7d2a033998773b85eb1515
|
4
|
+
data.tar.gz: cfb291f269ca0b4e73b7cc46f050051e74cb799e6d2930e0f52232c3941d4d1f
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: e7afdbefd803102d58856ccb55a14ae568cff5063942cf771056d3004a7c681ce085ea227148beccce4e09a8c2f3dcdc5bb0b3b1dfae87e2690b162e8b4844d8
|
7
|
+
data.tar.gz: 0a33644c76db31104c8b72f002943018855d438eeca833ffe4c3e4ac4c7e728cd174df98861a748ba2eac24977284533e3fc00691ace701d288ff3629c258742
|
data/lib/mina/teams.rb
ADDED
@@ -0,0 +1,66 @@
|
|
1
|
+
require 'json'
|
2
|
+
require 'net/http'
|
3
|
+
require 'mina'
|
4
|
+
|
5
|
+
namespace :teams do
|
6
|
+
set :teams_url, -> { ENV['TEAMS_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_teams_channel(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_teams_channel(notification)
|
24
|
+
end
|
25
|
+
|
26
|
+
task :starting_restart do
|
27
|
+
notification = "#{fetch(:author).call} is restarting #{fetch(:environment).call} servers"
|
28
|
+
post_teams_channel(notification)
|
29
|
+
set(:start_time, Time.now)
|
30
|
+
end
|
31
|
+
|
32
|
+
task :finished_restart do
|
33
|
+
end_time = Time.now
|
34
|
+
start_time = fetch(:start_time)
|
35
|
+
elapsed = end_time.to_i - start_time.to_i
|
36
|
+
|
37
|
+
notification = "#{fetch(:author).call} successfully restarted #{fetch(:environment).call} servers in #{elapsed} seconds."
|
38
|
+
post_teams_channel(notification)
|
39
|
+
end
|
40
|
+
|
41
|
+
def branch_name
|
42
|
+
"#{fetch(:branch)} (#{fetch(:commit).call})"
|
43
|
+
end
|
44
|
+
|
45
|
+
def post_teams_channel(message)
|
46
|
+
uri = URI.parse(fetch(:teams_url))
|
47
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
48
|
+
http.use_ssl = true
|
49
|
+
|
50
|
+
payload = {
|
51
|
+
text: message
|
52
|
+
}
|
53
|
+
headers = {'Content-Type': 'application/json'}
|
54
|
+
|
55
|
+
request = Net::HTTP::Post.new(uri.request_uri, headers)
|
56
|
+
request.body = payload.to_json
|
57
|
+
|
58
|
+
# Call Teams webhook
|
59
|
+
resp = http.request(request)
|
60
|
+
if resp.code.to_i != 200
|
61
|
+
puts "Failed to notify Teams. Error [#{resp.body}], Status code [#{resp.code}]"
|
62
|
+
end
|
63
|
+
rescue => e
|
64
|
+
puts "Failed to notify Teams. Error #{e.inspect}"
|
65
|
+
end
|
66
|
+
end
|
metadata
ADDED
@@ -0,0 +1,102 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: mina-teams
|
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: 2021-04-26 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: Teams web hook from mina
|
70
|
+
email:
|
71
|
+
- rcoutinho@navisite.com
|
72
|
+
executables: []
|
73
|
+
extensions: []
|
74
|
+
extra_rdoc_files: []
|
75
|
+
files:
|
76
|
+
- lib/mina/teams.rb
|
77
|
+
- lib/mina/teams/tasks.rb
|
78
|
+
- lib/mina/teams/version.rb
|
79
|
+
homepage: https://github.com/VelocityCloud/mina-teams
|
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: Teams web hook from mina
|
102
|
+
test_files: []
|