Generator Dependabota
Gotowy plik .github/dependabot.yml dla 9 ekosystemów: harmonogram, limit PR, grupy, etykiety i pomijanie wersji major.
-
1Wprowadź dane
Wpisz treść, wklej tekst lub załaduj plik z dysku. -
2Kliknij przycisk
Narzędzie natychmiast przetworzy Twoje dane w przeglądarce. -
3Pobierz wynik
Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
return "Wynik gotowy w 0.1s";
}
„/” to katalog główny repozytorium; dla monorepo podaj np. /frontend. GitHub Actions zawsze dostaje „/” (Dependabot czyta wtedy .github/workflows).
Nazwy użytkowników lub zespołów oddzielone przecinkami. Zespół zapisz jako organizacja/zespół.
Plik .github/dependabot.yml
Zapisz plik jako .github/dependabot.yml w gałęzi domyślnej repozytorium; Dependabot zacznie otwierać pull requesty według harmonogramu.
Harmonogram
Godzina: domyślna
Limit PR
Maks. otwartych PR
Limit × liczba ekosystemów
Linie YAML
.github/dependabot.yml
Zapisz wynik jako .github/dependabot.yml. Sekcja groups łączy zgodne aktualizacje w mniejszą liczbę pull requestów.
Ściąga: najważniejsze klucze dependabot.yml
| Klucz | Co ustawia | Przykład |
|---|---|---|
| version | Wersja formatu pliku; zawsze 2. | 2 |
| package-ecosystem | Menedżer pakietów, którego zależności aktualizować. | "npm" |
| directory | Katalog z plikiem manifestu, liczony od katalogu głównego repozytorium. | "/frontend" |
| schedule.interval | Jak często sprawdzać nowe wersje. | "weekly" |
| schedule.day | Dzień tygodnia; działa przy interval: weekly. | "monday" |
| schedule.time | Godzina sprawdzenia (GG:MM), bez strefy czasowej w UTC. | "05:00" |
| schedule.timezone | Strefa czasowa IANA dla schedule.time. | "Europe/Warsaw" |
| open-pull-requests-limit | Ile otwartych PR z aktualizacjami wersji naraz (domyślnie 5). | 10 |
| commit-message.prefix | Prefiks wiadomości commita i tytułu PR. | "chore" |
| labels | Własne etykiety nadawane pull requestom. | ["dependencies"] |
| reviewers | Użytkownicy lub zespoły proszeni o recenzję. | ["my-org/devs"] |
| ignore | Zależności lub typy aktualizacji do pominięcia. | dependency-name: "*" |
| groups | Łączy pasujące aktualizacje w jeden pull request. | patterns: ["*"] |
Gdzie zapisać plik
Plik musi leżeć w .github/dependabot.yml w gałęzi domyślnej. Każdy wpis w updates to jeden ekosystem w jednym katalogu; dla monorepo z kilkoma package.json dodaj osobne wpisy z różnym directory.
Grupowanie a liczba PR
Bez groups każda zależność dostaje osobny pull request. Grupa z patterns: ["*"] łączy aktualizacje ekosystemu w jeden PR. Opcja „tylko minor i patch” zostawia aktualizacje major jako osobne PR, łatwiejsze do przejrzenia.
Pomijanie wersji major
Reguła ignore z version-update:semver-major sprawia, że Dependabot nie proponuje nowych wersji głównych, które wg SemVer mogą łamać zgodność. Takie podbicia trzeba wtedy robić ręcznie i świadomie.
Limit otwartych PR
open-pull-requests-limit działa osobno dla każdego wpisu: 3 ekosystemy z limitem 5 to do 15 otwartych PR. Domyślna wartość to 5. Limit 0 wstrzymuje PR z aktualizacjami wersji; aktualizacje bezpieczeństwa mają osobny limit.
Oceń to narzędzie:
Powiązane narzędzia
Inne narzędzia, które mogą Ci się przydaćGenerator Dependabot – gotowy plik dependabot.yml
Generator Dependabot tworzy konfigurację automatycznych aktualizacji zależności dla repozytorium GitHub. Wybierasz ekosystemy, katalog z manifestem, harmonogram (dzień, godzinę i strefę czasową), limit otwartych pull requestów, prefiks commita, etykiety i recenzentów, a narzędzie składa poprawny YAML w formacie version: 2, gotowy do skopiowania lub pobrania jako .github/dependabot.yml.
Co opisuje konfiguracja Dependabota
Każda pozycja listy updates wskazuje menedżer pakietów, katalog z manifestem i harmonogram. Generator tworzy osobny wpis dla każdego zaznaczonego ekosystemu, dlatego można w jednym repozytorium aktualizować na przykład paczki npm, zależności Composera, obrazy w Dockerfile i akcje używane przez workflow.
| Pole | Znaczenie | Wartość z generatora |
|---|---|---|
version | wersja schematu konfiguracji | zawsze 2 |
package-ecosystem | typ manifestu zależności | jeden z dziewięciu obsługiwanych identyfikatorów |
directory | położenie manifestu w repozytorium | domyślnie /, można podać np. /frontend; dla GitHub Actions zawsze / |
schedule | częstotliwość i pora sprawdzania | daily, weekly albo monthly, opcjonalnie day, time, timezone |
open-pull-requests-limit | maksymalna liczba otwartych PR na wpis | liczba całkowita od 0 do 100 |
labels, reviewers | etykiety i osoby do recenzji | do 10 etykiet, do 15 recenzentów |
ignore | pomijane aktualizacje | wersje major wszystkich zależności, po zaznaczeniu opcji |
groups | łączenie zgodnych aktualizacji | jedna grupa ze wzorcem * na ekosystem, wszystkie lub tylko minor i patch |
Obsługiwane ekosystemy i manifesty
Lista obejmuje npm, Composer, pip, Go modules, Cargo, Bundler, Docker, GitHub Actions i Terraform. Identyfikatory w YAML są zgodne ze składnią GitHuba, między innymi gomod dla go.mod oraz github-actions dla plików w .github/workflows. Dla npm Dependabot czyta package.json razem z plikiem blokady (package-lock.json, yarn.lock lub pnpm-lock.yaml), dla pip requirements.txt, pyproject.toml albo Pipfile.
Pole katalogu dotyczy wszystkich zaznaczonych ekosystemów poza GitHub Actions, który zawsze dostaje /: przy tej wartości Dependabot sam szuka workflow w .github/workflows. Jeśli manifesty leżą w różnych podkatalogach (np. /frontend i /api), wygeneruj plik dla jednego katalogu, a dla drugiego skopiuj wpis i zmień directory.
Jak przygotować plik krok po kroku
- Wybierz gotowy zestaw (PHP, Node, Python, Go, Rust) albo zaznacz ekosystemy ręcznie. Co najmniej jeden wpis jest wymagany, inaczej lista
updatesbyłaby pusta. - Ustaw harmonogram. Codzienna kontrola daje szybkie poprawki, tygodniowa zwykle ogranicza hałas, a miesięczna pasuje do stabilnych projektów o wolnym cyklu. Przy trybie tygodniowym możesz wskazać dzień, a godzinę podajesz w formacie GG:MM. Bez strefy czasowej godzina oznacza UTC; strefa (np.
Europe/Warsaw) wymaga podania godziny. - Podaj limit pull requestów. Wartość
0wstrzymuje aktualizacje wersji, natomiast mały dodatni limit pomaga zespołowi przeglądać zmiany regularnie. - Opcjonalnie wpisz recenzentów i etykiety po przecinku, włącz grupowanie lub pomijanie wersji major. Nazwy są walidowane, a wartości bezpiecznie cytowane, więc znaki wejściowe nie mogą zepsuć struktury YAML.
- Kliknij „Generuj”, skopiuj albo pobierz wynik, zapisz go pod dokładną ścieżką
.github/dependabot.yml, wykonaj commit i sprawdź zakładkę Insights → Dependency graph → Dependabot.
Przykład: zestaw PHP (Composer i GitHub Actions), harmonogram tygodniowy w poniedziałek o 05:00 w strefie Europe/Warsaw, limit 5, prefiks chore i grupowanie tylko minor i patch dają plik z dwoma wpisami i 30 liniami YAML. Każdy wpis ma własny limit, więc naraz może być otwartych do 2 × 5 = 10 pull requestów z aktualizacjami wersji. Tę liczbę narzędzie pokazuje w podsumowaniu jako „Maks. otwartych PR”.
Przed commitem możesz wkleić wynik do walidatora YAML. Jeżeli konfiguracja obejmuje obrazy kontenerów, generator Dockerfile pomoże przygotować plik z jawną wersją obrazu. Automatyzację testów po otwarciu pull requestu można uzupełnić konfiguracją z generatora GitLab CI w projektach hostowanych na GitLabie.
Grupowanie aktualizacji i kontrola ryzyka
Bez grup Dependabot może otworzyć oddzielny pull request dla każdej biblioteki. Włączenie groups tworzy dla każdego ekosystemu grupę o nazwie w rodzaju npm-dependencies i obejmuje wzorcem * wszystkie zależności. To ogranicza kolejkę przeglądu, lecz większy PR trudniej diagnozować, gdy jedna aktualizacja psuje testy. Dlatego generator ma drugi tryb: „tylko minor i patch” dodaje do grupy update-types: ["minor", "patch"], a aktualizacje major trafiają do osobnych PR.
Opcja pomijania wersji major dopisuje regułę ignore z dependency-name: "*" i version-update:semver-major. Dependabot przestaje wtedy proponować nowe wersje główne, które według SemVer mogą łamać zgodność, więc takie podbicia trzeba robić ręcznie.
Limit PR nie zastępuje testów. Każda automatyczna zmiana powinna uruchamiać CI, analizę statyczną oraz testy integracyjne. Dla aktualizacji obrazów dobrze jest dodatkowo zbudować kontener i przeskanować go przed scaleniem. Sam Dependabot proponuje zmianę; decyzję o wdrożeniu nadal podejmuje zespół.
Recenzenci, etykiety, commity i bezpieczeństwo
Generator usuwa początkowy znak @ z nazw recenzentów, usuwa duplikaty i akceptuje nazwy użytkowników lub zespołów zapisane jako organizacja/zespół. Etykiety (do 10, każda do 50 znaków) trafiają do labels; etykieta musi istnieć w repozytorium, inaczej GitHub jej nie nada. Prefiks (do 50 znaków) trafia do commit-message.prefix jako bezpiecznie zakodowany ciąg. Najlepiej użyć konwencji znanej zespołowi, na przykład chore albo deps, aby reguły changeloga i automatyzacji poprawnie klasyfikowały commity.
registries; wartości wrażliwych nie wklejaj bezpośrednio do pliku śledzonego przez Git.Generator nie tworzy sekcji rejestrów i nie przyjmuje sekretów, dzięki czemu wynik nie zawiera przypadkowo ujawnionych danych. Po zapisaniu pliku sprawdź też alerty bezpieczeństwa i zasady ochrony gałęzi. Pull request aktualizacyjny powinien przejść te same bramki jakości co zmiana autora.
Najczęściej zadawane pytania
Gdzie zapisać plik dependabot.yml?
Dokładnie w .github/dependabot.yml w domyślnej gałęzi repozytorium. Inna nazwa lub katalog nie zostaną odczytane jako konfiguracja Dependabota.
Czy można obsłużyć monorepo?
Tak. W polu katalogu podaj ścieżkę od korzenia repozytorium, np. /frontend. Dla każdego kolejnego katalogu z osobnym manifestem dodaj wpis tego samego ekosystemu z innym directory albo użyj klucza directories z listą ścieżek.
Co oznacza limit równy zero?
Wartość 0 w open-pull-requests-limit pozwala tymczasowo wyłączyć pull requesty aktualizacji wersji dla danego wpisu bez usuwania całej konfiguracji. Aktualizacje bezpieczeństwa mają osobny limit.
O której godzinie Dependabot sprawdza zależności?
Jeśli nie podasz time, generator nie dopisuje tego klucza i Dependabot użyje swojej domyślnej pory. Podana godzina bez timezone jest liczona w UTC, więc 05:00 UTC to w Polsce 6:00 zimą i 7:00 latem.
Czy grupowanie obejmuje poprawki bezpieczeństwa?
Zachowanie zależy od opcji i rodzaju alertu. Po wdrożeniu sprawdź politykę repozytorium, ponieważ priorytetową poprawkę bezpieczeństwa czasem lepiej scalać osobno niż czekać na większą grupę zmian.
Jak pominąć aktualizacje major?
Zaznacz opcję „Pomijaj aktualizacje major”. Generator doda do każdego wpisu sekcję ignore z version-update:semver-major dla wszystkich zależności; wyjątki dla pojedynczych pakietów dopiszesz ręcznie po skopiowaniu wyniku.