mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-26 12:27:06 +00:00 
			
		
		
		
	WIP: create PR - choose branch
This commit is contained in:
		
							
								
								
									
										103
									
								
								models/repo.go
									
									
									
									
									
								
							
							
						
						
									
										103
									
								
								models/repo.go
									
									
									
									
									
								
							@@ -129,8 +129,8 @@ func NewRepoContext() {
 | 
			
		||||
 | 
			
		||||
// Repository represents a git repository.
 | 
			
		||||
type Repository struct {
 | 
			
		||||
	Id            int64
 | 
			
		||||
	OwnerId       int64  `xorm:"UNIQUE(s)"`
 | 
			
		||||
	ID            int64  `xorm:"pk autoincr"`
 | 
			
		||||
	OwnerID       int64  `xorm:"UNIQUE(s)"`
 | 
			
		||||
	Owner         *User  `xorm:"-"`
 | 
			
		||||
	LowerName     string `xorm:"UNIQUE(s) INDEX NOT NULL"`
 | 
			
		||||
	Name          string `xorm:"INDEX NOT NULL"`
 | 
			
		||||
@@ -159,8 +159,8 @@ type Repository struct {
 | 
			
		||||
	*Mirror  `xorm:"-"`
 | 
			
		||||
 | 
			
		||||
	IsFork   bool `xorm:"NOT NULL DEFAULT false"`
 | 
			
		||||
	ForkId   int64
 | 
			
		||||
	ForkRepo *Repository `xorm:"-"`
 | 
			
		||||
	ForkID   int64
 | 
			
		||||
	BaseRepo *Repository `xorm:"-"`
 | 
			
		||||
 | 
			
		||||
	Created time.Time `xorm:"CREATED"`
 | 
			
		||||
	Updated time.Time `xorm:"UPDATED"`
 | 
			
		||||
@@ -168,7 +168,7 @@ type Repository struct {
 | 
			
		||||
 | 
			
		||||
func (repo *Repository) getOwner(e Engine) (err error) {
 | 
			
		||||
	if repo.Owner == nil {
 | 
			
		||||
		repo.Owner, err = getUserById(e, repo.OwnerId)
 | 
			
		||||
		repo.Owner, err = getUserByID(e, repo.OwnerID)
 | 
			
		||||
	}
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
@@ -178,16 +178,16 @@ func (repo *Repository) GetOwner() (err error) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (repo *Repository) GetMirror() (err error) {
 | 
			
		||||
	repo.Mirror, err = GetMirror(repo.Id)
 | 
			
		||||
	repo.Mirror, err = GetMirror(repo.ID)
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (repo *Repository) GetForkRepo() (err error) {
 | 
			
		||||
func (repo *Repository) GetBaseRepo() (err error) {
 | 
			
		||||
	if !repo.IsFork {
 | 
			
		||||
		return nil
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	repo.ForkRepo, err = GetRepositoryById(repo.ForkId)
 | 
			
		||||
	repo.BaseRepo, err = GetRepositoryByID(repo.ForkID)
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -211,7 +211,7 @@ func (repo *Repository) HasAccess(u *User) bool {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (repo *Repository) IsOwnedBy(u *User) bool {
 | 
			
		||||
	return repo.OwnerId == u.Id
 | 
			
		||||
	return repo.OwnerID == u.Id
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// DescriptionHtml does special handles to description and return HTML string.
 | 
			
		||||
@@ -224,7 +224,7 @@ func (repo *Repository) DescriptionHtml() template.HTML {
 | 
			
		||||
 | 
			
		||||
func isRepositoryExist(e Engine, u *User, repoName string) (bool, error) {
 | 
			
		||||
	has, err := e.Get(&Repository{
 | 
			
		||||
		OwnerId:   u.Id,
 | 
			
		||||
		OwnerID:   u.Id,
 | 
			
		||||
		LowerName: strings.ToLower(repoName),
 | 
			
		||||
	})
 | 
			
		||||
	return has && com.IsDir(RepoPath(u.Name, repoName)), err
 | 
			
		||||
@@ -287,8 +287,8 @@ func IsUsableName(name string) error {
 | 
			
		||||
 | 
			
		||||
// Mirror represents a mirror information of repository.
 | 
			
		||||
type Mirror struct {
 | 
			
		||||
	Id         int64
 | 
			
		||||
	RepoId     int64
 | 
			
		||||
	ID         int64 `xorm:"pk autoincr"`
 | 
			
		||||
	RepoID     int64
 | 
			
		||||
	RepoName   string    // <user name>/<repo name>
 | 
			
		||||
	Interval   int       // Hour.
 | 
			
		||||
	Updated    time.Time `xorm:"UPDATED"`
 | 
			
		||||
@@ -296,7 +296,7 @@ type Mirror struct {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func getMirror(e Engine, repoId int64) (*Mirror, error) {
 | 
			
		||||
	m := &Mirror{RepoId: repoId}
 | 
			
		||||
	m := &Mirror{RepoID: repoId}
 | 
			
		||||
	has, err := e.Get(m)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
@@ -312,7 +312,7 @@ func GetMirror(repoId int64) (*Mirror, error) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func updateMirror(e Engine, m *Mirror) error {
 | 
			
		||||
	_, err := e.Id(m.Id).Update(m)
 | 
			
		||||
	_, err := e.Id(m.ID).Update(m)
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -330,7 +330,7 @@ func MirrorRepository(repoId int64, userName, repoName, repoPath, url string) er
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if _, err = x.InsertOne(&Mirror{
 | 
			
		||||
		RepoId:     repoId,
 | 
			
		||||
		RepoID:     repoId,
 | 
			
		||||
		RepoName:   strings.ToLower(userName + "/" + repoName),
 | 
			
		||||
		Interval:   24,
 | 
			
		||||
		NextUpdate: time.Now().Add(24 * time.Hour),
 | 
			
		||||
@@ -365,7 +365,7 @@ func MigrateRepository(u *User, name, desc string, private, mirror bool, url str
 | 
			
		||||
 | 
			
		||||
	repo.IsBare = false
 | 
			
		||||
	if mirror {
 | 
			
		||||
		if err = MirrorRepository(repo.Id, u.Name, repo.Name, repoPath, url); err != nil {
 | 
			
		||||
		if err = MirrorRepository(repo.ID, u.Name, repo.Name, repoPath, url); err != nil {
 | 
			
		||||
			return repo, err
 | 
			
		||||
		}
 | 
			
		||||
		repo.IsMirror = true
 | 
			
		||||
@@ -517,7 +517,7 @@ func initRepository(e Engine, repoPath string, u *User, repo *Repository, initRe
 | 
			
		||||
	if len(fileName) == 0 {
 | 
			
		||||
		// Re-fetch the repository from database before updating it (else it would
 | 
			
		||||
		// override changes that were done earlier with sql)
 | 
			
		||||
		if repo, err = getRepositoryById(e, repo.Id); err != nil {
 | 
			
		||||
		if repo, err = getRepositoryByID(e, repo.ID); err != nil {
 | 
			
		||||
			return err
 | 
			
		||||
		}
 | 
			
		||||
		repo.IsBare = true
 | 
			
		||||
@@ -562,7 +562,7 @@ func createRepository(e *xorm.Session, u *User, repo *Repository) (err error) {
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if err = watchRepo(e, u.Id, repo.Id, true); err != nil {
 | 
			
		||||
	if err = watchRepo(e, u.Id, repo.ID, true); err != nil {
 | 
			
		||||
		return fmt.Errorf("watchRepo: %v", err)
 | 
			
		||||
	} else if err = newRepoAction(e, u, repo); err != nil {
 | 
			
		||||
		return fmt.Errorf("newRepoAction: %v", err)
 | 
			
		||||
@@ -574,7 +574,7 @@ func createRepository(e *xorm.Session, u *User, repo *Repository) (err error) {
 | 
			
		||||
// CreateRepository creates a repository for given user or organization.
 | 
			
		||||
func CreateRepository(u *User, name, desc, lang, license string, isPrivate, isMirror, initReadme bool) (_ *Repository, err error) {
 | 
			
		||||
	repo := &Repository{
 | 
			
		||||
		OwnerId:     u.Id,
 | 
			
		||||
		OwnerID:     u.Id,
 | 
			
		||||
		Owner:       u,
 | 
			
		||||
		Name:        name,
 | 
			
		||||
		LowerName:   strings.ToLower(name),
 | 
			
		||||
@@ -630,12 +630,12 @@ func GetRepositoriesWithUsers(num, offset int) ([]*Repository, error) {
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	for _, repo := range repos {
 | 
			
		||||
		repo.Owner = &User{Id: repo.OwnerId}
 | 
			
		||||
		repo.Owner = &User{Id: repo.OwnerID}
 | 
			
		||||
		has, err := x.Get(repo.Owner)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return nil, err
 | 
			
		||||
		} else if !has {
 | 
			
		||||
			return nil, ErrUserNotExist{repo.OwnerId, ""}
 | 
			
		||||
			return nil, ErrUserNotExist{repo.OwnerID, ""}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@@ -672,11 +672,11 @@ func TransferOwnership(u *User, newOwnerName string, repo *Repository) error {
 | 
			
		||||
 | 
			
		||||
	// Note: we have to set value here to make sure recalculate accesses is based on
 | 
			
		||||
	//	new owner.
 | 
			
		||||
	repo.OwnerId = newOwner.Id
 | 
			
		||||
	repo.OwnerID = newOwner.Id
 | 
			
		||||
	repo.Owner = newOwner
 | 
			
		||||
 | 
			
		||||
	// Update repository.
 | 
			
		||||
	if _, err := sess.Id(repo.Id).Update(repo); err != nil {
 | 
			
		||||
	if _, err := sess.Id(repo.ID).Update(repo); err != nil {
 | 
			
		||||
		return fmt.Errorf("update owner: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@@ -687,7 +687,7 @@ func TransferOwnership(u *User, newOwnerName string, repo *Repository) error {
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Dummy object.
 | 
			
		||||
	collaboration := &Collaboration{RepoID: repo.Id}
 | 
			
		||||
	collaboration := &Collaboration{RepoID: repo.ID}
 | 
			
		||||
	for _, c := range collaborators {
 | 
			
		||||
		collaboration.UserID = c.Id
 | 
			
		||||
		if c.Id == newOwner.Id || newOwner.IsOrgMember(c.Id) {
 | 
			
		||||
@@ -703,7 +703,7 @@ func TransferOwnership(u *User, newOwnerName string, repo *Repository) error {
 | 
			
		||||
			return fmt.Errorf("getTeams: %v", err)
 | 
			
		||||
		}
 | 
			
		||||
		for _, t := range owner.Teams {
 | 
			
		||||
			if !t.hasRepository(sess, repo.Id) {
 | 
			
		||||
			if !t.hasRepository(sess, repo.ID) {
 | 
			
		||||
				continue
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
@@ -713,7 +713,7 @@ func TransferOwnership(u *User, newOwnerName string, repo *Repository) error {
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if err = owner.removeOrgRepo(sess, repo.Id); err != nil {
 | 
			
		||||
		if err = owner.removeOrgRepo(sess, repo.ID); err != nil {
 | 
			
		||||
			return fmt.Errorf("removeOrgRepo: %v", err)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
@@ -739,7 +739,7 @@ func TransferOwnership(u *User, newOwnerName string, repo *Repository) error {
 | 
			
		||||
		return fmt.Errorf("decrease old owner repository count: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if err = watchRepo(sess, newOwner.Id, repo.Id, true); err != nil {
 | 
			
		||||
	if err = watchRepo(sess, newOwner.Id, repo.ID, true); err != nil {
 | 
			
		||||
		return fmt.Errorf("watchRepo: %v", err)
 | 
			
		||||
	} else if err = transferRepoAction(sess, u, owner, newOwner, repo); err != nil {
 | 
			
		||||
		return fmt.Errorf("transferRepoAction: %v", err)
 | 
			
		||||
@@ -747,7 +747,7 @@ func TransferOwnership(u *User, newOwnerName string, repo *Repository) error {
 | 
			
		||||
 | 
			
		||||
	// Update mirror information.
 | 
			
		||||
	if repo.IsMirror {
 | 
			
		||||
		mirror, err := getMirror(sess, repo.Id)
 | 
			
		||||
		mirror, err := getMirror(sess, repo.ID)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return fmt.Errorf("getMirror: %v", err)
 | 
			
		||||
		}
 | 
			
		||||
@@ -794,7 +794,7 @@ func updateRepository(e Engine, repo *Repository, visibilityChanged bool) (err e
 | 
			
		||||
		repo.Website = repo.Website[:255]
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if _, err = e.Id(repo.Id).AllCols().Update(repo); err != nil {
 | 
			
		||||
	if _, err = e.Id(repo.ID).AllCols().Update(repo); err != nil {
 | 
			
		||||
		return fmt.Errorf("update: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@@ -831,7 +831,7 @@ func UpdateRepository(repo *Repository, visibilityChanged bool) (err error) {
 | 
			
		||||
 | 
			
		||||
// DeleteRepository deletes a repository for a user or organization.
 | 
			
		||||
func DeleteRepository(uid, repoID int64, userName string) error {
 | 
			
		||||
	repo := &Repository{Id: repoID, OwnerId: uid}
 | 
			
		||||
	repo := &Repository{ID: repoID, OwnerID: uid}
 | 
			
		||||
	has, err := x.Get(repo)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
@@ -840,7 +840,7 @@ func DeleteRepository(uid, repoID int64, userName string) error {
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// In case is a organization.
 | 
			
		||||
	org, err := GetUserById(uid)
 | 
			
		||||
	org, err := GetUserByID(uid)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
@@ -866,15 +866,15 @@ func DeleteRepository(uid, repoID int64, userName string) error {
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if _, err = sess.Delete(&Repository{Id: repoID}); err != nil {
 | 
			
		||||
	if _, err = sess.Delete(&Repository{ID: repoID}); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	} else if _, err = sess.Delete(&Access{RepoID: repo.Id}); err != nil {
 | 
			
		||||
	} else if _, err = sess.Delete(&Access{RepoID: repo.ID}); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	} else if _, err = sess.Delete(&Action{RepoID: repo.Id}); err != nil {
 | 
			
		||||
	} else if _, err = sess.Delete(&Action{RepoID: repo.ID}); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	} else if _, err = sess.Delete(&Watch{RepoID: repoID}); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	} else if _, err = sess.Delete(&Mirror{RepoId: repoID}); err != nil {
 | 
			
		||||
	} else if _, err = sess.Delete(&Mirror{RepoID: repoID}); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	} else if _, err = sess.Delete(&IssueUser{RepoId: repoID}); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
@@ -902,7 +902,7 @@ func DeleteRepository(uid, repoID int64, userName string) error {
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if repo.IsFork {
 | 
			
		||||
		if _, err = sess.Exec("UPDATE `repository` SET num_forks=num_forks-1 WHERE id=?", repo.ForkId); err != nil {
 | 
			
		||||
		if _, err = sess.Exec("UPDATE `repository` SET num_forks=num_forks-1 WHERE id=?", repo.ForkID); err != nil {
 | 
			
		||||
			return err
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
@@ -946,7 +946,7 @@ func GetRepositoryByRef(ref string) (*Repository, error) {
 | 
			
		||||
// GetRepositoryByName returns the repository by given name under user if exists.
 | 
			
		||||
func GetRepositoryByName(uid int64, repoName string) (*Repository, error) {
 | 
			
		||||
	repo := &Repository{
 | 
			
		||||
		OwnerId:   uid,
 | 
			
		||||
		OwnerID:   uid,
 | 
			
		||||
		LowerName: strings.ToLower(repoName),
 | 
			
		||||
	}
 | 
			
		||||
	has, err := x.Get(repo)
 | 
			
		||||
@@ -958,7 +958,7 @@ func GetRepositoryByName(uid int64, repoName string) (*Repository, error) {
 | 
			
		||||
	return repo, err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func getRepositoryById(e Engine, id int64) (*Repository, error) {
 | 
			
		||||
func getRepositoryByID(e Engine, id int64) (*Repository, error) {
 | 
			
		||||
	repo := new(Repository)
 | 
			
		||||
	has, err := e.Id(id).Get(repo)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
@@ -969,9 +969,9 @@ func getRepositoryById(e Engine, id int64) (*Repository, error) {
 | 
			
		||||
	return repo, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetRepositoryById returns the repository by given id if exists.
 | 
			
		||||
func GetRepositoryById(id int64) (*Repository, error) {
 | 
			
		||||
	return getRepositoryById(x, id)
 | 
			
		||||
// GetRepositoryByID returns the repository by given id if exists.
 | 
			
		||||
func GetRepositoryByID(id int64) (*Repository, error) {
 | 
			
		||||
	return getRepositoryByID(x, id)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetRepositories returns a list of repositories of given user.
 | 
			
		||||
@@ -982,8 +982,7 @@ func GetRepositories(uid int64, private bool) ([]*Repository, error) {
 | 
			
		||||
		sess.Where("is_private=?", false)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err := sess.Find(&repos, &Repository{OwnerId: uid})
 | 
			
		||||
	return repos, err
 | 
			
		||||
	return repos, sess.Find(&repos, &Repository{OwnerID: uid})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetRecentUpdatedRepositories returns the list of repositories that are recently updated.
 | 
			
		||||
@@ -993,8 +992,8 @@ func GetRecentUpdatedRepositories(num int) (repos []*Repository, err error) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetRepositoryCount returns the total number of repositories of user.
 | 
			
		||||
func GetRepositoryCount(user *User) (int64, error) {
 | 
			
		||||
	return x.Count(&Repository{OwnerId: user.Id})
 | 
			
		||||
func GetRepositoryCount(u *User) (int64, error) {
 | 
			
		||||
	return x.Count(&Repository{OwnerID: u.Id})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type SearchOption struct {
 | 
			
		||||
@@ -1199,7 +1198,7 @@ type Collaboration struct {
 | 
			
		||||
// Add collaborator and accompanying access
 | 
			
		||||
func (repo *Repository) AddCollaborator(u *User) error {
 | 
			
		||||
	collaboration := &Collaboration{
 | 
			
		||||
		RepoID: repo.Id,
 | 
			
		||||
		RepoID: repo.ID,
 | 
			
		||||
		UserID: u.Id,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@@ -1238,13 +1237,13 @@ func (repo *Repository) AddCollaborator(u *User) error {
 | 
			
		||||
 | 
			
		||||
func (repo *Repository) getCollaborators(e Engine) ([]*User, error) {
 | 
			
		||||
	collaborations := make([]*Collaboration, 0)
 | 
			
		||||
	if err := e.Find(&collaborations, &Collaboration{RepoID: repo.Id}); err != nil {
 | 
			
		||||
	if err := e.Find(&collaborations, &Collaboration{RepoID: repo.ID}); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	users := make([]*User, len(collaborations))
 | 
			
		||||
	for i, c := range collaborations {
 | 
			
		||||
		user, err := getUserById(e, c.UserID)
 | 
			
		||||
		user, err := getUserByID(e, c.UserID)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return nil, err
 | 
			
		||||
		}
 | 
			
		||||
@@ -1261,7 +1260,7 @@ func (repo *Repository) GetCollaborators() ([]*User, error) {
 | 
			
		||||
// Delete collaborator and accompanying access
 | 
			
		||||
func (repo *Repository) DeleteCollaborator(u *User) (err error) {
 | 
			
		||||
	collaboration := &Collaboration{
 | 
			
		||||
		RepoID: repo.Id,
 | 
			
		||||
		RepoID: repo.ID,
 | 
			
		||||
		UserID: u.Id,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@@ -1430,14 +1429,14 @@ func HasForkedRepo(ownerID, repoID int64) (*Repository, bool) {
 | 
			
		||||
 | 
			
		||||
func ForkRepository(u *User, oldRepo *Repository, name, desc string) (_ *Repository, err error) {
 | 
			
		||||
	repo := &Repository{
 | 
			
		||||
		OwnerId:     u.Id,
 | 
			
		||||
		OwnerID:     u.Id,
 | 
			
		||||
		Owner:       u,
 | 
			
		||||
		Name:        name,
 | 
			
		||||
		LowerName:   strings.ToLower(name),
 | 
			
		||||
		Description: desc,
 | 
			
		||||
		IsPrivate:   oldRepo.IsPrivate,
 | 
			
		||||
		IsFork:      true,
 | 
			
		||||
		ForkId:      oldRepo.Id,
 | 
			
		||||
		ForkID:      oldRepo.ID,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	sess := x.NewSession()
 | 
			
		||||
@@ -1450,7 +1449,7 @@ func ForkRepository(u *User, oldRepo *Repository, name, desc string) (_ *Reposit
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if _, err = sess.Exec("UPDATE `repository` SET num_forks=num_forks+1 WHERE id=?", oldRepo.Id); err != nil {
 | 
			
		||||
	if _, err = sess.Exec("UPDATE `repository` SET num_forks=num_forks+1 WHERE id=?", oldRepo.ID); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user