fastlane-plugin-emerge 0.8.0 → 0.10.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 +4 -4
- data/README.md +60 -8
- data/lib/fastlane/plugin/emerge/actions/emerge_action.rb +17 -69
- data/lib/fastlane/plugin/emerge/actions/emerge_snapshot_action.rb +155 -0
- data/lib/fastlane/plugin/emerge/helper/emerge_helper.rb +88 -15
- data/lib/fastlane/plugin/emerge/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6e0ee7bd40a5841bf9207de85fd19c9f49244b893680e7b60b19c811df754fcd
|
4
|
+
data.tar.gz: 4a6d7441344186fb1d8623574f732c70aeb25fd57d74ddbe388bf9d4d58e4fb4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 69c76da179be424cd8bd9faab5a0c90762de70bc8e2409e3084fb264b7c1d7a81c95671ff80c5f700ea6e9376f19b000b1e5f4f355cf2d3de74c759eb77290d6
|
7
|
+
data.tar.gz: 5a2c4c637ac3fc26abb5bb201178e56bd3bf0271f8eac43967074c07fe5f4bf93247c33c6947e7fb3f09dbc7806f2a8270d4a8c2a20f848edb9a959ad91f5ff0
|
data/README.md
CHANGED
@@ -12,24 +12,76 @@ fastlane add_plugin emerge
|
|
12
12
|
|
13
13
|
## About Emerge
|
14
14
|
|
15
|
-
|
15
|
+
[Emerge](https://emergetools.com) offers a suite of products to help optimize app size, performance and quality. This plugin provides a set of actions to interact with the Emerge API.
|
16
16
|
|
17
|
-
##
|
17
|
+
## Usage
|
18
18
|
|
19
|
-
To
|
19
|
+
To get started, first obtain an [API token](https://docs.emergetools.com/docs/uploading-basics#obtain-an-api-key) for your organization. The API Token is used to authenticate with the Emerge API in each call. Our actions will automatically pick up the API key if configured as an `EMERGE_API_TOKEN` environment variable.
|
20
20
|
|
21
|
+
### Size Analysis
|
22
|
+
|
23
|
+
```ruby
|
24
|
+
platform :ios do
|
25
|
+
lane :app_size do
|
26
|
+
# Make a signed release build via gym() and other tools
|
27
|
+
# and then call our `emerge()` action to upload the artifact to our API
|
28
|
+
emerge()
|
29
|
+
end
|
30
|
+
end
|
21
31
|
```
|
22
|
-
rake
|
23
|
-
```
|
24
32
|
|
25
|
-
|
33
|
+
For a full list of available parameters run `fastlane action emerge`.
|
34
|
+
|
35
|
+
### Snapshot Testing
|
36
|
+
|
37
|
+
```ruby
|
38
|
+
platform :ios do
|
39
|
+
lane :snapshot_testing do
|
40
|
+
# Call our `emerge_snapshot()` action with the respective scheme for
|
41
|
+
# us to build. We will generate a build with the recommended settings
|
42
|
+
# and upload to our API.
|
43
|
+
emerge_snapshot(scheme: 'Hacker News')
|
44
|
+
end
|
45
|
+
end
|
26
46
|
```
|
27
|
-
|
47
|
+
|
48
|
+
For a full list of available parameters run `fastlane action emerge_snapshot`.
|
49
|
+
|
50
|
+
## Git Configuration
|
51
|
+
|
52
|
+
For build comparisons to work, Emerge needs the appropriate Git `sha` and `base_sha` values set on each build. Emerge will automatically compare a build at `sha` against the build we find matching the `base_sha` for a given application id. We also recommend setting `pr_number`, `branch`, and `repo_name` for the best experience.
|
53
|
+
|
54
|
+
For example:
|
55
|
+
|
56
|
+
- `sha`: `pr-branch-commit-1`
|
57
|
+
- `base_sha`: `main-branch-commit-1`
|
58
|
+
- `pr_number`: `42`
|
59
|
+
- `branch`: `my-awesome-feature`
|
60
|
+
- `repo_name`: `EmergeTools/hackernews`
|
61
|
+
|
62
|
+
Will compare the size difference of your pull request changes.
|
63
|
+
|
64
|
+
This plugin will automatically configure Git values for you assuming certain Github workflow triggers:
|
65
|
+
|
66
|
+
```yaml
|
67
|
+
on:
|
68
|
+
# Produce base builds with a 'sha' when commits are pushed to the main branch
|
69
|
+
push:
|
70
|
+
branches: [main]
|
71
|
+
|
72
|
+
# Produce branch comparison builds with `sha` and `base_sha` when commits are pushed
|
73
|
+
# to open pull requests
|
74
|
+
pull_request:
|
75
|
+
branches: [main]
|
76
|
+
|
77
|
+
...
|
28
78
|
```
|
29
79
|
|
80
|
+
If this doesn't cover your use-case, manually set the `sha` and `base_sha` values when calling the Emerge plugin.
|
81
|
+
|
30
82
|
## Issues and Feedback
|
31
83
|
|
32
|
-
For any other issues and feedback about this plugin, please
|
84
|
+
For any other issues and feedback about this plugin, please open a [GitHub issue](https://github.com/EmergeTools/fastlane-plugin-emerge/issues).
|
33
85
|
|
34
86
|
## Troubleshooting
|
35
87
|
|
@@ -50,7 +50,7 @@ module Fastlane
|
|
50
50
|
FileUtils.cp(l, linkmap_folder)
|
51
51
|
end
|
52
52
|
end
|
53
|
-
copy_config(config_path, "#{d}/archive.xcarchive")
|
53
|
+
Helper::EmergeHelper.copy_config(config_path, "#{d}/archive.xcarchive")
|
54
54
|
FileUtils.cp_r(file_path, application_folder)
|
55
55
|
copy_dsyms("#{absolute_path.dirname}/*.dsym", dsym_folder)
|
56
56
|
copy_dsyms("#{absolute_path.dirname}/*/*.dsym", dsym_folder)
|
@@ -73,7 +73,7 @@ module Fastlane
|
|
73
73
|
FileUtils.cp(l, linkmap_folder)
|
74
74
|
end
|
75
75
|
end
|
76
|
-
copy_config(config_path, file_path)
|
76
|
+
Helper::EmergeHelper.copy_config(config_path, file_path)
|
77
77
|
Actions::ZipAction.run(
|
78
78
|
path: file_path,
|
79
79
|
output_path: zip_path,
|
@@ -88,62 +88,19 @@ module Fastlane
|
|
88
88
|
return
|
89
89
|
end
|
90
90
|
|
91
|
-
filename = File.basename(file_path)
|
92
|
-
url = 'https://api.emergetools.com/upload'
|
93
91
|
params = {
|
94
|
-
|
92
|
+
prNumber: pr_number,
|
93
|
+
branch: branch,
|
94
|
+
sha: sha,
|
95
|
+
baseSha: base_sha,
|
96
|
+
repoName: repo_name,
|
97
|
+
gitlabProjectId: gitlab_project_id,
|
98
|
+
orderFileVersion: order_file_version,
|
99
|
+
appIdSuffix: params[:app_id_suffix],
|
100
|
+
tag: tag || "default"
|
95
101
|
}
|
96
|
-
|
97
|
-
|
98
|
-
end
|
99
|
-
if branch
|
100
|
-
params[:branch] = branch
|
101
|
-
end
|
102
|
-
if sha
|
103
|
-
params[:sha] = sha
|
104
|
-
end
|
105
|
-
if base_sha
|
106
|
-
params[:baseSha] = base_sha
|
107
|
-
end
|
108
|
-
if repo_name
|
109
|
-
params[:repoName] = repo_name
|
110
|
-
end
|
111
|
-
if gitlab_project_id
|
112
|
-
params[:gitlabProjectId] = gitlab_project_id
|
113
|
-
end
|
114
|
-
if order_file_version
|
115
|
-
params[:orderFileVersion] = order_file_version
|
116
|
-
end
|
117
|
-
params[:tag] = tag || "default"
|
118
|
-
FastlaneCore::PrintTable.print_values(
|
119
|
-
config: params,
|
120
|
-
hide_keys: [],
|
121
|
-
title: "Summary for Emerge #{Fastlane::Emerge::VERSION}"
|
122
|
-
)
|
123
|
-
resp = Faraday.post(
|
124
|
-
url,
|
125
|
-
params.to_json,
|
126
|
-
'Content-Type' => 'application/json', 'X-API-Token' => api_token, 'User-Agent' => "fastlane-plugin-emerge/#{Fastlane::Emerge::VERSION}"
|
127
|
-
)
|
128
|
-
case resp.status
|
129
|
-
when 200
|
130
|
-
json = JSON.parse(resp.body)
|
131
|
-
upload_id = json["upload_id"]
|
132
|
-
upload_url = json["uploadURL"]
|
133
|
-
warning = json["warning"]
|
134
|
-
if warning
|
135
|
-
UI.important(warning)
|
136
|
-
end
|
137
|
-
return Helper::EmergeHelper.perform_upload(upload_url, upload_id, file_path)
|
138
|
-
when 403
|
139
|
-
UI.error("Invalid API token")
|
140
|
-
when 400
|
141
|
-
UI.error("Invalid parameters")
|
142
|
-
json = JSON.parse(resp.body)
|
143
|
-
UI.error("Error: #{json['errorMessage']}")
|
144
|
-
else
|
145
|
-
UI.error("Upload failed")
|
146
|
-
end
|
102
|
+
upload_id = Helper::EmergeHelper.perform_upload(api_token, params, file_path)
|
103
|
+
UI.success("🎉 Your app is processing, you can find the results at https://emergetools.com/build/#{upload_id}")
|
147
104
|
end
|
148
105
|
|
149
106
|
def self.copy_dsyms(from, to)
|
@@ -153,19 +110,6 @@ module Fastlane
|
|
153
110
|
end
|
154
111
|
end
|
155
112
|
|
156
|
-
def self.copy_config(config_path, tmp_dir)
|
157
|
-
return if config_path.nil?
|
158
|
-
|
159
|
-
expanded_path = File.expand_path(config_path)
|
160
|
-
unless File.exist?(expanded_path)
|
161
|
-
UI.error("No config file found at path '#{expanded_path}'.\nUploading without config file")
|
162
|
-
return
|
163
|
-
end
|
164
|
-
|
165
|
-
emerge_config_path = "#{tmp_dir}/emerge_config.yaml"
|
166
|
-
FileUtils.cp(expanded_path, emerge_config_path)
|
167
|
-
end
|
168
|
-
|
169
113
|
def self.description
|
170
114
|
"Fastlane plugin for Emerge"
|
171
115
|
end
|
@@ -243,6 +187,10 @@ module Fastlane
|
|
243
187
|
FastlaneCore::ConfigItem.new(key: :config_path,
|
244
188
|
description: "Path to Emerge config path",
|
245
189
|
optional: true,
|
190
|
+
type: String),
|
191
|
+
FastlaneCore::ConfigItem.new(key: :app_id_suffix,
|
192
|
+
description: "A suffix to append to the application ID to differentiate between different builds of the same app",
|
193
|
+
optional: true,
|
246
194
|
type: String)
|
247
195
|
]
|
248
196
|
end
|
@@ -0,0 +1,155 @@
|
|
1
|
+
require 'fastlane/action'
|
2
|
+
require 'fastlane_core/print_table'
|
3
|
+
require_relative '../helper/emerge_helper'
|
4
|
+
require_relative '../helper/git'
|
5
|
+
require_relative '../helper/github'
|
6
|
+
require 'pathname'
|
7
|
+
require 'tmpdir'
|
8
|
+
require 'json'
|
9
|
+
require 'fileutils'
|
10
|
+
|
11
|
+
module Fastlane
|
12
|
+
module Actions
|
13
|
+
class EmergeSnapshotAction < Action
|
14
|
+
def self.run(params)
|
15
|
+
api_token = params[:api_token]
|
16
|
+
|
17
|
+
git_params = Helper::EmergeHelper.make_git_params
|
18
|
+
pr_number = params[:pr_number] || git_params.pr_number
|
19
|
+
branch = params[:branch] || git_params.branch
|
20
|
+
sha = params[:sha] || git_params.sha
|
21
|
+
base_sha = params[:base_sha] || git_params.base_sha
|
22
|
+
repo_name = params[:repo_name] || git_params.repo_name
|
23
|
+
gitlab_project_id = params[:gitlab_project_id]
|
24
|
+
tag = params[:tag]
|
25
|
+
config_path = params[:config_path]
|
26
|
+
scheme = params[:scheme]
|
27
|
+
configuration = params[:configuration]
|
28
|
+
team_id = params[:team_id] || CredentialsManager::AppfileConfig.try_fetch_value(:team_id)
|
29
|
+
|
30
|
+
Dir.mktmpdir do |temp_dir|
|
31
|
+
archive_name = "#{scheme}-Emerge-Snapshots"
|
32
|
+
archive_path = "#{temp_dir}/build/#{archive_name}.xcarchive"
|
33
|
+
make_debug_build(
|
34
|
+
scheme: scheme,
|
35
|
+
configuration: configuration,
|
36
|
+
team_id: team_id,
|
37
|
+
archive_path: archive_path
|
38
|
+
)
|
39
|
+
Helper::EmergeHelper.copy_config(config_path, archive_path)
|
40
|
+
Xcodeproj::Plist.write_to_path({ "NAME" => "Emerge Upload" }, "#{archive_path}/Info.plist")
|
41
|
+
|
42
|
+
zip_file_path = "#{temp_dir}/build/#{archive_name}.xcarchive.zip"
|
43
|
+
ZipAction.run(
|
44
|
+
path: archive_path,
|
45
|
+
output_path: zip_file_path,
|
46
|
+
exclude: [],
|
47
|
+
include: []
|
48
|
+
)
|
49
|
+
|
50
|
+
params = {
|
51
|
+
appIdSuffix: 'snapshots',
|
52
|
+
prNumber: pr_number,
|
53
|
+
branch: branch,
|
54
|
+
sha: sha,
|
55
|
+
baseSha: base_sha,
|
56
|
+
repoName: repo_name,
|
57
|
+
gitlabProjectId: gitlab_project_id,
|
58
|
+
tag: tag || "default"
|
59
|
+
}
|
60
|
+
upload_id = Helper::EmergeHelper.perform_upload(api_token, params, zip_file_path)
|
61
|
+
UI.success("🎉 Your app is processing, you can find the results at https://emergetools.com/snapshot/#{upload_id}")
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
def self.make_debug_build(scheme:, configuration:, team_id:, archive_path:)
|
66
|
+
other_action.gym(
|
67
|
+
scheme: scheme,
|
68
|
+
configuration: configuration,
|
69
|
+
skip_codesigning: true,
|
70
|
+
clean: true,
|
71
|
+
export_method: "development",
|
72
|
+
export_team_id: team_id,
|
73
|
+
skip_package_ipa: true,
|
74
|
+
archive_path: archive_path
|
75
|
+
)
|
76
|
+
end
|
77
|
+
|
78
|
+
def self.description
|
79
|
+
"Fastlane plugin for Emerge to generate iOS snapshots"
|
80
|
+
end
|
81
|
+
|
82
|
+
def self.authors
|
83
|
+
["Emerge Tools"]
|
84
|
+
end
|
85
|
+
|
86
|
+
def self.return_value
|
87
|
+
"If successful, returns the upload id of the generated snapshot build"
|
88
|
+
end
|
89
|
+
|
90
|
+
def self.details
|
91
|
+
""
|
92
|
+
end
|
93
|
+
|
94
|
+
def self.available_options
|
95
|
+
[
|
96
|
+
FastlaneCore::ConfigItem.new(key: :api_token,
|
97
|
+
env_name: "EMERGE_API_TOKEN",
|
98
|
+
description: "An API token for Emerge",
|
99
|
+
optional: false,
|
100
|
+
type: String),
|
101
|
+
FastlaneCore::ConfigItem.new(key: :scheme,
|
102
|
+
description: "The scheme of your app to build",
|
103
|
+
optional: false,
|
104
|
+
type: String),
|
105
|
+
FastlaneCore::ConfigItem.new(key: :configuration,
|
106
|
+
description: "The configuration of your app to use",
|
107
|
+
optional: false,
|
108
|
+
default_value: "Debug",
|
109
|
+
type: String),
|
110
|
+
FastlaneCore::ConfigItem.new(key: :team_id,
|
111
|
+
env_name: "EXPORT_TEAM_ID",
|
112
|
+
description: "The Apple Team ID to use for exporting the archive. If not provided, we will try to use the team_id from the Appfile",
|
113
|
+
optional: true,
|
114
|
+
type: String),
|
115
|
+
FastlaneCore::ConfigItem.new(key: :config_path,
|
116
|
+
description: "Path to Emerge YAML config path",
|
117
|
+
optional: true,
|
118
|
+
type: String),
|
119
|
+
FastlaneCore::ConfigItem.new(key: :pr_number,
|
120
|
+
description: "The PR number that triggered this upload",
|
121
|
+
optional: true,
|
122
|
+
type: String),
|
123
|
+
FastlaneCore::ConfigItem.new(key: :branch,
|
124
|
+
description: "The current git branch",
|
125
|
+
optional: true,
|
126
|
+
type: String),
|
127
|
+
FastlaneCore::ConfigItem.new(key: :sha,
|
128
|
+
description: "The git SHA that triggered this build",
|
129
|
+
optional: true,
|
130
|
+
type: String),
|
131
|
+
FastlaneCore::ConfigItem.new(key: :base_sha,
|
132
|
+
description: "The git SHA of the base build",
|
133
|
+
optional: true,
|
134
|
+
type: String),
|
135
|
+
FastlaneCore::ConfigItem.new(key: :repo_name,
|
136
|
+
description: "Full name of the respository this upload was triggered from. For example: EmergeTools/Emerge",
|
137
|
+
optional: true,
|
138
|
+
type: String),
|
139
|
+
FastlaneCore::ConfigItem.new(key: :gitlab_project_id,
|
140
|
+
description: "Id of the gitlab project this upload was triggered from",
|
141
|
+
optional: true,
|
142
|
+
type: Integer),
|
143
|
+
FastlaneCore::ConfigItem.new(key: :tag,
|
144
|
+
description: "String to label the build. Useful for grouping builds together in our dashboard, like development, default, or pull-request",
|
145
|
+
optional: true,
|
146
|
+
type: String)
|
147
|
+
]
|
148
|
+
end
|
149
|
+
|
150
|
+
def self.is_supported?(platform)
|
151
|
+
platform == :ios
|
152
|
+
end
|
153
|
+
end
|
154
|
+
end
|
155
|
+
end
|
@@ -18,21 +18,16 @@ module Fastlane
|
|
18
18
|
|
19
19
|
module Helper
|
20
20
|
class EmergeHelper
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
return upload_id
|
32
|
-
else
|
33
|
-
UI.error("Upload failed")
|
34
|
-
end
|
35
|
-
return nil
|
21
|
+
API_URL = 'https://api.emergetools.com/upload'.freeze
|
22
|
+
|
23
|
+
def self.perform_upload(api_token, params, file_path)
|
24
|
+
cleaned_params = clean_params(params)
|
25
|
+
print_summary(cleaned_params)
|
26
|
+
|
27
|
+
upload_response = create_upload(api_token, cleaned_params)
|
28
|
+
handle_upload_response(api_token, upload_response, file_path)
|
29
|
+
rescue StandardError => e
|
30
|
+
UI.user_error!(e.message)
|
36
31
|
end
|
37
32
|
|
38
33
|
def self.make_git_params
|
@@ -56,6 +51,84 @@ module Fastlane
|
|
56
51
|
UI.message("Got git result #{git_result.inspect}")
|
57
52
|
git_result
|
58
53
|
end
|
54
|
+
|
55
|
+
def self.copy_config(config_path, tmp_dir)
|
56
|
+
return if config_path.nil?
|
57
|
+
|
58
|
+
expanded_path = File.expand_path(config_path)
|
59
|
+
unless File.exist?(expanded_path)
|
60
|
+
UI.error("No config file found at path '#{expanded_path}'.\nUploading without config file")
|
61
|
+
return
|
62
|
+
end
|
63
|
+
|
64
|
+
emerge_config_path = "#{tmp_dir}/emerge_config.yaml"
|
65
|
+
FileUtils.cp(expanded_path, emerge_config_path)
|
66
|
+
end
|
67
|
+
|
68
|
+
private_class_method
|
69
|
+
|
70
|
+
def self.clean_params(params)
|
71
|
+
params.reject { |_, v| v.nil? }
|
72
|
+
end
|
73
|
+
|
74
|
+
def self.print_summary(params)
|
75
|
+
FastlaneCore::PrintTable.print_values(
|
76
|
+
config: params,
|
77
|
+
hide_keys: [],
|
78
|
+
title: "Summary for Emerge Upload #{Fastlane::Emerge::VERSION}"
|
79
|
+
)
|
80
|
+
end
|
81
|
+
|
82
|
+
def self.create_upload(api_token, params)
|
83
|
+
response = Faraday.post(API_URL, params.to_json, headers(api_token, params, 'application/json'))
|
84
|
+
parse_response(response)
|
85
|
+
end
|
86
|
+
|
87
|
+
def self.headers(api_token, params, content_type)
|
88
|
+
{
|
89
|
+
'Content-Type' => content_type,
|
90
|
+
'X-API-Token' => api_token,
|
91
|
+
'User-Agent' => "fastlane-plugin-emerge/#{Fastlane::Emerge::VERSION}"
|
92
|
+
}
|
93
|
+
end
|
94
|
+
|
95
|
+
def self.parse_response(response)
|
96
|
+
case response.status
|
97
|
+
when 200
|
98
|
+
JSON.parse(response.body)
|
99
|
+
when 400
|
100
|
+
error_message = JSON.parse(response.body)['errorMessage']
|
101
|
+
raise "Invalid parameters: #{error_message}"
|
102
|
+
when 401, 403
|
103
|
+
raise 'Invalid API token'
|
104
|
+
else
|
105
|
+
raise "Creating upload failed with status #{response.status}"
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
def self.handle_upload_response(api_token, response, file_path)
|
110
|
+
upload_url = response.fetch('uploadURL')
|
111
|
+
upload_id = response.fetch('upload_id')
|
112
|
+
|
113
|
+
warning = response.dig('warning')
|
114
|
+
if warning
|
115
|
+
UI.important(warning)
|
116
|
+
end
|
117
|
+
|
118
|
+
UI.message('Starting zip file upload')
|
119
|
+
upload_file(api_token, upload_url, file_path)
|
120
|
+
upload_id
|
121
|
+
end
|
122
|
+
|
123
|
+
def self.upload_file(api_token, upload_url, file_path)
|
124
|
+
response = Faraday.put(upload_url) do |req|
|
125
|
+
req.headers = headers(api_token, nil, 'application/zip')
|
126
|
+
req.headers['Content-Length'] = File.size(file_path).to_s
|
127
|
+
req.body = Faraday::UploadIO.new(file_path, 'application/zip')
|
128
|
+
end
|
129
|
+
|
130
|
+
raise "Uploading zip file failed #{response.status}" unless response.status == 200
|
131
|
+
end
|
59
132
|
end
|
60
133
|
end
|
61
134
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane-plugin-emerge
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Emerge Tools, Inc
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-03-
|
11
|
+
date: 2024-03-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -162,6 +162,7 @@ files:
|
|
162
162
|
- lib/fastlane/plugin/emerge/actions/emerge_action.rb
|
163
163
|
- lib/fastlane/plugin/emerge/actions/emerge_comment_action.rb
|
164
164
|
- lib/fastlane/plugin/emerge/actions/emerge_order_file_action.rb
|
165
|
+
- lib/fastlane/plugin/emerge/actions/emerge_snapshot_action.rb
|
165
166
|
- lib/fastlane/plugin/emerge/helper/emerge_helper.rb
|
166
167
|
- lib/fastlane/plugin/emerge/helper/git.rb
|
167
168
|
- lib/fastlane/plugin/emerge/helper/github.rb
|
@@ -185,7 +186,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
185
186
|
- !ruby/object:Gem::Version
|
186
187
|
version: '0'
|
187
188
|
requirements: []
|
188
|
-
rubygems_version: 3.
|
189
|
+
rubygems_version: 3.3.25
|
189
190
|
signing_key:
|
190
191
|
specification_version: 4
|
191
192
|
summary: Fastlane plugin for Emerge
|