@@ -219,13 +219,12 @@ type Repository struct {
219
219
NumClosedProjects int `xorm:"NOT NULL DEFAULT 0"`
220
220
NumOpenProjects int `xorm:"-"`
221
221
222
- IsPrivate bool `xorm:"INDEX"`
223
- IsEmpty bool `xorm:"INDEX"`
224
- IsArchived bool `xorm:"INDEX"`
225
- IsMirror bool `xorm:"INDEX"`
226
- * Mirror `xorm:"-"`
227
- PushMirrors []* PushMirror `xorm:"-"`
228
- Status RepositoryStatus `xorm:"NOT NULL DEFAULT 0"`
222
+ IsPrivate bool `xorm:"INDEX"`
223
+ IsEmpty bool `xorm:"INDEX"`
224
+ IsArchived bool `xorm:"INDEX"`
225
+ IsMirror bool `xorm:"INDEX"`
226
+ * Mirror `xorm:"-"`
227
+ Status RepositoryStatus `xorm:"NOT NULL DEFAULT 0"`
229
228
230
229
RenderingMetas map [string ]string `xorm:"-"`
231
230
DocumentRenderingMetas map [string ]string `xorm:"-"`
@@ -237,7 +236,6 @@ type Repository struct {
237
236
BaseRepo * Repository `xorm:"-"`
238
237
IsTemplate bool `xorm:"INDEX NOT NULL DEFAULT false"`
239
238
TemplateID int64 `xorm:"INDEX"`
240
- TemplateRepo * Repository `xorm:"-"`
241
239
Size int64 `xorm:"NOT NULL DEFAULT 0"`
242
240
CodeIndexerStatus * RepoIndexerStatus `xorm:"-"`
243
241
StatsIndexerStatus * RepoIndexerStatus `xorm:"-"`
@@ -363,11 +361,11 @@ func (repo *Repository) getUnits(e db.Engine) (err error) {
363
361
}
364
362
365
363
// CheckUnitUser check whether user could visit the unit of this repository
366
- func (repo * Repository ) CheckUnitUser ( user * user_model.User , unitType unit.Type ) bool {
367
- return repo . checkUnitUser (db .GetEngine (db .DefaultContext ), user , unitType )
364
+ func CheckUnitUser (repo * Repository , user * user_model.User , unitType unit.Type ) bool {
365
+ return checkUnitUser (db .GetEngine (db .DefaultContext ), repo , user , unitType )
368
366
}
369
367
370
- func ( repo * Repository ) checkUnitUser (e db.Engine , user * user_model.User , unitType unit.Type ) bool {
368
+ func checkUnitUser (e db.Engine , repo * Repository , user * user_model.User , unitType unit.Type ) bool {
371
369
if user .IsAdmin {
372
370
return true
373
371
}
@@ -643,18 +641,6 @@ func GetReviewerTeams(repo *Repository) ([]*Team, error) {
643
641
return teams , err
644
642
}
645
643
646
- // GetMirror sets the repository mirror, returns an error upon failure
647
- func (repo * Repository ) GetMirror () (err error ) {
648
- repo .Mirror , err = GetMirrorByRepoID (repo .ID )
649
- return err
650
- }
651
-
652
- // LoadPushMirrors populates the repository push mirrors.
653
- func (repo * Repository ) LoadPushMirrors () (err error ) {
654
- repo .PushMirrors , err = GetPushMirrorsByRepoID (repo .ID )
655
- return err
656
- }
657
-
658
644
// GetBaseRepo populates repo.BaseRepo for a fork repository and
659
645
// returns an error on failure (NOTE: no error is returned for
660
646
// non-fork repositories, and BaseRepo will be left untouched)
@@ -679,17 +665,16 @@ func (repo *Repository) IsGenerated() bool {
679
665
// GetTemplateRepo populates repo.TemplateRepo for a generated repository and
680
666
// returns an error on failure (NOTE: no error is returned for
681
667
// non-generated repositories, and TemplateRepo will be left untouched)
682
- func (repo * Repository ) GetTemplateRepo () ( err error ) {
683
- return repo . getTemplateRepo (db .GetEngine (db .DefaultContext ))
668
+ func GetTemplateRepo (repo * Repository ) ( * Repository , error ) {
669
+ return getTemplateRepo (db .GetEngine (db .DefaultContext ), repo )
684
670
}
685
671
686
- func ( repo * Repository ) getTemplateRepo (e db.Engine ) (err error ) {
672
+ func getTemplateRepo (e db.Engine , repo * Repository ) (* Repository , error ) {
687
673
if ! repo .IsGenerated () {
688
- return nil
674
+ return nil , nil
689
675
}
690
676
691
- repo .TemplateRepo , err = getRepositoryByID (e , repo .TemplateID )
692
- return err
677
+ return getRepositoryByID (e , repo .TemplateID )
693
678
}
694
679
695
680
// RepoPath returns the repository path
@@ -718,7 +703,7 @@ func (repo *Repository) ComposeCompareURL(oldCommitID, newCommitID string) strin
718
703
}
719
704
720
705
// UpdateDefaultBranch updates the default branch
721
- func (repo * Repository ) UpdateDefaultBranch ( ) error {
706
+ func UpdateDefaultBranch (repo * Repository ) error {
722
707
_ , err := db .GetEngine (db .DefaultContext ).ID (repo .ID ).Cols ("default_branch" ).Update (repo )
723
708
return err
724
709
}
@@ -728,6 +713,11 @@ func (repo *Repository) IsOwnedBy(userID int64) bool {
728
713
return repo .OwnerID == userID
729
714
}
730
715
716
+ // CanCreateBranch returns true if repository meets the requirements for creating new branches.
717
+ func (repo * Repository ) CanCreateBranch () bool {
718
+ return ! repo .IsMirror
719
+ }
720
+
731
721
func updateRepoSize (e db.Engine , repo * Repository ) error {
732
722
size , err := util .GetDirectorySize (repo .RepoPath ())
733
723
if err != nil {
@@ -770,7 +760,7 @@ func CanUserForkRepo(user *user_model.User, repo *Repository) (bool, error) {
770
760
}
771
761
772
762
// CanUserDelete returns true if user could delete the repository
773
- func (repo * Repository ) CanUserDelete ( user * user_model.User ) (bool , error ) {
763
+ func CanUserDelete (repo * Repository , user * user_model.User ) (bool , error ) {
774
764
if user .IsAdmin || user .ID == repo .OwnerID {
775
765
return true , nil
776
766
}
@@ -868,9 +858,9 @@ func (repo *Repository) DescriptionHTML() template.HTML {
868
858
return template .HTML (markup .Sanitize (string (desc )))
869
859
}
870
860
871
- // ReadBy sets repo to be visited by given user.
872
- func ( repo * Repository ) ReadBy ( userID int64 ) error {
873
- return setRepoNotificationStatusReadIfUnread (db .GetEngine (db .DefaultContext ), userID , repo . ID )
861
+ // SetRepoReadBy sets repo to be visited by given user.
862
+ func SetRepoReadBy ( repoID , userID int64 ) error {
863
+ return setRepoNotificationStatusReadIfUnread (db .GetEngine (db .DefaultContext ), userID , repoID )
874
864
}
875
865
876
866
func isRepositoryExist (e db.Engine , u * user_model.User , repoName string ) (bool , error ) {
@@ -1131,10 +1121,10 @@ func CreateRepository(ctx context.Context, doer, u *user_model.User, repo *Repos
1131
1121
return fmt .Errorf ("isUserRepoAdmin: %v" , err )
1132
1122
} else if ! isAdmin {
1133
1123
// Make creator repo admin if it wan't assigned automatically
1134
- if err = repo . addCollaborator (db .GetEngine (ctx ), doer ); err != nil {
1124
+ if err = addCollaborator (db .GetEngine (ctx ), repo , doer ); err != nil {
1135
1125
return fmt .Errorf ("AddCollaborator: %v" , err )
1136
1126
}
1137
- if err = repo . changeCollaborationAccessMode (db .GetEngine (ctx ), doer .ID , perm .AccessModeAdmin ); err != nil {
1127
+ if err = changeCollaborationAccessMode (db .GetEngine (ctx ), repo , doer .ID , perm .AccessModeAdmin ); err != nil {
1138
1128
return fmt .Errorf ("ChangeCollaborationAccessMode: %v" , err )
1139
1129
}
1140
1130
}
@@ -1157,7 +1147,7 @@ func CreateRepository(ctx context.Context, doer, u *user_model.User, repo *Repos
1157
1147
}
1158
1148
1159
1149
// CheckDaemonExportOK creates/removes git-daemon-export-ok for git-daemon...
1160
- func ( repo * Repository ) CheckDaemonExportOK (ctx context.Context ) error {
1150
+ func CheckDaemonExportOK (ctx context.Context , repo * Repository ) error {
1161
1151
e := db .GetEngine (ctx )
1162
1152
if err := repo .getOwner (e ); err != nil {
1163
1153
return err
@@ -1337,7 +1327,7 @@ func updateRepository(e db.Engine, repo *Repository, visibilityChanged bool) (er
1337
1327
}
1338
1328
1339
1329
// Create/Remove git-daemon-export-ok for git-daemon...
1340
- if err := repo . CheckDaemonExportOK (db .WithEngine (db .DefaultContext , e )); err != nil {
1330
+ if err := CheckDaemonExportOK (db .WithEngine (db .DefaultContext , e ), repo ); err != nil {
1341
1331
return err
1342
1332
}
1343
1333
@@ -1972,7 +1962,7 @@ func CheckRepoStats(ctx context.Context) error {
1972
1962
}
1973
1963
1974
1964
// SetArchiveRepoState sets if a repo is archived
1975
- func (repo * Repository ) SetArchiveRepoState ( isArchived bool ) (err error ) {
1965
+ func SetArchiveRepoState (repo * Repository , isArchived bool ) (err error ) {
1976
1966
repo .IsArchived = isArchived
1977
1967
_ , err = db .GetEngine (db .DefaultContext ).Where ("id = ?" , repo .ID ).Cols ("is_archived" ).NoAutoTime ().Update (repo )
1978
1968
return
0 commit comments