mirror of
https://github.com/go-gitea/gitea
synced 2025-07-22 18:28:37 +00:00
Move some files into models' sub packages (#20262)
* Move some files into models' sub packages * Move functions * merge main branch * Fix check * fix check * Fix some tests * Fix lint * Fix lint * Revert lint changes * Fix error comments * Fix lint Co-authored-by: 6543 <6543@obermui.de>
This commit is contained in:
@@ -23,7 +23,7 @@ import (
|
||||
"code.gitea.io/gitea/modules/timeutil"
|
||||
)
|
||||
|
||||
func createTag(gitRepo *git.Repository, rel *models.Release, msg string) (bool, error) {
|
||||
func createTag(gitRepo *git.Repository, rel *repo_model.Release, msg string) (bool, error) {
|
||||
var created bool
|
||||
// Only actual create when publish.
|
||||
if !rel.IsDraft {
|
||||
@@ -112,12 +112,12 @@ func createTag(gitRepo *git.Repository, rel *models.Release, msg string) (bool,
|
||||
}
|
||||
|
||||
// CreateRelease creates a new release of repository.
|
||||
func CreateRelease(gitRepo *git.Repository, rel *models.Release, attachmentUUIDs []string, msg string) error {
|
||||
has, err := models.IsReleaseExist(gitRepo.Ctx, rel.RepoID, rel.TagName)
|
||||
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)
|
||||
if err != nil {
|
||||
return err
|
||||
} else if has {
|
||||
return models.ErrReleaseAlreadyExist{
|
||||
return repo_model.ErrReleaseAlreadyExist{
|
||||
TagName: rel.TagName,
|
||||
}
|
||||
}
|
||||
@@ -131,7 +131,7 @@ func CreateRelease(gitRepo *git.Repository, rel *models.Release, attachmentUUIDs
|
||||
return err
|
||||
}
|
||||
|
||||
if err = models.AddReleaseAttachments(gitRepo.Ctx, rel.ID, attachmentUUIDs); err != nil {
|
||||
if err = repo_model.AddReleaseAttachments(gitRepo.Ctx, rel.ID, attachmentUUIDs); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -144,7 +144,7 @@ func CreateRelease(gitRepo *git.Repository, rel *models.Release, attachmentUUIDs
|
||||
|
||||
// CreateNewTag creates a new repository tag
|
||||
func CreateNewTag(ctx context.Context, doer *user_model.User, repo *repo_model.Repository, commit, tagName, msg string) error {
|
||||
has, err := models.IsReleaseExist(ctx, repo.ID, tagName)
|
||||
has, err := repo_model.IsReleaseExist(ctx, repo.ID, tagName)
|
||||
if err != nil {
|
||||
return err
|
||||
} else if has {
|
||||
@@ -159,7 +159,7 @@ func CreateNewTag(ctx context.Context, doer *user_model.User, repo *repo_model.R
|
||||
}
|
||||
defer closer.Close()
|
||||
|
||||
rel := &models.Release{
|
||||
rel := &repo_model.Release{
|
||||
RepoID: repo.ID,
|
||||
Repo: repo,
|
||||
PublisherID: doer.ID,
|
||||
@@ -182,7 +182,7 @@ func CreateNewTag(ctx context.Context, doer *user_model.User, repo *repo_model.R
|
||||
// addAttachmentUUIDs accept a slice of new created attachments' uuids which will be reassigned release_id as the created release
|
||||
// delAttachmentUUIDs accept a slice of attachments' uuids which will be deleted from the release
|
||||
// editAttachments accept a map of attachment uuid to new attachment name which will be updated with attachments.
|
||||
func UpdateRelease(doer *user_model.User, gitRepo *git.Repository, rel *models.Release,
|
||||
func UpdateRelease(doer *user_model.User, gitRepo *git.Repository, rel *repo_model.Release,
|
||||
addAttachmentUUIDs, delAttachmentUUIDs []string, editAttachments map[string]string,
|
||||
) (err error) {
|
||||
if rel.ID == 0 {
|
||||
@@ -200,11 +200,11 @@ func UpdateRelease(doer *user_model.User, gitRepo *git.Repository, rel *models.R
|
||||
}
|
||||
defer committer.Close()
|
||||
|
||||
if err = models.UpdateRelease(ctx, rel); err != nil {
|
||||
if err = repo_model.UpdateRelease(ctx, rel); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err = models.AddReleaseAttachments(ctx, rel.ID, addAttachmentUUIDs); err != nil {
|
||||
if err = repo_model.AddReleaseAttachments(ctx, rel.ID, addAttachmentUUIDs); err != nil {
|
||||
return fmt.Errorf("AddReleaseAttachments: %v", err)
|
||||
}
|
||||
|
||||
@@ -283,7 +283,7 @@ func UpdateRelease(doer *user_model.User, gitRepo *git.Repository, rel *models.R
|
||||
|
||||
// DeleteReleaseByID deletes a release and corresponding Git tag by given ID.
|
||||
func DeleteReleaseByID(ctx context.Context, id int64, doer *user_model.User, delTag bool) error {
|
||||
rel, err := models.GetReleaseByID(ctx, id)
|
||||
rel, err := repo_model.GetReleaseByID(ctx, id)
|
||||
if err != nil {
|
||||
return fmt.Errorf("GetReleaseByID: %v", err)
|
||||
}
|
||||
@@ -324,13 +324,13 @@ func DeleteReleaseByID(ctx context.Context, id int64, doer *user_model.User, del
|
||||
}, repository.NewPushCommits())
|
||||
notification.NotifyDeleteRef(doer, repo, "tag", git.TagPrefix+rel.TagName)
|
||||
|
||||
if err := models.DeleteReleaseByID(id); err != nil {
|
||||
if err := repo_model.DeleteReleaseByID(id); err != nil {
|
||||
return fmt.Errorf("DeleteReleaseByID: %v", err)
|
||||
}
|
||||
} else {
|
||||
rel.IsTag = true
|
||||
|
||||
if err = models.UpdateRelease(ctx, rel); err != nil {
|
||||
if err = repo_model.UpdateRelease(ctx, rel); err != nil {
|
||||
return fmt.Errorf("Update: %v", err)
|
||||
}
|
||||
}
|
||||
|
@@ -10,7 +10,6 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"code.gitea.io/gitea/models"
|
||||
"code.gitea.io/gitea/models/db"
|
||||
repo_model "code.gitea.io/gitea/models/repo"
|
||||
"code.gitea.io/gitea/models/unittest"
|
||||
@@ -38,7 +37,7 @@ func TestRelease_Create(t *testing.T) {
|
||||
assert.NoError(t, err)
|
||||
defer gitRepo.Close()
|
||||
|
||||
assert.NoError(t, CreateRelease(gitRepo, &models.Release{
|
||||
assert.NoError(t, CreateRelease(gitRepo, &repo_model.Release{
|
||||
RepoID: repo.ID,
|
||||
Repo: repo,
|
||||
PublisherID: user.ID,
|
||||
@@ -52,7 +51,7 @@ func TestRelease_Create(t *testing.T) {
|
||||
IsTag: false,
|
||||
}, nil, ""))
|
||||
|
||||
assert.NoError(t, CreateRelease(gitRepo, &models.Release{
|
||||
assert.NoError(t, CreateRelease(gitRepo, &repo_model.Release{
|
||||
RepoID: repo.ID,
|
||||
Repo: repo,
|
||||
PublisherID: user.ID,
|
||||
@@ -66,7 +65,7 @@ func TestRelease_Create(t *testing.T) {
|
||||
IsTag: false,
|
||||
}, nil, ""))
|
||||
|
||||
assert.NoError(t, CreateRelease(gitRepo, &models.Release{
|
||||
assert.NoError(t, CreateRelease(gitRepo, &repo_model.Release{
|
||||
RepoID: repo.ID,
|
||||
Repo: repo,
|
||||
PublisherID: user.ID,
|
||||
@@ -80,7 +79,7 @@ func TestRelease_Create(t *testing.T) {
|
||||
IsTag: false,
|
||||
}, nil, ""))
|
||||
|
||||
assert.NoError(t, CreateRelease(gitRepo, &models.Release{
|
||||
assert.NoError(t, CreateRelease(gitRepo, &repo_model.Release{
|
||||
RepoID: repo.ID,
|
||||
Repo: repo,
|
||||
PublisherID: user.ID,
|
||||
@@ -94,7 +93,7 @@ func TestRelease_Create(t *testing.T) {
|
||||
IsTag: false,
|
||||
}, nil, ""))
|
||||
|
||||
assert.NoError(t, CreateRelease(gitRepo, &models.Release{
|
||||
assert.NoError(t, CreateRelease(gitRepo, &repo_model.Release{
|
||||
RepoID: repo.ID,
|
||||
Repo: repo,
|
||||
PublisherID: user.ID,
|
||||
@@ -115,7 +114,7 @@ func TestRelease_Create(t *testing.T) {
|
||||
}, strings.NewReader("testtest"))
|
||||
assert.NoError(t, err)
|
||||
|
||||
release := models.Release{
|
||||
release := repo_model.Release{
|
||||
RepoID: repo.ID,
|
||||
Repo: repo,
|
||||
PublisherID: user.ID,
|
||||
@@ -143,7 +142,7 @@ func TestRelease_Update(t *testing.T) {
|
||||
defer gitRepo.Close()
|
||||
|
||||
// Test a changed release
|
||||
assert.NoError(t, CreateRelease(gitRepo, &models.Release{
|
||||
assert.NoError(t, CreateRelease(gitRepo, &repo_model.Release{
|
||||
RepoID: repo.ID,
|
||||
Repo: repo,
|
||||
PublisherID: user.ID,
|
||||
@@ -156,18 +155,18 @@ func TestRelease_Update(t *testing.T) {
|
||||
IsPrerelease: false,
|
||||
IsTag: false,
|
||||
}, nil, ""))
|
||||
release, err := models.GetRelease(repo.ID, "v1.1.1")
|
||||
release, err := repo_model.GetRelease(repo.ID, "v1.1.1")
|
||||
assert.NoError(t, err)
|
||||
releaseCreatedUnix := release.CreatedUnix
|
||||
time.Sleep(2 * time.Second) // sleep 2 seconds to ensure a different timestamp
|
||||
release.Note = "Changed note"
|
||||
assert.NoError(t, UpdateRelease(user, gitRepo, release, nil, nil, nil))
|
||||
release, err = models.GetReleaseByID(db.DefaultContext, release.ID)
|
||||
release, err = repo_model.GetReleaseByID(db.DefaultContext, release.ID)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, int64(releaseCreatedUnix), int64(release.CreatedUnix))
|
||||
|
||||
// Test a changed draft
|
||||
assert.NoError(t, CreateRelease(gitRepo, &models.Release{
|
||||
assert.NoError(t, CreateRelease(gitRepo, &repo_model.Release{
|
||||
RepoID: repo.ID,
|
||||
Repo: repo,
|
||||
PublisherID: user.ID,
|
||||
@@ -180,18 +179,18 @@ func TestRelease_Update(t *testing.T) {
|
||||
IsPrerelease: false,
|
||||
IsTag: false,
|
||||
}, nil, ""))
|
||||
release, err = models.GetRelease(repo.ID, "v1.2.1")
|
||||
release, err = repo_model.GetRelease(repo.ID, "v1.2.1")
|
||||
assert.NoError(t, err)
|
||||
releaseCreatedUnix = release.CreatedUnix
|
||||
time.Sleep(2 * time.Second) // sleep 2 seconds to ensure a different timestamp
|
||||
release.Title = "Changed title"
|
||||
assert.NoError(t, UpdateRelease(user, gitRepo, release, nil, nil, nil))
|
||||
release, err = models.GetReleaseByID(db.DefaultContext, release.ID)
|
||||
release, err = repo_model.GetReleaseByID(db.DefaultContext, release.ID)
|
||||
assert.NoError(t, err)
|
||||
assert.Less(t, int64(releaseCreatedUnix), int64(release.CreatedUnix))
|
||||
|
||||
// Test a changed pre-release
|
||||
assert.NoError(t, CreateRelease(gitRepo, &models.Release{
|
||||
assert.NoError(t, CreateRelease(gitRepo, &repo_model.Release{
|
||||
RepoID: repo.ID,
|
||||
Repo: repo,
|
||||
PublisherID: user.ID,
|
||||
@@ -204,19 +203,19 @@ func TestRelease_Update(t *testing.T) {
|
||||
IsPrerelease: true,
|
||||
IsTag: false,
|
||||
}, nil, ""))
|
||||
release, err = models.GetRelease(repo.ID, "v1.3.1")
|
||||
release, err = repo_model.GetRelease(repo.ID, "v1.3.1")
|
||||
assert.NoError(t, err)
|
||||
releaseCreatedUnix = release.CreatedUnix
|
||||
time.Sleep(2 * time.Second) // sleep 2 seconds to ensure a different timestamp
|
||||
release.Title = "Changed title"
|
||||
release.Note = "Changed note"
|
||||
assert.NoError(t, UpdateRelease(user, gitRepo, release, nil, nil, nil))
|
||||
release, err = models.GetReleaseByID(db.DefaultContext, release.ID)
|
||||
release, err = repo_model.GetReleaseByID(db.DefaultContext, release.ID)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, int64(releaseCreatedUnix), int64(release.CreatedUnix))
|
||||
|
||||
// Test create release
|
||||
release = &models.Release{
|
||||
release = &repo_model.Release{
|
||||
RepoID: repo.ID,
|
||||
Repo: repo,
|
||||
PublisherID: user.ID,
|
||||
@@ -236,7 +235,7 @@ func TestRelease_Update(t *testing.T) {
|
||||
tagName := release.TagName
|
||||
|
||||
assert.NoError(t, UpdateRelease(user, gitRepo, release, nil, nil, nil))
|
||||
release, err = models.GetReleaseByID(db.DefaultContext, release.ID)
|
||||
release, err = repo_model.GetReleaseByID(db.DefaultContext, release.ID)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, tagName, release.TagName)
|
||||
|
||||
@@ -249,7 +248,7 @@ func TestRelease_Update(t *testing.T) {
|
||||
assert.NoError(t, err)
|
||||
|
||||
assert.NoError(t, UpdateRelease(user, gitRepo, release, []string{attach.UUID}, nil, nil))
|
||||
assert.NoError(t, models.GetReleaseAttachments(db.DefaultContext, release))
|
||||
assert.NoError(t, repo_model.GetReleaseAttachments(db.DefaultContext, release))
|
||||
assert.Len(t, release.Attachments, 1)
|
||||
assert.EqualValues(t, attach.UUID, release.Attachments[0].UUID)
|
||||
assert.EqualValues(t, release.ID, release.Attachments[0].ReleaseID)
|
||||
@@ -260,7 +259,7 @@ func TestRelease_Update(t *testing.T) {
|
||||
attach.UUID: "test2.txt",
|
||||
}))
|
||||
release.Attachments = nil
|
||||
assert.NoError(t, models.GetReleaseAttachments(db.DefaultContext, release))
|
||||
assert.NoError(t, repo_model.GetReleaseAttachments(db.DefaultContext, release))
|
||||
assert.Len(t, release.Attachments, 1)
|
||||
assert.EqualValues(t, attach.UUID, release.Attachments[0].UUID)
|
||||
assert.EqualValues(t, release.ID, release.Attachments[0].ReleaseID)
|
||||
@@ -269,7 +268,7 @@ func TestRelease_Update(t *testing.T) {
|
||||
// delete the attachment
|
||||
assert.NoError(t, UpdateRelease(user, gitRepo, release, nil, []string{attach.UUID}, nil))
|
||||
release.Attachments = nil
|
||||
assert.NoError(t, models.GetReleaseAttachments(db.DefaultContext, release))
|
||||
assert.NoError(t, repo_model.GetReleaseAttachments(db.DefaultContext, release))
|
||||
assert.Empty(t, release.Attachments)
|
||||
}
|
||||
|
||||
@@ -285,7 +284,7 @@ func TestRelease_createTag(t *testing.T) {
|
||||
defer gitRepo.Close()
|
||||
|
||||
// Test a changed release
|
||||
release := &models.Release{
|
||||
release := &repo_model.Release{
|
||||
RepoID: repo.ID,
|
||||
Repo: repo,
|
||||
PublisherID: user.ID,
|
||||
@@ -309,7 +308,7 @@ func TestRelease_createTag(t *testing.T) {
|
||||
assert.Equal(t, int64(releaseCreatedUnix), int64(release.CreatedUnix))
|
||||
|
||||
// Test a changed draft
|
||||
release = &models.Release{
|
||||
release = &repo_model.Release{
|
||||
RepoID: repo.ID,
|
||||
Repo: repo,
|
||||
PublisherID: user.ID,
|
||||
@@ -332,7 +331,7 @@ func TestRelease_createTag(t *testing.T) {
|
||||
assert.Less(t, int64(releaseCreatedUnix), int64(release.CreatedUnix))
|
||||
|
||||
// Test a changed pre-release
|
||||
release = &models.Release{
|
||||
release = &repo_model.Release{
|
||||
RepoID: repo.ID,
|
||||
Repo: repo,
|
||||
PublisherID: user.ID,
|
||||
|
Reference in New Issue
Block a user