[Uwaga] Ten artykuł został pierwotnie przygotowany w języku angielskim i został przetłumaczony na język polski.
Ten artykuł opisuje narzędzie GitHub Copilot oraz główne wytyczne i założenia dotyczące jego wykorzystania w projektach programistycznych. Wytyczne dotyczą zarówno konfiguracji narzędzia, jak i jego zastosowania w codziennej pracy, zakładając, że czytelnik będzie używał GitHub Copilot z IntelliJ IDEA (poprzez dedykowany plugin).
GitHub Copilot to asystent programisty AI, który wykorzystuje model generative AI wytrenowany na wszystkich językach programowania dostępnych w repozytoriach GitHub. Pełny opis i dokumentacja narzędzia są dostępne tutaj.
Na rynku istnieją inne podobne narzędzia, takie jak OpenAI Codex, JetBrains AI Assistant czy Tabnine, ale GitHub Copilot wyróżnia się następującymi cechami:
Naszym głównym celem przy korzystaniu z GitHub Copilot była poprawa efektywności pisania kodu oraz jego jakości. Ponadto chcieliśmy, aby wspierał nas w pracy, w której programistom brakuje wiedzy i doświadczenia. Oto konkretne cele, które chcieliśmy osiągnąć w naszym zespole programistycznym dzięki GitHub Copilot:
Ponieważ GitHub Copilot opiera się na generative AI, zawsze należy pamiętać, że może generować niepoprawny kod lub odpowiedzi. Dlatego korzystając z narzędzia, trzeba być świadomym potencjalnych ograniczeń i stosować zasadę ograniczonego zaufania oraz weryfikacji. Główne ograniczenia przedstawiono w poniższej tabeli.
| Ograniczenie | Opis |
| Ograniczony zakres wiedzy | Narzędzie bazuje na kodzie znalezionym w repozytoriach GitHub. Niektóre problemy, złożone struktury, języki lub notacje danych mają słabą reprezentację w zbiorach treningowych. |
| Dynamiczny rozwój i funkcje w fazie beta | Narzędzie rozwija się bardzo dynamicznie. Poprawki i aktualizacje pojawiają się co tydzień lub co kilka tygodni, co wskazuje na to, że wiele elementów narzędzia może nie działać jeszcze idealnie. Niektóre funkcjonalności, jak GitHub Copilot CLI, wciąż są w fazie beta. |
| Niedokładny kod | Dostawca narzędzia informuje, że generowany kod może nie spełniać oczekiwań użytkownika, może nie rozwiązywać rzeczywistego problemu i może zawierać błędy. |
| Niedokładne odpowiedzi chatu | W przypadku korzystania z chatu celność odpowiedzi zależy w dużej mierze od sformułowanego pytania lub polecenia. Dokumentacja mówi, że „Copilot Chat nie jest zaprojektowany do odpowiadania na pytania niezwiązane z kodowaniem”, więc możliwe są odpowiedzi, zwłaszcza w obszarach nieściśle związanych z kodem (projektowanie itp.), które nie będą odpowiednie lub sensowne. |
| Niebezpieczny kod | Zbiór treningowy (repozytoria) może zawierać elementy kodu naruszające zasady bezpieczeństwa (security i safety), takie jak klucze API, skanowanie sieci, adresy IP, kod przeciążający zasoby lub powodujący wycieki pamięci (memory leaks) itp. |
Aby zminimalizować negatywny wpływ zidentyfikowanych ograniczeń GitHub Copilot, należy zawsze:
Ważne: Nigdy nie wdrażaj kodu wygenerowanego przez GitHub Copilot na środowiska produkcyjne bez przeprowadzenia powyższych weryfikacji.
W tej sekcji przedstawimy podstawowe informacje dotyczące planów cenowych (z zaletami i wadami każdej opcji z perspektywy naszych celów) oraz konfiguracji konta osobistego (zarówno dla GitHub Copilot, jak i pluginu IntelliJ IDEA).
GitHub Copilot oferuje trzy plany subskrypcyjne o różnym zakresie funkcjonalności i kosztach. W naszym przypadku warto było rozważyć dwa plany: Copilot Individual lub Copilot Business. Plan Copilot Enterprise dodatkowo oferuje dostęp do chatu przez stronę github.com oraz generowanie podsumowań dla pull requests, co nie było istotne dla naszych założeń (ale może być inne w Twoim przypadku). Główne zalety i wady obu planów przedstawiono w poniższej tabeli.
| Plan | Zalety | Wady |
| GitHub Copilot Individual | Niższy koszt: 10 USD/miesiąc/użytkownik
Oferuje kluczowe funkcjonalności wymagane do osiągnięcia zamierzonych celów |
Brak kontroli organizacji nad konfiguracją narzędzia i dostępem użytkowników |
| GitHub Copilot Business | Oferuje kluczowe funkcjonalności wymagane do osiągnięcia zamierzonych celów
Kontrola organizacji nad konfiguracją narzędzia i dostępem użytkowników |
Wyższy koszt: 19 USD/miesiąc/użytkownik |
W naszym przypadku Copilot Business był lepszą opcją, zwłaszcza że pozwala na pełną kontrolę nad konfiguracją i dostępem do narzędzia dla programistów w zespole. Jeśli pracujesz samodzielnie, plan Copilot Individual może być wystarczający.
GitHub Copilot można skonfigurować podczas zakupu subskrypcji, a ustawienia można również zmienić po aktywacji konta w ustawieniach konta organizacji na GitHub. Na poziomie konta istniały dwa kluczowe parametry do skonfigurowania dla naszego przypadku użycia, opisane w poniższej tabeli.
| Nazwa opcji | Opis | Zalecane ustawienia |
| Suggestions matching public code | Dostępne opcje:
Allowed (Dozwolone) oraz Blocked (Zablokowane) Określa, czy pokazywać, czy blokować sugestie kodu, które pokrywają się w około 150 liniach z kodem publicznym |
Blocked
Ta opcja zmniejsza ryzyko powielania kodu z publicznych repozytoriów, redukując tym samym niepewność co do praw autorskich do kodu |
| Allow GitHub to use my code snippets for product improvements | Dostępne opcje: Yes (Tak) oraz No (Nie)
Określa, czy GitHub, jego podmioty stowarzyszone i strony trzecie mogą używać fragmentów kodu użytkownika do badania i ulepszania sugestii GitHub Copilot oraz powiązanych modeli i funkcji |
No
Jeśli planujesz używać GitHub Copilot do celów komercyjnych, GitHub i powiązane z nim podmioty nie powinny używać kodu użytkownika ze względu na kwestie praw autorskich |
Tutaj znajduje się szczegółowy opis i instrukcje dotyczące zmiany opcji konfiguracyjnych na Twoim koncie GitHub.
Aby włączyć GitHub Copilot w IDE IntelliJ IDEA, musisz zainstalować rozszerzenie GitHub Copilot z marketplace Visual Studio Code. Instalacja odbywa się bezpośrednio w IDE w ustawieniach pluginów. Po instalacji zaloguj się do swojego konta GitHub za pomocą kodu urządzenia (device code). Szczegółowe instrukcje dotyczące instalacji i aktualizacji pluginu znajdziesz tutaj.
Plugin GitHub Copilot dla IntelliJ IDEA oferuje możliwość skonfigurowania następujących elementów:
W naszym przypadku zalecane było korzystanie z domyślnych ustawień pluginu, ponieważ zapewniają one wysoki komfort pracy i są zgodne z istniejącą dokumentacją narzędzia. Wszelkie zmiany w konfiguracji mogą być wprowadzane przez każdego użytkownika zgodnie z jego własnymi preferencjami.
Oto kilka wskazówek dotyczących korzystania z kluczowych funkcjonalności, które pomogą Ci optymalnie wykorzystać narzędzie GitHub Copilot.
Kiedy używać:
Jak używać:
Kiedy używać:
Jak używać:
Kiedy używać:
Jak używać:
Kiedy używać:
Jak używać:
Kiedy używać:
Jak używać:
| Komenda | Przykład | Wynik |
| gh copilot suggest | # gh copilot suggest „find IP number in text file” | grep -E -o '([0-9]{1,3}.){3}[0-9]{1,3}’ <filename> |
| gh copilot explain | # gh copilot explain „curl -k” | curl służy do wysyłania żądań sieciowych, np. pobierania stron internetowych
–k lub –insecure pozwala curl na wykonywanie niezabezpieczonych połączeń i transferów SSL |
GitHub Copilot Chat opisaliśmy w osobnym rozdziale – ponieważ istnieje kilka przypadków użycia wartych omówienia. Przejdźmy przez nie indywidualnie i omówmy konkretne wytyczne dla każdego z nich.
Kiedy używać:
Jak używać:
Kiedy używać:
Jak używać:
Kiedy używać:
Jak używać:
Kiedy używać:
Jak używać:
Kiedy używać:
Jak używać:
Wynik:
Jak widzisz, GitHub Copilot może być potężnym narzędziem w arsenałe programisty. Może przyspieszyć i uprościć różne procesy oraz codzienne zadania. Jednak, jak w przypadku wszystkiego, co wiąże się z generative AI, nigdy nie można w pełni ufać temu narzędziu – dlatego kluczową zasadą jest zawsze czytanie, przeglądanie i testowanie tego, co ono tworzy.
Jeśli interesuje Cię AI, radzimy sprawdzić kilka innych artykułów na naszym blogu dotyczących możliwości oferowanych przez tę technologię:
Pretius ma bogate doświadczenie z narzędziami i technologiami AI – wypróbowaliśmy je do pisania i przeglądu kodu oraz przeanalizowaliśmy, czy mogą być przydatne w automatyzacji testów. Co więcej, zbudowaliśmy już kilka rozwiązań opartych na AI dla naszych klientów. Chętnie Ci pomożemy. Skontaktuj się z nami pod adresem hello@pretius.com lub skorzystaj z poniższego formularza kontaktowego. Możesz spodziewać się odpowiedzi w ciągu 48 godzin.
Oto odpowiedzi na kilka powszechnych pytań dotyczących GitHub Copilot.
GitHub Copilot to narzędzie AI pair programmer zaprojektowane, aby pomagać programistom w ich pracy. Sugeruje szybkie uzupełnienia kodu. Możliwe jest również używanie GitHub Copilot do generowania kodu za pomocą promptów w języku naturalnym.
Płatne subskrypcje zaczynają się od 10 USD miesięcznie.
Dostępny jest 30-dniowy okres próbny dla każdego, a darmowa subskrypcja GitHub Copilot jest dostępna dla zweryfikowanych nauczycieli, studentów oraz użytkowników utrzymujących popularne repozytoria open-source na GitHubie.
Rozwiązanie współpracuje z różnymi frameworkami, ale zgodnie z dokumentacją, najlepsze wyniki uzyskasz w JavaScript, TypeScript, Ruby, Go, C# i C++.
Jeśli używasz VSC, stwórz nowy plik JavaScript (z rozszerzeniem .js) i wpisz nagłówek funkcji calculateDaysBetweenDates(begin, end) { . Jeśli narzędzie działa poprawnie, powinieneś otrzymać sugestię całego ciała funkcji, którą możesz zaakceptować naciskając klawisz Tab.
To dość proste – wystarczy otworzyć Visual Studio Code Marketplace, odwiedzić stronę rozszerzenia Copilot i kliknąć przycisk instalacji. Następnie kliknij ikonę GitHub Copilot w dolnym panelu okna Visual Studio.