chat_notifier 0.2.0 → 0.2.1

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
  SHA256:
3
- metadata.gz: b345042cb02425e4111b2895d482919d53042479e3d31024628dfbeed9a613d2
4
- data.tar.gz: 530e457fa2b8b1fa13325180d7faf7cc8b75d5eabcf753203e8d2ebee0f9818d
3
+ metadata.gz: 622357edb937d16bc4374115ad8d67e022fca33fee0544106af820797848fe17
4
+ data.tar.gz: 15d105331090d2dc981d56dd4a598040dab9ba392fb66c496469c851df06bac8
5
5
  SHA512:
6
- metadata.gz: a61d479f99e2393f84b76bd2733b1cc7defd04d4e21aecea9a332a2873e35f001c90eefd335c0d82f4836ad0e335b86c67a3f45aed52ae5a4efea5b3cc45295c
7
- data.tar.gz: 572f34fe2117c051b5df7f108c540c4c3ab208fb93b077b5443801762046cdaea8f492e5cd0963cd86f60928624104cd7b4ae1598fa4f22ac61788cf627c2781
6
+ metadata.gz: 74bb8fd9d9fded6a20097d8bdc04bd1f6178f61ec28ffb191579f73833f8eeaadbd6012034abea92f23db803db23d963d3a0e96b007f14883d7304eaa76d98fa
7
+ data.tar.gz: c87f9c544e476ba0f5afe182cb1f729a7687fea615fff51398ec288b1b85a7779cfa3d2b7e988298af28ba3c09b3de7506ea1374add5e665d8afe90d39522500
data/CHANGELOG.md CHANGED
@@ -5,8 +5,24 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
- ## 0.1.0
8
+ ## [0.2.1] - 2024-07-01
9
9
 
10
10
  ### Added
11
11
 
12
- - Initial code
12
+ - Version and release management with reissue gem.
13
+
14
+ ### Changed
15
+
16
+ - Slack chatter looks for NOTIFY_SLACK ENV variables instead of just SLACK
17
+
18
+ ## [0.2.0] - 2023-04-24
19
+
20
+ ### Changed
21
+
22
+ - Renamed ENV variables to prefix `NOTIFY_`
23
+
24
+ ## [0.1.0] - 2023-04-19
25
+
26
+ ### Added
27
+
28
+ - Initial code
data/README.md CHANGED
@@ -4,15 +4,21 @@ Notify a chat room with data from your test run.
4
4
 
5
5
  ## Installation
6
6
 
7
- ```
7
+ ```ruby
8
8
  gem "chat_notifier", git: "https://github.com/SOFware/chat_notifier.git"
9
9
  ```
10
10
 
11
11
  ## Usage
12
12
 
13
+ ### Minitest
14
+
15
+ Your minitest suite should pick up the formatter automatically.
16
+
17
+ ### RSpec
18
+
13
19
  Add to your `spec_helper.rb` or `rails_helper.rb`:
14
20
 
15
- ```
21
+ ```ruby
16
22
  require "chat_notifier/rspec_formatter"
17
23
 
18
24
  config.add_formatter "ChatNotifier::RspecFormatter" if ENV["CI"]
@@ -20,7 +26,7 @@ config.add_formatter "ChatNotifier::RspecFormatter" if ENV["CI"]
20
26
 
21
27
  Add to your config/application.rb within your namespaced module
22
28
 
23
- ```
29
+ ```ruby
24
30
  def self.sha
25
31
  `git rev-parse --short HEAD`.chomp
26
32
  end
@@ -39,6 +45,12 @@ Add these variables to your env files
39
45
  NOTIFY_TEST_RUN_ID
40
46
  ```
41
47
 
48
+ If you are _not_ using Rails, you will need to add this ENV variable:
49
+
50
+ ```
51
+ NOTIFY_APP_NAME
52
+ ```
53
+
42
54
  ### Debug your Slack setup
43
55
 
44
56
  Create rake task to test the connection to your Slack channel
@@ -54,6 +66,7 @@ namespace :chat_notifier do
54
66
  ENV["DEBUG"] = "1"
55
67
  ENV["NOTIFY_CURRENT_REPOSITORY_URL"] = "https://example.com"
56
68
  ENV["NOTIFY_TEST_RUN_ID"] = "9999"
