Python -Skript zum Erkennen von veralteten Benutzern in Github -Organisationen, die Mitgliederaktivitäten nicht erhaltenPython

Python-Programme
Guest
 Python -Skript zum Erkennen von veralteten Benutzern in Github -Organisationen, die Mitgliederaktivitäten nicht erhalten

Post by Guest »

Ich habe ein Python -Skript entwickelt, um veraltete Benutzer in Github -Organisationen zu erkennen. Insbesondere ein Skript, das alle Benutzer einer bestimmten Github -Organisation und das letzte Aktivitätsdatum erhält.

Code: Select all

import requests

def get_github_organization_members(token, organization):
url = f"https://api.github.com/orgs/{organization}/members"
headers = {
"Authorization": f"token {token}",
"Accept": "application/vnd.github.v3+json"
}

members = []
while url:
response = requests.get(url, headers=headers)
if response.status_code == 200:
members_page = response.json()
members.extend(members_page)
url = response.links.get('next', {}).get('url')
else:
print(f"Failed to retrieve members: {response.status_code}")
break

for member in members:
member_login = member['login']
events_url = f"https://api.github.com/users/{member_login}/events/orgs/{organization}"
events_response = requests.get(events_url, headers=headers)
if events_response.status_code == 200:
events = events_response.json()
if events:
last_event = events[0]
last_activity = last_event['created_at']
print(f"{member_login}: Last activity on {last_activity}")
else:
print(f"{member_login}: No recent activity")
else:
print(f"Failed to retrieve events for {member_login}: {events_response.status_code}")

if __name__ == "__main__":
token = ""
organization = ""
get_github_organization_members(token, organization)
Es funktioniert wie folgt:
  • Es wird eine Liste der Benutzer verwendet, die die https: //api.github verwenden .com/orgs/{organisation}/member Github -API -Methode. /user/{member_login}/events/orgs/{organisation} Githubapi -Methode. li>
    Das < /code> ist ein Github -Token (da die API -Methoden eine Authentifizierung benötigen). Es gehört zum User42 (tatsächlicher Benutzer verschleiert), das zur Organisation mit "Eigentümer" -Rolle gehört.
In Bezug auf die user42 < /code> pAT (Personal Access Token) unter Berücksichtigung der obigen API "Ereignisse" Organisationsberechtigungen (lesen) < /p>
...
"Mitglieder" Organisationsberechtigungen (lesen) < /p>
< /Blockquote>
Das Token ist also auf diese Weise konfiguriert:

Soweit so gut. p>

Code: Select all

Failed to retrieve events for user1: 404
Failed to retrieve events for user2: 404
Failed to retrieve events for ...
Failed to retrieve events for user41: 404
user42: Last activity on 2025-02-15T20:56:16Z
Failed to retrieve events for user42: 404
...
Failed to retrieve events for user79: 404
Failed to retrieve events for user80: 404
< /code>
Also: < /p>

[*] Die Mitglieder der Organisation werden korrekt erhalten (die Organisation hat 80 Benutzer, alle werden gedruckt )
 Aktivitätsinformationen werden in keinem Benutzer einbezogen, [b] außer [/b] user42 
(das, wem das Pat -Token gehört). Alle anderen Fälle geben einen 404 zurück. Vielleicht müssen die Benutzer eine Weise konfigurieren "Ich möchte, dass meine Aktivität in ihren Profilen mit der " freigegeben wird? Ein weiterer Grund? < /P>
In der Tat würde eine andere Möglichkeit, das Ziel zu erreichen, veraltete Benutzer in Github -Organisationen zu erkennen. Jedes Feedback zu diesem Sinne ist ebenfalls sehr willkommen.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post