Render a patch's vulnerability labels through one ui helper: scan, get and list each write the CVE-else-advisory rule, and their order, dedup and severity case drifted

オープン
#1,880 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
58/100
issue の種類
リファクタリング
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
rust
領域
cli

調査の方向性

Read ui/mod.rs and the referenced helpers in scan/render.rs, get.rs, and list.rs to trace the current label, ordering, deduplication, and severity behavior. Update the render byte tests in scan/render.rs and tests/cli/list_render.rs, and add a unit test for a CVE shared by two advisories. Done means all three commands use the shared UI helpers and the acceptance criteria pass.

索引モデルが issue の本文から書いたものです。

説明

agent:triaged arch-audit priority:p3 refactor

[agent] Filed by the scheduled architecture audit (audit-cli-tests). Register: register comment.

Kind: refactor. Register ID: T28 (its JSON sibling is T02, #1836; its severity sibling is T10).

Problem

The human label of a vulnerability follows one rule: its CVE ids sorted, otherwise the advisory id. That rule is written four times:

  • scan: scan/render.rs vuln_label L385-L393,`` sorted worst-severity-first by sorted_vulns L371-L381;
  • get: get.rs L372-L382, the same body;
  • get again: vuln_labels L222-L236, which flattens and dedups;
  • list: list.rs L284-L288, which prints the advisory id with its CVEs in parentheses, unsorted, and sanitized.

The copies have drifted (verified by reading):

  • Order. scan orders the Fixes: list by severity; get orders it by label.
  • Dedup. scan doesn't dedup, so a CVE shared by two advisories prints twice; get dedups.
  • Severity label. get prints it uppercased (get.rs L289). scan's preview prints the raw API label through ui::severity, which passes unknown labels through unchanged. scan's policy line prints core's canonical severity_name, so "medium" appears where the API said "moderate" (policy.rs L752).
  • Sanitizing. Only list filters the API text (T23).

Proposed change

  • Add ui::vuln_labels(&HashMap<String, VulnerabilityResponse>) -> Vec<String>: CVEs else the id, deduped, in one documented order.
  • Add one ui::severity_label(&str) that uses core's severity_name.
  • scan, get and list call these helpers. Delete render::vuln_label/sorted_vulns, get's two copies and list's inline format.

Size

4 files (ui/mod.rs, scan/render.rs, get.rs, list.rs). Roughly −50 / +25.

Acceptance criteria

  • The render byte tests in scan/render.rs and tests/cli/list_render.rs are updated deliberately, once, to the chosen order and case.
  • A new unit test shows a CVE shared by two advisories printed once.
  • No CLI file keeps its own CVE-else-id closure.
主要言語
Rust
スター
8
フォーク
2
平均マージ
18時間 47分
マージ済み PR(30日)
637

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

SocketDev/socket-patch のほかの issue

SocketDev/socket-patch の issue をすべて見る

似ている issue

Rust の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。