Copy git data from disk when restore repository (#16066)
This commit is contained in:
		
					parent
					
						
							
								a38f62ad0f
							
						
					
				
			
			
				commit
				
					
						7979c3654e
					
				
			
		
					 3 changed files with 11 additions and 6 deletions
				
			
		| 
						 | 
				
			
			@ -276,19 +276,22 @@ func (g *GiteaLocalUploader) CreateReleases(releases ...*base.Release) error {
 | 
			
		|||
				// asset.DownloadURL maybe a local file
 | 
			
		||||
				var rc io.ReadCloser
 | 
			
		||||
				var err error
 | 
			
		||||
				if asset.DownloadURL == nil {
 | 
			
		||||
				if asset.DownloadFunc != nil {
 | 
			
		||||
					rc, err = asset.DownloadFunc()
 | 
			
		||||
					if err != nil {
 | 
			
		||||
						return err
 | 
			
		||||
					}
 | 
			
		||||
				} else {
 | 
			
		||||
				} else if asset.DownloadURL != nil {
 | 
			
		||||
					rc, err = uri.Open(*asset.DownloadURL)
 | 
			
		||||
					if err != nil {
 | 
			
		||||
						return err
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
				defer rc.Close()
 | 
			
		||||
				if rc == nil {
 | 
			
		||||
					return nil
 | 
			
		||||
				}
 | 
			
		||||
				_, err = storage.Attachments.Save(attach.RelativePath(), rc, int64(*asset.Size))
 | 
			
		||||
				rc.Close()
 | 
			
		||||
				return err
 | 
			
		||||
			}()
 | 
			
		||||
			if err != nil {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -184,7 +184,7 @@ func migrateRepository(downloader base.Downloader, uploader base.Uploader, opts
 | 
			
		|||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	log.Trace("migrating git data")
 | 
			
		||||
	log.Trace("migrating git data from %s", repo.CloneURL)
 | 
			
		||||
	if err = uploader.CreateRepo(repo, opts); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -83,7 +83,7 @@ func (r *RepositoryRestorer) GetRepoInfo() (*base.Repository, error) {
 | 
			
		|||
		IsPrivate:     isPrivate,
 | 
			
		||||
		Description:   opts["description"],
 | 
			
		||||
		OriginalURL:   opts["original_url"],
 | 
			
		||||
		CloneURL:      opts["clone_addr"],
 | 
			
		||||
		CloneURL:      filepath.Join(r.baseDir, "git"),
 | 
			
		||||
		DefaultBranch: opts["default_branch"],
 | 
			
		||||
	}, nil
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -155,7 +155,9 @@ func (r *RepositoryRestorer) GetReleases() ([]*base.Release, error) {
 | 
			
		|||
	}
 | 
			
		||||
	for _, rel := range releases {
 | 
			
		||||
		for _, asset := range rel.Assets {
 | 
			
		||||
			*asset.DownloadURL = "file://" + filepath.Join(r.baseDir, *asset.DownloadURL)
 | 
			
		||||
			if asset.DownloadURL != nil {
 | 
			
		||||
				*asset.DownloadURL = "file://" + filepath.Join(r.baseDir, *asset.DownloadURL)
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return releases, nil
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue