# GitHub Actions → SMS

Lokalna akcja złożona, bez instalacji aplikacji z Marketplace. Wymaga Node.js 18+ i Bash na runnerze. Skopiuj `action.yml` i `send.mjs` do `.github/actions/przypominamy-sms/` w swoim repozytorium.

Dodaj sekrety repozytorium `PRZYP_API_KEY` (zakres `send`) i `PRZYP_SMS_TO`. Zainstalowana akcja wymaga wcześniejszego checkoutu repozytorium. Dodaj po kroku wdrożenia:

```yaml
- name: SMS o nieudanym wdrożeniu
  if: failure()
  uses: ./.github/actions/przypominamy-sms
  with:
    api-key: ${{ secrets.PRZYP_API_KEY }}
    to: ${{ secrets.PRZYP_SMS_TO }}
    text: 'Wdrożenie nie powiodło się. Sprawdź GitHub Actions.'
    idempotency-key: 'deploy-failed-${{ github.repository_id }}-${{ github.run_id }}'
    dry-run: 'true'
```

Najpierw sprawdź `dry-run: 'true'` (zero żądań do API). Następnie ustaw `false` i przetestuj kluczem `pk_test_` na własnym zweryfikowanym numerze. Po aktywacji konta podmień sekret na nowy `pk_live_`. Cena jest zgodna z kontem; `sent`/`queued` oznacza przyjęcie, doręczenie sprawdzaj w panelu.

Klucz operacji nie zawiera `run_attempt`, dzięki czemu ponowienie runa zachowuje ten sam identyfikator. Dla kilku różnych powiadomień dodaj osobne nazwy do klucza. API przechowuje zakończone odpowiedzi 24 h; po tym czasie sprawdź historię przed ponowieniem. Nierozstrzygnięta operacja jest blokowana do uzgodnienia. Nie uruchamiaj akcji z sekretami w kontekście niezaufanego kodu PR. Treść trafia przez zmienne środowiskowe i JSON, bez interpolacji do polecenia powłoki. Akcja nie wypisuje klucza, numeru ani treści do logu.

[Dokumentacja akcji złożonych GitHub](https://docs.github.com/en/actions/tutorials/create-actions/create-a-composite-action).
