Skip to content

feature: OSSF-Scorecard Integration#466

Open
Shtirmann wants to merge 8 commits into
mainfrom
feature/ossf-scorecard
Open

feature: OSSF-Scorecard Integration#466
Shtirmann wants to merge 8 commits into
mainfrom
feature/ossf-scorecard

Conversation

@Shtirmann

@Shtirmann Shtirmann commented Jun 3, 2026

Copy link
Copy Markdown
Collaborator

Решает issue: #250

Интеграция OpenSSF Scorecard в отчёты OSA. Включается флагом --scorecard. Гоняем scorecard локально дважды за прогон - на исходном репо и после работы OSA.

Что внутри

  • Раннер (osa_tool/tools/repository_analysis/scorecard.py): запускает scorecard --local, парсит JSON. Бинарь (v5.5.0) скачивается автоматически и кэшируется в ~/.osa_tool/bin/; если не вышло, то секция тихо пропускается, отчёт всё равно собирается.
  • Проверки: Binary-Artifacts, Dangerous-Workflow, License, Pinned-Dependencies, Security-Policy, Token-Permissions (file-based, без GitHub API).
  • Отчёты (osa_tool/operations/analysis/repository_report/report_maker.py): в ДО - таблица оценок, в ПОСЛЕ - сравнение Before / After / Δ.
  • Тесты: парсинг, round-trip, graceful degradation.

Платформы

Linux/macOS. На Windows - баг самого scorecard с путями в --local (4 из 6 проверок дают N/A); нашёл, пофиксил, отправил в upstream: ossf/scorecard#5089. Примут - подключим Windows.

На что влияет OSA

Проверка Влияем Почему
License Да добавляем LICENSE
Security-Policy Да генерим SECURITY.md
Dangerous-Workflow Да генерим CI без опасных паттернов (N/A→10)
Token-Permissions Нет в сгенерённых workflow нет блока permissions: → токен по умолчанию write → 0
Pinned-Dependencies Нет экшены пинятся по тегу @v4, проверке нужен SHA → 0
Binary-Artifacts Нет бинарники не трогаем (закоммиченные .pt/.joblib)

Потенциальный follow-up: подправить наши же шаблоны (пиннинг экшенов по SHA + contents: read) - тогда закроем ещё Token-Permissions и Pinned-Dependencies.

Проверить

python -m osa_tool --repository <url> --scorecard

Смотреть {repo}_report.pdf и {repo}_work_summary.pdf. Без флага поведение не меняется.


Отчёт ДО:

image

Отчёт ПОСЛЕ:

image

@Shtirmann Shtirmann self-assigned this Jun 3, 2026
@Shtirmann Shtirmann added the enhancement New feature or request label Jun 3, 2026
@nicl-nno

nicl-nno commented Jun 3, 2026

Copy link
Copy Markdown
Collaborator

А есть пример нового отчета?

@Shtirmann

Shtirmann commented Jun 7, 2026

Copy link
Copy Markdown
Collaborator Author

А есть пример нового отчета?

Приложил пример

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants