# GitHub App

## Zalety

### <mark style="background-color:blue;">Bezpieczeństwo</mark>

Aplikacje **GitHub** zapewniają zwiększoną kontrolę i bezpieczeństwo w porównaniu do **OAuth**. Zamiast szerokich zakresów, **Aplikacje GitHub** używają **granularnych uprawnień**, dając administratorom lepszą kontrolę nad tym, do czego aplikacja może uzyskać dostęp i co może wykonać:

* Granularne uprawnienia – Aplikacje **GitHub** żądają tylko tych uprawnień, których potrzebują, w przeciwieństwie do aplikacji **OAuth**, które polegają na szerszych zakresach uprawnień.
* **Dostęp do konkretnych repozytoriów** – Użytkownicy lub właściciele organizacji mogą wybrać, do których repozytoriów aplikacja może uzyskać dostęp, podczas gdy aplikacje **OAuth** uzyskują dostęp do wszystkich repozytoriów dostępnych dla autoryzującego użytkownika.
* **Tokeny o krótkiej dacie ważności** – Aplikacje **GitHub** używają tokenów, które szybko wygasają, zmniejszając ryzyko niewłaściwego użycia tokenów. Natomiast tokeny aplikacji **OAuth** pozostają ważne, dopóki nie zostaną odwołane.

Te funkcje sprawiają, że **Aplikacje GitHub** są bardziej odpowiednie dla organizacji o ścisłych wymaganiach bezpieczeństwa, oferując silniejszą ochronę przed potencjalnymi zagrożeniami bezpieczeństwa.

### <mark style="background-color:blue;">Limit żądań</mark>

**Aplikacje GitHub**, które używają **tokenów dostępu** do instalacji, mają początkowo dozwolone **5000 żądań na godzinę**. Ten limit może wzrosnąć w określonych warunkach:

* **GitHub Enterprise Cloud organizations** — Instalacje powiązane z organizacją **Enterprise Cloud** mają limit 15 000 żądań na godzinę.
* **Skalowanie według liczby repozytoriów i użytkowników** — dla instalacji, które nie są częścią organizacji **Enterprise Cloud**:
  * Organizacje z więcej niż 20 repozytoriami otrzymują **dodatkowe 50 żądań na godzinę na każde repozytorium.**
  * Organizacje z więcej niż 20 użytkownikami otrzymują **dodatkowe 50 żądań na godzinę na każdego użytkownika.**
  * Całkowity limit jest ograniczony do **12 500 żądań na godzinę.**

Powyższe zasady pomagają zapewnić uczciwe wykorzystanie przy jednoczesnym zachowaniu stabilności i bezpieczeństwa systemu.

{% hint style="info" %}
Dowiedz się więcej na temat limitów żądań w [oficjalnej dokumentacji GitHub](https://docs.github.com/en/rest/using-the-rest-api/rate-limits-for-the-rest-api?apiVersion=2022-11-28#primary-rate-limit-for-github-app-installations).
{% endhint %}

***

## Wymagania instalacyjne

**Aplikacje GitHub** można instalować na kilka różnych sposobów:

* **Przez konta osobiste** — **Każdy użytkownik** może zainstalować aplikację na swoim koncie osobistym.
* **Przez konta organizacji** — **Właściciele organizacji** mogą zainstalować aplikację dla całej organizacji.
* **Instalacja na poziomie repozytorium w ramach organizacji** — **Administratorzy repozytorium** mogą zainstalować aplikację dla repozytoriów, którymi zarządzają, pod warunkiem, że aplikacja nie żąda uprawnień obejmujących całą organizację ani nie wymaga dostępu do administracji repozytorium.
* **Ograniczona instalacja** — **Właściciele organizacji** mogą ograniczyć instalacje do zewnętrznych współpracowników, którzy są administratorami repozytoriów.
* **Zatwierdzenie dla członków niebędących administratorami** — Jeśli członek, który nie jest ani **właścicielem organizacji**, ani **administratorem repozytorium**, wybierze organizację podczas procesu instalacji aplikacji, **GitHub** powiadomi właściciela organizacji o konieczności zatwierdzenia instalacji, **zamiast** instalować ją bezpośrednio.

***

## Przegląd procesu instalacji

Po zainstalowaniu **Aplikacji GitHub**, może być również konieczne jej **autoryzowanie**. Instalacja pozwala określić, do których **repozytoriów** aplikacja może uzyskać dostęp i udziela jej uprawnień do korzystania z określonych **zasobów organizacyjnych**, przy czym aplikacja **pokazuje, jakie uprawnienia są zatwierdzane**.

Autoryzacja udziela aplikacji dostępu do Twojego **konta** **GitHub** zgodnie z żądanymi uprawnieniami i pozwala jej działać w Twoim imieniu.

Możesz zainstalować **Aplikację GitHub** bez jej autoryzowania lub autoryzować ją bez instalowania, co zapewnia elastyczność i kontrolę nad dostępem i funkcjonalnością aplikacji.

***

## Zapobieganie throttlingowi

**Throttling** ogranicza liczbę wywołań **API** lub operacji w danym oknie czasowym, aby zapobiec nadmiernemu wykorzystaniu zasobów i zapewnić stabilność serwera. W przypadku przekroczenia limitu dławienia, dalsze żądania od klienta są tymczasowo ograniczone, co może wydłużyć czasy backupu.

**Xopero ONE** może używać do **10 dodatkowych Aplikacji GitHub**, aby zwiększyć limit żądań i zmniejszyć wpływ **throttlingu**. Więcej na temat ograniczania żądań i metod zapobiegania można znaleźć w sekcji [ZARZĄDZANIE RYZYKIEM I ZGODNOŚCIĄ](https://helpcenter.xopero.com/xopero-one-en/pl/zarzadzanie-ryzykiem-i-zgodnoscia).
