Skip to content

Commit f8c1219

Browse files
committed
fix: Use correct API token scopes for Project Board tests
Project Boards are associated with issues in Gitea's permission model, so the API tests should use Issue scopes (ReadIssue/WriteIssue) instead of Repository scopes (ReadRepository/WriteRepository). This fixes 403 Forbidden errors in integration tests across all database platforms (PostgreSQL, MySQL, SQLite, MSSQL). Changes: - Replace AccessTokenScopeReadRepository with AccessTokenScopeReadIssue - Replace AccessTokenScopeWriteRepository with AccessTokenScopeWriteIssue Fixes integration test failures in: - TestAPIListProjects - TestAPIGetProject - TestAPICreateProject - TestAPIUpdateProject - TestAPIDeleteProject - TestAPIListProjectColumns - TestAPICreateProjectColumn - TestAPIUpdateProjectColumn - TestAPIDeleteProjectColumn - TestAPIAddIssueToProjectColumn - TestAPIProjectPermissions
1 parent 13e8243 commit f8c1219

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

tests/integration/api_repo_project_test.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ func TestAPIListProjects(t *testing.T) {
2626
repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1})
2727
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID})
2828

29-
token := getUserToken(t, owner.Name, auth_model.AccessTokenScopeReadRepository)
29+
token := getUserToken(t, owner.Name, auth_model.AccessTokenScopeReadIssue)
3030

3131
// Test listing all projects
3232
req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/projects", owner.Name, repo.Name).
@@ -77,7 +77,7 @@ func TestAPIGetProject(t *testing.T) {
7777
_ = project_model.DeleteProjectByID(t.Context(), project.ID)
7878
}()
7979

80-
token := getUserToken(t, owner.Name, auth_model.AccessTokenScopeReadRepository)
80+
token := getUserToken(t, owner.Name, auth_model.AccessTokenScopeReadIssue)
8181

8282
// Test getting the project
8383
req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/projects/%d", owner.Name, repo.Name, project.ID).
@@ -103,7 +103,7 @@ func TestAPICreateProject(t *testing.T) {
103103
repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1})
104104
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID})
105105

106-
token := getUserToken(t, owner.Name, auth_model.AccessTokenScopeWriteRepository)
106+
token := getUserToken(t, owner.Name, auth_model.AccessTokenScopeWriteIssue)
107107

108108
// Test creating a project
109109
req := NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/projects", owner.Name, repo.Name), &api.CreateProjectOption{
@@ -172,7 +172,7 @@ func TestAPIUpdateProject(t *testing.T) {
172172
_ = project_model.DeleteProjectByID(t.Context(), project.ID)
173173
}()
174174

175-
token := getUserToken(t, owner.Name, auth_model.AccessTokenScopeWriteRepository)
175+
token := getUserToken(t, owner.Name, auth_model.AccessTokenScopeWriteIssue)
176176

177177
// Test updating project title and description
178178
newTitle := "Updated Project Title"
@@ -233,7 +233,7 @@ func TestAPIDeleteProject(t *testing.T) {
233233
err := project_model.NewProject(t.Context(), project)
234234
assert.NoError(t, err)
235235

236-
token := getUserToken(t, owner.Name, auth_model.AccessTokenScopeWriteRepository)
236+
token := getUserToken(t, owner.Name, auth_model.AccessTokenScopeWriteIssue)
237237

238238
// Test deleting the project
239239
req := NewRequestf(t, "DELETE", "/api/v1/repos/%s/%s/projects/%d", owner.Name, repo.Name, project.ID).
@@ -277,7 +277,7 @@ func TestAPIListProjectColumns(t *testing.T) {
277277
assert.NoError(t, err)
278278
}
279279

280-
token := getUserToken(t, owner.Name, auth_model.AccessTokenScopeReadRepository)
280+
token := getUserToken(t, owner.Name, auth_model.AccessTokenScopeReadIssue)
281281

282282
// Test listing columns
283283
req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/projects/%d/columns", owner.Name, repo.Name, project.ID).
@@ -324,7 +324,7 @@ func TestAPICreateProjectColumn(t *testing.T) {
324324
_ = project_model.DeleteProjectByID(t.Context(), project.ID)
325325
}()
326326

327-
token := getUserToken(t, owner.Name, auth_model.AccessTokenScopeWriteRepository)
327+
token := getUserToken(t, owner.Name, auth_model.AccessTokenScopeWriteIssue)
328328

329329
// Test creating a column with color
330330
req := NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/projects/%d/columns", owner.Name, repo.Name, project.ID), &api.CreateProjectColumnOption{
@@ -390,7 +390,7 @@ func TestAPIUpdateProjectColumn(t *testing.T) {
390390
err = project_model.NewColumn(t.Context(), column)
391391
assert.NoError(t, err)
392392

393-
token := getUserToken(t, owner.Name, auth_model.AccessTokenScopeWriteRepository)
393+
token := getUserToken(t, owner.Name, auth_model.AccessTokenScopeWriteIssue)
394394

395395
// Test updating column title
396396
newTitle := "Updated Column"
@@ -448,7 +448,7 @@ func TestAPIDeleteProjectColumn(t *testing.T) {
448448
err = project_model.NewColumn(t.Context(), column)
449449
assert.NoError(t, err)
450450

451-
token := getUserToken(t, owner.Name, auth_model.AccessTokenScopeWriteRepository)
451+
token := getUserToken(t, owner.Name, auth_model.AccessTokenScopeWriteIssue)
452452

453453
// Test deleting the column
454454
req := NewRequestf(t, "DELETE", "/api/v1/repos/%s/%s/projects/columns/%d", owner.Name, repo.Name, column.ID).
@@ -498,7 +498,7 @@ func TestAPIAddIssueToProjectColumn(t *testing.T) {
498498
err = project_model.NewColumn(t.Context(), column2)
499499
assert.NoError(t, err)
500500

501-
token := getUserToken(t, owner.Name, auth_model.AccessTokenScopeWriteRepository)
501+
token := getUserToken(t, owner.Name, auth_model.AccessTokenScopeWriteIssue)
502502

503503
// Test adding issue to column
504504
req := NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/projects/columns/%d/issues", owner.Name, repo.Name, column1.ID), &api.AddIssueToProjectColumnOption{
@@ -560,8 +560,8 @@ func TestAPIProjectPermissions(t *testing.T) {
560560
_ = project_model.DeleteProjectByID(t.Context(), project.ID)
561561
}()
562562

563-
ownerToken := getUserToken(t, owner.Name, auth_model.AccessTokenScopeWriteRepository)
564-
user2Token := getUserToken(t, user2.Name, auth_model.AccessTokenScopeWriteRepository)
563+
ownerToken := getUserToken(t, owner.Name, auth_model.AccessTokenScopeWriteIssue)
564+
user2Token := getUserToken(t, user2.Name, auth_model.AccessTokenScopeWriteIssue)
565565

566566
// Owner should be able to read
567567
req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/projects/%d", owner.Name, repo.Name, project.ID).

0 commit comments

Comments
 (0)