mirror of
https://github.com/interviewstreet/go-jira.git
synced 2024-11-24 08:22:42 +02:00
Add PermissionSchemeService
Expand the PermissionScheme struct of ProjectService. Add new PermissionSchemeService with functions Get and GetList. Add corresponding mocks and tests.
This commit is contained in:
parent
f4bc07d375
commit
b2bcdc9f43
32
jira.go
32
jira.go
@ -27,21 +27,22 @@ type Client struct {
|
|||||||
session *Session
|
session *Session
|
||||||
|
|
||||||
// Services used for talking to different parts of the JIRA API.
|
// Services used for talking to different parts of the JIRA API.
|
||||||
Authentication *AuthenticationService
|
Authentication *AuthenticationService
|
||||||
Issue *IssueService
|
Issue *IssueService
|
||||||
Project *ProjectService
|
Project *ProjectService
|
||||||
Board *BoardService
|
Board *BoardService
|
||||||
Sprint *SprintService
|
Sprint *SprintService
|
||||||
User *UserService
|
User *UserService
|
||||||
Group *GroupService
|
Group *GroupService
|
||||||
Version *VersionService
|
Version *VersionService
|
||||||
Priority *PriorityService
|
Priority *PriorityService
|
||||||
Field *FieldService
|
Field *FieldService
|
||||||
Component *ComponentService
|
Component *ComponentService
|
||||||
Resolution *ResolutionService
|
Resolution *ResolutionService
|
||||||
StatusCategory *StatusCategoryService
|
StatusCategory *StatusCategoryService
|
||||||
Filter *FilterService
|
Filter *FilterService
|
||||||
Role *RoleService
|
Role *RoleService
|
||||||
|
PermissionScheme *PermissionSchemeService
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewClient returns a new JIRA API client.
|
// NewClient returns a new JIRA API client.
|
||||||
@ -85,6 +86,7 @@ func NewClient(httpClient *http.Client, baseURL string) (*Client, error) {
|
|||||||
c.StatusCategory = &StatusCategoryService{client: c}
|
c.StatusCategory = &StatusCategoryService{client: c}
|
||||||
c.Filter = &FilterService{client: c}
|
c.Filter = &FilterService{client: c}
|
||||||
c.Role = &RoleService{client: c}
|
c.Role = &RoleService{client: c}
|
||||||
|
c.PermissionScheme = &PermissionSchemeService{client: c}
|
||||||
|
|
||||||
return c, nil
|
return c, nil
|
||||||
}
|
}
|
||||||
|
1464
mocks/all_permissionschemes.json
Normal file
1464
mocks/all_permissionschemes.json
Normal file
File diff suppressed because it is too large
Load Diff
659
mocks/permissionscheme.json
Normal file
659
mocks/permissionscheme.json
Normal file
@ -0,0 +1,659 @@
|
|||||||
|
{
|
||||||
|
"expand": "permissions,user,group,projectRole,field,all",
|
||||||
|
"id": 10100,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100",
|
||||||
|
"name": "Default Permission Scheme",
|
||||||
|
"description": "This is the default Permission Scheme. Any new projects that are created will be assigned this scheme.",
|
||||||
|
"permissions": [
|
||||||
|
{
|
||||||
|
"id": 10520,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/10520",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10002",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "MANAGE_WATCHERS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10521,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/10521",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10002",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "EDIT_ALL_COMMENTS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10522,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/10522",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10002",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "DELETE_ALL_COMMENTS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10523,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/10523",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10002",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "DELETE_ALL_ATTACHMENTS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10524,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/10524",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10002",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "ADMINISTER_PROJECTS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10525,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/10525",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10002",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "DELETE_ISSUES"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10526,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/10526",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10002",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "MODIFY_REPORTER"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10527,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/10527",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10002",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "DELETE_ALL_WORKLOGS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10528,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/10528",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10002",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "EDIT_ALL_WORKLOGS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10529,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/10529",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10002",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "MANAGE_SPRINTS_PERMISSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10600,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/10600",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10201",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "TRANSITION_ISSUES"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12436,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/12436",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10302",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "WORK_ON_ISSUES"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12435,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/12435",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10302",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "VIEW_VOTERS_AND_WATCHERS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12434,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/12434",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10302",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "VIEW_READONLY_WORKFLOW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12433,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/12433",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10302",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "VIEW_DEV_TOOLS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12432,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/12432",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10302",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "TRANSITION_ISSUES"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12431,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/12431",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10302",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "SET_ISSUE_SECURITY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12430,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/12430",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10302",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "SCHEDULE_ISSUES"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12429,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/12429",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10302",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "RESOLVE_ISSUES"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12428,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/12428",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10302",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "MOVE_ISSUES"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12427,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/12427",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10302",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "MODIFY_REPORTER"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12426,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/12426",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10302",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "MANAGE_WATCHERS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12425,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/12425",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10302",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "MANAGE_SPRINTS_PERMISSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12424,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/12424",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10302",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "LINK_ISSUES"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12423,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/12423",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10302",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "EDIT_OWN_WORKLOGS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12422,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/12422",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10302",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "EDIT_OWN_COMMENTS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12421,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/12421",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10302",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "EDIT_ISSUES"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12420,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/12420",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10302",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "EDIT_ALL_WORKLOGS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12419,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/12419",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10302",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "EDIT_ALL_COMMENTS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12418,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/12418",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10302",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "DELETE_OWN_WORKLOGS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12417,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/12417",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10302",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "DELETE_OWN_COMMENTS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12416,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/12416",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10302",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "DELETE_OWN_ATTACHMENTS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12415,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/12415",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10302",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "DELETE_ISSUES"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12414,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/12414",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10302",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "DELETE_ALL_WORKLOGS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12413,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/12413",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10302",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "DELETE_ALL_COMMENTS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12412,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/12412",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10302",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "DELETE_ALL_ATTACHMENTS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12411,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/12411",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10302",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "CREATE_ISSUES"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12410,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/12410",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10302",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "CREATE_ATTACHMENTS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12409,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/12409",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10302",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "CLOSE_ISSUES"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12408,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/12408",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10302",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "BROWSE_PROJECTS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12407,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/12407",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10302",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "ASSIGN_ISSUES"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12406,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/12406",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10302",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "ASSIGNABLE_USER"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12405,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/12405",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10302",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "ADMINISTER_PROJECTS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12404,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/12404",
|
||||||
|
"holder": {
|
||||||
|
"type": "projectRole",
|
||||||
|
"parameter": "10302",
|
||||||
|
"expand": "projectRole"
|
||||||
|
},
|
||||||
|
"permission": "ADD_COMMENTS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10552,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/10552",
|
||||||
|
"holder": {
|
||||||
|
"type": "group",
|
||||||
|
"parameter": "FooBarGroup",
|
||||||
|
"expand": "group"
|
||||||
|
},
|
||||||
|
"permission": "ASSIGNABLE_USER"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10553,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/10553",
|
||||||
|
"holder": {
|
||||||
|
"type": "group",
|
||||||
|
"parameter": "FooBarGroup",
|
||||||
|
"expand": "group"
|
||||||
|
},
|
||||||
|
"permission": "BROWSE_PROJECTS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10554,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/10554",
|
||||||
|
"holder": {
|
||||||
|
"type": "group",
|
||||||
|
"parameter": "FooBarGroup",
|
||||||
|
"expand": "group"
|
||||||
|
},
|
||||||
|
"permission": "CLOSE_ISSUES"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10555,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/10555",
|
||||||
|
"holder": {
|
||||||
|
"type": "group",
|
||||||
|
"parameter": "FooBarGroup",
|
||||||
|
"expand": "group"
|
||||||
|
},
|
||||||
|
"permission": "CREATE_ISSUES"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10556,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/10556",
|
||||||
|
"holder": {
|
||||||
|
"type": "group",
|
||||||
|
"parameter": "FooBarGroup",
|
||||||
|
"expand": "group"
|
||||||
|
},
|
||||||
|
"permission": "EDIT_ISSUES"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10557,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/10557",
|
||||||
|
"holder": {
|
||||||
|
"type": "group",
|
||||||
|
"parameter": "FooBarGroup",
|
||||||
|
"expand": "group"
|
||||||
|
},
|
||||||
|
"permission": "LINK_ISSUES"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10558,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/10558",
|
||||||
|
"holder": {
|
||||||
|
"type": "group",
|
||||||
|
"parameter": "FooBarGroup",
|
||||||
|
"expand": "group"
|
||||||
|
},
|
||||||
|
"permission": "MOVE_ISSUES"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10559,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/10559",
|
||||||
|
"holder": {
|
||||||
|
"type": "group",
|
||||||
|
"parameter": "FooBarGroup",
|
||||||
|
"expand": "group"
|
||||||
|
},
|
||||||
|
"permission": "RESOLVE_ISSUES"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10560,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/10560",
|
||||||
|
"holder": {
|
||||||
|
"type": "group",
|
||||||
|
"parameter": "FooBarGroup",
|
||||||
|
"expand": "group"
|
||||||
|
},
|
||||||
|
"permission": "VIEW_READONLY_WORKFLOW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10561,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/10561",
|
||||||
|
"holder": {
|
||||||
|
"type": "group",
|
||||||
|
"parameter": "FooBarGroup",
|
||||||
|
"expand": "group"
|
||||||
|
},
|
||||||
|
"permission": "VIEW_DEV_TOOLS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10562,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/10562",
|
||||||
|
"holder": {
|
||||||
|
"type": "group",
|
||||||
|
"parameter": "FooBarGroup",
|
||||||
|
"expand": "group"
|
||||||
|
},
|
||||||
|
"permission": "ASSIGN_ISSUES"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10563,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/10563",
|
||||||
|
"holder": {
|
||||||
|
"type": "group",
|
||||||
|
"parameter": "FooBarGroup",
|
||||||
|
"expand": "group"
|
||||||
|
},
|
||||||
|
"permission": "SCHEDULE_ISSUES"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10564,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/10564",
|
||||||
|
"holder": {
|
||||||
|
"type": "group",
|
||||||
|
"parameter": "FooBarGroup",
|
||||||
|
"expand": "group"
|
||||||
|
},
|
||||||
|
"permission": "TRANSITION_ISSUES"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10565,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/10565",
|
||||||
|
"holder": {
|
||||||
|
"type": "group",
|
||||||
|
"parameter": "FooBarGroup",
|
||||||
|
"expand": "group"
|
||||||
|
},
|
||||||
|
"permission": "VIEW_VOTERS_AND_WATCHERS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10566,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/10566",
|
||||||
|
"holder": {
|
||||||
|
"type": "group",
|
||||||
|
"parameter": "FooBarGroup",
|
||||||
|
"expand": "group"
|
||||||
|
},
|
||||||
|
"permission": "ADD_COMMENTS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10567,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/10567",
|
||||||
|
"holder": {
|
||||||
|
"type": "group",
|
||||||
|
"parameter": "FooBarGroup",
|
||||||
|
"expand": "group"
|
||||||
|
},
|
||||||
|
"permission": "CREATE_ATTACHMENTS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10568,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/10568",
|
||||||
|
"holder": {
|
||||||
|
"type": "group",
|
||||||
|
"parameter": "FooBarGroup",
|
||||||
|
"expand": "group"
|
||||||
|
},
|
||||||
|
"permission": "WORK_ON_ISSUES"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10530,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/10530",
|
||||||
|
"holder": {
|
||||||
|
"type": "applicationRole"
|
||||||
|
},
|
||||||
|
"permission": "EDIT_OWN_COMMENTS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10531,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/10531",
|
||||||
|
"holder": {
|
||||||
|
"type": "applicationRole"
|
||||||
|
},
|
||||||
|
"permission": "DELETE_OWN_COMMENTS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10532,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/10532",
|
||||||
|
"holder": {
|
||||||
|
"type": "applicationRole"
|
||||||
|
},
|
||||||
|
"permission": "DELETE_OWN_ATTACHMENTS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10533,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/10533",
|
||||||
|
"holder": {
|
||||||
|
"type": "applicationRole"
|
||||||
|
},
|
||||||
|
"permission": "DELETE_OWN_WORKLOGS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10534,
|
||||||
|
"self": "https://sample.instance.org/rest/api/3/permissionscheme/10100/permission/10534",
|
||||||
|
"holder": {
|
||||||
|
"type": "applicationRole"
|
||||||
|
},
|
||||||
|
"permission": "EDIT_OWN_WORKLOGS"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
62
permissionscheme.go
Normal file
62
permissionscheme.go
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
package jira
|
||||||
|
|
||||||
|
import "fmt"
|
||||||
|
|
||||||
|
// PermissionSchemeService handles permissionschemes for the JIRA instance / API.
|
||||||
|
//
|
||||||
|
// JIRA API docs: https://docs.atlassian.com/jira/REST/latest/#api/3/permissionscheme
|
||||||
|
type PermissionSchemeService struct {
|
||||||
|
client *Client
|
||||||
|
}
|
||||||
|
type PermissionSchemes struct {
|
||||||
|
PermissionSchemes []PermissionScheme `json:"permissionSchemes" structs:"permissionSchemes"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Permission struct {
|
||||||
|
ID int `json:"id" structs:"id"`
|
||||||
|
Self string `json:"expand" structs:"expand"`
|
||||||
|
Holder Holder `json:"holder" structs:"holder"`
|
||||||
|
Name string `json:"permission" structs:"permission"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Holder struct {
|
||||||
|
Type string `json:"type" structs:"type"`
|
||||||
|
Parameter string `json:"parameter" structs:"parameter"`
|
||||||
|
Expand string `json:"expand" structs:"expand"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetList returns a list of all permission schemes
|
||||||
|
func (s *PermissionSchemeService) GetList() (*PermissionSchemes, *Response, error) {
|
||||||
|
apiEndpoint := "/rest/api/3/permissionscheme"
|
||||||
|
req, err := s.client.NewRequest("GET", apiEndpoint, nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
pss := new(PermissionSchemes)
|
||||||
|
resp, err := s.client.Do(req, &pss)
|
||||||
|
if err != nil {
|
||||||
|
jerr := NewJiraError(resp, err)
|
||||||
|
return nil, resp, jerr
|
||||||
|
}
|
||||||
|
|
||||||
|
return pss, resp, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get returns a full representation of the permission scheme for the schemeID
|
||||||
|
func (s *PermissionSchemeService) Get(schemeID int) (*PermissionScheme, *Response, error) {
|
||||||
|
apiEndpoint := fmt.Sprintf("/rest/api/3/permissionscheme/%d", schemeID)
|
||||||
|
req, err := s.client.NewRequest("GET", apiEndpoint, nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
ps := new(PermissionScheme)
|
||||||
|
resp, err := s.client.Do(req, ps)
|
||||||
|
if err != nil {
|
||||||
|
jerr := NewJiraError(resp, err)
|
||||||
|
return nil, resp, jerr
|
||||||
|
}
|
||||||
|
|
||||||
|
return ps, resp, nil
|
||||||
|
}
|
56
permissionschemes_test.go
Normal file
56
permissionschemes_test.go
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
package jira
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"io/ioutil"
|
||||||
|
"net/http"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestPermissionSchemeService_GetList(t *testing.T) {
|
||||||
|
setup()
|
||||||
|
defer teardown()
|
||||||
|
testAPIEndpoint := "/rest/api/3/permissionscheme"
|
||||||
|
|
||||||
|
raw, err := ioutil.ReadFile("./mocks/all_permissionschemes.json")
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err.Error())
|
||||||
|
}
|
||||||
|
testMux.HandleFunc(testAPIEndpoint, func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
testMethod(t, r, "GET")
|
||||||
|
testRequestURL(t, r, testAPIEndpoint)
|
||||||
|
fmt.Fprintf(w, string(raw))
|
||||||
|
})
|
||||||
|
|
||||||
|
permissionScheme, _, err := testClient.PermissionScheme.GetList()
|
||||||
|
if permissionScheme == nil {
|
||||||
|
t.Error("Expected role list. Role list is nil")
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("Error given: %v", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestPermissionSchemeService_Get(t *testing.T) {
|
||||||
|
setup()
|
||||||
|
defer teardown()
|
||||||
|
testAPIEdpoint := "/rest/api/3/permissionscheme/10100"
|
||||||
|
raw, err := ioutil.ReadFile("./mocks/permissionscheme.json")
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err.Error())
|
||||||
|
}
|
||||||
|
testMux.HandleFunc(testAPIEdpoint, func(writer http.ResponseWriter, request *http.Request) {
|
||||||
|
testMethod(t, request, "GET")
|
||||||
|
testRequestURL(t, request, testAPIEdpoint)
|
||||||
|
fmt.Fprintf(writer, string(raw))
|
||||||
|
})
|
||||||
|
|
||||||
|
permissionScheme, _, err := testClient.PermissionScheme.Get(10100)
|
||||||
|
if permissionScheme == nil {
|
||||||
|
t.Errorf("Expected Role, got nil")
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("Error given: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
11
project.go
11
project.go
@ -74,11 +74,12 @@ type ProjectComponent struct {
|
|||||||
|
|
||||||
// PermissionScheme represents the permission scheme for the project
|
// PermissionScheme represents the permission scheme for the project
|
||||||
type PermissionScheme struct {
|
type PermissionScheme struct {
|
||||||
Expand string `json:"expand" structs:"expand,omitempty"`
|
Expand string `json:"expand" structs:"expand,omitempty"`
|
||||||
Self string `json:"self" structs:"self,omitempty"`
|
Self string `json:"self" structs:"self,omitempty"`
|
||||||
ID int `json:"id" structs:"id,omitempty"`
|
ID int `json:"id" structs:"id,omitempty"`
|
||||||
Name string `json:"name" structs:"name,omitempty"`
|
Name string `json:"name" structs:"name,omitempty"`
|
||||||
Description string `json:"description" structs:"description,omitempty"`
|
Description string `json:"description" structs:"description,omitempty"`
|
||||||
|
Permissions []Permission `json:"permissions" structs:"permissions,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetList gets all projects form JIRA
|
// GetList gets all projects form JIRA
|
||||||
|
Loading…
Reference in New Issue
Block a user