Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 

Repository files navigation

Code-Tweet — GitHub 通信コード(公開・検証用)

Code Tweet(README から SNS 投稿文を生成するアプリ)が GitHub と通信する部分のコードをそのまま公開したものです。本体は非公開ですが、「GitHub から何を取得しているか」を誰でも確認できるように、この通信部分だけを切り出しています。

結論:取得するのは README とリポジトリ一覧だけです

このコードが GitHub に対して呼び出している API は、次の 2 つだけ です。

用途 呼び出している GitHub API
README の取得 GET /repos/{owner}/{repo}/readme
リポジトリ一覧の取得 GET /user/repos
  • ソースコードを取得する API(/contents/git/trees/git/blobs、リポジトリの clone/archive など)は一切呼び出していません。
  • README は最大 64KB まで。リポジトリ一覧は名前・説明・公開非公開・更新日時などのメタ情報のみを扱います。

該当コードは src/app/api/github/route.ts(README 取得)と src/app/api/repos/route.ts(リポジトリ一覧)で確認できます。grepapi.github.com を検索すれば、上記 2 つ以外のエンドポイントを叩いていないことを確認できます。

トークンの扱い

  • 非公開リポジトリへのアクセスは、Contents: Read-only に絞った fine-grained personal access token のみを受け付けます。広い権限を持つ classic PAT(repo スコープ)は拒否します(判定ロジックは src/lib/githubReadme.tsdetectPatKind)。
  • トークンはサーバー側でのみ扱い、保存時は AES-256-GCM で暗号化します。

収録ファイル

ファイル 役割
src/app/api/github/route.ts 指定リポジトリの README を取得する API ルート
src/app/api/repos/route.ts ログインユーザーのリポジトリ一覧を取得する API ルート
src/lib/githubReadme.ts URL パース、README ペイロード整形、PAT 種別判定(detectPatKind

同期について

このリポジトリは本体(非公開)からの 手動ミラーです。乖離がないか確認できるよう、同期元コミットを記載します。

  • 同期元: nakakei6439/Code-Tweet
  • 同期コミット: dba940fcd011fad6b69d71f57566fff831f154da

注意: 手動ミラーのため、本体の更新がここへ反映されるまでにずれが生じる可能性があります。将来的には共有パッケージ化や git subtree による無乖離同期を検討しています。

About

Code Tweet が GitHub と通信する部分の公開コード

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages