|
|
@ -1146,16 +1146,6 @@ func CreateRepository(ctx context.Context, doer, u *User, repo *Repository, over |
|
|
|
return fmt.Errorf("recalculateAccesses: %v", err) |
|
|
|
return fmt.Errorf("recalculateAccesses: %v", err) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if u.Visibility == api.VisibleTypePublic && !repo.IsPrivate { |
|
|
|
|
|
|
|
// Create/Remove git-daemon-export-ok for git-daemon...
|
|
|
|
|
|
|
|
daemonExportFile := path.Join(repo.RepoPath(), `git-daemon-export-ok`) |
|
|
|
|
|
|
|
if f, err := os.Create(daemonExportFile); err != nil { |
|
|
|
|
|
|
|
log.Error("Failed to create %s: %v", daemonExportFile, err) |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
f.Close() |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if setting.Service.AutoWatchNewRepos { |
|
|
|
if setting.Service.AutoWatchNewRepos { |
|
|
|
if err = watchRepo(db.GetEngine(ctx), doer.ID, repo.ID, true); err != nil { |
|
|
|
if err = watchRepo(db.GetEngine(ctx), doer.ID, repo.ID, true); err != nil { |
|
|
|
return fmt.Errorf("watchRepo: %v", err) |
|
|
|
return fmt.Errorf("watchRepo: %v", err) |
|
|
@ -1169,6 +1159,38 @@ func CreateRepository(ctx context.Context, doer, u *User, repo *Repository, over |
|
|
|
return nil |
|
|
|
return nil |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// CheckDaemonExportOK creates/removes git-daemon-export-ok for git-daemon...
|
|
|
|
|
|
|
|
func (repo *Repository) CheckDaemonExportOK(ctx context.Context) error { |
|
|
|
|
|
|
|
e := db.GetEngine(ctx) |
|
|
|
|
|
|
|
if err := repo.getOwner(e); err != nil { |
|
|
|
|
|
|
|
return err |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Create/Remove git-daemon-export-ok for git-daemon...
|
|
|
|
|
|
|
|
daemonExportFile := path.Join(repo.RepoPath(), `git-daemon-export-ok`) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
isExist, err := util.IsExist(daemonExportFile) |
|
|
|
|
|
|
|
if err != nil { |
|
|
|
|
|
|
|
log.Error("Unable to check if %s exists. Error: %v", daemonExportFile, err) |
|
|
|
|
|
|
|
return err |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
isPublic := !repo.IsPrivate && repo.Owner.Visibility == api.VisibleTypePublic |
|
|
|
|
|
|
|
if !isPublic && isExist { |
|
|
|
|
|
|
|
if err = util.Remove(daemonExportFile); err != nil { |
|
|
|
|
|
|
|
log.Error("Failed to remove %s: %v", daemonExportFile, err) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} else if isPublic && !isExist { |
|
|
|
|
|
|
|
if f, err := os.Create(daemonExportFile); err != nil { |
|
|
|
|
|
|
|
log.Error("Failed to create %s: %v", daemonExportFile, err) |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
f.Close() |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return nil |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func countRepositories(userID int64, private bool) int64 { |
|
|
|
func countRepositories(userID int64, private bool) int64 { |
|
|
|
sess := db.GetEngine(db.DefaultContext).Where("id > 0") |
|
|
|
sess := db.GetEngine(db.DefaultContext).Where("id > 0") |
|
|
|
|
|
|
|
|
|
|
@ -1318,24 +1340,9 @@ func updateRepository(e db.Engine, repo *Repository, visibilityChanged bool) (er |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// Create/Remove git-daemon-export-ok for git-daemon...
|
|
|
|
// Create/Remove git-daemon-export-ok for git-daemon...
|
|
|
|
daemonExportFile := path.Join(repo.RepoPath(), `git-daemon-export-ok`) |
|
|
|
if err := repo.CheckDaemonExportOK(db.WithEngine(db.DefaultContext, e)); err != nil { |
|
|
|
isExist, err := util.IsExist(daemonExportFile) |
|
|
|
|
|
|
|
isPublic := !repo.IsPrivate && repo.Owner.Visibility == api.VisibleTypePublic |
|
|
|
|
|
|
|
if err != nil { |
|
|
|
|
|
|
|
log.Error("Unable to check if %s exists. Error: %v", daemonExportFile, err) |
|
|
|
|
|
|
|
return err |
|
|
|
return err |
|
|
|
} |
|
|
|
} |
|
|
|
if !isPublic && isExist { |
|
|
|
|
|
|
|
if err = util.Remove(daemonExportFile); err != nil { |
|
|
|
|
|
|
|
log.Error("Failed to remove %s: %v", daemonExportFile, err) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} else if isPublic && !isExist { |
|
|
|
|
|
|
|
if f, err := os.Create(daemonExportFile); err != nil { |
|
|
|
|
|
|
|
log.Error("Failed to create %s: %v", daemonExportFile, err) |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
f.Close() |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
forkRepos, err := getRepositoriesByForkID(e, repo.ID) |
|
|
|
forkRepos, err := getRepositoriesByForkID(e, repo.ID) |
|
|
|
if err != nil { |
|
|
|
if err != nil { |
|
|
|