@@ -835,8 +835,8 @@ func wikiRemoteURL(remote string) string {
835
835
}
836
836
837
837
// MigrateRepository migrates a existing repository from other project hosting.
838
- func MigrateRepository (u * User , opts MigrateRepoOptions ) (* Repository , error ) {
839
- repo , err := CreateRepository (u , CreateRepoOptions {
838
+ func MigrateRepository (doer , u * User , opts MigrateRepoOptions ) (* Repository , error ) {
839
+ repo , err := CreateRepository (doer , u , CreateRepoOptions {
840
840
Name : opts .Name ,
841
841
Description : opts .Description ,
842
842
IsPrivate : opts .IsPrivate ,
@@ -1202,7 +1202,7 @@ func IsUsableRepoName(name string) error {
1202
1202
return isUsableName (reservedRepoNames , reservedRepoPatterns , name )
1203
1203
}
1204
1204
1205
- func createRepository (e * xorm.Session , u * User , repo * Repository ) (err error ) {
1205
+ func createRepository (e * xorm.Session , doer , u * User , repo * Repository ) (err error ) {
1206
1206
if err = IsUsableRepoName (repo .Name ); err != nil {
1207
1207
return err
1208
1208
}
@@ -1249,7 +1249,15 @@ func createRepository(e *xorm.Session, u *User, repo *Repository) (err error) {
1249
1249
return fmt .Errorf ("getOwnerTeam: %v" , err )
1250
1250
} else if err = t .addRepository (e , repo ); err != nil {
1251
1251
return fmt .Errorf ("addRepository: %v" , err )
1252
+ } else if err = prepareWebhooks (e , repo , HookEventRepository , & api.RepositoryPayload {
1253
+ Action : api .HookRepoCreated ,
1254
+ Repository : repo .APIFormat (AccessModeOwner ),
1255
+ Organization : u .APIFormat (),
1256
+ Sender : doer .APIFormat (),
1257
+ }); err != nil {
1258
+ return fmt .Errorf ("prepareWebhooks: %v" , err )
1252
1259
}
1260
+ go HookQueue .Add (repo .ID )
1253
1261
} else {
1254
1262
// Organization automatically called this in addRepository method.
1255
1263
if err = repo .recalculateAccesses (e ); err != nil {
@@ -1266,8 +1274,8 @@ func createRepository(e *xorm.Session, u *User, repo *Repository) (err error) {
1266
1274
return nil
1267
1275
}
1268
1276
1269
- // CreateRepository creates a repository for given user or organization.
1270
- func CreateRepository (u * User , opts CreateRepoOptions ) (_ * Repository , err error ) {
1277
+ // CreateRepository creates a repository for the user/ organization u .
1278
+ func CreateRepository (doer , u * User , opts CreateRepoOptions ) (_ * Repository , err error ) {
1271
1279
if ! u .CanCreateRepo () {
1272
1280
return nil , ErrReachLimitOfRepo {u .MaxRepoCreation }
1273
1281
}
@@ -1287,7 +1295,7 @@ func CreateRepository(u *User, opts CreateRepoOptions) (_ *Repository, err error
1287
1295
return nil , err
1288
1296
}
1289
1297
1290
- if err = createRepository (sess , u , repo ); err != nil {
1298
+ if err = createRepository (sess , doer , u , repo ); err != nil {
1291
1299
return nil , err
1292
1300
}
1293
1301
@@ -1623,7 +1631,7 @@ func UpdateRepositoryUnits(repo *Repository, units []RepoUnit) (err error) {
1623
1631
}
1624
1632
1625
1633
// DeleteRepository deletes a repository for a user or organization.
1626
- func DeleteRepository (uid , repoID int64 ) error {
1634
+ func DeleteRepository (doer * User , uid , repoID int64 ) error {
1627
1635
// In case is a organization.
1628
1636
org , err := GetUserByID (uid )
1629
1637
if err != nil {
@@ -1781,6 +1789,18 @@ func DeleteRepository(uid, repoID int64) error {
1781
1789
return fmt .Errorf ("Commit: %v" , err )
1782
1790
}
1783
1791
1792
+ if org .IsOrganization () {
1793
+ if err = PrepareWebhooks (repo , HookEventRepository , & api.RepositoryPayload {
1794
+ Action : api .HookRepoDeleted ,
1795
+ Repository : repo .APIFormat (AccessModeOwner ),
1796
+ Organization : org .APIFormat (),
1797
+ Sender : doer .APIFormat (),
1798
+ }); err != nil {
1799
+ return err
1800
+ }
1801
+ go HookQueue .Add (repo .ID )
1802
+ }
1803
+
1784
1804
return nil
1785
1805
}
1786
1806
@@ -1974,7 +1994,7 @@ func gatherMissingRepoRecords() ([]*Repository, error) {
1974
1994
}
1975
1995
1976
1996
// DeleteMissingRepositories deletes all repository records that lost Git files.
1977
- func DeleteMissingRepositories () error {
1997
+ func DeleteMissingRepositories (doer * User ) error {
1978
1998
repos , err := gatherMissingRepoRecords ()
1979
1999
if err != nil {
1980
2000
return fmt .Errorf ("gatherMissingRepoRecords: %v" , err )
@@ -1986,7 +2006,7 @@ func DeleteMissingRepositories() error {
1986
2006
1987
2007
for _ , repo := range repos {
1988
2008
log .Trace ("Deleting %d/%d..." , repo .OwnerID , repo .ID )
1989
- if err := DeleteRepository (repo .OwnerID , repo .ID ); err != nil {
2009
+ if err := DeleteRepository (doer , repo .OwnerID , repo .ID ); err != nil {
1990
2010
if err2 := CreateRepositoryNotice (fmt .Sprintf ("DeleteRepository [%d]: %v" , repo .ID , err )); err2 != nil {
1991
2011
return fmt .Errorf ("CreateRepositoryNotice: %v" , err )
1992
2012
}
@@ -2226,7 +2246,7 @@ func HasForkedRepo(ownerID, repoID int64) (*Repository, bool) {
2226
2246
}
2227
2247
2228
2248
// ForkRepository forks a repository
2229
- func ForkRepository (u * User , oldRepo * Repository , name , desc string ) (_ * Repository , err error ) {
2249
+ func ForkRepository (doer , u * User , oldRepo * Repository , name , desc string ) (_ * Repository , err error ) {
2230
2250
forkedRepo , err := oldRepo .GetUserFork (u .ID )
2231
2251
if err != nil {
2232
2252
return nil , err
@@ -2256,7 +2276,7 @@ func ForkRepository(u *User, oldRepo *Repository, name, desc string) (_ *Reposit
2256
2276
return nil , err
2257
2277
}
2258
2278
2259
- if err = createRepository (sess , u , repo ); err != nil {
2279
+ if err = createRepository (sess , doer , u , repo ); err != nil {
2260
2280
return nil , err
2261
2281
}
2262
2282
0 commit comments