@@ -25,7 +25,7 @@ func TestCollectRequiredPermissions(t *testing.T) {
2525 toolsets : []string {"repos" },
2626 readOnly : false ,
2727 expected : map [PermissionScope ]PermissionLevel {
28- PermissionContents : PermissionWrite ,
28+ PermissionContents : PermissionRead ,
2929 },
3030 },
3131 {
@@ -41,51 +41,51 @@ func TestCollectRequiredPermissions(t *testing.T) {
4141 toolsets : []string {"issues" },
4242 readOnly : false ,
4343 expected : map [PermissionScope ]PermissionLevel {
44- PermissionIssues : PermissionWrite ,
44+ PermissionIssues : PermissionRead ,
4545 },
4646 },
4747 {
4848 name : "Multiple toolsets" ,
4949 toolsets : []string {"repos" , "issues" , "pull_requests" },
5050 readOnly : false ,
5151 expected : map [PermissionScope ]PermissionLevel {
52- PermissionContents : PermissionWrite ,
53- PermissionIssues : PermissionWrite ,
54- PermissionPullRequests : PermissionWrite ,
52+ PermissionContents : PermissionRead ,
53+ PermissionIssues : PermissionRead ,
54+ PermissionPullRequests : PermissionRead ,
5555 },
5656 },
5757 {
5858 name : "Default toolsets in read-write mode" ,
5959 toolsets : DefaultGitHubToolsets ,
6060 readOnly : false ,
6161 expected : map [PermissionScope ]PermissionLevel {
62- PermissionContents : PermissionWrite ,
63- PermissionIssues : PermissionWrite ,
64- PermissionPullRequests : PermissionWrite ,
62+ PermissionContents : PermissionRead ,
63+ PermissionIssues : PermissionRead ,
64+ PermissionPullRequests : PermissionRead ,
6565 },
6666 },
6767 {
68- name : "Actions toolset (read-write) " ,
68+ name : "Actions toolset" ,
6969 toolsets : []string {"actions" },
7070 readOnly : false ,
7171 expected : map [PermissionScope ]PermissionLevel {
72- PermissionActions : PermissionWrite ,
72+ PermissionActions : PermissionRead ,
7373 },
7474 },
7575 {
7676 name : "Code security toolset" ,
7777 toolsets : []string {"code_security" },
7878 readOnly : false ,
7979 expected : map [PermissionScope ]PermissionLevel {
80- PermissionSecurityEvents : PermissionWrite ,
80+ PermissionSecurityEvents : PermissionRead ,
8181 },
8282 },
8383 {
8484 name : "Discussions toolset" ,
8585 toolsets : []string {"discussions" },
8686 readOnly : false ,
8787 expected : map [PermissionScope ]PermissionLevel {
88- PermissionDiscussions : PermissionWrite ,
88+ PermissionDiscussions : PermissionRead ,
8989 },
9090 },
9191 {
@@ -150,9 +150,9 @@ func TestValidatePermissions_MissingPermissions(t *testing.T) {
150150 {
151151 name : "Default toolsets with all required permissions" ,
152152 permissions : NewPermissionsFromMap (map [PermissionScope ]PermissionLevel {
153- PermissionContents : PermissionWrite ,
154- PermissionIssues : PermissionWrite ,
155- PermissionPullRequests : PermissionWrite ,
153+ PermissionContents : PermissionRead ,
154+ PermissionIssues : PermissionRead ,
155+ PermissionPullRequests : PermissionRead ,
156156 }),
157157 githubToolConfig : & GitHubToolConfig {
158158 Toolset : GitHubToolsets {"default" },
@@ -162,17 +162,15 @@ func TestValidatePermissions_MissingPermissions(t *testing.T) {
162162 expectHasIssues : false ,
163163 },
164164 {
165- name : "Default toolsets with only read permissions (missing write )" ,
165+ name : "Default toolsets with no permissions (missing read )" ,
166166 permissions : NewPermissionsFromMap (map [PermissionScope ]PermissionLevel {
167- PermissionContents : PermissionRead ,
168- PermissionIssues : PermissionRead ,
169- PermissionPullRequests : PermissionRead ,
167+ PermissionContents : PermissionRead ,
170168 }),
171169 githubToolConfig : & GitHubToolConfig {
172170 Toolset : GitHubToolsets {"default" },
173- ReadOnly : false , // Need write permissions
171+ ReadOnly : false , // Only read permissions required
174172 },
175- expectMissingCount : 3 , // All need write
173+ expectMissingCount : 2 , // Missing issues: read, pull-requests: read
176174 expectHasIssues : true ,
177175 },
178176 {
@@ -192,19 +190,19 @@ func TestValidatePermissions_MissingPermissions(t *testing.T) {
192190 {
193191 name : "Specific toolsets with partial permissions" ,
194192 permissions : NewPermissionsFromMap (map [PermissionScope ]PermissionLevel {
195- PermissionContents : PermissionWrite ,
193+ PermissionContents : PermissionRead ,
196194 }),
197195 githubToolConfig : & GitHubToolConfig {
198196 Toolset : GitHubToolsets {"repos" , "issues" },
199197 ReadOnly : false ,
200198 },
201- expectMissingCount : 1 , // Missing issues: write
199+ expectMissingCount : 1 , // Missing issues: read
202200 expectHasIssues : true ,
203201 },
204202 {
205- name : "Actions toolset with write permission" ,
203+ name : "Actions toolset with read permission" ,
206204 permissions : NewPermissionsFromMap (map [PermissionScope ]PermissionLevel {
207- PermissionActions : PermissionWrite ,
205+ PermissionActions : PermissionRead ,
208206 }),
209207 githubToolConfig : & GitHubToolConfig {
210208 Toolset : GitHubToolsets {"actions" },
@@ -350,12 +348,7 @@ func TestValidatePermissions_ComplexScenarios(t *testing.T) {
350348 Toolset : GitHubToolsets {"default" },
351349 ReadOnly : false ,
352350 },
353- expectMsg : []string {
354- "Missing required permissions for GitHub toolsets:" ,
355- "contents: write" ,
356- "issues: write" ,
357- "pull-requests: write" ,
358- },
351+ expectMsg : []string {}, // read-all satisfies the read-only permission requirements
359352 },
360353 {
361354 name : "All: read with discussions toolset" ,
@@ -364,10 +357,7 @@ func TestValidatePermissions_ComplexScenarios(t *testing.T) {
364357 Toolset : GitHubToolsets {"discussions" },
365358 ReadOnly : false ,
366359 },
367- expectMsg : []string {
368- "Missing required permissions for GitHub toolsets:" ,
369- "discussions: write" ,
370- },
360+ expectMsg : []string {}, // all:read satisfies discussions read requirement
371361 },
372362 }
373363
0 commit comments