Эти легкие флаги инструментов нарушают изменения перед отправкой

Эти легкие флаги инструментов нарушают изменения перед отправкой

11 июня 2025 г.

В современных проектах GO это слишком легко для случайных изменений API или тонких редакторов документации, чтобы пройтись через запросы или процессы выпуска незамеченных.

relimpactэто легкий инструмент CLI, который помогает вам понятьЧто действительно изменилосьМежду двумя git refs-с чистыми, структурированными, дружественными к человеку сообщениями.

Используйте его в трубопроводах CI, выпустите PRS или локально перед тем, как пометить новые версии.


✨ Особенности

  • 🔍 API Diff- Отслеживание разбитых публичных изменений API (структуры, интерфейсы, функции, константы, переменные).
  • 📝 Документы Diff-Раздел «Оценка разметки», чтобы выделить значимые изменения контента.
  • 🗂Другие файлы diff- Групповые файлы изменяются по расширению (.sh, .sql, .json и т. Д.) На поверхностные миграции и вспомогательные файлы.
  • 🚀 Разработано для выпуска PR -обзоров- Быстро увидеть реальное влияние изменений.
  • 🖋Отчеты об Марковде- Готов для вставки в выпуски GitHub, Slack или ChangeLogs.
  • Работает в действиях GitHub, Gitlab CI или локально- интегрируется легко.
  • 🔒 Не требуется сервер- чистый инструмент CLI.

🚀 QuickStart

Беги на GitHub PR:

relimpact --old=v1.0.0 --new=HEAD > release-impact.md

Пример вывода:

CHANGELOG

⚙ Интеграция действий GitHub

name: Release Impact on PR

on:
  pull_request:
    branches: [ master ]
    types: [ opened, synchronize, reopened ]

jobs:
  release-impact:
    name: Generate Release Impact Report
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Determine previous tag
        id: prevtag
        run: |
          git fetch --tags
          TAG_LIST=$(git tag --sort=-version:refname)
          PREV_TAG=$(echo "$TAG_LIST" | head -n2 | tail -n1)
          echo "Previous tag: $PREV_TAG"
          # Fallback to first tag if no previous
          if [ -z "$PREV_TAG" ]; then
            PREV_TAG=$(echo "$TAG_LIST" | head -n1)
            echo "Fallback to first tag: $PREV_TAG"
          fi
          echo "prev_tag=$PREV_TAG" >> $GITHUB_OUTPUT

      - name: Determine new ref
        id: newref
        run: |
          if [ "${{ github.event_name }}" = "pull_request" ]; then
            echo "new_ref=${{ github.event.pull_request.head.sha }}" >> $GITHUB_OUTPUT
          else
            echo "new_ref=HEAD" >> $GITHUB_OUTPUT
          fi

      - uses: hashmap-kz/relimpact-action@main
        with:
          old-ref: ${{ steps.prevtag.outputs.prev_tag }}
          new-ref: ${{ steps.newref.outputs.new_ref }}
          output: release-impact.md

      - name: Upload Release Impact Report
        uses: actions/upload-artifact@v4
        with:
          name: release-impact-${{ github.run_id }}-${{ github.run_attempt }}
          path: release-impact.md

📦 Установка

Домашний

brew tap hashmap-kz/homebrew-tap
brew install relimpact

Скачать ручное

👉 Скачать последний релиз


🧠 Как это работает

1⃣ Изображение

  • Использует систему типа GO и AST SAINING:
    • Обнаружает изменения разрыва: подписи метода, снятые поля, новые/удаленные типы и т. Д.
    • Игнорирует форматирование и шум комментариев.
    • На основеgolang.org/x/tools/go/packagesПолем

2⃣ изменение документов Markdown Docs

  • Раздел-распределение.mdФайлы:
    • Заголовки добавлены/удалены.
    • Ссылки и изображения меняются.
    • Раздел «Количество слов»
    • На основеgoldmarkанализатор.

3⃣ другие файлы изменяются

  • Группы изменяются по типу файла:
    • .sqlВ.shВ.jsonВ.yamlВ.conf, и т. д.
    • Использованиеgit diff --name-statusПолем

Зачем его использовать?

Большинство PRS выпуска включают в себя:

✅ API меняется
✅ Обновления DOC
✅ Сценарии миграции
✅ Другие важные настройки конфигурации

Носыройgit diffэто шумно и трудно просмотреть.
relimpactдает вамПодготовка к выпуску, сосредотачиваясь на том, что важно.


📜 Лицензия

MIT Лицензия. ВидетьЛИЦЕНЗИЯПолем


👉 Попробуйте сегодня:https://github.com/hashmap-kz/relimpact


Если вы нашли это полезным, оставьте ⭐ на GitHub - это помогает другим открыть для себя проект!

Счастливого выпуска 🚀


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE