Fix #197
This commit is contained in:
		
							parent
							
								
									1161c71ac1
								
							
						
					
					
						commit
						9961f9a53c
					
				| 
						 | 
					@ -9,7 +9,7 @@ import (
 | 
				
			||||||
	"strings"
 | 
						"strings"
 | 
				
			||||||
	"time"
 | 
						"time"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/Unknwon/com"
 | 
						// "github.com/Unknwon/com"
 | 
				
			||||||
	"github.com/gogits/git"
 | 
						"github.com/gogits/git"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -26,7 +26,8 @@ type Release struct {
 | 
				
			||||||
	Title            string
 | 
						Title            string
 | 
				
			||||||
	TagName          string
 | 
						TagName          string
 | 
				
			||||||
	LowerTagName     string
 | 
						LowerTagName     string
 | 
				
			||||||
	SHA1             string
 | 
						Target           string
 | 
				
			||||||
 | 
						Sha1             string `xorm:"VARCHAR(40)"`
 | 
				
			||||||
	NumCommits       int
 | 
						NumCommits       int
 | 
				
			||||||
	NumCommitsBehind int    `xorm:"-"`
 | 
						NumCommitsBehind int    `xorm:"-"`
 | 
				
			||||||
	Note             string `xorm:"TEXT"`
 | 
						Note             string `xorm:"TEXT"`
 | 
				
			||||||
| 
						 | 
					@ -59,9 +60,13 @@ func CreateRelease(gitRepo *git.Repository, rel *Release) error {
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if !gitRepo.IsTagExist(rel.TagName) {
 | 
						if !gitRepo.IsTagExist(rel.TagName) {
 | 
				
			||||||
		_, stderr, err := com.ExecCmdDir(gitRepo.Path, "git", "tag", rel.TagName, "-m", rel.Title)
 | 
							commit, err := gitRepo.GetCommitOfBranch(rel.Target)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return errors.New(stderr)
 | 
								return err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if err = gitRepo.CreateTag(rel.TagName, commit.Id.String()); err != nil {
 | 
				
			||||||
 | 
								return err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		commit, err := gitRepo.GetCommitOfTag(rel.TagName)
 | 
							commit, err := gitRepo.GetCommitOfTag(rel.TagName)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -205,6 +205,7 @@ func (f *CreateLabelForm) Validate(errors *binding.Errors, req *http.Request, co
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type NewReleaseForm struct {
 | 
					type NewReleaseForm struct {
 | 
				
			||||||
	TagName    string `form:"tag_name" binding:"Required"`
 | 
						TagName    string `form:"tag_name" binding:"Required"`
 | 
				
			||||||
 | 
						Target     string `form:"tag_target" binding:"Required"`
 | 
				
			||||||
	Title      string `form:"title" binding:"Required"`
 | 
						Title      string `form:"title" binding:"Required"`
 | 
				
			||||||
	Content    string `form:"content" binding:"Required"`
 | 
						Content    string `form:"content" binding:"Required"`
 | 
				
			||||||
	Prerelease bool   `form:"prerelease"`
 | 
						Prerelease bool   `form:"prerelease"`
 | 
				
			||||||
| 
						 | 
					@ -213,6 +214,7 @@ type NewReleaseForm struct {
 | 
				
			||||||
func (f *NewReleaseForm) Name(field string) string {
 | 
					func (f *NewReleaseForm) Name(field string) string {
 | 
				
			||||||
	names := map[string]string{
 | 
						names := map[string]string{
 | 
				
			||||||
		"TagName": "Tag name",
 | 
							"TagName": "Tag name",
 | 
				
			||||||
 | 
							"Target":  "Target",
 | 
				
			||||||
		"Title":   "Release title",
 | 
							"Title":   "Release title",
 | 
				
			||||||
		"Content": "Release content",
 | 
							"Content": "Release content",
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -79,7 +79,7 @@ func Releases(ctx *middleware.Context) {
 | 
				
			||||||
			tags.rels[i] = &models.Release{
 | 
								tags.rels[i] = &models.Release{
 | 
				
			||||||
				Title:   rawTag,
 | 
									Title:   rawTag,
 | 
				
			||||||
				TagName: rawTag,
 | 
									TagName: rawTag,
 | 
				
			||||||
				SHA1:    commit.Id.String(),
 | 
									Sha1:    commit.Id.String(),
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			tags.rels[i].NumCommits, err = ctx.Repo.GitRepo.CommitsCount(commit.Id.String())
 | 
								tags.rels[i].NumCommits, err = ctx.Repo.GitRepo.CommitsCount(commit.Id.String())
 | 
				
			||||||
			if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
| 
						 | 
					@ -129,12 +129,18 @@ func ReleasesNewPost(ctx *middleware.Context, form auth.NewReleaseForm) {
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if !ctx.Repo.GitRepo.IsBranchExist(form.Target) {
 | 
				
			||||||
 | 
							ctx.RenderWithErr("Target branch does not exist", "release/new", &form)
 | 
				
			||||||
 | 
							return
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	rel := &models.Release{
 | 
						rel := &models.Release{
 | 
				
			||||||
		RepoId:       ctx.Repo.Repository.Id,
 | 
							RepoId:       ctx.Repo.Repository.Id,
 | 
				
			||||||
		PublisherId:  ctx.User.Id,
 | 
							PublisherId:  ctx.User.Id,
 | 
				
			||||||
		Title:        form.Title,
 | 
							Title:        form.Title,
 | 
				
			||||||
		TagName:      form.TagName,
 | 
							TagName:      form.TagName,
 | 
				
			||||||
		SHA1:         ctx.Repo.Commit.Id.String(),
 | 
							Target:       form.Target,
 | 
				
			||||||
 | 
							Sha1:         ctx.Repo.Commit.Id.String(),
 | 
				
			||||||
		NumCommits:   commitsCount,
 | 
							NumCommits:   commitsCount,
 | 
				
			||||||
		Note:         form.Content,
 | 
							Note:         form.Content,
 | 
				
			||||||
		IsPrerelease: form.Prerelease,
 | 
							IsPrerelease: form.Prerelease,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -11,12 +11,12 @@
 | 
				
			||||||
        </h4>
 | 
					        </h4>
 | 
				
			||||||
        <ul id="release-list" class="list-unstyled">
 | 
					        <ul id="release-list" class="list-unstyled">
 | 
				
			||||||
            {{range .Releases}}
 | 
					            {{range .Releases}}
 | 
				
			||||||
            <li class="release-item clearfix" id="release-{{.SHA1}}">
 | 
					            <li class="release-item clearfix" id="release-{{.Sha1}}">
 | 
				
			||||||
                {{if .PublisherId}}
 | 
					                {{if .PublisherId}}
 | 
				
			||||||
                <div class="col-md-2 text-right">
 | 
					                <div class="col-md-2 text-right">
 | 
				
			||||||
                    {{if .IsPrerelease}}<span class="btn btn-warning status pre-release">Pre-Release</span>{{else}}<span class="btn btn-success status stable">Stable</span>{{end}}
 | 
					                    {{if .IsPrerelease}}<span class="btn btn-warning status pre-release">Pre-Release</span>{{else}}<span class="btn btn-success status stable">Stable</span>{{end}}
 | 
				
			||||||
                    <a class="tag" href="{{$.RepoLink}}/src/{{.TagName}}" rel="nofollow"><i class="fa fa-tag"></i>{{.TagName}}</a>
 | 
					                    <a class="tag" href="{{$.RepoLink}}/src/{{.TagName}}" rel="nofollow"><i class="fa fa-tag"></i>{{.TagName}}</a>
 | 
				
			||||||
                    <a class="commit" href="{{$.RepoLink}}/src/{{.SHA1}}" rel="nofollow"><i class="fa fa-code"></i>{{ShortSha .SHA1}}</a>
 | 
					                    <a class="commit" href="{{$.RepoLink}}/src/{{.Sha1}}" rel="nofollow"><i class="fa fa-code"></i>{{ShortSha .Sha1}}</a>
 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
                <div class="col-md-10">
 | 
					                <div class="col-md-10">
 | 
				
			||||||
                    <h4 class="title"><a href="{{$.RepoLink}}/src/{{.TagName}}">{{.Title}}</a></h4>
 | 
					                    <h4 class="title"><a href="{{$.RepoLink}}/src/{{.TagName}}">{{.Title}}</a></h4>
 | 
				
			||||||
| 
						 | 
					@ -37,7 +37,7 @@
 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
                {{else}}
 | 
					                {{else}}
 | 
				
			||||||
                <div class="col-md-2 text-right">
 | 
					                <div class="col-md-2 text-right">
 | 
				
			||||||
                    <a class="commit" href="{{$.RepoLink}}/src/{{.SHA1}}" rel="nofollow"><i class="fa fa-code"></i>{{ShortSha .SHA1}}</a>
 | 
					                    <a class="commit" href="{{$.RepoLink}}/src/{{.Sha1}}" rel="nofollow"><i class="fa fa-code"></i>{{ShortSha .Sha1}}</a>
 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
                <div class="col-md-10">
 | 
					                <div class="col-md-10">
 | 
				
			||||||
                    <h5 class="title"><a href="{{$.RepoLink}}/src/{{.TagName}}" rel="nofollow">{{.TagName}}</a><i class="fa fa-tag"></i></h5>
 | 
					                    <h5 class="title"><a href="{{$.RepoLink}}/src/{{.TagName}}" rel="nofollow">{{.TagName}}</a><i class="fa fa-tag"></i></h5>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue