FACTUAL ACTIVITY RECORD · 実際の作業をもとにした活動記録
GitHub操作のsandbox境界を明文化する
network操作、local read-only、認証診断を副作用ごとに分ける
対象期間: —
目的
GitHubやremoteへ接続する操作は認証とnetworkを利用できる実行境界が必要な一方、read-only診断や主体別権限まで広げない規則が必要だった。
実装
GitHub APIとremote Git操作は必要な個別commandだけをsandbox外で実行し、local repositoryを変更しないstatus、diff、log、showはsandbox内に残す規則を定めた。認証failureは外側でsecretを表示しない最小診断を行い、再認証は人間承認と最小scopeを要求する。
- `gh`を使用するGitHub API操作と、GitHub remoteへ接続する`git fetch`、`git pull`、`git push`、`git ls-remote`などのGit操作は、macOS Keychainとnetworkへ確実にアクセスできるよう、必要な個別コマンドをサンドボックス外で実行してください。
- `.git`がサンドボックス内で読み取り専用となる環境では、`git switch`によるbranch作成・切替、`git add`、`git commit`など、local repositoryの状態を変更するGit操作も、必要な個別コマンドをサンドボックス外で実行してください。サンドボックス外での実行によって、前項の主体別の権限や変更可能な対象が広がることはありません。
- remoteへ接続せずlocal repositoryを変更しない`git status`、`git diff`、`git log`、`git show`、`git rev-parse`などのread-only操作は、サンドボックス内で実行してください。サンドボックス外へ出すコマンドは対象と副作用を明示し、必要な範囲に限定してください。図を描画しています…
確認したこと
確認結果
差分検査と全体検証が通り、tokenやcredentialを表示・保存しない境界を確認した。
Draft Targetは公開対象外だったが、運用規則自体は対象へ反映されたためapplicationStatusをappliedとした。
完了とした根拠
操作の副作用と実行環境を分離し、認証情報と主体別権限を守る規則を文書化・検証したことをもって完了とした。