class Resources: def __init__(self, access_token, from_email): self.schedules = None self.teams = None self.session = APISession(access_token, default_from=from_email) def get_schedules(self): if self.schedules is None: log.info("Retrieving all schedules on the account. This could take several minutes.") print("Retrieving all schedules on the account. This could take several minutes.") self.schedules = self.session.list_all('schedules') log.info("Retrieving a list of users for each schedule. This could take several minutes.") for schedule in self.schedules: schedule['details'] = self.session.rget(schedule.get('self')) return self.schedules def get_teams(self): if self.teams is None: log.info("Retrieving all teams on the account. This could take several minutes.") print("Retrieving all teams on the account. This could take several minutes.") self.teams = self.session.list_all('teams') log.info("Retrieving a list of users for each team. This could take several minutes.") for team in self.teams: team['users'] = self.session.list_all('users', params={'team_ids[]': team.get('id')}) return self.teams
def save_incident_to_csv(): # Initialize Session connection with pagerduty session = APISession(api_token) # Fetch Incidents list incidents = session.list_all('incidents') # Generate Column titles columns = [ 'incident_number', 'id', 'title', 'description', 'created_at', 'last_status_change_at', 'status', 'incident_key', 'summary', 'is_mergeable', 'assigned_via', 'urgency', 'type', 'html_url' ] # Save to file with open('incidents.csv', 'w+') as file: file.write(F"{','.join(columns)}\n") # Format data and write to file. file.write(''.join([ F"{','.join([str(incident.get(column, '')) for column in columns])}\n" for incident in incidents ])) # Return the saved file name return 'incidents.csv'