fastlane-plugin-slack_bot 1.2.0 → 1.4.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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 547c728585d89dc90c21cb4fa8d7f769b66f25c6ca075d09870a631422065357
|
4
|
+
data.tar.gz: 751cfc3322ced61cf3b745f1015ebe100232d779f86960bbd524e8dacf32a51b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f19684e2772e518c7b257402a312644c1fab18ca9ef3314e8504e94e6e2ab936429a83c24125f431c13b3e6b21564b177825a90a1a993f4e5dfdb97686776ead
|
7
|
+
data.tar.gz: c880684936b29820f7bca82087aab76d11b7fe35cb2d60bf53babbcaf768a9e394d56f4a5e08b72c001070ca8cea379ce62f07e74276ba0417609f8e06977a5f
|
data/LICENSE
CHANGED
data/README.md
CHANGED
@@ -3,8 +3,8 @@
|
|
3
3
|
[](https://rubygems.org/gems/fastlane-plugin-slack_bot)
|
4
4
|
![![License]](https://img.shields.io/badge/license-MIT-green.svg?style=flat)
|
5
5
|
[](https://badge.fury.io/rb/fastlane-plugin-slack_bot)
|
6
|
-
![![RubyGem Download Badge]](https://ruby-gem-downloads-badge.herokuapp.com/fastlane-plugin-slack_bot?type=total)
|
7
6
|
[](https://twitter.com/iammanishrathi)
|
7
|
+
<!--![![RubyGem Download Badge]](https://ruby-gem-downloads-badge.herokuapp.com/fastlane-plugin-slack_bot?type=total)-->
|
8
8
|
|
9
9
|
A fastlane plugin to customize your automation workflow(s) with a **Slack Bot** 🤖 using the [Slack APIs](https://api.slack.com/)
|
10
10
|
|
@@ -12,6 +12,8 @@ A fastlane plugin to customize your automation workflow(s) with a **Slack Bot**
|
|
12
12
|
- [Getting Started](#getting-started)
|
13
13
|
- [Features](#features)
|
14
14
|
- [Post a message](#examples-post-a-message) examples
|
15
|
+
- [Update a message](https://github.com/crazymanish/fastlane-plugin-slack_bot/blob/master/lib/fastlane/plugin/slack_bot/actions/update_slack_message.rb#L115) examples
|
16
|
+
- [Delete a message](https://github.com/crazymanish/fastlane-plugin-slack_bot/blob/master/lib/fastlane/plugin/slack_bot/actions/delete_slack_message.rb#L78) examples
|
15
17
|
- [Upload a file](#examples-upload-a-message) examples
|
16
18
|
- [About Fastlane](#about-fastlane)
|
17
19
|
|
@@ -24,7 +26,7 @@ i.e Listing couple of slack **webhook url** limitations:
|
|
24
26
|
- can’t post a message inside a slack thread.
|
25
27
|
- can’t update a posted slack message.
|
26
28
|
- can’t list and upload a file inside a slack channel.
|
27
|
-
-
|
29
|
+
- many more, compare to a **Slack Bot** 🤖 using the [Slack APIs](https://api.slack.com/)
|
28
30
|
|
29
31
|
## Getting Started
|
30
32
|
|
@@ -58,6 +60,9 @@ Using this `slack_bot` plugin, you can:
|
|
58
60
|
- Update a message using [chat.update](https://api.slack.com/methods/chat.update) Slack API
|
59
61
|
- [x] update a message in a channel
|
60
62
|
|
63
|
+
- Delete a message using [chat.delete](https://api.slack.com/methods/chat.delete) Slack API
|
64
|
+
- [x] delete a message in a channel
|
65
|
+
|
61
66
|
- List of files in a channel using [files.list](https://api.slack.com/methods/files.list) Slack API
|
62
67
|
- [x] A list of files in a channel, It can be filtered and sliced in various ways.
|
63
68
|
|
@@ -0,0 +1,90 @@
|
|
1
|
+
require 'fastlane/action'
|
2
|
+
require_relative '../helper/slack_bot_helper'
|
3
|
+
|
4
|
+
module Fastlane
|
5
|
+
module Actions
|
6
|
+
module SharedValues
|
7
|
+
DELETE_SLACK_MESSAGE_RESULT = :DELETE_SLACK_MESSAGE_RESULT
|
8
|
+
end
|
9
|
+
class DeleteSlackMessageAction < Action
|
10
|
+
def self.run(options)
|
11
|
+
begin
|
12
|
+
require 'excon'
|
13
|
+
|
14
|
+
api_url = "https://slack.com/api/chat.delete"
|
15
|
+
headers = { "Content-Type": "application/json", "Authorization": "Bearer #{options[:api_token]}" }
|
16
|
+
payload = { channel: options[:channel], ts: options[:ts] }.to_json
|
17
|
+
|
18
|
+
response = Excon.post(api_url, headers: headers, body: payload)
|
19
|
+
result = self.formatted_result(response)
|
20
|
+
rescue => exception
|
21
|
+
UI.error("Exception: #{exception}")
|
22
|
+
return nil
|
23
|
+
else
|
24
|
+
UI.success("Successfully deleted the Slack message!")
|
25
|
+
Actions.lane_context[SharedValues::DELETE_SLACK_MESSAGE_RESULT] = result
|
26
|
+
return result
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.formatted_result(response)
|
31
|
+
result = {
|
32
|
+
status: response[:status],
|
33
|
+
body: response.body || "",
|
34
|
+
json: self.parse_json(response.body) || {}
|
35
|
+
}
|
36
|
+
end
|
37
|
+
|
38
|
+
def self.parse_json(value)
|
39
|
+
require 'json'
|
40
|
+
|
41
|
+
JSON.parse(value)
|
42
|
+
rescue JSON::ParserError
|
43
|
+
nil
|
44
|
+
end
|
45
|
+
|
46
|
+
def self.description
|
47
|
+
"Deleate a slack message using time-stamp(ts) value"
|
48
|
+
end
|
49
|
+
|
50
|
+
def self.available_options
|
51
|
+
[
|
52
|
+
FastlaneCore::ConfigItem.new(key: :api_token,
|
53
|
+
env_name: "FL_DELETE_SLACK_MESSAGE_BOT_TOKEN",
|
54
|
+
description: "Slack bot Token",
|
55
|
+
sensitive: true,
|
56
|
+
code_gen_sensitive: true,
|
57
|
+
is_string: true,
|
58
|
+
default_value: ENV["SLACK_API_TOKEN"],
|
59
|
+
default_value_dynamic: true,
|
60
|
+
optional: false),
|
61
|
+
FastlaneCore::ConfigItem.new(key: :ts,
|
62
|
+
env_name: "FL_DELETE_SLACK_MESSAGE_TS",
|
63
|
+
description: "Timestamp of the message to be deleted",
|
64
|
+
optional: false),
|
65
|
+
FastlaneCore::ConfigItem.new(key: :channel,
|
66
|
+
env_name: "FL_DELETE_SLACK_MESSAGE_CHANNEL",
|
67
|
+
description: "Slack channel_id containing the message to be deleted. i.e C1234567890",
|
68
|
+
optional: false)
|
69
|
+
]
|
70
|
+
end
|
71
|
+
|
72
|
+
def self.authors
|
73
|
+
["crazymanish"]
|
74
|
+
end
|
75
|
+
|
76
|
+
def self.example_code
|
77
|
+
[
|
78
|
+
'delete_slack_message(
|
79
|
+
ts: "1609711037.000100",
|
80
|
+
channel: "C1234567890"
|
81
|
+
)'
|
82
|
+
]
|
83
|
+
end
|
84
|
+
|
85
|
+
def self.is_supported?(platform)
|
86
|
+
true
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
@@ -39,6 +39,7 @@ module Fastlane
|
|
39
39
|
attachments: [slack_attachment]
|
40
40
|
}
|
41
41
|
payload[:as_user] = options[:as_user] if options[:as_user] # default is false
|
42
|
+
payload[:reply_broadcast] = options[:reply_broadcast] if options[:reply_broadcast] # default is false
|
42
43
|
payload[:thread_ts] = options[:thread_ts] unless options[:thread_ts].nil?
|
43
44
|
payload = payload.to_json
|
44
45
|
|
@@ -144,7 +145,13 @@ module Fastlane
|
|
144
145
|
FastlaneCore::ConfigItem.new(key: :thread_ts,
|
145
146
|
env_name: "FL_POST_TO_SLACK_THREAD_TS",
|
146
147
|
description: "Provide another message's ts value to make this message a reply",
|
147
|
-
optional: true)
|
148
|
+
optional: true),
|
149
|
+
FastlaneCore::ConfigItem.new(key: :reply_broadcast,
|
150
|
+
env_name: "FL_POST_TO_SLACK_REPLY_BROADCAST",
|
151
|
+
description: "Used in conjunction with thread_ts and indicates whether reply should be made visible to everyone in the channel or conversation. Defaults to false",
|
152
|
+
optional: true,
|
153
|
+
default_value: false,
|
154
|
+
is_string: false)
|
148
155
|
]
|
149
156
|
end
|
150
157
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane-plugin-slack_bot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Manish Rathi
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-05-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pry
|
@@ -136,7 +136,7 @@ dependencies:
|
|
136
136
|
- - ">="
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: 2.148.1
|
139
|
-
description:
|
139
|
+
description:
|
140
140
|
email: manishrathi19902013@gmail.com
|
141
141
|
executables: []
|
142
142
|
extensions: []
|
@@ -145,6 +145,7 @@ files:
|
|
145
145
|
- LICENSE
|
146
146
|
- README.md
|
147
147
|
- lib/fastlane/plugin/slack_bot.rb
|
148
|
+
- lib/fastlane/plugin/slack_bot/actions/delete_slack_message.rb
|
148
149
|
- lib/fastlane/plugin/slack_bot/actions/fetch_files_slack.rb
|
149
150
|
- lib/fastlane/plugin/slack_bot/actions/file_upload_to_slack.rb
|
150
151
|
- lib/fastlane/plugin/slack_bot/actions/post_to_slack.rb
|
@@ -157,7 +158,7 @@ homepage: https://github.com/crazymanish/fastlane-plugin-slack_bot
|
|
157
158
|
licenses:
|
158
159
|
- MIT
|
159
160
|
metadata: {}
|
160
|
-
post_install_message:
|
161
|
+
post_install_message:
|
161
162
|
rdoc_options: []
|
162
163
|
require_paths:
|
163
164
|
- lib
|
@@ -172,8 +173,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
172
173
|
- !ruby/object:Gem::Version
|
173
174
|
version: '0'
|
174
175
|
requirements: []
|
175
|
-
rubygems_version: 3.
|
176
|
-
signing_key:
|
176
|
+
rubygems_version: 3.3.26
|
177
|
+
signing_key:
|
177
178
|
specification_version: 4
|
178
179
|
summary: "A fastlane plugin to post slack message using bot api token. \U0001F680"
|
179
180
|
test_files: []
|