check-links accepts --stale-days=N and then ignores it (365 is used)
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 78/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- javascript, node.js
調査の方向性
site/check-links.mjsの99~105行付近とsite/lib/link-check.mjsの54~63行付近を読み、解析されたフラグがstaleDaysFromに渡される経路をたどってください。--stale-days=30と--stale-days 30の両方、および無効な値について、該当するテストを実行してください。両方の有効な形式で30日間の期限が使われ、無効な値は引き続き失敗すれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Summary
check-links parses argv twice: the strict cliArgs parse accepts --stale-days=30, then staleDaysFrom(process.argv) scans for the exact token --stale-days, misses the = form and falls back to 365 days without a warning.
Where
site/check-links.mjs:99-105site/lib/link-check.mjs:54-63(staleDaysFrom)
Details
readArgs returns { "stale-days": "30" } while staleDaysFrom(['node','x','--stale-days=30']) returns { days: 365 }. This is the last script that still hand-parses argv after the strict-flags change.
Impact
A maintainer asking for a shorter staleness window locally silently gets the 365-day report. The weekly workflow passes no flag, so CI is unaffected.
Steps to reproduce
node site/check-links.mjs --stale-days=30 --report r.md- The stale list uses a 365-day cutoff.
Suggested fix
Validate the parsed value (flags["stale-days"]) in staleDaysFrom instead of re-reading process.argv, and drop the second parse.
Acceptance criteria
-
--stale-days=30and--stale-days 30both give a 30-day cutoff - Invalid values still fail as they do today
Getting started
- Relevant files:
site/check-links.mjs,site/lib/link-check.mjs - Run the tests:
npm test; the full local gate isnpm run check(Node 22+, no install step) - Related docs:
CONTRIBUTING.md,site/README.md
Related: #82
Filed by repo-audit/full-audit at 4adb944. Severity: low. Effort: S. audit-key: bug|site/check-links.mjs|staleDaysFrom
- 主要言語
- JavaScript
- スター
- 58
- フォーク
- 15
- 平均マージ
- 1日 15時間
- マージ済み PR(30日)
- 12
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
TMHSDigital/Free-Game-Dev-Assets のほかの issue
-
enhancement good first issue priority: medium
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
TMHSDigital/Free-Game-Dev-Assets#272 ·
メンテナーはふだん 1 日以内に返信
-
documentation good first issue priority: low
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
TMHSDigital/Free-Game-Dev-Assets#270 ·
メンテナーはふだん 1 日以内に返信
-
documentation priority: medium
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
TMHSDigital/Free-Game-Dev-Assets#269 ·
メンテナーはふだん 1 日以内に返信
-
good first issue priority: low tests
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
TMHSDigital/Free-Game-Dev-Assets#267 ·
メンテナーはふだん 1 日以内に返信
-
good first issue priority: low tests
難易度 2/5 1〜3時間 初心者へのやさしさ 83/100
TMHSDigital/Free-Game-Dev-Assets#266 ·
メンテナーはふだん 1 日以内に返信
TMHSDigital/Free-Game-Dev-Assets の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
microsoft/TypeScript#65370 ·
メンテナーはふだん 1 日以内に返信
-
metrics priority: medium
難易度 1/5 1〜3時間 初心者へのやさしさ 86/100
LearningCircuit/local-deep-research#8336 ·
メンテナーはふだん 1 日以内に返信
-
ace bug yaml
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
メンテナーはふだん 1 日以内に返信
-
svelte: whitespace-only edit leaves an empty todo, edits not trimmed, filter not restored on reloadオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
-
agentic-workflows
難易度 1/5 1時間未満 初心者へのやさしさ 85/100
githubnext/gh-cao#20316 ·
メンテナーはふだん 1 日以内に返信