This commit is contained in:
Excellencedev committed 2025-12-18 12:00:47 +01:00
1 parent 43e96d5ead
commit 2a204e36a7
6 files changed
+338 -2

No files matched your search

+42
View File
@@ -176,6 +176,8 @@ const (
ActionsTokenPermissionModePermissive ActionsTokenPermissionMode = "permissive"
// ActionsTokenPermissionModeRestricted - read access by default
ActionsTokenPermissionModeRestricted ActionsTokenPermissionMode = "restricted"
// ActionsTokenPermissionModeCustom - user-defined permissions
ActionsTokenPermissionModeCustom ActionsTokenPermissionMode = "custom"
)
// ActionsTokenPermissions defines the permissions for different repository units
@@ -194,6 +196,46 @@ type ActionsTokenPermissions struct {
Wiki perm.AccessMode `json:"wiki"`
}
// HasRead checks if the permission has read access for the given scope
func (p ActionsTokenPermissions) HasRead(scope string) bool {
var mode perm.AccessMode
switch scope {
case "actions":
mode = p.Actions
case "contents":
mode = p.Contents
case "issues":
mode = p.Issues
case "packages":
mode = p.Packages
case "pull_requests":
mode = p.PullRequests
case "wiki":
mode = p.Wiki
}
return mode >= perm.AccessModeRead
}
// HasWrite checks if the permission has write access for the given scope
func (p ActionsTokenPermissions) HasWrite(scope string) bool {
var mode perm.AccessMode
switch scope {
case "actions":
mode = p.Actions
case "contents":
mode = p.Contents
case "issues":
mode = p.Issues
case "packages":
mode = p.Packages
case "pull_requests":
mode = p.PullRequests
case "wiki":
mode = p.Wiki
}
return mode >= perm.AccessModeWrite
}
// DefaultActionsTokenPermissions returns the default permissions for permissive mode
func DefaultActionsTokenPermissions(mode ActionsTokenPermissionMode) ActionsTokenPermissions {
if mode == ActionsTokenPermissionModeRestricted {