in experimental/repository.go [252:282]
func (r *repositoryData) addManifestRevision(args []string, info fileInfo) error {
// /test2/_manifests/revisions/sha256/708519982eae159899e908639f5fa22d23d247ad923f6e6ad6128894c5d497a0/link
link, err := analyzeLink(args)
if err == nil {
err = verifyLink(link, r.manifestRevisionPath(link), info.etag)
if err != nil {
return err
}
r.lock.Lock()
defer r.lock.Unlock()
r.manifests[link] = 0
return nil
}
link, signature, err := analyzeLinkSignature(args)
if err == nil {
err = verifyLink(signature, r.manifestRevisionSignaturePath(link, signature), info.etag)
if err != nil {
return err
}
r.lock.Lock()
defer r.lock.Unlock()
r.manifestSignatures[link] = append(r.manifestSignatures[link], signature)
return nil
}
return err
}