Fixes #7238 - Annotated tag commit ID incorrect (#7321)

* Fixes #7238 - Annotated tag commit ID incorrect

* Fixes #7238 - Annotated tag commit ID incorrect
This commit is contained in:
Richard Mahn 2019-06-29 06:44:17 -04:00 committed by zeripath
parent 7bd0dc4975
commit 567e117df8
2 changed files with 5 additions and 4 deletions

View File

@ -141,12 +141,13 @@ func (repo *Repository) GetTagNameBySHA(sha string) (string, error) {
fields := strings.Fields(tagRef) fields := strings.Fields(tagRef)
if strings.HasPrefix(fields[0], sha) && strings.HasPrefix(fields[1], TagPrefix) { if strings.HasPrefix(fields[0], sha) && strings.HasPrefix(fields[1], TagPrefix) {
name := fields[1][len(TagPrefix):] name := fields[1][len(TagPrefix):]
// annotated tags show up twice, their name for commit ID is suffixed with ^{} // annotated tags show up twice, we should only return if is not the ^{} ref
name = strings.TrimSuffix(name, "^{}") if !strings.HasSuffix(name, "^{}") {
return name, nil return name, nil
} }
} }
} }
}
return "", ErrNotExist{ID: sha} return "", ErrNotExist{ID: sha}
} }

View File

@ -281,7 +281,7 @@ func ToCommitUser(sig *git.Signature) *api.CommitUser {
// ToCommitMeta convert a git.Tag to an api.CommitMeta // ToCommitMeta convert a git.Tag to an api.CommitMeta
func ToCommitMeta(repo *models.Repository, tag *git.Tag) *api.CommitMeta { func ToCommitMeta(repo *models.Repository, tag *git.Tag) *api.CommitMeta {
return &api.CommitMeta{ return &api.CommitMeta{
SHA: tag.ID.String(), SHA: tag.Object.String(),
// TODO: Add the /commits API endpoint and use it here (https://developer.github.com/v3/repos/commits/#get-a-single-commit) // TODO: Add the /commits API endpoint and use it here (https://developer.github.com/v3/repos/commits/#get-a-single-commit)
URL: util.URLJoin(repo.APIURL(), "git/commits", tag.ID.String()), URL: util.URLJoin(repo.APIURL(), "git/commits", tag.ID.String()),
} }