Skip to content

Commit a9ddd89

Browse files
authored
fix: fix IsTopLevelManifest calculation for versioned manifests (#381)
* fix: fix IsTopLevelManifest calculation for versioned manifests This change now correctly recognizes versioned manifests of the form x.root.json as top-level manifests. Signed-off-by: Asra Ali <[email protected]>
1 parent 61872a3 commit a9ddd89

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

internal/roles/roles.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,13 @@ func IsDelegatedTargetsRole(name string) bool {
2222
}
2323

2424
func IsTopLevelManifest(name string) bool {
25+
if IsVersionedManifest(name) {
26+
var found bool
27+
_, name, found = strings.Cut(name, ".")
28+
if !found {
29+
panic("expected a versioned manifest of the form x.role.json")
30+
}
31+
}
2532
return IsTopLevelRole(strings.TrimSuffix(name, ".json"))
2633
}
2734

internal/roles/roles_test.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,24 @@ func TestIsDelegatedTargetsRole(t *testing.T) {
2424

2525
func TestIsTopLevelManifest(t *testing.T) {
2626
assert.True(t, IsTopLevelManifest("root.json"))
27+
assert.True(t, IsTopLevelManifest("1.root.json"))
2728
assert.True(t, IsTopLevelManifest("targets.json"))
2829
assert.True(t, IsTopLevelManifest("timestamp.json"))
2930
assert.True(t, IsTopLevelManifest("snapshot.json"))
31+
assert.True(t, IsTopLevelManifest("2.snapshot.json"))
3032
assert.False(t, IsTopLevelManifest("bins.json"))
33+
assert.False(t, IsTopLevelManifest("3.bins.json"))
3134
}
3235

3336
func TestIsDelegatedTargetsManifest(t *testing.T) {
3437
assert.False(t, IsDelegatedTargetsManifest("root.json"))
38+
assert.False(t, IsDelegatedTargetsManifest("1.root.json"))
3539
assert.False(t, IsDelegatedTargetsManifest("targets.json"))
40+
assert.False(t, IsDelegatedTargetsManifest("2.targets.json"))
3641
assert.False(t, IsDelegatedTargetsManifest("timestamp.json"))
3742
assert.False(t, IsDelegatedTargetsManifest("snapshot.json"))
3843
assert.True(t, IsDelegatedTargetsManifest("bins.json"))
44+
assert.True(t, IsDelegatedTargetsManifest("2.bins.json"))
3945
}
4046

4147
func TestIsVersionedManifest(t *testing.T) {

0 commit comments

Comments
 (0)