mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-04 00:02:20 -05:00 
			
		
		
		
	Keep download count on Container tag overwrite (#20728)
Co-authored-by: 6543 <6543@obermui.de>
This commit is contained in:
		
							parent
							
								
									1b2cd4c4e1
								
							
						
					
					
						commit
						920481340b
					
				@ -276,11 +276,23 @@ func TestPackageContainer(t *testing.T) {
 | 
			
		||||
							}
 | 
			
		||||
						}
 | 
			
		||||
 | 
			
		||||
						// Overwrite existing tag
 | 
			
		||||
						req = NewRequest(t, "GET", fmt.Sprintf("%s/manifests/%s", url, tag))
 | 
			
		||||
						addTokenAuthHeader(req, userToken)
 | 
			
		||||
						MakeRequest(t, req, http.StatusOK)
 | 
			
		||||
 | 
			
		||||
						pv, err = packages_model.GetVersionByNameAndVersion(db.DefaultContext, user.ID, packages_model.TypeContainer, image, tag)
 | 
			
		||||
						assert.NoError(t, err)
 | 
			
		||||
						assert.EqualValues(t, 1, pv.DownloadCount)
 | 
			
		||||
 | 
			
		||||
						// Overwrite existing tag should keep the download count
 | 
			
		||||
						req = NewRequestWithBody(t, "PUT", fmt.Sprintf("%s/manifests/%s", url, tag), strings.NewReader(manifestContent))
 | 
			
		||||
						addTokenAuthHeader(req, userToken)
 | 
			
		||||
						req.Header.Set("Content-Type", oci.MediaTypeDockerManifest)
 | 
			
		||||
						MakeRequest(t, req, http.StatusCreated)
 | 
			
		||||
 | 
			
		||||
						pv, err = packages_model.GetVersionByNameAndVersion(db.DefaultContext, user.ID, packages_model.TypeContainer, image, tag)
 | 
			
		||||
						assert.NoError(t, err)
 | 
			
		||||
						assert.EqualValues(t, 1, pv.DownloadCount)
 | 
			
		||||
					})
 | 
			
		||||
 | 
			
		||||
					t.Run("HeadManifest", func(t *testing.T) {
 | 
			
		||||
 | 
			
		||||
@ -312,6 +312,9 @@ func createPackageAndVersion(ctx context.Context, mci *manifestCreationInfo, met
 | 
			
		||||
				return nil, err
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			// keep download count on overwrite
 | 
			
		||||
			_pv.DownloadCount = pv.DownloadCount
 | 
			
		||||
 | 
			
		||||
			if pv, err = packages_model.GetOrInsertVersion(ctx, _pv); err != nil {
 | 
			
		||||
				log.Error("Error inserting package: %v", err)
 | 
			
		||||
				return nil, err
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user