Skip to content

Commit c88e71c

Browse files
authored
Refactor functions to reduce repopath expose (#33892)
1 parent 0056fdb commit c88e71c

File tree

6 files changed

+25
-25
lines changed

6 files changed

+25
-25
lines changed

models/git/commit_status.go

+3-4
Original file line numberDiff line numberDiff line change
@@ -453,9 +453,8 @@ func NewCommitStatus(ctx context.Context, opts NewCommitStatusOptions) error {
453453
return fmt.Errorf("NewCommitStatus[nil, %s]: no repository specified", opts.SHA)
454454
}
455455

456-
repoPath := opts.Repo.RepoPath()
457456
if opts.Creator == nil {
458-
return fmt.Errorf("NewCommitStatus[%s, %s]: no user specified", repoPath, opts.SHA)
457+
return fmt.Errorf("NewCommitStatus[%s, %s]: no user specified", opts.Repo.FullName(), opts.SHA)
459458
}
460459

461460
ctx, committer, err := db.TxContext(ctx)
@@ -477,13 +476,13 @@ func NewCommitStatus(ctx context.Context, opts NewCommitStatusOptions) error {
477476
opts.CommitStatus.CreatorID = opts.Creator.ID
478477
opts.CommitStatus.RepoID = opts.Repo.ID
479478
opts.CommitStatus.Index = idx
480-
log.Debug("NewCommitStatus[%s, %s]: %d", repoPath, opts.SHA, opts.CommitStatus.Index)
479+
log.Debug("NewCommitStatus[%s, %s]: %d", opts.Repo.FullName(), opts.SHA, opts.CommitStatus.Index)
481480

482481
opts.CommitStatus.ContextHash = hashCommitStatusContext(opts.CommitStatus.Context)
483482

484483
// Insert new CommitStatus
485484
if _, err = db.GetEngine(ctx).Insert(opts.CommitStatus); err != nil {
486-
return fmt.Errorf("insert CommitStatus[%s, %s]: %w", repoPath, opts.SHA, err)
485+
return fmt.Errorf("insert CommitStatus[%s, %s]: %w", opts.Repo.FullName(), opts.SHA, err)
487486
}
488487

489488
return committer.Commit()

modules/indexer/stats/db.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,10 @@ func (db *DBIndexer) Index(id int64) error {
4949
commitID, err := gitRepo.GetBranchCommitID(repo.DefaultBranch)
5050
if err != nil {
5151
if git.IsErrBranchNotExist(err) || git.IsErrNotExist(err) || setting.IsInTesting {
52-
log.Debug("Unable to get commit ID for default branch %s in %s ... skipping this repository", repo.DefaultBranch, repo.RepoPath())
52+
log.Debug("Unable to get commit ID for default branch %s in %s ... skipping this repository", repo.DefaultBranch, repo.FullName())
5353
return nil
5454
}
55-
log.Error("Unable to get commit ID for default branch %s in %s. Error: %v", repo.DefaultBranch, repo.RepoPath(), err)
55+
log.Error("Unable to get commit ID for default branch %s in %s. Error: %v", repo.DefaultBranch, repo.FullName(), err)
5656
return err
5757
}
5858

@@ -65,17 +65,17 @@ func (db *DBIndexer) Index(id int64) error {
6565
stats, err := gitRepo.GetLanguageStats(commitID)
6666
if err != nil {
6767
if !setting.IsInTesting {
68-
log.Error("Unable to get language stats for ID %s for default branch %s in %s. Error: %v", commitID, repo.DefaultBranch, repo.RepoPath(), err)
68+
log.Error("Unable to get language stats for ID %s for default branch %s in %s. Error: %v", commitID, repo.DefaultBranch, repo.FullName(), err)
6969
}
7070
return err
7171
}
7272
err = repo_model.UpdateLanguageStats(ctx, repo, commitID, stats)
7373
if err != nil {
74-
log.Error("Unable to update language stats for ID %s for default branch %s in %s. Error: %v", commitID, repo.DefaultBranch, repo.RepoPath(), err)
74+
log.Error("Unable to update language stats for ID %s for default branch %s in %s. Error: %v", commitID, repo.DefaultBranch, repo.FullName(), err)
7575
return err
7676
}
7777

78-
log.Debug("DBIndexer completed language stats for ID %s for default branch %s in %s. stats count: %d", commitID, repo.DefaultBranch, repo.RepoPath(), len(stats))
78+
log.Debug("DBIndexer completed language stats for ID %s for default branch %s in %s. stats count: %d", commitID, repo.DefaultBranch, repo.FullName(), len(stats))
7979
return nil
8080
}
8181

modules/repository/commits.go

+7-6
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
"time"
1111

1212
"code.gitea.io/gitea/models/avatars"
13+
repo_model "code.gitea.io/gitea/models/repo"
1314
user_model "code.gitea.io/gitea/models/user"
1415
"code.gitea.io/gitea/modules/cache"
1516
"code.gitea.io/gitea/modules/git"
@@ -43,7 +44,7 @@ func NewPushCommits() *PushCommits {
4344
}
4445

4546
// ToAPIPayloadCommit converts a single PushCommit to an api.PayloadCommit object.
46-
func ToAPIPayloadCommit(ctx context.Context, emailUsers map[string]*user_model.User, repoPath, repoLink string, commit *PushCommit) (*api.PayloadCommit, error) {
47+
func ToAPIPayloadCommit(ctx context.Context, emailUsers map[string]*user_model.User, repo *repo_model.Repository, commit *PushCommit) (*api.PayloadCommit, error) {
4748
var err error
4849
authorUsername := ""
4950
author, ok := emailUsers[commit.AuthorEmail]
@@ -70,15 +71,15 @@ func ToAPIPayloadCommit(ctx context.Context, emailUsers map[string]*user_model.U
7071
committerUsername = committer.Name
7172
}
7273

73-
fileStatus, err := git.GetCommitFileStatus(ctx, repoPath, commit.Sha1)
74+
fileStatus, err := git.GetCommitFileStatus(ctx, repo.RepoPath(), commit.Sha1)
7475
if err != nil {
7576
return nil, fmt.Errorf("FileStatus [commit_sha1: %s]: %w", commit.Sha1, err)
7677
}
7778

7879
return &api.PayloadCommit{
7980
ID: commit.Sha1,
8081
Message: commit.Message,
81-
URL: fmt.Sprintf("%s/commit/%s", repoLink, url.PathEscape(commit.Sha1)),
82+
URL: fmt.Sprintf("%s/commit/%s", repo.HTMLURL(), url.PathEscape(commit.Sha1)),
8283
Author: &api.PayloadUser{
8384
Name: commit.AuthorName,
8485
Email: commit.AuthorEmail,
@@ -98,14 +99,14 @@ func ToAPIPayloadCommit(ctx context.Context, emailUsers map[string]*user_model.U
9899

99100
// ToAPIPayloadCommits converts a PushCommits object to api.PayloadCommit format.
100101
// It returns all converted commits and, if provided, the head commit or an error otherwise.
101-
func (pc *PushCommits) ToAPIPayloadCommits(ctx context.Context, repoPath, repoLink string) ([]*api.PayloadCommit, *api.PayloadCommit, error) {
102+
func (pc *PushCommits) ToAPIPayloadCommits(ctx context.Context, repo *repo_model.Repository) ([]*api.PayloadCommit, *api.PayloadCommit, error) {
102103
commits := make([]*api.PayloadCommit, len(pc.Commits))
103104
var headCommit *api.PayloadCommit
104105

105106
emailUsers := make(map[string]*user_model.User)
106107

107108
for i, commit := range pc.Commits {
108-
apiCommit, err := ToAPIPayloadCommit(ctx, emailUsers, repoPath, repoLink, commit)
109+
apiCommit, err := ToAPIPayloadCommit(ctx, emailUsers, repo, commit)
109110
if err != nil {
110111
return nil, nil, err
111112
}
@@ -117,7 +118,7 @@ func (pc *PushCommits) ToAPIPayloadCommits(ctx context.Context, repoPath, repoLi
117118
}
118119
if pc.HeadCommit != nil && headCommit == nil {
119120
var err error
120-
headCommit, err = ToAPIPayloadCommit(ctx, emailUsers, repoPath, repoLink, pc.HeadCommit)
121+
headCommit, err = ToAPIPayloadCommit(ctx, emailUsers, repo, pc.HeadCommit)
121122
if err != nil {
122123
return nil, nil, err
123124
}

modules/repository/commits_test.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -50,14 +50,14 @@ func TestPushCommits_ToAPIPayloadCommits(t *testing.T) {
5050
pushCommits.HeadCommit = &PushCommit{Sha1: "69554a6"}
5151

5252
repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 16})
53-
payloadCommits, headCommit, err := pushCommits.ToAPIPayloadCommits(git.DefaultContext, repo.RepoPath(), "/user2/repo16")
53+
payloadCommits, headCommit, err := pushCommits.ToAPIPayloadCommits(git.DefaultContext, repo)
5454
assert.NoError(t, err)
5555
assert.Len(t, payloadCommits, 3)
5656
assert.NotNil(t, headCommit)
5757

5858
assert.Equal(t, "69554a6", payloadCommits[0].ID)
5959
assert.Equal(t, "not signed commit", payloadCommits[0].Message)
60-
assert.Equal(t, "/user2/repo16/commit/69554a6", payloadCommits[0].URL)
60+
assert.Equal(t, "https://try.gitea.io/user2/repo16/commit/69554a6", payloadCommits[0].URL)
6161
assert.Equal(t, "User2", payloadCommits[0].Committer.Name)
6262
assert.Equal(t, "user2", payloadCommits[0].Committer.UserName)
6363
assert.Equal(t, "User2", payloadCommits[0].Author.Name)
@@ -68,7 +68,7 @@ func TestPushCommits_ToAPIPayloadCommits(t *testing.T) {
6868

6969
assert.Equal(t, "27566bd", payloadCommits[1].ID)
7070
assert.Equal(t, "good signed commit (with not yet validated email)", payloadCommits[1].Message)
71-
assert.Equal(t, "/user2/repo16/commit/27566bd", payloadCommits[1].URL)
71+
assert.Equal(t, "https://try.gitea.io/user2/repo16/commit/27566bd", payloadCommits[1].URL)
7272
assert.Equal(t, "User2", payloadCommits[1].Committer.Name)
7373
assert.Equal(t, "user2", payloadCommits[1].Committer.UserName)
7474
assert.Equal(t, "User2", payloadCommits[1].Author.Name)
@@ -79,7 +79,7 @@ func TestPushCommits_ToAPIPayloadCommits(t *testing.T) {
7979

8080
assert.Equal(t, "5099b81", payloadCommits[2].ID)
8181
assert.Equal(t, "good signed commit", payloadCommits[2].Message)
82-
assert.Equal(t, "/user2/repo16/commit/5099b81", payloadCommits[2].URL)
82+
assert.Equal(t, "https://try.gitea.io/user2/repo16/commit/5099b81", payloadCommits[2].URL)
8383
assert.Equal(t, "User2", payloadCommits[2].Committer.Name)
8484
assert.Equal(t, "user2", payloadCommits[2].Committer.UserName)
8585
assert.Equal(t, "User2", payloadCommits[2].Author.Name)
@@ -90,7 +90,7 @@ func TestPushCommits_ToAPIPayloadCommits(t *testing.T) {
9090

9191
assert.Equal(t, "69554a6", headCommit.ID)
9292
assert.Equal(t, "not signed commit", headCommit.Message)
93-
assert.Equal(t, "/user2/repo16/commit/69554a6", headCommit.URL)
93+
assert.Equal(t, "https://try.gitea.io/user2/repo16/commit/69554a6", headCommit.URL)
9494
assert.Equal(t, "User2", headCommit.Committer.Name)
9595
assert.Equal(t, "user2", headCommit.Committer.UserName)
9696
assert.Equal(t, "User2", headCommit.Author.Name)

services/actions/notifier.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -532,7 +532,7 @@ func (n *actionsNotifier) PushCommits(ctx context.Context, pusher *user_model.Us
532532
ctx = withMethod(ctx, "PushCommits")
533533

534534
apiPusher := convert.ToUser(ctx, pusher, nil)
535-
apiCommits, apiHeadCommit, err := commits.ToAPIPayloadCommits(ctx, repo.RepoPath(), repo.HTMLURL())
535+
apiCommits, apiHeadCommit, err := commits.ToAPIPayloadCommits(ctx, repo)
536536
if err != nil {
537537
log.Error("commits.ToAPIPayloadCommits failed: %v", err)
538538
return
@@ -593,7 +593,7 @@ func (n *actionsNotifier) SyncPushCommits(ctx context.Context, pusher *user_mode
593593
ctx = withMethod(ctx, "SyncPushCommits")
594594

595595
apiPusher := convert.ToUser(ctx, pusher, nil)
596-
apiCommits, apiHeadCommit, err := commits.ToAPIPayloadCommits(ctx, repo.RepoPath(), repo.HTMLURL())
596+
apiCommits, apiHeadCommit, err := commits.ToAPIPayloadCommits(ctx, repo)
597597
if err != nil {
598598
log.Error("commits.ToAPIPayloadCommits failed: %v", err)
599599
return

services/webhook/notifier.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -606,7 +606,7 @@ func (m *webhookNotifier) IssueChangeMilestone(ctx context.Context, doer *user_m
606606

607607
func (m *webhookNotifier) PushCommits(ctx context.Context, pusher *user_model.User, repo *repo_model.Repository, opts *repository.PushUpdateOptions, commits *repository.PushCommits) {
608608
apiPusher := convert.ToUser(ctx, pusher, nil)
609-
apiCommits, apiHeadCommit, err := commits.ToAPIPayloadCommits(ctx, repo.RepoPath(), repo.HTMLURL())
609+
apiCommits, apiHeadCommit, err := commits.ToAPIPayloadCommits(ctx, repo)
610610
if err != nil {
611611
log.Error("commits.ToAPIPayloadCommits failed: %v", err)
612612
return
@@ -845,7 +845,7 @@ func (m *webhookNotifier) DeleteRelease(ctx context.Context, doer *user_model.Us
845845

846846
func (m *webhookNotifier) SyncPushCommits(ctx context.Context, pusher *user_model.User, repo *repo_model.Repository, opts *repository.PushUpdateOptions, commits *repository.PushCommits) {
847847
apiPusher := convert.ToUser(ctx, pusher, nil)
848-
apiCommits, apiHeadCommit, err := commits.ToAPIPayloadCommits(ctx, repo.RepoPath(), repo.HTMLURL())
848+
apiCommits, apiHeadCommit, err := commits.ToAPIPayloadCommits(ctx, repo)
849849
if err != nil {
850850
log.Error("commits.ToAPIPayloadCommits failed: %v", err)
851851
return
@@ -869,7 +869,7 @@ func (m *webhookNotifier) SyncPushCommits(ctx context.Context, pusher *user_mode
869869

870870
func (m *webhookNotifier) CreateCommitStatus(ctx context.Context, repo *repo_model.Repository, commit *repository.PushCommit, sender *user_model.User, status *git_model.CommitStatus) {
871871
apiSender := convert.ToUser(ctx, sender, nil)
872-
apiCommit, err := repository.ToAPIPayloadCommit(ctx, map[string]*user_model.User{}, repo.RepoPath(), repo.HTMLURL(), commit)
872+
apiCommit, err := repository.ToAPIPayloadCommit(ctx, map[string]*user_model.User{}, repo, commit)
873873
if err != nil {
874874
log.Error("commits.ToAPIPayloadCommits failed: %v", err)
875875
return

0 commit comments

Comments
 (0)