mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	Move Repo APIFormat to convert package (#13787)
* Move Repo APIFormat to convert package * tweek
This commit is contained in:
		
							
								
								
									
										134
									
								
								models/repo.go
									
									
									
									
									
								
							
							
						
						
									
										134
									
								
								models/repo.go
									
									
									
									
									
								
							@@ -322,11 +322,6 @@ func (repo *Repository) APIURL() string {
 | 
				
			|||||||
	return setting.AppURL + path.Join("api/v1/repos", repo.FullName())
 | 
						return setting.AppURL + path.Join("api/v1/repos", repo.FullName())
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// APIFormat converts a Repository to api.Repository
 | 
					 | 
				
			||||||
func (repo *Repository) APIFormat(mode AccessMode) *api.Repository {
 | 
					 | 
				
			||||||
	return repo.innerAPIFormat(x, mode, false)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// GetCommitsCountCacheKey returns cache key used for commits count caching.
 | 
					// GetCommitsCountCacheKey returns cache key used for commits count caching.
 | 
				
			||||||
func (repo *Repository) GetCommitsCountCacheKey(contextName string, isRef bool) string {
 | 
					func (repo *Repository) GetCommitsCountCacheKey(contextName string, isRef bool) string {
 | 
				
			||||||
	var prefix string
 | 
						var prefix string
 | 
				
			||||||
@@ -338,135 +333,6 @@ func (repo *Repository) GetCommitsCountCacheKey(contextName string, isRef bool)
 | 
				
			|||||||
	return fmt.Sprintf("commits-count-%d-%s-%s", repo.ID, prefix, contextName)
 | 
						return fmt.Sprintf("commits-count-%d-%s-%s", repo.ID, prefix, contextName)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (repo *Repository) innerAPIFormat(e Engine, mode AccessMode, isParent bool) *api.Repository {
 | 
					 | 
				
			||||||
	var parent *api.Repository
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	cloneLink := repo.cloneLink(false)
 | 
					 | 
				
			||||||
	permission := &api.Permission{
 | 
					 | 
				
			||||||
		Admin: mode >= AccessModeAdmin,
 | 
					 | 
				
			||||||
		Push:  mode >= AccessModeWrite,
 | 
					 | 
				
			||||||
		Pull:  mode >= AccessModeRead,
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if !isParent {
 | 
					 | 
				
			||||||
		err := repo.getBaseRepo(e)
 | 
					 | 
				
			||||||
		if err != nil {
 | 
					 | 
				
			||||||
			log.Error("APIFormat: %v", err)
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		if repo.BaseRepo != nil {
 | 
					 | 
				
			||||||
			parent = repo.BaseRepo.innerAPIFormat(e, mode, true)
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	//check enabled/disabled units
 | 
					 | 
				
			||||||
	hasIssues := false
 | 
					 | 
				
			||||||
	var externalTracker *api.ExternalTracker
 | 
					 | 
				
			||||||
	var internalTracker *api.InternalTracker
 | 
					 | 
				
			||||||
	if unit, err := repo.getUnit(e, UnitTypeIssues); err == nil {
 | 
					 | 
				
			||||||
		config := unit.IssuesConfig()
 | 
					 | 
				
			||||||
		hasIssues = true
 | 
					 | 
				
			||||||
		internalTracker = &api.InternalTracker{
 | 
					 | 
				
			||||||
			EnableTimeTracker:                config.EnableTimetracker,
 | 
					 | 
				
			||||||
			AllowOnlyContributorsToTrackTime: config.AllowOnlyContributorsToTrackTime,
 | 
					 | 
				
			||||||
			EnableIssueDependencies:          config.EnableDependencies,
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	} else if unit, err := repo.getUnit(e, UnitTypeExternalTracker); err == nil {
 | 
					 | 
				
			||||||
		config := unit.ExternalTrackerConfig()
 | 
					 | 
				
			||||||
		hasIssues = true
 | 
					 | 
				
			||||||
		externalTracker = &api.ExternalTracker{
 | 
					 | 
				
			||||||
			ExternalTrackerURL:    config.ExternalTrackerURL,
 | 
					 | 
				
			||||||
			ExternalTrackerFormat: config.ExternalTrackerFormat,
 | 
					 | 
				
			||||||
			ExternalTrackerStyle:  config.ExternalTrackerStyle,
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	hasWiki := false
 | 
					 | 
				
			||||||
	var externalWiki *api.ExternalWiki
 | 
					 | 
				
			||||||
	if _, err := repo.getUnit(e, UnitTypeWiki); err == nil {
 | 
					 | 
				
			||||||
		hasWiki = true
 | 
					 | 
				
			||||||
	} else if unit, err := repo.getUnit(e, UnitTypeExternalWiki); err == nil {
 | 
					 | 
				
			||||||
		hasWiki = true
 | 
					 | 
				
			||||||
		config := unit.ExternalWikiConfig()
 | 
					 | 
				
			||||||
		externalWiki = &api.ExternalWiki{
 | 
					 | 
				
			||||||
			ExternalWikiURL: config.ExternalWikiURL,
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	hasPullRequests := false
 | 
					 | 
				
			||||||
	ignoreWhitespaceConflicts := false
 | 
					 | 
				
			||||||
	allowMerge := false
 | 
					 | 
				
			||||||
	allowRebase := false
 | 
					 | 
				
			||||||
	allowRebaseMerge := false
 | 
					 | 
				
			||||||
	allowSquash := false
 | 
					 | 
				
			||||||
	if unit, err := repo.getUnit(e, UnitTypePullRequests); err == nil {
 | 
					 | 
				
			||||||
		config := unit.PullRequestsConfig()
 | 
					 | 
				
			||||||
		hasPullRequests = true
 | 
					 | 
				
			||||||
		ignoreWhitespaceConflicts = config.IgnoreWhitespaceConflicts
 | 
					 | 
				
			||||||
		allowMerge = config.AllowMerge
 | 
					 | 
				
			||||||
		allowRebase = config.AllowRebase
 | 
					 | 
				
			||||||
		allowRebaseMerge = config.AllowRebaseMerge
 | 
					 | 
				
			||||||
		allowSquash = config.AllowSquash
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	hasProjects := false
 | 
					 | 
				
			||||||
	if _, err := repo.getUnit(e, UnitTypeProjects); err == nil {
 | 
					 | 
				
			||||||
		hasProjects = true
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	repo.mustOwner(e)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	numReleases, _ := GetReleaseCountByRepoID(repo.ID, FindReleasesOptions{IncludeDrafts: false, IncludeTags: true})
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	return &api.Repository{
 | 
					 | 
				
			||||||
		ID: repo.ID,
 | 
					 | 
				
			||||||
		// TODO use convert.ToUser(repo.Owner)
 | 
					 | 
				
			||||||
		Owner: &api.User{
 | 
					 | 
				
			||||||
			ID:        repo.Owner.ID,
 | 
					 | 
				
			||||||
			UserName:  repo.Owner.Name,
 | 
					 | 
				
			||||||
			FullName:  repo.Owner.FullName,
 | 
					 | 
				
			||||||
			Email:     repo.Owner.GetEmail(),
 | 
					 | 
				
			||||||
			AvatarURL: repo.Owner.AvatarLink(),
 | 
					 | 
				
			||||||
			LastLogin: repo.Owner.LastLoginUnix.AsTime(),
 | 
					 | 
				
			||||||
			Created:   repo.Owner.CreatedUnix.AsTime(),
 | 
					 | 
				
			||||||
		},
 | 
					 | 
				
			||||||
		Name:                      repo.Name,
 | 
					 | 
				
			||||||
		FullName:                  repo.FullName(),
 | 
					 | 
				
			||||||
		Description:               repo.Description,
 | 
					 | 
				
			||||||
		Private:                   repo.IsPrivate,
 | 
					 | 
				
			||||||
		Template:                  repo.IsTemplate,
 | 
					 | 
				
			||||||
		Empty:                     repo.IsEmpty,
 | 
					 | 
				
			||||||
		Archived:                  repo.IsArchived,
 | 
					 | 
				
			||||||
		Size:                      int(repo.Size / 1024),
 | 
					 | 
				
			||||||
		Fork:                      repo.IsFork,
 | 
					 | 
				
			||||||
		Parent:                    parent,
 | 
					 | 
				
			||||||
		Mirror:                    repo.IsMirror,
 | 
					 | 
				
			||||||
		HTMLURL:                   repo.HTMLURL(),
 | 
					 | 
				
			||||||
		SSHURL:                    cloneLink.SSH,
 | 
					 | 
				
			||||||
		CloneURL:                  cloneLink.HTTPS,
 | 
					 | 
				
			||||||
		Website:                   repo.Website,
 | 
					 | 
				
			||||||
		Stars:                     repo.NumStars,
 | 
					 | 
				
			||||||
		Forks:                     repo.NumForks,
 | 
					 | 
				
			||||||
		Watchers:                  repo.NumWatches,
 | 
					 | 
				
			||||||
		OpenIssues:                repo.NumOpenIssues,
 | 
					 | 
				
			||||||
		OpenPulls:                 repo.NumOpenPulls,
 | 
					 | 
				
			||||||
		Releases:                  int(numReleases),
 | 
					 | 
				
			||||||
		DefaultBranch:             repo.DefaultBranch,
 | 
					 | 
				
			||||||
		Created:                   repo.CreatedUnix.AsTime(),
 | 
					 | 
				
			||||||
		Updated:                   repo.UpdatedUnix.AsTime(),
 | 
					 | 
				
			||||||
		Permissions:               permission,
 | 
					 | 
				
			||||||
		HasIssues:                 hasIssues,
 | 
					 | 
				
			||||||
		ExternalTracker:           externalTracker,
 | 
					 | 
				
			||||||
		InternalTracker:           internalTracker,
 | 
					 | 
				
			||||||
		HasWiki:                   hasWiki,
 | 
					 | 
				
			||||||
		HasProjects:               hasProjects,
 | 
					 | 
				
			||||||
		ExternalWiki:              externalWiki,
 | 
					 | 
				
			||||||
		HasPullRequests:           hasPullRequests,
 | 
					 | 
				
			||||||
		IgnoreWhitespaceConflicts: ignoreWhitespaceConflicts,
 | 
					 | 
				
			||||||
		AllowMerge:                allowMerge,
 | 
					 | 
				
			||||||
		AllowRebase:               allowRebase,
 | 
					 | 
				
			||||||
		AllowRebaseMerge:          allowRebaseMerge,
 | 
					 | 
				
			||||||
		AllowSquash:               allowSquash,
 | 
					 | 
				
			||||||
		AvatarURL:                 repo.avatarLink(e),
 | 
					 | 
				
			||||||
		Internal:                  !repo.IsPrivate && repo.Owner.Visibility == api.VisibleTypePrivate,
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (repo *Repository) getUnits(e Engine) (err error) {
 | 
					func (repo *Repository) getUnits(e Engine) (err error) {
 | 
				
			||||||
	if repo.Units != nil {
 | 
						if repo.Units != nil {
 | 
				
			||||||
		return nil
 | 
							return nil
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,7 +21,7 @@ func ToNotificationThread(n *models.Notification) *api.NotificationThread {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	//since user only get notifications when he has access to use minimal access mode
 | 
						//since user only get notifications when he has access to use minimal access mode
 | 
				
			||||||
	if n.Repository != nil {
 | 
						if n.Repository != nil {
 | 
				
			||||||
		result.Repository = n.Repository.APIFormat(models.AccessModeRead)
 | 
							result.Repository = ToRepo(n.Repository, models.AccessModeRead)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	//handle Subject
 | 
						//handle Subject
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -68,7 +68,7 @@ func ToAPIPullRequest(pr *models.PullRequest) *api.PullRequest {
 | 
				
			|||||||
			Name:       pr.BaseBranch,
 | 
								Name:       pr.BaseBranch,
 | 
				
			||||||
			Ref:        pr.BaseBranch,
 | 
								Ref:        pr.BaseBranch,
 | 
				
			||||||
			RepoID:     pr.BaseRepoID,
 | 
								RepoID:     pr.BaseRepoID,
 | 
				
			||||||
			Repository: pr.BaseRepo.APIFormat(models.AccessModeNone),
 | 
								Repository: ToRepo(pr.BaseRepo, models.AccessModeNone),
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		Head: &api.PRBranchInfo{
 | 
							Head: &api.PRBranchInfo{
 | 
				
			||||||
			Name:   pr.HeadBranch,
 | 
								Name:   pr.HeadBranch,
 | 
				
			||||||
@@ -97,7 +97,7 @@ func ToAPIPullRequest(pr *models.PullRequest) *api.PullRequest {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	if pr.HeadRepo != nil {
 | 
						if pr.HeadRepo != nil {
 | 
				
			||||||
		apiPullRequest.Head.RepoID = pr.HeadRepo.ID
 | 
							apiPullRequest.Head.RepoID = pr.HeadRepo.ID
 | 
				
			||||||
		apiPullRequest.Head.Repository = pr.HeadRepo.APIFormat(models.AccessModeNone)
 | 
							apiPullRequest.Head.Repository = ToRepo(pr.HeadRepo, models.AccessModeNone)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		headGitRepo, err := git.OpenRepository(pr.HeadRepo.RepoPath())
 | 
							headGitRepo, err := git.OpenRepository(pr.HeadRepo.RepoPath())
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,7 +27,7 @@ func TestPullRequest_APIFormat(t *testing.T) {
 | 
				
			|||||||
		Ref:        "refs/pull/2/head",
 | 
							Ref:        "refs/pull/2/head",
 | 
				
			||||||
		Sha:        "4a357436d925b5c974181ff12a994538ddc5a269",
 | 
							Sha:        "4a357436d925b5c974181ff12a994538ddc5a269",
 | 
				
			||||||
		RepoID:     1,
 | 
							RepoID:     1,
 | 
				
			||||||
		Repository: headRepo.APIFormat(models.AccessModeNone),
 | 
							Repository: ToRepo(headRepo, models.AccessModeNone),
 | 
				
			||||||
	}, apiPullRequest.Head)
 | 
						}, apiPullRequest.Head)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	//withOut HeadRepo
 | 
						//withOut HeadRepo
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										137
									
								
								modules/convert/repository.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										137
									
								
								modules/convert/repository.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,137 @@
 | 
				
			|||||||
 | 
					// 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 (
 | 
				
			||||||
 | 
						"code.gitea.io/gitea/models"
 | 
				
			||||||
 | 
						api "code.gitea.io/gitea/modules/structs"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ToRepo converts a Repository to api.Repository
 | 
				
			||||||
 | 
					func ToRepo(repo *models.Repository, mode models.AccessMode) *api.Repository {
 | 
				
			||||||
 | 
						return innerToRepo(repo, mode, false)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func innerToRepo(repo *models.Repository, mode models.AccessMode, isParent bool) *api.Repository {
 | 
				
			||||||
 | 
						var parent *api.Repository
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						cloneLink := repo.CloneLink()
 | 
				
			||||||
 | 
						permission := &api.Permission{
 | 
				
			||||||
 | 
							Admin: mode >= models.AccessModeAdmin,
 | 
				
			||||||
 | 
							Push:  mode >= models.AccessModeWrite,
 | 
				
			||||||
 | 
							Pull:  mode >= models.AccessModeRead,
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if !isParent {
 | 
				
			||||||
 | 
							err := repo.GetBaseRepo()
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return nil
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if repo.BaseRepo != nil {
 | 
				
			||||||
 | 
								parent = innerToRepo(repo.BaseRepo, mode, true)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						//check enabled/disabled units
 | 
				
			||||||
 | 
						hasIssues := false
 | 
				
			||||||
 | 
						var externalTracker *api.ExternalTracker
 | 
				
			||||||
 | 
						var internalTracker *api.InternalTracker
 | 
				
			||||||
 | 
						if unit, err := repo.GetUnit(models.UnitTypeIssues); err == nil {
 | 
				
			||||||
 | 
							config := unit.IssuesConfig()
 | 
				
			||||||
 | 
							hasIssues = true
 | 
				
			||||||
 | 
							internalTracker = &api.InternalTracker{
 | 
				
			||||||
 | 
								EnableTimeTracker:                config.EnableTimetracker,
 | 
				
			||||||
 | 
								AllowOnlyContributorsToTrackTime: config.AllowOnlyContributorsToTrackTime,
 | 
				
			||||||
 | 
								EnableIssueDependencies:          config.EnableDependencies,
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						} else if unit, err := repo.GetUnit(models.UnitTypeExternalTracker); err == nil {
 | 
				
			||||||
 | 
							config := unit.ExternalTrackerConfig()
 | 
				
			||||||
 | 
							hasIssues = true
 | 
				
			||||||
 | 
							externalTracker = &api.ExternalTracker{
 | 
				
			||||||
 | 
								ExternalTrackerURL:    config.ExternalTrackerURL,
 | 
				
			||||||
 | 
								ExternalTrackerFormat: config.ExternalTrackerFormat,
 | 
				
			||||||
 | 
								ExternalTrackerStyle:  config.ExternalTrackerStyle,
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						hasWiki := false
 | 
				
			||||||
 | 
						var externalWiki *api.ExternalWiki
 | 
				
			||||||
 | 
						if _, err := repo.GetUnit(models.UnitTypeWiki); err == nil {
 | 
				
			||||||
 | 
							hasWiki = true
 | 
				
			||||||
 | 
						} else if unit, err := repo.GetUnit(models.UnitTypeExternalWiki); err == nil {
 | 
				
			||||||
 | 
							hasWiki = true
 | 
				
			||||||
 | 
							config := unit.ExternalWikiConfig()
 | 
				
			||||||
 | 
							externalWiki = &api.ExternalWiki{
 | 
				
			||||||
 | 
								ExternalWikiURL: config.ExternalWikiURL,
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						hasPullRequests := false
 | 
				
			||||||
 | 
						ignoreWhitespaceConflicts := false
 | 
				
			||||||
 | 
						allowMerge := false
 | 
				
			||||||
 | 
						allowRebase := false
 | 
				
			||||||
 | 
						allowRebaseMerge := false
 | 
				
			||||||
 | 
						allowSquash := false
 | 
				
			||||||
 | 
						if unit, err := repo.GetUnit(models.UnitTypePullRequests); err == nil {
 | 
				
			||||||
 | 
							config := unit.PullRequestsConfig()
 | 
				
			||||||
 | 
							hasPullRequests = true
 | 
				
			||||||
 | 
							ignoreWhitespaceConflicts = config.IgnoreWhitespaceConflicts
 | 
				
			||||||
 | 
							allowMerge = config.AllowMerge
 | 
				
			||||||
 | 
							allowRebase = config.AllowRebase
 | 
				
			||||||
 | 
							allowRebaseMerge = config.AllowRebaseMerge
 | 
				
			||||||
 | 
							allowSquash = config.AllowSquash
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						hasProjects := false
 | 
				
			||||||
 | 
						if _, err := repo.GetUnit(models.UnitTypeProjects); err == nil {
 | 
				
			||||||
 | 
							hasProjects = true
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if err := repo.GetOwner(); err != nil {
 | 
				
			||||||
 | 
							return nil
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						numReleases, _ := models.GetReleaseCountByRepoID(repo.ID, models.FindReleasesOptions{IncludeDrafts: false, IncludeTags: true})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return &api.Repository{
 | 
				
			||||||
 | 
							ID:                        repo.ID,
 | 
				
			||||||
 | 
							Owner:                     ToUser(repo.Owner, mode != models.AccessModeNone, mode >= models.AccessModeAdmin),
 | 
				
			||||||
 | 
							Name:                      repo.Name,
 | 
				
			||||||
 | 
							FullName:                  repo.FullName(),
 | 
				
			||||||
 | 
							Description:               repo.Description,
 | 
				
			||||||
 | 
							Private:                   repo.IsPrivate,
 | 
				
			||||||
 | 
							Template:                  repo.IsTemplate,
 | 
				
			||||||
 | 
							Empty:                     repo.IsEmpty,
 | 
				
			||||||
 | 
							Archived:                  repo.IsArchived,
 | 
				
			||||||
 | 
							Size:                      int(repo.Size / 1024),
 | 
				
			||||||
 | 
							Fork:                      repo.IsFork,
 | 
				
			||||||
 | 
							Parent:                    parent,
 | 
				
			||||||
 | 
							Mirror:                    repo.IsMirror,
 | 
				
			||||||
 | 
							HTMLURL:                   repo.HTMLURL(),
 | 
				
			||||||
 | 
							SSHURL:                    cloneLink.SSH,
 | 
				
			||||||
 | 
							CloneURL:                  cloneLink.HTTPS,
 | 
				
			||||||
 | 
							Website:                   repo.Website,
 | 
				
			||||||
 | 
							Stars:                     repo.NumStars,
 | 
				
			||||||
 | 
							Forks:                     repo.NumForks,
 | 
				
			||||||
 | 
							Watchers:                  repo.NumWatches,
 | 
				
			||||||
 | 
							OpenIssues:                repo.NumOpenIssues,
 | 
				
			||||||
 | 
							OpenPulls:                 repo.NumOpenPulls,
 | 
				
			||||||
 | 
							Releases:                  int(numReleases),
 | 
				
			||||||
 | 
							DefaultBranch:             repo.DefaultBranch,
 | 
				
			||||||
 | 
							Created:                   repo.CreatedUnix.AsTime(),
 | 
				
			||||||
 | 
							Updated:                   repo.UpdatedUnix.AsTime(),
 | 
				
			||||||
 | 
							Permissions:               permission,
 | 
				
			||||||
 | 
							HasIssues:                 hasIssues,
 | 
				
			||||||
 | 
							ExternalTracker:           externalTracker,
 | 
				
			||||||
 | 
							InternalTracker:           internalTracker,
 | 
				
			||||||
 | 
							HasWiki:                   hasWiki,
 | 
				
			||||||
 | 
							HasProjects:               hasProjects,
 | 
				
			||||||
 | 
							ExternalWiki:              externalWiki,
 | 
				
			||||||
 | 
							HasPullRequests:           hasPullRequests,
 | 
				
			||||||
 | 
							IgnoreWhitespaceConflicts: ignoreWhitespaceConflicts,
 | 
				
			||||||
 | 
							AllowMerge:                allowMerge,
 | 
				
			||||||
 | 
							AllowRebase:               allowRebase,
 | 
				
			||||||
 | 
							AllowRebaseMerge:          allowRebaseMerge,
 | 
				
			||||||
 | 
							AllowSquash:               allowSquash,
 | 
				
			||||||
 | 
							AvatarURL:                 repo.AvatarLink(),
 | 
				
			||||||
 | 
							Internal:                  !repo.IsPrivate && repo.Owner.Visibility == api.VisibleTypePrivate,
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -52,7 +52,7 @@ func (m *webhookNotifier) NotifyIssueClearLabels(doer *models.User, issue *model
 | 
				
			|||||||
			Action:      api.HookIssueLabelCleared,
 | 
								Action:      api.HookIssueLabelCleared,
 | 
				
			||||||
			Index:       issue.Index,
 | 
								Index:       issue.Index,
 | 
				
			||||||
			PullRequest: convert.ToAPIPullRequest(issue.PullRequest),
 | 
								PullRequest: convert.ToAPIPullRequest(issue.PullRequest),
 | 
				
			||||||
			Repository:  issue.Repo.APIFormat(mode),
 | 
								Repository:  convert.ToRepo(issue.Repo, mode),
 | 
				
			||||||
			Sender:      convert.ToUser(doer, false, false),
 | 
								Sender:      convert.ToUser(doer, false, false),
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
@@ -60,7 +60,7 @@ func (m *webhookNotifier) NotifyIssueClearLabels(doer *models.User, issue *model
 | 
				
			|||||||
			Action:     api.HookIssueLabelCleared,
 | 
								Action:     api.HookIssueLabelCleared,
 | 
				
			||||||
			Index:      issue.Index,
 | 
								Index:      issue.Index,
 | 
				
			||||||
			Issue:      convert.ToAPIIssue(issue),
 | 
								Issue:      convert.ToAPIIssue(issue),
 | 
				
			||||||
			Repository: issue.Repo.APIFormat(mode),
 | 
								Repository: convert.ToRepo(issue.Repo, mode),
 | 
				
			||||||
			Sender:     convert.ToUser(doer, false, false),
 | 
								Sender:     convert.ToUser(doer, false, false),
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -75,8 +75,8 @@ func (m *webhookNotifier) NotifyForkRepository(doer *models.User, oldRepo, repo
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	// forked webhook
 | 
						// forked webhook
 | 
				
			||||||
	if err := webhook_module.PrepareWebhooks(oldRepo, models.HookEventFork, &api.ForkPayload{
 | 
						if err := webhook_module.PrepareWebhooks(oldRepo, models.HookEventFork, &api.ForkPayload{
 | 
				
			||||||
		Forkee: oldRepo.APIFormat(oldMode),
 | 
							Forkee: convert.ToRepo(oldRepo, oldMode),
 | 
				
			||||||
		Repo:   repo.APIFormat(mode),
 | 
							Repo:   convert.ToRepo(repo, mode),
 | 
				
			||||||
		Sender: convert.ToUser(doer, false, false),
 | 
							Sender: convert.ToUser(doer, false, false),
 | 
				
			||||||
	}); err != nil {
 | 
						}); err != nil {
 | 
				
			||||||
		log.Error("PrepareWebhooks [repo_id: %d]: %v", oldRepo.ID, err)
 | 
							log.Error("PrepareWebhooks [repo_id: %d]: %v", oldRepo.ID, err)
 | 
				
			||||||
@@ -88,7 +88,7 @@ func (m *webhookNotifier) NotifyForkRepository(doer *models.User, oldRepo, repo
 | 
				
			|||||||
	if u.IsOrganization() {
 | 
						if u.IsOrganization() {
 | 
				
			||||||
		if err := webhook_module.PrepareWebhooks(repo, models.HookEventRepository, &api.RepositoryPayload{
 | 
							if err := webhook_module.PrepareWebhooks(repo, models.HookEventRepository, &api.RepositoryPayload{
 | 
				
			||||||
			Action:       api.HookRepoCreated,
 | 
								Action:       api.HookRepoCreated,
 | 
				
			||||||
			Repository:   repo.APIFormat(models.AccessModeOwner),
 | 
								Repository:   convert.ToRepo(repo, models.AccessModeOwner),
 | 
				
			||||||
			Organization: convert.ToUser(u, false, false),
 | 
								Organization: convert.ToUser(u, false, false),
 | 
				
			||||||
			Sender:       convert.ToUser(doer, false, false),
 | 
								Sender:       convert.ToUser(doer, false, false),
 | 
				
			||||||
		}); err != nil {
 | 
							}); err != nil {
 | 
				
			||||||
@@ -101,7 +101,7 @@ func (m *webhookNotifier) NotifyCreateRepository(doer *models.User, u *models.Us
 | 
				
			|||||||
	// Add to hook queue for created repo after session commit.
 | 
						// Add to hook queue for created repo after session commit.
 | 
				
			||||||
	if err := webhook_module.PrepareWebhooks(repo, models.HookEventRepository, &api.RepositoryPayload{
 | 
						if err := webhook_module.PrepareWebhooks(repo, models.HookEventRepository, &api.RepositoryPayload{
 | 
				
			||||||
		Action:       api.HookRepoCreated,
 | 
							Action:       api.HookRepoCreated,
 | 
				
			||||||
		Repository:   repo.APIFormat(models.AccessModeOwner),
 | 
							Repository:   convert.ToRepo(repo, models.AccessModeOwner),
 | 
				
			||||||
		Organization: convert.ToUser(u, false, false),
 | 
							Organization: convert.ToUser(u, false, false),
 | 
				
			||||||
		Sender:       convert.ToUser(doer, false, false),
 | 
							Sender:       convert.ToUser(doer, false, false),
 | 
				
			||||||
	}); err != nil {
 | 
						}); err != nil {
 | 
				
			||||||
@@ -114,7 +114,7 @@ func (m *webhookNotifier) NotifyDeleteRepository(doer *models.User, repo *models
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	if err := webhook_module.PrepareWebhooks(repo, models.HookEventRepository, &api.RepositoryPayload{
 | 
						if err := webhook_module.PrepareWebhooks(repo, models.HookEventRepository, &api.RepositoryPayload{
 | 
				
			||||||
		Action:       api.HookRepoDeleted,
 | 
							Action:       api.HookRepoDeleted,
 | 
				
			||||||
		Repository:   repo.APIFormat(models.AccessModeOwner),
 | 
							Repository:   convert.ToRepo(repo, models.AccessModeOwner),
 | 
				
			||||||
		Organization: convert.ToUser(u, false, false),
 | 
							Organization: convert.ToUser(u, false, false),
 | 
				
			||||||
		Sender:       convert.ToUser(doer, false, false),
 | 
							Sender:       convert.ToUser(doer, false, false),
 | 
				
			||||||
	}); err != nil {
 | 
						}); err != nil {
 | 
				
			||||||
@@ -134,7 +134,7 @@ func (m *webhookNotifier) NotifyIssueChangeAssignee(doer *models.User, issue *mo
 | 
				
			|||||||
		apiPullRequest := &api.PullRequestPayload{
 | 
							apiPullRequest := &api.PullRequestPayload{
 | 
				
			||||||
			Index:       issue.Index,
 | 
								Index:       issue.Index,
 | 
				
			||||||
			PullRequest: convert.ToAPIPullRequest(issue.PullRequest),
 | 
								PullRequest: convert.ToAPIPullRequest(issue.PullRequest),
 | 
				
			||||||
			Repository:  issue.Repo.APIFormat(mode),
 | 
								Repository:  convert.ToRepo(issue.Repo, mode),
 | 
				
			||||||
			Sender:      convert.ToUser(doer, false, false),
 | 
								Sender:      convert.ToUser(doer, false, false),
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if removed {
 | 
							if removed {
 | 
				
			||||||
@@ -152,7 +152,7 @@ func (m *webhookNotifier) NotifyIssueChangeAssignee(doer *models.User, issue *mo
 | 
				
			|||||||
		apiIssue := &api.IssuePayload{
 | 
							apiIssue := &api.IssuePayload{
 | 
				
			||||||
			Index:      issue.Index,
 | 
								Index:      issue.Index,
 | 
				
			||||||
			Issue:      convert.ToAPIIssue(issue),
 | 
								Issue:      convert.ToAPIIssue(issue),
 | 
				
			||||||
			Repository: issue.Repo.APIFormat(mode),
 | 
								Repository: convert.ToRepo(issue.Repo, mode),
 | 
				
			||||||
			Sender:     convert.ToUser(doer, false, false),
 | 
								Sender:     convert.ToUser(doer, false, false),
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if removed {
 | 
							if removed {
 | 
				
			||||||
@@ -186,7 +186,7 @@ func (m *webhookNotifier) NotifyIssueChangeTitle(doer *models.User, issue *model
 | 
				
			|||||||
				},
 | 
									},
 | 
				
			||||||
			},
 | 
								},
 | 
				
			||||||
			PullRequest: convert.ToAPIPullRequest(issue.PullRequest),
 | 
								PullRequest: convert.ToAPIPullRequest(issue.PullRequest),
 | 
				
			||||||
			Repository:  issue.Repo.APIFormat(mode),
 | 
								Repository:  convert.ToRepo(issue.Repo, mode),
 | 
				
			||||||
			Sender:      convert.ToUser(doer, false, false),
 | 
								Sender:      convert.ToUser(doer, false, false),
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
@@ -199,7 +199,7 @@ func (m *webhookNotifier) NotifyIssueChangeTitle(doer *models.User, issue *model
 | 
				
			|||||||
				},
 | 
									},
 | 
				
			||||||
			},
 | 
								},
 | 
				
			||||||
			Issue:      convert.ToAPIIssue(issue),
 | 
								Issue:      convert.ToAPIIssue(issue),
 | 
				
			||||||
			Repository: issue.Repo.APIFormat(mode),
 | 
								Repository: convert.ToRepo(issue.Repo, mode),
 | 
				
			||||||
			Sender:     convert.ToUser(issue.Poster, false, false),
 | 
								Sender:     convert.ToUser(issue.Poster, false, false),
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -221,7 +221,7 @@ func (m *webhookNotifier) NotifyIssueChangeStatus(doer *models.User, issue *mode
 | 
				
			|||||||
		apiPullRequest := &api.PullRequestPayload{
 | 
							apiPullRequest := &api.PullRequestPayload{
 | 
				
			||||||
			Index:       issue.Index,
 | 
								Index:       issue.Index,
 | 
				
			||||||
			PullRequest: convert.ToAPIPullRequest(issue.PullRequest),
 | 
								PullRequest: convert.ToAPIPullRequest(issue.PullRequest),
 | 
				
			||||||
			Repository:  issue.Repo.APIFormat(mode),
 | 
								Repository:  convert.ToRepo(issue.Repo, mode),
 | 
				
			||||||
			Sender:      convert.ToUser(doer, false, false),
 | 
								Sender:      convert.ToUser(doer, false, false),
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if isClosed {
 | 
							if isClosed {
 | 
				
			||||||
@@ -234,7 +234,7 @@ func (m *webhookNotifier) NotifyIssueChangeStatus(doer *models.User, issue *mode
 | 
				
			|||||||
		apiIssue := &api.IssuePayload{
 | 
							apiIssue := &api.IssuePayload{
 | 
				
			||||||
			Index:      issue.Index,
 | 
								Index:      issue.Index,
 | 
				
			||||||
			Issue:      convert.ToAPIIssue(issue),
 | 
								Issue:      convert.ToAPIIssue(issue),
 | 
				
			||||||
			Repository: issue.Repo.APIFormat(mode),
 | 
								Repository: convert.ToRepo(issue.Repo, mode),
 | 
				
			||||||
			Sender:     convert.ToUser(doer, false, false),
 | 
								Sender:     convert.ToUser(doer, false, false),
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if isClosed {
 | 
							if isClosed {
 | 
				
			||||||
@@ -264,7 +264,7 @@ func (m *webhookNotifier) NotifyNewIssue(issue *models.Issue) {
 | 
				
			|||||||
		Action:     api.HookIssueOpened,
 | 
							Action:     api.HookIssueOpened,
 | 
				
			||||||
		Index:      issue.Index,
 | 
							Index:      issue.Index,
 | 
				
			||||||
		Issue:      convert.ToAPIIssue(issue),
 | 
							Issue:      convert.ToAPIIssue(issue),
 | 
				
			||||||
		Repository: issue.Repo.APIFormat(mode),
 | 
							Repository: convert.ToRepo(issue.Repo, mode),
 | 
				
			||||||
		Sender:     convert.ToUser(issue.Poster, false, false),
 | 
							Sender:     convert.ToUser(issue.Poster, false, false),
 | 
				
			||||||
	}); err != nil {
 | 
						}); err != nil {
 | 
				
			||||||
		log.Error("PrepareWebhooks: %v", err)
 | 
							log.Error("PrepareWebhooks: %v", err)
 | 
				
			||||||
@@ -290,7 +290,7 @@ func (m *webhookNotifier) NotifyNewPullRequest(pull *models.PullRequest) {
 | 
				
			|||||||
		Action:      api.HookIssueOpened,
 | 
							Action:      api.HookIssueOpened,
 | 
				
			||||||
		Index:       pull.Issue.Index,
 | 
							Index:       pull.Issue.Index,
 | 
				
			||||||
		PullRequest: convert.ToAPIPullRequest(pull),
 | 
							PullRequest: convert.ToAPIPullRequest(pull),
 | 
				
			||||||
		Repository:  pull.Issue.Repo.APIFormat(mode),
 | 
							Repository:  convert.ToRepo(pull.Issue.Repo, mode),
 | 
				
			||||||
		Sender:      convert.ToUser(pull.Issue.Poster, false, false),
 | 
							Sender:      convert.ToUser(pull.Issue.Poster, false, false),
 | 
				
			||||||
	}); err != nil {
 | 
						}); err != nil {
 | 
				
			||||||
		log.Error("PrepareWebhooks: %v", err)
 | 
							log.Error("PrepareWebhooks: %v", err)
 | 
				
			||||||
@@ -311,7 +311,7 @@ func (m *webhookNotifier) NotifyIssueChangeContent(doer *models.User, issue *mod
 | 
				
			|||||||
				},
 | 
									},
 | 
				
			||||||
			},
 | 
								},
 | 
				
			||||||
			PullRequest: convert.ToAPIPullRequest(issue.PullRequest),
 | 
								PullRequest: convert.ToAPIPullRequest(issue.PullRequest),
 | 
				
			||||||
			Repository:  issue.Repo.APIFormat(mode),
 | 
								Repository:  convert.ToRepo(issue.Repo, mode),
 | 
				
			||||||
			Sender:      convert.ToUser(doer, false, false),
 | 
								Sender:      convert.ToUser(doer, false, false),
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
@@ -324,7 +324,7 @@ func (m *webhookNotifier) NotifyIssueChangeContent(doer *models.User, issue *mod
 | 
				
			|||||||
				},
 | 
									},
 | 
				
			||||||
			},
 | 
								},
 | 
				
			||||||
			Issue:      convert.ToAPIIssue(issue),
 | 
								Issue:      convert.ToAPIIssue(issue),
 | 
				
			||||||
			Repository: issue.Repo.APIFormat(mode),
 | 
								Repository: convert.ToRepo(issue.Repo, mode),
 | 
				
			||||||
			Sender:     convert.ToUser(doer, false, false),
 | 
								Sender:     convert.ToUser(doer, false, false),
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -361,7 +361,7 @@ func (m *webhookNotifier) NotifyUpdateComment(doer *models.User, c *models.Comme
 | 
				
			|||||||
					From: oldContent,
 | 
										From: oldContent,
 | 
				
			||||||
				},
 | 
									},
 | 
				
			||||||
			},
 | 
								},
 | 
				
			||||||
			Repository: c.Issue.Repo.APIFormat(mode),
 | 
								Repository: convert.ToRepo(c.Issue.Repo, mode),
 | 
				
			||||||
			Sender:     convert.ToUser(doer, false, false),
 | 
								Sender:     convert.ToUser(doer, false, false),
 | 
				
			||||||
			IsPull:     true,
 | 
								IsPull:     true,
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
@@ -375,7 +375,7 @@ func (m *webhookNotifier) NotifyUpdateComment(doer *models.User, c *models.Comme
 | 
				
			|||||||
					From: oldContent,
 | 
										From: oldContent,
 | 
				
			||||||
				},
 | 
									},
 | 
				
			||||||
			},
 | 
								},
 | 
				
			||||||
			Repository: c.Issue.Repo.APIFormat(mode),
 | 
								Repository: convert.ToRepo(c.Issue.Repo, mode),
 | 
				
			||||||
			Sender:     convert.ToUser(doer, false, false),
 | 
								Sender:     convert.ToUser(doer, false, false),
 | 
				
			||||||
			IsPull:     false,
 | 
								IsPull:     false,
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
@@ -396,7 +396,7 @@ func (m *webhookNotifier) NotifyCreateIssueComment(doer *models.User, repo *mode
 | 
				
			|||||||
			Action:     api.HookIssueCommentCreated,
 | 
								Action:     api.HookIssueCommentCreated,
 | 
				
			||||||
			Issue:      convert.ToAPIIssue(issue),
 | 
								Issue:      convert.ToAPIIssue(issue),
 | 
				
			||||||
			Comment:    convert.ToComment(comment),
 | 
								Comment:    convert.ToComment(comment),
 | 
				
			||||||
			Repository: repo.APIFormat(mode),
 | 
								Repository: convert.ToRepo(repo, mode),
 | 
				
			||||||
			Sender:     convert.ToUser(doer, false, false),
 | 
								Sender:     convert.ToUser(doer, false, false),
 | 
				
			||||||
			IsPull:     true,
 | 
								IsPull:     true,
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
@@ -405,7 +405,7 @@ func (m *webhookNotifier) NotifyCreateIssueComment(doer *models.User, repo *mode
 | 
				
			|||||||
			Action:     api.HookIssueCommentCreated,
 | 
								Action:     api.HookIssueCommentCreated,
 | 
				
			||||||
			Issue:      convert.ToAPIIssue(issue),
 | 
								Issue:      convert.ToAPIIssue(issue),
 | 
				
			||||||
			Comment:    convert.ToComment(comment),
 | 
								Comment:    convert.ToComment(comment),
 | 
				
			||||||
			Repository: repo.APIFormat(mode),
 | 
								Repository: convert.ToRepo(repo, mode),
 | 
				
			||||||
			Sender:     convert.ToUser(doer, false, false),
 | 
								Sender:     convert.ToUser(doer, false, false),
 | 
				
			||||||
			IsPull:     false,
 | 
								IsPull:     false,
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
@@ -440,7 +440,7 @@ func (m *webhookNotifier) NotifyDeleteComment(doer *models.User, comment *models
 | 
				
			|||||||
			Action:     api.HookIssueCommentDeleted,
 | 
								Action:     api.HookIssueCommentDeleted,
 | 
				
			||||||
			Issue:      convert.ToAPIIssue(comment.Issue),
 | 
								Issue:      convert.ToAPIIssue(comment.Issue),
 | 
				
			||||||
			Comment:    convert.ToComment(comment),
 | 
								Comment:    convert.ToComment(comment),
 | 
				
			||||||
			Repository: comment.Issue.Repo.APIFormat(mode),
 | 
								Repository: convert.ToRepo(comment.Issue.Repo, mode),
 | 
				
			||||||
			Sender:     convert.ToUser(doer, false, false),
 | 
								Sender:     convert.ToUser(doer, false, false),
 | 
				
			||||||
			IsPull:     true,
 | 
								IsPull:     true,
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
@@ -449,7 +449,7 @@ func (m *webhookNotifier) NotifyDeleteComment(doer *models.User, comment *models
 | 
				
			|||||||
			Action:     api.HookIssueCommentDeleted,
 | 
								Action:     api.HookIssueCommentDeleted,
 | 
				
			||||||
			Issue:      convert.ToAPIIssue(comment.Issue),
 | 
								Issue:      convert.ToAPIIssue(comment.Issue),
 | 
				
			||||||
			Comment:    convert.ToComment(comment),
 | 
								Comment:    convert.ToComment(comment),
 | 
				
			||||||
			Repository: comment.Issue.Repo.APIFormat(mode),
 | 
								Repository: convert.ToRepo(comment.Issue.Repo, mode),
 | 
				
			||||||
			Sender:     convert.ToUser(doer, false, false),
 | 
								Sender:     convert.ToUser(doer, false, false),
 | 
				
			||||||
			IsPull:     false,
 | 
								IsPull:     false,
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
@@ -489,7 +489,7 @@ func (m *webhookNotifier) NotifyIssueChangeLabels(doer *models.User, issue *mode
 | 
				
			|||||||
			Action:      api.HookIssueLabelUpdated,
 | 
								Action:      api.HookIssueLabelUpdated,
 | 
				
			||||||
			Index:       issue.Index,
 | 
								Index:       issue.Index,
 | 
				
			||||||
			PullRequest: convert.ToAPIPullRequest(issue.PullRequest),
 | 
								PullRequest: convert.ToAPIPullRequest(issue.PullRequest),
 | 
				
			||||||
			Repository:  issue.Repo.APIFormat(models.AccessModeNone),
 | 
								Repository:  convert.ToRepo(issue.Repo, models.AccessModeNone),
 | 
				
			||||||
			Sender:      convert.ToUser(doer, false, false),
 | 
								Sender:      convert.ToUser(doer, false, false),
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
@@ -497,7 +497,7 @@ func (m *webhookNotifier) NotifyIssueChangeLabels(doer *models.User, issue *mode
 | 
				
			|||||||
			Action:     api.HookIssueLabelUpdated,
 | 
								Action:     api.HookIssueLabelUpdated,
 | 
				
			||||||
			Index:      issue.Index,
 | 
								Index:      issue.Index,
 | 
				
			||||||
			Issue:      convert.ToAPIIssue(issue),
 | 
								Issue:      convert.ToAPIIssue(issue),
 | 
				
			||||||
			Repository: issue.Repo.APIFormat(mode),
 | 
								Repository: convert.ToRepo(issue.Repo, mode),
 | 
				
			||||||
			Sender:     convert.ToUser(doer, false, false),
 | 
								Sender:     convert.ToUser(doer, false, false),
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -531,7 +531,7 @@ func (m *webhookNotifier) NotifyIssueChangeMilestone(doer *models.User, issue *m
 | 
				
			|||||||
			Action:      hookAction,
 | 
								Action:      hookAction,
 | 
				
			||||||
			Index:       issue.Index,
 | 
								Index:       issue.Index,
 | 
				
			||||||
			PullRequest: convert.ToAPIPullRequest(issue.PullRequest),
 | 
								PullRequest: convert.ToAPIPullRequest(issue.PullRequest),
 | 
				
			||||||
			Repository:  issue.Repo.APIFormat(mode),
 | 
								Repository:  convert.ToRepo(issue.Repo, mode),
 | 
				
			||||||
			Sender:      convert.ToUser(doer, false, false),
 | 
								Sender:      convert.ToUser(doer, false, false),
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
@@ -539,7 +539,7 @@ func (m *webhookNotifier) NotifyIssueChangeMilestone(doer *models.User, issue *m
 | 
				
			|||||||
			Action:     hookAction,
 | 
								Action:     hookAction,
 | 
				
			||||||
			Index:      issue.Index,
 | 
								Index:      issue.Index,
 | 
				
			||||||
			Issue:      convert.ToAPIIssue(issue),
 | 
								Issue:      convert.ToAPIIssue(issue),
 | 
				
			||||||
			Repository: issue.Repo.APIFormat(mode),
 | 
								Repository: convert.ToRepo(issue.Repo, mode),
 | 
				
			||||||
			Sender:     convert.ToUser(doer, false, false),
 | 
								Sender:     convert.ToUser(doer, false, false),
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -562,7 +562,7 @@ func (m *webhookNotifier) NotifyPushCommits(pusher *models.User, repo *models.Re
 | 
				
			|||||||
		After:      opts.NewCommitID,
 | 
							After:      opts.NewCommitID,
 | 
				
			||||||
		CompareURL: setting.AppURL + commits.CompareURL,
 | 
							CompareURL: setting.AppURL + commits.CompareURL,
 | 
				
			||||||
		Commits:    apiCommits,
 | 
							Commits:    apiCommits,
 | 
				
			||||||
		Repo:       repo.APIFormat(models.AccessModeOwner),
 | 
							Repo:       convert.ToRepo(repo, models.AccessModeOwner),
 | 
				
			||||||
		Pusher:     apiPusher,
 | 
							Pusher:     apiPusher,
 | 
				
			||||||
		Sender:     apiPusher,
 | 
							Sender:     apiPusher,
 | 
				
			||||||
	}); err != nil {
 | 
						}); err != nil {
 | 
				
			||||||
@@ -597,7 +597,7 @@ func (*webhookNotifier) NotifyMergePullRequest(pr *models.PullRequest, doer *mod
 | 
				
			|||||||
	apiPullRequest := &api.PullRequestPayload{
 | 
						apiPullRequest := &api.PullRequestPayload{
 | 
				
			||||||
		Index:       pr.Issue.Index,
 | 
							Index:       pr.Issue.Index,
 | 
				
			||||||
		PullRequest: convert.ToAPIPullRequest(pr),
 | 
							PullRequest: convert.ToAPIPullRequest(pr),
 | 
				
			||||||
		Repository:  pr.Issue.Repo.APIFormat(mode),
 | 
							Repository:  convert.ToRepo(pr.Issue.Repo, mode),
 | 
				
			||||||
		Sender:      convert.ToUser(doer, false, false),
 | 
							Sender:      convert.ToUser(doer, false, false),
 | 
				
			||||||
		Action:      api.HookIssueClosed,
 | 
							Action:      api.HookIssueClosed,
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -630,7 +630,7 @@ func (m *webhookNotifier) NotifyPullRequestChangeTargetBranch(doer *models.User,
 | 
				
			|||||||
			},
 | 
								},
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		PullRequest: convert.ToAPIPullRequest(issue.PullRequest),
 | 
							PullRequest: convert.ToAPIPullRequest(issue.PullRequest),
 | 
				
			||||||
		Repository:  issue.Repo.APIFormat(mode),
 | 
							Repository:  convert.ToRepo(issue.Repo, mode),
 | 
				
			||||||
		Sender:      convert.ToUser(doer, false, false),
 | 
							Sender:      convert.ToUser(doer, false, false),
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -669,7 +669,7 @@ func (m *webhookNotifier) NotifyPullRequestReview(pr *models.PullRequest, review
 | 
				
			|||||||
		Action:      api.HookIssueReviewed,
 | 
							Action:      api.HookIssueReviewed,
 | 
				
			||||||
		Index:       review.Issue.Index,
 | 
							Index:       review.Issue.Index,
 | 
				
			||||||
		PullRequest: convert.ToAPIPullRequest(pr),
 | 
							PullRequest: convert.ToAPIPullRequest(pr),
 | 
				
			||||||
		Repository:  review.Issue.Repo.APIFormat(mode),
 | 
							Repository:  convert.ToRepo(review.Issue.Repo, mode),
 | 
				
			||||||
		Sender:      convert.ToUser(review.Reviewer, false, false),
 | 
							Sender:      convert.ToUser(review.Reviewer, false, false),
 | 
				
			||||||
		Review: &api.ReviewPayload{
 | 
							Review: &api.ReviewPayload{
 | 
				
			||||||
			Type:    string(reviewHookType),
 | 
								Type:    string(reviewHookType),
 | 
				
			||||||
@@ -682,7 +682,7 @@ func (m *webhookNotifier) NotifyPullRequestReview(pr *models.PullRequest, review
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
func (m *webhookNotifier) NotifyCreateRef(pusher *models.User, repo *models.Repository, refType, refFullName string) {
 | 
					func (m *webhookNotifier) NotifyCreateRef(pusher *models.User, repo *models.Repository, refType, refFullName string) {
 | 
				
			||||||
	apiPusher := convert.ToUser(pusher, false, false)
 | 
						apiPusher := convert.ToUser(pusher, false, false)
 | 
				
			||||||
	apiRepo := repo.APIFormat(models.AccessModeNone)
 | 
						apiRepo := convert.ToRepo(repo, models.AccessModeNone)
 | 
				
			||||||
	refName := git.RefEndName(refFullName)
 | 
						refName := git.RefEndName(refFullName)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	gitRepo, err := git.OpenRepository(repo.RepoPath())
 | 
						gitRepo, err := git.OpenRepository(repo.RepoPath())
 | 
				
			||||||
@@ -724,7 +724,7 @@ func (m *webhookNotifier) NotifyPullRequestSynchronized(doer *models.User, pr *m
 | 
				
			|||||||
		Action:      api.HookIssueSynchronized,
 | 
							Action:      api.HookIssueSynchronized,
 | 
				
			||||||
		Index:       pr.Issue.Index,
 | 
							Index:       pr.Issue.Index,
 | 
				
			||||||
		PullRequest: convert.ToAPIPullRequest(pr),
 | 
							PullRequest: convert.ToAPIPullRequest(pr),
 | 
				
			||||||
		Repository:  pr.Issue.Repo.APIFormat(models.AccessModeNone),
 | 
							Repository:  convert.ToRepo(pr.Issue.Repo, models.AccessModeNone),
 | 
				
			||||||
		Sender:      convert.ToUser(doer, false, false),
 | 
							Sender:      convert.ToUser(doer, false, false),
 | 
				
			||||||
	}); err != nil {
 | 
						}); err != nil {
 | 
				
			||||||
		log.Error("PrepareWebhooks [pull_id: %v]: %v", pr.ID, err)
 | 
							log.Error("PrepareWebhooks [pull_id: %v]: %v", pr.ID, err)
 | 
				
			||||||
@@ -733,7 +733,7 @@ func (m *webhookNotifier) NotifyPullRequestSynchronized(doer *models.User, pr *m
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
func (m *webhookNotifier) NotifyDeleteRef(pusher *models.User, repo *models.Repository, refType, refFullName string) {
 | 
					func (m *webhookNotifier) NotifyDeleteRef(pusher *models.User, repo *models.Repository, refType, refFullName string) {
 | 
				
			||||||
	apiPusher := convert.ToUser(pusher, false, false)
 | 
						apiPusher := convert.ToUser(pusher, false, false)
 | 
				
			||||||
	apiRepo := repo.APIFormat(models.AccessModeNone)
 | 
						apiRepo := convert.ToRepo(repo, models.AccessModeNone)
 | 
				
			||||||
	refName := git.RefEndName(refFullName)
 | 
						refName := git.RefEndName(refFullName)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if err := webhook_module.PrepareWebhooks(repo, models.HookEventDelete, &api.DeletePayload{
 | 
						if err := webhook_module.PrepareWebhooks(repo, models.HookEventDelete, &api.DeletePayload{
 | 
				
			||||||
@@ -757,7 +757,7 @@ func sendReleaseHook(doer *models.User, rel *models.Release, action api.HookRele
 | 
				
			|||||||
	if err := webhook_module.PrepareWebhooks(rel.Repo, models.HookEventRelease, &api.ReleasePayload{
 | 
						if err := webhook_module.PrepareWebhooks(rel.Repo, models.HookEventRelease, &api.ReleasePayload{
 | 
				
			||||||
		Action:     action,
 | 
							Action:     action,
 | 
				
			||||||
		Release:    convert.ToRelease(rel),
 | 
							Release:    convert.ToRelease(rel),
 | 
				
			||||||
		Repository: rel.Repo.APIFormat(mode),
 | 
							Repository: convert.ToRepo(rel.Repo, mode),
 | 
				
			||||||
		Sender:     convert.ToUser(rel.Publisher, false, false),
 | 
							Sender:     convert.ToUser(rel.Publisher, false, false),
 | 
				
			||||||
	}); err != nil {
 | 
						}); err != nil {
 | 
				
			||||||
		log.Error("PrepareWebhooks: %v", err)
 | 
							log.Error("PrepareWebhooks: %v", err)
 | 
				
			||||||
@@ -790,7 +790,7 @@ func (m *webhookNotifier) NotifySyncPushCommits(pusher *models.User, repo *model
 | 
				
			|||||||
		After:      opts.NewCommitID,
 | 
							After:      opts.NewCommitID,
 | 
				
			||||||
		CompareURL: setting.AppURL + commits.CompareURL,
 | 
							CompareURL: setting.AppURL + commits.CompareURL,
 | 
				
			||||||
		Commits:    apiCommits,
 | 
							Commits:    apiCommits,
 | 
				
			||||||
		Repo:       repo.APIFormat(models.AccessModeOwner),
 | 
							Repo:       convert.ToRepo(repo, models.AccessModeOwner),
 | 
				
			||||||
		Pusher:     apiPusher,
 | 
							Pusher:     apiPusher,
 | 
				
			||||||
		Sender:     apiPusher,
 | 
							Sender:     apiPusher,
 | 
				
			||||||
	}); err != nil {
 | 
						}); err != nil {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -492,7 +492,7 @@ func GetTeamRepos(ctx *context.APIContext) {
 | 
				
			|||||||
			ctx.Error(http.StatusInternalServerError, "GetTeamRepos", err)
 | 
								ctx.Error(http.StatusInternalServerError, "GetTeamRepos", err)
 | 
				
			||||||
			return
 | 
								return
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		repos[i] = repo.APIFormat(access)
 | 
							repos[i] = convert.ToRepo(repo, access)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	ctx.JSON(http.StatusOK, repos)
 | 
						ctx.JSON(http.StatusOK, repos)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,6 +11,7 @@ import (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	"code.gitea.io/gitea/models"
 | 
						"code.gitea.io/gitea/models"
 | 
				
			||||||
	"code.gitea.io/gitea/modules/context"
 | 
						"code.gitea.io/gitea/modules/context"
 | 
				
			||||||
 | 
						"code.gitea.io/gitea/modules/convert"
 | 
				
			||||||
	api "code.gitea.io/gitea/modules/structs"
 | 
						api "code.gitea.io/gitea/modules/structs"
 | 
				
			||||||
	"code.gitea.io/gitea/routers/api/v1/utils"
 | 
						"code.gitea.io/gitea/routers/api/v1/utils"
 | 
				
			||||||
	repo_service "code.gitea.io/gitea/services/repository"
 | 
						repo_service "code.gitea.io/gitea/services/repository"
 | 
				
			||||||
@@ -58,7 +59,7 @@ func ListForks(ctx *context.APIContext) {
 | 
				
			|||||||
			ctx.Error(http.StatusInternalServerError, "AccessLevel", err)
 | 
								ctx.Error(http.StatusInternalServerError, "AccessLevel", err)
 | 
				
			||||||
			return
 | 
								return
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		apiForks[i] = fork.APIFormat(access)
 | 
							apiForks[i] = convert.ToRepo(fork, access)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	ctx.JSON(http.StatusOK, apiForks)
 | 
						ctx.JSON(http.StatusOK, apiForks)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -125,5 +126,5 @@ func CreateFork(ctx *context.APIContext, form api.CreateForkOption) {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	//TODO change back to 201
 | 
						//TODO change back to 201
 | 
				
			||||||
	ctx.JSON(http.StatusAccepted, fork.APIFormat(models.AccessModeOwner))
 | 
						ctx.JSON(http.StatusAccepted, convert.ToRepo(fork, models.AccessModeOwner))
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -146,7 +146,7 @@ func TestHook(ctx *context.APIContext) {
 | 
				
			|||||||
		Commits: []*api.PayloadCommit{
 | 
							Commits: []*api.PayloadCommit{
 | 
				
			||||||
			convert.ToPayloadCommit(ctx.Repo.Repository, ctx.Repo.Commit),
 | 
								convert.ToPayloadCommit(ctx.Repo.Repository, ctx.Repo.Commit),
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		Repo:   ctx.Repo.Repository.APIFormat(models.AccessModeNone),
 | 
							Repo:   convert.ToRepo(ctx.Repo.Repository, models.AccessModeNone),
 | 
				
			||||||
		Pusher: convert.ToUser(ctx.User, ctx.IsSigned, false),
 | 
							Pusher: convert.ToUser(ctx.User, ctx.IsSigned, false),
 | 
				
			||||||
		Sender: convert.ToUser(ctx.User, ctx.IsSigned, false),
 | 
							Sender: convert.ToUser(ctx.User, ctx.IsSigned, false),
 | 
				
			||||||
	}); err != nil {
 | 
						}); err != nil {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,13 +21,13 @@ import (
 | 
				
			|||||||
func appendPrivateInformation(apiKey *api.DeployKey, key *models.DeployKey, repository *models.Repository) (*api.DeployKey, error) {
 | 
					func appendPrivateInformation(apiKey *api.DeployKey, key *models.DeployKey, repository *models.Repository) (*api.DeployKey, error) {
 | 
				
			||||||
	apiKey.ReadOnly = key.Mode == models.AccessModeRead
 | 
						apiKey.ReadOnly = key.Mode == models.AccessModeRead
 | 
				
			||||||
	if repository.ID == key.RepoID {
 | 
						if repository.ID == key.RepoID {
 | 
				
			||||||
		apiKey.Repository = repository.APIFormat(key.Mode)
 | 
							apiKey.Repository = convert.ToRepo(repository, key.Mode)
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		repo, err := models.GetRepositoryByID(key.RepoID)
 | 
							repo, err := models.GetRepositoryByID(key.RepoID)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return apiKey, err
 | 
								return apiKey, err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		apiKey.Repository = repo.APIFormat(key.Mode)
 | 
							apiKey.Repository = convert.ToRepo(repo, key.Mode)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return apiKey, nil
 | 
						return apiKey, nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -191,7 +191,7 @@ func Migrate(ctx *context.APIContext, form api.MigrateRepoOptions) {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	log.Trace("Repository migrated: %s/%s", repoOwner.Name, form.RepoName)
 | 
						log.Trace("Repository migrated: %s/%s", repoOwner.Name, form.RepoName)
 | 
				
			||||||
	ctx.JSON(http.StatusCreated, repo.APIFormat(models.AccessModeAdmin))
 | 
						ctx.JSON(http.StatusCreated, convert.ToRepo(repo, models.AccessModeAdmin))
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func handleMigrateError(ctx *context.APIContext, repoOwner *models.User, remoteAddr string, err error) {
 | 
					func handleMigrateError(ctx *context.APIContext, repoOwner *models.User, remoteAddr string, err error) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -12,6 +12,7 @@ import (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	"code.gitea.io/gitea/models"
 | 
						"code.gitea.io/gitea/models"
 | 
				
			||||||
	"code.gitea.io/gitea/modules/context"
 | 
						"code.gitea.io/gitea/modules/context"
 | 
				
			||||||
 | 
						"code.gitea.io/gitea/modules/convert"
 | 
				
			||||||
	"code.gitea.io/gitea/modules/git"
 | 
						"code.gitea.io/gitea/modules/git"
 | 
				
			||||||
	"code.gitea.io/gitea/modules/log"
 | 
						"code.gitea.io/gitea/modules/log"
 | 
				
			||||||
	"code.gitea.io/gitea/modules/setting"
 | 
						"code.gitea.io/gitea/modules/setting"
 | 
				
			||||||
@@ -217,7 +218,7 @@ func Search(ctx *context.APIContext) {
 | 
				
			|||||||
				Error: err.Error(),
 | 
									Error: err.Error(),
 | 
				
			||||||
			})
 | 
								})
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		results[i] = repo.APIFormat(accessMode)
 | 
							results[i] = convert.ToRepo(repo, accessMode)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ctx.SetLinkHeader(int(count), opts.PageSize)
 | 
						ctx.SetLinkHeader(int(count), opts.PageSize)
 | 
				
			||||||
@@ -265,7 +266,7 @@ func CreateUserRepo(ctx *context.APIContext, owner *models.User, opt api.CreateR
 | 
				
			|||||||
		ctx.Error(http.StatusInternalServerError, "GetRepositoryByID", err)
 | 
							ctx.Error(http.StatusInternalServerError, "GetRepositoryByID", err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ctx.JSON(http.StatusCreated, repo.APIFormat(models.AccessModeOwner))
 | 
						ctx.JSON(http.StatusCreated, convert.ToRepo(repo, models.AccessModeOwner))
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Create one repository of mine
 | 
					// Create one repository of mine
 | 
				
			||||||
@@ -406,7 +407,7 @@ func Get(ctx *context.APIContext) {
 | 
				
			|||||||
	//   "200":
 | 
						//   "200":
 | 
				
			||||||
	//     "$ref": "#/responses/Repository"
 | 
						//     "$ref": "#/responses/Repository"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ctx.JSON(http.StatusOK, ctx.Repo.Repository.APIFormat(ctx.Repo.AccessMode))
 | 
						ctx.JSON(http.StatusOK, convert.ToRepo(ctx.Repo.Repository, ctx.Repo.AccessMode))
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// GetByID returns a single Repository
 | 
					// GetByID returns a single Repository
 | 
				
			||||||
@@ -445,7 +446,7 @@ func GetByID(ctx *context.APIContext) {
 | 
				
			|||||||
		ctx.NotFound()
 | 
							ctx.NotFound()
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	ctx.JSON(http.StatusOK, repo.APIFormat(perm.AccessMode))
 | 
						ctx.JSON(http.StatusOK, convert.ToRepo(repo, perm.AccessMode))
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Edit edit repository properties
 | 
					// Edit edit repository properties
 | 
				
			||||||
@@ -494,7 +495,7 @@ func Edit(ctx *context.APIContext, opts api.EditRepoOption) {
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ctx.JSON(http.StatusOK, ctx.Repo.Repository.APIFormat(ctx.Repo.AccessMode))
 | 
						ctx.JSON(http.StatusOK, convert.ToRepo(ctx.Repo.Repository, ctx.Repo.AccessMode))
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// updateBasicProperties updates the basic properties of a repo: Name, Description, Website and Visibility
 | 
					// updateBasicProperties updates the basic properties of a repo: Name, Description, Website and Visibility
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -300,7 +300,7 @@ func GetCombinedCommitStatusByRef(ctx *context.APIContext) {
 | 
				
			|||||||
	retStatus := &combinedCommitStatus{
 | 
						retStatus := &combinedCommitStatus{
 | 
				
			||||||
		SHA:        sha,
 | 
							SHA:        sha,
 | 
				
			||||||
		TotalCount: len(statuses),
 | 
							TotalCount: len(statuses),
 | 
				
			||||||
		Repo:       repo.APIFormat(ctx.Repo.AccessMode),
 | 
							Repo:       convert.ToRepo(repo, ctx.Repo.AccessMode),
 | 
				
			||||||
		URL:        "",
 | 
							URL:        "",
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -105,5 +105,5 @@ func Transfer(ctx *context.APIContext, opts api.TransferRepoOption) {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	log.Trace("Repository transferred: %s -> %s", ctx.Repo.Repository.FullName(), newOwner.Name)
 | 
						log.Trace("Repository transferred: %s -> %s", ctx.Repo.Repository.FullName(), newOwner.Name)
 | 
				
			||||||
	ctx.JSON(http.StatusAccepted, newRepo.APIFormat(models.AccessModeAdmin))
 | 
						ctx.JSON(http.StatusAccepted, convert.ToRepo(newRepo, models.AccessModeAdmin))
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -10,6 +10,7 @@ import (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	"code.gitea.io/gitea/models"
 | 
						"code.gitea.io/gitea/models"
 | 
				
			||||||
	"code.gitea.io/gitea/modules/context"
 | 
						"code.gitea.io/gitea/modules/context"
 | 
				
			||||||
 | 
						"code.gitea.io/gitea/modules/convert"
 | 
				
			||||||
	api "code.gitea.io/gitea/modules/structs"
 | 
						api "code.gitea.io/gitea/modules/structs"
 | 
				
			||||||
	"code.gitea.io/gitea/routers/api/v1/utils"
 | 
						"code.gitea.io/gitea/routers/api/v1/utils"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
@@ -37,7 +38,7 @@ func listUserRepos(ctx *context.APIContext, u *models.User, private bool) {
 | 
				
			|||||||
			return
 | 
								return
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if ctx.IsSigned && ctx.User.IsAdmin || access >= models.AccessModeRead {
 | 
							if ctx.IsSigned && ctx.User.IsAdmin || access >= models.AccessModeRead {
 | 
				
			||||||
			apiRepos = append(apiRepos, repos[i].APIFormat(access))
 | 
								apiRepos = append(apiRepos, convert.ToRepo(repos[i], access))
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -125,7 +126,7 @@ func ListMyRepos(ctx *context.APIContext) {
 | 
				
			|||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			ctx.Error(http.StatusInternalServerError, "AccessLevel", err)
 | 
								ctx.Error(http.StatusInternalServerError, "AccessLevel", err)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		results[i] = repo.APIFormat(accessMode)
 | 
							results[i] = convert.ToRepo(repo, accessMode)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ctx.SetLinkHeader(int(count), opts.ListOptions.PageSize)
 | 
						ctx.SetLinkHeader(int(count), opts.ListOptions.PageSize)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -10,6 +10,7 @@ import (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	"code.gitea.io/gitea/models"
 | 
						"code.gitea.io/gitea/models"
 | 
				
			||||||
	"code.gitea.io/gitea/modules/context"
 | 
						"code.gitea.io/gitea/modules/context"
 | 
				
			||||||
 | 
						"code.gitea.io/gitea/modules/convert"
 | 
				
			||||||
	api "code.gitea.io/gitea/modules/structs"
 | 
						api "code.gitea.io/gitea/modules/structs"
 | 
				
			||||||
	"code.gitea.io/gitea/routers/api/v1/utils"
 | 
						"code.gitea.io/gitea/routers/api/v1/utils"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
@@ -28,7 +29,7 @@ func getStarredRepos(user *models.User, private bool, listOptions models.ListOpt
 | 
				
			|||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return nil, err
 | 
								return nil, err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		repos[i] = starred.APIFormat(access)
 | 
							repos[i] = convert.ToRepo(starred, access)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return repos, nil
 | 
						return repos, nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,6 +9,7 @@ import (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	"code.gitea.io/gitea/models"
 | 
						"code.gitea.io/gitea/models"
 | 
				
			||||||
	"code.gitea.io/gitea/modules/context"
 | 
						"code.gitea.io/gitea/modules/context"
 | 
				
			||||||
 | 
						"code.gitea.io/gitea/modules/convert"
 | 
				
			||||||
	api "code.gitea.io/gitea/modules/structs"
 | 
						api "code.gitea.io/gitea/modules/structs"
 | 
				
			||||||
	"code.gitea.io/gitea/routers/api/v1/utils"
 | 
						"code.gitea.io/gitea/routers/api/v1/utils"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
@@ -27,7 +28,7 @@ func getWatchedRepos(user *models.User, private bool, listOptions models.ListOpt
 | 
				
			|||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return nil, err
 | 
								return nil, err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		repos[i] = watched.APIFormat(access)
 | 
							repos[i] = convert.ToRepo(watched, access)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return repos, nil
 | 
						return repos, nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1073,7 +1073,7 @@ func TestWebhook(ctx *context.Context) {
 | 
				
			|||||||
				},
 | 
									},
 | 
				
			||||||
			},
 | 
								},
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		Repo:   ctx.Repo.Repository.APIFormat(models.AccessModeNone),
 | 
							Repo:   convert.ToRepo(ctx.Repo.Repository, models.AccessModeNone),
 | 
				
			||||||
		Pusher: apiUser,
 | 
							Pusher: apiUser,
 | 
				
			||||||
		Sender: apiUser,
 | 
							Sender: apiUser,
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user