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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy