Zacznij za darmo
← Wszystkie poradniki

Połącz swój kod: zmieniaj, sprawdzaj, zatwierdzaj, wdrażaj i cofaj prawdziwy kod źródłowy

Połącz swój kod (/projects/connect/code) łączy projekt aiKit z repozytorium Git, które już masz, na przykład aplikacją Laravel na GitHubie, oraz z miejscem, w którym działa: Twoim własnym serwerem lub hostingiem aiKit. Od tej chwili prosisz o zmiany zwykłymi słowami na karcie Hosting projektu. AI aiKit edytuje kopię kodu, uruchamia kontrole projektu, pokazuje Ci różnice i podgląd, a wdraża dopiero po zatwierdzeniu przez kogoś z zespołu. Każde wdrożenie to ponumerowane wydanie, które możesz cofnąć jednym kliknięciem. Twoje repozytorium pozostaje źródłem prawdy, a Twój serwer nadal wdraża kod tak jak dotychczas.

Połącz swój kod →
1

Krok 1 i 2: nazwij projekt i połącz repozytorium

Nazwij projekt, a następnie wklej adres repozytorium (z zielonego przycisku Code na GitHubie) oraz gałąź, z której działa strona, zwykle main. Wybierz, jak aiKit ma się z nim łączyć. Token GitHub: token o precyzyjnych uprawnieniach, utworzony na GitHubie tylko dla tego jednego repozytorium, z ustawieniem Contents na Read and write; używany jest z adresem https://. Klucz wdrożeniowy: para kluczy utworzona tylko dla tego repozytorium, a jej część publiczną dodajesz w Settings, Deploy keys tego repozytorium, z zaznaczoną opcją Allow write access; używany jest z adresem git@. Repozytorium publiczne: tylko do odczytu, więc zatwierdzone zmiany nie mają gdzie zostać zapisane; używaj go tylko do przeglądania.

Token lub klucz wklejasz samodzielnie. Jest on przechowywany zaszyfrowany w silniku aiKit i nigdy więcej nie jest pokazywany nikomu. Strona pokazuje jedynie odcisk palca. Połącz repozytorium kopiuje kod do silnika i rozpoznaje, jakiego typu jest projekt (Laravel, JavaScript lub pliki statyczne). Nic w repozytorium się nie zmienia.

Możesz też połączyć istniejący projekt: na jego karcie Hosting właściciel widzi opcję Połącz swój kod.

2

Krok 3: gdzie działa strona

Twój własny serwer: strona pozostaje dokładnie tam, gdzie jest. Wpisz adres serwera, port SSH (zwykle 22), login, którego używa aiKit (kroki konfiguracji tworzą login o nazwie aikit), folder strony (dla strony w Laravel Forge będzie to /home/forge/twoja-strona.pl), polecenie wdrożenia, którego strona już używa (zwykle bash scripts/deploy.sh), oraz strony, które muszą odpowiadać po każdym wdrożeniu, po jednym pełnym adresie w wierszu. Wklej prywatny klucz loginu do serwera (utworzony w kroku 1 konfiguracji). Zapisz i sprawdź połączenie.

Gdy aiKit po raz pierwszy łączy się z serwerem, pokazuje odcisk palca serwera i pyta: Czy to Twój serwer? Porównaj go z tym, co serwer wypisał w kroku 6 konfiguracji. Naciśnij tylko Zgadza się. Połącz, gdy odciski są identyczne. Od tej chwili inny serwer pod tym adresem zostanie odrzucony. Gdy sprawdzenie przejdzie, strona pokazuje, jaka wersja działa obecnie na serwerze.

Hosting aiKit: aiKit sam buduje i udostępnia kod, z darmowym adresem na start. Najlepszy dla stron i warstwy frontowej.

3

Konfiguracja serwera (wykonywana raz, około 10 minut)

W sekcji Konfiguracja serwera strona wymienia osiem kroków do skopiowania i wklejenia, już uzupełnionych Twoimi danymi; każdy ma przycisk Kopiuj. Kroki 1 i 8 wykonujesz na swoim komputerze, kroki 2 do 7 na serwerze jako użytkownik z uprawnieniami sudo.

