#!/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()