Move Repo APIFormat to convert package (#13787)
* Move Repo APIFormat to convert package * tweek
This commit is contained in:
		
							parent
							
								
									2b4a08e962
								
							
						
					
					
						commit
						7ac8a770e1
					
				
					 18 changed files with 201 additions and 193 deletions
				
			
		
							
								
								
									
										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, | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue