fastlane-plugin-infisical 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/LICENSE +202 -0
- data/README.md +165 -0
- data/lib/fastlane/plugin/infisical/actions/infisical_storage_action.rb +32 -0
- data/lib/fastlane/plugin/infisical/storage.rb +428 -0
- data/lib/fastlane/plugin/infisical/storage_manual.rb +385 -0
- data/lib/fastlane/plugin/infisical/storage_sdk.rb +259 -0
- data/lib/fastlane/plugin/infisical/version.rb +5 -0
- data/lib/fastlane/plugin/infisical_storage.rb +86 -0
- metadata +79 -0
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
require "fastlane/plugin/infisical/version"
|
|
2
|
+
require_relative "./infisical/storage"
|
|
3
|
+
|
|
4
|
+
Match::Storage.register_backend(
|
|
5
|
+
type: "infisical",
|
|
6
|
+
storage_class: ::Fastlane::InfisicalStorage::Storage
|
|
7
|
+
)
|
|
8
|
+
Match::Encryption.register_backend(type: "infisical") { nil }
|
|
9
|
+
|
|
10
|
+
# At the time of writing, Match::Options.append_option exists but assumes available_options memoizes (but it doesn't)
|
|
11
|
+
# so we'll fix it to memoize
|
|
12
|
+
module MemoizeAvailableOptions
|
|
13
|
+
def available_options
|
|
14
|
+
@available_options ||= super
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
Match::Options.singleton_class.prepend(MemoizeAvailableOptions)
|
|
18
|
+
|
|
19
|
+
Match::Options.append_option(
|
|
20
|
+
FastlaneCore::ConfigItem.new(
|
|
21
|
+
key: :infisical_project_id,
|
|
22
|
+
env_name: "INFISICAL_PROJECT_ID",
|
|
23
|
+
description: "The Infisical project ID where secrets will be stored",
|
|
24
|
+
optional: false,
|
|
25
|
+
type: String
|
|
26
|
+
)
|
|
27
|
+
)
|
|
28
|
+
Match::Options.append_option(
|
|
29
|
+
FastlaneCore::ConfigItem.new(
|
|
30
|
+
key: :infisical_environment,
|
|
31
|
+
env_name: "INFISICAL_ENVIRONMENT",
|
|
32
|
+
description: "The Infisical environment (e.g., dev, staging, prod)",
|
|
33
|
+
optional: true,
|
|
34
|
+
default_value: "dev",
|
|
35
|
+
type: String
|
|
36
|
+
)
|
|
37
|
+
)
|
|
38
|
+
Match::Options.append_option(
|
|
39
|
+
FastlaneCore::ConfigItem.new(
|
|
40
|
+
key: :infisical_secret_path,
|
|
41
|
+
env_name: "INFISICAL_SECRET_PATH",
|
|
42
|
+
description: "The path within Infisical where secrets will be stored",
|
|
43
|
+
optional: true,
|
|
44
|
+
default_value: "/",
|
|
45
|
+
type: String
|
|
46
|
+
)
|
|
47
|
+
)
|
|
48
|
+
Match::Options.append_option(
|
|
49
|
+
FastlaneCore::ConfigItem.new(
|
|
50
|
+
key: :infisical_url,
|
|
51
|
+
env_name: "INFISICAL_URL",
|
|
52
|
+
description:
|
|
53
|
+
"The Infisical instance URL (defaults to https://app.infisical.com)",
|
|
54
|
+
optional: true,
|
|
55
|
+
default_value: "https://app.infisical.com",
|
|
56
|
+
type: String
|
|
57
|
+
)
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
# Fastlane will complain if a plugin doesn't include any actions. Thus, we have to include an action in the right way
|
|
61
|
+
# so it won't complain
|
|
62
|
+
module Fastlane
|
|
63
|
+
module InfisicalStorage
|
|
64
|
+
def self.all_classes
|
|
65
|
+
Dir[File.expand_path("**/{actions}/*.rb", File.dirname(__FILE__))]
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
# By default we want to import all available actions and helpers
|
|
71
|
+
# A plugin can contain any number of actions and plugins
|
|
72
|
+
Fastlane::InfisicalStorage.all_classes.each { |current| require current }
|
|
73
|
+
|
|
74
|
+
# At the time of writing, Fastlane/Match does not actually support adding backends via a plugin since it hard-codes the
|
|
75
|
+
# allowed storage modes. This code simply monkey-patches Fastlane/Match to respond with all registered storage modes
|
|
76
|
+
module Match
|
|
77
|
+
def self.storage_modes
|
|
78
|
+
Storage.backends.keys
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
class Setup
|
|
82
|
+
def storage_options
|
|
83
|
+
::Match::Storage.backends.keys
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: fastlane-plugin-infisical
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- redth
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2025-07-26 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: infisical-sdk
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - "~>"
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '2.3'
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - "~>"
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '2.3'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: dotenv
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - "~>"
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '2.8'
|
|
34
|
+
type: :runtime
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - "~>"
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '2.8'
|
|
41
|
+
description:
|
|
42
|
+
email: jondick@gmail.com
|
|
43
|
+
executables: []
|
|
44
|
+
extensions: []
|
|
45
|
+
extra_rdoc_files: []
|
|
46
|
+
files:
|
|
47
|
+
- LICENSE
|
|
48
|
+
- README.md
|
|
49
|
+
- lib/fastlane/plugin/infisical/actions/infisical_storage_action.rb
|
|
50
|
+
- lib/fastlane/plugin/infisical/storage.rb
|
|
51
|
+
- lib/fastlane/plugin/infisical/storage_manual.rb
|
|
52
|
+
- lib/fastlane/plugin/infisical/storage_sdk.rb
|
|
53
|
+
- lib/fastlane/plugin/infisical/version.rb
|
|
54
|
+
- lib/fastlane/plugin/infisical_storage.rb
|
|
55
|
+
homepage: https://github.com/redth/fastlane.plugin.infisical
|
|
56
|
+
licenses:
|
|
57
|
+
- Apache-2.0
|
|
58
|
+
metadata:
|
|
59
|
+
rubygems_mfa_required: 'true'
|
|
60
|
+
post_install_message:
|
|
61
|
+
rdoc_options: []
|
|
62
|
+
require_paths:
|
|
63
|
+
- lib
|
|
64
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - ">="
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: '2.7'
|
|
69
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
70
|
+
requirements:
|
|
71
|
+
- - ">="
|
|
72
|
+
- !ruby/object:Gem::Version
|
|
73
|
+
version: '0'
|
|
74
|
+
requirements: []
|
|
75
|
+
rubygems_version: 3.5.22
|
|
76
|
+
signing_key:
|
|
77
|
+
specification_version: 4
|
|
78
|
+
summary: Enables fastlane match to use Infisical as backing storage
|
|
79
|
+
test_files: []
|