Skip to content

Commit 5e20f4d

Browse files
committed
Remove ctx in the git repository struct
1 parent 03fce8f commit 5e20f4d

File tree

221 files changed

+1431
-1384
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

221 files changed

+1431
-1384
lines changed

cmd/admin.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ func runRepoSyncReleases(ctx context.Context, _ *cli.Command) error {
122122
log.Trace("Processing next %d repos of %d", len(repos), count)
123123
for _, repo := range repos {
124124
log.Trace("Synchronizing repo %s with path %s", repo.FullName(), repo.RelativePath())
125-
gitRepo, err := gitrepo.OpenRepository(ctx, repo)
125+
gitRepo, err := gitrepo.OpenRepository(repo)
126126
if err != nil {
127127
log.Warn("OpenRepository: %v", err)
128128
continue

models/activities/repo_activity.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ func GetActivityStats(ctx context.Context, repo *repo_model.Repository, timeFrom
7474
}
7575
defer closer.Close()
7676

77-
code, err := gitRepo.GetCodeActivityStats(timeFrom, repo.DefaultBranch)
77+
code, err := gitRepo.GetCodeActivityStats(ctx, timeFrom, repo.DefaultBranch)
7878
if err != nil {
7979
return nil, fmt.Errorf("FillFromGit: %w", err)
8080
}
@@ -91,7 +91,7 @@ func GetActivityStatsTopAuthors(ctx context.Context, repo *repo_model.Repository
9191
}
9292
defer closer.Close()
9393

94-
code, err := gitRepo.GetCodeActivityStats(timeFrom, "")
94+
code, err := gitRepo.GetCodeActivityStats(ctx, timeFrom, "")
9595
if err != nil {
9696
return nil, fmt.Errorf("FillFromGit: %w", err)
9797
}

models/git/commit_status_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -186,11 +186,11 @@ func TestFindRepoRecentCommitStatusContexts(t *testing.T) {
186186

187187
repo2 := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 2})
188188
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2})
189-
gitRepo, err := gitrepo.OpenRepository(t.Context(), repo2)
189+
gitRepo, err := gitrepo.OpenRepository(repo2)
190190
assert.NoError(t, err)
191191
defer gitRepo.Close()
192192

193-
commit, err := gitRepo.GetBranchCommit(repo2.DefaultBranch)
193+
commit, err := gitRepo.GetBranchCommit(t.Context(), repo2.DefaultBranch)
194194
assert.NoError(t, err)
195195

196196
defer func() {

models/migrations/v1_14/v156.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -109,14 +109,14 @@ func FixPublisherIDforTagReleases(ctx context.Context, x *xorm.Engine) error {
109109
return err
110110
}
111111
}
112-
gitRepo, err = git.OpenRepository(ctx, repoPath(repo.OwnerName, repo.Name))
112+
gitRepo, err = git.OpenRepository(repoPath(repo.OwnerName, repo.Name))
113113
if err != nil {
114114
log.Error("Error whilst opening git repo for [%d]%s/%s. Error: %v", repo.ID, repo.OwnerName, repo.Name, err)
115115
return err
116116
}
117117
}
118118

119-
commit, err := gitRepo.GetTagCommit(release.TagName)
119+
commit, err := gitRepo.GetTagCommit(ctx, release.TagName)
120120
if err != nil {
121121
if git.IsErrNotExist(err) {
122122
log.Warn("Unable to find commit %s for Tag: %s in [%d]%s/%s. Cannot update publisher ID.", err.(git.ErrNotExist).ID, release.TagName, repo.ID, repo.OwnerName, repo.Name)
@@ -128,7 +128,7 @@ func FixPublisherIDforTagReleases(ctx context.Context, x *xorm.Engine) error {
128128

129129
if commit.Author.Email == "" {
130130
log.Warn("Tag: %s in Repo[%d]%s/%s does not have a tagger.", release.TagName, repo.ID, repo.OwnerName, repo.Name)
131-
commit, err = gitRepo.GetCommit(commit.ID.String())
131+
commit, err = gitRepo.GetCommit(ctx, commit.ID.String())
132132
if err != nil {
133133
if git.IsErrNotExist(err) {
134134
log.Warn("Unable to find commit %s for Tag: %s in [%d]%s/%s. Cannot update publisher ID.", err.(git.ErrNotExist).ID, release.TagName, repo.ID, repo.OwnerName, repo.Name)

models/migrations/v1_9/v82.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,15 +99,15 @@ func FixReleaseSha1OnReleaseTable(ctx context.Context, x *xorm.Engine) error {
9999
userCache[repo.OwnerID] = user
100100
}
101101

102-
gitRepo, err = git.OpenRepository(ctx, RepoPath(user.Name, repo.Name))
102+
gitRepo, err = git.OpenRepository(RepoPath(user.Name, repo.Name))
103103
if err != nil {
104104
return err
105105
}
106106
defer gitRepo.Close()
107107
gitRepoCache[release.RepoID] = gitRepo
108108
}
109109

110-
release.Sha1, err = gitRepo.GetTagCommitID(release.TagName)
110+
release.Sha1, err = gitRepo.GetTagCommitID(ctx, release.TagName)
111111
if err != nil && !git.IsErrNotExist(err) {
112112
return err
113113
}

models/renderhelper/commit_checker.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ func (c *commitChecker) IsCommitIDExisting(commitID string) bool {
4747
c.gitRepo, c.gitRepoCloser = r, closer
4848
}
4949

50-
exist = c.gitRepo.IsReferenceExist(commitID) // Don't use IsObjectExist since it doesn't support short hashes with gogit edition.
50+
exist = c.gitRepo.IsReferenceExist(c.ctx, commitID) // Don't use IsObjectExist since it doesn't support short hashes with gogit edition.
5151
c.commitCache[commitID] = exist
5252
return exist
5353
}

modules/actions/workflows.go

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ package actions
55

66
import (
77
"bytes"
8+
"context"
89
"io"
910
"slices"
1011
"strings"
@@ -44,12 +45,12 @@ func IsWorkflow(path string) bool {
4445
return strings.HasPrefix(path, ".gitea/workflows") || strings.HasPrefix(path, ".github/workflows")
4546
}
4647

47-
func ListWorkflows(commit *git.Commit) (string, git.Entries, error) {
48+
func ListWorkflows(ctx context.Context, commit *git.Commit) (string, git.Entries, error) {
4849
rpath := ".gitea/workflows"
49-
tree, err := commit.SubTree(rpath)
50+
tree, err := commit.SubTree(ctx, rpath)
5051
if _, ok := err.(git.ErrNotExist); ok {
5152
rpath = ".github/workflows"
52-
tree, err = commit.SubTree(rpath)
53+
tree, err = commit.SubTree(ctx, rpath)
5354
}
5455
if _, ok := err.(git.ErrNotExist); ok {
5556
return "", nil, nil
@@ -58,7 +59,7 @@ func ListWorkflows(commit *git.Commit) (string, git.Entries, error) {
5859
return "", nil, err
5960
}
6061

61-
entries, err := tree.ListEntriesRecursiveFast()
62+
entries, err := tree.ListEntriesRecursiveFast(ctx)
6263
if err != nil {
6364
return "", nil, err
6465
}
@@ -72,8 +73,8 @@ func ListWorkflows(commit *git.Commit) (string, git.Entries, error) {
7273
return rpath, ret, nil
7374
}
7475

75-
func GetContentFromEntry(entry *git.TreeEntry) ([]byte, error) {
76-
f, err := entry.Blob().DataAsync()
76+
func GetContentFromEntry(ctx context.Context, entry *git.TreeEntry) ([]byte, error) {
77+
f, err := entry.Blob().DataAsync(ctx)
7778
if err != nil {
7879
return nil, err
7980
}
@@ -99,21 +100,22 @@ func GetEventsFromContent(content []byte) ([]*jobparser.Event, error) {
99100
}
100101

101102
func DetectWorkflows(
103+
ctx context.Context,
102104
gitRepo *git.Repository,
103105
commit *git.Commit,
104106
triggedEvent webhook_module.HookEventType,
105107
payload api.Payloader,
106108
detectSchedule bool,
107109
) ([]*DetectedWorkflow, []*DetectedWorkflow, error) {
108-
_, entries, err := ListWorkflows(commit)
110+
_, entries, err := ListWorkflows(ctx, commit)
109111
if err != nil {
110112
return nil, nil, err
111113
}
112114

113115
workflows := make([]*DetectedWorkflow, 0, len(entries))
114116
schedules := make([]*DetectedWorkflow, 0, len(entries))
115117
for _, entry := range entries {
116-
content, err := GetContentFromEntry(entry)
118+
content, err := GetContentFromEntry(ctx, entry)
117119
if err != nil {
118120
return nil, nil, err
119121
}
@@ -135,7 +137,7 @@ func DetectWorkflows(
135137
}
136138
schedules = append(schedules, dwf)
137139
}
138-
} else if detectMatched(gitRepo, commit, triggedEvent, payload, evt) {
140+
} else if detectMatched(ctx, gitRepo, commit, triggedEvent, payload, evt) {
139141
dwf := &DetectedWorkflow{
140142
EntryName: entry.Name(),
141143
TriggerEvent: evt,
@@ -149,15 +151,15 @@ func DetectWorkflows(
149151
return workflows, schedules, nil
150152
}
151153

152-
func DetectScheduledWorkflows(gitRepo *git.Repository, commit *git.Commit) ([]*DetectedWorkflow, error) {
153-
_, entries, err := ListWorkflows(commit)
154+
func DetectScheduledWorkflows(ctx context.Context, gitRepo *git.Repository, commit *git.Commit) ([]*DetectedWorkflow, error) {
155+
_, entries, err := ListWorkflows(ctx, commit)
154156
if err != nil {
155157
return nil, err
156158
}
157159

158160
wfs := make([]*DetectedWorkflow, 0, len(entries))
159161
for _, entry := range entries {
160-
content, err := GetContentFromEntry(entry)
162+
content, err := GetContentFromEntry(ctx, entry)
161163
if err != nil {
162164
return nil, err
163165
}
@@ -184,7 +186,7 @@ func DetectScheduledWorkflows(gitRepo *git.Repository, commit *git.Commit) ([]*D
184186
return wfs, nil
185187
}
186188

187-
func detectMatched(gitRepo *git.Repository, commit *git.Commit, triggedEvent webhook_module.HookEventType, payload api.Payloader, evt *jobparser.Event) bool {
189+
func detectMatched(ctx context.Context, gitRepo *git.Repository, commit *git.Commit, triggedEvent webhook_module.HookEventType, payload api.Payloader, evt *jobparser.Event) bool {
188190
if !canGithubEventMatch(evt.Name, triggedEvent) {
189191
return false
190192
}
@@ -204,7 +206,7 @@ func detectMatched(gitRepo *git.Repository, commit *git.Commit, triggedEvent web
204206

205207
case // push
206208
webhook_module.HookEventPush:
207-
return matchPushEvent(commit, payload.(*api.PushPayload), evt)
209+
return matchPushEvent(ctx, commit, payload.(*api.PushPayload), evt)
208210

209211
case // issues
210212
webhook_module.HookEventIssues,
@@ -227,7 +229,7 @@ func detectMatched(gitRepo *git.Repository, commit *git.Commit, triggedEvent web
227229
webhook_module.HookEventPullRequestLabel,
228230
webhook_module.HookEventPullRequestReviewRequest,
229231
webhook_module.HookEventPullRequestMilestone:
230-
return matchPullRequestEvent(gitRepo, commit, payload.(*api.PullRequestPayload), evt)
232+
return matchPullRequestEvent(ctx, gitRepo, commit, payload.(*api.PullRequestPayload), evt)
231233

232234
case // pull_request_review
233235
webhook_module.HookEventPullRequestReviewApproved,
@@ -256,7 +258,7 @@ func detectMatched(gitRepo *git.Repository, commit *git.Commit, triggedEvent web
256258
}
257259
}
258260

259-
func matchPushEvent(commit *git.Commit, pushPayload *api.PushPayload, evt *jobparser.Event) bool {
261+
func matchPushEvent(ctx context.Context, commit *git.Commit, pushPayload *api.PushPayload, evt *jobparser.Event) bool {
260262
// with no special filter parameters
261263
if len(evt.Acts()) == 0 {
262264
return true
@@ -322,7 +324,7 @@ func matchPushEvent(commit *git.Commit, pushPayload *api.PushPayload, evt *jobpa
322324
matchTimes++
323325
break
324326
}
325-
filesChanged, err := commit.GetFilesChangedSinceCommit(pushPayload.Before)
327+
filesChanged, err := commit.GetFilesChangedSinceCommit(ctx, pushPayload.Before)
326328
if err != nil {
327329
log.Error("GetFilesChangedSinceCommit [commit_sha1: %s]: %v", commit.ID.String(), err)
328330
} else {
@@ -339,7 +341,7 @@ func matchPushEvent(commit *git.Commit, pushPayload *api.PushPayload, evt *jobpa
339341
matchTimes++
340342
break
341343
}
342-
filesChanged, err := commit.GetFilesChangedSinceCommit(pushPayload.Before)
344+
filesChanged, err := commit.GetFilesChangedSinceCommit(ctx, pushPayload.Before)
343345
if err != nil {
344346
log.Error("GetFilesChangedSinceCommit [commit_sha1: %s]: %v", commit.ID.String(), err)
345347
} else {
@@ -410,7 +412,7 @@ func matchIssuesEvent(issuePayload *api.IssuePayload, evt *jobparser.Event) bool
410412
return matchTimes == len(evt.Acts())
411413
}
412414

413-
func matchPullRequestEvent(gitRepo *git.Repository, commit *git.Commit, prPayload *api.PullRequestPayload, evt *jobparser.Event) bool {
415+
func matchPullRequestEvent(ctx context.Context, gitRepo *git.Repository, commit *git.Commit, prPayload *api.PullRequestPayload, evt *jobparser.Event) bool {
414416
acts := evt.Acts()
415417
activityTypeMatched := false
416418
matchTimes := 0
@@ -454,7 +456,7 @@ func matchPullRequestEvent(gitRepo *git.Repository, commit *git.Commit, prPayloa
454456
err error
455457
)
456458
if evt.Name == GithubEventPullRequestTarget && (len(acts["paths"]) > 0 || len(acts["paths-ignore"]) > 0) {
457-
headCommit, err = gitRepo.GetCommit(prPayload.PullRequest.Head.Sha)
459+
headCommit, err = gitRepo.GetCommit(ctx, prPayload.PullRequest.Head.Sha)
458460
if err != nil {
459461
log.Error("GetCommit [ref: %s]: %v", prPayload.PullRequest.Head.Sha, err)
460462
return false
@@ -486,7 +488,7 @@ func matchPullRequestEvent(gitRepo *git.Repository, commit *git.Commit, prPayloa
486488
matchTimes++
487489
}
488490
case "paths":
489-
filesChanged, err := headCommit.GetFilesChangedSinceCommit(prPayload.PullRequest.MergeBase)
491+
filesChanged, err := headCommit.GetFilesChangedSinceCommit(ctx, prPayload.PullRequest.MergeBase)
490492
if err != nil {
491493
log.Error("GetFilesChangedSinceCommit [commit_sha1: %s]: %v", headCommit.ID.String(), err)
492494
} else {
@@ -499,7 +501,7 @@ func matchPullRequestEvent(gitRepo *git.Repository, commit *git.Commit, prPayloa
499501
}
500502
}
501503
case "paths-ignore":
502-
filesChanged, err := headCommit.GetFilesChangedSinceCommit(prPayload.PullRequest.MergeBase)
504+
filesChanged, err := headCommit.GetFilesChangedSinceCommit(ctx, prPayload.PullRequest.MergeBase)
503505
if err != nil {
504506
log.Error("GetFilesChangedSinceCommit [commit_sha1: %s]: %v", headCommit.ID.String(), err)
505507
} else {

modules/actions/workflows_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ func TestDetectMatched(t *testing.T) {
150150
evts, err := GetEventsFromContent([]byte(tc.yamlOn))
151151
assert.NoError(t, err)
152152
assert.Len(t, evts, 1)
153-
assert.Equal(t, tc.expected, detectMatched(nil, tc.commit, tc.triggedEvent, tc.payload, evts[0]))
153+
assert.Equal(t, tc.expected, detectMatched(t.Context(), nil, tc.commit, tc.triggedEvent, tc.payload, evts[0]))
154154
})
155155
}
156156
}

modules/cache/cache.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
package cache
55

66
import (
7+
"context"
78
"encoding/hex"
89
"errors"
910
"fmt"
@@ -96,9 +97,9 @@ func GetString(key string, getFunc func() (string, error)) (string, error) {
9697
}
9798

9899
// GetInt64 returns key value from cache with callback when no key exists in cache
99-
func GetInt64(key string, getFunc func() (int64, error)) (int64, error) {
100+
func GetInt64(ctx context.Context, key string, getFunc func(ctx context.Context) (int64, error)) (int64, error) {
100101
s, err := GetString(key, func() (string, error) {
101-
v, err := getFunc()
102+
v, err := getFunc(ctx)
102103
return strconv.FormatInt(v, 10), err
103104
})
104105
if err != nil {

modules/cache/cache_test.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
package cache
55

66
import (
7+
"context"
78
"errors"
89
"testing"
910
"time"
@@ -92,32 +93,32 @@ func TestGetString(t *testing.T) {
9293
func TestGetInt64(t *testing.T) {
9394
createTestCache()
9495

95-
data, err := GetInt64("key", func() (int64, error) {
96+
data, err := GetInt64(t.Context(), "key", func(_ context.Context) (int64, error) {
9697
return 0, errors.New("some error")
9798
})
9899
assert.Error(t, err)
99100
assert.EqualValues(t, 0, data)
100101

101-
data, err = GetInt64("key", func() (int64, error) {
102+
data, err = GetInt64(t.Context(), "key", func(_ context.Context) (int64, error) {
102103
return 0, nil
103104
})
104105
assert.NoError(t, err)
105106
assert.EqualValues(t, 0, data)
106107

107-
data, err = GetInt64("key", func() (int64, error) {
108+
data, err = GetInt64(t.Context(), "key", func(_ context.Context) (int64, error) {
108109
return 100, nil
109110
})
110111
assert.NoError(t, err)
111112
assert.EqualValues(t, 0, data)
112113
Remove("key")
113114

114-
data, err = GetInt64("key", func() (int64, error) {
115+
data, err = GetInt64(t.Context(), "key", func(_ context.Context) (int64, error) {
115116
return 100, nil
116117
})
117118
assert.NoError(t, err)
118119
assert.EqualValues(t, 100, data)
119120

120-
data, err = GetInt64("key", func() (int64, error) {
121+
data, err = GetInt64(t.Context(), "key", func(_ context.Context) (int64, error) {
121122
return 0, errors.New("some error")
122123
})
123124
assert.NoError(t, err)

0 commit comments

Comments
 (0)