gists

#!/usr/bin/env python3 “”” stakiran の公開リポジトリ一覧を取得し、作成日昇順の CSV を出力するスクリプト。

使い方: python fetch_repos.py “””

import urllib.request import json import csv import sys

USERNAME = “stakiran” PER_PAGE = 100

def fetch_all_repos(): repos = [] page = 1 while True: url = ( f”https://api.github.com/users/{USERNAME}/repos” f”?per_page={PER_PAGE}&page={page}” ) req = urllib.request.Request(url, headers={“User-Agent”: “Python”}) with urllib.request.urlopen(req) as resp: data = json.loads(resp.read().decode()) if not data: break repos.extend(data) if len(data) < PER_PAGE: break page += 1 return repos

def main(): repos = fetch_all_repos()

# created_at の昇順でソート
repos.sort(key=lambda r: r["created_at"])

outfile = "stakiran_repos.csv"
with open(outfile, "w", encoding="utf-8-sig", newline="") as f:
    writer = csv.writer(f)
    writer.writerow(["date", "repo_name", "description"])
    for r in repos:
        date = r["created_at"][:10]  # YYYY-MM-DD
        name = r["name"]
        desc = r["description"] or ""
        writer.writerow([date, name, desc])
print(f"Done: {outfile} ({len(repos)} repos)")

if name == “main”: main()