CodePudding user response:
//Package reference provides a general type to represent any way of referencing images within the registry.//Its main purpose is to abstract tags and digests (content addressable hash).
//
//Grammar
//
//reference: name=[" : "tag] [" @" digest]
//name:=[domain '/'] path - component ['/' path - component] *
//domain: domain - component=['. 'domain - component] * [' :' the port - number]
//domain - component:=/([a zA - Z0-9] | [a zA - Z0-9] [a zA - Z0-9 -] * [a - zA - Z0-9])/
//the port - number:=/[0-9] +/
//path - component:=alpha - numeric [the separator alpha - numeric] *
//alpha - numeric:=//a - z0-9 +/
//the separator:=/[_] | __ | [-] */
//
//tag:=/[/w] [\ w. -] {0127}/
//
//digest:=digest - algorithm ":" digest - hex
//digest - algorithm:=digest algorithm - component [digest algorithm - the separator digest algorithm - component] *
//digest algorithm - the separator:=[+. - _]/
//digest algorithm - component:=/[A Za - z] [A Za - z0-9] */
//digest - hex:=/[0-9 a - fA - F] {32,}/; At 128 - bit further digest value
//
//identifier:=/[a - f0-9] {64}/
//short - identifier:=//a - f0-9 ({6}/