fir-cli 2.0.13 → 2.0.14

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: 8320833a429e9d6ffafbe6feacc844f1351c987c901eeac424adbaa2b4d95c8b
4
- data.tar.gz: 6009124d94abd0d307350faeebd78fa60cfaf7b4cb93ba8d437545f885d4f2aa
3
+ metadata.gz: 1ce0252e1ffcd6e9a73ce64fa5359fa06ce77416c93ffd394c6829481956a878
4
+ data.tar.gz: 5e8443ef24cc7d39aded9bdc1044dd9d8a11452bb081e1023dc9719aed9df0c4
5
5
  SHA512:
6
- metadata.gz: e580eeb77c1b70129c819d44543991afa1164f93939459877791bb29b3d933c11834b4febf298976a3f149d83972df0acdc09044ba609228d869d34fe176b904
7
- data.tar.gz: 0b1fc894b5aef760d0848184a5dd942e98b1d6f3aa0968ffaf16faab3bffd4f76e4c94a4780b50c10083278dd3f4f5a9bb70e7dfda30d23f255f41b008c0e346
6
+ metadata.gz: 19439af4cd18638db3838e157db517e3c2b92045d2c27e269c75ef9eda3dc98b0c79d1d776d72f05ceca466241faefdf8cd242b4a438090019f3420fa9645aa5
7
+ data.tar.gz: 4c45e66b869e58df20966aae25780612d2c7abd7c5a287547bbe68a09dc1c6773fe4316df00c421d66bd58a08eb87fec985d5aad34a2084d8990da23b5cd5482
data/README.md CHANGED
@@ -13,10 +13,12 @@ fir.im-cli 可以通过指令查看, 上传, iOS/Android 应用.
13
13
  ![fir-cli](http://7rf35s.com1.z0.glb.clouddn.com/fir-cli-new.gif)
14
14
 
15
15
  # 重大提醒
16
- - fir.im 更换域名后, 需要升级至 `fir-cli` >= `2.0.4` 有部分用户反馈 2.0.2 无法直接使用 `gem update fir-cli` 升级到 2.0.4, 则可以尝试卸载后重新安装, 即 `gem uninstall fir-cli` 后 `gem install fir-cli`
16
+ - fir.im 更换域名至 betaqr.com 后, 需要升级至 `fir-cli` >= `2.0.4` 有部分用户反馈 2.0.2 无法直接使用 `gem update fir-cli` 升级到 2.0.4, 则可以尝试卸载后重新安装, 即 `gem uninstall fir-cli` 后 `gem install fir-cli`
17
17
 
18
18
 
19
19
  # 最近更新
20
+ - (2.0.14) 第三方通知加入了 app 类型, 第三方报错将忽略异常继续运行
21
+ - (2.0.13) 修正了企业微信通知的bug
20
22
  - (2.0.12) 修复因为钉钉机器人不再支持base64导致无法显示二维码,另外开始支持钉钉加签方式的鉴权, 参数为 --dingtalk_secret
21
23
  - (2.0.11) 兼容了 ruby 3.0
22
24
  - (2.0.10) 飞书支持了 V2 版本的机器人推送
data/fir-cli.gemspec CHANGED
@@ -27,6 +27,7 @@ Gem::Specification.new do |spec|
27
27
  /_/ /___/_/ |_| \____/_____/___/
28
28
 
29
29
  ## 更新记录
30
+ - (2.0.14) 第三方通知加入了 app 类型, 第三方报错将不再直接报出异常
30
31
  - (2.0.13) 修复了无法跳过企业微信通知逻辑的bug
31
32
  - (2.0.12) 修复因为钉钉机器人不再支持base64导致无法显示二维码,另外开始支持钉钉加签方式的鉴权, 参数为 --dingtalk_secret
32
33
  - (2.0.11) 兼容了 ruby 3.0 版本, 增加了环境变量FEISHU_TIMEOUT,可以多给飞书一些超时时间
@@ -20,7 +20,7 @@ class DingtalkHelper
20
20
  return if options[:dingtalk_access_token].blank?
21
21
 
22
22
  api_domain = @app_info[:api_url]
23
- title = "#{@app_info[:name]}-#{@app_info[:version]}(Build #{@app_info[:build]})"
23
+ title = "#{@app_info[:name]}-#{@app_info[:version]}(Build #{@app_info[:build]}) #{@app_info[:type]}"
24
24
  payload = {
25
25
  "msgtype": 'markdown',
26
26
  "markdown": {
@@ -10,7 +10,8 @@ class FeishuHelper
10
10
  @feishu_access_token = @options[:feishu_access_token]
11
11
  @qrcode_path = qrcode_path
12
12
  @download_url = download_url
13
- @title = "#{@app_info[:name]}-#{@app_info[:version]}(Build #{@app_info[:build]})"
13
+
14
+ @title = "#{@app_info[:name]}-#{@app_info[:version]}(Build #{@app_info[:build]}) #{@app_info[:type]}"
14
15
  end
15
16
 
16
17
  def send_msg
@@ -2,6 +2,7 @@
2
2
 
3
3
  # require 'byebug'
4
4
 
5
+ require_relative './third_notifier_module'
5
6
  require_relative './qiniu_uploader'
6
7
  require_relative './ali_uploader'
7
8
  require_relative '../util/feishu_helper'
@@ -9,6 +10,7 @@ require_relative '../util/dingtalk_helper'
9
10
 
10
11
  module FIR
11
12
  module Publish
13
+ include FIR::ThirdNotifierModule
12
14
  def publish(*args, options)
13
15
  initialize_publish_options(args, options)
14
16
  logger_info_publishing_message
@@ -30,9 +32,7 @@ module FIR
30
32
 
31
33
  qrcode_path = build_qrcode download_url
32
34
 
33
- dingtalk_notifier(download_url, qrcode_path)
34
- feishu_notifier(download_url, qrcode_path)
35
- wxwork_notifier(download_url)
35
+ notify_to_thirds(download_url, qrcode_path)
36
36
 
37
37
  upload_mapping_file_with_publish
38
38
 
@@ -195,34 +195,6 @@ module FIR
195
195
  api_token: @token
196
196
  end
197
197
 
198
- def dingtalk_notifier(download_url, qrcode_path)
199
- DingtalkHelper.new(@app_info, options, qrcode_path, download_url).send_msg
200
- end
201
-
202
- def feishu_notifier(download_url, qrcode_path)
203
- FeishuHelper.new(@app_info, options, qrcode_path, download_url).send_msg
204
- end
205
-
206
- def wxwork_notifier(download_url)
207
- return if options[:wxwork_webhook].blank? && options[:wxwork_access_token].blank?
208
-
209
- webhook_url = options[:wxwork_webhook]
210
- webhook_url ||= "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=#{options[:wxwork_access_token]}"
211
-
212
- title = "#{@app_info[:name]}-#{@app_info[:version]}(Build #{@app_info[:build]})"
213
- payload = {
214
- "msgtype": 'news',
215
- "news": {
216
- "articles": [{
217
- "title": "#{title} uploaded",
218
- "description": "#{title} uploaded at #{Time.now}\nurl: #{download_url}\n#{options[:wxwork_custom_message]}\n",
219
- "url": download_url,
220
- "picurl": options[:wxwork_pic_url]
221
- }]
222
- }
223
- }
224
- DefaultRest.post(webhook_url, payload)
225
- end
226
198
 
227
199
  def initialize_publish_options(args, options)
228
200
  @options = options
@@ -0,0 +1,40 @@
1
+ module FIR
2
+ module ThirdNotifierModule
3
+ def notify_to_thirds(download_url, qrcode_path)
4
+ dingtalk_notifier(download_url, qrcode_path)
5
+ feishu_notifier(download_url, qrcode_path)
6
+ wxwork_notifier(download_url)
7
+ rescue => e
8
+ logger.warn "third notifiers error #{e.message}"
9
+ end
10
+
11
+ def dingtalk_notifier(download_url, qrcode_path)
12
+ DingtalkHelper.new(@app_info, options, qrcode_path, download_url).send_msg
13
+ end
14
+
15
+ def feishu_notifier(download_url, qrcode_path)
16
+ FeishuHelper.new(@app_info, options, qrcode_path, download_url).send_msg
17
+ end
18
+
19
+ def wxwork_notifier(download_url)
20
+ return if options[:wxwork_webhook].blank? && options[:wxwork_access_token].blank?
21
+
22
+ webhook_url = options[:wxwork_webhook]
23
+ webhook_url ||= "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=#{options[:wxwork_access_token]}"
24
+
25
+ title = "#{@app_info[:name]}-#{@app_info[:version]}(Build #{@app_info[:build]}) #{@app_info[:type]}"
26
+ payload = {
27
+ "msgtype": 'news',
28
+ "news": {
29
+ "articles": [{
30
+ "title": "#{title} uploaded",
31
+ "description": "#{title} uploaded at #{Time.now}\nurl: #{download_url}\n#{options[:wxwork_custom_message]}\n",
32
+ "url": download_url,
33
+ "picurl": options[:wxwork_pic_url]
34
+ }]
35
+ }
36
+ }
37
+ DefaultRest.post(webhook_url, payload)
38
+ end
39
+ end
40
+ end
data/lib/fir/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module FIR
4
- VERSION = '2.0.13'
4
+ VERSION = '2.0.14'
5
5
  end
data/test/test_helper.rb CHANGED
@@ -1,9 +1,6 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  # CodeClimate::TestReporter.start
4
- require 'codeclimate-test-reporter'
5
- require 'simplecov'
6
- SimpleCov.start
7
4
 
8
5
 
9
6
  require 'minitest/autorun'
@@ -80,7 +77,7 @@ end
80
77
 
81
78
  # 跑完测试之后再发结果到Codelimate
82
79
  # 测试CODECLIMATE_REPO_TOKEN: c454b9a54151b3ed3e18949279aec49d6a25bf507706815f99a919f1c01679ed
83
- Minitest.after_run do
80
+ Minitest.after_run do
84
81
  COVERAGE_FILE = "coverage/.resultset.json".freeze
85
82
  if (repo_token = ENV["CODECLIMATE_REPO_TOKEN"]) && !repo_token.empty?
86
83
  if File.exist?(COVERAGE_FILE)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fir-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.13
4
+ version: 2.0.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - NaixSpirit
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2021-04-25 00:00:00.000000000 Z
12
+ date: 2021-06-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -248,6 +248,7 @@ files:
248
248
  - lib/fir/util/publish.rb
249
249
  - lib/fir/util/publisher.rb
250
250
  - lib/fir/util/qiniu_uploader.rb
251
+ - lib/fir/util/third_notifier_module.rb
251
252
  - lib/fir/version.rb
252
253
  - lib/fir/xcode_wrapper.sh
253
254
  - lib/fir_cli.rb
@@ -270,20 +271,21 @@ metadata: {}
270
271
  post_install_message: "\n ______________ ________ ____\n /
271
272
  ____/ _/ __ \\ / ____/ / / _/\n / /_ / // /_/ /_____/ / / / /
272
273
  /\n / __/ _/ // _, _/_____/ /___/ /____/ /\n /_/ /___/_/ |_| \\____/_____/___/\n\n
273
- \ ## 更新记录\n - (2.0.13) 修复了无法跳过企业微信通知逻辑的bug\n - (2.0.12) 修复因为钉钉机器人不再支持base64导致无法显示二维码,另外开始支持钉钉加签方式的鉴权,
274
- 参数为 --dingtalk_secret\n - (2.0.11) 兼容了 ruby 3.0 版本, 增加了环境变量FEISHU_TIMEOUT,可以多给飞书一些超时时间\n
275
- \ - (2.0.10) 飞书支持了 V2 版本的机器人推送\n - (2.0.9) publish 支持了 企业微信通知 可以使用 --wxwork_access_token
276
- --wxwork_webhook, 增加了回调超时时间至20秒\n - (2.0.8) publish 支持 飞书通知, 可使用 `feishu_access_token`
277
- 和 `feishu_custom_message`, 详情见 `fir publish --help`\n - (2.0.7) 修复了提示 token 有问题的错误\n
278
- \ - (2.0.6) 将校验文件是否存在提前\n - (2.0.5) 更换了上传域名, 避免与 深信服的设备冲突\n - (2.0.4) 修复了 cdn
279
- 不支持 patch 方法透传, 导致在修改 app 信息的时候返回的 400 错误\n - (2.0.3) 增加 dingtalk_at_phones, 钉钉通知可
280
- at 用户手机号, 以逗号,分割. 此命令需配合 `dingtalk_access_token` 使用\n - (2.0.3) 增加 dingtalk_at_all,
281
- 钉钉通知可 at 所有人, 此命令需配合 `dingtalk_access_token` 使用\n - (2.0.3) publish 增加海外加速参数 --oversea_turbo\n
282
- \ - (2.0.2) 有限支持 aab 文件上传, 强依赖`bundletool`工具, 具体请参见参数 `--bundletool_jar_path` 和
283
- `auto_download_bundletool_jar`\n - (2.0.1) publish 支持 新参数 `specify_app_display_name`,
284
- 指定 app 显示名称\n - (2.0.1) publish 支持 新参数 `need_ansi_qrcode`, 在控制台直接打印二维码, jenkins
285
- 用户可能需要使用 `AnsiColor Plugin` 插件配合\n - (2.0.1) publish 支持 新参数 `dingtalk_custom_message`,
286
- 可以在钉钉通知里增加自定义消息, 此命令需配合 `dingtalk_access_token` 使用\n - (2.0.1) publish 支持 新参数 `skip_fir_cli_feedback`,
274
+ \ ## 更新记录\n - (2.0.14) 第三方通知加入了 app 类型, 第三方报错将不再直接报出异常\n - (2.0.13) 修复了无法跳过企业微信通知逻辑的bug\n
275
+ \ - (2.0.12) 修复因为钉钉机器人不再支持base64导致无法显示二维码,另外开始支持钉钉加签方式的鉴权, 参数为 --dingtalk_secret\n
276
+ \ - (2.0.11) 兼容了 ruby 3.0 版本, 增加了环境变量FEISHU_TIMEOUT,可以多给飞书一些超时时间\n - (2.0.10) 飞书支持了
277
+ V2 版本的机器人推送\n - (2.0.9) publish 支持了 企业微信通知 可以使用 --wxwork_access_token 或 --wxwork_webhook,
278
+ 增加了回调超时时间至20秒\n - (2.0.8) publish 支持 飞书通知, 可使用 `feishu_access_token` 和 `feishu_custom_message`,
279
+ 详情见 `fir publish --help`\n - (2.0.7) 修复了提示 token 有问题的错误\n - (2.0.6) 将校验文件是否存在提前\n
280
+ \ - (2.0.5) 更换了上传域名, 避免与 深信服的设备冲突\n - (2.0.4) 修复了 cdn 不支持 patch 方法透传, 导致在修改 app
281
+ 信息的时候返回的 400 错误\n - (2.0.3) 增加 dingtalk_at_phones, 钉钉通知可 at 用户手机号, 以逗号,分割. 此命令需配合
282
+ `dingtalk_access_token` 使用\n - (2.0.3) 增加 dingtalk_at_all, 钉钉通知可 at 所有人, 此命令需配合
283
+ `dingtalk_access_token` 使用\n - (2.0.3) publish 增加海外加速参数 --oversea_turbo\n - (2.0.2)
284
+ 有限支持 aab 文件上传, 强依赖`bundletool`工具, 具体请参见参数 `--bundletool_jar_path` 和 `auto_download_bundletool_jar`\n
285
+ \ - (2.0.1) publish 支持 新参数 `specify_app_display_name`, 指定 app 显示名称\n - (2.0.1)
286
+ publish 支持 新参数 `need_ansi_qrcode`, 在控制台直接打印二维码, jenkins 用户可能需要使用 `AnsiColor Plugin`
287
+ 插件配合\n - (2.0.1) publish 支持 新参数 `dingtalk_custom_message`, 可以在钉钉通知里增加自定义消息, 此命令需配合
288
+ `dingtalk_access_token` 使用\n - (2.0.1) publish 支持 新参数 `skip_fir_cli_feedback`,
287
289
  可禁止 fir-cli 发送统计信息\n - (2.0.0) publish 使用更快的存储商, 加速上传速度, 若感觉没以前可使用 switch_to_qiniu
288
290
  恢复\n - [fir-cli](https://github.com/firhq/fir-cli) 已经开源\n - 欢迎 fork, issue 和 pull
289
291
  request\n "