strongdm 15.37.0 → 15.39.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/.git/ORIG_HEAD +1 -1
- data/.git/index +0 -0
- data/.git/logs/HEAD +3 -3
- data/.git/logs/refs/heads/master +2 -2
- data/.git/logs/refs/remotes/origin/HEAD +1 -1
- data/.git/objects/pack/{pack-7e67875b028cbc214a2e0c8edcb20fca17ee9f87.idx → pack-a6f1fd71b47c84d8c0841ce964e52d8368dbf3ea.idx} +0 -0
- data/.git/objects/pack/{pack-7e67875b028cbc214a2e0c8edcb20fca17ee9f87.pack → pack-a6f1fd71b47c84d8c0841ce964e52d8368dbf3ea.pack} +0 -0
- data/.git/packed-refs +3 -2
- data/.git/refs/heads/master +1 -1
- data/lib/grpc/drivers_pb.rb +16 -0
- data/lib/grpc/options_pb.rb +5 -0
- data/lib/grpc/plumbing.rb +62 -0
- data/lib/models/porcelain.rb +64 -0
- data/lib/strongdm.rb +1 -1
- data/lib/svc.rb +1 -0
- data/lib/version +1 -1
- data/lib/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 52221bbf9712a6cfaf2f78c0ee02bdee8f43dedcb57c8d695fc789b70daeeabe
|
|
4
|
+
data.tar.gz: 7f5083116061a2614fdc82210eeabc681fdb2204f70140ad5d9816126023c76d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 65cda3c122d036df2829515c3fb8cc46d3c393e6aa9561d18d256bf761703046c1f2e92e374c257925f276fbd460344ec3ea0c5d535bd61ef2a6626d3cad835e
|
|
7
|
+
data.tar.gz: d4b3557f258cc4020075b4b151430dc28751172297b29d8399be9d209337be106d3b1ca455be61de635af3b476a30e7eac209fe2bafb4277caabc577ada2d7b2
|
data/.git/ORIG_HEAD
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
6b720eb84b5b501adf7adbf58f6be078888619e9
|
data/.git/index
CHANGED
|
Binary file
|
data/.git/logs/HEAD
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
0000000000000000000000000000000000000000
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
0000000000000000000000000000000000000000 6b720eb84b5b501adf7adbf58f6be078888619e9 root <root@8dc3b1b878fb.(none)> 1765500154 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
|
|
2
|
+
6b720eb84b5b501adf7adbf58f6be078888619e9 6b720eb84b5b501adf7adbf58f6be078888619e9 root <root@8dc3b1b878fb.(none)> 1765500154 +0000 checkout: moving from master to master
|
|
3
|
+
6b720eb84b5b501adf7adbf58f6be078888619e9 740f705c286a25c2abae5a44b52fe330cc4e3e71 root <root@8dc3b1b878fb.(none)> 1765500154 +0000 merge origin/development: Fast-forward
|
data/.git/logs/refs/heads/master
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
0000000000000000000000000000000000000000
|
|
2
|
-
|
|
1
|
+
0000000000000000000000000000000000000000 6b720eb84b5b501adf7adbf58f6be078888619e9 root <root@8dc3b1b878fb.(none)> 1765500154 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
|
|
2
|
+
6b720eb84b5b501adf7adbf58f6be078888619e9 740f705c286a25c2abae5a44b52fe330cc4e3e71 root <root@8dc3b1b878fb.(none)> 1765500154 +0000 merge origin/development: Fast-forward
|
|
@@ -1 +1 @@
|
|
|
1
|
-
0000000000000000000000000000000000000000
|
|
1
|
+
0000000000000000000000000000000000000000 6b720eb84b5b501adf7adbf58f6be078888619e9 root <root@8dc3b1b878fb.(none)> 1765500154 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
|
|
Binary file
|
|
Binary file
|
data/.git/packed-refs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# pack-refs with: peeled fully-peeled sorted
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
740f705c286a25c2abae5a44b52fe330cc4e3e71 refs/remotes/origin/development
|
|
3
|
+
6b720eb84b5b501adf7adbf58f6be078888619e9 refs/remotes/origin/master
|
|
4
4
|
2e4fe8087177ddea9b3991ca499f758384839c89 refs/tags/untagged-84fd83a4484c785cce63
|
|
5
5
|
04f604866214fab4d5663b5171a3e596331577bd refs/tags/v0.9.4
|
|
6
6
|
6f9a7b75b345c65fb554884907b7060680c807b7 refs/tags/v0.9.5
|
|
@@ -124,6 +124,7 @@ dd0e56c1b216e4c5828c092bc1bdc5c763804def refs/tags/v15.29.0
|
|
|
124
124
|
cd129de1d73e1ab24098a9be54f50fc78cfd31b7 refs/tags/v15.33.0
|
|
125
125
|
b35d0e5ff63bf46264f4b6310ce05e2238917cef refs/tags/v15.35.0
|
|
126
126
|
e2a4215bd3bbfb822423e11e81b9ad47bef03840 refs/tags/v15.36.0
|
|
127
|
+
6b720eb84b5b501adf7adbf58f6be078888619e9 refs/tags/v15.37.0
|
|
127
128
|
cf3b15b82cb0c4229609c07c870c6cb4fd38ef75 refs/tags/v15.4.0
|
|
128
129
|
0be2c5e7f7a90c49077548cb3a9bce234219b9f0 refs/tags/v15.5.0
|
|
129
130
|
4b9cd43c5dda3f369b82b6a56132a5470ff9ff53 refs/tags/v15.6.0
|
data/.git/refs/heads/master
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
740f705c286a25c2abae5a44b52fe330cc4e3e71
|
data/lib/grpc/drivers_pb.rb
CHANGED
|
@@ -106,6 +106,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
|
106
106
|
optional :mysql, :message, 1100, "v1.Mysql"
|
|
107
107
|
optional :neptune, :message, 2250, "v1.Neptune"
|
|
108
108
|
optional :neptune_iam, :message, 2201, "v1.NeptuneIAM"
|
|
109
|
+
optional :okta_groups, :message, 3500, "v1.OktaGroups"
|
|
109
110
|
optional :oracle, :message, 1200, "v1.Oracle"
|
|
110
111
|
optional :oracle_nne, :message, 1201, "v1.OracleNNE"
|
|
111
112
|
optional :postgres, :message, 1300, "v1.Postgres"
|
|
@@ -1617,6 +1618,20 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
|
1617
1618
|
optional :role_external_id, :string, 8
|
|
1618
1619
|
optional :secret_access_key, :string, 5
|
|
1619
1620
|
end
|
|
1621
|
+
add_message "v1.OktaGroups" do
|
|
1622
|
+
optional :id, :string, 32768
|
|
1623
|
+
optional :name, :string, 32769
|
|
1624
|
+
optional :healthy, :bool, 32770
|
|
1625
|
+
optional :tags, :message, 32771, "v1.Tags"
|
|
1626
|
+
optional :secret_store_id, :string, 32772
|
|
1627
|
+
optional :egress_filter, :string, 32773
|
|
1628
|
+
optional :bind_interface, :string, 32774
|
|
1629
|
+
optional :proxy_cluster_id, :string, 32776
|
|
1630
|
+
optional :subdomain, :string, 32775
|
|
1631
|
+
optional :domain, :string, 1
|
|
1632
|
+
optional :identity_set_id, :string, 3
|
|
1633
|
+
optional :privilege_levels, :string, 2
|
|
1634
|
+
end
|
|
1620
1635
|
add_message "v1.Oracle" do
|
|
1621
1636
|
optional :id, :string, 32768
|
|
1622
1637
|
optional :name, :string, 32769
|
|
@@ -2232,6 +2247,7 @@ module V1
|
|
|
2232
2247
|
Mysql = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.Mysql").msgclass
|
|
2233
2248
|
Neptune = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.Neptune").msgclass
|
|
2234
2249
|
NeptuneIAM = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.NeptuneIAM").msgclass
|
|
2250
|
+
OktaGroups = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.OktaGroups").msgclass
|
|
2235
2251
|
Oracle = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.Oracle").msgclass
|
|
2236
2252
|
OracleNNE = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.OracleNNE").msgclass
|
|
2237
2253
|
Postgres = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.Postgres").msgclass
|
data/lib/grpc/options_pb.rb
CHANGED
|
@@ -68,6 +68,10 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
|
68
68
|
repeated :conditions, :string, 1941325
|
|
69
69
|
optional :expect_file, :bool, 1941324
|
|
70
70
|
end
|
|
71
|
+
add_message "v1.EnumOptions" do
|
|
72
|
+
repeated :targets, :string, 1941330
|
|
73
|
+
optional :custom, :message, 1941305, "v1.CustomOptions"
|
|
74
|
+
end
|
|
71
75
|
add_message "v1.CustomOptions" do
|
|
72
76
|
optional :converter, :string, 1941309
|
|
73
77
|
map :porcelain_type_override, :string, :string, 1941310
|
|
@@ -91,6 +95,7 @@ module V1
|
|
|
91
95
|
MessageOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.MessageOptions").msgclass
|
|
92
96
|
OneofOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.OneofOptions").msgclass
|
|
93
97
|
FieldOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.FieldOptions").msgclass
|
|
98
|
+
EnumOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.EnumOptions").msgclass
|
|
94
99
|
CustomOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.CustomOptions").msgclass
|
|
95
100
|
TerraformDocs = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.TerraformDocs").msgclass
|
|
96
101
|
end
|
data/lib/grpc/plumbing.rb
CHANGED
|
@@ -11731,6 +11731,62 @@ module SDM
|
|
|
11731
11731
|
end
|
|
11732
11732
|
items
|
|
11733
11733
|
end
|
|
11734
|
+
def self.convert_okta_groups_to_porcelain(plumbing)
|
|
11735
|
+
if plumbing == nil
|
|
11736
|
+
return nil
|
|
11737
|
+
end
|
|
11738
|
+
porcelain = OktaGroups.new()
|
|
11739
|
+
porcelain.bind_interface = (plumbing.bind_interface)
|
|
11740
|
+
porcelain.domain = (plumbing.domain)
|
|
11741
|
+
porcelain.egress_filter = (plumbing.egress_filter)
|
|
11742
|
+
porcelain.healthy = (plumbing.healthy)
|
|
11743
|
+
porcelain.id = (plumbing.id)
|
|
11744
|
+
porcelain.identity_set_id = (plumbing.identity_set_id)
|
|
11745
|
+
porcelain.name = (plumbing.name)
|
|
11746
|
+
porcelain.privilege_levels = (plumbing.privilege_levels)
|
|
11747
|
+
porcelain.proxy_cluster_id = (plumbing.proxy_cluster_id)
|
|
11748
|
+
porcelain.secret_store_id = (plumbing.secret_store_id)
|
|
11749
|
+
porcelain.subdomain = (plumbing.subdomain)
|
|
11750
|
+
porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
|
|
11751
|
+
porcelain
|
|
11752
|
+
end
|
|
11753
|
+
|
|
11754
|
+
def self.convert_okta_groups_to_plumbing(porcelain)
|
|
11755
|
+
if porcelain == nil
|
|
11756
|
+
return nil
|
|
11757
|
+
end
|
|
11758
|
+
plumbing = V1::OktaGroups.new()
|
|
11759
|
+
plumbing.bind_interface = (porcelain.bind_interface)
|
|
11760
|
+
plumbing.domain = (porcelain.domain)
|
|
11761
|
+
plumbing.egress_filter = (porcelain.egress_filter)
|
|
11762
|
+
plumbing.healthy = (porcelain.healthy)
|
|
11763
|
+
plumbing.id = (porcelain.id)
|
|
11764
|
+
plumbing.identity_set_id = (porcelain.identity_set_id)
|
|
11765
|
+
plumbing.name = (porcelain.name)
|
|
11766
|
+
plumbing.privilege_levels = (porcelain.privilege_levels)
|
|
11767
|
+
plumbing.proxy_cluster_id = (porcelain.proxy_cluster_id)
|
|
11768
|
+
plumbing.secret_store_id = (porcelain.secret_store_id)
|
|
11769
|
+
plumbing.subdomain = (porcelain.subdomain)
|
|
11770
|
+
plumbing.tags = convert_tags_to_plumbing(porcelain.tags)
|
|
11771
|
+
plumbing
|
|
11772
|
+
end
|
|
11773
|
+
def self.convert_repeated_okta_groups_to_plumbing(porcelains)
|
|
11774
|
+
items = Array.new
|
|
11775
|
+
porcelains.each do |porcelain|
|
|
11776
|
+
plumbing = convert_okta_groups_to_plumbing(porcelain)
|
|
11777
|
+
items.append(plumbing)
|
|
11778
|
+
end
|
|
11779
|
+
items
|
|
11780
|
+
end
|
|
11781
|
+
|
|
11782
|
+
def self.convert_repeated_okta_groups_to_porcelain(plumbings)
|
|
11783
|
+
items = Array.new
|
|
11784
|
+
plumbings.each do |plumbing|
|
|
11785
|
+
porcelain = convert_okta_groups_to_porcelain(plumbing)
|
|
11786
|
+
items.append(porcelain)
|
|
11787
|
+
end
|
|
11788
|
+
items
|
|
11789
|
+
end
|
|
11734
11790
|
def self.convert_oracle_to_porcelain(plumbing)
|
|
11735
11791
|
if plumbing == nil
|
|
11736
11792
|
return nil
|
|
@@ -14836,6 +14892,9 @@ module SDM
|
|
|
14836
14892
|
if porcelain.instance_of? NeptuneIAM
|
|
14837
14893
|
plumbing.neptune_iam = convert_neptune_iam_to_plumbing(porcelain)
|
|
14838
14894
|
end
|
|
14895
|
+
if porcelain.instance_of? OktaGroups
|
|
14896
|
+
plumbing.okta_groups = convert_okta_groups_to_plumbing(porcelain)
|
|
14897
|
+
end
|
|
14839
14898
|
if porcelain.instance_of? Oracle
|
|
14840
14899
|
plumbing.oracle = convert_oracle_to_plumbing(porcelain)
|
|
14841
14900
|
end
|
|
@@ -15176,6 +15235,9 @@ module SDM
|
|
|
15176
15235
|
if plumbing.neptune_iam != nil
|
|
15177
15236
|
return convert_neptune_iam_to_porcelain(plumbing.neptune_iam)
|
|
15178
15237
|
end
|
|
15238
|
+
if plumbing.okta_groups != nil
|
|
15239
|
+
return convert_okta_groups_to_porcelain(plumbing.okta_groups)
|
|
15240
|
+
end
|
|
15179
15241
|
if plumbing.oracle != nil
|
|
15180
15242
|
return convert_oracle_to_porcelain(plumbing.oracle)
|
|
15181
15243
|
end
|
data/lib/models/porcelain.rb
CHANGED
|
@@ -11323,6 +11323,70 @@ module SDM
|
|
|
11323
11323
|
end
|
|
11324
11324
|
end
|
|
11325
11325
|
|
|
11326
|
+
# OktaGroups is currently unstable, and its API may change, or it may be removed, without a major version bump.
|
|
11327
|
+
class OktaGroups
|
|
11328
|
+
# The bind interface is the IP address to which the port override of a resource is bound (for example, 127.0.0.1). It is automatically generated if not provided and may also be set to one of the ResourceIPAllocationMode constants to select between VNM, loopback, or default allocation.
|
|
11329
|
+
attr_accessor :bind_interface
|
|
11330
|
+
# Represents the Okta Org Client URL
|
|
11331
|
+
attr_accessor :domain
|
|
11332
|
+
# A filter applied to the routing logic to pin datasource to nodes.
|
|
11333
|
+
attr_accessor :egress_filter
|
|
11334
|
+
# True if the datasource is reachable and the credentials are valid.
|
|
11335
|
+
attr_accessor :healthy
|
|
11336
|
+
# Unique identifier of the Resource.
|
|
11337
|
+
attr_accessor :id
|
|
11338
|
+
# The ID of the identity set to use for identity connections.
|
|
11339
|
+
attr_accessor :identity_set_id
|
|
11340
|
+
# Unique human-readable name of the Resource.
|
|
11341
|
+
attr_accessor :name
|
|
11342
|
+
# The privilege levels specify which Groups are managed externally
|
|
11343
|
+
attr_accessor :privilege_levels
|
|
11344
|
+
# ID of the proxy cluster for this resource, if any.
|
|
11345
|
+
attr_accessor :proxy_cluster_id
|
|
11346
|
+
# ID of the secret store containing credentials for this resource, if any.
|
|
11347
|
+
attr_accessor :secret_store_id
|
|
11348
|
+
# DNS subdomain through which this resource may be accessed on clients. (e.g. "app-prod1" allows the resource to be accessed at "app-prod1.your-org-name.sdm-proxy-domain"). Only applicable to HTTP-based resources or resources using virtual networking mode.
|
|
11349
|
+
attr_accessor :subdomain
|
|
11350
|
+
# Tags is a map of key, value pairs.
|
|
11351
|
+
attr_accessor :tags
|
|
11352
|
+
|
|
11353
|
+
def initialize(
|
|
11354
|
+
bind_interface: nil,
|
|
11355
|
+
domain: nil,
|
|
11356
|
+
egress_filter: nil,
|
|
11357
|
+
healthy: nil,
|
|
11358
|
+
id: nil,
|
|
11359
|
+
identity_set_id: nil,
|
|
11360
|
+
name: nil,
|
|
11361
|
+
privilege_levels: nil,
|
|
11362
|
+
proxy_cluster_id: nil,
|
|
11363
|
+
secret_store_id: nil,
|
|
11364
|
+
subdomain: nil,
|
|
11365
|
+
tags: nil
|
|
11366
|
+
)
|
|
11367
|
+
@bind_interface = bind_interface == nil ? "" : bind_interface
|
|
11368
|
+
@domain = domain == nil ? "" : domain
|
|
11369
|
+
@egress_filter = egress_filter == nil ? "" : egress_filter
|
|
11370
|
+
@healthy = healthy == nil ? false : healthy
|
|
11371
|
+
@id = id == nil ? "" : id
|
|
11372
|
+
@identity_set_id = identity_set_id == nil ? "" : identity_set_id
|
|
11373
|
+
@name = name == nil ? "" : name
|
|
11374
|
+
@privilege_levels = privilege_levels == nil ? "" : privilege_levels
|
|
11375
|
+
@proxy_cluster_id = proxy_cluster_id == nil ? "" : proxy_cluster_id
|
|
11376
|
+
@secret_store_id = secret_store_id == nil ? "" : secret_store_id
|
|
11377
|
+
@subdomain = subdomain == nil ? "" : subdomain
|
|
11378
|
+
@tags = tags == nil ? SDM::_porcelain_zero_value_tags() : tags
|
|
11379
|
+
end
|
|
11380
|
+
|
|
11381
|
+
def to_json(options = {})
|
|
11382
|
+
hash = {}
|
|
11383
|
+
self.instance_variables.each do |var|
|
|
11384
|
+
hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
|
|
11385
|
+
end
|
|
11386
|
+
hash.to_json
|
|
11387
|
+
end
|
|
11388
|
+
end
|
|
11389
|
+
|
|
11326
11390
|
class Oracle
|
|
11327
11391
|
# The bind interface is the IP address to which the port override of a resource is bound (for example, 127.0.0.1). It is automatically generated if not provided and may also be set to one of the ResourceIPAllocationMode constants to select between VNM, loopback, or default allocation.
|
|
11328
11392
|
attr_accessor :bind_interface
|
data/lib/strongdm.rb
CHANGED
|
@@ -30,7 +30,7 @@ module SDM #:nodoc:
|
|
|
30
30
|
DEFAULT_RETRY_FACTOR = 1.6
|
|
31
31
|
DEFAULT_RETRY_JITTER = 0.2
|
|
32
32
|
API_VERSION = "2025-04-14"
|
|
33
|
-
USER_AGENT = "strongdm-sdk-ruby/15.
|
|
33
|
+
USER_AGENT = "strongdm-sdk-ruby/15.39.0"
|
|
34
34
|
private_constant :DEFAULT_BASE_RETRY_DELAY, :DEFAULT_MAX_RETRY_DELAY, :DEFAULT_RETRY_FACTOR, :DEFAULT_RETRY_JITTER, :API_VERSION, :USER_AGENT
|
|
35
35
|
|
|
36
36
|
# Creates a new strongDM API client.
|
data/lib/svc.rb
CHANGED
data/lib/version
CHANGED
data/lib/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: strongdm
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 15.
|
|
4
|
+
version: 15.39.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- strongDM Team
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2025-12-
|
|
11
|
+
date: 2025-12-12 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: grpc
|
|
@@ -81,8 +81,8 @@ files:
|
|
|
81
81
|
- "./.git/logs/HEAD"
|
|
82
82
|
- "./.git/logs/refs/heads/master"
|
|
83
83
|
- "./.git/logs/refs/remotes/origin/HEAD"
|
|
84
|
-
- "./.git/objects/pack/pack-
|
|
85
|
-
- "./.git/objects/pack/pack-
|
|
84
|
+
- "./.git/objects/pack/pack-a6f1fd71b47c84d8c0841ce964e52d8368dbf3ea.idx"
|
|
85
|
+
- "./.git/objects/pack/pack-a6f1fd71b47c84d8c0841ce964e52d8368dbf3ea.pack"
|
|
86
86
|
- "./.git/packed-refs"
|
|
87
87
|
- "./.git/refs/heads/master"
|
|
88
88
|
- "./.git/refs/remotes/origin/HEAD"
|