diff --git a/cmd/diff/diffprocessor/function_provider.go b/cmd/diff/diffprocessor/function_provider.go index 488850f..9b8a580 100644 --- a/cmd/diff/diffprocessor/function_provider.go +++ b/cmd/diff/diffprocessor/function_provider.go @@ -275,8 +275,8 @@ func generateContainerName(pkg, instanceID string) string { // Handle SHA256 digest references: name@sha256:digest // Extract just the function name and a truncated digest if before, after, ok := strings.Cut(nameAndVersion, "@sha256:"); ok { - funcName := before - digest := after // Skip "@sha256:" + funcName := strings.ReplaceAll(before, ":", "-") + digest := after // Use first 12 chars of digest (like Docker short image IDs) if len(digest) > 12 { diff --git a/cmd/diff/diffprocessor/function_provider_test.go b/cmd/diff/diffprocessor/function_provider_test.go index 7b17bb9..6df9826 100644 --- a/cmd/diff/diffprocessor/function_provider_test.go +++ b/cmd/diff/diffprocessor/function_provider_test.go @@ -545,6 +545,10 @@ func TestGenerateContainerName(t *testing.T) { pkg: "xpkg.io/test/function@sha256:abc123", want: "function-abc123-comp-test1234", }, + "TagAndDigest": { + pkg: "registry.io/path/function-auto-ready:v0.6.1-0@sha256:751a4afb65f1abcdef1234567890abcdef1234567890abcdef1234567890abcd", + want: "function-auto-ready-v0.6.1-0-751a4afb65f1-comp-test1234", + }, } for name, tt := range tests {