69
+ ENV["NOTIFY_APP_NAME"] = "Example App" # Defaults to your Rails app name
57
70
  require "chat_notifier"
58
71
 
59
72
  failure = ChatNotifier::DebugExceptionLocation.new(location: "fake/path.rb")
@@ -7,7 +7,7 @@ module ChatNotifier
7
7
 
8
8
  class << self
9
9
  def handles?(settings)
10
- !settings.keys.grep(/SLACK/).empty?
10
+ !settings.keys.grep(/NOTIFY_SLACK/).empty?
11
11
  end
12
12
  end
13
13
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ChatNotifier
4
- VERSION = "0.2.0"
4
+ VERSION = "0.2.1"
5
5
  end
data/lib/chat_notifier.rb CHANGED
@@ -12,6 +12,18 @@ module ChatNotifier
12
12
  DebugSummary = Data.define(:failed_examples)
13
13
 
14
14
  class << self
15
+ require "logger"
16
+ @logger = Logger.new($stdout)
17
+ attr_accessor :logger
18
+
19
+ def app
20
+ if defined?(::Rails)
21
+ Rails.application.class.module_parent
22
+ else
23
+ ENV.fetch("NOTIFY_APP_NAME")
24
+ end
25
+ end
26
+
15
27
  # In order to test this locally see `rake chat_notifier:debug`
16
28
  def debug!(env, summary:, notifier: :Debug)
17
29
  repository = Repository.for(env)
@@ -24,9 +36,9 @@ module ChatNotifier
24
36
  )
25
37
  messenger = Messenger.for(
26
38
  summary,
27
- app: Rails.application.class.module_parent,
28
- repository: repository,
29
- environment: environment
39
+ app:,
40
+ repository:,
41
+ environment:
30
42
  )
31
43
 
32
44
  chatter.post(messenger)
@@ -43,13 +55,17 @@ module ChatNotifier
43
55
 
44
56
  messenger = Messenger.for(
45
57
  summary,
46
- app: Rails.application.class.module_parent,
58
+ app:,
47
59
  repository:,
48
60
  environment:
49
61
  )
50
62
 
51
63
  chatter.each do |box|
52
- box.conditional_post(messenger)
64
+ begin
65
+ box.conditional_post(messenger)
66
+ rescue => exception
67
+ logger.error("ChatNotifier: #{box.webhook_url} #{exception.class}: #{exception.message}")
68
+ end
53
69
  end
54
70
  end
55
71
  end
@@ -0,0 +1,14 @@
1
+ module Minitest
2
+ def self.plugin_chat_notifier_init(options)
3
+ Minitest.reporter << ChatNotifierPlugin.new(options[:io], options)
4
+ end
5
+
6
+ class ChatNotifierPlugin < SummaryReporter
7
+ ExceptionLocation = Data.define(:location)
8
+ Summary = Data.define(:failed_examples)
9
+ def report
10
+ summary = Summary[(results.map{ |result| ExceptionLocation[result.source_location] })]
11
+ ChatNotifier.call(summary:)
12
+ end
13
+ end
14
+ end
metadata CHANGED
@@ -1,18 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chat_notifier
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jim Gay
8
+ - Savannah Albanez
8
9
  autorequire:
9
10
  bindir: exe
10
11
  cert_chain: []
11
- date: 2023-05-24 00:00:00.000000000 Z
12
+ date: 2024-07-01 00:00:00.000000000 Z
12
13
  dependencies: []
13
14
  description: Send test results to chat
14
15
  email:
15
16
  - jim@saturnflyer.com
17
+ - sealbanez@gmail.com
16
18
  executables: []
17
19
  extensions: []
18
20
  extra_rdoc_files: []
@@ -33,6 +35,7 @@ files:
33
35
  - lib/chat_notifier/test_environment/debug.rb
34
36
  - lib/chat_notifier/test_environment/github.rb
35
37
  - lib/chat_notifier/version.rb
38
+ - lib/minitest/chat_notifier_plugin.rb
36
39
  homepage:
37
40
  licenses: []
38
41
  metadata:
@@ -53,7 +56,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
53
56
  - !ruby/object:Gem::Version
54
57
  version: '0'
55
58
  requirements: []
56
- rubygems_version: 3.4.10
59
+ rubygems_version: 3.5.9
57
60
  signing_key:
58
61
  specification_version: 4
59
62
  summary: Notify chat of test results