[#13004] Add Timestamp to Tag list API (#13026)

* Add Timestamp to Tag list API

* Add unit test for ToCommitMeta

* Rename timestamp to created

* Reformat files
release/v1.15
Lucas Queiroz 2020-10-05 01:07:54 -03:00 committed by GitHub
parent 48703c3c68
commit 67a5573310
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 62 additions and 2 deletions

View File

@ -28,8 +28,9 @@ 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.Object.String(), SHA: tag.Object.String(),
URL: util.URLJoin(repo.APIURL(), "git/commits", tag.ID.String()), URL: util.URLJoin(repo.APIURL(), "git/commits", tag.ID.String()),
Created: tag.Tagger.When,
} }
} }

View File

@ -0,0 +1,42 @@
// Copyright 2020 The Gitea Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package convert
import (
"testing"
"time"
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/git"
api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/util"
"github.com/go-git/go-git/v5/plumbing/object"
"github.com/stretchr/testify/assert"
)
func TestToCommitMeta(t *testing.T) {
assert.NoError(t, models.PrepareTestDatabase())
headRepo := models.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
sha1, _ := git.NewIDFromString("0000000000000000000000000000000000000000")
signature := &object.Signature{Name: "Test Signature", Email: "test@email.com", When: time.Unix(0, 0)}
tag := &git.Tag{
Name: "Test Tag",
ID: sha1,
Object: sha1,
Type: "Test Type",
Tagger: signature,
Message: "Test Message",
}
commitMeta := ToCommitMeta(headRepo, tag)
assert.NotNil(t, commitMeta)
assert.EqualValues(t, &api.CommitMeta{
SHA: "0000000000000000000000000000000000000000",
URL: util.URLJoin(headRepo.APIURL(), "git/commits", "0000000000000000000000000000000000000000"),
Created: time.Unix(0, 0),
}, commitMeta)
}

View File

@ -20,6 +20,8 @@ type Identity struct {
type CommitMeta struct { type CommitMeta struct {
URL string `json:"url"` URL string `json:"url"`
SHA string `json:"sha"` SHA string `json:"sha"`
// swagger:strfmt date-time
Created time.Time `json:"created"`
} }
// CommitUser contains information of a user in the context of a commit. // CommitUser contains information of a user in the context of a commit.

View File

@ -11297,6 +11297,11 @@
"committer": { "committer": {
"$ref": "#/definitions/User" "$ref": "#/definitions/User"
}, },
"created": {
"type": "string",
"format": "date-time",
"x-go-name": "Created"
},
"html_url": { "html_url": {
"type": "string", "type": "string",
"x-go-name": "HTMLURL" "x-go-name": "HTMLURL"
@ -11340,6 +11345,11 @@
"type": "object", "type": "object",
"title": "CommitMeta contains meta information of a commit in terms of API.", "title": "CommitMeta contains meta information of a commit in terms of API.",
"properties": { "properties": {
"created": {
"type": "string",
"format": "date-time",
"x-go-name": "Created"
},
"sha": { "sha": {
"type": "string", "type": "string",
"x-go-name": "SHA" "x-go-name": "SHA"
@ -13065,6 +13075,11 @@
"committer": { "committer": {
"$ref": "#/definitions/CommitUser" "$ref": "#/definitions/CommitUser"
}, },
"created": {
"type": "string",
"format": "date-time",
"x-go-name": "Created"
},
"html_url": { "html_url": {
"type": "string", "type": "string",
"x-go-name": "HTMLURL" "x-go-name": "HTMLURL"