Skip to content

Commit 020680e

Browse files
committed
Fix HelmChart local dependency resolution for name-based path
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
1 parent 8d8e7cc commit 020680e

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

internal/helm/chart/dependency_manager.go

+3
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,9 @@ func (dm *DependencyManager) resolveRepository(url string) (repo repository.Down
296296
// It does not allow the dependency's path to be outside the scope of
297297
// LocalReference.WorkDir.
298298
func (dm *DependencyManager) secureLocalChartPath(ref LocalReference, dep *helmchart.Dependency) (string, error) {
299+
if dep.Repository == "" {
300+
return securejoin.SecureJoin(ref.WorkDir, filepath.Join(ref.Path, "charts", dep.Name))
301+
}
299302
localUrl, err := url.Parse(dep.Repository)
300303
if err != nil {
301304
return "", fmt.Errorf("failed to parse alleged local chart reference: %w", err)

internal/helm/chart/dependency_manager_test.go

+9
Original file line numberDiff line numberDiff line change
@@ -844,6 +844,15 @@ func TestDependencyManager_secureLocalChartPath(t *testing.T) {
844844
},
845845
wantErr: "not a local chart reference",
846846
},
847+
{
848+
name: "local dependency with empty repository",
849+
dep: &helmchart.Dependency{
850+
Name: "some-subchart",
851+
},
852+
baseDir: "/tmp/workdir",
853+
path: "/chart",
854+
want: "/tmp/workdir/chart/charts/some-subchart",
855+
},
847856
}
848857
for _, tt := range tests {
849858
t.Run(tt.name, func(t *testing.T) {

0 commit comments

Comments
 (0)