aboutsummaryrefslogtreecommitdiff
path: root/applications/gitlab/provisioning.py
blob: bd0e6952200f9c94b8cdb0a9c4444b8e7f1ef121 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
"""
Track user creation and deletion events in GitLab with timestamps.
"""

import requests

BASE_URL = "https://gitlab.com/api/v4"
PRIVATE_TOKEN = "your_access_token"
GROUP_ID = "your_group_id"
TIMEOUT = 30

URL = f"{BASE_URL}/groups/{GROUP_ID}/audit_events"
HEADERS = {"PRIVATE-TOKEN": PRIVATE_TOKEN}

if __name__ == "__main__":
    # Get audit events
    response = requests.get(URL, headers=HEADERS, timeout=TIMEOUT)
    if response.status_code == 200:
        audit_events = response.json()
        for event in audit_events:
            if event["entity_type"] == "User" or event["entity_type"] == "Group":
                action = event["event_name"]
                member_id = event["details"].get("member_id")
                created_at = event["created_at"]
                author = event["author_id"]
                if action in ["member_created", "member_destroyed", "member_updated"]:
                    print(
                        f"Group: {GROUP_ID}\n",
                        f"   {created_at} : Action: {action}, Member: {member_id}, Author: {author}",
                    )
    else:
        print(f"Failed to fetch audit events: {response.status_code}, {response.text}")