Skip to content

Commit 2a0fbdf

Browse files
committed
feat(objects): add support for group audit events API
1 parent 84e3247 commit 2a0fbdf

File tree

4 files changed

+67
-8
lines changed

4 files changed

+67
-8
lines changed

gitlab/tests/objects/test_audit_events.py

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,11 @@
88
import pytest
99
import responses
1010

11-
from gitlab.v4.objects.audit_events import AuditEvent, ProjectAudit
11+
from gitlab.v4.objects.audit_events import (
12+
AuditEvent,
13+
GroupAuditEvent,
14+
ProjectAuditEvent,
15+
)
1216

1317
id = 5
1418

@@ -79,14 +83,27 @@ def test_get_instance_audit_events(gl, resp_get_audit_event):
7983
assert audit_event.id == id
8084

8185

86+
def test_list_group_audit_events(group, resp_list_audit_events):
87+
audit_events = group.audit_events.list()
88+
assert isinstance(audit_events, list)
89+
assert isinstance(audit_events[0], GroupAuditEvent)
90+
assert audit_events[0].id == id
91+
92+
93+
def test_get_group_audit_events(group, resp_get_audit_event):
94+
audit_event = group.audit_events.get(id)
95+
assert isinstance(audit_event, GroupAuditEvent)
96+
assert audit_event.id == id
97+
98+
8299
def test_list_project_audit_events(project, resp_list_audit_events):
83100
audit_events = project.audit_events.list()
84101
assert isinstance(audit_events, list)
85-
assert isinstance(audit_events[0], ProjectAudit)
102+
assert isinstance(audit_events[0], ProjectAuditEvent)
86103
assert audit_events[0].id == id
87104

88105

89106
def test_get_project_audit_events(project, resp_get_audit_event):
90107
audit_event = project.audit_events.get(id)
91-
assert isinstance(audit_event, ProjectAudit)
108+
assert isinstance(audit_event, ProjectAuditEvent)
92109
assert audit_event.id == id

gitlab/v4/objects/audit_events.py

Lines changed: 43 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,18 @@
22
GitLab API:
33
https://docs.gitlab.com/ee/api/audit_events.html
44
"""
5+
import warnings
56

67
from gitlab.base import RESTManager, RESTObject
78
from gitlab.mixins import RetrieveMixin
89

910
__all__ = [
1011
"AuditEvent",
1112
"AuditEventManager",
13+
"GroupAuditEvent",
14+
"GroupAuditEventManager",
15+
"ProjectAuditEvent",
16+
"ProjectAuditEventManager",
1217
"ProjectAudit",
1318
"ProjectAuditManager",
1419
]
@@ -24,12 +29,47 @@ class AuditEventManager(RetrieveMixin, RESTManager):
2429
_list_filters = ("created_after", "created_before", "entity_type", "entity_id")
2530

2631

27-
class ProjectAudit(RESTObject):
32+
class GroupAuditEvent(RESTObject):
2833
_id_attr = "id"
2934

3035

31-
class ProjectAuditManager(RetrieveMixin, RESTManager):
36+
class GroupAuditEventManager(RetrieveMixin, RESTManager):
37+
_path = "/groups/%(group_id)s/audit_events"
38+
_obj_cls = GroupAuditEvent
39+
_from_parent_attrs = {"group_id": "id"}
40+
_list_filters = ("created_after", "created_before")
41+
42+
43+
class ProjectAuditEvent(RESTObject):
44+
_id_attr = "id"
45+
46+
def __init_subclass__(self):
47+
warnings.warn(
48+
"This class has been renamed to ProjectAuditEvent "
49+
"and will be removed in a future release.",
50+
DeprecationWarning,
51+
2,
52+
)
53+
54+
55+
class ProjectAuditEventManager(RetrieveMixin, RESTManager):
3256
_path = "/projects/%(project_id)s/audit_events"
33-
_obj_cls = ProjectAudit
57+
_obj_cls = ProjectAuditEvent
3458
_from_parent_attrs = {"project_id": "id"}
3559
_list_filters = ("created_after", "created_before")
60+
61+
def __init_subclass__(self):
62+
warnings.warn(
63+
"This class has been renamed to ProjectAuditEventManager "
64+
"and will be removed in a future release.",
65+
DeprecationWarning,
66+
2,
67+
)
68+
69+
70+
class ProjectAudit(ProjectAuditEvent):
71+
pass
72+
73+
74+
class ProjectAuditManager(ProjectAuditEventManager):
75+
pass

gitlab/v4/objects/groups.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from gitlab.base import RESTManager, RESTObject
44
from gitlab.mixins import CRUDMixin, ListMixin, ObjectDeleteMixin, SaveMixin
55
from .access_requests import GroupAccessRequestManager
6+
from .audit_events import GroupAuditEventManager
67
from .badges import GroupBadgeManager
78
from .boards import GroupBoardManager
89
from .custom_attributes import GroupCustomAttributeManager
@@ -34,6 +35,7 @@ class Group(SaveMixin, ObjectDeleteMixin, RESTObject):
3435
_short_print_attr = "name"
3536
_managers = (
3637
("accessrequests", "GroupAccessRequestManager"),
38+
("audit_events", "GroupAuditEventManager"),
3739
("badges", "GroupBadgeManager"),
3840
("boards", "GroupBoardManager"),
3941
("customattributes", "GroupCustomAttributeManager"),

gitlab/v4/objects/projects.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
from .deployments import ProjectDeploymentManager
2626
from .environments import ProjectEnvironmentManager
2727
from .events import ProjectEventManager
28-
from .audit_events import ProjectAuditManager
28+
from .audit_events import ProjectAuditEventManager
2929
from .export_import import ProjectExportManager, ProjectImportManager
3030
from .files import ProjectFileManager
3131
from .hooks import ProjectHookManager
@@ -117,7 +117,7 @@ class Project(RefreshMixin, SaveMixin, ObjectDeleteMixin, RepositoryMixin, RESTO
117117
("deployments", "ProjectDeploymentManager"),
118118
("environments", "ProjectEnvironmentManager"),
119119
("events", "ProjectEventManager"),
120-
("audit_events", "ProjectAuditManager"),
120+
("audit_events", "ProjectAuditEventManager"),
121121
("exports", "ProjectExportManager"),
122122
("files", "ProjectFileManager"),
123123
("forks", "ProjectForkManager"),

0 commit comments

Comments
 (0)