Add token scopes enum and add to payloads (#617)
Closes #616 /cc @chmouel --- This should work fine, as the Gitea API accepts a string array and then internally converts the scopes. Co-authored-by: Chmouel Boudjnah <chmouel@chmouel.com> Reviewed-on: https://gitea.com/gitea/go-sdk/pulls/617 Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com> Reviewed-by: techknowlogick <techknowlogick@noreply.gitea.io> Co-authored-by: jolheiser <john.olheiser@gmail.com> Co-committed-by: jolheiser <john.olheiser@gmail.com>
This commit is contained in:
parent
6d1bcd107f
commit
3c5cad657b
1 changed files with 58 additions and 5 deletions
|
@ -13,12 +13,64 @@ import (
|
||||||
"reflect"
|
"reflect"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// AccessTokenScope represents the scope for an access token.
|
||||||
|
type AccessTokenScope string
|
||||||
|
|
||||||
|
const (
|
||||||
|
AccessTokenScopeAll AccessTokenScope = "all"
|
||||||
|
|
||||||
|
AccessTokenScopeRepo AccessTokenScope = "repo"
|
||||||
|
AccessTokenScopeRepoStatus AccessTokenScope = "repo:status"
|
||||||
|
AccessTokenScopePublicRepo AccessTokenScope = "public_repo"
|
||||||
|
|
||||||
|
AccessTokenScopeAdminOrg AccessTokenScope = "admin:org"
|
||||||
|
AccessTokenScopeWriteOrg AccessTokenScope = "write:org"
|
||||||
|
AccessTokenScopeReadOrg AccessTokenScope = "read:org"
|
||||||
|
|
||||||
|
AccessTokenScopeAdminPublicKey AccessTokenScope = "admin:public_key"
|
||||||
|
AccessTokenScopeWritePublicKey AccessTokenScope = "write:public_key"
|
||||||
|
AccessTokenScopeReadPublicKey AccessTokenScope = "read:public_key"
|
||||||
|
|
||||||
|
AccessTokenScopeAdminRepoHook AccessTokenScope = "admin:repo_hook"
|
||||||
|
AccessTokenScopeWriteRepoHook AccessTokenScope = "write:repo_hook"
|
||||||
|
AccessTokenScopeReadRepoHook AccessTokenScope = "read:repo_hook"
|
||||||
|
|
||||||
|
AccessTokenScopeAdminOrgHook AccessTokenScope = "admin:org_hook"
|
||||||
|
|
||||||
|
AccessTokenScopeAdminUserHook AccessTokenScope = "admin:user_hook"
|
||||||
|
|
||||||
|
AccessTokenScopeNotification AccessTokenScope = "notification"
|
||||||
|
|
||||||
|
AccessTokenScopeUser AccessTokenScope = "user"
|
||||||
|
AccessTokenScopeReadUser AccessTokenScope = "read:user"
|
||||||
|
AccessTokenScopeUserEmail AccessTokenScope = "user:email"
|
||||||
|
AccessTokenScopeUserFollow AccessTokenScope = "user:follow"
|
||||||
|
|
||||||
|
AccessTokenScopeDeleteRepo AccessTokenScope = "delete_repo"
|
||||||
|
|
||||||
|
AccessTokenScopePackage AccessTokenScope = "package"
|
||||||
|
AccessTokenScopeWritePackage AccessTokenScope = "write:package"
|
||||||
|
AccessTokenScopeReadPackage AccessTokenScope = "read:package"
|
||||||
|
AccessTokenScopeDeletePackage AccessTokenScope = "delete:package"
|
||||||
|
|
||||||
|
AccessTokenScopeAdminGPGKey AccessTokenScope = "admin:gpg_key"
|
||||||
|
AccessTokenScopeWriteGPGKey AccessTokenScope = "write:gpg_key"
|
||||||
|
AccessTokenScopeReadGPGKey AccessTokenScope = "read:gpg_key"
|
||||||
|
|
||||||
|
AccessTokenScopeAdminApplication AccessTokenScope = "admin:application"
|
||||||
|
AccessTokenScopeWriteApplication AccessTokenScope = "write:application"
|
||||||
|
AccessTokenScopeReadApplication AccessTokenScope = "read:application"
|
||||||
|
|
||||||
|
AccessTokenScopeSudo AccessTokenScope = "sudo"
|
||||||
|
)
|
||||||
|
|
||||||
// AccessToken represents an API access token.
|
// AccessToken represents an API access token.
|
||||||
type AccessToken struct {
|
type AccessToken struct {
|
||||||
ID int64 `json:"id"`
|
ID int64 `json:"id"`
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Token string `json:"sha1"`
|
Token string `json:"sha1"`
|
||||||
TokenLastEight string `json:"token_last_eight"`
|
TokenLastEight string `json:"token_last_eight"`
|
||||||
|
Scopes []AccessTokenScope `json:"scopes"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// ListAccessTokensOptions options for listing a users's access tokens
|
// ListAccessTokensOptions options for listing a users's access tokens
|
||||||
|
@ -43,6 +95,7 @@ func (c *Client) ListAccessTokens(opts ListAccessTokensOptions) ([]*AccessToken,
|
||||||
// CreateAccessTokenOption options when create access token
|
// CreateAccessTokenOption options when create access token
|
||||||
type CreateAccessTokenOption struct {
|
type CreateAccessTokenOption struct {
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
|
Scopes []AccessTokenScope `json:"scopes"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// CreateAccessToken create one access token with options
|
// CreateAccessToken create one access token with options
|
||||||
|
|
Loading…
Reference in a new issue