mirror of
https://github.com/go-gitea/gitea.git
synced 2026-05-15 17:11:10 +02:00
updated DeleteOrgRepos to use GetRepositoryByID
This commit is contained in:
parent
348feff8d1
commit
cfcbdca1f2
@ -21,6 +21,12 @@ func GetOrgRepositories(ctx context.Context, orgID int64) (RepositoryList, error
|
||||
return orgRepos, db.GetEngine(ctx).Where("owner_id = ?", orgID).Find(&orgRepos)
|
||||
}
|
||||
|
||||
// GetOrgRepositoryIDs get repo IDs belonging to the given organization
|
||||
func GetOrgRepositoryIDs(ctx context.Context, orgID int64) ([]int64, error) {
|
||||
var repoIDs []int64
|
||||
return repoIDs, db.GetEngine(ctx).Table("repository").Where("owner_id = ?", orgID).Cols("id").Find(&repoIDs)
|
||||
}
|
||||
|
||||
type SearchTeamRepoOptions struct {
|
||||
db.ListOptions
|
||||
TeamID int64
|
||||
|
||||
@ -522,13 +522,13 @@ func DeleteOrgRepos(ctx *context.APIContext) {
|
||||
// "404":
|
||||
// "$ref": "#/responses/notFound"
|
||||
org := ctx.Org.Organization
|
||||
repos, err := repo_model.GetOrgRepositories(ctx, org.ID)
|
||||
repoIDs, err := repo_model.GetOrgRepositoryIDs(ctx, org.ID)
|
||||
if err != nil {
|
||||
ctx.APIErrorInternal(err)
|
||||
return
|
||||
}
|
||||
|
||||
if len(repos) == 0 {
|
||||
if len(repoIDs) == 0 {
|
||||
ctx.Status(http.StatusNoContent)
|
||||
return
|
||||
}
|
||||
@ -549,7 +549,15 @@ func DeleteOrgRepos(ctx *context.APIContext) {
|
||||
// Use HammerContext so deletion continues even if client disconnects
|
||||
bgCtx := graceful.GetManager().HammerContext()
|
||||
|
||||
for _, repo := range repos {
|
||||
for _, repoID := range repoIDs {
|
||||
repo, err := repo_model.GetRepositoryByID(bgCtx, repoID)
|
||||
if err != nil {
|
||||
desc := fmt.Sprintf("Failed to get repository ID %d in org %s: %v", repoID, org.Name, err)
|
||||
if noticeErr := system_model.CreateNotice(bgCtx, system_model.NoticeRepository, desc); noticeErr != nil {
|
||||
log.Error("Failed to create notice for repo get failure: %v", noticeErr)
|
||||
}
|
||||
continue
|
||||
}
|
||||
if err := repo_service.DeleteRepository(bgCtx, doer, repo, true); err != nil {
|
||||
desc := fmt.Sprintf("Failed to delete repository %s (ID: %d) in org %s: %v", repo.Name, repo.ID, org.Name, err)
|
||||
if noticeErr := system_model.CreateNotice(bgCtx, system_model.NoticeRepository, desc); noticeErr != nil {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user