feat(tools): 台帳への行追加を支援する add_row.py を追加 - #1896
Merged
Merged
Conversation
reconcile が未収載を検出しても、57列を手で並べる必要があり実務的でなかった。
api_snapshot.json(実機url_map)と git から機械的に決まる27列を埋め、調査が要る
31列に TODO を入れた雛形を出力する。--append で full.tsv に追記する。
自動: no/module/api_type/app/method/uri/path_params/blueprint/endpoint/
impl_func/impl_file/impl_line/auth_required/auth_method/auth_mechanism/
api_version/last_commit系4列 ほか
TODO: summary/data_op/dynamic_verified/sec_* など、ソースを読まないと書けない列
scripts/README.md のケース2を、この手順に沿って具体化した。あわせてケース2b
(既存行の修正)を分け、派生列は手編集しても消えることを明記した。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HXo9u6PoTf6VRKr3aiGvZ3
add_cols.py / add_ssrf_redirect.py / add_idempotency.py / add_dataop4.py / add_authmech.py は当時の中間ファイル運用の名残で、入出力が R+"weko3_api_list.tsv"(24列版)にハードコードされていた。いま実行すると 台帳を壊す状態だったため、$WEKO_API_INVENTORY_DIR の full.tsv を in-place 更新するようにした(第1引数でも指定可)。 参照する列位置(c[2]=api_type, c[4]=method, c[13]=impl_file, c[14]=impl_line, c[20]=auth_required, c[21]=auth_method)は現行 full.tsv と一致しており変更不要。 既存列は「その位置のまま値を差し替える」方式にした。末尾に付け直すと列順が 変わり、README の awk 例や他スクリプトの列位置前提が壊れるため。 さらに **空欄/TODO のセルだけを埋める**ようにした。台帳の既存値は機械出力 そのままではなく後から精査されており、一括再生成すると劣化することを実測で 確認したため(bola_risk の判定が逆転、data_op_detail の論理/物理の区別が失われる、 csrf_protection の指摘が消える)。意図的に作り直すときは WEKO_INVENTORY_OVERWRITE=1 を指定する。 あわせて「列数: N」の表示が古い計算式で実際と合っていなかったのを直した。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HXo9u6PoTf6VRKr3aiGvZ3
2 tasks
API インベントリ差分(件数のみ)
ベースラインとの差分API インベントリ差分レポート
判定: ✅ PASS (FAIL 0 / WARN 1)サマリ
[WARN] W6 依存パッケージの版が変化した — 3件
台帳との突き合わせスナップショット ↔ インベントリ 突き合わせ
判定: ✅ 一致 (0件)
|
API インベントリ差分(件数のみ)
ベースラインとの差分API インベントリ差分レポート
判定: ✅ PASS (FAIL 0 / WARN 1)サマリ
[WARN] W6 依存パッケージの版が変化した — 3件
台帳との突き合わせスナップショット ↔ インベントリ 突き合わせ
判定: ✅ 一致 (0件)
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
概要 (Summary)
台帳(API インベントリ)に行を追加する作業を支援するツールを追加します。ツールとドキュメントのみで、アプリケーションコードへの変更はありません。
reconcile.pyが「インベントリ未収載」を検出しても、57列を手で並べる必要があり実務的ではありませんでした。add_row.pyはapi_snapshot.json(実機 url_map)と git から機械的に決まる列を埋め、調査が要る列にTODOを入れた雛形を出力します。変更タイプ (Type of Change)
使い方
自動で埋まる列 / 埋めない列
TODO(31列)TODOはソースを読まないと書けない列です。Phase 2(静的解析)と Phase 3(実機実測)でやっていることを、その1行について行います。派生列(
priority/test_*/cleanup)は空のままでよく、後続のtest_coverage.py→prioritize.pyが付与します。ドキュメント
scripts/README.mdの「台帳の更新手順」ケース2を、この手順に沿って具体化しました。あわせて次を明記しています。TODOを残したままにするとprioritize.pyの入力が欠け、誤った優先度が付くこと(例:data_opがTODOだと破壊系の判定に入らない)動作検証
--uriは API アプリのルールが url_map 上/apiを含まない(DispatcherMiddleware でマウントされるため)点を考慮し、前置してから比較しています。注意
台帳そのものは public な本リポジトリに含まれていません。このツールは
WEKO_API_INVENTORY_DIRが指す秘密の場所の台帳を読み書きします(未設定なら理由を添えて中断します)。