Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit6660dbe

Browse files
author
Clayton Walker
committed
feat: add project audit endpoint
1 parentd4e7a03 commit6660dbe

File tree

3 files changed

+104
-0
lines changed

3 files changed

+104
-0
lines changed
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
"""
2+
GitLab API:
3+
https://docs.gitlab.com/ee/api/audit_events.html#project-audit-events
4+
"""
5+
6+
importre
7+
8+
importpytest
9+
importresponses
10+
11+
fromgitlab.v4.objects.audit_eventsimportProjectAudit
12+
13+
id=5
14+
15+
audit_events_content= {
16+
"id":5,
17+
"author_id":1,
18+
"entity_id":7,
19+
"entity_type":"Project",
20+
"details": {
21+
"change":"prevent merge request approval from reviewers",
22+
"from":"",
23+
"to":"true",
24+
"author_name":"Administrator",
25+
"target_id":7,
26+
"target_type":"Project",
27+
"target_details":"twitter/typeahead-js",
28+
"ip_address":"127.0.0.1",
29+
"entity_path":"twitter/typeahead-js",
30+
},
31+
"created_at":"2020-05-26T22:55:04.230Z",
32+
}
33+
34+
audit_events_url=re.compile(
35+
r"http://localhost/api/v4/(((groups|projects)/1)|(admin/ci))/audit_events"
36+
)
37+
38+
audit_events_url_id=re.compile(
39+
rf"http://localhost/api/v4/(((groups|projects)/1)|(admin/ci))/audit_events/{id}"
40+
)
41+
42+
43+
@pytest.fixture
44+
defresp_list_audit_events():
45+
withresponses.RequestsMock()asrsps:
46+
rsps.add(
47+
method=responses.GET,
48+
url=audit_events_url,
49+
json=[audit_events_content],
50+
content_type="application/json",
51+
status=200,
52+
)
53+
yieldrsps
54+
55+
56+
@pytest.fixture
57+
defresp_get_variable():
58+
withresponses.RequestsMock()asrsps:
59+
rsps.add(
60+
method=responses.GET,
61+
url=audit_events_url_id,
62+
json=audit_events_content,
63+
content_type="application/json",
64+
status=200,
65+
)
66+
yieldrsps
67+
68+
69+
deftest_list_project_audit_events(project,resp_list_audit_events):
70+
audit_events=project.audit_events.list()
71+
assertisinstance(audit_events,list)
72+
assertisinstance(audit_events[0],ProjectAudit)
73+
assertaudit_events[0].id==id
74+
75+
76+
deftest_get_project_audit_events(project,resp_get_variable):
77+
audit_event=project.audit_events.get(id)
78+
assertisinstance(audit_event,ProjectAudit)
79+
assertaudit_event.id==id

‎gitlab/v4/objects/audit_events.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
"""
2+
GitLab API:
3+
https://docs.gitlab.com/ee/api/audit_events.html#project-audit-events
4+
"""
5+
6+
fromgitlab.baseimport*# noqa
7+
fromgitlab.mixinsimport*# noqa
8+
9+
__all__= [
10+
"ProjectAudit",
11+
"ProjectAuditManager",
12+
]
13+
14+
15+
classProjectAudit(RESTObject):
16+
_id_attr="id"
17+
18+
19+
classProjectAuditManager(RetrieveMixin,RESTManager):
20+
_path="/projects/%(project_id)s/audit_events"
21+
_obj_cls=ProjectAudit
22+
_from_parent_attrs= {"project_id":"id"}
23+
_list_filters= ("created_after","created_before")

‎gitlab/v4/objects/projects.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
from .deploymentsimportProjectDeploymentManager
1717
from .environmentsimportProjectEnvironmentManager
1818
from .eventsimportProjectEventManager
19+
from .audit_eventsimportProjectAuditManager
1920
from .export_importimportProjectExportManager,ProjectImportManager
2021
from .filesimportProjectFileManager
2122
from .hooksimportProjectHookManager
@@ -100,6 +101,7 @@ class Project(SaveMixin, ObjectDeleteMixin, RESTObject):
100101
("deployments","ProjectDeploymentManager"),
101102
("environments","ProjectEnvironmentManager"),
102103
("events","ProjectEventManager"),
104+
("audit_events","ProjectAuditManager"),
103105
("exports","ProjectExportManager"),
104106
("files","ProjectFileManager"),
105107
("forks","ProjectForkManager"),

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp