Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit055557e

Browse files
SachinKSingh28nejch
authored andcommitted
feat: adds member role methods
1 parent6eee494 commit055557e

File tree

8 files changed

+406
-0
lines changed

8 files changed

+406
-0
lines changed

‎docs/api-objects.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ API examples
3636
gl_objects/boards
3737
gl_objects/labels
3838
gl_objects/notifications
39+
gl_objects/member_roles.rst
3940
gl_objects/merge_trains
4041
gl_objects/merge_requests
4142
gl_objects/merge_request_approvals.rst

‎docs/gl_objects/member_roles.rst

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
############
2+
Member Roles
3+
############
4+
5+
You can configure member roles at the instance-level (admin only), or
6+
at group level.
7+
8+
Instance-level member roles
9+
===========================
10+
11+
This endpoint requires admin access.
12+
13+
Reference
14+
---------
15+
16+
* v4 API
17+
18+
+:class:`gitlab.v4.objects.MemberRole`
19+
+:class:`gitlab.v4.objects.MemberRoleManager`
20+
+:attr:`gitlab.Gitlab.member_roles`
21+
22+
* GitLab API
23+
24+
+ https://docs.gitlab.com/ee/api/member_roles.html#manage-instance-member-roles
25+
26+
Examples
27+
--------
28+
29+
List member roles::
30+
31+
variables = gl.member_roles.list()
32+
33+
Create a member role::
34+
35+
variable = gl.member_roles.create({'name': 'Custom Role', 'base_access_level': value})
36+
37+
Remove a member role::
38+
39+
gl.member_roles.delete(member_role_id)
40+
41+
Group member role
42+
=================
43+
44+
Reference
45+
---------
46+
47+
* v4 API
48+
49+
+:class:`gitlab.v4.objects.GroupMemberRole`
50+
+:class:`gitlab.v4.objects.GroupMemberRoleManager`
51+
+:attr:`gitlab.v4.objects.Group.member_roles`
52+
53+
* GitLab API
54+
55+
+ https://docs.gitlab.com/ee/api/member_roles.html#manage-group-member-roles
56+
57+
Examples
58+
--------
59+
60+
List member roles::
61+
62+
member_roles = group.member_roles.list()
63+
64+
Create a member role::
65+
66+
member_roles = group.member_roles.create({'name': 'Custom Role', 'base_access_level': value})
67+
68+
Remove a member role::
69+
70+
gl.member_roles.delete(member_role_id)
71+

