0
0
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:
karthik.bhandary 2026-03-22 19:16:48 +00:00
parent 348feff8d1
commit cfcbdca1f2
2 changed files with 17 additions and 3 deletions

View File

@ -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

View File

@ -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 {