Co zostaje utworzone: login bez hasła i bez powłoki (krok 2). Jego jeden klucz jest przypisany do małego skryptu bramki (kroki 3 i 5), który przyjmuje dokładnie dwa polecenia: status (jaka wersja działa i czy strona jest w trybie konserwacji) oraz deploy jednego konkretnego commita. Wdrożenie działa jako własny użytkownik strony, dzięki jednej regule sudo, sprawdza, czy gałąź na GitHubie wskazuje na ten dokładny commit, a następnie uruchamia Twój istniejący skrypt wdrożeniowy bez zmian. Krok 4 ustawia uprawnienia do folderów tak, by login miał dostęp tylko do folderu strony: nie do innych stron w tym samym katalogu domowym i nigdy do pliku .env. Krok 7 testuje wszystko i opisuje, co powinieneś zobaczyć w każdej linii, a krok 8 testuje login z Twojego komputera, zanim wkleisz jego klucz do aiKit.

Jeśli na serwerze działają także inne firmy, to jest właśnie sedno: login aiKit może wdrożyć tylko tę jedną stronę i nic więcej. Kod strony nadal działa jako użytkownik tej strony, dokładnie tak jak wtedy, gdy wdrażasz z GitHuba samodzielnie, dlatego każda zmiana jest sprawdzana, a ryzykowne pliki są chronione.

4

Karta Hosting projektu kodu

Cztery kafelki u góry. Repozytorium: repozytorium, gałąź, najnowszy commit i rodzaj projektu. Działa na: Twój własny serwer (wraz z loginem i czasem ostatniej odpowiedzi) lub hosting aiKit. Aktywne wydanie: wydanie, które działa na stronie, kto je wykonał i kiedy. Strony: ile ze stron, które muszą odpowiadać, odpowiedziało przy ostatnim sprawdzeniu; Sprawdź teraz odwiedza je ponownie, a każda strona, która nie odpowiedziała, jest wymieniona poniżej wraz z tym, co zwróciła.

Poniżej kafelków: Zleć zmianę (lub zmiana otwarta w tej chwili), Wydania, Dziennik zmian, Chronione pliki oraz dla właściciela Połączenie.

5

Zleć zmianę, sprawdź ją, zatwierdź

Opisz, co ma się zmienić, wskazując stronę i to, co chcesz zobaczyć, a następnie naciśnij Wprowadź zmianę. Karta zmieni się w Zmiana #1 z postępem na żywo: pobieranie najnowszego kodu, pliki, które AI czyta i edytuje, a potem każda kontrola. AI tylko edytuje pliki; nie uruchamia żadnych poleceń. Jednocześnie dla jednego projektu może być otwarta tylko jedna zmiana, a każde zlecenie wlicza się do limitu AI projektu.

Po zakończeniu zobaczysz: zlecenie i kto je zgłosił; co AI mówi, że zrobiło; kontrole, każda z zielonym znacznikiem lub krzyżykiem i swoim wynikiem; przyciski Podgląd dla sprawdzonych stron; pliki z oznaczeniami Dodano, Zmieniono lub Usunięto oraz odznaką Chronione tam, gdzie ma zastosowanie; oraz różnice, plik po pliku, zielone dla dodanych wierszy i czerwone dla usuniętych. Te różnice są dokładnie tym, co zostanie zatwierdzone i wdrożone.

Zatwierdź i wdróż (właściciele i twórcy) zapisuje zmianę w gałęzi z komunikatem, który podaje, kto poprosił i kto zatwierdził, wysyła ją (nigdy wymuszeniem: jeśli ktoś w międzyczasie wysłał zmiany, zmiana zostaje oznaczona jako Nieaktualna i nic nie zostaje wdrożone), wdraża ją i sprawdza strony. Odrzuć usuwa zmianę po potwierdzeniu; nic nie zostało wdrożone. Recenzenci mogą czytać wszystko, ale nie mogą naciskać żadnego z tych przycisków.

Po przejściu sprawdzeń działa ustawienie w sekcji Połączenie, Sprawdzenia i recenzja. Czekaj na zatwierdzenie to ustawienie domyślne. Wdrażaj automatycznie sam wdraża zmianę tylko wtedy, gdy wszystkie sprawdzenia zostały zaliczone i żaden chroniony plik nie został zmieniony; w każdym innym przypadku zmiana nadal czeka.

6

Sprawdzenia i podgląd