‎gitlab/client.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,8 @@ def __init__(
166166
"""See :class:`~gitlab.v4.objects.LicenseManager`"""
167167
self.namespaces=objects.NamespaceManager(self)
168168
"""See :class:`~gitlab.v4.objects.NamespaceManager`"""
169+
self.member_roles=objects.MemberRoleManager(self)
170+
"""See :class:`~gitlab.v4.objects.MergeRequestManager`"""
169171
self.mergerequests=objects.MergeRequestManager(self)
170172
"""See :class:`~gitlab.v4.objects.MergeRequestManager`"""
171173
self.notificationsettings=objects.NotificationSettingsManager(self)

‎gitlab/v4/objects/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
from .keysimport*
4040
from .labelsimport*
4141
from .ldapimport*
42+
from .member_rolesimport*
4243
from .membersimport*
4344
from .merge_request_approvalsimport*
4445
from .merge_requestsimport*

‎gitlab/v4/objects/groups.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
from .issuesimportGroupIssueManager# noqa: F401
3737
from .iterationsimportGroupIterationManager# noqa: F401
3838
from .labelsimportGroupLabelManager# noqa: F401
39+
from .member_rolesimportGroupMemberRoleManager# noqa: F401
3940
from .membersimport (# noqa: F401
4041
GroupBillableMemberManager,
4142
GroupMemberAllManager,
@@ -92,6 +93,7 @@ class Group(SaveMixin, ObjectDeleteMixin, RESTObject):
9293
iterations:GroupIterationManager
9394
labels:GroupLabelManager
9495
ldap_group_links:GroupLDAPGroupLinkManager
96+
member_roles:GroupMemberRoleManager
9597
members:GroupMemberManager
9698
members_all:GroupMemberAllManager
9799
mergerequests:GroupMergeRequestManager

‎gitlab/v4/objects/member_roles.py

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
"""
2+
GitLab API:
3+
https://docs.gitlab.com/ee/api/instance_level_ci_variables.html
4+
https://docs.gitlab.com/ee/api/project_level_variables.html
5+
https://docs.gitlab.com/ee/api/group_level_variables.html
6+
"""
7+
8+
fromgitlab.baseimportRESTObject
9+
fromgitlab.mixinsimport (
10+
CreateMixin,
11+
DeleteMixin,
12+
ListMixin,
13+
ObjectDeleteMixin,
14+
SaveMixin,
15+
)
16+
fromgitlab.typesimportRequiredOptional
17+
18+
__all__= [
19+
"MemberRole",
20+
"MemberRoleManager",
21+
"GroupMemberRole",
22+
"GroupMemberRoleManager",
23+
]
24+
25+
26+
classMemberRole(SaveMixin,ObjectDeleteMixin,RESTObject):
27+
pass
28+
29+
30+
classMemberRoleManager(
31+
ListMixin[MemberRole],CreateMixin[MemberRole],DeleteMixin[MemberRole]
32+
):
33+
_path="/member_roles"
34+
_obj_cls=MemberRole
35+
_create_attrs=RequiredOptional(
36+
required=("name","base_access_level"),
37+
optional=(
38+
"description",
39+
"admin_cicd_variables",
40+
"admin_compliance_framework",
41+
"admin_group_member",
42+
"admin_group_member",
43+
"admin_merge_request",
44+
"admin_push_rules",
45+
"admin_terraform_state",
46+
"admin_vulnerability",
47+
"admin_web_hook",
48+
"archive_project",
49+
"manage_deploy_tokens",
50+
"manage_group_access_tokens",
51+
"manage_merge_request_settings",
52+
"manage_project_access_tokens",
53+
"manage_security_policy_link",
54+
"read_code",
55+
"read_runners",
56+
"read_dependency",
57+
"read_vulnerability",
58+
"remove_group",
59+
"remove_project",
60+
),
61+
)
62+
63+
64+
classGroupMemberRole(SaveMixin,ObjectDeleteMixin,RESTObject):
65+
pass
66+
67+
68+
classGroupMemberRoleManager(
69+
ListMixin[GroupMemberRole],
70+
CreateMixin[GroupMemberRole],
71+
DeleteMixin[GroupMemberRole],
72+
):
73+
_path="/groups/{group_id}/member_roles"
74+
_from_parent_attrs= {"group_id":"id"}
75+
_obj_cls=GroupMemberRole
76+
_create_attrs=RequiredOptional(
77+
required=("name","base_access_level"),
78+
optional=(
79+
"description",
80+
"admin_cicd_variables",
81+
"admin_compliance_framework",
82+
"admin_group_member",
83+
"admin_group_member",
84+
"admin_merge_request",
85+
"admin_push_rules",
86+
"admin_terraform_state",
87+
"admin_vulnerability",
88+
"admin_web_hook",
89+
"archive_project",
90+
"manage_deploy_tokens",
91+
"manage_group_access_tokens",
92+
"manage_merge_request_settings",
93+
"manage_project_access_tokens",
94+
"manage_security_policy_link",
95+
"read_code",
96+
"read_runners",
97+
"read_dependency",
98+
"read_vulnerability",
99+
"remove_group",
100+
"remove_project",
101+
),
102+
)
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
"""
2+
GitLab API:
3+
https://docs.gitlab.com/ee/api/member_roles.html
4+
"""
5+
6+
7+
deftest_instance_member_role(gl):
8+
member_role=gl.member_roles.create(
9+
{
10+
"name":"Custom webhook manager role",
11+
"base_access_level":20,
12+
"description":"Custom reporter that can manage webhooks",
13+
"admin_web_hook":True,
14+
}
15+
)
16+
assertmember_role.id>0
17+
assertmember_roleingl.member_roles.list()
18+
gl.member_roles.delete(member_role.id)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp