Skip to content

Commit 85e15fc

Browse files
committed
Consolidate trust logic in IsTrustedBuilder with smart tag matching
Signed-off-by: Rune Soerensen <rsoerensen@salesforce.com>
1 parent dbceb5f commit 85e15fc

4 files changed

Lines changed: 23 additions & 4 deletions

File tree

internal/builder/trusted_builder.go

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,11 +122,29 @@ func IsTrustedBuilder(cfg config.Config, builderName string) (bool, error) {
122122
if err != nil {
123123
return false, err
124124
}
125+
126+
// Collect all trusted builder names
127+
var trustedBuilderNames []string
128+
129+
// Add known trusted builders
130+
for _, knownBuilder := range KnownBuilders {
131+
if knownBuilder.Trusted {
132+
trustedBuilderNames = append(trustedBuilderNames, knownBuilder.Image)
133+
}
134+
}
135+
136+
// Add user-configured trusted builders
125137
for _, trustedBuilder := range cfg.TrustedBuilders {
126-
trustedBuilderReference, err := name.ParseReference(trustedBuilder.Name, name.WithDefaultTag(""))
138+
trustedBuilderNames = append(trustedBuilderNames, trustedBuilder.Name)
139+
}
140+
141+
// Check if builder matches any trusted builder
142+
for _, trustedBuilderName := range trustedBuilderNames {
143+
trustedBuilderReference, err := name.ParseReference(trustedBuilderName, name.WithDefaultTag(""))
127144
if err != nil {
128145
return false, err
129146
}
147+
130148
if trustedBuilderReference.Identifier() != "" {
131149
if builderReference.Name() == trustedBuilderReference.Name() {
132150
return true, nil
@@ -137,5 +155,6 @@ func IsTrustedBuilder(cfg config.Config, builderName string) (bool, error) {
137155
}
138156
}
139157
}
158+
140159
return false, nil
141160
}

internal/commands/build.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ func Build(logger logging.Logger, cfg config.Config, packClient PackClient) *cob
121121
if err != nil {
122122
return err
123123
}
124-
trustBuilder := isTrusted || bldr.IsKnownTrustedBuilder(builder) || flags.TrustBuilder
124+
trustBuilder := isTrusted || flags.TrustBuilder
125125
if trustBuilder {
126126
logger.Debugf("Builder %s is trusted", style.Symbol(builder))
127127
if flags.LifecycleImage != "" {

internal/commands/builder_inspect.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ func inspectBuilder(
7171
builderInfo := writer.SharedBuilderInfo{
7272
Name: imageName,
7373
IsDefault: imageName == cfg.DefaultBuilder,
74-
Trusted: isTrusted || bldr.IsKnownTrustedBuilder(imageName),
74+
Trusted: isTrusted,
7575
}
7676

7777
localInfo, localErr := inspector.InspectBuilder(imageName, true, client.WithDetectionOrderDepth(flags.Depth))

internal/commands/config_trusted_builder.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ func addTrustedBuilder(args []string, logger logging.Logger, cfg config.Config,
5555
if err != nil {
5656
return err
5757
}
58-
if isTrusted || bldr.IsKnownTrustedBuilder(imageName) {
58+
if isTrusted {
5959
logger.Infof("Builder %s is already trusted", style.Symbol(imageName))
6060
return nil
6161
}

0 commit comments

Comments
 (0)