Skip to content

Instantly share code, notes, and snippets.

@codeinthehole
Created February 12, 2014 11:54
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save codeinthehole/8954192 to your computer and use it in GitHub Desktop.
Save codeinthehole/8954192 to your computer and use it in GitHub Desktop.
Dirty script for finding repos to archive
import requests
import datetime
import sys
# Pass your OAuth token
token = sys.argv[1]
# Fetch all private repos (lazy - assumes only two pages)
headers = {'Authorization': 'token %s' % token}
response = requests.get(
'https://api.github.com/orgs/tangentlabs/repos?type=private&per_page=100',
headers=headers)
repos = response.json()
response = requests.get(
'https://api.github.com/orgs/tangentlabs/repos?type=private&per_page=100&page=2',
headers=headers)
repos.extend(response.json())
repo_meta = []
for repo in repos:
last_push = datetime.datetime.strptime(
repo['pushed_at'], '%Y-%m-%dT%H:%M:%SZ')
repo_meta.append((last_push, repo['name'], repo['html_url']))
repo_meta = sorted(repo_meta)
print "Private repos sorted by time since last push"
print "============================================"
for meta in repo_meta:
print " - %s - last push: %s (%s)" % (
meta[1], meta[0], meta[2])
@izidormatusov
Copy link

Alternative approach to use authorisation:

requests.get(
    'https://api.github.com/orgs/tangentlabs/repos?type=private&per_page=100',
    auth=(token, 'x-oauth-basic'))

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment