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 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.
...
"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
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.