|
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 | +from enum import Enum, IntEnum |
| 19 | + |
18 | 20 | from gitlab.__version__ import __title__, __version__
|
19 | 21 |
|
| 22 | + |
| 23 | +# https://gitlab.com/gitlab-org/gitlab/-/blob/e97357824bedf007e75f8782259fe07435b64fbb/lib/gitlab/access.rb#L12-18 |
| 24 | +class AccessLevel(IntEnum): |
| 25 | + NO_ACCESS: int = 0 |
| 26 | + MINIMAL_ACCESS: int = 5 |
| 27 | + GUEST: int = 10 |
| 28 | + REPORTER: int = 20 |
| 29 | + DEVELOPER: int = 30 |
| 30 | + MAINTAINER: int = 40 |
| 31 | + OWNER: int = 50 |
| 32 | + |
| 33 | +# https://gitlab.com/gitlab-org/gitlab/-/blob/e97357824bedf007e75f8782259fe07435b64fbb/lib/gitlab/visibility_level.rb#L23-25 |
| 34 | +class Visibility(Enum): |
| 35 | + PRIVATE: str = "private" |
| 36 | + INTERNAL: str = "internal" |
| 37 | + PUBLIC: str = "public" |
| 38 | + |
| 39 | + |
| 40 | +class NotificationLevel(Enum): |
| 41 | + DISABLED: str = "disabled" |
| 42 | + PARTICIPATING: str = "participating" |
| 43 | + WATCH: str = "watch" |
| 44 | + GLOBAL: str = "global" |
| 45 | + MENTION: str = "mention" |
| 46 | + CUSTOM: str = "custom" |
| 47 | + |
| 48 | + |
| 49 | +# https://gitlab.com/gitlab-org/gitlab/-/blob/e97357824bedf007e75f8782259fe07435b64fbb/app/views/search/_category.html.haml#L10-37 |
| 50 | +class SearchScope(Enum): |
| 51 | +# all scopes (global, group and project) |
| 52 | + PROJECTS: str = "projects" |
| 53 | + ISSUES: str = "issues" |
| 54 | + MERGE_REQUESTS: str = "merge_requests" |
| 55 | + MILESTONES: str = "milestones" |
| 56 | + WIKI_BLOBS: str = "wiki_blobs" |
| 57 | + COMMITS: str = "commits" |
| 58 | + BLOBS: str = "blobs" |
| 59 | + USERS: str = "users" |
| 60 | + |
| 61 | +# specific global scope |
| 62 | + GLOBAL_SNIPPET_TITLES: str = "snippet_titles" |
| 63 | + |
| 64 | +# specific project scope |
| 65 | + PROJECT_NOTES: str = "notes" |
| 66 | + |
| 67 | + |
20 | 68 | DEFAULT_URL: str = "https://gitlab.com"
|
21 | 69 |
|
22 |
| -NO_ACCESS: int = 0 |
23 |
| -MINIMAL_ACCESS: int = 5 |
24 |
| -GUEST_ACCESS: int = 10 |
25 |
| -REPORTER_ACCESS: int = 20 |
26 |
| -DEVELOPER_ACCESS: int = 30 |
27 |
| -MAINTAINER_ACCESS: int = 40 |
28 |
| -OWNER_ACCESS: int = 50 |
29 |
| - |
30 |
| -VISIBILITY_PRIVATE: str = "private" |
31 |
| -VISIBILITY_INTERNAL: str = "internal" |
32 |
| -VISIBILITY_PUBLIC: str = "public" |
33 |
| - |
34 |
| -NOTIFICATION_LEVEL_DISABLED: str = "disabled" |
35 |
| -NOTIFICATION_LEVEL_PARTICIPATING: str = "participating" |
36 |
| -NOTIFICATION_LEVEL_WATCH: str = "watch" |
37 |
| -NOTIFICATION_LEVEL_GLOBAL: str = "global" |
38 |
| -NOTIFICATION_LEVEL_MENTION: str = "mention" |
39 |
| -NOTIFICATION_LEVEL_CUSTOM: str = "custom" |
| 70 | +NO_ACCESS = AccessLevel.NO_ACCESS.value |
| 71 | +MINIMAL_ACCESS = AccessLevel.MINIMAL_ACCESS.value |
| 72 | +GUEST_ACCESS = AccessLevel.GUEST.value |
| 73 | +REPORTER_ACCESS = AccessLevel.REPORTER.value |
| 74 | +DEVELOPER_ACCESS = AccessLevel.DEVELOPER.value |
| 75 | +MAINTAINER_ACCESS = AccessLevel.MAINTAINER.value |
| 76 | +OWNER_ACCESS = AccessLevel.OWNER.value |
| 77 | + |
| 78 | +VISIBILITY_PRIVATE = Visibility.PRIVATE.value |
| 79 | +VISIBILITY_INTERNAL = Visibility.INTERNAL.value |
| 80 | +VISIBILITY_PUBLIC = Visibility.PUBLIC.value |
| 81 | + |
| 82 | +NOTIFICATION_LEVEL_DISABLED = NotificationLevel.DISABLED.value |
| 83 | +NOTIFICATION_LEVEL_PARTICIPATING = NotificationLevel.PARTICIPATING.value |
| 84 | +NOTIFICATION_LEVEL_WATCH = NotificationLevel.WATCH.value |
| 85 | +NOTIFICATION_LEVEL_GLOBAL = NotificationLevel.GLOBAL.value |
| 86 | +NOTIFICATION_LEVEL_MENTION = NotificationLevel.MENTION.value |
| 87 | +NOTIFICATION_LEVEL_CUSTOM = NotificationLevel.CUSTOM.value |
40 | 88 |
|
41 | 89 | # Search scopes
|
42 | 90 | # all scopes (global, group and project)
|
43 |
| -SEARCH_SCOPE_PROJECTS: str = "projects" |
44 |
| -SEARCH_SCOPE_ISSUES: str = "issues" |
45 |
| -SEARCH_SCOPE_MERGE_REQUESTS: str = "merge_requests" |
46 |
| -SEARCH_SCOPE_MILESTONES: str = "milestones" |
47 |
| -SEARCH_SCOPE_WIKI_BLOBS: str = "wiki_blobs" |
48 |
| -SEARCH_SCOPE_COMMITS: str = "commits" |
49 |
| -SEARCH_SCOPE_BLOBS: str = "blobs" |
50 |
| -SEARCH_SCOPE_USERS: str = "users" |
| 91 | +SEARCH_SCOPE_PROJECTS = SearchScope.PROJECTS.value |
| 92 | +SEARCH_SCOPE_ISSUES = SearchScope.ISSUES.value |
| 93 | +SEARCH_SCOPE_MERGE_REQUESTS = SearchScope.MERGE_REQUESTS.value |
| 94 | +SEARCH_SCOPE_MILESTONES = SearchScope.MILESTONES.value |
| 95 | +SEARCH_SCOPE_WIKI_BLOBS = SearchScope.WIKI_BLOBS.value |
| 96 | +SEARCH_SCOPE_COMMITS = SearchScope.COMMITS.value |
| 97 | +SEARCH_SCOPE_BLOBS = SearchScope.BLOBS.value |
| 98 | +SEARCH_SCOPE_USERS = SearchScope.USERS.value |
51 | 99 |
|
52 | 100 | # specific global scope
|
53 |
| -SEARCH_SCOPE_GLOBAL_SNIPPET_TITLES: str = "snippet_titles" |
| 101 | +SEARCH_SCOPE_GLOBAL_SNIPPET_TITLES = SearchScope.GLOBAL_SNIPPET_TITLES.value |
54 | 102 |
|
55 | 103 | # specific project scope
|
56 |
| -SEARCH_SCOPE_PROJECT_NOTES: str = "notes" |
| 104 | +SEARCH_SCOPE_PROJECT_NOTES = SearchScope.PROJECT_NOTES.value |
57 | 105 |
|
58 | 106 | USER_AGENT: str = f"{__title__}/{__version__}"
|
0 commit comments