Przejdź do treści

Referencja API

Bezpieczeństwo

Odbiornik zgłoszeń wycieków kluczy (GitHub secret scanning).

Zgłoszenie wycieku kluczy (GitHub secret scanning)

POST /security/leak-report

tylko alleelimit: write

Wywołuje GitHub, gdy w publicznym repozytorium znajdzie klucz allee (allee_sk_live_…, allee_sk_test_…, allee_at_…, allee_rt_…, allee_cs_…). Podpis ECDSA w nagłówkach Github-Public-Key-Identifier i Github-Public-Key-Signature.

Znaleziony klucz unieważniamy natychmiast, token OAuth — razem z kwarantanną pary, a sprzedawca dostaje powiadomienie. Odpowiedź zawiera skrót SHA-256 zamiast jawnego tokenu. Integratorzy nie wołają tej trasy.

Zgodność: tylko allee — GitHub secret scanning partner program.
Uwierzytelnienie: brak.

Nagłówki

Github-Public-Key-Identifier string wymagany

Identyfikator klucza GitHuba.

Github-Public-Key-Signature string wymagany

Podpis ECDSA treści (base64).

Treść żądania application/json

token string wymagane

Wykryty sekret.

type string

Typ wzorca u GitHuba.

url string

Gdzie znaleziono.

source string

Odpowiedzi

200 Wynik dla każdego tokenu. · LeakReportResult
token_hash string zawsze

SHA-256 tokenu (zamiast jawnego).

token_type string zawsze
label string zawsze
Wartości: true_positive, false_positive

Błędy

HTTPKodZnaczenie
401INVALID_SIGNATUREZły podpis zgłoszenia GitHuba.
413PAYLOAD_TOO_LARGETreść żądania za duża (JSON 5 MB, faktura PDF 3 MB).
422JsonMappingExceptionTreść nie jest poprawnym JSON albo ma zły kształt (np. images jako obiekty).
500INTERNAL_ERRORBłąd serwera allee.
503NOT_DEPLOYEDFunkcja jeszcze nie uruchomiona (np. sandbox, wsady).
Przykład
curl -sS -X POST "${ALLEE_API_URL:-https://api.allee.pl}/security/leak-report" \
  -H "Accept: application/json" \
  -H "Github-Public-Key-Identifier: dok-test-klucz-1" \
  -H "Github-Public-Key-Signature: MEYCIQCDjKriWvn4Qfh5aSJUn2p+zd9eZdn8FnzIqmdC9W+sZQIhAKCVfQ3f55eEx9RN9+RcvOPKH2aEJBDiqQk6hXtC9OwS" \
  -H "Content-Type: application/json" \
  --data-raw '[{"token":"allee_sk_live_…","type":"allee_personal_api_key","url":"https://github.com/przyklad/repo/blob/main/config.php","source":"content"}]' \
  -w '\nHTTP %{http_code}\n'
Odpowiedź (środowisko testowe)
HTTP 200 application/json
[
  {
    "token_hash": "2a8052c39d6de83f4f808165c1f2a34edaaf0565c95045b11b528f7f747a69f3",
    "token_type": "allee_personal_api_key",
    "label": "false_positive"
  }
]