From d96f805aebef1db4b610047ea2e4a7de53efa13a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20Gardfj=C3=A4ll?= Date: Fri, 14 Jan 2022 10:20:21 +0100 Subject: [PATCH 1/2] adds MirrorUpdated field to Repository API type --- modules/convert/repository.go | 5 +++++ modules/structs/repo.go | 4 +++- templates/swagger/v1_json.tmpl | 5 +++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/modules/convert/repository.go b/modules/convert/repository.go index 725b04e2ca8a..730815afddf5 100644 --- a/modules/convert/repository.go +++ b/modules/convert/repository.go @@ -5,6 +5,8 @@ package convert import ( + "time" + "code.gitea.io/gitea/models" "code.gitea.io/gitea/models/db" "code.gitea.io/gitea/models/perm" @@ -99,11 +101,13 @@ func innerToRepo(repo *repo_model.Repository, mode perm.AccessMode, isParent boo numReleases, _ := models.GetReleaseCountByRepoID(repo.ID, models.FindReleasesOptions{IncludeDrafts: false, IncludeTags: false}) mirrorInterval := "" + mirrorUpdated, _ := time.Parse(time.RFC3339, "0001-01-01T00:00:00Z") if repo.IsMirror { var err error repo.Mirror, err = repo_model.GetMirrorByRepoID(repo.ID) if err == nil { mirrorInterval = repo.Mirror.Interval.String() + mirrorUpdated = repo.Mirror.UpdatedUnix.AsTime() } } @@ -166,6 +170,7 @@ func innerToRepo(repo *repo_model.Repository, mode perm.AccessMode, isParent boo AvatarURL: repo.AvatarLink(), Internal: !repo.IsPrivate && repo.Owner.Visibility == api.VisibleTypePrivate, MirrorInterval: mirrorInterval, + MirrorUpdated: mirrorUpdated, RepoTransfer: transfer, } } diff --git a/modules/structs/repo.go b/modules/structs/repo.go index 852af1f891a7..0d02467b57a6 100644 --- a/modules/structs/repo.go +++ b/modules/structs/repo.go @@ -93,7 +93,9 @@ type Repository struct { AvatarURL string `json:"avatar_url"` Internal bool `json:"internal"` MirrorInterval string `json:"mirror_interval"` - RepoTransfer *RepoTransfer `json:"repo_transfer"` + // swagger:strfmt date-time + MirrorUpdated time.Time `json:"mirror_updated"` + RepoTransfer *RepoTransfer `json:"repo_transfer"` } // CreateRepoOption options when creating repository diff --git a/templates/swagger/v1_json.tmpl b/templates/swagger/v1_json.tmpl index 758826125639..bba728363a3e 100644 --- a/templates/swagger/v1_json.tmpl +++ b/templates/swagger/v1_json.tmpl @@ -17195,6 +17195,11 @@ "type": "string", "x-go-name": "MirrorInterval" }, + "mirror_updated": { + "type": "string", + "format": "date-time", + "x-go-name": "MirrorUpdated" + }, "name": { "type": "string", "x-go-name": "Name" From acf312a911741661e5bedd34047d8ef59dcfc192 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20Gardfj=C3=A4ll?= Date: Fri, 14 Jan 2022 13:32:34 +0100 Subject: [PATCH 2/2] omit mirror_updated for non-mirror repos --- modules/convert/repository.go | 2 +- modules/structs/repo.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/convert/repository.go b/modules/convert/repository.go index 730815afddf5..459f98f396c7 100644 --- a/modules/convert/repository.go +++ b/modules/convert/repository.go @@ -101,7 +101,7 @@ func innerToRepo(repo *repo_model.Repository, mode perm.AccessMode, isParent boo numReleases, _ := models.GetReleaseCountByRepoID(repo.ID, models.FindReleasesOptions{IncludeDrafts: false, IncludeTags: false}) mirrorInterval := "" - mirrorUpdated, _ := time.Parse(time.RFC3339, "0001-01-01T00:00:00Z") + var mirrorUpdated time.Time if repo.IsMirror { var err error repo.Mirror, err = repo_model.GetMirrorByRepoID(repo.ID) diff --git a/modules/structs/repo.go b/modules/structs/repo.go index 0d02467b57a6..680277ea609a 100644 --- a/modules/structs/repo.go +++ b/modules/structs/repo.go @@ -94,7 +94,7 @@ type Repository struct { Internal bool `json:"internal"` MirrorInterval string `json:"mirror_interval"` // swagger:strfmt date-time - MirrorUpdated time.Time `json:"mirror_updated"` + MirrorUpdated time.Time `json:"mirror_updated,omitempty"` RepoTransfer *RepoTransfer `json:"repo_transfer"` }