module/gitlab_api.py
module.gitlab_api
GitlabAPI
GitlabAPI
Bases: Session
GitlabAPI
Parameters:
Name |
Type |
Description |
Default |
token |
str
|
API token. |
required
|
Attributes:
Name |
Type |
Description |
url |
str
|
https://gitlab.com/api/v4
|
token |
str
|
Specified API token. |
Note
The headers
will update the Authorization
in Bearer {self.token}
.
The API docs: https://docs.gitlab.com/ee/api/
Source code in module/gitlab_api.py
| class GitlabAPI(Session):
''' GitlabAPI
Args:
token (str): API token.
Attributes:
url (str): `https://gitlab.com/api/v4`
token (str): Specified API token.
Note:
The `headers` will update the `Authorization` in `Bearer {self.token}`.
The API docs: [https://docs.gitlab.com/ee/api/](https://docs.gitlab.com/ee/api/)
'''
def __init__(self, token: str) -> None:
super().__init__()
self.url = 'https://gitlab.com/api/v4'
self.token = token
self.headers.update({'Authorization': f'Bearer {self.token}'})
def get_project(self, project_id: str) -> Response:
''' Get Project
Args:
project_id (str): Gitlab's project id.
Returns:
Return the [requests.Response][] object.
'''
return self.get(url=f'{self.url}/projects/{project_id}')
def post_invite_to_project(self, project_id: str, email: str,
access_level: int = 30) -> Response:
''' Post invite to project
Args:
project_id (str): Gitlab's project id.
email (str): Email address.
access_level (int): `30` is for `Developer`.
References:
- [#valid-access-levels](https://docs.gitlab.com/ee/\
api/invitations.html#valid-access-levels)
- [https://docs.gitlab.com/ee/user/permissions.html\
#project-members-permissions](https://docs.gitlab.com/ee/\
user/permissions.html#project-members-permissions)
'''
return self.post(url=f'{self.url}/projects/{project_id}/invitations',
data={'email': email, 'access_level': access_level})
def delete_invite_to_project(self, project_id: str, email: str) -> Response:
''' DELETE invite to project
Args:
project_id (str): Gitlab's project id.
email (str): Email address.
Returns:
Return the [requests.Response][] object.
'''
return self.delete(url=f'{self.url}/projects/{project_id}/invitations/{email}')
|
delete_invite_to_project
delete_invite_to_project(
project_id: str, email: str
) -> Response
DELETE invite to project
Parameters:
Name |
Type |
Description |
Default |
project_id |
str
|
Gitlab's project id. |
required
|
email |
str
|
Email address. |
required
|
Returns:
Source code in module/gitlab_api.py
| def delete_invite_to_project(self, project_id: str, email: str) -> Response:
''' DELETE invite to project
Args:
project_id (str): Gitlab's project id.
email (str): Email address.
Returns:
Return the [requests.Response][] object.
'''
return self.delete(url=f'{self.url}/projects/{project_id}/invitations/{email}')
|
get_project
get_project(project_id: str) -> Response
Get Project
Parameters:
Name |
Type |
Description |
Default |
project_id |
str
|
Gitlab's project id. |
required
|
Returns:
Source code in module/gitlab_api.py
| def get_project(self, project_id: str) -> Response:
''' Get Project
Args:
project_id (str): Gitlab's project id.
Returns:
Return the [requests.Response][] object.
'''
return self.get(url=f'{self.url}/projects/{project_id}')
|
post_invite_to_project
post_invite_to_project(
project_id: str, email: str, access_level: int = 30
) -> Response
Post invite to project
Parameters:
Name |
Type |
Description |
Default |
project_id |
str
|
Gitlab's project id. |
required
|
email |
str
|
Email address. |
required
|
access_level |
int
|
30 is for Developer .
|
30
|
References
Source code in module/gitlab_api.py
| def post_invite_to_project(self, project_id: str, email: str,
access_level: int = 30) -> Response:
''' Post invite to project
Args:
project_id (str): Gitlab's project id.
email (str): Email address.
access_level (int): `30` is for `Developer`.
References:
- [#valid-access-levels](https://docs.gitlab.com/ee/\
api/invitations.html#valid-access-levels)
- [https://docs.gitlab.com/ee/user/permissions.html\
#project-members-permissions](https://docs.gitlab.com/ee/\
user/permissions.html#project-members-permissions)
'''
return self.post(url=f'{self.url}/projects/{project_id}/invitations',
data={'email': email, 'access_level': access_level})
|
Last update:
June 10, 2022