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

Commit534a00f

Browse files
committed
feat(api): convert gitlab.const to Enums
This allows accessing the elements by value, i.e.:import gitlab.constgitlab.const.AccessLevel(20)
1 parent2708f91 commit534a00f

File tree

1 file changed

+77
-28
lines changed

1 file changed

+77
-28
lines changed

‎gitlab/const.py‎

Lines changed: 77 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
# You should have received a copy of the GNU Lesser General Public License
1616
# along with this program. If not, see <http://www.gnu.org/licenses/>.
1717

18+
fromenumimportEnum,IntEnum
19+
1820
fromgitlab.__version__import__title__,__version__
1921

2022
# NOTE(jlvillal): '_DEPRECATED' only affects users accessing constants via the
@@ -52,42 +54,89 @@
5254
"VISIBILITY_PUBLIC",
5355
]
5456

57+
58+
# https://gitlab.com/gitlab-org/gitlab/-/blob/e97357824bedf007e75f8782259fe07435b64fbb/lib/gitlab/access.rb#L12-18
59+
classAccessLevel(IntEnum):
60+
NO_ACCESS:int=0
61+
MINIMAL_ACCESS:int=5
62+
GUEST:int=10
63+
REPORTER:int=20
64+
DEVELOPER:int=30
65+
MAINTAINER:int=40
66+
OWNER:int=50
67+
68+
69+
# https://gitlab.com/gitlab-org/gitlab/-/blob/e97357824bedf007e75f8782259fe07435b64fbb/lib/gitlab/visibility_level.rb#L23-25
70+
classVisibility(Enum):
71+
PRIVATE:str="private"
72+
INTERNAL:str="internal"
73+
PUBLIC:str="public"
74+
75+
76+
classNotificationLevel(Enum):
77+
DISABLED:str="disabled"
78+
PARTICIPATING:str="participating"
79+
WATCH:str="watch"
80+
GLOBAL:str="global"
81+
MENTION:str="mention"
82+
CUSTOM:str="custom"
83+
84+
85+
# https://gitlab.com/gitlab-org/gitlab/-/blob/e97357824bedf007e75f8782259fe07435b64fbb/app/views/search/_category.html.haml#L10-37
86+
classSearchScope(Enum):
87+
# all scopes (global, group and project)
88+
PROJECTS:str="projects"
89+
ISSUES:str="issues"
90+
MERGE_REQUESTS:str="merge_requests"
91+
MILESTONES:str="milestones"
92+
WIKI_BLOBS:str="wiki_blobs"
93+
COMMITS:str="commits"
94+
BLOBS:str="blobs"
95+
USERS:str="users"
96+
97+
# specific global scope
98+
GLOBAL_SNIPPET_TITLES:str="snippet_titles"
99+
100+
# specific project scope
101+
PROJECT_NOTES:str="notes"
102+
103+
55104
DEFAULT_URL:str="https://gitlab.com"
56105

57-
NO_ACCESS:int=0
58-
MINIMAL_ACCESS:int=5
59-
GUEST_ACCESS:int=10
60-
REPORTER_ACCESS:int=20
61-
DEVELOPER_ACCESS:int=30
62-
MAINTAINER_ACCESS:int=40
63-
OWNER_ACCESS:int=50
64-
65-
VISIBILITY_PRIVATE:str="private"
66-
VISIBILITY_INTERNAL:str="internal"
67-
VISIBILITY_PUBLIC:str="public"
68-
69-
NOTIFICATION_LEVEL_DISABLED:str="disabled"
70-
NOTIFICATION_LEVEL_PARTICIPATING:str="participating"
71-
NOTIFICATION_LEVEL_WATCH:str="watch"
72-
NOTIFICATION_LEVEL_GLOBAL:str="global"
73-
NOTIFICATION_LEVEL_MENTION:str="mention"
74-
NOTIFICATION_LEVEL_CUSTOM:str="custom"
106+
NO_ACCESS=AccessLevel.NO_ACCESS.value
107+
MINIMAL_ACCESS=AccessLevel.MINIMAL_ACCESS.value
108+
GUEST_ACCESS=AccessLevel.GUEST.value
109+
REPORTER_ACCESS=AccessLevel.REPORTER.value
110+
DEVELOPER_ACCESS=AccessLevel.DEVELOPER.value
111+
MAINTAINER_ACCESS=AccessLevel.MAINTAINER.value
112+
OWNER_ACCESS=AccessLevel.OWNER.value
113+
114+
VISIBILITY_PRIVATE=Visibility.PRIVATE.value
115+
VISIBILITY_INTERNAL=Visibility.INTERNAL.value
116+
VISIBILITY_PUBLIC=Visibility.PUBLIC.value
117+
118+
NOTIFICATION_LEVEL_DISABLED=NotificationLevel.DISABLED.value
119+
NOTIFICATION_LEVEL_PARTICIPATING=NotificationLevel.PARTICIPATING.value
120+
NOTIFICATION_LEVEL_WATCH=NotificationLevel.WATCH.value
121+
NOTIFICATION_LEVEL_GLOBAL=NotificationLevel.GLOBAL.value
122+
NOTIFICATION_LEVEL_MENTION=NotificationLevel.MENTION.value
123+
NOTIFICATION_LEVEL_CUSTOM=NotificationLevel.CUSTOM.value
75124

76125
# Search scopes
77126
# all scopes (global, group and project)
78-
SEARCH_SCOPE_PROJECTS:str="projects"
79-
SEARCH_SCOPE_ISSUES:str="issues"
80-
SEARCH_SCOPE_MERGE_REQUESTS:str="merge_requests"
81-
SEARCH_SCOPE_MILESTONES:str="milestones"
82-
SEARCH_SCOPE_WIKI_BLOBS:str="wiki_blobs"
83-
SEARCH_SCOPE_COMMITS:str="commits"
84-
SEARCH_SCOPE_BLOBS:str="blobs"
85-
SEARCH_SCOPE_USERS:str="users"
127+
SEARCH_SCOPE_PROJECTS=SearchScope.PROJECTS.value
128+
SEARCH_SCOPE_ISSUES=SearchScope.ISSUES.value
129+
SEARCH_SCOPE_MERGE_REQUESTS=SearchScope.MERGE_REQUESTS.value
130+
SEARCH_SCOPE_MILESTONES=SearchScope.MILESTONES.value
131+
SEARCH_SCOPE_WIKI_BLOBS=SearchScope.WIKI_BLOBS.value
132+
SEARCH_SCOPE_COMMITS=SearchScope.COMMITS.value
133+
SEARCH_SCOPE_BLOBS=SearchScope.BLOBS.value
134+
SEARCH_SCOPE_USERS=SearchScope.USERS.value
86135

87136
# specific global scope
88-
SEARCH_SCOPE_GLOBAL_SNIPPET_TITLES:str="snippet_titles"
137+
SEARCH_SCOPE_GLOBAL_SNIPPET_TITLES=SearchScope.GLOBAL_SNIPPET_TITLES.value
89138

90139
# specific project scope
91-
SEARCH_SCOPE_PROJECT_NOTES:str="notes"
140+
SEARCH_SCOPE_PROJECT_NOTES=SearchScope.PROJECT_NOTES.value
92141

93142
USER_AGENT:str=f"{__title__}/{__version__}"

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp