mirror of
				https://github.com/go-gitea/gitea
				synced 2025-10-31 19:38:23 +00:00 
			
		
		
		
	GitHub: migrate draft releases too (#15884)
* GitHub: migrate draft releases too * refactor
This commit is contained in:
		| @@ -250,14 +250,16 @@ func (g *GiteaLocalUploader) CreateReleases(releases ...*base.Release) error { | ||||
| 			rel.OriginalAuthorID = release.PublisherID | ||||
| 		} | ||||
|  | ||||
| 		// calc NumCommits | ||||
| 		commit, err := g.gitRepo.GetCommit(rel.TagName) | ||||
| 		if err != nil { | ||||
| 			return fmt.Errorf("GetCommit: %v", err) | ||||
| 		} | ||||
| 		rel.NumCommits, err = commit.CommitsCount() | ||||
| 		if err != nil { | ||||
| 			return fmt.Errorf("CommitsCount: %v", err) | ||||
| 		// calc NumCommits if no draft | ||||
| 		if !release.Draft { | ||||
| 			commit, err := g.gitRepo.GetCommit(rel.TagName) | ||||
| 			if err != nil { | ||||
| 				return fmt.Errorf("GetCommit: %v", err) | ||||
| 			} | ||||
| 			rel.NumCommits, err = commit.CommitsCount() | ||||
| 			if err != nil { | ||||
| 				return fmt.Errorf("CommitsCount: %v", err) | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		for _, asset := range release.Assets { | ||||
| @@ -270,9 +272,10 @@ func (g *GiteaLocalUploader) CreateReleases(releases ...*base.Release) error { | ||||
| 			} | ||||
|  | ||||
| 			// download attachment | ||||
| 			err = func() error { | ||||
| 			err := func() error { | ||||
| 				// asset.DownloadURL maybe a local file | ||||
| 				var rc io.ReadCloser | ||||
| 				var err error | ||||
| 				if asset.DownloadURL == nil { | ||||
| 					rc, err = asset.DownloadFunc() | ||||
| 					if err != nil { | ||||
|   | ||||
| @@ -264,34 +264,29 @@ func (g *GithubDownloaderV3) GetLabels() ([]*base.Label, error) { | ||||
| } | ||||
|  | ||||
| func (g *GithubDownloaderV3) convertGithubRelease(rel *github.RepositoryRelease) *base.Release { | ||||
| 	var ( | ||||
| 		name string | ||||
| 		desc string | ||||
| 	) | ||||
| 	if rel.Body != nil { | ||||
| 		desc = *rel.Body | ||||
| 	} | ||||
| 	if rel.Name != nil { | ||||
| 		name = *rel.Name | ||||
| 	} | ||||
|  | ||||
| 	var email string | ||||
| 	if rel.Author.Email != nil { | ||||
| 		email = *rel.Author.Email | ||||
| 	} | ||||
|  | ||||
| 	r := &base.Release{ | ||||
| 		TagName:         *rel.TagName, | ||||
| 		TargetCommitish: *rel.TargetCommitish, | ||||
| 		Name:            name, | ||||
| 		Body:            desc, | ||||
| 		Draft:           *rel.Draft, | ||||
| 		Prerelease:      *rel.Prerelease, | ||||
| 		Created:         rel.CreatedAt.Time, | ||||
| 		PublisherID:     *rel.Author.ID, | ||||
| 		PublisherName:   *rel.Author.Login, | ||||
| 		PublisherEmail:  email, | ||||
| 		Published:       rel.PublishedAt.Time, | ||||
| 	} | ||||
|  | ||||
| 	if rel.Body != nil { | ||||
| 		r.Body = *rel.Body | ||||
| 	} | ||||
| 	if rel.Name != nil { | ||||
| 		r.Name = *rel.Name | ||||
| 	} | ||||
|  | ||||
| 	if rel.Author.Email != nil { | ||||
| 		r.PublisherEmail = *rel.Author.Email | ||||
| 	} | ||||
|  | ||||
| 	if rel.PublishedAt != nil { | ||||
| 		r.Published = rel.PublishedAt.Time | ||||
| 	} | ||||
|  | ||||
| 	for _, asset := range rel.Assets { | ||||
| @@ -306,18 +301,17 @@ func (g *GithubDownloaderV3) convertGithubRelease(rel *github.RepositoryRelease) | ||||
| 			Updated:       asset.UpdatedAt.Time, | ||||
| 			DownloadFunc: func() (io.ReadCloser, error) { | ||||
| 				g.sleep() | ||||
| 				asset, redir, err := g.client.Repositories.DownloadReleaseAsset(g.ctx, g.repoOwner, g.repoName, assetID, nil) | ||||
| 				asset, redirectURL, err := g.client.Repositories.DownloadReleaseAsset(g.ctx, g.repoOwner, g.repoName, assetID, nil) | ||||
| 				if err != nil { | ||||
| 					return nil, err | ||||
| 				} | ||||
| 				err = g.RefreshRate() | ||||
| 				if err != nil { | ||||
| 				if err := g.RefreshRate(); err != nil { | ||||
| 					log.Error("g.client.RateLimits: %s", err) | ||||
| 				} | ||||
| 				if asset == nil { | ||||
| 					if redir != "" { | ||||
| 					if redirectURL != "" { | ||||
| 						g.sleep() | ||||
| 						req, err := http.NewRequestWithContext(g.ctx, "GET", redir, nil) | ||||
| 						req, err := http.NewRequestWithContext(g.ctx, "GET", redirectURL, nil) | ||||
| 						if err != nil { | ||||
| 							return nil, err | ||||
| 						} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user