diff options
author | Nejc Habjan <hab.nejc@gmail.com> | 2021-03-07 12:50:26 +0100 |
---|---|---|
committer | Nejc Habjan <hab.nejc@gmail.com> | 2021-03-07 15:00:06 +0100 |
commit | 2a0fbdf9fe98da6c436230be47b0ddb198c7eca9 (patch) | |
tree | 1d5c585508385b339d0b60224b74b7cc47a6cf92 | |
parent | 84e3247d0cd3ddb1f3aa0ac91fb977c3e1e197b5 (diff) | |
download | gitlab-feat/all-audit-events.tar.gz |
feat(objects): add support for group audit events APIfeat/all-audit-events
-rw-r--r-- | gitlab/tests/objects/test_audit_events.py | 23 | ||||
-rw-r--r-- | gitlab/v4/objects/audit_events.py | 46 | ||||
-rw-r--r-- | gitlab/v4/objects/groups.py | 2 | ||||
-rw-r--r-- | gitlab/v4/objects/projects.py | 4 |
4 files changed, 67 insertions, 8 deletions
diff --git a/gitlab/tests/objects/test_audit_events.py b/gitlab/tests/objects/test_audit_events.py index 8da77ae..aba778b 100644 --- a/gitlab/tests/objects/test_audit_events.py +++ b/gitlab/tests/objects/test_audit_events.py @@ -8,7 +8,11 @@ import re import pytest import responses -from gitlab.v4.objects.audit_events import AuditEvent, ProjectAudit +from gitlab.v4.objects.audit_events import ( + AuditEvent, + GroupAuditEvent, + ProjectAuditEvent, +) id = 5 @@ -79,14 +83,27 @@ def test_get_instance_audit_events(gl, resp_get_audit_event): assert audit_event.id == id +def test_list_group_audit_events(group, resp_list_audit_events): + audit_events = group.audit_events.list() + assert isinstance(audit_events, list) + assert isinstance(audit_events[0], GroupAuditEvent) + assert audit_events[0].id == id + + +def test_get_group_audit_events(group, resp_get_audit_event): + audit_event = group.audit_events.get(id) + assert isinstance(audit_event, GroupAuditEvent) + assert audit_event.id == id + + def test_list_project_audit_events(project, resp_list_audit_events): audit_events = project.audit_events.list() assert isinstance(audit_events, list) - assert isinstance(audit_events[0], ProjectAudit) + assert isinstance(audit_events[0], ProjectAuditEvent) assert audit_events[0].id == id def test_get_project_audit_events(project, resp_get_audit_event): audit_event = project.audit_events.get(id) - assert isinstance(audit_event, ProjectAudit) + assert isinstance(audit_event, ProjectAuditEvent) assert audit_event.id == id diff --git a/gitlab/v4/objects/audit_events.py b/gitlab/v4/objects/audit_events.py index a4437be..c99856a 100644 --- a/gitlab/v4/objects/audit_events.py +++ b/gitlab/v4/objects/audit_events.py @@ -2,6 +2,7 @@ GitLab API: https://docs.gitlab.com/ee/api/audit_events.html """ +import warnings from gitlab.base import RESTManager, RESTObject from gitlab.mixins import RetrieveMixin @@ -9,6 +10,10 @@ from gitlab.mixins import RetrieveMixin __all__ = [ "AuditEvent", "AuditEventManager", + "GroupAuditEvent", + "GroupAuditEventManager", + "ProjectAuditEvent", + "ProjectAuditEventManager", "ProjectAudit", "ProjectAuditManager", ] @@ -24,12 +29,47 @@ class AuditEventManager(RetrieveMixin, RESTManager): _list_filters = ("created_after", "created_before", "entity_type", "entity_id") -class ProjectAudit(RESTObject): +class GroupAuditEvent(RESTObject): _id_attr = "id" -class ProjectAuditManager(RetrieveMixin, RESTManager): +class GroupAuditEventManager(RetrieveMixin, RESTManager): + _path = "/groups/%(group_id)s/audit_events" + _obj_cls = GroupAuditEvent + _from_parent_attrs = {"group_id": "id"} + _list_filters = ("created_after", "created_before") + + +class ProjectAuditEvent(RESTObject): + _id_attr = "id" + + def __init_subclass__(self): + warnings.warn( + "This class has been renamed to ProjectAuditEvent " + "and will be removed in a future release.", + DeprecationWarning, + 2, + ) + + +class ProjectAuditEventManager(RetrieveMixin, RESTManager): _path = "/projects/%(project_id)s/audit_events" - _obj_cls = ProjectAudit + _obj_cls = ProjectAuditEvent _from_parent_attrs = {"project_id": "id"} _list_filters = ("created_after", "created_before") + + def __init_subclass__(self): + warnings.warn( + "This class has been renamed to ProjectAuditEventManager " + "and will be removed in a future release.", + DeprecationWarning, + 2, + ) + + +class ProjectAudit(ProjectAuditEvent): + pass + + +class ProjectAuditManager(ProjectAuditEventManager): + pass diff --git a/gitlab/v4/objects/groups.py b/gitlab/v4/objects/groups.py index d96acfd..e859e0e 100644 --- a/gitlab/v4/objects/groups.py +++ b/gitlab/v4/objects/groups.py @@ -3,6 +3,7 @@ from gitlab import exceptions as exc from gitlab.base import RESTManager, RESTObject from gitlab.mixins import CRUDMixin, ListMixin, ObjectDeleteMixin, SaveMixin from .access_requests import GroupAccessRequestManager +from .audit_events import GroupAuditEventManager from .badges import GroupBadgeManager from .boards import GroupBoardManager from .custom_attributes import GroupCustomAttributeManager @@ -34,6 +35,7 @@ class Group(SaveMixin, ObjectDeleteMixin, RESTObject): _short_print_attr = "name" _managers = ( ("accessrequests", "GroupAccessRequestManager"), + ("audit_events", "GroupAuditEventManager"), ("badges", "GroupBadgeManager"), ("boards", "GroupBoardManager"), ("customattributes", "GroupCustomAttributeManager"), diff --git a/gitlab/v4/objects/projects.py b/gitlab/v4/objects/projects.py index c187ba9..f4de18d 100644 --- a/gitlab/v4/objects/projects.py +++ b/gitlab/v4/objects/projects.py @@ -25,7 +25,7 @@ from .deploy_tokens import ProjectDeployTokenManager from .deployments import ProjectDeploymentManager from .environments import ProjectEnvironmentManager from .events import ProjectEventManager -from .audit_events import ProjectAuditManager +from .audit_events import ProjectAuditEventManager from .export_import import ProjectExportManager, ProjectImportManager from .files import ProjectFileManager from .hooks import ProjectHookManager @@ -117,7 +117,7 @@ class Project(RefreshMixin, SaveMixin, ObjectDeleteMixin, RepositoryMixin, RESTO ("deployments", "ProjectDeploymentManager"), ("environments", "ProjectEnvironmentManager"), ("events", "ProjectEventManager"), - ("audit_events", "ProjectAuditManager"), + ("audit_events", "ProjectAuditEventManager"), ("exports", "ProjectExportManager"), ("files", "ProjectFileManager"), ("forks", "ProjectForkManager"), |