Move user related model into models/user (#17781)
* Move user related model into models/user * Fix lint for windows * Fix windows lint * Fix windows lint * Move some tests in models * Merge
This commit is contained in:
parent
4e7ca946da
commit
a666829a37
21
cmd/admin.go
21
cmd/admin.go
|
@ -16,6 +16,7 @@ import (
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/db"
|
"code.gitea.io/gitea/models/db"
|
||||||
"code.gitea.io/gitea/models/login"
|
"code.gitea.io/gitea/models/login"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/git"
|
"code.gitea.io/gitea/modules/git"
|
||||||
"code.gitea.io/gitea/modules/graceful"
|
"code.gitea.io/gitea/modules/graceful"
|
||||||
"code.gitea.io/gitea/modules/log"
|
"code.gitea.io/gitea/modules/log"
|
||||||
|
@ -358,7 +359,7 @@ func runChangePassword(c *cli.Context) error {
|
||||||
return errors.New("The password you chose is on a list of stolen passwords previously exposed in public data breaches. Please try again with a different password.\nFor more details, see https://haveibeenpwned.com/Passwords")
|
return errors.New("The password you chose is on a list of stolen passwords previously exposed in public data breaches. Please try again with a different password.\nFor more details, see https://haveibeenpwned.com/Passwords")
|
||||||
}
|
}
|
||||||
uname := c.String("username")
|
uname := c.String("username")
|
||||||
user, err := models.GetUserByName(uname)
|
user, err := user_model.GetUserByName(uname)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -366,7 +367,7 @@ func runChangePassword(c *cli.Context) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err = models.UpdateUserCols(db.DefaultContext, user, "passwd", "passwd_hash_algo", "salt"); err != nil {
|
if err = user_model.UpdateUserCols(db.DefaultContext, user, "passwd", "passwd_hash_algo", "salt"); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -424,7 +425,7 @@ func runCreateUser(c *cli.Context) error {
|
||||||
|
|
||||||
// If this is the first user being created.
|
// If this is the first user being created.
|
||||||
// Take it as the admin and don't force a password update.
|
// Take it as the admin and don't force a password update.
|
||||||
if n := models.CountUsers(); n == 0 {
|
if n := user_model.CountUsers(); n == 0 {
|
||||||
changePassword = false
|
changePassword = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -432,7 +433,7 @@ func runCreateUser(c *cli.Context) error {
|
||||||
changePassword = c.Bool("must-change-password")
|
changePassword = c.Bool("must-change-password")
|
||||||
}
|
}
|
||||||
|
|
||||||
u := &models.User{
|
u := &user_model.User{
|
||||||
Name: username,
|
Name: username,
|
||||||
Email: c.String("email"),
|
Email: c.String("email"),
|
||||||
Passwd: password,
|
Passwd: password,
|
||||||
|
@ -442,7 +443,7 @@ func runCreateUser(c *cli.Context) error {
|
||||||
Theme: setting.UI.DefaultTheme,
|
Theme: setting.UI.DefaultTheme,
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := models.CreateUser(u); err != nil {
|
if err := user_model.CreateUser(u); err != nil {
|
||||||
return fmt.Errorf("CreateUser: %v", err)
|
return fmt.Errorf("CreateUser: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -471,7 +472,7 @@ func runListUsers(c *cli.Context) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
users, err := models.GetAllUsers()
|
users, err := user_model.GetAllUsers()
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -516,13 +517,13 @@ func runDeleteUser(c *cli.Context) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
var err error
|
var err error
|
||||||
var user *models.User
|
var user *user_model.User
|
||||||
if c.IsSet("email") {
|
if c.IsSet("email") {
|
||||||
user, err = models.GetUserByEmail(c.String("email"))
|
user, err = user_model.GetUserByEmail(c.String("email"))
|
||||||
} else if c.IsSet("username") {
|
} else if c.IsSet("username") {
|
||||||
user, err = models.GetUserByName(c.String("username"))
|
user, err = user_model.GetUserByName(c.String("username"))
|
||||||
} else {
|
} else {
|
||||||
user, err = models.GetUserByID(c.Int64("id"))
|
user, err = user_model.GetUserByID(c.Int64("id"))
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
|
@ -13,6 +13,7 @@ import (
|
||||||
"code.gitea.io/gitea/models/db"
|
"code.gitea.io/gitea/models/db"
|
||||||
"code.gitea.io/gitea/models/migrations"
|
"code.gitea.io/gitea/models/migrations"
|
||||||
repo_model "code.gitea.io/gitea/models/repo"
|
repo_model "code.gitea.io/gitea/models/repo"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/log"
|
"code.gitea.io/gitea/modules/log"
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
"code.gitea.io/gitea/modules/storage"
|
"code.gitea.io/gitea/modules/storage"
|
||||||
|
@ -94,7 +95,7 @@ func migrateLFS(dstStorage storage.ObjectStorage) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
func migrateAvatars(dstStorage storage.ObjectStorage) error {
|
func migrateAvatars(dstStorage storage.ObjectStorage) error {
|
||||||
return models.IterateUser(func(user *models.User) error {
|
return user_model.IterateUser(func(user *user_model.User) error {
|
||||||
_, err := storage.Copy(dstStorage, user.CustomAvatarRelativePath(), storage.Avatars, user.CustomAvatarRelativePath())
|
_, err := storage.Copy(dstStorage, user.CustomAvatarRelativePath(), storage.Avatars, user.CustomAvatarRelativePath())
|
||||||
return err
|
return err
|
||||||
})
|
})
|
||||||
|
|
|
@ -9,8 +9,8 @@ import (
|
||||||
"strconv"
|
"strconv"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
|
@ -42,14 +42,14 @@ func TestAdminViewUser(t *testing.T) {
|
||||||
func TestAdminEditUser(t *testing.T) {
|
func TestAdminEditUser(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
|
|
||||||
testSuccessfullEdit(t, models.User{ID: 2, Name: "newusername", LoginName: "otherlogin", Email: "new@e-mail.gitea"})
|
testSuccessfullEdit(t, user_model.User{ID: 2, Name: "newusername", LoginName: "otherlogin", Email: "new@e-mail.gitea"})
|
||||||
}
|
}
|
||||||
|
|
||||||
func testSuccessfullEdit(t *testing.T, formData models.User) {
|
func testSuccessfullEdit(t *testing.T, formData user_model.User) {
|
||||||
makeRequest(t, formData, http.StatusFound)
|
makeRequest(t, formData, http.StatusFound)
|
||||||
}
|
}
|
||||||
|
|
||||||
func makeRequest(t *testing.T, formData models.User, headerCode int) {
|
func makeRequest(t *testing.T, formData user_model.User, headerCode int) {
|
||||||
session := loginUser(t, "user1")
|
session := loginUser(t, "user1")
|
||||||
csrf := GetCSRF(t, session, "/admin/users/"+strconv.Itoa(int(formData.ID)))
|
csrf := GetCSRF(t, session, "/admin/users/"+strconv.Itoa(int(formData.ID)))
|
||||||
req := NewRequestWithValues(t, "POST", "/admin/users/"+strconv.Itoa(int(formData.ID)), map[string]string{
|
req := NewRequestWithValues(t, "POST", "/admin/users/"+strconv.Itoa(int(formData.ID)), map[string]string{
|
||||||
|
@ -61,7 +61,7 @@ func makeRequest(t *testing.T, formData models.User, headerCode int) {
|
||||||
})
|
})
|
||||||
|
|
||||||
session.MakeRequest(t, req, headerCode)
|
session.MakeRequest(t, req, headerCode)
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: formData.ID}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: formData.ID}).(*user_model.User)
|
||||||
assert.Equal(t, formData.Name, user.Name)
|
assert.Equal(t, formData.Name, user.Name)
|
||||||
assert.Equal(t, formData.LoginName, user.LoginName)
|
assert.Equal(t, formData.LoginName, user.LoginName)
|
||||||
assert.Equal(t, formData.Email, user.Email)
|
assert.Equal(t, formData.Email, user.Email)
|
||||||
|
@ -79,5 +79,5 @@ func TestAdminDeleteUser(t *testing.T) {
|
||||||
session.MakeRequest(t, req, http.StatusOK)
|
session.MakeRequest(t, req, http.StatusOK)
|
||||||
|
|
||||||
assertUserDeleted(t, 8)
|
assertUserDeleted(t, 8)
|
||||||
unittest.CheckConsistencyFor(t, &models.User{})
|
unittest.CheckConsistencyFor(t, &user_model.User{})
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,8 +10,8 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
@ -43,7 +43,7 @@ func TestAPIAdminOrgCreate(t *testing.T) {
|
||||||
assert.Equal(t, org.Location, apiOrg.Location)
|
assert.Equal(t, org.Location, apiOrg.Location)
|
||||||
assert.Equal(t, org.Visibility, apiOrg.Visibility)
|
assert.Equal(t, org.Visibility, apiOrg.Visibility)
|
||||||
|
|
||||||
unittest.AssertExistsAndLoadBean(t, &models.User{
|
unittest.AssertExistsAndLoadBean(t, &user_model.User{
|
||||||
Name: org.UserName,
|
Name: org.UserName,
|
||||||
LowerName: strings.ToLower(org.UserName),
|
LowerName: strings.ToLower(org.UserName),
|
||||||
FullName: org.FullName,
|
FullName: org.FullName,
|
||||||
|
|
|
@ -11,6 +11,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/json"
|
"code.gitea.io/gitea/modules/json"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
|
|
||||||
|
@ -21,7 +22,7 @@ func TestAPIAdminCreateAndDeleteSSHKey(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
// user1 is an admin user
|
// user1 is an admin user
|
||||||
session := loginUser(t, "user1")
|
session := loginUser(t, "user1")
|
||||||
keyOwner := unittest.AssertExistsAndLoadBean(t, &models.User{Name: "user2"}).(*models.User)
|
keyOwner := unittest.AssertExistsAndLoadBean(t, &user_model.User{Name: "user2"}).(*user_model.User)
|
||||||
|
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
urlStr := fmt.Sprintf("/api/v1/admin/users/%s/keys?token=%s", keyOwner.Name, token)
|
urlStr := fmt.Sprintf("/api/v1/admin/users/%s/keys?token=%s", keyOwner.Name, token)
|
||||||
|
@ -128,7 +129,7 @@ func TestAPIListUsers(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
assert.True(t, found)
|
assert.True(t, found)
|
||||||
numberOfUsers := unittest.GetCount(t, &models.User{}, "type = 0")
|
numberOfUsers := unittest.GetCount(t, &user_model.User{}, "type = 0")
|
||||||
assert.Equal(t, numberOfUsers, len(users))
|
assert.Equal(t, numberOfUsers, len(users))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -194,7 +195,7 @@ func TestAPIEditUser(t *testing.T) {
|
||||||
json.Unmarshal(resp.Body.Bytes(), &errMap)
|
json.Unmarshal(resp.Body.Bytes(), &errMap)
|
||||||
assert.EqualValues(t, "email is not allowed to be empty string", errMap["message"].(string))
|
assert.EqualValues(t, "email is not allowed to be empty string", errMap["message"].(string))
|
||||||
|
|
||||||
user2 := unittest.AssertExistsAndLoadBean(t, &models.User{LoginName: "user2"}).(*models.User)
|
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{LoginName: "user2"}).(*user_model.User)
|
||||||
assert.False(t, user2.IsRestricted)
|
assert.False(t, user2.IsRestricted)
|
||||||
bTrue := true
|
bTrue := true
|
||||||
req = NewRequestWithJSON(t, "PATCH", urlStr, api.EditUserOption{
|
req = NewRequestWithJSON(t, "PATCH", urlStr, api.EditUserOption{
|
||||||
|
@ -205,6 +206,6 @@ func TestAPIEditUser(t *testing.T) {
|
||||||
Restricted: &bTrue,
|
Restricted: &bTrue,
|
||||||
})
|
})
|
||||||
session.MakeRequest(t, req, http.StatusOK)
|
session.MakeRequest(t, req, http.StatusOK)
|
||||||
user2 = unittest.AssertExistsAndLoadBean(t, &models.User{LoginName: "user2"}).(*models.User)
|
user2 = unittest.AssertExistsAndLoadBean(t, &user_model.User{LoginName: "user2"}).(*user_model.User)
|
||||||
assert.True(t, user2.IsRestricted)
|
assert.True(t, user2.IsRestricted)
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/convert"
|
"code.gitea.io/gitea/modules/convert"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
|
|
||||||
|
@ -25,7 +26,7 @@ func TestAPIListRepoComments(t *testing.T) {
|
||||||
unittest.Cond("type = ?", models.CommentTypeComment)).(*models.Comment)
|
unittest.Cond("type = ?", models.CommentTypeComment)).(*models.Comment)
|
||||||
issue := unittest.AssertExistsAndLoadBean(t, &models.Issue{ID: comment.IssueID}).(*models.Issue)
|
issue := unittest.AssertExistsAndLoadBean(t, &models.Issue{ID: comment.IssueID}).(*models.Issue)
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: issue.RepoID}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: issue.RepoID}).(*models.Repository)
|
||||||
repoOwner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User)
|
repoOwner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}).(*user_model.User)
|
||||||
|
|
||||||
session := loginUser(t, repoOwner.Name)
|
session := loginUser(t, repoOwner.Name)
|
||||||
link, _ := url.Parse(fmt.Sprintf("/api/v1/repos/%s/%s/issues/comments", repoOwner.Name, repo.Name))
|
link, _ := url.Parse(fmt.Sprintf("/api/v1/repos/%s/%s/issues/comments", repoOwner.Name, repo.Name))
|
||||||
|
@ -71,7 +72,7 @@ func TestAPIListIssueComments(t *testing.T) {
|
||||||
unittest.Cond("type = ?", models.CommentTypeComment)).(*models.Comment)
|
unittest.Cond("type = ?", models.CommentTypeComment)).(*models.Comment)
|
||||||
issue := unittest.AssertExistsAndLoadBean(t, &models.Issue{ID: comment.IssueID}).(*models.Issue)
|
issue := unittest.AssertExistsAndLoadBean(t, &models.Issue{ID: comment.IssueID}).(*models.Issue)
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: issue.RepoID}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: issue.RepoID}).(*models.Repository)
|
||||||
repoOwner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User)
|
repoOwner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}).(*user_model.User)
|
||||||
|
|
||||||
session := loginUser(t, repoOwner.Name)
|
session := loginUser(t, repoOwner.Name)
|
||||||
req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/issues/%d/comments",
|
req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/issues/%d/comments",
|
||||||
|
@ -91,7 +92,7 @@ func TestAPICreateComment(t *testing.T) {
|
||||||
|
|
||||||
issue := unittest.AssertExistsAndLoadBean(t, &models.Issue{}).(*models.Issue)
|
issue := unittest.AssertExistsAndLoadBean(t, &models.Issue{}).(*models.Issue)
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: issue.RepoID}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: issue.RepoID}).(*models.Repository)
|
||||||
repoOwner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User)
|
repoOwner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}).(*user_model.User)
|
||||||
|
|
||||||
session := loginUser(t, repoOwner.Name)
|
session := loginUser(t, repoOwner.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
@ -114,7 +115,7 @@ func TestAPIGetComment(t *testing.T) {
|
||||||
comment := unittest.AssertExistsAndLoadBean(t, &models.Comment{ID: 2}).(*models.Comment)
|
comment := unittest.AssertExistsAndLoadBean(t, &models.Comment{ID: 2}).(*models.Comment)
|
||||||
assert.NoError(t, comment.LoadIssue())
|
assert.NoError(t, comment.LoadIssue())
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: comment.Issue.RepoID}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: comment.Issue.RepoID}).(*models.Repository)
|
||||||
repoOwner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User)
|
repoOwner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}).(*user_model.User)
|
||||||
|
|
||||||
session := loginUser(t, repoOwner.Name)
|
session := loginUser(t, repoOwner.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
@ -143,7 +144,7 @@ func TestAPIEditComment(t *testing.T) {
|
||||||
unittest.Cond("type = ?", models.CommentTypeComment)).(*models.Comment)
|
unittest.Cond("type = ?", models.CommentTypeComment)).(*models.Comment)
|
||||||
issue := unittest.AssertExistsAndLoadBean(t, &models.Issue{ID: comment.IssueID}).(*models.Issue)
|
issue := unittest.AssertExistsAndLoadBean(t, &models.Issue{ID: comment.IssueID}).(*models.Issue)
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: issue.RepoID}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: issue.RepoID}).(*models.Repository)
|
||||||
repoOwner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User)
|
repoOwner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}).(*user_model.User)
|
||||||
|
|
||||||
session := loginUser(t, repoOwner.Name)
|
session := loginUser(t, repoOwner.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
@ -168,7 +169,7 @@ func TestAPIDeleteComment(t *testing.T) {
|
||||||
unittest.Cond("type = ?", models.CommentTypeComment)).(*models.Comment)
|
unittest.Cond("type = ?", models.CommentTypeComment)).(*models.Comment)
|
||||||
issue := unittest.AssertExistsAndLoadBean(t, &models.Issue{ID: comment.IssueID}).(*models.Issue)
|
issue := unittest.AssertExistsAndLoadBean(t, &models.Issue{ID: comment.IssueID}).(*models.Issue)
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: issue.RepoID}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: issue.RepoID}).(*models.Repository)
|
||||||
repoOwner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User)
|
repoOwner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}).(*user_model.User)
|
||||||
|
|
||||||
session := loginUser(t, repoOwner.Name)
|
session := loginUser(t, repoOwner.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
|
|
@ -12,6 +12,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
@ -21,7 +22,7 @@ func TestAPIModifyLabels(t *testing.T) {
|
||||||
assert.NoError(t, unittest.LoadFixtures())
|
assert.NoError(t, unittest.LoadFixtures())
|
||||||
|
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 2}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 2}).(*models.Repository)
|
||||||
owner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User)
|
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}).(*user_model.User)
|
||||||
session := loginUser(t, owner.Name)
|
session := loginUser(t, owner.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/labels?token=%s", owner.Name, repo.Name, token)
|
urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/labels?token=%s", owner.Name, repo.Name, token)
|
||||||
|
@ -93,7 +94,7 @@ func TestAPIAddIssueLabels(t *testing.T) {
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
||||||
issue := unittest.AssertExistsAndLoadBean(t, &models.Issue{RepoID: repo.ID}).(*models.Issue)
|
issue := unittest.AssertExistsAndLoadBean(t, &models.Issue{RepoID: repo.ID}).(*models.Issue)
|
||||||
_ = unittest.AssertExistsAndLoadBean(t, &models.Label{RepoID: repo.ID, ID: 2}).(*models.Label)
|
_ = unittest.AssertExistsAndLoadBean(t, &models.Label{RepoID: repo.ID, ID: 2}).(*models.Label)
|
||||||
owner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User)
|
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}).(*user_model.User)
|
||||||
|
|
||||||
session := loginUser(t, owner.Name)
|
session := loginUser(t, owner.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
@ -116,7 +117,7 @@ func TestAPIReplaceIssueLabels(t *testing.T) {
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
||||||
issue := unittest.AssertExistsAndLoadBean(t, &models.Issue{RepoID: repo.ID}).(*models.Issue)
|
issue := unittest.AssertExistsAndLoadBean(t, &models.Issue{RepoID: repo.ID}).(*models.Issue)
|
||||||
label := unittest.AssertExistsAndLoadBean(t, &models.Label{RepoID: repo.ID}).(*models.Label)
|
label := unittest.AssertExistsAndLoadBean(t, &models.Label{RepoID: repo.ID}).(*models.Label)
|
||||||
owner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User)
|
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}).(*user_model.User)
|
||||||
|
|
||||||
session := loginUser(t, owner.Name)
|
session := loginUser(t, owner.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
@ -140,7 +141,7 @@ func TestAPIModifyOrgLabels(t *testing.T) {
|
||||||
assert.NoError(t, unittest.LoadFixtures())
|
assert.NoError(t, unittest.LoadFixtures())
|
||||||
|
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 3}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 3}).(*models.Repository)
|
||||||
owner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User)
|
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}).(*user_model.User)
|
||||||
user := "user1"
|
user := "user1"
|
||||||
session := loginUser(t, user)
|
session := loginUser(t, user)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
|
|
@ -11,6 +11,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/structs"
|
"code.gitea.io/gitea/modules/structs"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
@ -21,7 +22,7 @@ func TestAPIIssuesMilestone(t *testing.T) {
|
||||||
|
|
||||||
milestone := unittest.AssertExistsAndLoadBean(t, &models.Milestone{ID: 1}).(*models.Milestone)
|
milestone := unittest.AssertExistsAndLoadBean(t, &models.Milestone{ID: 1}).(*models.Milestone)
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: milestone.RepoID}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: milestone.RepoID}).(*models.Repository)
|
||||||
owner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User)
|
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}).(*user_model.User)
|
||||||
assert.Equal(t, int64(1), int64(milestone.NumIssues))
|
assert.Equal(t, int64(1), int64(milestone.NumIssues))
|
||||||
assert.Equal(t, structs.StateOpen, milestone.State())
|
assert.Equal(t, structs.StateOpen, milestone.State())
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/convert"
|
"code.gitea.io/gitea/modules/convert"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
|
|
||||||
|
@ -23,12 +24,12 @@ func TestAPIIssuesReactions(t *testing.T) {
|
||||||
|
|
||||||
issue := unittest.AssertExistsAndLoadBean(t, &models.Issue{ID: 1}).(*models.Issue)
|
issue := unittest.AssertExistsAndLoadBean(t, &models.Issue{ID: 1}).(*models.Issue)
|
||||||
_ = issue.LoadRepo()
|
_ = issue.LoadRepo()
|
||||||
owner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: issue.Repo.OwnerID}).(*models.User)
|
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: issue.Repo.OwnerID}).(*user_model.User)
|
||||||
|
|
||||||
session := loginUser(t, owner.Name)
|
session := loginUser(t, owner.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
|
||||||
user2 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/reactions?token=%s",
|
urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/reactions?token=%s",
|
||||||
owner.Name, issue.Repo.Name, issue.Index, token)
|
owner.Name, issue.Repo.Name, issue.Index, token)
|
||||||
|
|
||||||
|
@ -82,13 +83,13 @@ func TestAPICommentReactions(t *testing.T) {
|
||||||
_ = comment.LoadIssue()
|
_ = comment.LoadIssue()
|
||||||
issue := comment.Issue
|
issue := comment.Issue
|
||||||
_ = issue.LoadRepo()
|
_ = issue.LoadRepo()
|
||||||
owner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: issue.Repo.OwnerID}).(*models.User)
|
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: issue.Repo.OwnerID}).(*user_model.User)
|
||||||
|
|
||||||
session := loginUser(t, owner.Name)
|
session := loginUser(t, owner.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
|
||||||
user1 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 1}).(*models.User)
|
user1 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 1}).(*user_model.User)
|
||||||
user2 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/comments/%d/reactions?token=%s",
|
urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/comments/%d/reactions?token=%s",
|
||||||
owner.Name, issue.Repo.Name, comment.ID, token)
|
owner.Name, issue.Repo.Name, comment.ID, token)
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
@ -19,7 +20,7 @@ func TestAPIListStopWatches(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
|
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
||||||
owner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User)
|
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}).(*user_model.User)
|
||||||
|
|
||||||
session := loginUser(t, owner.Name)
|
session := loginUser(t, owner.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
@ -44,8 +45,8 @@ func TestAPIStopStopWatches(t *testing.T) {
|
||||||
|
|
||||||
issue := unittest.AssertExistsAndLoadBean(t, &models.Issue{ID: 2}).(*models.Issue)
|
issue := unittest.AssertExistsAndLoadBean(t, &models.Issue{ID: 2}).(*models.Issue)
|
||||||
_ = issue.LoadRepo()
|
_ = issue.LoadRepo()
|
||||||
owner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: issue.Repo.OwnerID}).(*models.User)
|
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: issue.Repo.OwnerID}).(*user_model.User)
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
|
|
||||||
session := loginUser(t, user.Name)
|
session := loginUser(t, user.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
@ -60,8 +61,8 @@ func TestAPICancelStopWatches(t *testing.T) {
|
||||||
|
|
||||||
issue := unittest.AssertExistsAndLoadBean(t, &models.Issue{ID: 1}).(*models.Issue)
|
issue := unittest.AssertExistsAndLoadBean(t, &models.Issue{ID: 1}).(*models.Issue)
|
||||||
_ = issue.LoadRepo()
|
_ = issue.LoadRepo()
|
||||||
owner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: issue.Repo.OwnerID}).(*models.User)
|
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: issue.Repo.OwnerID}).(*user_model.User)
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 1}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 1}).(*user_model.User)
|
||||||
|
|
||||||
session := loginUser(t, user.Name)
|
session := loginUser(t, user.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
@ -76,8 +77,8 @@ func TestAPIStartStopWatches(t *testing.T) {
|
||||||
|
|
||||||
issue := unittest.AssertExistsAndLoadBean(t, &models.Issue{ID: 3}).(*models.Issue)
|
issue := unittest.AssertExistsAndLoadBean(t, &models.Issue{ID: 3}).(*models.Issue)
|
||||||
_ = issue.LoadRepo()
|
_ = issue.LoadRepo()
|
||||||
owner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: issue.Repo.OwnerID}).(*models.User)
|
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: issue.Repo.OwnerID}).(*user_model.User)
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
|
|
||||||
session := loginUser(t, user.Name)
|
session := loginUser(t, user.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
|
|
@ -11,6 +11,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
@ -25,7 +26,7 @@ func TestAPIIssueSubscriptions(t *testing.T) {
|
||||||
issue4 := unittest.AssertExistsAndLoadBean(t, &models.Issue{ID: 4}).(*models.Issue)
|
issue4 := unittest.AssertExistsAndLoadBean(t, &models.Issue{ID: 4}).(*models.Issue)
|
||||||
issue5 := unittest.AssertExistsAndLoadBean(t, &models.Issue{ID: 8}).(*models.Issue)
|
issue5 := unittest.AssertExistsAndLoadBean(t, &models.Issue{ID: 8}).(*models.Issue)
|
||||||
|
|
||||||
owner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: issue1.PosterID}).(*models.User)
|
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: issue1.PosterID}).(*user_model.User)
|
||||||
|
|
||||||
session := loginUser(t, owner.Name)
|
session := loginUser(t, owner.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
|
|
@ -13,6 +13,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
@ -22,7 +23,7 @@ func TestAPIListIssues(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
|
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
||||||
owner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User)
|
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}).(*user_model.User)
|
||||||
|
|
||||||
session := loginUser(t, owner.Name)
|
session := loginUser(t, owner.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
@ -73,7 +74,7 @@ func TestAPICreateIssue(t *testing.T) {
|
||||||
const body, title = "apiTestBody", "apiTestTitle"
|
const body, title = "apiTestBody", "apiTestTitle"
|
||||||
|
|
||||||
repoBefore := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
repoBefore := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
||||||
owner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repoBefore.OwnerID}).(*models.User)
|
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repoBefore.OwnerID}).(*user_model.User)
|
||||||
|
|
||||||
session := loginUser(t, owner.Name)
|
session := loginUser(t, owner.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
@ -106,7 +107,7 @@ func TestAPIEditIssue(t *testing.T) {
|
||||||
|
|
||||||
issueBefore := unittest.AssertExistsAndLoadBean(t, &models.Issue{ID: 10}).(*models.Issue)
|
issueBefore := unittest.AssertExistsAndLoadBean(t, &models.Issue{ID: 10}).(*models.Issue)
|
||||||
repoBefore := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: issueBefore.RepoID}).(*models.Repository)
|
repoBefore := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: issueBefore.RepoID}).(*models.Repository)
|
||||||
owner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repoBefore.OwnerID}).(*models.User)
|
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repoBefore.OwnerID}).(*user_model.User)
|
||||||
assert.NoError(t, issueBefore.LoadAttributes())
|
assert.NoError(t, issueBefore.LoadAttributes())
|
||||||
assert.Equal(t, int64(1019307200), int64(issueBefore.DeadlineUnix))
|
assert.Equal(t, int64(1019307200), int64(issueBefore.DeadlineUnix))
|
||||||
assert.Equal(t, api.StateOpen, issueBefore.State())
|
assert.Equal(t, api.StateOpen, issueBefore.State())
|
||||||
|
|
|
@ -12,6 +12,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
@ -20,7 +21,7 @@ import (
|
||||||
func TestAPIGetTrackedTimes(t *testing.T) {
|
func TestAPIGetTrackedTimes(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
|
|
||||||
user2 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
issue2 := unittest.AssertExistsAndLoadBean(t, &models.Issue{ID: 2}).(*models.Issue)
|
issue2 := unittest.AssertExistsAndLoadBean(t, &models.Issue{ID: 2}).(*models.Issue)
|
||||||
assert.NoError(t, issue2.LoadRepo())
|
assert.NoError(t, issue2.LoadRepo())
|
||||||
|
|
||||||
|
@ -41,7 +42,7 @@ func TestAPIGetTrackedTimes(t *testing.T) {
|
||||||
assert.EqualValues(t, issue2.ID, apiTimes[i].IssueID)
|
assert.EqualValues(t, issue2.ID, apiTimes[i].IssueID)
|
||||||
assert.Equal(t, time.Created.Unix(), apiTimes[i].Created.Unix())
|
assert.Equal(t, time.Created.Unix(), apiTimes[i].Created.Unix())
|
||||||
assert.Equal(t, time.Time, apiTimes[i].Time)
|
assert.Equal(t, time.Time, apiTimes[i].Time)
|
||||||
user, err := models.GetUserByID(time.UserID)
|
user, err := user_model.GetUserByID(time.UserID)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, user.Name, apiTimes[i].UserName)
|
assert.Equal(t, user.Name, apiTimes[i].UserName)
|
||||||
}
|
}
|
||||||
|
@ -65,7 +66,7 @@ func TestAPIDeleteTrackedTime(t *testing.T) {
|
||||||
time6 := unittest.AssertExistsAndLoadBean(t, &models.TrackedTime{ID: 6}).(*models.TrackedTime)
|
time6 := unittest.AssertExistsAndLoadBean(t, &models.TrackedTime{ID: 6}).(*models.TrackedTime)
|
||||||
issue2 := unittest.AssertExistsAndLoadBean(t, &models.Issue{ID: 2}).(*models.Issue)
|
issue2 := unittest.AssertExistsAndLoadBean(t, &models.Issue{ID: 2}).(*models.Issue)
|
||||||
assert.NoError(t, issue2.LoadRepo())
|
assert.NoError(t, issue2.LoadRepo())
|
||||||
user2 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
|
|
||||||
session := loginUser(t, user2.Name)
|
session := loginUser(t, user2.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
@ -99,8 +100,8 @@ func TestAPIAddTrackedTimes(t *testing.T) {
|
||||||
|
|
||||||
issue2 := unittest.AssertExistsAndLoadBean(t, &models.Issue{ID: 2}).(*models.Issue)
|
issue2 := unittest.AssertExistsAndLoadBean(t, &models.Issue{ID: 2}).(*models.Issue)
|
||||||
assert.NoError(t, issue2.LoadRepo())
|
assert.NoError(t, issue2.LoadRepo())
|
||||||
user2 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
admin := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 1}).(*models.User)
|
admin := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 1}).(*user_model.User)
|
||||||
|
|
||||||
session := loginUser(t, admin.Name)
|
session := loginUser(t, admin.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
|
|
@ -12,6 +12,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
@ -47,7 +48,7 @@ func TestDeleteDeployKeyNoLogin(t *testing.T) {
|
||||||
func TestCreateReadOnlyDeployKey(t *testing.T) {
|
func TestCreateReadOnlyDeployKey(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{Name: "repo1"}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{Name: "repo1"}).(*models.Repository)
|
||||||
repoOwner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User)
|
repoOwner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}).(*user_model.User)
|
||||||
|
|
||||||
session := loginUser(t, repoOwner.Name)
|
session := loginUser(t, repoOwner.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
@ -73,7 +74,7 @@ func TestCreateReadOnlyDeployKey(t *testing.T) {
|
||||||
func TestCreateReadWriteDeployKey(t *testing.T) {
|
func TestCreateReadWriteDeployKey(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{Name: "repo1"}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{Name: "repo1"}).(*models.Repository)
|
||||||
repoOwner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User)
|
repoOwner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}).(*user_model.User)
|
||||||
|
|
||||||
session := loginUser(t, repoOwner.Name)
|
session := loginUser(t, repoOwner.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
@ -97,7 +98,7 @@ func TestCreateReadWriteDeployKey(t *testing.T) {
|
||||||
|
|
||||||
func TestCreateUserKey(t *testing.T) {
|
func TestCreateUserKey(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{Name: "user1"}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{Name: "user1"}).(*user_model.User)
|
||||||
|
|
||||||
session := loginUser(t, "user1")
|
session := loginUser(t, "user1")
|
||||||
token := url.QueryEscape(getTokenForLoggedInUser(t, session))
|
token := url.QueryEscape(getTokenForLoggedInUser(t, session))
|
||||||
|
|
|
@ -11,6 +11,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
@ -19,7 +20,7 @@ import (
|
||||||
func TestAPINotification(t *testing.T) {
|
func TestAPINotification(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
|
|
||||||
user2 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
repo1 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
repo1 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
||||||
thread5 := unittest.AssertExistsAndLoadBean(t, &models.Notification{ID: 5}).(*models.Notification)
|
thread5 := unittest.AssertExistsAndLoadBean(t, &models.Notification{ID: 5}).(*models.Notification)
|
||||||
assert.NoError(t, thread5.LoadAttributes())
|
assert.NoError(t, thread5.LoadAttributes())
|
||||||
|
|
|
@ -9,9 +9,9 @@ import (
|
||||||
"net/http"
|
"net/http"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
|
||||||
"code.gitea.io/gitea/models/login"
|
"code.gitea.io/gitea/models/login"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
@ -27,7 +27,7 @@ func TestOAuth2Application(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func testAPICreateOAuth2Application(t *testing.T) {
|
func testAPICreateOAuth2Application(t *testing.T) {
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
appBody := api.CreateOAuth2ApplicationOptions{
|
appBody := api.CreateOAuth2ApplicationOptions{
|
||||||
Name: "test-app-1",
|
Name: "test-app-1",
|
||||||
RedirectURIs: []string{
|
RedirectURIs: []string{
|
||||||
|
@ -51,7 +51,7 @@ func testAPICreateOAuth2Application(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func testAPIListOAuth2Applications(t *testing.T) {
|
func testAPIListOAuth2Applications(t *testing.T) {
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
session := loginUser(t, user.Name)
|
session := loginUser(t, user.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
|
||||||
|
@ -80,7 +80,7 @@ func testAPIListOAuth2Applications(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func testAPIDeleteOAuth2Application(t *testing.T) {
|
func testAPIDeleteOAuth2Application(t *testing.T) {
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
session := loginUser(t, user.Name)
|
session := loginUser(t, user.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
|
||||||
|
@ -101,7 +101,7 @@ func testAPIDeleteOAuth2Application(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func testAPIGetOAuth2Application(t *testing.T) {
|
func testAPIGetOAuth2Application(t *testing.T) {
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
session := loginUser(t, user.Name)
|
session := loginUser(t, user.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
|
||||||
|
@ -131,7 +131,7 @@ func testAPIGetOAuth2Application(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func testAPIUpdateOAuth2Application(t *testing.T) {
|
func testAPIUpdateOAuth2Application(t *testing.T) {
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
|
|
||||||
existApp := unittest.AssertExistsAndLoadBean(t, &login.OAuth2Application{
|
existApp := unittest.AssertExistsAndLoadBean(t, &login.OAuth2Application{
|
||||||
UID: user.ID,
|
UID: user.ID,
|
||||||
|
|
|
@ -10,8 +10,8 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
|
|
||||||
|
@ -44,7 +44,7 @@ func TestAPIOrgCreate(t *testing.T) {
|
||||||
assert.Equal(t, org.Location, apiOrg.Location)
|
assert.Equal(t, org.Location, apiOrg.Location)
|
||||||
assert.Equal(t, org.Visibility, apiOrg.Visibility)
|
assert.Equal(t, org.Visibility, apiOrg.Visibility)
|
||||||
|
|
||||||
unittest.AssertExistsAndLoadBean(t, &models.User{
|
unittest.AssertExistsAndLoadBean(t, &user_model.User{
|
||||||
Name: org.UserName,
|
Name: org.UserName,
|
||||||
LowerName: strings.ToLower(org.UserName),
|
LowerName: strings.ToLower(org.UserName),
|
||||||
FullName: org.FullName,
|
FullName: org.FullName,
|
||||||
|
|
|
@ -11,6 +11,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
"code.gitea.io/gitea/services/forms"
|
"code.gitea.io/gitea/services/forms"
|
||||||
|
@ -22,7 +23,7 @@ import (
|
||||||
func TestAPIViewPulls(t *testing.T) {
|
func TestAPIViewPulls(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
||||||
owner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User)
|
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}).(*user_model.User)
|
||||||
|
|
||||||
session := loginUser(t, "user2")
|
session := loginUser(t, "user2")
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
@ -39,7 +40,7 @@ func TestAPIViewPulls(t *testing.T) {
|
||||||
func TestAPIMergePullWIP(t *testing.T) {
|
func TestAPIMergePullWIP(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
||||||
owner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User)
|
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}).(*user_model.User)
|
||||||
pr := unittest.AssertExistsAndLoadBean(t, &models.PullRequest{Status: models.PullRequestStatusMergeable}, unittest.Cond("has_merged = ?", false)).(*models.PullRequest)
|
pr := unittest.AssertExistsAndLoadBean(t, &models.PullRequest{Status: models.PullRequestStatusMergeable}, unittest.Cond("has_merged = ?", false)).(*models.PullRequest)
|
||||||
pr.LoadIssue()
|
pr.LoadIssue()
|
||||||
issue_service.ChangeTitle(pr.Issue, owner, setting.Repository.PullRequest.WorkInProgressPrefixes[0]+" "+pr.Issue.Title)
|
issue_service.ChangeTitle(pr.Issue, owner, setting.Repository.PullRequest.WorkInProgressPrefixes[0]+" "+pr.Issue.Title)
|
||||||
|
@ -65,8 +66,8 @@ func TestAPICreatePullSuccess(t *testing.T) {
|
||||||
// repo10 have code, pulls units.
|
// repo10 have code, pulls units.
|
||||||
repo11 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 11}).(*models.Repository)
|
repo11 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 11}).(*models.Repository)
|
||||||
// repo11 only have code unit but should still create pulls
|
// repo11 only have code unit but should still create pulls
|
||||||
owner10 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo10.OwnerID}).(*models.User)
|
owner10 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo10.OwnerID}).(*user_model.User)
|
||||||
owner11 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo11.OwnerID}).(*models.User)
|
owner11 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo11.OwnerID}).(*user_model.User)
|
||||||
|
|
||||||
session := loginUser(t, owner11.Name)
|
session := loginUser(t, owner11.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
@ -83,10 +84,10 @@ func TestAPICreatePullWithFieldsSuccess(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
// repo10 have code, pulls units.
|
// repo10 have code, pulls units.
|
||||||
repo10 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 10}).(*models.Repository)
|
repo10 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 10}).(*models.Repository)
|
||||||
owner10 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo10.OwnerID}).(*models.User)
|
owner10 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo10.OwnerID}).(*user_model.User)
|
||||||
// repo11 only have code unit but should still create pulls
|
// repo11 only have code unit but should still create pulls
|
||||||
repo11 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 11}).(*models.Repository)
|
repo11 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 11}).(*models.Repository)
|
||||||
owner11 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo11.OwnerID}).(*models.User)
|
owner11 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo11.OwnerID}).(*user_model.User)
|
||||||
|
|
||||||
session := loginUser(t, owner11.Name)
|
session := loginUser(t, owner11.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
@ -120,10 +121,10 @@ func TestAPICreatePullWithFieldsFailure(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
// repo10 have code, pulls units.
|
// repo10 have code, pulls units.
|
||||||
repo10 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 10}).(*models.Repository)
|
repo10 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 10}).(*models.Repository)
|
||||||
owner10 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo10.OwnerID}).(*models.User)
|
owner10 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo10.OwnerID}).(*user_model.User)
|
||||||
// repo11 only have code unit but should still create pulls
|
// repo11 only have code unit but should still create pulls
|
||||||
repo11 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 11}).(*models.Repository)
|
repo11 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 11}).(*models.Repository)
|
||||||
owner11 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo11.OwnerID}).(*models.User)
|
owner11 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo11.OwnerID}).(*user_model.User)
|
||||||
|
|
||||||
session := loginUser(t, owner11.Name)
|
session := loginUser(t, owner11.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
@ -153,7 +154,7 @@ func TestAPICreatePullWithFieldsFailure(t *testing.T) {
|
||||||
func TestAPIEditPull(t *testing.T) {
|
func TestAPIEditPull(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
repo10 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 10}).(*models.Repository)
|
repo10 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 10}).(*models.Repository)
|
||||||
owner10 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo10.OwnerID}).(*models.User)
|
owner10 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo10.OwnerID}).(*user_model.User)
|
||||||
|
|
||||||
session := loginUser(t, owner10.Name)
|
session := loginUser(t, owner10.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
|
|
@ -12,6 +12,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/git"
|
"code.gitea.io/gitea/modules/git"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
|
|
||||||
|
@ -22,7 +23,7 @@ func TestAPIListReleases(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
|
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
||||||
user2 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
session := loginUser(t, user2.LowerName)
|
session := loginUser(t, user2.LowerName)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
|
||||||
|
@ -70,7 +71,7 @@ func TestAPIListReleases(t *testing.T) {
|
||||||
testFilterByLen(true, url.Values{"draft": {"true"}, "pre-release": {"true"}}, 0, "there is no pre-release draft")
|
testFilterByLen(true, url.Values{"draft": {"true"}, "pre-release": {"true"}}, 0, "there is no pre-release draft")
|
||||||
}
|
}
|
||||||
|
|
||||||
func createNewReleaseUsingAPI(t *testing.T, session *TestSession, token string, owner *models.User, repo *models.Repository, name, target, title, desc string) *api.Release {
|
func createNewReleaseUsingAPI(t *testing.T, session *TestSession, token string, owner *user_model.User, repo *models.Repository, name, target, title, desc string) *api.Release {
|
||||||
urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/releases?token=%s",
|
urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/releases?token=%s",
|
||||||
owner.Name, repo.Name, token)
|
owner.Name, repo.Name, token)
|
||||||
req := NewRequestWithJSON(t, "POST", urlStr, &api.CreateReleaseOption{
|
req := NewRequestWithJSON(t, "POST", urlStr, &api.CreateReleaseOption{
|
||||||
|
@ -99,7 +100,7 @@ func TestAPICreateAndUpdateRelease(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
|
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
||||||
owner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User)
|
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}).(*user_model.User)
|
||||||
session := loginUser(t, owner.LowerName)
|
session := loginUser(t, owner.LowerName)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
|
||||||
|
@ -150,7 +151,7 @@ func TestAPICreateReleaseToDefaultBranch(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
|
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
||||||
owner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User)
|
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}).(*user_model.User)
|
||||||
session := loginUser(t, owner.LowerName)
|
session := loginUser(t, owner.LowerName)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
|
||||||
|
@ -161,7 +162,7 @@ func TestAPICreateReleaseToDefaultBranchOnExistingTag(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
|
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
||||||
owner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User)
|
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}).(*user_model.User)
|
||||||
session := loginUser(t, owner.LowerName)
|
session := loginUser(t, owner.LowerName)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
|
||||||
|
@ -179,7 +180,7 @@ func TestAPIGetReleaseByTag(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
|
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
||||||
owner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User)
|
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}).(*user_model.User)
|
||||||
session := loginUser(t, owner.LowerName)
|
session := loginUser(t, owner.LowerName)
|
||||||
|
|
||||||
tag := "v1.1"
|
tag := "v1.1"
|
||||||
|
@ -212,7 +213,7 @@ func TestAPIDeleteReleaseByTagName(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
|
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
||||||
owner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User)
|
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}).(*user_model.User)
|
||||||
session := loginUser(t, owner.LowerName)
|
session := loginUser(t, owner.LowerName)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
|
@ -21,7 +22,7 @@ func TestAPIDownloadArchive(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
|
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
||||||
user2 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
session := loginUser(t, user2.LowerName)
|
session := loginUser(t, user2.LowerName)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,7 @@ import (
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
unit_model "code.gitea.io/gitea/models/unit"
|
unit_model "code.gitea.io/gitea/models/unit"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
@ -134,9 +135,9 @@ func TestAPIRepoEdit(t *testing.T) {
|
||||||
onGiteaRun(t, func(t *testing.T, u *url.URL) {
|
onGiteaRun(t, func(t *testing.T, u *url.URL) {
|
||||||
bFalse, bTrue := false, true
|
bFalse, bTrue := false, true
|
||||||
|
|
||||||
user2 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User) // owner of the repo1 & repo16
|
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User) // owner of the repo1 & repo16
|
||||||
user3 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 3}).(*models.User) // owner of the repo3, is an org
|
user3 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 3}).(*user_model.User) // owner of the repo3, is an org
|
||||||
user4 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 4}).(*models.User) // owner of neither repos
|
user4 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 4}).(*user_model.User) // owner of neither repos
|
||||||
repo1 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository) // public repo
|
repo1 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository) // public repo
|
||||||
repo3 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 3}).(*models.Repository) // public repo
|
repo3 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 3}).(*models.Repository) // public repo
|
||||||
repo15 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 15}).(*models.Repository) // empty repo
|
repo15 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 15}).(*models.Repository) // empty repo
|
||||||
|
|
|
@ -15,6 +15,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/context"
|
"code.gitea.io/gitea/modules/context"
|
||||||
"code.gitea.io/gitea/modules/git"
|
"code.gitea.io/gitea/modules/git"
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
|
@ -109,7 +110,7 @@ func getExpectedFileResponseForCreate(commitID, treePath string) *api.FileRespon
|
||||||
func BenchmarkAPICreateFileSmall(b *testing.B) {
|
func BenchmarkAPICreateFileSmall(b *testing.B) {
|
||||||
onGiteaRunTB(b, func(t testing.TB, u *url.URL) {
|
onGiteaRunTB(b, func(t testing.TB, u *url.URL) {
|
||||||
b := t.(*testing.B)
|
b := t.(*testing.B)
|
||||||
user2 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User) // owner of the repo1 & repo16
|
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User) // owner of the repo1 & repo16
|
||||||
repo1 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository) // public repo
|
repo1 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository) // public repo
|
||||||
|
|
||||||
for n := 0; n < b.N; n++ {
|
for n := 0; n < b.N; n++ {
|
||||||
|
@ -124,7 +125,7 @@ func BenchmarkAPICreateFileMedium(b *testing.B) {
|
||||||
|
|
||||||
onGiteaRunTB(b, func(t testing.TB, u *url.URL) {
|
onGiteaRunTB(b, func(t testing.TB, u *url.URL) {
|
||||||
b := t.(*testing.B)
|
b := t.(*testing.B)
|
||||||
user2 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User) // owner of the repo1 & repo16
|
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User) // owner of the repo1 & repo16
|
||||||
repo1 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository) // public repo
|
repo1 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository) // public repo
|
||||||
|
|
||||||
b.ResetTimer()
|
b.ResetTimer()
|
||||||
|
@ -138,9 +139,9 @@ func BenchmarkAPICreateFileMedium(b *testing.B) {
|
||||||
|
|
||||||
func TestAPICreateFile(t *testing.T) {
|
func TestAPICreateFile(t *testing.T) {
|
||||||
onGiteaRun(t, func(t *testing.T, u *url.URL) {
|
onGiteaRun(t, func(t *testing.T, u *url.URL) {
|
||||||
user2 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User) // owner of the repo1 & repo16
|
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User) // owner of the repo1 & repo16
|
||||||
user3 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 3}).(*models.User) // owner of the repo3, is an org
|
user3 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 3}).(*user_model.User) // owner of the repo3, is an org
|
||||||
user4 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 4}).(*models.User) // owner of neither repos
|
user4 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 4}).(*user_model.User) // owner of neither repos
|
||||||
repo1 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository) // public repo
|
repo1 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository) // public repo
|
||||||
repo3 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 3}).(*models.Repository) // public repo
|
repo3 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 3}).(*models.Repository) // public repo
|
||||||
repo16 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 16}).(*models.Repository) // private repo
|
repo16 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 16}).(*models.Repository) // private repo
|
||||||
|
|
|
@ -12,6 +12,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
@ -38,9 +39,9 @@ func getDeleteFileOptions() *api.DeleteFileOptions {
|
||||||
|
|
||||||
func TestAPIDeleteFile(t *testing.T) {
|
func TestAPIDeleteFile(t *testing.T) {
|
||||||
onGiteaRun(t, func(t *testing.T, u *url.URL) {
|
onGiteaRun(t, func(t *testing.T, u *url.URL) {
|
||||||
user2 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User) // owner of the repo1 & repo16
|
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User) // owner of the repo1 & repo16
|
||||||
user3 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 3}).(*models.User) // owner of the repo3, is an org
|
user3 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 3}).(*user_model.User) // owner of the repo3, is an org
|
||||||
user4 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 4}).(*models.User) // owner of neither repos
|
user4 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 4}).(*user_model.User) // owner of neither repos
|
||||||
repo1 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository) // public repo
|
repo1 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository) // public repo
|
||||||
repo3 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 3}).(*models.Repository) // public repo
|
repo3 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 3}).(*models.Repository) // public repo
|
||||||
repo16 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 16}).(*models.Repository) // private repo
|
repo16 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 16}).(*models.Repository) // private repo
|
||||||
|
|
|
@ -6,11 +6,12 @@ package integrations
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
files_service "code.gitea.io/gitea/services/repository/files"
|
files_service "code.gitea.io/gitea/services/repository/files"
|
||||||
)
|
)
|
||||||
|
|
||||||
func createFileInBranch(user *models.User, repo *models.Repository, treePath, branchName, content string) (*api.FileResponse, error) {
|
func createFileInBranch(user *user_model.User, repo *models.Repository, treePath, branchName, content string) (*api.FileResponse, error) {
|
||||||
opts := &files_service.UpdateRepoFileOptions{
|
opts := &files_service.UpdateRepoFileOptions{
|
||||||
OldBranch: branchName,
|
OldBranch: branchName,
|
||||||
TreePath: treePath,
|
TreePath: treePath,
|
||||||
|
@ -22,6 +23,6 @@ func createFileInBranch(user *models.User, repo *models.Repository, treePath, br
|
||||||
return files_service.CreateOrUpdateRepoFile(repo, user, opts)
|
return files_service.CreateOrUpdateRepoFile(repo, user, opts)
|
||||||
}
|
}
|
||||||
|
|
||||||
func createFile(user *models.User, repo *models.Repository, treePath string) (*api.FileResponse, error) {
|
func createFile(user *user_model.User, repo *models.Repository, treePath string) (*api.FileResponse, error) {
|
||||||
return createFileInBranch(user, repo, treePath, repo.DefaultBranch, "This is a NEW file")
|
return createFileInBranch(user, repo, treePath, repo.DefaultBranch, "This is a NEW file")
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/context"
|
"code.gitea.io/gitea/modules/context"
|
||||||
"code.gitea.io/gitea/modules/git"
|
"code.gitea.io/gitea/modules/git"
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
|
@ -104,9 +105,9 @@ func getExpectedFileResponseForUpdate(commitID, treePath string) *api.FileRespon
|
||||||
|
|
||||||
func TestAPIUpdateFile(t *testing.T) {
|
func TestAPIUpdateFile(t *testing.T) {
|
||||||
onGiteaRun(t, func(t *testing.T, u *url.URL) {
|
onGiteaRun(t, func(t *testing.T, u *url.URL) {
|
||||||
user2 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User) // owner of the repo1 & repo16
|
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User) // owner of the repo1 & repo16
|
||||||
user3 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 3}).(*models.User) // owner of the repo3, is an org
|
user3 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 3}).(*user_model.User) // owner of the repo3, is an org
|
||||||
user4 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 4}).(*models.User) // owner of neither repos
|
user4 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 4}).(*user_model.User) // owner of neither repos
|
||||||
repo1 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository) // public repo
|
repo1 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository) // public repo
|
||||||
repo3 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 3}).(*models.Repository) // public repo
|
repo3 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 3}).(*models.Repository) // public repo
|
||||||
repo16 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 16}).(*models.Repository) // private repo
|
repo16 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 16}).(*models.Repository) // private repo
|
||||||
|
|
|
@ -12,6 +12,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/git"
|
"code.gitea.io/gitea/modules/git"
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
|
@ -53,9 +54,9 @@ func TestAPIGetContentsList(t *testing.T) {
|
||||||
|
|
||||||
func testAPIGetContentsList(t *testing.T, u *url.URL) {
|
func testAPIGetContentsList(t *testing.T, u *url.URL) {
|
||||||
/*** SETUP ***/
|
/*** SETUP ***/
|
||||||
user2 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User) // owner of the repo1 & repo16
|
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User) // owner of the repo1 & repo16
|
||||||
user3 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 3}).(*models.User) // owner of the repo3, is an org
|
user3 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 3}).(*user_model.User) // owner of the repo3, is an org
|
||||||
user4 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 4}).(*models.User) // owner of neither repos
|
user4 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 4}).(*user_model.User) // owner of neither repos
|
||||||
repo1 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository) // public repo
|
repo1 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository) // public repo
|
||||||
repo3 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 3}).(*models.Repository) // public repo
|
repo3 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 3}).(*models.Repository) // public repo
|
||||||
repo16 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 16}).(*models.Repository) // private repo
|
repo16 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 16}).(*models.Repository) // private repo
|
||||||
|
|
|
@ -11,6 +11,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/git"
|
"code.gitea.io/gitea/modules/git"
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
|
@ -54,9 +55,9 @@ func TestAPIGetContents(t *testing.T) {
|
||||||
|
|
||||||
func testAPIGetContents(t *testing.T, u *url.URL) {
|
func testAPIGetContents(t *testing.T, u *url.URL) {
|
||||||
/*** SETUP ***/
|
/*** SETUP ***/
|
||||||
user2 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User) // owner of the repo1 & repo16
|
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User) // owner of the repo1 & repo16
|
||||||
user3 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 3}).(*models.User) // owner of the repo3, is an org
|
user3 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 3}).(*user_model.User) // owner of the repo3, is an org
|
||||||
user4 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 4}).(*models.User) // owner of neither repos
|
user4 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 4}).(*user_model.User) // owner of neither repos
|
||||||
repo1 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository) // public repo
|
repo1 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository) // public repo
|
||||||
repo3 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 3}).(*models.Repository) // public repo
|
repo3 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 3}).(*models.Repository) // public repo
|
||||||
repo16 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 16}).(*models.Repository) // private repo
|
repo16 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 16}).(*models.Repository) // private repo
|
||||||
|
|
|
@ -10,6 +10,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
@ -17,9 +18,9 @@ import (
|
||||||
|
|
||||||
func TestAPIReposGitBlobs(t *testing.T) {
|
func TestAPIReposGitBlobs(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
user2 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User) // owner of the repo1 & repo16
|
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User) // owner of the repo1 & repo16
|
||||||
user3 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 3}).(*models.User) // owner of the repo3
|
user3 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 3}).(*user_model.User) // owner of the repo3
|
||||||
user4 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 4}).(*models.User) // owner of neither repos
|
user4 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 4}).(*user_model.User) // owner of neither repos
|
||||||
repo1 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository) // public repo
|
repo1 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository) // public repo
|
||||||
repo3 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 3}).(*models.Repository) // public repo
|
repo3 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 3}).(*models.Repository) // public repo
|
||||||
repo16 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 16}).(*models.Repository) // private repo
|
repo16 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 16}).(*models.Repository) // private repo
|
||||||
|
|
|
@ -8,8 +8,8 @@ import (
|
||||||
"net/http"
|
"net/http"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
@ -25,7 +25,7 @@ func compareCommitFiles(t *testing.T, expect []string, files []*api.CommitAffect
|
||||||
|
|
||||||
func TestAPIReposGitCommits(t *testing.T) {
|
func TestAPIReposGitCommits(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
// Login as User2.
|
// Login as User2.
|
||||||
session := loginUser(t, user.Name)
|
session := loginUser(t, user.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
@ -53,7 +53,7 @@ func TestAPIReposGitCommits(t *testing.T) {
|
||||||
|
|
||||||
func TestAPIReposGitCommitList(t *testing.T) {
|
func TestAPIReposGitCommitList(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
// Login as User2.
|
// Login as User2.
|
||||||
session := loginUser(t, user.Name)
|
session := loginUser(t, user.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
@ -76,7 +76,7 @@ func TestAPIReposGitCommitList(t *testing.T) {
|
||||||
|
|
||||||
func TestAPIReposGitCommitListPage2Empty(t *testing.T) {
|
func TestAPIReposGitCommitListPage2Empty(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
// Login as User2.
|
// Login as User2.
|
||||||
session := loginUser(t, user.Name)
|
session := loginUser(t, user.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
@ -93,7 +93,7 @@ func TestAPIReposGitCommitListPage2Empty(t *testing.T) {
|
||||||
|
|
||||||
func TestAPIReposGitCommitListDifferentBranch(t *testing.T) {
|
func TestAPIReposGitCommitListDifferentBranch(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
// Login as User2.
|
// Login as User2.
|
||||||
session := loginUser(t, user.Name)
|
session := loginUser(t, user.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
@ -112,7 +112,7 @@ func TestAPIReposGitCommitListDifferentBranch(t *testing.T) {
|
||||||
|
|
||||||
func TestDownloadCommitDiffOrPatch(t *testing.T) {
|
func TestDownloadCommitDiffOrPatch(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
// Login as User2.
|
// Login as User2.
|
||||||
session := loginUser(t, user.Name)
|
session := loginUser(t, user.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
|
|
@ -11,6 +11,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
@ -25,7 +26,7 @@ func TestAPIListGitHooks(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
|
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 37}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 37}).(*models.Repository)
|
||||||
owner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User)
|
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}).(*user_model.User)
|
||||||
|
|
||||||
// user1 is an admin user
|
// user1 is an admin user
|
||||||
session := loginUser(t, "user1")
|
session := loginUser(t, "user1")
|
||||||
|
@ -51,7 +52,7 @@ func TestAPIListGitHooksNoHooks(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
|
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
||||||
owner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User)
|
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}).(*user_model.User)
|
||||||
|
|
||||||
// user1 is an admin user
|
// user1 is an admin user
|
||||||
session := loginUser(t, "user1")
|
session := loginUser(t, "user1")
|
||||||
|
@ -72,7 +73,7 @@ func TestAPIListGitHooksNoAccess(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
|
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
||||||
owner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User)
|
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}).(*user_model.User)
|
||||||
|
|
||||||
session := loginUser(t, owner.Name)
|
session := loginUser(t, owner.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
@ -85,7 +86,7 @@ func TestAPIGetGitHook(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
|
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 37}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 37}).(*models.Repository)
|
||||||
owner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User)
|
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}).(*user_model.User)
|
||||||
|
|
||||||
// user1 is an admin user
|
// user1 is an admin user
|
||||||
session := loginUser(t, "user1")
|
session := loginUser(t, "user1")
|
||||||
|
@ -103,7 +104,7 @@ func TestAPIGetGitHookNoAccess(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
|
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
||||||
owner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User)
|
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}).(*user_model.User)
|
||||||
|
|
||||||
session := loginUser(t, owner.Name)
|
session := loginUser(t, owner.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
@ -116,7 +117,7 @@ func TestAPIEditGitHook(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
|
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
||||||
owner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User)
|
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}).(*user_model.User)
|
||||||
|
|
||||||
// user1 is an admin user
|
// user1 is an admin user
|
||||||
session := loginUser(t, "user1")
|
session := loginUser(t, "user1")
|
||||||
|
@ -146,7 +147,7 @@ func TestAPIEditGitHookNoAccess(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
|
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
||||||
owner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User)
|
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}).(*user_model.User)
|
||||||
|
|
||||||
session := loginUser(t, owner.Name)
|
session := loginUser(t, owner.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
@ -162,7 +163,7 @@ func TestAPIDeleteGitHook(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
|
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 37}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 37}).(*models.Repository)
|
||||||
owner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User)
|
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}).(*user_model.User)
|
||||||
|
|
||||||
// user1 is an admin user
|
// user1 is an admin user
|
||||||
session := loginUser(t, "user1")
|
session := loginUser(t, "user1")
|
||||||
|
@ -185,7 +186,7 @@ func TestAPIDeleteGitHookNoAccess(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
|
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
||||||
owner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User)
|
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}).(*user_model.User)
|
||||||
|
|
||||||
session := loginUser(t, owner.Name)
|
session := loginUser(t, owner.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
|
|
@ -9,8 +9,8 @@ import (
|
||||||
"net/url"
|
"net/url"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
@ -18,7 +18,7 @@ import (
|
||||||
|
|
||||||
func TestAPIReposGitNotes(t *testing.T) {
|
func TestAPIReposGitNotes(t *testing.T) {
|
||||||
onGiteaRun(t, func(*testing.T, *url.URL) {
|
onGiteaRun(t, func(*testing.T, *url.URL) {
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
// Login as User2.
|
// Login as User2.
|
||||||
session := loginUser(t, user.Name)
|
session := loginUser(t, user.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
|
|
@ -8,13 +8,13 @@ import (
|
||||||
"net/http"
|
"net/http"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestAPIReposGitRefs(t *testing.T) {
|
func TestAPIReposGitRefs(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
// Login as User2.
|
// Login as User2.
|
||||||
session := loginUser(t, user.Name)
|
session := loginUser(t, user.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
|
|
@ -11,6 +11,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/git"
|
"code.gitea.io/gitea/modules/git"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
"code.gitea.io/gitea/modules/util"
|
"code.gitea.io/gitea/modules/util"
|
||||||
|
@ -20,7 +21,7 @@ import (
|
||||||
|
|
||||||
func TestAPIGitTags(t *testing.T) {
|
func TestAPIGitTags(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
||||||
// Login as User2.
|
// Login as User2.
|
||||||
session := loginUser(t, user.Name)
|
session := loginUser(t, user.Name)
|
||||||
|
@ -66,7 +67,7 @@ func TestAPIDeleteTagByName(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
|
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
||||||
owner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User)
|
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}).(*user_model.User)
|
||||||
session := loginUser(t, owner.LowerName)
|
session := loginUser(t, owner.LowerName)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
|
||||||
|
|
|
@ -10,13 +10,14 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestAPIReposGitTrees(t *testing.T) {
|
func TestAPIReposGitTrees(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
user2 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User) // owner of the repo1 & repo16
|
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User) // owner of the repo1 & repo16
|
||||||
user3 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 3}).(*models.User) // owner of the repo3
|
user3 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 3}).(*user_model.User) // owner of the repo3
|
||||||
user4 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 4}).(*models.User) // owner of neither repos
|
user4 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 4}).(*user_model.User) // owner of neither repos
|
||||||
repo1 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository) // public repo
|
repo1 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository) // public repo
|
||||||
repo3 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 3}).(*models.Repository) // public repo
|
repo3 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 3}).(*models.Repository) // public repo
|
||||||
repo16 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 16}).(*models.Repository) // private repo
|
repo16 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 16}).(*models.Repository) // private repo
|
||||||
|
|
|
@ -12,6 +12,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/lfs"
|
"code.gitea.io/gitea/modules/lfs"
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
|
@ -22,7 +23,7 @@ import (
|
||||||
func TestAPILFSLocksNotStarted(t *testing.T) {
|
func TestAPILFSLocksNotStarted(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
setting.LFS.StartServer = false
|
setting.LFS.StartServer = false
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
||||||
|
|
||||||
req := NewRequestf(t, "GET", "/%s/%s.git/info/lfs/locks", user.Name, repo.Name)
|
req := NewRequestf(t, "GET", "/%s/%s.git/info/lfs/locks", user.Name, repo.Name)
|
||||||
|
@ -38,7 +39,7 @@ func TestAPILFSLocksNotStarted(t *testing.T) {
|
||||||
func TestAPILFSLocksNotLogin(t *testing.T) {
|
func TestAPILFSLocksNotLogin(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
setting.LFS.StartServer = true
|
setting.LFS.StartServer = true
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
||||||
|
|
||||||
req := NewRequestf(t, "GET", "/%s/%s.git/info/lfs/locks", user.Name, repo.Name)
|
req := NewRequestf(t, "GET", "/%s/%s.git/info/lfs/locks", user.Name, repo.Name)
|
||||||
|
@ -52,14 +53,14 @@ func TestAPILFSLocksNotLogin(t *testing.T) {
|
||||||
func TestAPILFSLocksLogged(t *testing.T) {
|
func TestAPILFSLocksLogged(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
setting.LFS.StartServer = true
|
setting.LFS.StartServer = true
|
||||||
user2 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User) //in org 3
|
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User) //in org 3
|
||||||
user4 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 4}).(*models.User) //in org 3
|
user4 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 4}).(*user_model.User) //in org 3
|
||||||
|
|
||||||
repo1 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
repo1 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
||||||
repo3 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 3}).(*models.Repository) // own by org 3
|
repo3 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 3}).(*models.Repository) // own by org 3
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
user *models.User
|
user *user_model.User
|
||||||
repo *models.Repository
|
repo *models.Repository
|
||||||
path string
|
path string
|
||||||
httpResult int
|
httpResult int
|
||||||
|
@ -81,21 +82,21 @@ func TestAPILFSLocksLogged(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
resultsTests := []struct {
|
resultsTests := []struct {
|
||||||
user *models.User
|
user *user_model.User
|
||||||
repo *models.Repository
|
repo *models.Repository
|
||||||
totalCount int
|
totalCount int
|
||||||
oursCount int
|
oursCount int
|
||||||
theirsCount int
|
theirsCount int
|
||||||
locksOwners []*models.User
|
locksOwners []*user_model.User
|
||||||
locksTimes []time.Time
|
locksTimes []time.Time
|
||||||
}{
|
}{
|
||||||
{user: user2, repo: repo1, totalCount: 4, oursCount: 4, theirsCount: 0, locksOwners: []*models.User{user2, user2, user2, user2}, locksTimes: []time.Time{}},
|
{user: user2, repo: repo1, totalCount: 4, oursCount: 4, theirsCount: 0, locksOwners: []*user_model.User{user2, user2, user2, user2}, locksTimes: []time.Time{}},
|
||||||
{user: user2, repo: repo3, totalCount: 2, oursCount: 1, theirsCount: 1, locksOwners: []*models.User{user2, user4}, locksTimes: []time.Time{}},
|
{user: user2, repo: repo3, totalCount: 2, oursCount: 1, theirsCount: 1, locksOwners: []*user_model.User{user2, user4}, locksTimes: []time.Time{}},
|
||||||
{user: user4, repo: repo3, totalCount: 2, oursCount: 1, theirsCount: 1, locksOwners: []*models.User{user2, user4}, locksTimes: []time.Time{}},
|
{user: user4, repo: repo3, totalCount: 2, oursCount: 1, theirsCount: 1, locksOwners: []*user_model.User{user2, user4}, locksTimes: []time.Time{}},
|
||||||
}
|
}
|
||||||
|
|
||||||
deleteTests := []struct {
|
deleteTests := []struct {
|
||||||
user *models.User
|
user *user_model.User
|
||||||
repo *models.Repository
|
repo *models.Repository
|
||||||
lockID string
|
lockID string
|
||||||
}{}
|
}{}
|
||||||
|
@ -143,7 +144,7 @@ func TestAPILFSLocksLogged(t *testing.T) {
|
||||||
for _, lock := range lfsLocksVerify.Ours {
|
for _, lock := range lfsLocksVerify.Ours {
|
||||||
assert.EqualValues(t, test.user.DisplayName(), lock.Owner.Name)
|
assert.EqualValues(t, test.user.DisplayName(), lock.Owner.Name)
|
||||||
deleteTests = append(deleteTests, struct {
|
deleteTests = append(deleteTests, struct {
|
||||||
user *models.User
|
user *user_model.User
|
||||||
repo *models.Repository
|
repo *models.Repository
|
||||||
lockID string
|
lockID string
|
||||||
}{test.user, test.repo, lock.ID})
|
}{test.user, test.repo, lock.ID})
|
||||||
|
|
|
@ -9,8 +9,8 @@ import (
|
||||||
"path"
|
"path"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/lfs"
|
"code.gitea.io/gitea/modules/lfs"
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
|
@ -28,7 +28,7 @@ func TestAPIRepoLFSMigrateLocal(t *testing.T) {
|
||||||
setting.Migrations.AllowLocalNetworks = true
|
setting.Migrations.AllowLocalNetworks = true
|
||||||
assert.NoError(t, migrations.Init())
|
assert.NoError(t, migrations.Init())
|
||||||
|
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 1}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 1}).(*user_model.User)
|
||||||
session := loginUser(t, user.Name)
|
session := loginUser(t, user.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/json"
|
"code.gitea.io/gitea/modules/json"
|
||||||
"code.gitea.io/gitea/modules/lfs"
|
"code.gitea.io/gitea/modules/lfs"
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
|
@ -26,7 +27,7 @@ func TestAPILFSNotStarted(t *testing.T) {
|
||||||
|
|
||||||
setting.LFS.StartServer = false
|
setting.LFS.StartServer = false
|
||||||
|
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
||||||
|
|
||||||
req := NewRequestf(t, "POST", "/%s/%s.git/info/lfs/objects/batch", user.Name, repo.Name)
|
req := NewRequestf(t, "POST", "/%s/%s.git/info/lfs/objects/batch", user.Name, repo.Name)
|
||||||
|
@ -46,7 +47,7 @@ func TestAPILFSMediaType(t *testing.T) {
|
||||||
|
|
||||||
setting.LFS.StartServer = true
|
setting.LFS.StartServer = true
|
||||||
|
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
||||||
|
|
||||||
req := NewRequestf(t, "POST", "/%s/%s.git/info/lfs/objects/batch", user.Name, repo.Name)
|
req := NewRequestf(t, "POST", "/%s/%s.git/info/lfs/objects/batch", user.Name, repo.Name)
|
||||||
|
|
|
@ -8,13 +8,13 @@ import (
|
||||||
"net/http"
|
"net/http"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestAPIReposRaw(t *testing.T) {
|
func TestAPIReposRaw(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
// Login as User2.
|
// Login as User2.
|
||||||
session := loginUser(t, user.Name)
|
session := loginUser(t, user.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
|
|
@ -9,8 +9,8 @@ import (
|
||||||
"net/http"
|
"net/http"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ import (
|
||||||
|
|
||||||
func TestAPIRepoTags(t *testing.T) {
|
func TestAPIRepoTags(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
// Login as User2.
|
// Login as User2.
|
||||||
session := loginUser(t, user.Name)
|
session := loginUser(t, user.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
|
|
@ -11,6 +11,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
@ -22,7 +23,7 @@ func TestAPIRepoTeams(t *testing.T) {
|
||||||
// publicOrgRepo = user3/repo21
|
// publicOrgRepo = user3/repo21
|
||||||
publicOrgRepo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 32}).(*models.Repository)
|
publicOrgRepo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 32}).(*models.Repository)
|
||||||
// user4
|
// user4
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 4}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 4}).(*user_model.User)
|
||||||
session := loginUser(t, user.Name)
|
session := loginUser(t, user.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
|
||||||
|
@ -62,7 +63,7 @@ func TestAPIRepoTeams(t *testing.T) {
|
||||||
session.MakeRequest(t, req, http.StatusForbidden)
|
session.MakeRequest(t, req, http.StatusForbidden)
|
||||||
|
|
||||||
// AddTeam with user2
|
// AddTeam with user2
|
||||||
user = unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user = unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
session = loginUser(t, user.Name)
|
session = loginUser(t, user.Name)
|
||||||
token = getTokenForLoggedInUser(t, session)
|
token = getTokenForLoggedInUser(t, session)
|
||||||
url = fmt.Sprintf("/api/v1/repos/%s/teams/%s?token=%s", publicOrgRepo.FullName(), "team1", token)
|
url = fmt.Sprintf("/api/v1/repos/%s/teams/%s?token=%s", publicOrgRepo.FullName(), "team1", token)
|
||||||
|
|
|
@ -13,6 +13,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
"code.gitea.io/gitea/modules/util"
|
"code.gitea.io/gitea/modules/util"
|
||||||
|
@ -22,7 +23,7 @@ import (
|
||||||
|
|
||||||
func TestAPIUserReposNotLogin(t *testing.T) {
|
func TestAPIUserReposNotLogin(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
|
|
||||||
req := NewRequestf(t, "GET", "/api/v1/users/%s/repos", user.Name)
|
req := NewRequestf(t, "GET", "/api/v1/users/%s/repos", user.Name)
|
||||||
resp := MakeRequest(t, req, http.StatusOK)
|
resp := MakeRequest(t, req, http.StatusOK)
|
||||||
|
@ -53,11 +54,11 @@ func TestAPISearchRepo(t *testing.T) {
|
||||||
assert.False(t, repo.Private)
|
assert.False(t, repo.Private)
|
||||||
}
|
}
|
||||||
|
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 15}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 15}).(*user_model.User)
|
||||||
user2 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 16}).(*models.User)
|
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 16}).(*user_model.User)
|
||||||
user3 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 18}).(*models.User)
|
user3 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 18}).(*user_model.User)
|
||||||
user4 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 20}).(*models.User)
|
user4 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 20}).(*user_model.User)
|
||||||
orgUser := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 17}).(*models.User)
|
orgUser := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 17}).(*user_model.User)
|
||||||
|
|
||||||
oldAPIDefaultNum := setting.API.DefaultPagingNum
|
oldAPIDefaultNum := setting.API.DefaultPagingNum
|
||||||
defer func() {
|
defer func() {
|
||||||
|
@ -66,7 +67,7 @@ func TestAPISearchRepo(t *testing.T) {
|
||||||
setting.API.DefaultPagingNum = 10
|
setting.API.DefaultPagingNum = 10
|
||||||
|
|
||||||
// Map of expected results, where key is user for login
|
// Map of expected results, where key is user for login
|
||||||
type expectedResults map[*models.User]struct {
|
type expectedResults map[*user_model.User]struct {
|
||||||
count int
|
count int
|
||||||
repoOwnerID int64
|
repoOwnerID int64
|
||||||
repoName string
|
repoName string
|
||||||
|
@ -246,13 +247,13 @@ func TestAPIViewRepo(t *testing.T) {
|
||||||
|
|
||||||
func TestAPIOrgRepos(t *testing.T) {
|
func TestAPIOrgRepos(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
user2 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 1}).(*models.User)
|
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 1}).(*user_model.User)
|
||||||
user3 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 5}).(*models.User)
|
user3 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 5}).(*user_model.User)
|
||||||
// User3 is an Org. Check their repos.
|
// User3 is an Org. Check their repos.
|
||||||
sourceOrg := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 3}).(*models.User)
|
sourceOrg := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 3}).(*user_model.User)
|
||||||
|
|
||||||
expectedResults := map[*models.User]struct {
|
expectedResults := map[*user_model.User]struct {
|
||||||
count int
|
count int
|
||||||
includesPrivate bool
|
includesPrivate bool
|
||||||
}{
|
}{
|
||||||
|
@ -292,7 +293,7 @@ func TestAPIOrgRepos(t *testing.T) {
|
||||||
|
|
||||||
func TestAPIGetRepoByIDUnauthorized(t *testing.T) {
|
func TestAPIGetRepoByIDUnauthorized(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 4}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 4}).(*user_model.User)
|
||||||
session := loginUser(t, user.Name)
|
session := loginUser(t, user.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
req := NewRequestf(t, "GET", "/api/v1/repositories/2?token="+token)
|
req := NewRequestf(t, "GET", "/api/v1/repositories/2?token="+token)
|
||||||
|
@ -316,7 +317,7 @@ func TestAPIRepoMigrate(t *testing.T) {
|
||||||
|
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
for _, testCase := range testCases {
|
for _, testCase := range testCases {
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: testCase.ctxUserID}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: testCase.ctxUserID}).(*user_model.User)
|
||||||
session := loginUser(t, user.Name)
|
session := loginUser(t, user.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
req := NewRequestWithJSON(t, "POST", "/api/v1/repos/migrate?token="+token, &api.MigrateRepoOptions{
|
req := NewRequestWithJSON(t, "POST", "/api/v1/repos/migrate?token="+token, &api.MigrateRepoOptions{
|
||||||
|
@ -361,7 +362,7 @@ func testAPIRepoMigrateConflict(t *testing.T, u *url.URL) {
|
||||||
defer util.RemoveAll(dstPath)
|
defer util.RemoveAll(dstPath)
|
||||||
t.Run("CreateRepo", doAPICreateRepository(httpContext, false))
|
t.Run("CreateRepo", doAPICreateRepository(httpContext, false))
|
||||||
|
|
||||||
user, err := models.GetUserByName(httpContext.Username)
|
user, err := user_model.GetUserByName(httpContext.Username)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
userID := user.ID
|
userID := user.ID
|
||||||
|
|
||||||
|
@ -395,7 +396,7 @@ func TestAPIOrgRepoCreate(t *testing.T) {
|
||||||
|
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
for _, testCase := range testCases {
|
for _, testCase := range testCases {
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: testCase.ctxUserID}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: testCase.ctxUserID}).(*user_model.User)
|
||||||
session := loginUser(t, user.Name)
|
session := loginUser(t, user.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
req := NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/org/%s/repos?token="+token, testCase.orgName), &api.CreateRepoOption{
|
req := NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/org/%s/repos?token="+token, testCase.orgName), &api.CreateRepoOption{
|
||||||
|
@ -463,7 +464,7 @@ func TestAPIRepoTransfer(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
|
|
||||||
//create repo to move
|
//create repo to move
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 1}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 1}).(*user_model.User)
|
||||||
session := loginUser(t, user.Name)
|
session := loginUser(t, user.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
repoName := "moveME"
|
repoName := "moveME"
|
||||||
|
@ -480,7 +481,7 @@ func TestAPIRepoTransfer(t *testing.T) {
|
||||||
|
|
||||||
//start testing
|
//start testing
|
||||||
for _, testCase := range testCases {
|
for _, testCase := range testCases {
|
||||||
user = unittest.AssertExistsAndLoadBean(t, &models.User{ID: testCase.ctxUserID}).(*models.User)
|
user = unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: testCase.ctxUserID}).(*user_model.User)
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: apiRepo.ID}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: apiRepo.ID}).(*models.Repository)
|
||||||
session = loginUser(t, user.Name)
|
session = loginUser(t, user.Name)
|
||||||
token = getTokenForLoggedInUser(t, session)
|
token = getTokenForLoggedInUser(t, session)
|
||||||
|
@ -499,7 +500,7 @@ func TestAPIRepoTransfer(t *testing.T) {
|
||||||
func TestAPIGenerateRepo(t *testing.T) {
|
func TestAPIGenerateRepo(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
|
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 1}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 1}).(*user_model.User)
|
||||||
session := loginUser(t, user.Name)
|
session := loginUser(t, user.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
|
||||||
|
@ -535,7 +536,7 @@ func TestAPIGenerateRepo(t *testing.T) {
|
||||||
|
|
||||||
func TestAPIRepoGetReviewers(t *testing.T) {
|
func TestAPIRepoGetReviewers(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
session := loginUser(t, user.Name)
|
session := loginUser(t, user.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
||||||
|
@ -549,7 +550,7 @@ func TestAPIRepoGetReviewers(t *testing.T) {
|
||||||
|
|
||||||
func TestAPIRepoGetAssignees(t *testing.T) {
|
func TestAPIRepoGetAssignees(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
session := loginUser(t, user.Name)
|
session := loginUser(t, user.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
||||||
|
|
|
@ -12,6 +12,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
@ -51,9 +52,9 @@ func TestAPITopicSearch(t *testing.T) {
|
||||||
|
|
||||||
func TestAPIRepoTopic(t *testing.T) {
|
func TestAPIRepoTopic(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
user2 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User) // owner of repo2
|
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User) // owner of repo2
|
||||||
user3 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 3}).(*models.User) // owner of repo3
|
user3 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 3}).(*user_model.User) // owner of repo3
|
||||||
user4 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 4}).(*models.User) // write access to repo 3
|
user4 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 4}).(*user_model.User) // write access to repo 3
|
||||||
repo2 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 2}).(*models.Repository)
|
repo2 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 2}).(*models.Repository)
|
||||||
repo3 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 3}).(*models.Repository)
|
repo3 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 3}).(*models.Repository)
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/convert"
|
"code.gitea.io/gitea/modules/convert"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
|
|
||||||
|
@ -23,7 +24,7 @@ func TestAPITeam(t *testing.T) {
|
||||||
|
|
||||||
teamUser := unittest.AssertExistsAndLoadBean(t, &models.TeamUser{}).(*models.TeamUser)
|
teamUser := unittest.AssertExistsAndLoadBean(t, &models.TeamUser{}).(*models.TeamUser)
|
||||||
team := unittest.AssertExistsAndLoadBean(t, &models.Team{ID: teamUser.TeamID}).(*models.Team)
|
team := unittest.AssertExistsAndLoadBean(t, &models.Team{ID: teamUser.TeamID}).(*models.Team)
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: teamUser.UID}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: teamUser.UID}).(*user_model.User)
|
||||||
|
|
||||||
session := loginUser(t, user.Name)
|
session := loginUser(t, user.Name)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
@ -37,7 +38,7 @@ func TestAPITeam(t *testing.T) {
|
||||||
|
|
||||||
// non team member user will not access the teams details
|
// non team member user will not access the teams details
|
||||||
teamUser2 := unittest.AssertExistsAndLoadBean(t, &models.TeamUser{ID: 3}).(*models.TeamUser)
|
teamUser2 := unittest.AssertExistsAndLoadBean(t, &models.TeamUser{ID: 3}).(*models.TeamUser)
|
||||||
user2 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: teamUser2.UID}).(*models.User)
|
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: teamUser2.UID}).(*user_model.User)
|
||||||
|
|
||||||
session = loginUser(t, user2.Name)
|
session = loginUser(t, user2.Name)
|
||||||
token = getTokenForLoggedInUser(t, session)
|
token = getTokenForLoggedInUser(t, session)
|
||||||
|
@ -48,11 +49,11 @@ func TestAPITeam(t *testing.T) {
|
||||||
_ = session.MakeRequest(t, req, http.StatusUnauthorized)
|
_ = session.MakeRequest(t, req, http.StatusUnauthorized)
|
||||||
|
|
||||||
// Get an admin user able to create, update and delete teams.
|
// Get an admin user able to create, update and delete teams.
|
||||||
user = unittest.AssertExistsAndLoadBean(t, &models.User{ID: 1}).(*models.User)
|
user = unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 1}).(*user_model.User)
|
||||||
session = loginUser(t, user.Name)
|
session = loginUser(t, user.Name)
|
||||||
token = getTokenForLoggedInUser(t, session)
|
token = getTokenForLoggedInUser(t, session)
|
||||||
|
|
||||||
org := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 6}).(*models.User)
|
org := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 6}).(*user_model.User)
|
||||||
|
|
||||||
// Create team.
|
// Create team.
|
||||||
teamToCreate := &api.CreateTeamOption{
|
teamToCreate := &api.CreateTeamOption{
|
||||||
|
@ -139,8 +140,8 @@ type TeamSearchResults struct {
|
||||||
func TestAPITeamSearch(t *testing.T) {
|
func TestAPITeamSearch(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
|
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
org := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 3}).(*models.User)
|
org := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 3}).(*user_model.User)
|
||||||
|
|
||||||
var results TeamSearchResults
|
var results TeamSearchResults
|
||||||
|
|
||||||
|
@ -155,7 +156,7 @@ func TestAPITeamSearch(t *testing.T) {
|
||||||
assert.Equal(t, "test_team", results.Data[0].Name)
|
assert.Equal(t, "test_team", results.Data[0].Name)
|
||||||
|
|
||||||
// no access if not organization member
|
// no access if not organization member
|
||||||
user5 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 5}).(*models.User)
|
user5 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 5}).(*user_model.User)
|
||||||
session = loginUser(t, user5.Name)
|
session = loginUser(t, user5.Name)
|
||||||
csrf = GetCSRF(t, session, "/"+org.Name)
|
csrf = GetCSRF(t, session, "/"+org.Name)
|
||||||
req = NewRequestf(t, "GET", "/api/v1/orgs/%s/teams/search?q=%s", org.Name, "team")
|
req = NewRequestf(t, "GET", "/api/v1/orgs/%s/teams/search?q=%s", org.Name, "team")
|
||||||
|
|
|
@ -9,8 +9,8 @@ import (
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/convert"
|
"code.gitea.io/gitea/modules/convert"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ func TestAPITeamUser(t *testing.T) {
|
||||||
var user2 *api.User
|
var user2 *api.User
|
||||||
DecodeJSON(t, resp, &user2)
|
DecodeJSON(t, resp, &user2)
|
||||||
user2.Created = user2.Created.In(time.Local)
|
user2.Created = user2.Created.In(time.Local)
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{Name: "user2"}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{Name: "user2"}).(*user_model.User)
|
||||||
|
|
||||||
expectedUser := convert.ToUser(user, user)
|
expectedUser := convert.ToUser(user, user)
|
||||||
|
|
||||||
|
|
|
@ -10,13 +10,14 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
)
|
)
|
||||||
|
|
||||||
// TestAPICreateAndDeleteToken tests that token that was just created can be deleted
|
// TestAPICreateAndDeleteToken tests that token that was just created can be deleted
|
||||||
func TestAPICreateAndDeleteToken(t *testing.T) {
|
func TestAPICreateAndDeleteToken(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 1}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 1}).(*user_model.User)
|
||||||
|
|
||||||
req := NewRequestWithJSON(t, "POST", "/api/v1/users/user1/tokens", map[string]string{
|
req := NewRequestWithJSON(t, "POST", "/api/v1/users/user1/tokens", map[string]string{
|
||||||
"name": "test-key-1",
|
"name": "test-key-1",
|
||||||
|
@ -56,7 +57,7 @@ func TestAPICreateAndDeleteToken(t *testing.T) {
|
||||||
// TestAPIDeleteMissingToken ensures that error is thrown when token not found
|
// TestAPIDeleteMissingToken ensures that error is thrown when token not found
|
||||||
func TestAPIDeleteMissingToken(t *testing.T) {
|
func TestAPIDeleteMissingToken(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 1}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 1}).(*user_model.User)
|
||||||
|
|
||||||
req := NewRequestf(t, "DELETE", "/api/v1/users/user1/tokens/%d", unittest.NonexistentID)
|
req := NewRequestf(t, "DELETE", "/api/v1/users/user1/tokens/%d", unittest.NonexistentID)
|
||||||
req = AddBasicAuthHeader(req, user.Name)
|
req = AddBasicAuthHeader(req, user.Name)
|
||||||
|
|
|
@ -9,8 +9,8 @@ import (
|
||||||
"net/http"
|
"net/http"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
@ -25,7 +25,7 @@ func TestUserOrgs(t *testing.T) {
|
||||||
|
|
||||||
orgs := getUserOrgs(t, adminUsername, normalUsername)
|
orgs := getUserOrgs(t, adminUsername, normalUsername)
|
||||||
|
|
||||||
user3 := unittest.AssertExistsAndLoadBean(t, &models.User{Name: "user3"}).(*models.User)
|
user3 := unittest.AssertExistsAndLoadBean(t, &user_model.User{Name: "user3"}).(*user_model.User)
|
||||||
|
|
||||||
assert.Equal(t, []*api.Organization{
|
assert.Equal(t, []*api.Organization{
|
||||||
{
|
{
|
||||||
|
@ -81,7 +81,7 @@ func TestMyOrgs(t *testing.T) {
|
||||||
resp := session.MakeRequest(t, req, http.StatusOK)
|
resp := session.MakeRequest(t, req, http.StatusOK)
|
||||||
var orgs []*api.Organization
|
var orgs []*api.Organization
|
||||||
DecodeJSON(t, resp, &orgs)
|
DecodeJSON(t, resp, &orgs)
|
||||||
user3 := unittest.AssertExistsAndLoadBean(t, &models.User{Name: "user3"}).(*models.User)
|
user3 := unittest.AssertExistsAndLoadBean(t, &user_model.User{Name: "user3"}).(*user_model.User)
|
||||||
|
|
||||||
assert.Equal(t, []*api.Organization{
|
assert.Equal(t, []*api.Organization{
|
||||||
{
|
{
|
||||||
|
|
|
@ -9,8 +9,8 @@ import (
|
||||||
"net/http"
|
"net/http"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
|
|
||||||
|
@ -49,10 +49,10 @@ func TestAPIUserSearchNotLoggedIn(t *testing.T) {
|
||||||
var results SearchResults
|
var results SearchResults
|
||||||
DecodeJSON(t, resp, &results)
|
DecodeJSON(t, resp, &results)
|
||||||
assert.NotEmpty(t, results.Data)
|
assert.NotEmpty(t, results.Data)
|
||||||
var modelUser *models.User
|
var modelUser *user_model.User
|
||||||
for _, user := range results.Data {
|
for _, user := range results.Data {
|
||||||
assert.Contains(t, user.UserName, query)
|
assert.Contains(t, user.UserName, query)
|
||||||
modelUser = unittest.AssertExistsAndLoadBean(t, &models.User{ID: user.ID}).(*models.User)
|
modelUser = unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: user.ID}).(*user_model.User)
|
||||||
if modelUser.KeepEmailPrivate {
|
if modelUser.KeepEmailPrivate {
|
||||||
assert.EqualValues(t, fmt.Sprintf("%s@%s", modelUser.LowerName, setting.Service.NoReplyAddress), user.Email)
|
assert.EqualValues(t, fmt.Sprintf("%s@%s", modelUser.LowerName, setting.Service.NoReplyAddress), user.Email)
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -11,12 +11,13 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestChangeDefaultBranch(t *testing.T) {
|
func TestChangeDefaultBranch(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
||||||
owner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User)
|
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}).(*user_model.User)
|
||||||
|
|
||||||
session := loginUser(t, owner.Name)
|
session := loginUser(t, owner.Name)
|
||||||
branchesURL := fmt.Sprintf("/%s/%s/settings/branches", owner.Name, repo.Name)
|
branchesURL := fmt.Sprintf("/%s/%s/settings/branches", owner.Name, repo.Name)
|
||||||
|
|
|
@ -15,7 +15,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func assertUserDeleted(t *testing.T, userID int64) {
|
func assertUserDeleted(t *testing.T, userID int64) {
|
||||||
unittest.AssertNotExistsBean(t, &models.User{ID: userID})
|
unittest.AssertNotExistsBean(t, &user_model.User{ID: userID})
|
||||||
unittest.AssertNotExistsBean(t, &user_model.Follow{UserID: userID})
|
unittest.AssertNotExistsBean(t, &user_model.Follow{UserID: userID})
|
||||||
unittest.AssertNotExistsBean(t, &user_model.Follow{FollowID: userID})
|
unittest.AssertNotExistsBean(t, &user_model.Follow{FollowID: userID})
|
||||||
unittest.AssertNotExistsBean(t, &models.Repository{OwnerID: userID})
|
unittest.AssertNotExistsBean(t, &models.Repository{OwnerID: userID})
|
||||||
|
@ -38,7 +38,7 @@ func TestUserDeleteAccount(t *testing.T) {
|
||||||
session.MakeRequest(t, req, http.StatusFound)
|
session.MakeRequest(t, req, http.StatusFound)
|
||||||
|
|
||||||
assertUserDeleted(t, 8)
|
assertUserDeleted(t, 8)
|
||||||
unittest.CheckConsistencyFor(t, &models.User{})
|
unittest.CheckConsistencyFor(t, &user_model.User{})
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestUserDeleteAccountStillOwnRepos(t *testing.T) {
|
func TestUserDeleteAccountStillOwnRepos(t *testing.T) {
|
||||||
|
@ -53,5 +53,5 @@ func TestUserDeleteAccountStillOwnRepos(t *testing.T) {
|
||||||
session.MakeRequest(t, req, http.StatusFound)
|
session.MakeRequest(t, req, http.StatusFound)
|
||||||
|
|
||||||
// user should not have been deleted, because the user still owns repos
|
// user should not have been deleted, because the user still owns repos
|
||||||
unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2})
|
unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2})
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,6 +10,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestEmptyRepo(t *testing.T) {
|
func TestEmptyRepo(t *testing.T) {
|
||||||
|
@ -21,7 +22,7 @@ func TestEmptyRepo(t *testing.T) {
|
||||||
"graph",
|
"graph",
|
||||||
}
|
}
|
||||||
emptyRepo := unittest.AssertExistsAndLoadBean(t, &models.Repository{}, unittest.Cond("is_empty = ?", true)).(*models.Repository)
|
emptyRepo := unittest.AssertExistsAndLoadBean(t, &models.Repository{}, unittest.Cond("is_empty = ?", true)).(*models.Repository)
|
||||||
owner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: emptyRepo.OwnerID}).(*models.User)
|
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: emptyRepo.OwnerID}).(*user_model.User)
|
||||||
for _, subpath := range subpaths {
|
for _, subpath := range subpaths {
|
||||||
req := NewRequestf(t, "GET", "/%s/%s/%s", owner.Name, emptyRepo.Name, subpath)
|
req := NewRequestf(t, "GET", "/%s/%s/%s", owner.Name, emptyRepo.Name, subpath)
|
||||||
MakeRequest(t, req, http.StatusNotFound)
|
MakeRequest(t, req, http.StatusNotFound)
|
||||||
|
|
|
@ -12,6 +12,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/eventsource"
|
"code.gitea.io/gitea/modules/eventsource"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
|
|
||||||
|
@ -51,7 +52,7 @@ func TestEventSourceManagerRun(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
user2 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
repo1 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
repo1 := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
||||||
thread5 := unittest.AssertExistsAndLoadBean(t, &models.Notification{ID: 5}).(*models.Notification)
|
thread5 := unittest.AssertExistsAndLoadBean(t, &models.Notification{ID: 5}).(*models.Notification)
|
||||||
assert.NoError(t, thread5.LoadAttributes())
|
assert.NoError(t, thread5.LoadAttributes())
|
||||||
|
|
|
@ -19,6 +19,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/git"
|
"code.gitea.io/gitea/modules/git"
|
||||||
"code.gitea.io/gitea/modules/lfs"
|
"code.gitea.io/gitea/modules/lfs"
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
|
@ -429,7 +430,7 @@ func doProtectBranch(ctx APITestContext, branch string, userToWhitelist string,
|
||||||
})
|
})
|
||||||
ctx.Session.MakeRequest(t, req, http.StatusFound)
|
ctx.Session.MakeRequest(t, req, http.StatusFound)
|
||||||
} else {
|
} else {
|
||||||
user, err := models.GetUserByName(userToWhitelist)
|
user, err := user_model.GetUserByName(userToWhitelist)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
// Change branch to protected
|
// Change branch to protected
|
||||||
req := NewRequestWithValues(t, "POST", fmt.Sprintf("/%s/%s/settings/branches/%s", url.PathEscape(ctx.Username), url.PathEscape(ctx.Reponame), url.PathEscape(branch)), map[string]string{
|
req := NewRequestWithValues(t, "POST", fmt.Sprintf("/%s/%s/settings/branches/%s", url.PathEscape(ctx.Username), url.PathEscape(ctx.Reponame), url.PathEscape(branch)), map[string]string{
|
||||||
|
|
|
@ -11,8 +11,8 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/process"
|
"code.gitea.io/gitea/modules/process"
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
|
@ -61,7 +61,7 @@ func TestGPGGit(t *testing.T) {
|
||||||
setting.Repository.Signing.SigningKey = rootKeyID
|
setting.Repository.Signing.SigningKey = rootKeyID
|
||||||
setting.Repository.Signing.SigningName = "gitea"
|
setting.Repository.Signing.SigningName = "gitea"
|
||||||
setting.Repository.Signing.SigningEmail = "gitea@fake.local"
|
setting.Repository.Signing.SigningEmail = "gitea@fake.local"
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{Name: username}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{Name: username}).(*user_model.User)
|
||||||
|
|
||||||
setting.Repository.Signing.InitialCommit = []string{"never"}
|
setting.Repository.Signing.InitialCommit = []string{"never"}
|
||||||
setting.Repository.Signing.CRUDActions = []string{"never"}
|
setting.Repository.Signing.CRUDActions = []string{"never"}
|
||||||
|
@ -326,7 +326,7 @@ func TestGPGGit(t *testing.T) {
|
||||||
}, false)
|
}, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
func crudActionCreateFile(t *testing.T, ctx APITestContext, user *models.User, from, to, path string, callback ...func(*testing.T, api.FileResponse)) func(*testing.T) {
|
func crudActionCreateFile(t *testing.T, ctx APITestContext, user *user_model.User, from, to, path string, callback ...func(*testing.T, api.FileResponse)) func(*testing.T) {
|
||||||
return doAPICreateFile(ctx, path, &api.CreateFileOptions{
|
return doAPICreateFile(ctx, path, &api.CreateFileOptions{
|
||||||
FileOptions: api.FileOptions{
|
FileOptions: api.FileOptions{
|
||||||
BranchName: from,
|
BranchName: from,
|
||||||
|
|
|
@ -15,6 +15,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/indexer/issues"
|
"code.gitea.io/gitea/modules/indexer/issues"
|
||||||
"code.gitea.io/gitea/modules/references"
|
"code.gitea.io/gitea/modules/references"
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
|
@ -61,7 +62,7 @@ func TestNoLoginViewIssues(t *testing.T) {
|
||||||
func TestViewIssuesSortByType(t *testing.T) {
|
func TestViewIssuesSortByType(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
|
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 1}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 1}).(*user_model.User)
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
||||||
|
|
||||||
session := loginUser(t, user.Name)
|
session := loginUser(t, user.Name)
|
||||||
|
|
|
@ -8,8 +8,8 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
"code.gitea.io/gitea/services/migrations"
|
"code.gitea.io/gitea/services/migrations"
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ import (
|
||||||
func TestMigrateLocalPath(t *testing.T) {
|
func TestMigrateLocalPath(t *testing.T) {
|
||||||
assert.NoError(t, unittest.PrepareTestDatabase())
|
assert.NoError(t, unittest.PrepareTestDatabase())
|
||||||
|
|
||||||
adminUser := unittest.AssertExistsAndLoadBean(t, &models.User{Name: "user1"}).(*models.User)
|
adminUser := unittest.AssertExistsAndLoadBean(t, &user_model.User{Name: "user1"}).(*user_model.User)
|
||||||
|
|
||||||
old := setting.ImportLocalPaths
|
old := setting.ImportLocalPaths
|
||||||
setting.ImportLocalPaths = true
|
setting.ImportLocalPaths = true
|
||||||
|
|
|
@ -10,6 +10,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/git"
|
"code.gitea.io/gitea/modules/git"
|
||||||
"code.gitea.io/gitea/modules/migration"
|
"code.gitea.io/gitea/modules/migration"
|
||||||
"code.gitea.io/gitea/modules/repository"
|
"code.gitea.io/gitea/modules/repository"
|
||||||
|
@ -22,7 +23,7 @@ import (
|
||||||
func TestMirrorPull(t *testing.T) {
|
func TestMirrorPull(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
|
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
||||||
repoPath := models.RepoPath(user.Name, repo.Name)
|
repoPath := models.RepoPath(user.Name, repo.Name)
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/git"
|
"code.gitea.io/gitea/modules/git"
|
||||||
"code.gitea.io/gitea/modules/repository"
|
"code.gitea.io/gitea/modules/repository"
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
|
@ -32,7 +33,7 @@ func testMirrorPush(t *testing.T, u *url.URL) {
|
||||||
setting.Migrations.AllowLocalNetworks = true
|
setting.Migrations.AllowLocalNetworks = true
|
||||||
assert.NoError(t, migrations.Init())
|
assert.NoError(t, migrations.Init())
|
||||||
|
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
srcRepo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
srcRepo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
||||||
|
|
||||||
mirrorRepo, err := repository.CreateRepository(user, user, models.CreateRepoOptions{
|
mirrorRepo, err := repository.CreateRepository(user, user, models.CreateRepoOptions{
|
||||||
|
|
|
@ -11,6 +11,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
@ -112,9 +113,9 @@ func doCheckOrgCounts(username string, orgCounts map[string]int, strict bool, ca
|
||||||
}
|
}
|
||||||
|
|
||||||
return func(t *testing.T) {
|
return func(t *testing.T) {
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{
|
||||||
Name: username,
|
Name: username,
|
||||||
}).(*models.User)
|
}).(*user_model.User)
|
||||||
|
|
||||||
orgs, err := models.FindOrgs(models.FindOrgOptions{
|
orgs, err := models.FindOrgs(models.FindOrgOptions{
|
||||||
UserID: user.ID,
|
UserID: user.ID,
|
||||||
|
|
|
@ -11,6 +11,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
@ -26,7 +27,7 @@ const privateActivityTestOtherUser = "user4"
|
||||||
|
|
||||||
func testPrivateActivityDoSomethingForActionEntries(t *testing.T) {
|
func testPrivateActivityDoSomethingForActionEntries(t *testing.T) {
|
||||||
repoBefore := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
repoBefore := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
||||||
owner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repoBefore.OwnerID}).(*models.User)
|
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repoBefore.OwnerID}).(*user_model.User)
|
||||||
|
|
||||||
session := loginUser(t, privateActivityTestUser)
|
session := loginUser(t, privateActivityTestUser)
|
||||||
token := getTokenForLoggedInUser(t, session)
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
|
|
@ -18,6 +18,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/models/webhook"
|
"code.gitea.io/gitea/models/webhook"
|
||||||
"code.gitea.io/gitea/modules/git"
|
"code.gitea.io/gitea/modules/git"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
|
@ -221,9 +222,9 @@ func TestCantMergeConflict(t *testing.T) {
|
||||||
session.MakeRequest(t, req, 201)
|
session.MakeRequest(t, req, 201)
|
||||||
|
|
||||||
// Now this PR will be marked conflict - or at least a race will do - so drop down to pure code at this point...
|
// Now this PR will be marked conflict - or at least a race will do - so drop down to pure code at this point...
|
||||||
user1 := unittest.AssertExistsAndLoadBean(t, &models.User{
|
user1 := unittest.AssertExistsAndLoadBean(t, &user_model.User{
|
||||||
Name: "user1",
|
Name: "user1",
|
||||||
}).(*models.User)
|
}).(*user_model.User)
|
||||||
repo1 := unittest.AssertExistsAndLoadBean(t, &models.Repository{
|
repo1 := unittest.AssertExistsAndLoadBean(t, &models.Repository{
|
||||||
OwnerID: user1.ID,
|
OwnerID: user1.ID,
|
||||||
Name: "repo1",
|
Name: "repo1",
|
||||||
|
@ -258,9 +259,9 @@ func TestCantMergeUnrelated(t *testing.T) {
|
||||||
|
|
||||||
// Now we want to create a commit on a branch that is totally unrelated to our current head
|
// Now we want to create a commit on a branch that is totally unrelated to our current head
|
||||||
// Drop down to pure code at this point
|
// Drop down to pure code at this point
|
||||||
user1 := unittest.AssertExistsAndLoadBean(t, &models.User{
|
user1 := unittest.AssertExistsAndLoadBean(t, &user_model.User{
|
||||||
Name: "user1",
|
Name: "user1",
|
||||||
}).(*models.User)
|
}).(*user_model.User)
|
||||||
repo1 := unittest.AssertExistsAndLoadBean(t, &models.Repository{
|
repo1 := unittest.AssertExistsAndLoadBean(t, &models.Repository{
|
||||||
OwnerID: user1.ID,
|
OwnerID: user1.ID,
|
||||||
Name: "repo1",
|
Name: "repo1",
|
||||||
|
|
|
@ -12,6 +12,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
pull_service "code.gitea.io/gitea/services/pull"
|
pull_service "code.gitea.io/gitea/services/pull"
|
||||||
repo_service "code.gitea.io/gitea/services/repository"
|
repo_service "code.gitea.io/gitea/services/repository"
|
||||||
files_service "code.gitea.io/gitea/services/repository/files"
|
files_service "code.gitea.io/gitea/services/repository/files"
|
||||||
|
@ -22,8 +23,8 @@ import (
|
||||||
func TestAPIPullUpdate(t *testing.T) {
|
func TestAPIPullUpdate(t *testing.T) {
|
||||||
onGiteaRun(t, func(t *testing.T, giteaURL *url.URL) {
|
onGiteaRun(t, func(t *testing.T, giteaURL *url.URL) {
|
||||||
//Create PR to test
|
//Create PR to test
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
org26 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 26}).(*models.User)
|
org26 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 26}).(*user_model.User)
|
||||||
pr := createOutdatedPR(t, user, org26)
|
pr := createOutdatedPR(t, user, org26)
|
||||||
|
|
||||||
//Test GetDiverging
|
//Test GetDiverging
|
||||||
|
@ -50,8 +51,8 @@ func TestAPIPullUpdate(t *testing.T) {
|
||||||
func TestAPIPullUpdateByRebase(t *testing.T) {
|
func TestAPIPullUpdateByRebase(t *testing.T) {
|
||||||
onGiteaRun(t, func(t *testing.T, giteaURL *url.URL) {
|
onGiteaRun(t, func(t *testing.T, giteaURL *url.URL) {
|
||||||
//Create PR to test
|
//Create PR to test
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
org26 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 26}).(*models.User)
|
org26 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 26}).(*user_model.User)
|
||||||
pr := createOutdatedPR(t, user, org26)
|
pr := createOutdatedPR(t, user, org26)
|
||||||
|
|
||||||
//Test GetDiverging
|
//Test GetDiverging
|
||||||
|
@ -75,7 +76,7 @@ func TestAPIPullUpdateByRebase(t *testing.T) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func createOutdatedPR(t *testing.T, actor, forkOrg *models.User) *models.PullRequest {
|
func createOutdatedPR(t *testing.T, actor, forkOrg *user_model.User) *models.PullRequest {
|
||||||
baseRepo, err := repo_service.CreateRepository(actor, actor, models.CreateRepoOptions{
|
baseRepo, err := repo_service.CreateRepository(actor, actor, models.CreateRepoOptions{
|
||||||
Name: "repo-pr-update",
|
Name: "repo-pr-update",
|
||||||
Description: "repo-tmp-pr-update description",
|
Description: "repo-tmp-pr-update description",
|
||||||
|
|
|
@ -10,14 +10,14 @@ import (
|
||||||
"net/http/httptest"
|
"net/http/httptest"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
|
|
||||||
func testRepoFork(t *testing.T, session *TestSession, ownerName, repoName, forkOwnerName, forkRepoName string) *httptest.ResponseRecorder {
|
func testRepoFork(t *testing.T, session *TestSession, ownerName, repoName, forkOwnerName, forkRepoName string) *httptest.ResponseRecorder {
|
||||||
forkOwner := unittest.AssertExistsAndLoadBean(t, &models.User{Name: forkOwnerName}).(*models.User)
|
forkOwner := unittest.AssertExistsAndLoadBean(t, &user_model.User{Name: forkOwnerName}).(*user_model.User)
|
||||||
|
|
||||||
// Step0: check the existence of the to-fork repo
|
// Step0: check the existence of the to-fork repo
|
||||||
req := NewRequestf(t, "GET", "/%s/%s", forkOwnerName, forkRepoName)
|
req := NewRequestf(t, "GET", "/%s/%s", forkOwnerName, forkRepoName)
|
||||||
|
|
|
@ -10,14 +10,14 @@ import (
|
||||||
"net/http/httptest"
|
"net/http/httptest"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
|
|
||||||
func testRepoGenerate(t *testing.T, session *TestSession, templateOwnerName, templateRepoName, generateOwnerName, generateRepoName string) *httptest.ResponseRecorder {
|
func testRepoGenerate(t *testing.T, session *TestSession, templateOwnerName, templateRepoName, generateOwnerName, generateRepoName string) *httptest.ResponseRecorder {
|
||||||
generateOwner := unittest.AssertExistsAndLoadBean(t, &models.User{Name: generateOwnerName}).(*models.User)
|
generateOwner := unittest.AssertExistsAndLoadBean(t, &user_model.User{Name: generateOwnerName}).(*user_model.User)
|
||||||
|
|
||||||
// Step0: check the existence of the generated repo
|
// Step0: check the existence of the generated repo
|
||||||
req := NewRequestf(t, "GET", "/%s/%s", generateOwnerName, generateRepoName)
|
req := NewRequestf(t, "GET", "/%s/%s", generateOwnerName, generateRepoName)
|
||||||
|
|
|
@ -11,6 +11,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/git"
|
"code.gitea.io/gitea/modules/git"
|
||||||
"code.gitea.io/gitea/modules/util"
|
"code.gitea.io/gitea/modules/util"
|
||||||
"code.gitea.io/gitea/services/release"
|
"code.gitea.io/gitea/services/release"
|
||||||
|
@ -22,7 +23,7 @@ func TestCreateNewTagProtected(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
|
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
|
||||||
owner := unittest.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User)
|
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}).(*user_model.User)
|
||||||
|
|
||||||
t.Run("API", func(t *testing.T) {
|
t.Run("API", func(t *testing.T) {
|
||||||
defer PrintCurrentTest(t)()
|
defer PrintCurrentTest(t)()
|
||||||
|
|
|
@ -9,8 +9,8 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/unknwon/i18n"
|
"github.com/unknwon/i18n"
|
||||||
|
@ -34,7 +34,7 @@ func testLoginFailed(t *testing.T, username, password, message string) {
|
||||||
func TestSignin(t *testing.T) {
|
func TestSignin(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
|
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
|
|
||||||
// add new user with user2's email
|
// add new user with user2's email
|
||||||
user.Name = "testuser"
|
user.Name = "testuser"
|
||||||
|
|
|
@ -10,8 +10,8 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
@ -54,7 +54,7 @@ func TestSignupAsRestricted(t *testing.T) {
|
||||||
req = NewRequest(t, "GET", "/restrictedUser")
|
req = NewRequest(t, "GET", "/restrictedUser")
|
||||||
MakeRequest(t, req, http.StatusOK)
|
MakeRequest(t, req, http.StatusOK)
|
||||||
|
|
||||||
user2 := unittest.AssertExistsAndLoadBean(t, &models.User{Name: "restrictedUser"}).(*models.User)
|
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{Name: "restrictedUser"}).(*user_model.User)
|
||||||
assert.True(t, user2.IsRestricted)
|
assert.True(t, user2.IsRestricted)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,8 +13,8 @@ import (
|
||||||
"net/url"
|
"net/url"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/avatar"
|
"code.gitea.io/gitea/modules/avatar"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
@ -22,7 +22,7 @@ import (
|
||||||
|
|
||||||
func TestUserAvatar(t *testing.T) {
|
func TestUserAvatar(t *testing.T) {
|
||||||
onGiteaRun(t, func(t *testing.T, u *url.URL) {
|
onGiteaRun(t, func(t *testing.T, u *url.URL) {
|
||||||
user2 := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User) // owner of the repo3, is an org
|
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User) // owner of the repo3, is an org
|
||||||
|
|
||||||
seed := user2.Email
|
seed := user2.Email
|
||||||
if len(seed) == 0 {
|
if len(seed) == 0 {
|
||||||
|
@ -72,7 +72,7 @@ func TestUserAvatar(t *testing.T) {
|
||||||
|
|
||||||
session.MakeRequest(t, req, http.StatusFound)
|
session.MakeRequest(t, req, http.StatusFound)
|
||||||
|
|
||||||
user2 = unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User) // owner of the repo3, is an org
|
user2 = unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User) // owner of the repo3, is an org
|
||||||
|
|
||||||
req = NewRequest(t, "GET", user2.AvatarLinkWithSize(0))
|
req = NewRequest(t, "GET", user2.AvatarLinkWithSize(0))
|
||||||
_ = session.MakeRequest(t, req, http.StatusOK)
|
_ = session.MakeRequest(t, req, http.StatusOK)
|
||||||
|
|
|
@ -8,8 +8,8 @@ import (
|
||||||
"net/http"
|
"net/http"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/test"
|
"code.gitea.io/gitea/modules/test"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
@ -35,8 +35,8 @@ func TestRenameUsername(t *testing.T) {
|
||||||
})
|
})
|
||||||
session.MakeRequest(t, req, http.StatusFound)
|
session.MakeRequest(t, req, http.StatusFound)
|
||||||
|
|
||||||
unittest.AssertExistsAndLoadBean(t, &models.User{Name: "newUsername"})
|
unittest.AssertExistsAndLoadBean(t, &user_model.User{Name: "newUsername"})
|
||||||
unittest.AssertNotExistsBean(t, &models.User{Name: "user2"})
|
unittest.AssertNotExistsBean(t, &user_model.User{Name: "user2"})
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestRenameInvalidUsername(t *testing.T) {
|
func TestRenameInvalidUsername(t *testing.T) {
|
||||||
|
@ -67,7 +67,7 @@ func TestRenameInvalidUsername(t *testing.T) {
|
||||||
i18n.Tr("en", "form.alpha_dash_dot_error"),
|
i18n.Tr("en", "form.alpha_dash_dot_error"),
|
||||||
)
|
)
|
||||||
|
|
||||||
unittest.AssertNotExistsBean(t, &models.User{Name: invalidUsername})
|
unittest.AssertNotExistsBean(t, &user_model.User{Name: invalidUsername})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -113,7 +113,7 @@ func TestRenameReservedUsername(t *testing.T) {
|
||||||
i18n.Tr("en", "user.form.name_reserved", reservedUsername),
|
i18n.Tr("en", "user.form.name_reserved", reservedUsername),
|
||||||
)
|
)
|
||||||
|
|
||||||
unittest.AssertNotExistsBean(t, &models.User{Name: reservedUsername})
|
unittest.AssertNotExistsBean(t, &user_model.User{Name: reservedUsername})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,15 +8,15 @@ import (
|
||||||
"net/http"
|
"net/http"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestXSSUserFullName(t *testing.T) {
|
func TestXSSUserFullName(t *testing.T) {
|
||||||
defer prepareTestEnv(t)()
|
defer prepareTestEnv(t)()
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
const fullName = `name & <script class="evil">alert('Oh no!');</script>`
|
const fullName = `name & <script class="evil">alert('Oh no!');</script>`
|
||||||
|
|
||||||
session := loginUser(t, user.Name)
|
session := loginUser(t, user.Name)
|
||||||
|
|
|
@ -9,6 +9,7 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"code.gitea.io/gitea/models/db"
|
"code.gitea.io/gitea/models/db"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/log"
|
"code.gitea.io/gitea/modules/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -76,7 +77,7 @@ func init() {
|
||||||
db.RegisterModel(new(Access))
|
db.RegisterModel(new(Access))
|
||||||
}
|
}
|
||||||
|
|
||||||
func accessLevel(e db.Engine, user *User, repo *Repository) (AccessMode, error) {
|
func accessLevel(e db.Engine, user *user_model.User, repo *Repository) (AccessMode, error) {
|
||||||
mode := AccessModeNone
|
mode := AccessModeNone
|
||||||
var userID int64
|
var userID int64
|
||||||
restricted := false
|
restricted := false
|
||||||
|
@ -116,12 +117,12 @@ func maxAccessMode(modes ...AccessMode) AccessMode {
|
||||||
}
|
}
|
||||||
|
|
||||||
type userAccess struct {
|
type userAccess struct {
|
||||||
User *User
|
User *user_model.User
|
||||||
Mode AccessMode
|
Mode AccessMode
|
||||||
}
|
}
|
||||||
|
|
||||||
// updateUserAccess updates an access map so that user has at least mode
|
// updateUserAccess updates an access map so that user has at least mode
|
||||||
func updateUserAccess(accessMap map[int64]*userAccess, user *User, mode AccessMode) {
|
func updateUserAccess(accessMap map[int64]*userAccess, user *user_model.User, mode AccessMode) {
|
||||||
if ua, ok := accessMap[user.ID]; ok {
|
if ua, ok := accessMap[user.ID]; ok {
|
||||||
ua.Mode = maxAccessMode(ua.Mode, mode)
|
ua.Mode = maxAccessMode(ua.Mode, mode)
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -9,6 +9,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models/db"
|
"code.gitea.io/gitea/models/db"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
|
@ -16,9 +17,9 @@ import (
|
||||||
func TestAccessLevel(t *testing.T) {
|
func TestAccessLevel(t *testing.T) {
|
||||||
assert.NoError(t, unittest.PrepareTestDatabase())
|
assert.NoError(t, unittest.PrepareTestDatabase())
|
||||||
|
|
||||||
user2 := unittest.AssertExistsAndLoadBean(t, &User{ID: 2}).(*User)
|
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
user5 := unittest.AssertExistsAndLoadBean(t, &User{ID: 5}).(*User)
|
user5 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 5}).(*user_model.User)
|
||||||
user29 := unittest.AssertExistsAndLoadBean(t, &User{ID: 29}).(*User)
|
user29 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 29}).(*user_model.User)
|
||||||
// A public repository owned by User 2
|
// A public repository owned by User 2
|
||||||
repo1 := unittest.AssertExistsAndLoadBean(t, &Repository{ID: 1}).(*Repository)
|
repo1 := unittest.AssertExistsAndLoadBean(t, &Repository{ID: 1}).(*Repository)
|
||||||
assert.False(t, repo1.IsPrivate)
|
assert.False(t, repo1.IsPrivate)
|
||||||
|
@ -67,8 +68,8 @@ func TestAccessLevel(t *testing.T) {
|
||||||
func TestHasAccess(t *testing.T) {
|
func TestHasAccess(t *testing.T) {
|
||||||
assert.NoError(t, unittest.PrepareTestDatabase())
|
assert.NoError(t, unittest.PrepareTestDatabase())
|
||||||
|
|
||||||
user1 := unittest.AssertExistsAndLoadBean(t, &User{ID: 2}).(*User)
|
user1 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
user2 := unittest.AssertExistsAndLoadBean(t, &User{ID: 5}).(*User)
|
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 5}).(*user_model.User)
|
||||||
// A public repository owned by User 2
|
// A public repository owned by User 2
|
||||||
repo1 := unittest.AssertExistsAndLoadBean(t, &Repository{ID: 1}).(*Repository)
|
repo1 := unittest.AssertExistsAndLoadBean(t, &Repository{ID: 1}).(*Repository)
|
||||||
assert.False(t, repo1.IsPrivate)
|
assert.False(t, repo1.IsPrivate)
|
||||||
|
@ -125,7 +126,7 @@ func TestRepository_RecalculateAccesses2(t *testing.T) {
|
||||||
func TestRepository_RecalculateAccesses3(t *testing.T) {
|
func TestRepository_RecalculateAccesses3(t *testing.T) {
|
||||||
assert.NoError(t, unittest.PrepareTestDatabase())
|
assert.NoError(t, unittest.PrepareTestDatabase())
|
||||||
team5 := unittest.AssertExistsAndLoadBean(t, &Team{ID: 5}).(*Team)
|
team5 := unittest.AssertExistsAndLoadBean(t, &Team{ID: 5}).(*Team)
|
||||||
user29 := unittest.AssertExistsAndLoadBean(t, &User{ID: 29}).(*User)
|
user29 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 29}).(*user_model.User)
|
||||||
|
|
||||||
has, err := db.GetEngine(db.DefaultContext).Get(&Access{UserID: 29, RepoID: 23})
|
has, err := db.GetEngine(db.DefaultContext).Get(&Access{UserID: 29, RepoID: 23})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
|
@ -14,6 +14,7 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"code.gitea.io/gitea/models/db"
|
"code.gitea.io/gitea/models/db"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/base"
|
"code.gitea.io/gitea/modules/base"
|
||||||
"code.gitea.io/gitea/modules/git"
|
"code.gitea.io/gitea/modules/git"
|
||||||
"code.gitea.io/gitea/modules/log"
|
"code.gitea.io/gitea/modules/log"
|
||||||
|
@ -63,13 +64,13 @@ type Action struct {
|
||||||
ID int64 `xorm:"pk autoincr"`
|
ID int64 `xorm:"pk autoincr"`
|
||||||
UserID int64 `xorm:"INDEX"` // Receiver user id.
|
UserID int64 `xorm:"INDEX"` // Receiver user id.
|
||||||
OpType ActionType
|
OpType ActionType
|
||||||
ActUserID int64 `xorm:"INDEX"` // Action user id.
|
ActUserID int64 `xorm:"INDEX"` // Action user id.
|
||||||
ActUser *User `xorm:"-"`
|
ActUser *user_model.User `xorm:"-"`
|
||||||
RepoID int64 `xorm:"INDEX"`
|
RepoID int64 `xorm:"INDEX"`
|
||||||
Repo *Repository `xorm:"-"`
|
Repo *Repository `xorm:"-"`
|
||||||
CommentID int64 `xorm:"INDEX"`
|
CommentID int64 `xorm:"INDEX"`
|
||||||
Comment *Comment `xorm:"-"`
|
Comment *Comment `xorm:"-"`
|
||||||
IsDeleted bool `xorm:"INDEX NOT NULL DEFAULT false"`
|
IsDeleted bool `xorm:"INDEX NOT NULL DEFAULT false"`
|
||||||
RefName string
|
RefName string
|
||||||
IsPrivate bool `xorm:"INDEX NOT NULL DEFAULT false"`
|
IsPrivate bool `xorm:"INDEX NOT NULL DEFAULT false"`
|
||||||
Content string `xorm:"TEXT"`
|
Content string `xorm:"TEXT"`
|
||||||
|
@ -91,11 +92,11 @@ func (a *Action) LoadActUser() {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
var err error
|
var err error
|
||||||
a.ActUser, err = GetUserByID(a.ActUserID)
|
a.ActUser, err = user_model.GetUserByID(a.ActUserID)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
return
|
return
|
||||||
} else if IsErrUserNotExist(err) {
|
} else if user_model.IsErrUserNotExist(err) {
|
||||||
a.ActUser = NewGhostUser()
|
a.ActUser = user_model.NewGhostUser()
|
||||||
} else {
|
} else {
|
||||||
log.Error("GetUserByID(%d): %v", a.ActUserID, err)
|
log.Error("GetUserByID(%d): %v", a.ActUserID, err)
|
||||||
}
|
}
|
||||||
|
@ -294,13 +295,13 @@ func (a *Action) GetIssueContent() string {
|
||||||
|
|
||||||
// GetFeedsOptions options for retrieving feeds
|
// GetFeedsOptions options for retrieving feeds
|
||||||
type GetFeedsOptions struct {
|
type GetFeedsOptions struct {
|
||||||
RequestedUser *User // the user we want activity for
|
RequestedUser *user_model.User // the user we want activity for
|
||||||
RequestedTeam *Team // the team we want activity for
|
RequestedTeam *Team // the team we want activity for
|
||||||
Actor *User // the user viewing the activity
|
Actor *user_model.User // the user viewing the activity
|
||||||
IncludePrivate bool // include private actions
|
IncludePrivate bool // include private actions
|
||||||
OnlyPerformedBy bool // only actions performed by requested user
|
OnlyPerformedBy bool // only actions performed by requested user
|
||||||
IncludeDeleted bool // include deleted actions
|
IncludeDeleted bool // include deleted actions
|
||||||
Date string // the day we want activity for: YYYY-MM-DD
|
Date string // the day we want activity for: YYYY-MM-DD
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetFeeds returns actions according to the provided options
|
// GetFeeds returns actions according to the provided options
|
||||||
|
@ -327,7 +328,7 @@ func GetFeeds(opts GetFeedsOptions) ([]*Action, error) {
|
||||||
return actions, nil
|
return actions, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func activityReadable(user, doer *User) bool {
|
func activityReadable(user, doer *user_model.User) bool {
|
||||||
var doerID int64
|
var doerID int64
|
||||||
if doer != nil {
|
if doer != nil {
|
||||||
doerID = doer.ID
|
doerID = doer.ID
|
||||||
|
|
|
@ -8,6 +8,7 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"code.gitea.io/gitea/models/db"
|
"code.gitea.io/gitea/models/db"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ActionList defines a list of actions
|
// ActionList defines a list of actions
|
||||||
|
@ -23,13 +24,13 @@ func (actions ActionList) getUserIDs() []int64 {
|
||||||
return keysInt64(userIDs)
|
return keysInt64(userIDs)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (actions ActionList) loadUsers(e db.Engine) ([]*User, error) {
|
func (actions ActionList) loadUsers(e db.Engine) ([]*user_model.User, error) {
|
||||||
if len(actions) == 0 {
|
if len(actions) == 0 {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
userIDs := actions.getUserIDs()
|
userIDs := actions.getUserIDs()
|
||||||
userMaps := make(map[int64]*User, len(userIDs))
|
userMaps := make(map[int64]*user_model.User, len(userIDs))
|
||||||
err := e.
|
err := e.
|
||||||
In("id", userIDs).
|
In("id", userIDs).
|
||||||
Find(&userMaps)
|
Find(&userMaps)
|
||||||
|
@ -44,7 +45,7 @@ func (actions ActionList) loadUsers(e db.Engine) ([]*User, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// LoadUsers loads actions' all users
|
// LoadUsers loads actions' all users
|
||||||
func (actions ActionList) LoadUsers() ([]*User, error) {
|
func (actions ActionList) LoadUsers() ([]*user_model.User, error) {
|
||||||
return actions.loadUsers(db.GetEngine(db.DefaultContext))
|
return actions.loadUsers(db.GetEngine(db.DefaultContext))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,7 @@ import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
@ -17,7 +18,7 @@ import (
|
||||||
func TestAction_GetRepoPath(t *testing.T) {
|
func TestAction_GetRepoPath(t *testing.T) {
|
||||||
assert.NoError(t, unittest.PrepareTestDatabase())
|
assert.NoError(t, unittest.PrepareTestDatabase())
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &Repository{}).(*Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &Repository{}).(*Repository)
|
||||||
owner := unittest.AssertExistsAndLoadBean(t, &User{ID: repo.OwnerID}).(*User)
|
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}).(*user_model.User)
|
||||||
action := &Action{RepoID: repo.ID}
|
action := &Action{RepoID: repo.ID}
|
||||||
assert.Equal(t, path.Join(owner.Name, repo.Name), action.GetRepoPath())
|
assert.Equal(t, path.Join(owner.Name, repo.Name), action.GetRepoPath())
|
||||||
}
|
}
|
||||||
|
@ -25,7 +26,7 @@ func TestAction_GetRepoPath(t *testing.T) {
|
||||||
func TestAction_GetRepoLink(t *testing.T) {
|
func TestAction_GetRepoLink(t *testing.T) {
|
||||||
assert.NoError(t, unittest.PrepareTestDatabase())
|
assert.NoError(t, unittest.PrepareTestDatabase())
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &Repository{}).(*Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &Repository{}).(*Repository)
|
||||||
owner := unittest.AssertExistsAndLoadBean(t, &User{ID: repo.OwnerID}).(*User)
|
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}).(*user_model.User)
|
||||||
action := &Action{RepoID: repo.ID}
|
action := &Action{RepoID: repo.ID}
|
||||||
setting.AppSubURL = "/suburl"
|
setting.AppSubURL = "/suburl"
|
||||||
expected := path.Join(setting.AppSubURL, owner.Name, repo.Name)
|
expected := path.Join(setting.AppSubURL, owner.Name, repo.Name)
|
||||||
|
@ -35,7 +36,7 @@ func TestAction_GetRepoLink(t *testing.T) {
|
||||||
func TestGetFeeds(t *testing.T) {
|
func TestGetFeeds(t *testing.T) {
|
||||||
// test with an individual user
|
// test with an individual user
|
||||||
assert.NoError(t, unittest.PrepareTestDatabase())
|
assert.NoError(t, unittest.PrepareTestDatabase())
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &User{ID: 2}).(*User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
|
|
||||||
actions, err := GetFeeds(GetFeedsOptions{
|
actions, err := GetFeeds(GetFeedsOptions{
|
||||||
RequestedUser: user,
|
RequestedUser: user,
|
||||||
|
@ -63,8 +64,8 @@ func TestGetFeeds(t *testing.T) {
|
||||||
func TestGetFeeds2(t *testing.T) {
|
func TestGetFeeds2(t *testing.T) {
|
||||||
// test with an organization user
|
// test with an organization user
|
||||||
assert.NoError(t, unittest.PrepareTestDatabase())
|
assert.NoError(t, unittest.PrepareTestDatabase())
|
||||||
org := unittest.AssertExistsAndLoadBean(t, &User{ID: 3}).(*User)
|
org := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 3}).(*user_model.User)
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &User{ID: 2}).(*User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
|
|
||||||
actions, err := GetFeeds(GetFeedsOptions{
|
actions, err := GetFeeds(GetFeedsOptions{
|
||||||
RequestedUser: org,
|
RequestedUser: org,
|
||||||
|
|
|
@ -12,6 +12,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models/db"
|
"code.gitea.io/gitea/models/db"
|
||||||
"code.gitea.io/gitea/models/unit"
|
"code.gitea.io/gitea/models/unit"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/base"
|
"code.gitea.io/gitea/modules/base"
|
||||||
"code.gitea.io/gitea/modules/log"
|
"code.gitea.io/gitea/modules/log"
|
||||||
"code.gitea.io/gitea/modules/timeutil"
|
"code.gitea.io/gitea/modules/timeutil"
|
||||||
|
@ -69,7 +70,7 @@ func (protectBranch *ProtectedBranch) CanUserPush(userID int64) bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
if !protectBranch.EnableWhitelist {
|
if !protectBranch.EnableWhitelist {
|
||||||
if user, err := GetUserByID(userID); err != nil {
|
if user, err := user_model.GetUserByID(userID); err != nil {
|
||||||
log.Error("GetUserByID: %v", err)
|
log.Error("GetUserByID: %v", err)
|
||||||
return false
|
return false
|
||||||
} else if repo, err := GetRepositoryByID(protectBranch.RepoID); err != nil {
|
} else if repo, err := GetRepositoryByID(protectBranch.RepoID); err != nil {
|
||||||
|
@ -123,11 +124,11 @@ func (protectBranch *ProtectedBranch) IsUserMergeWhitelisted(userID int64, permi
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsUserOfficialReviewer check if user is official reviewer for the branch (counts towards required approvals)
|
// IsUserOfficialReviewer check if user is official reviewer for the branch (counts towards required approvals)
|
||||||
func (protectBranch *ProtectedBranch) IsUserOfficialReviewer(user *User) (bool, error) {
|
func (protectBranch *ProtectedBranch) IsUserOfficialReviewer(user *user_model.User) (bool, error) {
|
||||||
return protectBranch.isUserOfficialReviewer(db.GetEngine(db.DefaultContext), user)
|
return protectBranch.isUserOfficialReviewer(db.GetEngine(db.DefaultContext), user)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (protectBranch *ProtectedBranch) isUserOfficialReviewer(e db.Engine, user *User) (bool, error) {
|
func (protectBranch *ProtectedBranch) isUserOfficialReviewer(e db.Engine, user *user_model.User) (bool, error) {
|
||||||
repo, err := getRepositoryByID(e, protectBranch.RepoID)
|
repo, err := getRepositoryByID(e, protectBranch.RepoID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, err
|
return false, err
|
||||||
|
@ -446,7 +447,7 @@ func updateUserWhitelist(repo *Repository, currentWhitelist, newWhitelist []int6
|
||||||
|
|
||||||
whitelist = make([]int64, 0, len(newWhitelist))
|
whitelist = make([]int64, 0, len(newWhitelist))
|
||||||
for _, userID := range newWhitelist {
|
for _, userID := range newWhitelist {
|
||||||
user, err := GetUserByID(userID)
|
user, err := user_model.GetUserByID(userID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("GetUserByID [user_id: %d, repo_id: %d]: %v", userID, repo.ID, err)
|
return nil, fmt.Errorf("GetUserByID [user_id: %d, repo_id: %d]: %v", userID, repo.ID, err)
|
||||||
}
|
}
|
||||||
|
@ -511,7 +512,7 @@ type DeletedBranch struct {
|
||||||
Name string `xorm:"UNIQUE(s) NOT NULL"`
|
Name string `xorm:"UNIQUE(s) NOT NULL"`
|
||||||
Commit string `xorm:"UNIQUE(s) NOT NULL"`
|
Commit string `xorm:"UNIQUE(s) NOT NULL"`
|
||||||
DeletedByID int64 `xorm:"INDEX"`
|
DeletedByID int64 `xorm:"INDEX"`
|
||||||
DeletedBy *User `xorm:"-"`
|
DeletedBy *user_model.User `xorm:"-"`
|
||||||
DeletedUnix timeutil.TimeStamp `xorm:"INDEX created"`
|
DeletedUnix timeutil.TimeStamp `xorm:"INDEX created"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -564,11 +565,11 @@ func (repo *Repository) RemoveDeletedBranch(id int64) (err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// LoadUser loads the user that deleted the branch
|
// LoadUser loads the user that deleted the branch
|
||||||
// When there's no user found it returns a NewGhostUser
|
// When there's no user found it returns a user_model.NewGhostUser
|
||||||
func (deletedBranch *DeletedBranch) LoadUser() {
|
func (deletedBranch *DeletedBranch) LoadUser() {
|
||||||
user, err := GetUserByID(deletedBranch.DeletedByID)
|
user, err := user_model.GetUserByID(deletedBranch.DeletedByID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
user = NewGhostUser()
|
user = user_model.NewGhostUser()
|
||||||
}
|
}
|
||||||
deletedBranch.DeletedBy = user
|
deletedBranch.DeletedBy = user
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
package models
|
package models
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/git"
|
"code.gitea.io/gitea/modules/git"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -12,7 +13,7 @@ import (
|
||||||
func ConvertFromGitCommit(commits []*git.Commit, repo *Repository) []*SignCommitWithStatuses {
|
func ConvertFromGitCommit(commits []*git.Commit, repo *Repository) []*SignCommitWithStatuses {
|
||||||
return ParseCommitsWithStatus(
|
return ParseCommitsWithStatus(
|
||||||
ParseCommitsWithSignature(
|
ParseCommitsWithSignature(
|
||||||
ValidateCommitsWithEmails(commits),
|
user_model.ValidateCommitsWithEmails(commits),
|
||||||
repo,
|
repo,
|
||||||
),
|
),
|
||||||
repo,
|
repo,
|
||||||
|
|
|
@ -12,6 +12,7 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"code.gitea.io/gitea/models/db"
|
"code.gitea.io/gitea/models/db"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/log"
|
"code.gitea.io/gitea/modules/log"
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
|
@ -32,7 +33,7 @@ type CommitStatus struct {
|
||||||
Description string `xorm:"TEXT"`
|
Description string `xorm:"TEXT"`
|
||||||
ContextHash string `xorm:"char(40) index"`
|
ContextHash string `xorm:"char(40) index"`
|
||||||
Context string `xorm:"TEXT"`
|
Context string `xorm:"TEXT"`
|
||||||
Creator *User `xorm:"-"`
|
Creator *user_model.User `xorm:"-"`
|
||||||
CreatorID int64
|
CreatorID int64
|
||||||
|
|
||||||
CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
|
CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
|
||||||
|
@ -127,7 +128,7 @@ func (status *CommitStatus) loadAttributes(e db.Engine) (err error) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if status.Creator == nil && status.CreatorID > 0 {
|
if status.Creator == nil && status.CreatorID > 0 {
|
||||||
status.Creator, err = getUserByID(e, status.CreatorID)
|
status.Creator, err = user_model.GetUserByIDEngine(e, status.CreatorID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("getUserByID [%d]: %v", status.CreatorID, err)
|
return fmt.Errorf("getUserByID [%d]: %v", status.CreatorID, err)
|
||||||
}
|
}
|
||||||
|
@ -274,7 +275,7 @@ func FindRepoRecentCommitStatusContexts(repoID int64, before time.Duration) ([]s
|
||||||
// NewCommitStatusOptions holds options for creating a CommitStatus
|
// NewCommitStatusOptions holds options for creating a CommitStatus
|
||||||
type NewCommitStatusOptions struct {
|
type NewCommitStatusOptions struct {
|
||||||
Repo *Repository
|
Repo *Repository
|
||||||
Creator *User
|
Creator *user_model.User
|
||||||
SHA string
|
SHA string
|
||||||
CommitStatus *CommitStatus
|
CommitStatus *CommitStatus
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,7 @@ package models
|
||||||
import (
|
import (
|
||||||
admin_model "code.gitea.io/gitea/models/admin"
|
admin_model "code.gitea.io/gitea/models/admin"
|
||||||
"code.gitea.io/gitea/models/db"
|
"code.gitea.io/gitea/models/db"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
|
|
||||||
"xorm.io/builder"
|
"xorm.io/builder"
|
||||||
)
|
)
|
||||||
|
@ -169,12 +170,12 @@ func FixNullArchivedRepository() (int64, error) {
|
||||||
|
|
||||||
// CountWrongUserType count OrgUser who have wrong type
|
// CountWrongUserType count OrgUser who have wrong type
|
||||||
func CountWrongUserType() (int64, error) {
|
func CountWrongUserType() (int64, error) {
|
||||||
return db.GetEngine(db.DefaultContext).Where(builder.Eq{"type": 0}.And(builder.Neq{"num_teams": 0})).Count(new(User))
|
return db.GetEngine(db.DefaultContext).Where(builder.Eq{"type": 0}.And(builder.Neq{"num_teams": 0})).Count(new(user_model.User))
|
||||||
}
|
}
|
||||||
|
|
||||||
// FixWrongUserType fix OrgUser who have wrong type
|
// FixWrongUserType fix OrgUser who have wrong type
|
||||||
func FixWrongUserType() (int64, error) {
|
func FixWrongUserType() (int64, error) {
|
||||||
return db.GetEngine(db.DefaultContext).Where(builder.Eq{"type": 0}.And(builder.Neq{"num_teams": 0})).Cols("type").NoAutoTime().Update(&User{Type: 1})
|
return db.GetEngine(db.DefaultContext).Where(builder.Eq{"type": 0}.And(builder.Neq{"num_teams": 0})).Cols("type").NoAutoTime().Update(&user_model.User{Type: 1})
|
||||||
}
|
}
|
||||||
|
|
||||||
// CountCommentTypeLabelWithEmptyLabel count label comments with empty label
|
// CountCommentTypeLabelWithEmptyLabel count label comments with empty label
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
|
|
||||||
package db
|
package db
|
||||||
|
|
||||||
import "fmt"
|
import (
|
||||||
|
"fmt"
|
||||||
|
)
|
||||||
|
|
||||||
// ErrCancelled represents an error due to context cancellation
|
// ErrCancelled represents an error due to context cancellation
|
||||||
type ErrCancelled struct {
|
type ErrCancelled struct {
|
||||||
|
|
91
models/db/name.go
Normal file
91
models/db/name.go
Normal file
|
@ -0,0 +1,91 @@
|
||||||
|
// Copyright 2021 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 db
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
"fmt"
|
||||||
|
"regexp"
|
||||||
|
"strings"
|
||||||
|
"unicode/utf8"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
// ErrNameEmpty name is empty error
|
||||||
|
ErrNameEmpty = errors.New("Name is empty")
|
||||||
|
|
||||||
|
// AlphaDashDotPattern characters prohibited in a user name (anything except A-Za-z0-9_.-)
|
||||||
|
AlphaDashDotPattern = regexp.MustCompile(`[^\w-\.]`)
|
||||||
|
)
|
||||||
|
|
||||||
|
// ErrNameReserved represents a "reserved name" error.
|
||||||
|
type ErrNameReserved struct {
|
||||||
|
Name string
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsErrNameReserved checks if an error is a ErrNameReserved.
|
||||||
|
func IsErrNameReserved(err error) bool {
|
||||||
|
_, ok := err.(ErrNameReserved)
|
||||||
|
return ok
|
||||||
|
}
|
||||||
|
|
||||||
|
func (err ErrNameReserved) Error() string {
|
||||||
|
return fmt.Sprintf("name is reserved [name: %s]", err.Name)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ErrNamePatternNotAllowed represents a "pattern not allowed" error.
|
||||||
|
type ErrNamePatternNotAllowed struct {
|
||||||
|
Pattern string
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsErrNamePatternNotAllowed checks if an error is an ErrNamePatternNotAllowed.
|
||||||
|
func IsErrNamePatternNotAllowed(err error) bool {
|
||||||
|
_, ok := err.(ErrNamePatternNotAllowed)
|
||||||
|
return ok
|
||||||
|
}
|
||||||
|
|
||||||
|
func (err ErrNamePatternNotAllowed) Error() string {
|
||||||
|
return fmt.Sprintf("name pattern is not allowed [pattern: %s]", err.Pattern)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ErrNameCharsNotAllowed represents a "character not allowed in name" error.
|
||||||
|
type ErrNameCharsNotAllowed struct {
|
||||||
|
Name string
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsErrNameCharsNotAllowed checks if an error is an ErrNameCharsNotAllowed.
|
||||||
|
func IsErrNameCharsNotAllowed(err error) bool {
|
||||||
|
_, ok := err.(ErrNameCharsNotAllowed)
|
||||||
|
return ok
|
||||||
|
}
|
||||||
|
|
||||||
|
func (err ErrNameCharsNotAllowed) Error() string {
|
||||||
|
return fmt.Sprintf("User name is invalid [%s]: must be valid alpha or numeric or dash(-_) or dot characters", err.Name)
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsUsableName checks if name is reserved or pattern of name is not allowed
|
||||||
|
// based on given reserved names and patterns.
|
||||||
|
// Names are exact match, patterns can be prefix or suffix match with placeholder '*'.
|
||||||
|
func IsUsableName(names, patterns []string, name string) error {
|
||||||
|
name = strings.TrimSpace(strings.ToLower(name))
|
||||||
|
if utf8.RuneCountInString(name) == 0 {
|
||||||
|
return ErrNameEmpty
|
||||||
|
}
|
||||||
|
|
||||||
|
for i := range names {
|
||||||
|
if name == names[i] {
|
||||||
|
return ErrNameReserved{name}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, pat := range patterns {
|
||||||
|
if pat[0] == '*' && strings.HasSuffix(name, pat[1:]) ||
|
||||||
|
(pat[len(pat)-1] == '*' && strings.HasPrefix(name, pat[:len(pat)-1])) {
|
||||||
|
return ErrNamePatternNotAllowed{pat}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
30
models/db/search.go
Normal file
30
models/db/search.go
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
// Copyright 2021 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 db
|
||||||
|
|
||||||
|
// SearchOrderBy is used to sort the result
|
||||||
|
type SearchOrderBy string
|
||||||
|
|
||||||
|
func (s SearchOrderBy) String() string {
|
||||||
|
return string(s)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Strings for sorting result
|
||||||
|
const (
|
||||||
|
SearchOrderByAlphabetically SearchOrderBy = "name ASC"
|
||||||
|
SearchOrderByAlphabeticallyReverse SearchOrderBy = "name DESC"
|
||||||
|
SearchOrderByLeastUpdated SearchOrderBy = "updated_unix ASC"
|
||||||
|
SearchOrderByRecentUpdated SearchOrderBy = "updated_unix DESC"
|
||||||
|
SearchOrderByOldest SearchOrderBy = "created_unix ASC"
|
||||||
|
SearchOrderByNewest SearchOrderBy = "created_unix DESC"
|
||||||
|
SearchOrderBySize SearchOrderBy = "size ASC"
|
||||||
|
SearchOrderBySizeReverse SearchOrderBy = "size DESC"
|
||||||
|
SearchOrderByID SearchOrderBy = "id ASC"
|
||||||
|
SearchOrderByIDReverse SearchOrderBy = "id DESC"
|
||||||
|
SearchOrderByStars SearchOrderBy = "num_stars ASC"
|
||||||
|
SearchOrderByStarsReverse SearchOrderBy = "num_stars DESC"
|
||||||
|
SearchOrderByForks SearchOrderBy = "num_forks ASC"
|
||||||
|
SearchOrderByForksReverse SearchOrderBy = "num_forks DESC"
|
||||||
|
)
|
116
models/error.go
116
models/error.go
|
@ -26,51 +26,6 @@ func (err ErrNotExist) Error() string {
|
||||||
return fmt.Sprintf("record does not exist [id: %d]", err.ID)
|
return fmt.Sprintf("record does not exist [id: %d]", err.ID)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ErrNameReserved represents a "reserved name" error.
|
|
||||||
type ErrNameReserved struct {
|
|
||||||
Name string
|
|
||||||
}
|
|
||||||
|
|
||||||
// IsErrNameReserved checks if an error is a ErrNameReserved.
|
|
||||||
func IsErrNameReserved(err error) bool {
|
|
||||||
_, ok := err.(ErrNameReserved)
|
|
||||||
return ok
|
|
||||||
}
|
|
||||||
|
|
||||||
func (err ErrNameReserved) Error() string {
|
|
||||||
return fmt.Sprintf("name is reserved [name: %s]", err.Name)
|
|
||||||
}
|
|
||||||
|
|
||||||
// ErrNamePatternNotAllowed represents a "pattern not allowed" error.
|
|
||||||
type ErrNamePatternNotAllowed struct {
|
|
||||||
Pattern string
|
|
||||||
}
|
|
||||||
|
|
||||||
// IsErrNamePatternNotAllowed checks if an error is an ErrNamePatternNotAllowed.
|
|
||||||
func IsErrNamePatternNotAllowed(err error) bool {
|
|
||||||
_, ok := err.(ErrNamePatternNotAllowed)
|
|
||||||
return ok
|
|
||||||
}
|
|
||||||
|
|
||||||
func (err ErrNamePatternNotAllowed) Error() string {
|
|
||||||
return fmt.Sprintf("name pattern is not allowed [pattern: %s]", err.Pattern)
|
|
||||||
}
|
|
||||||
|
|
||||||
// ErrNameCharsNotAllowed represents a "character not allowed in name" error.
|
|
||||||
type ErrNameCharsNotAllowed struct {
|
|
||||||
Name string
|
|
||||||
}
|
|
||||||
|
|
||||||
// IsErrNameCharsNotAllowed checks if an error is an ErrNameCharsNotAllowed.
|
|
||||||
func IsErrNameCharsNotAllowed(err error) bool {
|
|
||||||
_, ok := err.(ErrNameCharsNotAllowed)
|
|
||||||
return ok
|
|
||||||
}
|
|
||||||
|
|
||||||
func (err ErrNameCharsNotAllowed) Error() string {
|
|
||||||
return fmt.Sprintf("User name is invalid [%s]: must be valid alpha or numeric or dash(-_) or dot characters", err.Name)
|
|
||||||
}
|
|
||||||
|
|
||||||
// ErrSSHDisabled represents an "SSH disabled" error.
|
// ErrSSHDisabled represents an "SSH disabled" error.
|
||||||
type ErrSSHDisabled struct{}
|
type ErrSSHDisabled struct{}
|
||||||
|
|
||||||
|
@ -84,77 +39,6 @@ func (err ErrSSHDisabled) Error() string {
|
||||||
return "SSH is disabled"
|
return "SSH is disabled"
|
||||||
}
|
}
|
||||||
|
|
||||||
// ____ ___
|
|
||||||
// | | \______ ___________
|
|
||||||
// | | / ___// __ \_ __ \
|
|
||||||
// | | /\___ \\ ___/| | \/
|
|
||||||
// |______//____ >\___ >__|
|
|
||||||
// \/ \/
|
|
||||||
|
|
||||||
// ErrUserAlreadyExist represents a "user already exists" error.
|
|
||||||
type ErrUserAlreadyExist struct {
|
|
||||||
Name string
|
|
||||||
}
|
|
||||||
|
|
||||||
// IsErrUserAlreadyExist checks if an error is a ErrUserAlreadyExists.
|
|
||||||
func IsErrUserAlreadyExist(err error) bool {
|
|
||||||
_, ok := err.(ErrUserAlreadyExist)
|
|
||||||
return ok
|
|
||||||
}
|
|
||||||
|
|
||||||
func (err ErrUserAlreadyExist) Error() string {
|
|
||||||
return fmt.Sprintf("user already exists [name: %s]", err.Name)
|
|
||||||
}
|
|
||||||
|
|
||||||
// ErrUserNotExist represents a "UserNotExist" kind of error.
|
|
||||||
type ErrUserNotExist struct {
|
|
||||||
UID int64
|
|
||||||
Name string
|
|
||||||
KeyID int64
|
|
||||||
}
|
|
||||||
|
|
||||||
// IsErrUserNotExist checks if an error is a ErrUserNotExist.
|
|
||||||
func IsErrUserNotExist(err error) bool {
|
|
||||||
_, ok := err.(ErrUserNotExist)
|
|
||||||
return ok
|
|
||||||
}
|
|
||||||
|
|
||||||
func (err ErrUserNotExist) Error() string {
|
|
||||||
return fmt.Sprintf("user does not exist [uid: %d, name: %s, keyid: %d]", err.UID, err.Name, err.KeyID)
|
|
||||||
}
|
|
||||||
|
|
||||||
// ErrUserProhibitLogin represents a "ErrUserProhibitLogin" kind of error.
|
|
||||||
type ErrUserProhibitLogin struct {
|
|
||||||
UID int64
|
|
||||||
Name string
|
|
||||||
}
|
|
||||||
|
|
||||||
// IsErrUserProhibitLogin checks if an error is a ErrUserProhibitLogin
|
|
||||||
func IsErrUserProhibitLogin(err error) bool {
|
|
||||||
_, ok := err.(ErrUserProhibitLogin)
|
|
||||||
return ok
|
|
||||||
}
|
|
||||||
|
|
||||||
func (err ErrUserProhibitLogin) Error() string {
|
|
||||||
return fmt.Sprintf("user is not allowed login [uid: %d, name: %s]", err.UID, err.Name)
|
|
||||||
}
|
|
||||||
|
|
||||||
// ErrUserInactive represents a "ErrUserInactive" kind of error.
|
|
||||||
type ErrUserInactive struct {
|
|
||||||
UID int64
|
|
||||||
Name string
|
|
||||||
}
|
|
||||||
|
|
||||||
// IsErrUserInactive checks if an error is a ErrUserInactive
|
|
||||||
func IsErrUserInactive(err error) bool {
|
|
||||||
_, ok := err.(ErrUserInactive)
|
|
||||||
return ok
|
|
||||||
}
|
|
||||||
|
|
||||||
func (err ErrUserInactive) Error() string {
|
|
||||||
return fmt.Sprintf("user is inactive [uid: %d, name: %s]", err.UID, err.Name)
|
|
||||||
}
|
|
||||||
|
|
||||||
// ErrUserOwnRepos represents a "UserOwnRepos" kind of error.
|
// ErrUserOwnRepos represents a "UserOwnRepos" kind of error.
|
||||||
type ErrUserOwnRepos struct {
|
type ErrUserOwnRepos struct {
|
||||||
UID int64
|
UID int64
|
||||||
|
|
|
@ -9,6 +9,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models/db"
|
"code.gitea.io/gitea/models/db"
|
||||||
"code.gitea.io/gitea/models/login"
|
"code.gitea.io/gitea/models/login"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/structs"
|
"code.gitea.io/gitea/modules/structs"
|
||||||
|
|
||||||
"github.com/markbates/goth"
|
"github.com/markbates/goth"
|
||||||
|
@ -46,7 +47,7 @@ func GetExternalLogin(externalLoginUser *ExternalLoginUser) (bool, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// ListAccountLinks returns a map with the ExternalLoginUser and its LoginSource
|
// ListAccountLinks returns a map with the ExternalLoginUser and its LoginSource
|
||||||
func ListAccountLinks(user *User) ([]*ExternalLoginUser, error) {
|
func ListAccountLinks(user *user_model.User) ([]*ExternalLoginUser, error) {
|
||||||
externalAccounts := make([]*ExternalLoginUser, 0, 5)
|
externalAccounts := make([]*ExternalLoginUser, 0, 5)
|
||||||
err := db.GetEngine(db.DefaultContext).Where("user_id=?", user.ID).
|
err := db.GetEngine(db.DefaultContext).Where("user_id=?", user.ID).
|
||||||
Desc("login_source_id").
|
Desc("login_source_id").
|
||||||
|
@ -59,7 +60,7 @@ func ListAccountLinks(user *User) ([]*ExternalLoginUser, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// LinkExternalToUser link the external user to the user
|
// LinkExternalToUser link the external user to the user
|
||||||
func LinkExternalToUser(user *User, externalLoginUser *ExternalLoginUser) error {
|
func LinkExternalToUser(user *user_model.User, externalLoginUser *ExternalLoginUser) error {
|
||||||
has, err := db.GetEngine(db.DefaultContext).Where("external_id=? AND login_source_id=?", externalLoginUser.ExternalID, externalLoginUser.LoginSourceID).
|
has, err := db.GetEngine(db.DefaultContext).Where("external_id=? AND login_source_id=?", externalLoginUser.ExternalID, externalLoginUser.LoginSourceID).
|
||||||
NoAutoCondition().
|
NoAutoCondition().
|
||||||
Exist(externalLoginUser)
|
Exist(externalLoginUser)
|
||||||
|
@ -74,7 +75,7 @@ func LinkExternalToUser(user *User, externalLoginUser *ExternalLoginUser) error
|
||||||
}
|
}
|
||||||
|
|
||||||
// RemoveAccountLink will remove all external login sources for the given user
|
// RemoveAccountLink will remove all external login sources for the given user
|
||||||
func RemoveAccountLink(user *User, loginSourceID int64) (int64, error) {
|
func RemoveAccountLink(user *user_model.User, loginSourceID int64) (int64, error) {
|
||||||
deleted, err := db.GetEngine(db.DefaultContext).Delete(&ExternalLoginUser{UserID: user.ID, LoginSourceID: loginSourceID})
|
deleted, err := db.GetEngine(db.DefaultContext).Delete(&ExternalLoginUser{UserID: user.ID, LoginSourceID: loginSourceID})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return deleted, err
|
return deleted, err
|
||||||
|
@ -86,7 +87,7 @@ func RemoveAccountLink(user *User, loginSourceID int64) (int64, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// removeAllAccountLinks will remove all external login sources for the given user
|
// removeAllAccountLinks will remove all external login sources for the given user
|
||||||
func removeAllAccountLinks(e db.Engine, user *User) error {
|
func removeAllAccountLinks(e db.Engine, user *user_model.User) error {
|
||||||
_, err := e.Delete(&ExternalLoginUser{UserID: user.ID})
|
_, err := e.Delete(&ExternalLoginUser{UserID: user.ID})
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -106,7 +107,7 @@ func GetUserIDByExternalUserID(provider, userID string) (int64, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// UpdateExternalUser updates external user's information
|
// UpdateExternalUser updates external user's information
|
||||||
func UpdateExternalUser(user *User, gothUser goth.User) error {
|
func UpdateExternalUser(user *user_model.User, gothUser goth.User) error {
|
||||||
loginSource, err := login.GetActiveOAuth2LoginSourceByName(gothUser.Provider)
|
loginSource, err := login.GetActiveOAuth2LoginSourceByName(gothUser.Provider)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
|
@ -214,7 +214,7 @@ func deleteGPGKey(e db.Engine, keyID string) (int64, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// DeleteGPGKey deletes GPG key information in database.
|
// DeleteGPGKey deletes GPG key information in database.
|
||||||
func DeleteGPGKey(doer *User, id int64) (err error) {
|
func DeleteGPGKey(doer *user_model.User, id int64) (err error) {
|
||||||
key, err := GetGPGKeyByID(id)
|
key, err := GetGPGKeyByID(id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if IsErrGPGKeyNotExist(err) {
|
if IsErrGPGKeyNotExist(err) {
|
||||||
|
@ -244,7 +244,7 @@ func DeleteGPGKey(doer *User, id int64) (err error) {
|
||||||
func checkKeyEmails(email string, keys ...*GPGKey) (bool, string) {
|
func checkKeyEmails(email string, keys ...*GPGKey) (bool, string) {
|
||||||
uid := int64(0)
|
uid := int64(0)
|
||||||
var userEmails []*user_model.EmailAddress
|
var userEmails []*user_model.EmailAddress
|
||||||
var user *User
|
var user *user_model.User
|
||||||
for _, key := range keys {
|
for _, key := range keys {
|
||||||
for _, e := range key.Emails {
|
for _, e := range key.Emails {
|
||||||
if e.IsActivated && (email == "" || strings.EqualFold(e.Email, email)) {
|
if e.IsActivated && (email == "" || strings.EqualFold(e.Email, email)) {
|
||||||
|
@ -255,8 +255,8 @@ func checkKeyEmails(email string, keys ...*GPGKey) (bool, string) {
|
||||||
if uid != key.OwnerID {
|
if uid != key.OwnerID {
|
||||||
userEmails, _ = user_model.GetEmailAddresses(key.OwnerID)
|
userEmails, _ = user_model.GetEmailAddresses(key.OwnerID)
|
||||||
uid = key.OwnerID
|
uid = key.OwnerID
|
||||||
user = &User{ID: uid}
|
user = &user_model.User{ID: uid}
|
||||||
_, _ = GetUser(user)
|
_, _ = user_model.GetUser(user)
|
||||||
}
|
}
|
||||||
for _, e := range userEmails {
|
for _, e := range userEmails {
|
||||||
if e.IsActivated && (email == "" || strings.EqualFold(e.Email, email)) {
|
if e.IsActivated && (email == "" || strings.EqualFold(e.Email, email)) {
|
||||||
|
|
|
@ -44,8 +44,8 @@ type CommitVerification struct {
|
||||||
Verified bool
|
Verified bool
|
||||||
Warning bool
|
Warning bool
|
||||||
Reason string
|
Reason string
|
||||||
SigningUser *User
|
SigningUser *user_model.User
|
||||||
CommittingUser *User
|
CommittingUser *user_model.User
|
||||||
SigningEmail string
|
SigningEmail string
|
||||||
SigningKey *GPGKey
|
SigningKey *GPGKey
|
||||||
TrustStatus string
|
TrustStatus string
|
||||||
|
@ -54,7 +54,7 @@ type CommitVerification struct {
|
||||||
// SignCommit represents a commit with validation of signature.
|
// SignCommit represents a commit with validation of signature.
|
||||||
type SignCommit struct {
|
type SignCommit struct {
|
||||||
Verification *CommitVerification
|
Verification *CommitVerification
|
||||||
*UserCommit
|
*user_model.UserCommit
|
||||||
}
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -69,7 +69,7 @@ const (
|
||||||
)
|
)
|
||||||
|
|
||||||
// ParseCommitsWithSignature checks if signaute of commits are corresponding to users gpg keys.
|
// ParseCommitsWithSignature checks if signaute of commits are corresponding to users gpg keys.
|
||||||
func ParseCommitsWithSignature(oldCommits []*UserCommit, repository *Repository) []*SignCommit {
|
func ParseCommitsWithSignature(oldCommits []*user_model.UserCommit, repository *Repository) []*SignCommit {
|
||||||
newCommits := make([]*SignCommit, 0, len(oldCommits))
|
newCommits := make([]*SignCommit, 0, len(oldCommits))
|
||||||
keyMap := map[string]bool{}
|
keyMap := map[string]bool{}
|
||||||
|
|
||||||
|
@ -88,19 +88,19 @@ func ParseCommitsWithSignature(oldCommits []*UserCommit, repository *Repository)
|
||||||
|
|
||||||
// ParseCommitWithSignature check if signature is good against keystore.
|
// ParseCommitWithSignature check if signature is good against keystore.
|
||||||
func ParseCommitWithSignature(c *git.Commit) *CommitVerification {
|
func ParseCommitWithSignature(c *git.Commit) *CommitVerification {
|
||||||
var committer *User
|
var committer *user_model.User
|
||||||
if c.Committer != nil {
|
if c.Committer != nil {
|
||||||
var err error
|
var err error
|
||||||
// Find Committer account
|
// Find Committer account
|
||||||
committer, err = GetUserByEmail(c.Committer.Email) // This finds the user by primary email or activated email so commit will not be valid if email is not
|
committer, err = user_model.GetUserByEmail(c.Committer.Email) // This finds the user by primary email or activated email so commit will not be valid if email is not
|
||||||
if err != nil { // Skipping not user for committer
|
if err != nil { // Skipping not user for committer
|
||||||
committer = &User{
|
committer = &user_model.User{
|
||||||
Name: c.Committer.Name,
|
Name: c.Committer.Name,
|
||||||
Email: c.Committer.Email,
|
Email: c.Committer.Email,
|
||||||
}
|
}
|
||||||
// We can expect this to often be an ErrUserNotExist. in the case
|
// We can expect this to often be an ErrUserNotExist. in the case
|
||||||
// it is not, however, it is important to log it.
|
// it is not, however, it is important to log it.
|
||||||
if !IsErrUserNotExist(err) {
|
if !user_model.IsErrUserNotExist(err) {
|
||||||
log.Error("GetUserByEmail: %v", err)
|
log.Error("GetUserByEmail: %v", err)
|
||||||
return &CommitVerification{
|
return &CommitVerification{
|
||||||
CommittingUser: committer,
|
CommittingUser: committer,
|
||||||
|
@ -250,7 +250,7 @@ func ParseCommitWithSignature(c *git.Commit) *CommitVerification {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func verifyWithGPGSettings(gpgSettings *git.GPGSettings, sig *packet.Signature, payload string, committer *User, keyID string) *CommitVerification {
|
func verifyWithGPGSettings(gpgSettings *git.GPGSettings, sig *packet.Signature, payload string, committer *user_model.User, keyID string) *CommitVerification {
|
||||||
// First try to find the key in the db
|
// First try to find the key in the db
|
||||||
if commitVerification := hashAndVerifyForKeyID(sig, payload, committer, gpgSettings.KeyID, gpgSettings.Name, gpgSettings.Email); commitVerification != nil {
|
if commitVerification := hashAndVerifyForKeyID(sig, payload, committer, gpgSettings.KeyID, gpgSettings.Name, gpgSettings.Email); commitVerification != nil {
|
||||||
return commitVerification
|
return commitVerification
|
||||||
|
@ -296,7 +296,7 @@ func verifyWithGPGSettings(gpgSettings *git.GPGSettings, sig *packet.Signature,
|
||||||
KeyID: subKey.PublicKey.KeyIdString(),
|
KeyID: subKey.PublicKey.KeyIdString(),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
if commitVerification := hashAndVerifyWithSubKeysCommitVerification(sig, payload, k, committer, &User{
|
if commitVerification := hashAndVerifyWithSubKeysCommitVerification(sig, payload, k, committer, &user_model.User{
|
||||||
Name: gpgSettings.Name,
|
Name: gpgSettings.Name,
|
||||||
Email: gpgSettings.Email,
|
Email: gpgSettings.Email,
|
||||||
}, gpgSettings.Email); commitVerification != nil {
|
}, gpgSettings.Email); commitVerification != nil {
|
||||||
|
@ -357,7 +357,7 @@ func hashAndVerifyWithSubKeys(sig *packet.Signature, payload string, k *GPGKey)
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func hashAndVerifyWithSubKeysCommitVerification(sig *packet.Signature, payload string, k *GPGKey, committer, signer *User, email string) *CommitVerification {
|
func hashAndVerifyWithSubKeysCommitVerification(sig *packet.Signature, payload string, k *GPGKey, committer, signer *user_model.User, email string) *CommitVerification {
|
||||||
key, err := hashAndVerifyWithSubKeys(sig, payload, k)
|
key, err := hashAndVerifyWithSubKeys(sig, payload, k)
|
||||||
if err != nil { // Skipping failed to generate hash
|
if err != nil { // Skipping failed to generate hash
|
||||||
return &CommitVerification{
|
return &CommitVerification{
|
||||||
|
@ -380,7 +380,7 @@ func hashAndVerifyWithSubKeysCommitVerification(sig *packet.Signature, payload s
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func hashAndVerifyForKeyID(sig *packet.Signature, payload string, committer *User, keyID, name, email string) *CommitVerification {
|
func hashAndVerifyForKeyID(sig *packet.Signature, payload string, committer *user_model.User, keyID, name, email string) *CommitVerification {
|
||||||
if keyID == "" {
|
if keyID == "" {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -415,16 +415,16 @@ func hashAndVerifyForKeyID(sig *packet.Signature, payload string, committer *Use
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
signer := &User{
|
signer := &user_model.User{
|
||||||
Name: name,
|
Name: name,
|
||||||
Email: email,
|
Email: email,
|
||||||
}
|
}
|
||||||
if key.OwnerID != 0 {
|
if key.OwnerID != 0 {
|
||||||
owner, err := GetUserByID(key.OwnerID)
|
owner, err := user_model.GetUserByID(key.OwnerID)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
signer = owner
|
signer = owner
|
||||||
} else if !IsErrUserNotExist(err) {
|
} else if !user_model.IsErrUserNotExist(err) {
|
||||||
log.Error("Failed to GetUserByID: %d for key ID: %d (%s) %v", key.OwnerID, key.ID, key.KeyID, err)
|
log.Error("Failed to user_model.GetUserByID: %d for key ID: %d (%s) %v", key.OwnerID, key.ID, key.KeyID, err)
|
||||||
return &CommitVerification{
|
return &CommitVerification{
|
||||||
CommittingUser: committer,
|
CommittingUser: committer,
|
||||||
Verified: false,
|
Verified: false,
|
||||||
|
|
|
@ -9,6 +9,7 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/timeutil"
|
"code.gitea.io/gitea/modules/timeutil"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
@ -195,7 +196,7 @@ Unknown GPG key with good email
|
||||||
func TestCheckGPGUserEmail(t *testing.T) {
|
func TestCheckGPGUserEmail(t *testing.T) {
|
||||||
assert.NoError(t, unittest.PrepareTestDatabase())
|
assert.NoError(t, unittest.PrepareTestDatabase())
|
||||||
|
|
||||||
_ = unittest.AssertExistsAndLoadBean(t, &User{ID: 1}).(*User)
|
_ = unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 1}).(*user_model.User)
|
||||||
|
|
||||||
testEmailWithUpperCaseLetters := `-----BEGIN PGP PUBLIC KEY BLOCK-----
|
testEmailWithUpperCaseLetters := `-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
Version: GnuPG v1
|
Version: GnuPG v1
|
||||||
|
|
|
@ -9,6 +9,7 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"code.gitea.io/gitea/models/db"
|
"code.gitea.io/gitea/models/db"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/base"
|
"code.gitea.io/gitea/modules/base"
|
||||||
"code.gitea.io/gitea/modules/log"
|
"code.gitea.io/gitea/modules/log"
|
||||||
)
|
)
|
||||||
|
@ -104,7 +105,7 @@ func VerifyGPGKey(ownerID int64, keyID, token, signature string) (string, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
// VerificationToken returns token for the user that will be valid in minutes (time)
|
// VerificationToken returns token for the user that will be valid in minutes (time)
|
||||||
func VerificationToken(user *User, minutes int) string {
|
func VerificationToken(user *user_model.User, minutes int) string {
|
||||||
return base.EncodeSha256(
|
return base.EncodeSha256(
|
||||||
time.Now().Truncate(1*time.Minute).Add(time.Duration(minutes)*time.Minute).Format(time.RFC1123Z) + ":" +
|
time.Now().Truncate(1*time.Minute).Add(time.Duration(minutes)*time.Minute).Format(time.RFC1123Z) + ":" +
|
||||||
user.CreatedUnix.FormatLong() + ":" +
|
user.CreatedUnix.FormatLong() + ":" +
|
||||||
|
|
|
@ -7,6 +7,7 @@ package models
|
||||||
import (
|
import (
|
||||||
"encoding/binary"
|
"encoding/binary"
|
||||||
|
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/json"
|
"code.gitea.io/gitea/modules/json"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -26,8 +27,8 @@ func valuesRepository(m map[int64]*Repository) []*Repository {
|
||||||
return values
|
return values
|
||||||
}
|
}
|
||||||
|
|
||||||
func valuesUser(m map[int64]*User) []*User {
|
func valuesUser(m map[int64]*user_model.User) []*user_model.User {
|
||||||
values := make([]*User, 0, len(m))
|
values := make([]*user_model.User, 0, len(m))
|
||||||
for _, v := range m {
|
for _, v := range m {
|
||||||
values = append(values, v)
|
values = append(values, v)
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,6 +9,7 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -32,19 +33,19 @@ const (
|
||||||
// It is recommended to avoid using this unless you are pushing within a transaction
|
// It is recommended to avoid using this unless you are pushing within a transaction
|
||||||
// or if you absolutely are sure that post-receive and pre-receive will do nothing
|
// or if you absolutely are sure that post-receive and pre-receive will do nothing
|
||||||
// We provide the full pushing-environment for other hook providers
|
// We provide the full pushing-environment for other hook providers
|
||||||
func InternalPushingEnvironment(doer *User, repo *Repository) []string {
|
func InternalPushingEnvironment(doer *user_model.User, repo *Repository) []string {
|
||||||
return append(PushingEnvironment(doer, repo),
|
return append(PushingEnvironment(doer, repo),
|
||||||
EnvIsInternal+"=true",
|
EnvIsInternal+"=true",
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// PushingEnvironment returns an os environment to allow hooks to work on push
|
// PushingEnvironment returns an os environment to allow hooks to work on push
|
||||||
func PushingEnvironment(doer *User, repo *Repository) []string {
|
func PushingEnvironment(doer *user_model.User, repo *Repository) []string {
|
||||||
return FullPushingEnvironment(doer, doer, repo, repo.Name, 0)
|
return FullPushingEnvironment(doer, doer, repo, repo.Name, 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
// FullPushingEnvironment returns an os environment to allow hooks to work on push
|
// FullPushingEnvironment returns an os environment to allow hooks to work on push
|
||||||
func FullPushingEnvironment(author, committer *User, repo *Repository, repoName string, prID int64) []string {
|
func FullPushingEnvironment(author, committer *user_model.User, repo *Repository, repoName string, prID int64) []string {
|
||||||
isWiki := "false"
|
isWiki := "false"
|
||||||
if strings.HasSuffix(repoName, ".wiki") {
|
if strings.HasSuffix(repoName, ".wiki") {
|
||||||
isWiki = "true"
|
isWiki = "true"
|
||||||
|
|
|
@ -17,6 +17,7 @@ import (
|
||||||
"code.gitea.io/gitea/models/issues"
|
"code.gitea.io/gitea/models/issues"
|
||||||
repo_model "code.gitea.io/gitea/models/repo"
|
repo_model "code.gitea.io/gitea/models/repo"
|
||||||
"code.gitea.io/gitea/models/unit"
|
"code.gitea.io/gitea/models/unit"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/base"
|
"code.gitea.io/gitea/modules/base"
|
||||||
"code.gitea.io/gitea/modules/log"
|
"code.gitea.io/gitea/modules/log"
|
||||||
"code.gitea.io/gitea/modules/references"
|
"code.gitea.io/gitea/modules/references"
|
||||||
|
@ -30,12 +31,12 @@ import (
|
||||||
|
|
||||||
// Issue represents an issue or pull request of repository.
|
// Issue represents an issue or pull request of repository.
|
||||||
type Issue struct {
|
type Issue struct {
|
||||||
ID int64 `xorm:"pk autoincr"`
|
ID int64 `xorm:"pk autoincr"`
|
||||||
RepoID int64 `xorm:"INDEX UNIQUE(repo_index)"`
|
RepoID int64 `xorm:"INDEX UNIQUE(repo_index)"`
|
||||||
Repo *Repository `xorm:"-"`
|
Repo *Repository `xorm:"-"`
|
||||||
Index int64 `xorm:"UNIQUE(repo_index)"` // Index in one repository.
|
Index int64 `xorm:"UNIQUE(repo_index)"` // Index in one repository.
|
||||||
PosterID int64 `xorm:"INDEX"`
|
PosterID int64 `xorm:"INDEX"`
|
||||||
Poster *User `xorm:"-"`
|
Poster *user_model.User `xorm:"-"`
|
||||||
OriginalAuthor string
|
OriginalAuthor string
|
||||||
OriginalAuthorID int64 `xorm:"index"`
|
OriginalAuthorID int64 `xorm:"index"`
|
||||||
Title string `xorm:"name"`
|
Title string `xorm:"name"`
|
||||||
|
@ -46,12 +47,12 @@ type Issue struct {
|
||||||
Milestone *Milestone `xorm:"-"`
|
Milestone *Milestone `xorm:"-"`
|
||||||
Project *Project `xorm:"-"`
|
Project *Project `xorm:"-"`
|
||||||
Priority int
|
Priority int
|
||||||
AssigneeID int64 `xorm:"-"`
|
AssigneeID int64 `xorm:"-"`
|
||||||
Assignee *User `xorm:"-"`
|
Assignee *user_model.User `xorm:"-"`
|
||||||
IsClosed bool `xorm:"INDEX"`
|
IsClosed bool `xorm:"INDEX"`
|
||||||
IsRead bool `xorm:"-"`
|
IsRead bool `xorm:"-"`
|
||||||
IsPull bool `xorm:"INDEX"` // Indicates whether is a pull request or not.
|
IsPull bool `xorm:"INDEX"` // Indicates whether is a pull request or not.
|
||||||
PullRequest *PullRequest `xorm:"-"`
|
PullRequest *PullRequest `xorm:"-"`
|
||||||
NumComments int
|
NumComments int
|
||||||
Ref string
|
Ref string
|
||||||
|
|
||||||
|
@ -65,7 +66,7 @@ type Issue struct {
|
||||||
Comments []*Comment `xorm:"-"`
|
Comments []*Comment `xorm:"-"`
|
||||||
Reactions ReactionList `xorm:"-"`
|
Reactions ReactionList `xorm:"-"`
|
||||||
TotalTrackedTime int64 `xorm:"-"`
|
TotalTrackedTime int64 `xorm:"-"`
|
||||||
Assignees []*User `xorm:"-"`
|
Assignees []*user_model.User `xorm:"-"`
|
||||||
|
|
||||||
// IsLocked limits commenting abilities to users on an issue
|
// IsLocked limits commenting abilities to users on an issue
|
||||||
// with write access
|
// with write access
|
||||||
|
@ -177,11 +178,11 @@ func (issue *Issue) LoadPoster() error {
|
||||||
|
|
||||||
func (issue *Issue) loadPoster(e db.Engine) (err error) {
|
func (issue *Issue) loadPoster(e db.Engine) (err error) {
|
||||||
if issue.Poster == nil {
|
if issue.Poster == nil {
|
||||||
issue.Poster, err = getUserByID(e, issue.PosterID)
|
issue.Poster, err = user_model.GetUserByIDEngine(e, issue.PosterID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
issue.PosterID = -1
|
issue.PosterID = -1
|
||||||
issue.Poster = NewGhostUser()
|
issue.Poster = user_model.NewGhostUser()
|
||||||
if !IsErrUserNotExist(err) {
|
if !user_model.IsErrUserNotExist(err) {
|
||||||
return fmt.Errorf("getUserByID.(poster) [%d]: %v", issue.PosterID, err)
|
return fmt.Errorf("getUserByID.(poster) [%d]: %v", issue.PosterID, err)
|
||||||
}
|
}
|
||||||
err = nil
|
err = nil
|
||||||
|
@ -428,11 +429,11 @@ func (issue *Issue) HasLabel(labelID int64) bool {
|
||||||
return issue.hasLabel(db.GetEngine(db.DefaultContext), labelID)
|
return issue.hasLabel(db.GetEngine(db.DefaultContext), labelID)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (issue *Issue) addLabel(ctx context.Context, label *Label, doer *User) error {
|
func (issue *Issue) addLabel(ctx context.Context, label *Label, doer *user_model.User) error {
|
||||||
return newIssueLabel(ctx, issue, label, doer)
|
return newIssueLabel(ctx, issue, label, doer)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (issue *Issue) addLabels(ctx context.Context, labels []*Label, doer *User) error {
|
func (issue *Issue) addLabels(ctx context.Context, labels []*Label, doer *user_model.User) error {
|
||||||
return newIssueLabels(ctx, issue, labels, doer)
|
return newIssueLabels(ctx, issue, labels, doer)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -448,11 +449,11 @@ func (issue *Issue) getLabels(e db.Engine) (err error) {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (issue *Issue) removeLabel(ctx context.Context, doer *User, label *Label) error {
|
func (issue *Issue) removeLabel(ctx context.Context, doer *user_model.User, label *Label) error {
|
||||||
return deleteIssueLabel(ctx, issue, label, doer)
|
return deleteIssueLabel(ctx, issue, label, doer)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (issue *Issue) clearLabels(ctx context.Context, doer *User) (err error) {
|
func (issue *Issue) clearLabels(ctx context.Context, doer *user_model.User) (err error) {
|
||||||
if err = issue.getLabels(db.GetEngine(ctx)); err != nil {
|
if err = issue.getLabels(db.GetEngine(ctx)); err != nil {
|
||||||
return fmt.Errorf("getLabels: %v", err)
|
return fmt.Errorf("getLabels: %v", err)
|
||||||
}
|
}
|
||||||
|
@ -468,7 +469,7 @@ func (issue *Issue) clearLabels(ctx context.Context, doer *User) (err error) {
|
||||||
|
|
||||||
// ClearLabels removes all issue labels as the given user.
|
// ClearLabels removes all issue labels as the given user.
|
||||||
// Triggers appropriate WebHooks, if any.
|
// Triggers appropriate WebHooks, if any.
|
||||||
func (issue *Issue) ClearLabels(doer *User) (err error) {
|
func (issue *Issue) ClearLabels(doer *user_model.User) (err error) {
|
||||||
ctx, committer, err := db.TxContext()
|
ctx, committer, err := db.TxContext()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -516,7 +517,7 @@ func (ts labelSorter) Swap(i, j int) {
|
||||||
|
|
||||||
// ReplaceLabels removes all current labels and add new labels to the issue.
|
// ReplaceLabels removes all current labels and add new labels to the issue.
|
||||||
// Triggers appropriate WebHooks, if any.
|
// Triggers appropriate WebHooks, if any.
|
||||||
func (issue *Issue) ReplaceLabels(labels []*Label, doer *User) (err error) {
|
func (issue *Issue) ReplaceLabels(labels []*Label, doer *user_model.User) (err error) {
|
||||||
ctx, committer, err := db.TxContext()
|
ctx, committer, err := db.TxContext()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -598,7 +599,7 @@ func updateIssueCols(e db.Engine, issue *Issue, cols ...string) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (issue *Issue) changeStatus(ctx context.Context, doer *User, isClosed, isMergePull bool) (*Comment, error) {
|
func (issue *Issue) changeStatus(ctx context.Context, doer *user_model.User, isClosed, isMergePull bool) (*Comment, error) {
|
||||||
// Reload the issue
|
// Reload the issue
|
||||||
currentIssue, err := getIssueByID(db.GetEngine(ctx), issue.ID)
|
currentIssue, err := getIssueByID(db.GetEngine(ctx), issue.ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -621,7 +622,7 @@ func (issue *Issue) changeStatus(ctx context.Context, doer *User, isClosed, isMe
|
||||||
return issue.doChangeStatus(ctx, doer, isMergePull)
|
return issue.doChangeStatus(ctx, doer, isMergePull)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (issue *Issue) doChangeStatus(ctx context.Context, doer *User, isMergePull bool) (*Comment, error) {
|
func (issue *Issue) doChangeStatus(ctx context.Context, doer *user_model.User, isMergePull bool) (*Comment, error) {
|
||||||
e := db.GetEngine(ctx)
|
e := db.GetEngine(ctx)
|
||||||
// Check for open dependencies
|
// Check for open dependencies
|
||||||
if issue.IsClosed && issue.Repo.isDependenciesEnabled(e) {
|
if issue.IsClosed && issue.Repo.isDependenciesEnabled(e) {
|
||||||
|
@ -684,7 +685,7 @@ func (issue *Issue) doChangeStatus(ctx context.Context, doer *User, isMergePull
|
||||||
}
|
}
|
||||||
|
|
||||||
// ChangeStatus changes issue status to open or closed.
|
// ChangeStatus changes issue status to open or closed.
|
||||||
func (issue *Issue) ChangeStatus(doer *User, isClosed bool) (*Comment, error) {
|
func (issue *Issue) ChangeStatus(doer *user_model.User, isClosed bool) (*Comment, error) {
|
||||||
ctx, committer, err := db.TxContext()
|
ctx, committer, err := db.TxContext()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -711,7 +712,7 @@ func (issue *Issue) ChangeStatus(doer *User, isClosed bool) (*Comment, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// ChangeTitle changes the title of this issue, as the given user.
|
// ChangeTitle changes the title of this issue, as the given user.
|
||||||
func (issue *Issue) ChangeTitle(doer *User, oldTitle string) (err error) {
|
func (issue *Issue) ChangeTitle(doer *user_model.User, oldTitle string) (err error) {
|
||||||
ctx, committer, err := db.TxContext()
|
ctx, committer, err := db.TxContext()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -745,7 +746,7 @@ func (issue *Issue) ChangeTitle(doer *User, oldTitle string) (err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// ChangeRef changes the branch of this issue, as the given user.
|
// ChangeRef changes the branch of this issue, as the given user.
|
||||||
func (issue *Issue) ChangeRef(doer *User, oldRef string) (err error) {
|
func (issue *Issue) ChangeRef(doer *user_model.User, oldRef string) (err error) {
|
||||||
ctx, committer, err := db.TxContext()
|
ctx, committer, err := db.TxContext()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -778,7 +779,7 @@ func (issue *Issue) ChangeRef(doer *User, oldRef string) (err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// AddDeletePRBranchComment adds delete branch comment for pull request issue
|
// AddDeletePRBranchComment adds delete branch comment for pull request issue
|
||||||
func AddDeletePRBranchComment(doer *User, repo *Repository, issueID int64, branchName string) error {
|
func AddDeletePRBranchComment(doer *user_model.User, repo *Repository, issueID int64, branchName string) error {
|
||||||
issue, err := getIssueByID(db.GetEngine(db.DefaultContext), issueID)
|
issue, err := getIssueByID(db.GetEngine(db.DefaultContext), issueID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -823,7 +824,7 @@ func (issue *Issue) UpdateAttachments(uuids []string) (err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// ChangeContent changes issue content, as the given user.
|
// ChangeContent changes issue content, as the given user.
|
||||||
func (issue *Issue) ChangeContent(doer *User, content string) (err error) {
|
func (issue *Issue) ChangeContent(doer *user_model.User, content string) (err error) {
|
||||||
ctx, committer, err := db.TxContext()
|
ctx, committer, err := db.TxContext()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -922,7 +923,7 @@ type NewIssueOptions struct {
|
||||||
IsPull bool
|
IsPull bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func newIssue(ctx context.Context, doer *User, opts NewIssueOptions) (err error) {
|
func newIssue(ctx context.Context, doer *user_model.User, opts NewIssueOptions) (err error) {
|
||||||
e := db.GetEngine(ctx)
|
e := db.GetEngine(ctx)
|
||||||
opts.Issue.Title = strings.TrimSpace(opts.Issue.Title)
|
opts.Issue.Title = strings.TrimSpace(opts.Issue.Title)
|
||||||
|
|
||||||
|
@ -1380,7 +1381,7 @@ func CountIssuesByRepo(opts *IssuesOptions) (map[int64]int64, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetRepoIDsForIssuesOptions find all repo ids for the given options
|
// GetRepoIDsForIssuesOptions find all repo ids for the given options
|
||||||
func GetRepoIDsForIssuesOptions(opts *IssuesOptions, user *User) ([]int64, error) {
|
func GetRepoIDsForIssuesOptions(opts *IssuesOptions, user *user_model.User) ([]int64, error) {
|
||||||
repoIDs := make([]int64, 0, 5)
|
repoIDs := make([]int64, 0, 5)
|
||||||
e := db.GetEngine(db.DefaultContext)
|
e := db.GetEngine(db.DefaultContext)
|
||||||
|
|
||||||
|
@ -1455,7 +1456,7 @@ func GetParticipantsIDsByIssueID(issueID int64) ([]int64, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsUserParticipantsOfIssue return true if user is participants of an issue
|
// IsUserParticipantsOfIssue return true if user is participants of an issue
|
||||||
func IsUserParticipantsOfIssue(user *User, issue *Issue) bool {
|
func IsUserParticipantsOfIssue(user *user_model.User, issue *Issue) bool {
|
||||||
userIDs, err := issue.getParticipantIDsByIssue(db.GetEngine(db.DefaultContext))
|
userIDs, err := issue.getParticipantIDsByIssue(db.GetEngine(db.DefaultContext))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error(err.Error())
|
log.Error(err.Error())
|
||||||
|
@ -1465,7 +1466,7 @@ func IsUserParticipantsOfIssue(user *User, issue *Issue) bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
// UpdateIssueMentions updates issue-user relations for mentioned users.
|
// UpdateIssueMentions updates issue-user relations for mentioned users.
|
||||||
func UpdateIssueMentions(ctx context.Context, issueID int64, mentions []*User) error {
|
func UpdateIssueMentions(ctx context.Context, issueID int64, mentions []*user_model.User) error {
|
||||||
if len(mentions) == 0 {
|
if len(mentions) == 0 {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -1843,7 +1844,7 @@ func SearchIssueIDsByKeyword(kw string, repoIDs []int64, limit, start int) (int6
|
||||||
// UpdateIssueByAPI updates all allowed fields of given issue.
|
// UpdateIssueByAPI updates all allowed fields of given issue.
|
||||||
// If the issue status is changed a statusChangeComment is returned
|
// If the issue status is changed a statusChangeComment is returned
|
||||||
// similarly if the title is changed the titleChanged bool is set to true
|
// similarly if the title is changed the titleChanged bool is set to true
|
||||||
func UpdateIssueByAPI(issue *Issue, doer *User) (statusChangeComment *Comment, titleChanged bool, err error) {
|
func UpdateIssueByAPI(issue *Issue, doer *user_model.User) (statusChangeComment *Comment, titleChanged bool, err error) {
|
||||||
ctx, committer, err := db.TxContext()
|
ctx, committer, err := db.TxContext()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, false, err
|
return nil, false, err
|
||||||
|
@ -1898,7 +1899,7 @@ func UpdateIssueByAPI(issue *Issue, doer *User) (statusChangeComment *Comment, t
|
||||||
}
|
}
|
||||||
|
|
||||||
// UpdateIssueDeadline updates an issue deadline and adds comments. Setting a deadline to 0 means deleting it.
|
// UpdateIssueDeadline updates an issue deadline and adds comments. Setting a deadline to 0 means deleting it.
|
||||||
func UpdateIssueDeadline(issue *Issue, deadlineUnix timeutil.TimeStamp, doer *User) (err error) {
|
func UpdateIssueDeadline(issue *Issue, deadlineUnix timeutil.TimeStamp, doer *user_model.User) (err error) {
|
||||||
// if the deadline hasn't changed do nothing
|
// if the deadline hasn't changed do nothing
|
||||||
if issue.DeadlineUnix == deadlineUnix {
|
if issue.DeadlineUnix == deadlineUnix {
|
||||||
return nil
|
return nil
|
||||||
|
@ -2017,7 +2018,7 @@ func (issue *Issue) updateClosedNum(e db.Engine) (err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// FindAndUpdateIssueMentions finds users mentioned in the given content string, and saves them in the database.
|
// FindAndUpdateIssueMentions finds users mentioned in the given content string, and saves them in the database.
|
||||||
func (issue *Issue) FindAndUpdateIssueMentions(ctx context.Context, doer *User, content string) (mentions []*User, err error) {
|
func (issue *Issue) FindAndUpdateIssueMentions(ctx context.Context, doer *user_model.User, content string) (mentions []*user_model.User, err error) {
|
||||||
rawMentions := references.FindAllMentionsMarkdown(content)
|
rawMentions := references.FindAllMentionsMarkdown(content)
|
||||||
mentions, err = issue.ResolveMentionsByVisibility(ctx, doer, rawMentions)
|
mentions, err = issue.ResolveMentionsByVisibility(ctx, doer, rawMentions)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -2031,7 +2032,7 @@ func (issue *Issue) FindAndUpdateIssueMentions(ctx context.Context, doer *User,
|
||||||
|
|
||||||
// ResolveMentionsByVisibility returns the users mentioned in an issue, removing those that
|
// ResolveMentionsByVisibility returns the users mentioned in an issue, removing those that
|
||||||
// don't have access to reading it. Teams are expanded into their users, but organizations are ignored.
|
// don't have access to reading it. Teams are expanded into their users, but organizations are ignored.
|
||||||
func (issue *Issue) ResolveMentionsByVisibility(ctx context.Context, doer *User, mentions []string) (users []*User, err error) {
|
func (issue *Issue) ResolveMentionsByVisibility(ctx context.Context, doer *user_model.User, mentions []string) (users []*user_model.User, err error) {
|
||||||
if len(mentions) == 0 {
|
if len(mentions) == 0 {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -2100,7 +2101,7 @@ func (issue *Issue) ResolveMentionsByVisibility(ctx context.Context, doer *User,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if len(checked) != 0 {
|
if len(checked) != 0 {
|
||||||
teamusers := make([]*User, 0, 20)
|
teamusers := make([]*user_model.User, 0, 20)
|
||||||
if err := db.GetEngine(ctx).
|
if err := db.GetEngine(ctx).
|
||||||
Join("INNER", "team_user", "team_user.uid = `user`.id").
|
Join("INNER", "team_user", "team_user.uid = `user`.id").
|
||||||
In("`team_user`.team_id", checked).
|
In("`team_user`.team_id", checked).
|
||||||
|
@ -2110,7 +2111,7 @@ func (issue *Issue) ResolveMentionsByVisibility(ctx context.Context, doer *User,
|
||||||
return nil, fmt.Errorf("get teams users: %v", err)
|
return nil, fmt.Errorf("get teams users: %v", err)
|
||||||
}
|
}
|
||||||
if len(teamusers) > 0 {
|
if len(teamusers) > 0 {
|
||||||
users = make([]*User, 0, len(teamusers))
|
users = make([]*user_model.User, 0, len(teamusers))
|
||||||
for _, user := range teamusers {
|
for _, user := range teamusers {
|
||||||
if already, ok := resolved[user.LowerName]; !ok || !already {
|
if already, ok := resolved[user.LowerName]; !ok || !already {
|
||||||
users = append(users, user)
|
users = append(users, user)
|
||||||
|
@ -2134,10 +2135,10 @@ func (issue *Issue) ResolveMentionsByVisibility(ctx context.Context, doer *User,
|
||||||
}
|
}
|
||||||
|
|
||||||
if users == nil {
|
if users == nil {
|
||||||
users = make([]*User, 0, len(mentionUsers))
|
users = make([]*user_model.User, 0, len(mentionUsers))
|
||||||
}
|
}
|
||||||
|
|
||||||
unchecked := make([]*User, 0, len(mentionUsers))
|
unchecked := make([]*user_model.User, 0, len(mentionUsers))
|
||||||
if err := db.GetEngine(ctx).
|
if err := db.GetEngine(ctx).
|
||||||
Where("`user`.is_active = ?", true).
|
Where("`user`.is_active = ?", true).
|
||||||
And("`user`.prohibit_login = ?", false).
|
And("`user`.prohibit_login = ?", false).
|
||||||
|
|
|
@ -9,6 +9,7 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"code.gitea.io/gitea/models/db"
|
"code.gitea.io/gitea/models/db"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/util"
|
"code.gitea.io/gitea/modules/util"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -31,7 +32,7 @@ func (issue *Issue) LoadAssignees() error {
|
||||||
// This loads all assignees of an issue
|
// This loads all assignees of an issue
|
||||||
func (issue *Issue) loadAssignees(e db.Engine) (err error) {
|
func (issue *Issue) loadAssignees(e db.Engine) (err error) {
|
||||||
// Reset maybe preexisting assignees
|
// Reset maybe preexisting assignees
|
||||||
issue.Assignees = []*User{}
|
issue.Assignees = []*user_model.User{}
|
||||||
|
|
||||||
err = e.Table("`user`").
|
err = e.Table("`user`").
|
||||||
Join("INNER", "issue_assignees", "assignee_id = `user`.id").
|
Join("INNER", "issue_assignees", "assignee_id = `user`.id").
|
||||||
|
@ -63,11 +64,11 @@ func GetAssigneeIDsByIssue(issueID int64) ([]int64, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetAssigneesByIssue returns everyone assigned to that issue
|
// GetAssigneesByIssue returns everyone assigned to that issue
|
||||||
func GetAssigneesByIssue(issue *Issue) (assignees []*User, err error) {
|
func GetAssigneesByIssue(issue *Issue) (assignees []*user_model.User, err error) {
|
||||||
return getAssigneesByIssue(db.GetEngine(db.DefaultContext), issue)
|
return getAssigneesByIssue(db.GetEngine(db.DefaultContext), issue)
|
||||||
}
|
}
|
||||||
|
|
||||||
func getAssigneesByIssue(e db.Engine, issue *Issue) (assignees []*User, err error) {
|
func getAssigneesByIssue(e db.Engine, issue *Issue) (assignees []*user_model.User, err error) {
|
||||||
err = issue.loadAssignees(e)
|
err = issue.loadAssignees(e)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return assignees, err
|
return assignees, err
|
||||||
|
@ -77,11 +78,11 @@ func getAssigneesByIssue(e db.Engine, issue *Issue) (assignees []*User, err erro
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsUserAssignedToIssue returns true when the user is assigned to the issue
|
// IsUserAssignedToIssue returns true when the user is assigned to the issue
|
||||||
func IsUserAssignedToIssue(issue *Issue, user *User) (isAssigned bool, err error) {
|
func IsUserAssignedToIssue(issue *Issue, user *user_model.User) (isAssigned bool, err error) {
|
||||||
return isUserAssignedToIssue(db.GetEngine(db.DefaultContext), issue, user)
|
return isUserAssignedToIssue(db.GetEngine(db.DefaultContext), issue, user)
|
||||||
}
|
}
|
||||||
|
|
||||||
func isUserAssignedToIssue(e db.Engine, issue *Issue, user *User) (isAssigned bool, err error) {
|
func isUserAssignedToIssue(e db.Engine, issue *Issue, user *user_model.User) (isAssigned bool, err error) {
|
||||||
return e.Get(&IssueAssignees{IssueID: issue.ID, AssigneeID: user.ID})
|
return e.Get(&IssueAssignees{IssueID: issue.ID, AssigneeID: user.ID})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -92,7 +93,7 @@ func clearAssigneeByUserID(sess db.Engine, userID int64) (err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// ToggleAssignee changes a user between assigned and not assigned for this issue, and make issue comment for it.
|
// ToggleAssignee changes a user between assigned and not assigned for this issue, and make issue comment for it.
|
||||||
func (issue *Issue) ToggleAssignee(doer *User, assigneeID int64) (removed bool, comment *Comment, err error) {
|
func (issue *Issue) ToggleAssignee(doer *user_model.User, assigneeID int64) (removed bool, comment *Comment, err error) {
|
||||||
ctx, committer, err := db.TxContext()
|
ctx, committer, err := db.TxContext()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, nil, err
|
return false, nil, err
|
||||||
|
@ -111,7 +112,7 @@ func (issue *Issue) ToggleAssignee(doer *User, assigneeID int64) (removed bool,
|
||||||
return removed, comment, nil
|
return removed, comment, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (issue *Issue) toggleAssignee(ctx context.Context, doer *User, assigneeID int64, isCreate bool) (removed bool, comment *Comment, err error) {
|
func (issue *Issue) toggleAssignee(ctx context.Context, doer *user_model.User, assigneeID int64, isCreate bool) (removed bool, comment *Comment, err error) {
|
||||||
sess := db.GetEngine(ctx)
|
sess := db.GetEngine(ctx)
|
||||||
removed, err = toggleUserAssignee(sess, issue, assigneeID)
|
removed, err = toggleUserAssignee(sess, issue, assigneeID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -148,7 +149,7 @@ func (issue *Issue) toggleAssignee(ctx context.Context, doer *User, assigneeID i
|
||||||
// toggles user assignee state in database
|
// toggles user assignee state in database
|
||||||
func toggleUserAssignee(e db.Engine, issue *Issue, assigneeID int64) (removed bool, err error) {
|
func toggleUserAssignee(e db.Engine, issue *Issue, assigneeID int64) (removed bool, err error) {
|
||||||
// Check if the user exists
|
// Check if the user exists
|
||||||
assignee, err := getUserByID(e, assigneeID)
|
assignee, err := user_model.GetUserByIDEngine(e, assigneeID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, err
|
return false, err
|
||||||
}
|
}
|
||||||
|
@ -196,7 +197,7 @@ func MakeIDsFromAPIAssigneesToAdd(oneAssignee string, multipleAssignees []string
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get the IDs of all assignees
|
// Get the IDs of all assignees
|
||||||
assigneeIDs, err = GetUserIDsByNames(requestAssignees, false)
|
assigneeIDs, err = user_model.GetUserIDsByNames(requestAssignees, false)
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,7 @@ import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
|
@ -20,19 +21,19 @@ func TestUpdateAssignee(t *testing.T) {
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
// Assign multiple users
|
// Assign multiple users
|
||||||
user2, err := GetUserByID(2)
|
user2, err := user_model.GetUserByID(2)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
_, _, err = issue.ToggleAssignee(&User{ID: 1}, user2.ID)
|
_, _, err = issue.ToggleAssignee(&user_model.User{ID: 1}, user2.ID)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
user3, err := GetUserByID(3)
|
user3, err := user_model.GetUserByID(3)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
_, _, err = issue.ToggleAssignee(&User{ID: 1}, user3.ID)
|
_, _, err = issue.ToggleAssignee(&user_model.User{ID: 1}, user3.ID)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
user1, err := GetUserByID(1) // This user is already assigned (see the definition in fixtures), so running UpdateAssignee should unassign him
|
user1, err := user_model.GetUserByID(1) // This user is already assigned (see the definition in fixtures), so running UpdateAssignee should unassign him
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
_, _, err = issue.ToggleAssignee(&User{ID: 1}, user1.ID)
|
_, _, err = issue.ToggleAssignee(&user_model.User{ID: 1}, user1.ID)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
// Check if he got removed
|
// Check if he got removed
|
||||||
|
@ -44,7 +45,7 @@ func TestUpdateAssignee(t *testing.T) {
|
||||||
assignees, err := GetAssigneesByIssue(issue)
|
assignees, err := GetAssigneesByIssue(issue)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
var expectedAssignees []*User
|
var expectedAssignees []*user_model.User
|
||||||
expectedAssignees = append(expectedAssignees, user2, user3)
|
expectedAssignees = append(expectedAssignees, user2, user3)
|
||||||
|
|
||||||
for in, assignee := range assignees {
|
for in, assignee := range assignees {
|
||||||
|
@ -57,7 +58,7 @@ func TestUpdateAssignee(t *testing.T) {
|
||||||
assert.True(t, isAssigned)
|
assert.True(t, isAssigned)
|
||||||
|
|
||||||
// This user should not be assigned
|
// This user should not be assigned
|
||||||
isAssigned, err = IsUserAssignedToIssue(issue, &User{ID: 4})
|
isAssigned, err = IsUserAssignedToIssue(issue, &user_model.User{ID: 4})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.False(t, isAssigned)
|
assert.False(t, isAssigned)
|
||||||
}
|
}
|
||||||
|
@ -65,8 +66,8 @@ func TestUpdateAssignee(t *testing.T) {
|
||||||
func TestMakeIDsFromAPIAssigneesToAdd(t *testing.T) {
|
func TestMakeIDsFromAPIAssigneesToAdd(t *testing.T) {
|
||||||
assert.NoError(t, unittest.PrepareTestDatabase())
|
assert.NoError(t, unittest.PrepareTestDatabase())
|
||||||
|
|
||||||
_ = unittest.AssertExistsAndLoadBean(t, &User{ID: 1}).(*User)
|
_ = unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 1}).(*user_model.User)
|
||||||
_ = unittest.AssertExistsAndLoadBean(t, &User{ID: 2}).(*User)
|
_ = unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
|
|
||||||
IDs, err := MakeIDsFromAPIAssigneesToAdd("", []string{""})
|
IDs, err := MakeIDsFromAPIAssigneesToAdd("", []string{""})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
|
@ -17,6 +17,7 @@ import (
|
||||||
"code.gitea.io/gitea/models/db"
|
"code.gitea.io/gitea/models/db"
|
||||||
"code.gitea.io/gitea/models/issues"
|
"code.gitea.io/gitea/models/issues"
|
||||||
repo_model "code.gitea.io/gitea/models/repo"
|
repo_model "code.gitea.io/gitea/models/repo"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/git"
|
"code.gitea.io/gitea/modules/git"
|
||||||
"code.gitea.io/gitea/modules/json"
|
"code.gitea.io/gitea/modules/json"
|
||||||
"code.gitea.io/gitea/modules/log"
|
"code.gitea.io/gitea/modules/log"
|
||||||
|
@ -148,10 +149,10 @@ func (rd RoleDescriptor) HasRole(role string) bool {
|
||||||
|
|
||||||
// Comment represents a comment in commit and issue page.
|
// Comment represents a comment in commit and issue page.
|
||||||
type Comment struct {
|
type Comment struct {
|
||||||
ID int64 `xorm:"pk autoincr"`
|
ID int64 `xorm:"pk autoincr"`
|
||||||
Type CommentType `xorm:"INDEX"`
|
Type CommentType `xorm:"INDEX"`
|
||||||
PosterID int64 `xorm:"INDEX"`
|
PosterID int64 `xorm:"INDEX"`
|
||||||
Poster *User `xorm:"-"`
|
Poster *user_model.User `xorm:"-"`
|
||||||
OriginalAuthor string
|
OriginalAuthor string
|
||||||
OriginalAuthorID int64
|
OriginalAuthorID int64
|
||||||
IssueID int64 `xorm:"INDEX"`
|
IssueID int64 `xorm:"INDEX"`
|
||||||
|
@ -172,11 +173,11 @@ type Comment struct {
|
||||||
Time *TrackedTime `xorm:"-"`
|
Time *TrackedTime `xorm:"-"`
|
||||||
AssigneeID int64
|
AssigneeID int64
|
||||||
RemovedAssignee bool
|
RemovedAssignee bool
|
||||||
Assignee *User `xorm:"-"`
|
Assignee *user_model.User `xorm:"-"`
|
||||||
AssigneeTeamID int64 `xorm:"NOT NULL DEFAULT 0"`
|
AssigneeTeamID int64 `xorm:"NOT NULL DEFAULT 0"`
|
||||||
AssigneeTeam *Team `xorm:"-"`
|
AssigneeTeam *Team `xorm:"-"`
|
||||||
ResolveDoerID int64
|
ResolveDoerID int64
|
||||||
ResolveDoer *User `xorm:"-"`
|
ResolveDoer *user_model.User `xorm:"-"`
|
||||||
OldTitle string
|
OldTitle string
|
||||||
NewTitle string
|
NewTitle string
|
||||||
OldRef string
|
OldRef string
|
||||||
|
@ -284,11 +285,11 @@ func (c *Comment) loadPoster(e db.Engine) (err error) {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
c.Poster, err = getUserByID(e, c.PosterID)
|
c.Poster, err = user_model.GetUserByIDEngine(e, c.PosterID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if IsErrUserNotExist(err) {
|
if user_model.IsErrUserNotExist(err) {
|
||||||
c.PosterID = -1
|
c.PosterID = -1
|
||||||
c.Poster = NewGhostUser()
|
c.Poster = user_model.NewGhostUser()
|
||||||
} else {
|
} else {
|
||||||
log.Error("getUserByID[%d]: %v", c.ID, err)
|
log.Error("getUserByID[%d]: %v", c.ID, err)
|
||||||
}
|
}
|
||||||
|
@ -519,12 +520,12 @@ func (c *Comment) LoadAssigneeUserAndTeam() error {
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
if c.AssigneeID > 0 && c.Assignee == nil {
|
if c.AssigneeID > 0 && c.Assignee == nil {
|
||||||
c.Assignee, err = GetUserByIDCtx(db.DefaultContext, c.AssigneeID)
|
c.Assignee, err = user_model.GetUserByIDCtx(db.DefaultContext, c.AssigneeID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if !IsErrUserNotExist(err) {
|
if !user_model.IsErrUserNotExist(err) {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
c.Assignee = NewGhostUser()
|
c.Assignee = user_model.NewGhostUser()
|
||||||
}
|
}
|
||||||
} else if c.AssigneeTeamID > 0 && c.AssigneeTeam == nil {
|
} else if c.AssigneeTeamID > 0 && c.AssigneeTeam == nil {
|
||||||
if err = c.LoadIssue(); err != nil {
|
if err = c.LoadIssue(); err != nil {
|
||||||
|
@ -554,10 +555,10 @@ func (c *Comment) LoadResolveDoer() (err error) {
|
||||||
if c.ResolveDoerID == 0 || c.Type != CommentTypeCode {
|
if c.ResolveDoerID == 0 || c.Type != CommentTypeCode {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
c.ResolveDoer, err = GetUserByIDCtx(db.DefaultContext, c.ResolveDoerID)
|
c.ResolveDoer, err = user_model.GetUserByIDCtx(db.DefaultContext, c.ResolveDoerID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if IsErrUserNotExist(err) {
|
if user_model.IsErrUserNotExist(err) {
|
||||||
c.ResolveDoer = NewGhostUser()
|
c.ResolveDoer = user_model.NewGhostUser()
|
||||||
err = nil
|
err = nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -628,7 +629,7 @@ func (c *Comment) LoadReview() error {
|
||||||
|
|
||||||
var notEnoughLines = regexp.MustCompile(`fatal: file .* has only \d+ lines?`)
|
var notEnoughLines = regexp.MustCompile(`fatal: file .* has only \d+ lines?`)
|
||||||
|
|
||||||
func (c *Comment) checkInvalidation(doer *User, repo *git.Repository, branch string) error {
|
func (c *Comment) checkInvalidation(doer *user_model.User, repo *git.Repository, branch string) error {
|
||||||
// FIXME differentiate between previous and proposed line
|
// FIXME differentiate between previous and proposed line
|
||||||
commit, err := repo.LineBlame(branch, repo.Path, c.TreePath, uint(c.UnsignedLine()))
|
commit, err := repo.LineBlame(branch, repo.Path, c.TreePath, uint(c.UnsignedLine()))
|
||||||
if err != nil && (strings.Contains(err.Error(), "fatal: no such path") || notEnoughLines.MatchString(err.Error())) {
|
if err != nil && (strings.Contains(err.Error(), "fatal: no such path") || notEnoughLines.MatchString(err.Error())) {
|
||||||
|
@ -647,7 +648,7 @@ func (c *Comment) checkInvalidation(doer *User, repo *git.Repository, branch str
|
||||||
|
|
||||||
// CheckInvalidation checks if the line of code comment got changed by another commit.
|
// CheckInvalidation checks if the line of code comment got changed by another commit.
|
||||||
// If the line got changed the comment is going to be invalidated.
|
// If the line got changed the comment is going to be invalidated.
|
||||||
func (c *Comment) CheckInvalidation(repo *git.Repository, doer *User, branch string) error {
|
func (c *Comment) CheckInvalidation(repo *git.Repository, doer *user_model.User, branch string) error {
|
||||||
return c.checkInvalidation(doer, repo, branch)
|
return c.checkInvalidation(doer, repo, branch)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -824,7 +825,7 @@ func updateCommentInfos(ctx context.Context, opts *CreateCommentOptions, comment
|
||||||
return updateIssueCols(e, opts.Issue, "updated_unix")
|
return updateIssueCols(e, opts.Issue, "updated_unix")
|
||||||
}
|
}
|
||||||
|
|
||||||
func createDeadlineComment(ctx context.Context, doer *User, issue *Issue, newDeadlineUnix timeutil.TimeStamp) (*Comment, error) {
|
func createDeadlineComment(ctx context.Context, doer *user_model.User, issue *Issue, newDeadlineUnix timeutil.TimeStamp) (*Comment, error) {
|
||||||
var content string
|
var content string
|
||||||
var commentType CommentType
|
var commentType CommentType
|
||||||
|
|
||||||
|
@ -861,7 +862,7 @@ func createDeadlineComment(ctx context.Context, doer *User, issue *Issue, newDea
|
||||||
}
|
}
|
||||||
|
|
||||||
// Creates issue dependency comment
|
// Creates issue dependency comment
|
||||||
func createIssueDependencyComment(ctx context.Context, doer *User, issue, dependentIssue *Issue, add bool) (err error) {
|
func createIssueDependencyComment(ctx context.Context, doer *user_model.User, issue, dependentIssue *Issue, add bool) (err error) {
|
||||||
cType := CommentTypeAddDependency
|
cType := CommentTypeAddDependency
|
||||||
if !add {
|
if !add {
|
||||||
cType = CommentTypeRemoveDependency
|
cType = CommentTypeRemoveDependency
|
||||||
|
@ -896,7 +897,7 @@ func createIssueDependencyComment(ctx context.Context, doer *User, issue, depend
|
||||||
// CreateCommentOptions defines options for creating comment
|
// CreateCommentOptions defines options for creating comment
|
||||||
type CreateCommentOptions struct {
|
type CreateCommentOptions struct {
|
||||||
Type CommentType
|
Type CommentType
|
||||||
Doer *User
|
Doer *user_model.User
|
||||||
Repo *Repository
|
Repo *Repository
|
||||||
Issue *Issue
|
Issue *Issue
|
||||||
Label *Label
|
Label *Label
|
||||||
|
@ -952,7 +953,7 @@ func CreateComment(opts *CreateCommentOptions) (comment *Comment, err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// CreateRefComment creates a commit reference comment to issue.
|
// CreateRefComment creates a commit reference comment to issue.
|
||||||
func CreateRefComment(doer *User, repo *Repository, issue *Issue, content, commitSHA string) error {
|
func CreateRefComment(doer *user_model.User, repo *Repository, issue *Issue, content, commitSHA string) error {
|
||||||
if len(commitSHA) == 0 {
|
if len(commitSHA) == 0 {
|
||||||
return fmt.Errorf("cannot create reference with empty commit SHA")
|
return fmt.Errorf("cannot create reference with empty commit SHA")
|
||||||
}
|
}
|
||||||
|
@ -1072,7 +1073,7 @@ func CountComments(opts *FindCommentsOptions) (int64, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// UpdateComment updates information of comment.
|
// UpdateComment updates information of comment.
|
||||||
func UpdateComment(c *Comment, doer *User) error {
|
func UpdateComment(c *Comment, doer *user_model.User) error {
|
||||||
ctx, committer, err := db.TxContext()
|
ctx, committer, err := db.TxContext()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -1143,11 +1144,11 @@ func deleteComment(e db.Engine, comment *Comment) error {
|
||||||
// CodeComments represents comments on code by using this structure: FILENAME -> LINE (+ == proposed; - == previous) -> COMMENTS
|
// CodeComments represents comments on code by using this structure: FILENAME -> LINE (+ == proposed; - == previous) -> COMMENTS
|
||||||
type CodeComments map[string]map[int64][]*Comment
|
type CodeComments map[string]map[int64][]*Comment
|
||||||
|
|
||||||
func fetchCodeComments(e db.Engine, issue *Issue, currentUser *User) (CodeComments, error) {
|
func fetchCodeComments(e db.Engine, issue *Issue, currentUser *user_model.User) (CodeComments, error) {
|
||||||
return fetchCodeCommentsByReview(e, issue, currentUser, nil)
|
return fetchCodeCommentsByReview(e, issue, currentUser, nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
func fetchCodeCommentsByReview(e db.Engine, issue *Issue, currentUser *User, review *Review) (CodeComments, error) {
|
func fetchCodeCommentsByReview(e db.Engine, issue *Issue, currentUser *user_model.User, review *Review) (CodeComments, error) {
|
||||||
pathToLineToComment := make(CodeComments)
|
pathToLineToComment := make(CodeComments)
|
||||||
if review == nil {
|
if review == nil {
|
||||||
review = &Review{ID: 0}
|
review = &Review{ID: 0}
|
||||||
|
@ -1172,7 +1173,7 @@ func fetchCodeCommentsByReview(e db.Engine, issue *Issue, currentUser *User, rev
|
||||||
return pathToLineToComment, nil
|
return pathToLineToComment, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func findCodeComments(e db.Engine, opts FindCommentsOptions, issue *Issue, currentUser *User, review *Review) ([]*Comment, error) {
|
func findCodeComments(e db.Engine, opts FindCommentsOptions, issue *Issue, currentUser *user_model.User, review *Review) ([]*Comment, error) {
|
||||||
var comments []*Comment
|
var comments []*Comment
|
||||||
if review == nil {
|
if review == nil {
|
||||||
review = &Review{ID: 0}
|
review = &Review{ID: 0}
|
||||||
|
@ -1241,7 +1242,7 @@ func findCodeComments(e db.Engine, opts FindCommentsOptions, issue *Issue, curre
|
||||||
}
|
}
|
||||||
|
|
||||||
// FetchCodeCommentsByLine fetches the code comments for a given treePath and line number
|
// FetchCodeCommentsByLine fetches the code comments for a given treePath and line number
|
||||||
func FetchCodeCommentsByLine(issue *Issue, currentUser *User, treePath string, line int64) ([]*Comment, error) {
|
func FetchCodeCommentsByLine(issue *Issue, currentUser *user_model.User, treePath string, line int64) ([]*Comment, error) {
|
||||||
opts := FindCommentsOptions{
|
opts := FindCommentsOptions{
|
||||||
Type: CommentTypeCode,
|
Type: CommentTypeCode,
|
||||||
IssueID: issue.ID,
|
IssueID: issue.ID,
|
||||||
|
@ -1252,7 +1253,7 @@ func FetchCodeCommentsByLine(issue *Issue, currentUser *User, treePath string, l
|
||||||
}
|
}
|
||||||
|
|
||||||
// FetchCodeComments will return a 2d-map: ["Path"]["Line"] = Comments at line
|
// FetchCodeComments will return a 2d-map: ["Path"]["Line"] = Comments at line
|
||||||
func FetchCodeComments(issue *Issue, currentUser *User) (CodeComments, error) {
|
func FetchCodeComments(issue *Issue, currentUser *user_model.User) (CodeComments, error) {
|
||||||
return fetchCodeComments(db.GetEngine(db.DefaultContext), issue, currentUser)
|
return fetchCodeComments(db.GetEngine(db.DefaultContext), issue, currentUser)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1277,7 +1278,7 @@ func UpdateCommentsMigrationsByType(tp structs.GitServiceType, originalAuthorID
|
||||||
}
|
}
|
||||||
|
|
||||||
// CreatePushPullComment create push code to pull base comment
|
// CreatePushPullComment create push code to pull base comment
|
||||||
func CreatePushPullComment(pusher *User, pr *PullRequest, oldCommitID, newCommitID string) (comment *Comment, err error) {
|
func CreatePushPullComment(pusher *user_model.User, pr *PullRequest, oldCommitID, newCommitID string) (comment *Comment, err error) {
|
||||||
if pr.HasMerged || oldCommitID == "" || newCommitID == "" {
|
if pr.HasMerged || oldCommitID == "" || newCommitID == "" {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,7 @@ package models
|
||||||
import (
|
import (
|
||||||
"code.gitea.io/gitea/models/db"
|
"code.gitea.io/gitea/models/db"
|
||||||
repo_model "code.gitea.io/gitea/models/repo"
|
repo_model "code.gitea.io/gitea/models/repo"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
)
|
)
|
||||||
|
|
||||||
// CommentList defines a list of comments
|
// CommentList defines a list of comments
|
||||||
|
@ -28,7 +29,7 @@ func (comments CommentList) loadPosters(e db.Engine) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
posterIDs := comments.getPosterIDs()
|
posterIDs := comments.getPosterIDs()
|
||||||
posterMaps := make(map[int64]*User, len(posterIDs))
|
posterMaps := make(map[int64]*user_model.User, len(posterIDs))
|
||||||
left := len(posterIDs)
|
left := len(posterIDs)
|
||||||
for left > 0 {
|
for left > 0 {
|
||||||
limit := defaultMaxInSize
|
limit := defaultMaxInSize
|
||||||
|
@ -51,7 +52,7 @@ func (comments CommentList) loadPosters(e db.Engine) error {
|
||||||
}
|
}
|
||||||
var ok bool
|
var ok bool
|
||||||
if comment.Poster, ok = posterMaps[comment.PosterID]; !ok {
|
if comment.Poster, ok = posterMaps[comment.PosterID]; !ok {
|
||||||
comment.Poster = NewGhostUser()
|
comment.Poster = user_model.NewGhostUser()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
@ -217,7 +218,7 @@ func (comments CommentList) loadAssignees(e db.Engine) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
assigneeIDs := comments.getAssigneeIDs()
|
assigneeIDs := comments.getAssigneeIDs()
|
||||||
assignees := make(map[int64]*User, len(assigneeIDs))
|
assignees := make(map[int64]*user_model.User, len(assigneeIDs))
|
||||||
left := len(assigneeIDs)
|
left := len(assigneeIDs)
|
||||||
for left > 0 {
|
for left > 0 {
|
||||||
limit := defaultMaxInSize
|
limit := defaultMaxInSize
|
||||||
|
@ -226,13 +227,13 @@ func (comments CommentList) loadAssignees(e db.Engine) error {
|
||||||
}
|
}
|
||||||
rows, err := e.
|
rows, err := e.
|
||||||
In("id", assigneeIDs[:limit]).
|
In("id", assigneeIDs[:limit]).
|
||||||
Rows(new(User))
|
Rows(new(user_model.User))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
for rows.Next() {
|
for rows.Next() {
|
||||||
var user User
|
var user user_model.User
|
||||||
err = rows.Scan(&user)
|
err = rows.Scan(&user)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
rows.Close()
|
rows.Close()
|
||||||
|
|
|
@ -9,6 +9,7 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
|
@ -18,7 +19,7 @@ func TestCreateComment(t *testing.T) {
|
||||||
|
|
||||||
issue := unittest.AssertExistsAndLoadBean(t, &Issue{}).(*Issue)
|
issue := unittest.AssertExistsAndLoadBean(t, &Issue{}).(*Issue)
|
||||||
repo := unittest.AssertExistsAndLoadBean(t, &Repository{ID: issue.RepoID}).(*Repository)
|
repo := unittest.AssertExistsAndLoadBean(t, &Repository{ID: issue.RepoID}).(*Repository)
|
||||||
doer := unittest.AssertExistsAndLoadBean(t, &User{ID: repo.OwnerID}).(*User)
|
doer := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}).(*user_model.User)
|
||||||
|
|
||||||
now := time.Now().Unix()
|
now := time.Now().Unix()
|
||||||
comment, err := CreateComment(&CreateCommentOptions{
|
comment, err := CreateComment(&CreateCommentOptions{
|
||||||
|
@ -46,7 +47,7 @@ func TestFetchCodeComments(t *testing.T) {
|
||||||
assert.NoError(t, unittest.PrepareTestDatabase())
|
assert.NoError(t, unittest.PrepareTestDatabase())
|
||||||
|
|
||||||
issue := unittest.AssertExistsAndLoadBean(t, &Issue{ID: 2}).(*Issue)
|
issue := unittest.AssertExistsAndLoadBean(t, &Issue{ID: 2}).(*Issue)
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &User{ID: 1}).(*User)
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 1}).(*user_model.User)
|
||||||
res, err := FetchCodeComments(issue, user)
|
res, err := FetchCodeComments(issue, user)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Contains(t, res, "README.md")
|
assert.Contains(t, res, "README.md")
|
||||||
|
@ -54,7 +55,7 @@ func TestFetchCodeComments(t *testing.T) {
|
||||||
assert.Len(t, res["README.md"][4], 1)
|
assert.Len(t, res["README.md"][4], 1)
|
||||||
assert.Equal(t, int64(4), res["README.md"][4][0].ID)
|
assert.Equal(t, int64(4), res["README.md"][4][0].ID)
|
||||||
|
|
||||||
user2 := unittest.AssertExistsAndLoadBean(t, &User{ID: 2}).(*User)
|
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
res, err = FetchCodeComments(issue, user2)
|
res, err = FetchCodeComments(issue, user2)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Len(t, res, 1)
|
assert.Len(t, res, 1)
|
||||||
|
|
|
@ -7,6 +7,7 @@ package models
|
||||||
import (
|
import (
|
||||||
"code.gitea.io/gitea/models/db"
|
"code.gitea.io/gitea/models/db"
|
||||||
"code.gitea.io/gitea/models/unit"
|
"code.gitea.io/gitea/models/unit"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/log"
|
"code.gitea.io/gitea/modules/log"
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
"code.gitea.io/gitea/modules/timeutil"
|
"code.gitea.io/gitea/modules/timeutil"
|
||||||
|
@ -36,7 +37,7 @@ const (
|
||||||
)
|
)
|
||||||
|
|
||||||
// CreateIssueDependency creates a new dependency for an issue
|
// CreateIssueDependency creates a new dependency for an issue
|
||||||
func CreateIssueDependency(user *User, issue, dep *Issue) error {
|
func CreateIssueDependency(user *user_model.User, issue, dep *Issue) error {
|
||||||
ctx, committer, err := db.TxContext()
|
ctx, committer, err := db.TxContext()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -78,7 +79,7 @@ func CreateIssueDependency(user *User, issue, dep *Issue) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
// RemoveIssueDependency removes a dependency from an issue
|
// RemoveIssueDependency removes a dependency from an issue
|
||||||
func RemoveIssueDependency(user *User, issue, dep *Issue, depType DependencyType) (err error) {
|
func RemoveIssueDependency(user *user_model.User, issue, dep *Issue, depType DependencyType) (err error) {
|
||||||
ctx, committer, err := db.TxContext()
|
ctx, committer, err := db.TxContext()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
|
@ -8,6 +8,7 @@ import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
|
@ -16,7 +17,7 @@ func TestCreateIssueDependency(t *testing.T) {
|
||||||
// Prepare
|
// Prepare
|
||||||
assert.NoError(t, unittest.PrepareTestDatabase())
|
assert.NoError(t, unittest.PrepareTestDatabase())
|
||||||
|
|
||||||
user1, err := GetUserByID(1)
|
user1, err := user_model.GetUserByID(1)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
issue1, err := GetIssueByID(1)
|
issue1, err := GetIssueByID(1)
|
||||||
|
|
|
@ -15,6 +15,7 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"code.gitea.io/gitea/models/db"
|
"code.gitea.io/gitea/models/db"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/timeutil"
|
"code.gitea.io/gitea/modules/timeutil"
|
||||||
|
|
||||||
"xorm.io/builder"
|
"xorm.io/builder"
|
||||||
|
@ -665,7 +666,7 @@ func HasIssueLabel(issueID, labelID int64) bool {
|
||||||
|
|
||||||
// newIssueLabel this function creates a new label it does not check if the label is valid for the issue
|
// newIssueLabel this function creates a new label it does not check if the label is valid for the issue
|
||||||
// YOU MUST CHECK THIS BEFORE THIS FUNCTION
|
// YOU MUST CHECK THIS BEFORE THIS FUNCTION
|
||||||
func newIssueLabel(ctx context.Context, issue *Issue, label *Label, doer *User) (err error) {
|
func newIssueLabel(ctx context.Context, issue *Issue, label *Label, doer *user_model.User) (err error) {
|
||||||
e := db.GetEngine(ctx)
|
e := db.GetEngine(ctx)
|
||||||
if _, err = e.Insert(&IssueLabel{
|
if _, err = e.Insert(&IssueLabel{
|
||||||
IssueID: issue.ID,
|
IssueID: issue.ID,
|
||||||
|
@ -694,7 +695,7 @@ func newIssueLabel(ctx context.Context, issue *Issue, label *Label, doer *User)
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewIssueLabel creates a new issue-label relation.
|
// NewIssueLabel creates a new issue-label relation.
|
||||||
func NewIssueLabel(issue *Issue, label *Label, doer *User) (err error) {
|
func NewIssueLabel(issue *Issue, label *Label, doer *user_model.User) (err error) {
|
||||||
if HasIssueLabel(issue.ID, label.ID) {
|
if HasIssueLabel(issue.ID, label.ID) {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -728,7 +729,7 @@ func NewIssueLabel(issue *Issue, label *Label, doer *User) (err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// newIssueLabels add labels to an issue. It will check if the labels are valid for the issue
|
// newIssueLabels add labels to an issue. It will check if the labels are valid for the issue
|
||||||
func newIssueLabels(ctx context.Context, issue *Issue, labels []*Label, doer *User) (err error) {
|
func newIssueLabels(ctx context.Context, issue *Issue, labels []*Label, doer *user_model.User) (err error) {
|
||||||
e := db.GetEngine(ctx)
|
e := db.GetEngine(ctx)
|
||||||
if err = issue.loadRepo(e); err != nil {
|
if err = issue.loadRepo(e); err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -749,7 +750,7 @@ func newIssueLabels(ctx context.Context, issue *Issue, labels []*Label, doer *Us
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewIssueLabels creates a list of issue-label relations.
|
// NewIssueLabels creates a list of issue-label relations.
|
||||||
func NewIssueLabels(issue *Issue, labels []*Label, doer *User) (err error) {
|
func NewIssueLabels(issue *Issue, labels []*Label, doer *user_model.User) (err error) {
|
||||||
ctx, committer, err := db.TxContext()
|
ctx, committer, err := db.TxContext()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -768,7 +769,7 @@ func NewIssueLabels(issue *Issue, labels []*Label, doer *User) (err error) {
|
||||||
return committer.Commit()
|
return committer.Commit()
|
||||||
}
|
}
|
||||||
|
|
||||||
func deleteIssueLabel(ctx context.Context, issue *Issue, label *Label, doer *User) (err error) {
|
func deleteIssueLabel(ctx context.Context, issue *Issue, label *Label, doer *user_model.User) (err error) {
|
||||||
e := db.GetEngine(ctx)
|
e := db.GetEngine(ctx)
|
||||||
if count, err := e.Delete(&IssueLabel{
|
if count, err := e.Delete(&IssueLabel{
|
||||||
IssueID: issue.ID,
|
IssueID: issue.ID,
|
||||||
|
@ -798,7 +799,7 @@ func deleteIssueLabel(ctx context.Context, issue *Issue, label *Label, doer *Use
|
||||||
}
|
}
|
||||||
|
|
||||||
// DeleteIssueLabel deletes issue-label relation.
|
// DeleteIssueLabel deletes issue-label relation.
|
||||||
func DeleteIssueLabel(issue *Issue, label *Label, doer *User) (err error) {
|
func DeleteIssueLabel(issue *Issue, label *Label, doer *user_model.User) (err error) {
|
||||||
ctx, committer, err := db.TxContext()
|
ctx, committer, err := db.TxContext()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
|
@ -10,6 +10,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models/db"
|
"code.gitea.io/gitea/models/db"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
|
@ -296,7 +297,7 @@ func TestNewIssueLabel(t *testing.T) {
|
||||||
assert.NoError(t, unittest.PrepareTestDatabase())
|
assert.NoError(t, unittest.PrepareTestDatabase())
|
||||||
label := unittest.AssertExistsAndLoadBean(t, &Label{ID: 2}).(*Label)
|
label := unittest.AssertExistsAndLoadBean(t, &Label{ID: 2}).(*Label)
|
||||||
issue := unittest.AssertExistsAndLoadBean(t, &Issue{ID: 1}).(*Issue)
|
issue := unittest.AssertExistsAndLoadBean(t, &Issue{ID: 1}).(*Issue)
|
||||||
doer := unittest.AssertExistsAndLoadBean(t, &User{ID: 2}).(*User)
|
doer := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
|
|
||||||
// add new IssueLabel
|
// add new IssueLabel
|
||||||
prevNumIssues := label.NumIssues
|
prevNumIssues := label.NumIssues
|
||||||
|
@ -322,7 +323,7 @@ func TestNewIssueLabels(t *testing.T) {
|
||||||
label1 := unittest.AssertExistsAndLoadBean(t, &Label{ID: 1}).(*Label)
|
label1 := unittest.AssertExistsAndLoadBean(t, &Label{ID: 1}).(*Label)
|
||||||
label2 := unittest.AssertExistsAndLoadBean(t, &Label{ID: 2}).(*Label)
|
label2 := unittest.AssertExistsAndLoadBean(t, &Label{ID: 2}).(*Label)
|
||||||
issue := unittest.AssertExistsAndLoadBean(t, &Issue{ID: 5}).(*Issue)
|
issue := unittest.AssertExistsAndLoadBean(t, &Issue{ID: 5}).(*Issue)
|
||||||
doer := unittest.AssertExistsAndLoadBean(t, &User{ID: 2}).(*User)
|
doer := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
|
||||||
|
|
||||||
assert.NoError(t, NewIssueLabels(issue, []*Label{label1, label2}, doer))
|
assert.NoError(t, NewIssueLabels(issue, []*Label{label1, label2}, doer))
|
||||||
unittest.AssertExistsAndLoadBean(t, &IssueLabel{IssueID: issue.ID, LabelID: label1.ID})
|
unittest.AssertExistsAndLoadBean(t, &IssueLabel{IssueID: issue.ID, LabelID: label1.ID})
|
||||||
|
@ -352,7 +353,7 @@ func TestDeleteIssueLabel(t *testing.T) {
|
||||||
testSuccess := func(labelID, issueID, doerID int64) {
|
testSuccess := func(labelID, issueID, doerID int64) {
|
||||||
label := unittest.AssertExistsAndLoadBean(t, &Label{ID: labelID}).(*Label)
|
label := unittest.AssertExistsAndLoadBean(t, &Label{ID: labelID}).(*Label)
|
||||||
issue := unittest.AssertExistsAndLoadBean(t, &Issue{ID: issueID}).(*Issue)
|
issue := unittest.AssertExistsAndLoadBean(t, &Issue{ID: issueID}).(*Issue)
|
||||||
doer := unittest.AssertExistsAndLoadBean(t, &User{ID: doerID}).(*User)
|
doer := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: doerID}).(*user_model.User)
|
||||||
|
|
||||||
expectedNumIssues := label.NumIssues
|
expectedNumIssues := label.NumIssues
|
||||||
expectedNumClosedIssues := label.NumClosedIssues
|
expectedNumClosedIssues := label.NumClosedIssues
|
||||||
|
|
|
@ -9,6 +9,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models/db"
|
"code.gitea.io/gitea/models/db"
|
||||||
repo_model "code.gitea.io/gitea/models/repo"
|
repo_model "code.gitea.io/gitea/models/repo"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
|
|
||||||
"xorm.io/builder"
|
"xorm.io/builder"
|
||||||
)
|
)
|
||||||
|
@ -84,7 +85,7 @@ func (issues IssueList) loadPosters(e db.Engine) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
posterIDs := issues.getPosterIDs()
|
posterIDs := issues.getPosterIDs()
|
||||||
posterMaps := make(map[int64]*User, len(posterIDs))
|
posterMaps := make(map[int64]*user_model.User, len(posterIDs))
|
||||||
left := len(posterIDs)
|
left := len(posterIDs)
|
||||||
for left > 0 {
|
for left > 0 {
|
||||||
limit := defaultMaxInSize
|
limit := defaultMaxInSize
|
||||||
|
@ -107,7 +108,7 @@ func (issues IssueList) loadPosters(e db.Engine) error {
|
||||||
}
|
}
|
||||||
var ok bool
|
var ok bool
|
||||||
if issue.Poster, ok = posterMaps[issue.PosterID]; !ok {
|
if issue.Poster, ok = posterMaps[issue.PosterID]; !ok {
|
||||||
issue.Poster = NewGhostUser()
|
issue.Poster = user_model.NewGhostUser()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
@ -219,11 +220,11 @@ func (issues IssueList) loadAssignees(e db.Engine) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
type AssigneeIssue struct {
|
type AssigneeIssue struct {
|
||||||
IssueAssignee *IssueAssignees `xorm:"extends"`
|
IssueAssignee *IssueAssignees `xorm:"extends"`
|
||||||
Assignee *User `xorm:"extends"`
|
Assignee *user_model.User `xorm:"extends"`
|
||||||
}
|
}
|
||||||
|
|
||||||
assignees := make(map[int64][]*User, len(issues))
|
assignees := make(map[int64][]*user_model.User, len(issues))
|
||||||
issueIDs := issues.getIssueIDs()
|
issueIDs := issues.getIssueIDs()
|
||||||
left := len(issueIDs)
|
left := len(issueIDs)
|
||||||
for left > 0 {
|
for left > 0 {
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue