@@ -553,10 +553,8 @@ func LatestImageTagEvent(stream *ImageStream, imageID string) (string, *TagEvent
553
553
continue
554
554
}
555
555
for i , event := range events .Items {
556
- if event .Image != imageID {
557
- continue
558
- }
559
- if latestTagEvent == nil || (latestTagEvent != nil && event .Created .After (latestTagEvent .Created .Time )) {
556
+ if digestOrImageMatch (event .Image , imageID ) &&
557
+ (latestTagEvent == nil || latestTagEvent != nil && event .Created .After (latestTagEvent .Created .Time )) {
560
558
latestTagEvent = & events .Items [i ]
561
559
latestTag = tag
562
560
}
@@ -845,6 +843,13 @@ func UpdateTrackingTags(stream *ImageStream, updatedTag string, updatedImage Tag
845
843
return updated
846
844
}
847
845
846
+ func digestOrImageMatch (image , imageID string ) bool {
847
+ if d , err := digest .ParseDigest (image ); err == nil {
848
+ return strings .HasPrefix (d .Hex (), imageID ) || strings .HasPrefix (image , imageID )
849
+ }
850
+ return strings .HasPrefix (image , imageID )
851
+ }
852
+
848
853
// ResolveImageID returns latest TagEvent for specified imageID and an error if
849
854
// there's more than one image matching the ID or when one does not exist.
850
855
func ResolveImageID (stream * ImageStream , imageID string ) (* TagEvent , error ) {
@@ -853,14 +858,7 @@ func ResolveImageID(stream *ImageStream, imageID string) (*TagEvent, error) {
853
858
for _ , history := range stream .Status .Tags {
854
859
for i := range history .Items {
855
860
tagging := & history .Items [i ]
856
- if d , err := digest .ParseDigest (tagging .Image ); err == nil {
857
- if strings .HasPrefix (d .Hex (), imageID ) || strings .HasPrefix (tagging .Image , imageID ) {
858
- event = tagging
859
- set .Insert (tagging .Image )
860
- }
861
- continue
862
- }
863
- if strings .HasPrefix (tagging .Image , imageID ) {
861
+ if digestOrImageMatch (tagging .Image , imageID ) {
864
862
event = tagging
865
863
set .Insert (tagging .Image )
866
864
}
0 commit comments