|
15 | 15 | # You should have received a copy of the GNU Lesser General Public License |
16 | 16 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
17 | 17 |
|
| 18 | +fromenumimportEnum,IntEnum |
| 19 | + |
18 | 20 | fromgitlab._versionimport__title__,__version__ |
19 | 21 |
|
20 | 22 | # NOTE(jlvillal): '_DEPRECATED' only affects users accessing constants via the |
21 | 23 | # top-level gitlab.* namespace. See 'gitlab/__init__.py:__getattr__()' for the |
22 | 24 | # consumer of '_DEPRECATED' For example 'x = gitlab.NO_ACCESS'. We want users |
23 | 25 | # to instead use constants by doing code like: gitlab.const.NO_ACCESS. |
24 | 26 | _DEPRECATED= [ |
| 27 | +"ADMIN_ACCESS", |
25 | 28 | "DEFAULT_URL", |
26 | 29 | "DEVELOPER_ACCESS", |
27 | 30 | "GUEST_ACCESS", |
|
52 | 55 | "VISIBILITY_PUBLIC", |
53 | 56 | ] |
54 | 57 |
|
| 58 | + |
| 59 | +# https://gitlab.com/gitlab-org/gitlab/-/blob/e97357824bedf007e75f8782259fe07435b64fbb/lib/gitlab/access.rb#L12-18 |
| 60 | +classAccessLevel(IntEnum): |
| 61 | +NO_ACCESS:int=0 |
| 62 | +MINIMAL_ACCESS:int=5 |
| 63 | +GUEST:int=10 |
| 64 | +REPORTER:int=20 |
| 65 | +DEVELOPER:int=30 |
| 66 | +MAINTAINER:int=40 |
| 67 | +OWNER:int=50 |
| 68 | +ADMIN:int=60 |
| 69 | + |
| 70 | + |
| 71 | +# https://gitlab.com/gitlab-org/gitlab/-/blob/e97357824bedf007e75f8782259fe07435b64fbb/lib/gitlab/visibility_level.rb#L23-25 |
| 72 | +classVisibility(Enum): |
| 73 | +PRIVATE:str="private" |
| 74 | +INTERNAL:str="internal" |
| 75 | +PUBLIC:str="public" |
| 76 | + |
| 77 | + |
| 78 | +classNotificationLevel(Enum): |
| 79 | +DISABLED:str="disabled" |
| 80 | +PARTICIPATING:str="participating" |
| 81 | +WATCH:str="watch" |
| 82 | +GLOBAL:str="global" |
| 83 | +MENTION:str="mention" |
| 84 | +CUSTOM:str="custom" |
| 85 | + |
| 86 | + |
| 87 | +# https://gitlab.com/gitlab-org/gitlab/-/blob/e97357824bedf007e75f8782259fe07435b64fbb/app/views/search/_category.html.haml#L10-37 |
| 88 | +classSearchScope(Enum): |
| 89 | +# all scopes (global, group and project) |
| 90 | +PROJECTS:str="projects" |
| 91 | +ISSUES:str="issues" |
| 92 | +MERGE_REQUESTS:str="merge_requests" |
| 93 | +MILESTONES:str="milestones" |
| 94 | +WIKI_BLOBS:str="wiki_blobs" |
| 95 | +COMMITS:str="commits" |
| 96 | +BLOBS:str="blobs" |
| 97 | +USERS:str="users" |
| 98 | + |
| 99 | +# specific global scope |
| 100 | +GLOBAL_SNIPPET_TITLES:str="snippet_titles" |
| 101 | + |
| 102 | +# specific project scope |
| 103 | +PROJECT_NOTES:str="notes" |
| 104 | + |
| 105 | + |
55 | 106 | DEFAULT_URL:str="https://gitlab.com" |
56 | 107 |
|
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 | | -ADMIN_ACCESS:int=60 |
65 | | - |
66 | | -VISIBILITY_PRIVATE:str="private" |
67 | | -VISIBILITY_INTERNAL:str="internal" |
68 | | -VISIBILITY_PUBLIC:str="public" |
69 | | - |
70 | | -NOTIFICATION_LEVEL_DISABLED:str="disabled" |
71 | | -NOTIFICATION_LEVEL_PARTICIPATING:str="participating" |
72 | | -NOTIFICATION_LEVEL_WATCH:str="watch" |
73 | | -NOTIFICATION_LEVEL_GLOBAL:str="global" |
74 | | -NOTIFICATION_LEVEL_MENTION:str="mention" |
75 | | -NOTIFICATION_LEVEL_CUSTOM:str="custom" |
| 108 | +NO_ACCESS=AccessLevel.NO_ACCESS.value |
| 109 | +MINIMAL_ACCESS=AccessLevel.MINIMAL_ACCESS.value |
| 110 | +GUEST_ACCESS=AccessLevel.GUEST.value |
| 111 | +REPORTER_ACCESS=AccessLevel.REPORTER.value |
| 112 | +DEVELOPER_ACCESS=AccessLevel.DEVELOPER.value |
| 113 | +MAINTAINER_ACCESS=AccessLevel.MAINTAINER.value |
| 114 | +OWNER_ACCESS=AccessLevel.OWNER.value |
| 115 | +ADMIN_ACCESS=AccessLevel.ADMIN.value |
| 116 | + |
| 117 | +VISIBILITY_PRIVATE=Visibility.PRIVATE.value |
| 118 | +VISIBILITY_INTERNAL=Visibility.INTERNAL.value |
| 119 | +VISIBILITY_PUBLIC=Visibility.PUBLIC.value |
| 120 | + |
| 121 | +NOTIFICATION_LEVEL_DISABLED=NotificationLevel.DISABLED.value |
| 122 | +NOTIFICATION_LEVEL_PARTICIPATING=NotificationLevel.PARTICIPATING.value |
| 123 | +NOTIFICATION_LEVEL_WATCH=NotificationLevel.WATCH.value |
| 124 | +NOTIFICATION_LEVEL_GLOBAL=NotificationLevel.GLOBAL.value |
| 125 | +NOTIFICATION_LEVEL_MENTION=NotificationLevel.MENTION.value |
| 126 | +NOTIFICATION_LEVEL_CUSTOM=NotificationLevel.CUSTOM.value |
76 | 127 |
|
77 | 128 | # Search scopes |
78 | 129 | # all scopes (global, group and project) |
79 | | -SEARCH_SCOPE_PROJECTS:str="projects" |
80 | | -SEARCH_SCOPE_ISSUES:str="issues" |
81 | | -SEARCH_SCOPE_MERGE_REQUESTS:str="merge_requests" |
82 | | -SEARCH_SCOPE_MILESTONES:str="milestones" |
83 | | -SEARCH_SCOPE_WIKI_BLOBS:str="wiki_blobs" |
84 | | -SEARCH_SCOPE_COMMITS:str="commits" |
85 | | -SEARCH_SCOPE_BLOBS:str="blobs" |
86 | | -SEARCH_SCOPE_USERS:str="users" |
| 130 | +SEARCH_SCOPE_PROJECTS=SearchScope.PROJECTS.value |
| 131 | +SEARCH_SCOPE_ISSUES=SearchScope.ISSUES.value |
| 132 | +SEARCH_SCOPE_MERGE_REQUESTS=SearchScope.MERGE_REQUESTS.value |
| 133 | +SEARCH_SCOPE_MILESTONES=SearchScope.MILESTONES.value |
| 134 | +SEARCH_SCOPE_WIKI_BLOBS=SearchScope.WIKI_BLOBS.value |
| 135 | +SEARCH_SCOPE_COMMITS=SearchScope.COMMITS.value |
| 136 | +SEARCH_SCOPE_BLOBS=SearchScope.BLOBS.value |
| 137 | +SEARCH_SCOPE_USERS=SearchScope.USERS.value |
87 | 138 |
|
88 | 139 | # specific global scope |
89 | | -SEARCH_SCOPE_GLOBAL_SNIPPET_TITLES:str="snippet_titles" |
| 140 | +SEARCH_SCOPE_GLOBAL_SNIPPET_TITLES=SearchScope.GLOBAL_SNIPPET_TITLES.value |
90 | 141 |
|
91 | 142 | # specific project scope |
92 | | -SEARCH_SCOPE_PROJECT_NOTES:str="notes" |
| 143 | +SEARCH_SCOPE_PROJECT_NOTES=SearchScope.PROJECT_NOTES.value |
93 | 144 |
|
94 | 145 | USER_AGENT:str=f"{__title__}/{__version__}" |