mirror of
https://github.com/go-gitea/gitea.git
synced 2026-09-08 22:13:26 +09:00
refactor: remove Ctx field from git.Repository (#38500)
This commit is contained in:
@@ -28,7 +28,7 @@ type GenerateReleaseNotesOptions struct {
|
||||
|
||||
// GenerateReleaseNotes builds the Markdown snippet for release notes.
|
||||
func GenerateReleaseNotes(ctx context.Context, repo *repo_model.Repository, gitRepo *git.Repository, opts GenerateReleaseNotesOptions) (string, error) {
|
||||
headCommit, err := resolveHeadCommit(gitRepo, opts.TagName, opts.TagTarget)
|
||||
headCommit, err := resolveHeadCommit(ctx, gitRepo, opts.TagName, opts.TagTarget)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
@@ -40,7 +40,7 @@ func GenerateReleaseNotes(ctx context.Context, repo *repo_model.Repository, gitR
|
||||
|
||||
var baseCommitID git.RefName
|
||||
if opts.PreviousTag != "" {
|
||||
baseCommit, err := gitRepo.GetCommit(opts.PreviousTag)
|
||||
baseCommit, err := gitRepo.GetCommit(ctx, opts.PreviousTag)
|
||||
if err != nil {
|
||||
return "", util.ErrorWrapTranslatable(util.ErrNotExist, "repo.release.generate_notes_tag_not_found", opts.PreviousTag)
|
||||
}
|
||||
@@ -49,7 +49,7 @@ func GenerateReleaseNotes(ctx context.Context, repo *repo_model.Repository, gitR
|
||||
return "", util.ErrorWrapTranslatable(util.ErrNotExist, "repo.release.generate_notes_tag_not_found", opts.TagName)
|
||||
}
|
||||
|
||||
commits, err := gitRepo.CommitsBetween(headCommit.ID.RefName(), baseCommitID, -1)
|
||||
commits, err := gitRepo.CommitsBetween(ctx, headCommit.ID.RefName(), baseCommitID, -1)
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("CommitsBetween: %w", err)
|
||||
}
|
||||
@@ -85,13 +85,13 @@ func repoReleaseIsEmpty(ctx context.Context, repoID int64) (bool, error) {
|
||||
return count == 0, nil
|
||||
}
|
||||
|
||||
func resolveHeadCommit(gitRepo *git.Repository, tagName, tagTarget string) (*git.Commit, error) {
|
||||
func resolveHeadCommit(ctx context.Context, gitRepo *git.Repository, tagName, tagTarget string) (*git.Commit, error) {
|
||||
ref := tagName
|
||||
if !gitRepo.IsTagExist(tagName) {
|
||||
if !gitRepo.IsTagExist(ctx, tagName) {
|
||||
ref = tagTarget
|
||||
}
|
||||
|
||||
commit, err := gitRepo.GetCommit(ref)
|
||||
commit, err := gitRepo.GetCommit(ctx, ref)
|
||||
if err != nil {
|
||||
return nil, util.ErrorWrapTranslatable(util.ErrNotExist, "repo.release.generate_notes_target_not_found", ref)
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ func TestGenerateReleaseNotes(t *testing.T) {
|
||||
|
||||
t.Run("ChangeLogsWithPRs", func(t *testing.T) {
|
||||
repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1})
|
||||
gitRepo, err := gitrepo.OpenRepository(t.Context(), repo)
|
||||
gitRepo, err := gitrepo.OpenRepository(repo)
|
||||
require.NoError(t, err)
|
||||
t.Cleanup(func() { gitRepo.Close() })
|
||||
|
||||
@@ -52,7 +52,7 @@ func TestGenerateReleaseNotes(t *testing.T) {
|
||||
|
||||
t.Run("NoPreviousTag", func(t *testing.T) {
|
||||
repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 16})
|
||||
gitRepo, err := gitrepo.OpenRepository(t.Context(), repo)
|
||||
gitRepo, err := gitrepo.OpenRepository(repo)
|
||||
require.NoError(t, err)
|
||||
t.Cleanup(func() { gitRepo.Close() })
|
||||
|
||||
@@ -83,7 +83,7 @@ func TestGenerateReleaseNotes(t *testing.T) {
|
||||
|
||||
t.Run("EmptyPreviousTagWithExistingTags", func(t *testing.T) {
|
||||
repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1})
|
||||
gitRepo, err := gitrepo.OpenRepository(t.Context(), repo)
|
||||
gitRepo, err := gitrepo.OpenRepository(repo)
|
||||
require.NoError(t, err)
|
||||
t.Cleanup(func() { gitRepo.Close() })
|
||||
|
||||
|
||||
+12
-12
@@ -103,13 +103,13 @@ func createTag(ctx context.Context, gitRepo *git.Repository, rel *repo_model.Rel
|
||||
}
|
||||
}
|
||||
|
||||
commit, err := gitRepo.GetCommit(rel.Target)
|
||||
commit, err := gitRepo.GetCommit(ctx, rel.Target)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
|
||||
if len(msg) > 0 {
|
||||
if err = gitRepo.CreateAnnotatedTag(rel.TagName, msg, commit.ID.String()); err != nil {
|
||||
if err = gitRepo.CreateAnnotatedTag(ctx, rel.TagName, msg, commit.ID.String()); err != nil {
|
||||
if strings.Contains(err.Error(), "is not a valid tag name") {
|
||||
return false, ErrInvalidTagName{
|
||||
TagName: rel.TagName,
|
||||
@@ -117,7 +117,7 @@ func createTag(ctx context.Context, gitRepo *git.Repository, rel *repo_model.Rel
|
||||
}
|
||||
return false, err
|
||||
}
|
||||
} else if err = gitRepo.CreateTag(rel.TagName, commit.ID.String()); err != nil {
|
||||
} else if err = gitRepo.CreateTag(ctx, rel.TagName, commit.ID.String()); err != nil {
|
||||
if strings.Contains(err.Error(), "is not a valid tag name") {
|
||||
return false, ErrInvalidTagName{
|
||||
TagName: rel.TagName,
|
||||
@@ -144,7 +144,7 @@ func createTag(ctx context.Context, gitRepo *git.Repository, rel *repo_model.Rel
|
||||
notify_service.CreateRef(ctx, rel.Publisher, rel.Repo, refFullName, commit.ID.String())
|
||||
rel.CreatedUnix = timeutil.TimeStampNow()
|
||||
}
|
||||
commit, err := gitRepo.GetTagCommit(rel.TagName)
|
||||
commit, err := gitRepo.GetTagCommit(ctx, rel.TagName)
|
||||
if err != nil {
|
||||
return false, fmt.Errorf("GetTagCommit: %w", err)
|
||||
}
|
||||
@@ -168,8 +168,8 @@ func createTag(ctx context.Context, gitRepo *git.Repository, rel *repo_model.Rel
|
||||
}
|
||||
|
||||
// CreateRelease creates a new release of repository.
|
||||
func CreateRelease(gitRepo *git.Repository, rel *repo_model.Release, attachmentUUIDs []string, msg string) error {
|
||||
has, err := repo_model.IsReleaseExist(gitRepo.Ctx, rel.RepoID, rel.TagName)
|
||||
func CreateRelease(ctx context.Context, gitRepo *git.Repository, rel *repo_model.Release, attachmentUUIDs []string, msg string) error {
|
||||
has, err := repo_model.IsReleaseExist(ctx, rel.RepoID, rel.TagName)
|
||||
if err != nil {
|
||||
return err
|
||||
} else if has {
|
||||
@@ -178,22 +178,22 @@ func CreateRelease(gitRepo *git.Repository, rel *repo_model.Release, attachmentU
|
||||
}
|
||||
}
|
||||
|
||||
if _, err = createTag(gitRepo.Ctx, gitRepo, rel, msg); err != nil {
|
||||
if _, err = createTag(ctx, gitRepo, rel, msg); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
rel.Title = util.EllipsisDisplayString(rel.Title, 255)
|
||||
rel.LowerTagName = strings.ToLower(rel.TagName)
|
||||
if err = db.Insert(gitRepo.Ctx, rel); err != nil {
|
||||
if err = db.Insert(ctx, rel); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err = repo_model.AddReleaseAttachments(gitRepo.Ctx, rel.ID, attachmentUUIDs); err != nil {
|
||||
if err = repo_model.AddReleaseAttachments(ctx, rel.ID, attachmentUUIDs); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if !rel.IsDraft {
|
||||
notify_service.NewRelease(gitRepo.Ctx, rel)
|
||||
notify_service.NewRelease(ctx, rel)
|
||||
}
|
||||
|
||||
return nil
|
||||
@@ -352,10 +352,10 @@ func UpdateRelease(ctx context.Context, doer *user_model.User, gitRepo *git.Repo
|
||||
|
||||
if !rel.IsDraft {
|
||||
if !isTagCreated && !isConvertedFromTag {
|
||||
notify_service.UpdateRelease(gitRepo.Ctx, doer, rel)
|
||||
notify_service.UpdateRelease(ctx, doer, rel)
|
||||
return nil
|
||||
}
|
||||
notify_service.NewRelease(gitRepo.Ctx, rel)
|
||||
notify_service.NewRelease(ctx, rel)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -33,11 +33,11 @@ func TestRelease_Create(t *testing.T) {
|
||||
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2})
|
||||
repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1})
|
||||
|
||||
gitRepo, err := gitrepo.OpenRepository(t.Context(), repo)
|
||||
gitRepo, err := gitrepo.OpenRepository(repo)
|
||||
assert.NoError(t, err)
|
||||
defer gitRepo.Close()
|
||||
|
||||
assert.NoError(t, CreateRelease(gitRepo, &repo_model.Release{
|
||||
assert.NoError(t, CreateRelease(t.Context(), gitRepo, &repo_model.Release{
|
||||
RepoID: repo.ID,
|
||||
Repo: repo,
|
||||
PublisherID: user.ID,
|
||||
@@ -51,7 +51,7 @@ func TestRelease_Create(t *testing.T) {
|
||||
IsTag: false,
|
||||
}, nil, ""))
|
||||
|
||||
assert.NoError(t, CreateRelease(gitRepo, &repo_model.Release{
|
||||
assert.NoError(t, CreateRelease(t.Context(), gitRepo, &repo_model.Release{
|
||||
RepoID: repo.ID,
|
||||
Repo: repo,
|
||||
PublisherID: user.ID,
|
||||
@@ -65,7 +65,7 @@ func TestRelease_Create(t *testing.T) {
|
||||
IsTag: false,
|
||||
}, nil, ""))
|
||||
|
||||
assert.NoError(t, CreateRelease(gitRepo, &repo_model.Release{
|
||||
assert.NoError(t, CreateRelease(t.Context(), gitRepo, &repo_model.Release{
|
||||
RepoID: repo.ID,
|
||||
Repo: repo,
|
||||
PublisherID: user.ID,
|
||||
@@ -79,7 +79,7 @@ func TestRelease_Create(t *testing.T) {
|
||||
IsTag: false,
|
||||
}, nil, ""))
|
||||
|
||||
assert.NoError(t, CreateRelease(gitRepo, &repo_model.Release{
|
||||
assert.NoError(t, CreateRelease(t.Context(), gitRepo, &repo_model.Release{
|
||||
RepoID: repo.ID,
|
||||
Repo: repo,
|
||||
PublisherID: user.ID,
|
||||
@@ -93,7 +93,7 @@ func TestRelease_Create(t *testing.T) {
|
||||
IsTag: false,
|
||||
}, nil, ""))
|
||||
|
||||
assert.NoError(t, CreateRelease(gitRepo, &repo_model.Release{
|
||||
assert.NoError(t, CreateRelease(t.Context(), gitRepo, &repo_model.Release{
|
||||
RepoID: repo.ID,
|
||||
Repo: repo,
|
||||
PublisherID: user.ID,
|
||||
@@ -129,7 +129,7 @@ func TestRelease_Create(t *testing.T) {
|
||||
IsPrerelease: false,
|
||||
IsTag: true,
|
||||
}
|
||||
assert.NoError(t, CreateRelease(gitRepo, &release, []string{attach.UUID}, "test"))
|
||||
assert.NoError(t, CreateRelease(t.Context(), gitRepo, &release, []string{attach.UUID}, "test"))
|
||||
}
|
||||
|
||||
func TestRelease_Update(t *testing.T) {
|
||||
@@ -138,7 +138,7 @@ func TestRelease_Update(t *testing.T) {
|
||||
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2})
|
||||
repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1})
|
||||
|
||||
gitRepo, err := gitrepo.OpenRepository(t.Context(), repo)
|
||||
gitRepo, err := gitrepo.OpenRepository(repo)
|
||||
assert.NoError(t, err)
|
||||
defer gitRepo.Close()
|
||||
|
||||
@@ -149,7 +149,7 @@ func TestRelease_Update(t *testing.T) {
|
||||
advance := func() { fakeNow = fakeNow.Add(time.Second); timeutil.MockSet(fakeNow) }
|
||||
|
||||
// Test a changed release
|
||||
assert.NoError(t, CreateRelease(gitRepo, &repo_model.Release{
|
||||
assert.NoError(t, CreateRelease(t.Context(), gitRepo, &repo_model.Release{
|
||||
RepoID: repo.ID,
|
||||
Repo: repo,
|
||||
PublisherID: user.ID,
|
||||
@@ -173,7 +173,7 @@ func TestRelease_Update(t *testing.T) {
|
||||
assert.Equal(t, int64(releaseCreatedUnix), int64(release.CreatedUnix))
|
||||
|
||||
// Test a changed draft
|
||||
assert.NoError(t, CreateRelease(gitRepo, &repo_model.Release{
|
||||
assert.NoError(t, CreateRelease(t.Context(), gitRepo, &repo_model.Release{
|
||||
RepoID: repo.ID,
|
||||
Repo: repo,
|
||||
PublisherID: user.ID,
|
||||
@@ -197,7 +197,7 @@ func TestRelease_Update(t *testing.T) {
|
||||
assert.Less(t, int64(releaseCreatedUnix), int64(release.CreatedUnix))
|
||||
|
||||
// Test a changed pre-release
|
||||
assert.NoError(t, CreateRelease(gitRepo, &repo_model.Release{
|
||||
assert.NoError(t, CreateRelease(t.Context(), gitRepo, &repo_model.Release{
|
||||
RepoID: repo.ID,
|
||||
Repo: repo,
|
||||
PublisherID: user.ID,
|
||||
@@ -235,7 +235,7 @@ func TestRelease_Update(t *testing.T) {
|
||||
IsPrerelease: false,
|
||||
IsTag: false,
|
||||
}
|
||||
assert.NoError(t, CreateRelease(gitRepo, release, nil, ""))
|
||||
assert.NoError(t, CreateRelease(t.Context(), gitRepo, release, nil, ""))
|
||||
assert.Positive(t, release.ID)
|
||||
|
||||
release.IsDraft = false
|
||||
@@ -297,7 +297,7 @@ func TestRelease_createTag(t *testing.T) {
|
||||
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2})
|
||||
repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1})
|
||||
|
||||
gitRepo, err := gitrepo.OpenRepository(t.Context(), repo)
|
||||
gitRepo, err := gitrepo.OpenRepository(repo)
|
||||
assert.NoError(t, err)
|
||||
defer gitRepo.Close()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user