Skip to content
This repository was archived by the owner on Jul 18, 2025. It is now read-only.

Commit e8d2bb8

Browse files
committed
Update metadata schema + style fixes
Signed-off-by: Joffrey F <joffrey@docker.com>
1 parent d2b94f0 commit e8d2bb8

4 files changed

Lines changed: 51 additions & 18 deletions

File tree

internal/packager/fork.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ func updateMetadata(raw []byte, namespace, name string, maintainers []string) ([
8383
var yamlMeta []byte
8484
meta, err := loadMetadata(raw)
8585
if err != nil {
86-
return yamlMeta, err
86+
return nil, err
8787
}
8888
// insert retrieved data in fork history section
8989
log.Debug("Generating fork metadata")
@@ -97,15 +97,14 @@ func updateMetadata(raw []byte, namespace, name string, maintainers []string) ([
9797
// update metadata file
9898
yamlMeta, err = yaml.Marshal(newMeta)
9999
if err != nil {
100-
return yamlMeta, errors.Wrap(err, "failed to render metadata structure")
100+
return nil, errors.Wrap(err, "failed to render metadata structure")
101101
}
102102
return yamlMeta, nil
103103
}
104104

105105
func loadMetadata(raw []byte) (types.AppMetadata, error) {
106106
var meta types.AppMetadata
107-
err := yaml.Unmarshal(raw, &meta)
108-
if err != nil {
107+
if err := yaml.Unmarshal(raw, &meta); err != nil {
109108
return meta, errors.Wrap(err, "failed to parse application metadata")
110109
}
111110
return meta, nil

internal/packager/init.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ func parseMaintainersData(maintainers []string) []types.Maintainer {
212212
var res []types.Maintainer
213213
for _, m := range maintainers {
214214
ne := strings.SplitN(m, ":", 2)
215-
email := ""
215+
var email string
216216
if len(ne) > 1 {
217217
email = ne[1]
218218
}

internal/packager/registry_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ func TestSplitImageName(t *testing.T) {
3333
"__.dockerapp",
3434
"colon:colon:colon.dockerapp:colon",
3535
"nametag.dockerapp:",
36+
"ends/with/slash/",
3637
}
3738

3839
for _, item := range invalids {

specification/schemas/metadata_schema_v0.1.json

Lines changed: 46 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -22,23 +22,56 @@
2222
"maintainers": {
2323
"type": "array",
2424
"items": {
25-
"properties": {
26-
"name": {
27-
"type": "string"
28-
},
29-
"email": {
30-
"type": [
31-
"string",
32-
"null"
33-
],
34-
"format": "email"
35-
}
36-
}
25+
"$ref": "#/definitions/maintainer"
26+
}
27+
},
28+
"parents": {
29+
"type": "array",
30+
"items": {
31+
"$ref": "#/definitions/parent"
3732
}
3833
}
3934
},
4035
"required": [
4136
"name",
4237
"version"
43-
]
38+
],
39+
"definitions": {
40+
"maintainer": {
41+
"id": "#/definitions/maintainer",
42+
"type": "object",
43+
"properties": {
44+
"name": {
45+
"type": "string"
46+
},
47+
"email": {
48+
"type": [
49+
"string",
50+
"null"
51+
],
52+
"format": "email"
53+
}
54+
}
55+
},
56+
"parent": {
57+
"id": "#/definitions/parent",
58+
"properties": {
59+
"name": {
60+
"type": "string",
61+
"format": "hostname"
62+
},
63+
"namespace": {
64+
"type": "string"
65+
},
66+
"version": {
67+
"type": "string"
68+
},
69+
"maintainers": {
70+
"type": "array",
71+
"items": {
72+
"$ref": "#/definitions/maintainer"
73+
}
74+
}
75+
}
76+
}
4477
}

0 commit comments

Comments
 (0)