Add flag to specify git tag (#58)

close #57

Reviewed-on: https://gitea.com/gitea/changelog/pulls/58
Reviewed-by: Andrew Thornton <art27@cantab.net>
Reviewed-by: Norwin <noerw@noreply.gitea.io>
This commit is contained in:
6543 2022-03-13 10:33:03 +08:00
parent 0ec4342863
commit f3ee0e5726
8 changed files with 23 additions and 7 deletions

View File

@ -2,6 +2,7 @@
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
//go:build ignore
// +build ignore
package main

View File

@ -11,6 +11,7 @@ import (
var (
MilestoneFlag string
TagFlag string
ConfigPathFlag string
TokenFlag string
DetailsFlag bool

View File

@ -30,7 +30,7 @@ func runContributors(cmd *cli.Context) error {
return err
}
s, err := service.New(cfg.Service, cfg.Repo, cfg.BaseURL, MilestoneFlag, TokenFlag, IssuesFlag)
s, err := service.New(cfg.Service, cfg.Repo, cfg.BaseURL, MilestoneFlag, TagFlag, TokenFlag, IssuesFlag)
if err != nil {
return err
}

View File

@ -37,7 +37,7 @@ func runGenerate(cmd *cli.Context) error {
processGroups(cfg.Groups)
s, err := service.New(cfg.Service, cfg.Repo, cfg.BaseURL, MilestoneFlag, TokenFlag, IssuesFlag)
s, err := service.New(cfg.Service, cfg.Repo, cfg.BaseURL, MilestoneFlag, TagFlag, TokenFlag, IssuesFlag)
if err != nil {
return err
}

View File

@ -33,6 +33,12 @@ func main() {
Usage: "Targeted milestone",
Destination: &cmd.MilestoneFlag,
},
&cli.StringFlag{
Name: "tag",
Aliases: []string{"T"},
Usage: "Git tag for milestone url, if not set milestone is used",
Destination: &cmd.TagFlag,
},
&cli.StringFlag{
Name: "config",
Aliases: []string{"c"},

View File

@ -14,6 +14,7 @@ import (
// Gitea defines a Gitea service
type Gitea struct {
Milestone string
GitTag string
Token string
BaseURL string
Owner string
@ -40,7 +41,7 @@ func (ge *Gitea) Generate() (string, []Entry, error) {
from = "issues"
}
tagURL := getGiteaTagURL(client, ge.BaseURL, ge.Owner, ge.Repo, ge.Milestone, from, milestone.ID)
tagURL := getGiteaTagURL(client, ge.BaseURL, ge.Owner, ge.Repo, ge.Milestone, ge.GitTag, from, milestone.ID)
perPage := ge.perPage(client)
for p := 1; ; p++ {
@ -81,11 +82,11 @@ func (ge *Gitea) Generate() (string, []Entry, error) {
return tagURL, entries, nil
}
func getGiteaTagURL(c *gitea.Client, baseURL, owner, repo, mileName, from string, mileID int64) string {
func getGiteaTagURL(c *gitea.Client, baseURL, owner, repo, mileName, gitTag, from string, mileID int64) string {
if err := c.CheckServerVersionConstraint(">=1.12"); err != nil {
return fmt.Sprintf("## [%s](%s/%s/%s/%s?q=&type=all&state=closed&milestone=%d) - %s", mileName, baseURL, owner, repo, from, mileID, time.Now().Format("2006-01-02"))
}
return fmt.Sprintf("## [%s](%s/%s/%s/releases/tag/%s) - %s", mileName, baseURL, owner, repo, mileName, time.Now().Format("2006-01-02"))
return fmt.Sprintf("## [%s](%s/%s/%s/releases/tag/%s) - %s", mileName, baseURL, owner, repo, gitTag, time.Now().Format("2006-01-02"))
}
func convertToEntry(issue gitea.Issue) Entry {

View File

@ -15,6 +15,7 @@ import (
// GitHub defines a GitHub service
type GitHub struct {
Milestone string
GitTag string
Token string
Repo string
Issues bool
@ -22,7 +23,7 @@ type GitHub struct {
// Generate returns a GitHub changelog
func (gh *GitHub) Generate() (string, []Entry, error) {
tagURL := fmt.Sprintf("## [%s](https://github.com/%s/releases/tag/v%s) - %s", gh.Milestone, gh.Repo, gh.Milestone, time.Now().Format("2006-01-02"))
tagURL := fmt.Sprintf("## [%s](https://github.com/%s/releases/tag/%s) - %s", gh.Milestone, gh.Repo, gh.GitTag, time.Now().Format("2006-01-02"))
client := github.NewClient(nil)
ctx := context.Background()

View File

@ -12,11 +12,16 @@ import (
const defaultGitea = "https://gitea.com"
// New returns a service from a string
func New(serviceType, repo, baseURL, milestone, token string, issues bool) (Service, error) {
func New(serviceType, repo, baseURL, milestone, tag, token string, issues bool) (Service, error) {
if len(tag) == 0 {
tag = milestone
}
switch strings.ToLower(serviceType) {
case "github":
return &GitHub{
Milestone: milestone,
GitTag: tag,
Token: token,
Repo: repo,
Issues: issues,
@ -28,6 +33,7 @@ func New(serviceType, repo, baseURL, milestone, token string, issues bool) (Serv
}
return &Gitea{
Milestone: milestone,
GitTag: tag,
Token: token,
BaseURL: baseURL,
Owner: ownerRepo[0],