diff --git a/routers/api/v1/api.go b/routers/api/v1/api.go index 3ca9023488..2d80692fef 100644 --- a/routers/api/v1/api.go +++ b/routers/api/v1/api.go @@ -1611,7 +1611,7 @@ func Routes() *web.Router { m.Post("/rename", reqToken(), reqOrgOwnership(), bind(api.RenameOrgOption{}), org.Rename) m.Combo("/repos").Get(user.ListOrgRepos). Post(reqToken(), bind(api.CreateRepoOption{}), repo.CreateOrgRepo). - Delete(reqToken(), reqOrgOwnership(), org.DeleteOrgRepos) + Delete(reqToken(), reqOrgOwnership(), tokenRequiresScopes(auth_model.AccessTokenScopeCategoryRepository), org.DeleteOrgRepos) m.Group("/members", func() { m.Get("", reqToken(), org.ListMembers) m.Combo("/{username}").Get(reqToken(), org.IsMember). diff --git a/tests/integration/api_org_test.go b/tests/integration/api_org_test.go index 5af193b16b..8efb6aa348 100644 --- a/tests/integration/api_org_test.go +++ b/tests/integration/api_org_test.go @@ -400,21 +400,11 @@ func TestAPIDeleteOrgRepos(t *testing.T) { org := unittest.AssertExistsAndLoadBean(t, &org_model.Organization{Name: orgName}) - maxWait := 10 * time.Second - checkInterval := 200 * time.Millisecond - elapsed := time.Duration(0) - - for elapsed < maxWait { - time.Sleep(checkInterval) - elapsed += checkInterval - - remainingRepos, err := repo_model.GetOrgRepositories(t.Context(), org.ID) - assert.NoError(t, err) - - if len(remainingRepos) == 0 { - break - } - } + assert.EventuallyWithT(t, func(c *assert.CollectT) { + repos, err := repo_model.GetOrgRepositories(t.Context(), org.ID) + assert.NoError(c, err) + assert.Empty(c, repos, "All repos should be deleted") + }, 10*time.Second, 200*time.Millisecond) finalNotices := unittest.GetCount( t, @@ -500,24 +490,10 @@ func TestAPIDeleteOrgRepos(t *testing.T) { org := unittest.AssertExistsAndLoadBean(t, &org_model.Organization{Name: orgName}) - maxWait := 10 * time.Second - checkInterval := 200 * time.Millisecond - elapsed := time.Duration(0) - - for elapsed < maxWait { - time.Sleep(checkInterval) - elapsed += checkInterval - - remainingRepos, err := repo_model.GetOrgRepositories(t.Context(), org.ID) - assert.NoError(t, err) - - if len(remainingRepos) == 0 { - break - } - } - - remainingRepos, err := repo_model.GetOrgRepositories(t.Context(), org.ID) - assert.NoError(t, err) - assert.Empty(t, remainingRepos) + assert.EventuallyWithT(t, func(c *assert.CollectT) { + repos, err := repo_model.GetOrgRepositories(t.Context(), org.ID) + assert.NoError(c, err) + assert.Empty(c, repos) + }, 10*time.Second, 200*time.Millisecond) }) }