W projekcie Laravel sprawdzenia obejmują: czy każdy zmieniony plik PHP da się przeanalizować (php -l); czy każdy widok Blade się kompiluje (php artisan view:cache); czy front end się buduje (npm run build); oraz czy aplikacja uruchamia się w testowym przebiegu z jednorazową bazą SQLite, zmigrowaną i wypełnioną danymi z repozytorium, gdzie każda strona wymieniona w Stronach, którą przebieg testowy ma otworzyć, zwraca kod 200. Działają na silniku aiKit, nigdy na Twoim serwerze i nigdy na Twojej działającej bazie danych. Plik .env projektu nie jest nigdy kopiowany ani odczytywany; testowy przebieg dostaje jednorazowe ustawienia.

Nieudane sprawdzenie blokuje Zatwierdź. Tylko właściciel może zaznaczyć Wdróż mimo nieudanych sprawdzeń, jeśli dane sprawdzenie nie wpływa na działającą stronę.

Podgląd otwiera zmienioną aplikację z testowego przebiegu w nowej karcie, z wyłączonymi testowymi danymi i formularzami. Zatrzymuje się 15 minut po ostatnim użyciu i kończy się, gdy zmiana zostanie zatwierdzona lub odrzucona.

7

Chronione pliki

AI nie rusza chronionych plików. Lista zaczyna się od: migracji, które już zostały uruchomione na działającej stronie (każda migracja z aktualnego wydania, ponieważ każde wdrożenie je uruchamia), nowych migracji (zmieniłyby działającą bazę danych przy następnym wdrożeniu), skryptu wdrożeniowego oraz plików zależności (composer.json, composer.lock, package.json, package-lock.json). Każdy wpis podaje powód. Właściciel dodaje plik lub folder (config/** oznacza wszystko w config) z powodem, usuwa wpisy i naciska Zapisz chronione pliki.

Aby celowo zmienić chroniony plik, właściciel zaznacza Zezwól na chronione pliki w tym zleceniu. Zmiana wtedy pokazuje, których chronionych plików dotyczy, a zatwierdzić ją może tylko właściciel, po zaznaczeniu Tak, wdróż zmiany w chronionych plikach. Twórca, który niczego nie zaznaczy, nie ma dostępu do chronionych plików.

Pliki .env, klucze prywatne i auth.json podlegają surowszemu poziomowi: nigdy nie są odczytywane, nigdy nie są zmieniane, nigdy nie są częścią różnic, a nikt nie może tego wyłączyć.

8

Wydania, Wdróż i Cofnij

Za pierwszym razem, gdy aiKit połączy się z Twoim serwerem, zapisuje, co serwer uruchamia jako wydanie 1, Przed aiKit, dzięki czemu nawet pierwsze wdrożenie aiKit można cofnąć. Potem każde wdrożenie jest numerowanym wydaniem: Zmiana (zatwierdzona zmiana; jej nazwa otwiera tę zmianę), Ponowne wdrożenie lub Cofnięcie, wraz z jego commitem, osobą, która to zrobiła, statusem (Aktywne, Wcześniejsze, Aktywne, ale strony nie działają, Wdrożenie nieudane), liczbą stron, które odpowiedziały, oraz dziennikiem wdrożenia. aiKit zachowuje 5 ostatnich.

Wdróż najnowszy kod wdraża to, co jest obecnie najnowsze w gałęzi, po potwierdzeniu, na przykład gdy ktoś wysłał poprawkę bezpośrednio.

Cofnij do tego, w wydaniu wcześniejszym, tworzy nowy commit, którego pliki są dokładnie takie jak w tym wydaniu, wysyła go i wdraża w zwykły sposób, a następnie sprawdza strony. Historia nigdy nie jest przepisywana, więc samo cofnięcie można cofnąć.

9

Dziennik zmian

Każde zlecenie z numerem, treścią, osobą, która poprosiła, osobą, która zatwierdziła lub odrzuciła, czasem i aktualnym stanem. Naciśnij wiersz, aby otworzyć tę zmianę wraz ze sprawdzeniami i różnicami; adres otrzyma ?change=<id>, dzięki czemu możesz udostępnić link zespołowi.

Następny poradnik O Printer’s Helper: do czego służy i jakie ma ograniczenia

Masz krótsze, konkretne pytanie? Zajrzyj do FAQ.