// APIFormat converts a Repository to api.Repository
func (repo *Repository) APIFormat(mode AccessMode) *api.Repository {
+ return repo.innerAPIFormat(mode, false)
+}
+
+func (repo *Repository) innerAPIFormat(mode AccessMode, isParent bool) *api.Repository {
+ var parent *api.Repository
+
cloneLink := repo.CloneLink()
permission := &api.Permission{
Admin: mode >= AccessModeAdmin,
Push: mode >= AccessModeWrite,
Pull: mode >= AccessModeRead,
}
+ if !isParent {
+ err := repo.GetBaseRepo()
+ if err != nil {
+ log.Error(4, "APIFormat: %v", err)
+ }
+ if repo.BaseRepo != nil {
+ parent = repo.BaseRepo.innerAPIFormat(mode, true)
+ }
+ }
return &api.Repository{
ID: repo.ID,
Owner: repo.Owner.APIFormat(),
Empty: repo.IsBare,
Size: int(repo.Size/1024),
Fork: repo.IsFork,
+ Parent: parent,
Mirror: repo.IsMirror,
HTMLURL: repo.HTMLURL(),
SSHURL: cloneLink.SSH,
Empty bool `json:"empty"`
Private bool `json:"private"`
Fork bool `json:"fork"`
+ Parent *Repository `json:"parent"`
Mirror bool `json:"mirror"`
Size int `json:"size"`
HTMLURL string `json:"html_url"`
"revisionTime": "2017-05-04T06:58:26Z"
},
{
- "checksumSHA1": "L58DGmGw5eZThPkaHEaY9vuz42g=",
+ "checksumSHA1": "nLhT+bLMj8uLICP+EZbrdoQe6mM=",
"path": "code.gitea.io/sdk/gitea",
- "revision": "1350cdb0d049083453c93dcabfcac2e7ba553951",
- "revisionTime": "2017-05-04T17:35:58Z"
+ "revision": "8cff72208aa458f4efa8fdfbad29b03aee485b8c",
+ "revisionTime": "2017-05-06T01:37:21Z"
},
{
"checksumSHA1": "bOODD4Gbw3GfcuQPU2dI40crxxk=",