Ξεκινήστε δωρεάν
← Όλοι οι οδηγοί

Συνδέστε τον κώδικά σας: αλλάξτε, ελέγξτε, εγκρίνετε, κάντε deploy και επαναφέρετε ένα πραγματικό project

Η σύνδεση κώδικα (/projects/connect/code) συνδέει ένα έργο aiKit με ένα αποθετήριο Git που ήδη έχετε, όπως μια εφαρμογή Laravel στο GitHub, και με το σημείο όπου τρέχει: τον δικό σας διακομιστή ή τη φιλοξενία aiKit. Από εκεί και πέρα ζητάτε αλλαγές με απλά λόγια στην καρτέλα Φιλοξενία του έργου. Η τεχνητή νοημοσύνη του aiKit επεξεργάζεται ένα αντίγραφο του κώδικα, εκτελεί τους ελέγχους του έργου, σας δείχνει τη διαφορά και μια προεπισκόπηση, και κάνε deploy μόνο αφού το εγκρίνει κάποιος από την ομάδα σας. Κάθε deploy είναι μια αριθμημένη έκδοση που μπορείτε να επαναφέρετε με ένα κλικ. Το αποθετήριό σας παραμένει η κύρια πηγή, και ο διακομιστής σας συνεχίζει να κάνει deploy όπως πάντα.

Συνδέστε τον κώδικά σας →
1

Βήμα 1 και 2: ονομάστε το έργο και συνδέστε το αποθετήριο

Ονομάστε το έργο, και μετά επικολλήστε τη διεύθυνση του αποθετηρίου (από το πράσινο κουμπί Code του GitHub) και το branch από το οποίο τρέχει ο ιστότοπος, συνήθως main. Επιλέξτε πώς θα συνδέεται το aiKit. Διακριτικό GitHub: ένα λεπτομερές token που δημιουργείτε στο GitHub μόνο για αυτό το αποθετήριο, με το Contents ρυθμισμένο σε Read and write· συνοδεύεται από διεύθυνση https://. Κλειδί deploy: ένα ζεύγος κλειδιών φτιαγμένο μόνο για αυτό το αποθετήριο, του οποίου το δημόσιο μέρος προσθέτετε στις Settings, Deploy keys του αποθετηρίου, με ενεργοποιημένο το Allow write access· συνοδεύεται από διεύθυνση git@. Δημόσιο αποθετήριο: μόνο ανάγνωση, οπότε οι εγκεκριμένες αλλαγές δεν έχουν πού να αποθηκευτούν· χρησιμοποιήστε το μόνο για να δείτε τον κώδικα.

Επικολλάτε το token ή το κλειδί μόνοι σας. Αποθηκεύεται κρυπτογραφημένο στη μηχανή του aiKit και δεν εμφανίζεται ξανά, σε κανέναν. Η σελίδα δείχνει μόνο ένα αποτύπωμα. Η σύνδεση αποθετηρίου αντιγράφει τον κώδικα στη μηχανή και διαβάζει τι είδους έργο είναι (Laravel, JavaScript ή στατικά αρχεία). Τίποτα δεν αλλάζει στο αποθετήριο.

Ένα έργο που έχετε ήδη μπορεί επίσης να συνδεθεί: στην καρτέλα Φιλοξενία του, ο ιδιοκτήτης βλέπει Σύνδεση κώδικα.

2

Βήμα 3: πού τρέχει

Ο δικός σας διακομιστής: ο ιστότοπος μένει ακριβώς εκεί που είναι. Εισάγετε τη διεύθυνση του διακομιστή, τη θύρα SSH (συνήθως 22), τη σύνδεση που χρησιμοποιεί το aiKit (τα βήματα ρύθμισης δημιουργούν μία με όνομα aikit), τον φάκελο του ιστότοπου (για ιστότοπο Laravel Forge, /home/forge/your-site.com), την εντολή deploy που χρησιμοποιεί ήδη ο ιστότοπος (συνήθως bash scripts/deploy.sh) και τις σελίδες που πρέπει να απαντούν μετά από κάθε deploy, μία πλήρη διεύθυνση ανά γραμμή. Επικολλήστε το ιδιωτικό κλειδί της σύνδεσης του διακομιστή (φτιαγμένο στο βήμα 1 της ρύθμισης). Αποθηκεύστε και ελέγξτε τη σύνδεση.

Την πρώτη φορά που το aiKit φτάνει στον διακομιστή, εμφανίζει το αποτύπωμα του διακομιστή και ρωτά Είναι ο δικός σας διακομιστής; Συγκρίνετέ το με αυτό που εμφάνισε ο διακομιστής στο βήμα 6 της ρύθμισης. Πατήστε μόνο Ταιριάζει. Σύνδεση, όταν είναι πανομοιότυπα. Από εκεί και πέρα, ένας διαφορετικός διακομιστής σε αυτή τη διεύθυνση απορρίπτεται. Όταν περάσει ο έλεγχος, η σελίδα δείχνει ποια έκδοση τρέχει τώρα ο διακομιστής.

Φιλοξενία aiKit: το aiKit χτίζει και σερβίρει ο ίδιος τον κώδικα, με δωρεάν διεύθυνση για αρχή. Ιδανικό για ιστότοπους και front ends.

3

Ρύθμιση διακομιστή (γίνεται μία φορά, περίπου 10 λεπτά)

Στην ενότητα Ρύθμιση διακομιστή, η σελίδα εμφανίζει οκτώ βήματα αντιγραφής και επικόλλησης, ήδη συμπληρωμένα με τις δικές σας τιμές· καθένα έχει κουμπί Αντιγραφή. Τα βήματα 1 και 8 εκτελούνται στον υπολογιστή σας, τα βήματα 2 έως 7 στον διακομιστή, ως χρήστης με sudo.

Τι δημιουργούν: μια σύνδεση χωρίς κωδικό και χωρίς κέλυφος (βήμα 2). Το μοναδικό της κλειδί είναι δεμένο με ένα μικρό σενάριο πύλης (βήματα 3 και 5) που δέχεται ακριβώς δύο εντολές: status (ποια έκδοση τρέχει και αν ο ιστότοπος είναι σε λειτουργία συντήρησης) και deploy ενός συγκεκριμένου commit. Το deploy τρέχει ως ο δικός χρήστης του ιστότοπου μέσω ενός κανόνα sudo, ελέγχει ότι το branch στο GitHub δείχνει σε αυτό ακριβώς το commit, και μετά εκτελεί το υπάρχον σενάριο deploy χωρίς αλλαγές. Το βήμα 4 ορίζει δικαιώματα φακέλων ώστε η σύνδεση να φτάνει μόνο στον φάκελο του ιστότοπου: όχι στους άλλους ιστότοπους του ίδιου αρχικού φακέλου, και ποτέ στο .env. Το βήμα 7 δοκιμάζει όλα τα παραπάνω και λέει τι πρέπει να δείτε για κάθε γραμμή, και το βήμα 8 δοκιμάζει τη σύνδεση από τον υπολογιστή σας προτού επικολλήσετε το κλειδί της στο aiKit.

Αν ένας διακομιστής φιλοξενεί και άλλες επιχειρήσεις, εδώ βρίσκεται το κρίσιμο σημείο: η σύνδεση του aiKit μπορεί να κάνει deploy μόνο σε αυτόν τον ιστότοπο και σε τίποτα άλλο. Ο κώδικας του ιστότοπου εξακολουθεί να τρέχει ως ο χρήστης του ιστότοπου, ακριβώς όπως όταν κάνετε deploy από το GitHub μόνοι σας, και για αυτό κάθε αλλαγή ελέγχεται και τα ευαίσθητα αρχεία προστατεύονται.

4

Η καρτέλα Φιλοξενία ενός έργου κώδικα

Τέσσερις κάρτες στην κορυφή. Αποθετήριο: το αποθετήριο, το branch, το πιο πρόσφατο commit και το είδος του έργου. Τρέχει σε: ο δικός σας διακομιστής (με τη σύνδεση και πότε απάντησε τελευταία φορά) ή η φιλοξενία aiKit. Ζωντανή έκδοση: η έκδοση που τρέχει ο ιστότοπος, ποιος την έκανε και πότε. Σελίδες: πόσες από τις σελίδες που πρέπει να απαντούν απάντησαν στον τελευταίο έλεγχο· το Έλεγχος τώρα τις επισκέπτεται ξανά, και όποια σελίδα δεν απάντησε εμφανίζεται από κάτω με ό,τι επέστρεψε.

Κάτω από τις κάρτες: Ζήτηση αλλαγής (ή η αλλαγή που είναι ανοιχτή αυτή τη στιγμή), Εκδόσεις, Ιστορικό αλλαγών, Προστατευμένα αρχεία και, για τον ιδιοκτήτη, Σύνδεση.

5

Ζητήστε αλλαγή, ελέγξτε την, εγκρίνετε την

Γράψτε τι πρέπει να αλλάξει, αναφέροντας τη σελίδα και τι θέλετε να δείτε, και πατήστε Κάνε την αλλαγή. Η κάρτα γίνεται Αλλαγή #1 με ζωντανή πρόοδο: λήψη του πιο πρόσφατου κώδικα, τα αρχεία που διαβάζει και επεξεργάζεται η τεχνητή νοημοσύνη, και μετά κάθε έλεγχος. Η τεχνητή νοημοσύνη επεξεργάζεται μόνο αρχεία· δεν εκτελεί εντολές. Μία αλλαγή είναι ανοιχτή τη φορά ανά έργο, και κάθε αίτημα μετράει στο όριο AI του έργου.

Όταν ολοκληρωθεί, βλέπετε: το αίτημα και ποιος το ζήτησε· τι λέει η τεχνητή νοημοσύνη ότι έκανε· τους ελέγχους, καθένας με σημάδι ✓ ή ✗ και την έξοδό του· κουμπιά Προεπισκόπηση για τις ελεγμένες σελίδες· τα αρχεία με Προστέθηκε, Άλλαξε ή Αφαιρέθηκε και ένα σήμα Προστατευμένο όπου ισχύει· και τη διαφορά, αρχείο προς αρχείο, με πράσινο για τις προστιθέμενες γραμμές και κόκκινο για τις αφαιρεθείσες. Αυτή η διαφορά είναι ακριβώς ό,τι θα υποβληθεί και θα κάνει deploy.

Έγκριση και δημοσίευση (ιδιοκτήτες και κατασκευαστές) καταχωρεί την αλλαγή στον κλάδο με μήνυμα που αναφέρει ποιος ζήτησε και ποιος ενέκρινε, την ανεβάζει (ποτέ με αναγκαστική ώθηση: αν κάποιος την είχε ανεβάσει στο μεταξύ, η αλλαγή σημειώνεται ως Παρωχημένη και τίποτα δεν δημοσιεύεται), τη δημοσιεύει και ελέγχει τις σελίδες. Η Απόρριψη πετάει την αλλαγή μετά από επιβεβαίωση· τίποτα δεν έχει δημοσιευτεί. Οι αξιολογητές μπορούν να δουν τα πάντα αλλά δεν πατούν κανένα από τα δύο.

Αφού περάσουν οι έλεγχοι, υπάρχει μια ρύθμιση στο Σύνδεση, Έλεγχοι και αξιολόγηση. Η προεπιλογή είναι Αναμονή έγκρισης. Η Αυτόματη δημοσίευση δημοσιεύει μόνη της μια αλλαγή μόνο όταν περάσουν όλοι οι έλεγχοι και δεν έχει αλλάξει προστατευόμενο αρχείο· σε κάθε άλλη περίπτωση περιμένει.

6

Έλεγχοι και προεπισκόπηση

Για ένα έργο Laravel, οι έλεγχοι είναι: κάθε αλλαγμένο αρχείο PHP αναλύεται σωστά (php -l)· κάθε προβολή Blade μεταγλωττίζεται (php artisan view:cache)· το front end χτίζεται (npm run build)· και η εφαρμογή ξεκινά σε δοκιμαστική εκτέλεση με προσωρινή βάση δεδομένων SQLite, μεταναστευμένη και με δεδομένα από το αποθετήριο, όπου κάθε σελίδα που αναφέρεται στις Σελίδες πρέπει να απαντά με 200. Εκτελούνται στη μηχανή του aiKit, ποτέ στον δικό σας διακομιστή και ποτέ στη ζωντανή βάση δεδομένων σας. Το αρχείο .env του έργου δεν αντιγράφεται ούτε διαβάζεται ποτέ· η δοκιμαστική εκτέλεση παίρνει προσωρινές ρυθμίσεις.

Ένας αποτυχημένος έλεγχος μπλοκάρει την Έγκριση. Μόνο ο ιδιοκτήτης μπορεί να επιλέξει Δημοσίευση παρότι απέτυχαν έλεγχοι, για έλεγχο που απέτυχε για λόγο που δεν επηρεάζει τον ζωντανό ιστότοπο.

Η Προεπισκόπηση ανοίγει την αλλαγμένη εφαρμογή από τη δοκιμαστική εκτέλεση σε νέα καρτέλα, με δοκιμαστικά δεδομένα και φόρμες απενεργοποιημένες. Σταματά 15 λεπτά μετά την τελευταία χρήση του και τερματίζει όταν η αλλαγή εγκριθεί ή απορριφθεί.

7

Προστατευόμενα αρχεία

Η ΤΝ αφήνει τα προστατευόμενα αρχεία ανέγγιχτα. Η λίστα ξεκινά με: μεταναστεύσεις που έχουν ήδη εκτελεστεί στον ζωντανό ιστότοπο (κάθε μετανάστευση της ζωντανής έκδοσης, αφού κάθε δημοσίευση τις εκτελεί), νέες μεταναστεύσεις (θα άλλαζαν τη ζωντανή βάση δεδομένων στην επόμενη δημοσίευση), το σενάριο δημοσίευσης και τα αρχεία εξαρτήσεων (composer.json, composer.lock, package.json, package-lock.json). Κάθε καταχώρηση εξηγεί γιατί. Ο ιδιοκτήτης προσθέτει ένα αρχείο ή φάκελο (το config/** σημαίνει όλα όσα βρίσκονται μέσα στο config) με αιτιολογία, αφαιρεί καταχωρήσεις και πατά Αποθήκευση προστατευόμενων αρχείων.

Για να αλλάξετε σκόπιμα ένα προστατευόμενο αρχείο, ο ιδιοκτήτης επιλέγει Να επιτρέπονται προστατευόμενα αρχεία για αυτό το αίτημα. Η αλλαγή τότε δείχνει ποια προστατευόμενα αρχεία άγγιξε, και μόνο ο ιδιοκτήτης μπορεί να την εγκρίνει, αφού επιλέξει Ναι, δημοσίευση των αλλαγών σε προστατευόμενα αρχεία. Ένας κατασκευαστής που δεν επιλέγει τίποτα δεν έχει πρόσβαση σε προστατευόμενα αρχεία.

Τα αρχεία .env, τα ιδιωτικά κλειδιά και το auth.json ανήκουν σε πιο αυστηρή κατηγορία: δεν διαβάζονται ποτέ, δεν αλλάζουν ποτέ, δεν συμπεριλαμβάνονται ποτέ σε diff, και κανείς δεν μπορεί να το απενεργοποιήσει.

8

Εκδόσεις, Δημοσίευση και Επαναφορά

Την πρώτη φορά που το aiKit συνδέεται με τον διακομιστή σας, καταγράφει ό,τι εκτελεί ο διακομιστής ως έκδοση 1, Πριν από το aiKit, ώστε ακόμη και η πρώτη δημοσίευση του aiKit να μπορεί να επαναφερθεί. Από τότε, κάθε δημοσίευση είναι αριθμημένη έκδοση: Αλλαγή (μια εγκεκριμένη αλλαγή· το όνομά της ανοίγει αυτή την αλλαγή), Επαναδημοσίευση ή Επαναφορά, με το commit της, ποιος την έκανε, την κατάστασή της (Ζωντανή, Παλαιότερη, Ζωντανή με αποτυχημένες σελίδες, Αποτυχία δημοσίευσης), πόσες σελίδες απάντησαν και το αρχείο καταγραφής δημοσίευσης. Το aiKit κρατά τις τελευταίες 5.

Το Δημοσίευση του τελευταίου κώδικα δημοσιεύει ό,τι είναι πιο πρόσφατο στον κλάδο αυτή τη στιγμή, μετά από επιβεβαίωση, για παράδειγμα όταν κάποιος ανέβασε μια διόρθωση απευθείας.

Το Επαναφορά σε αυτή, σε παλαιότερη έκδοση, δημιουργεί ένα νέο commit του οποίου τα αρχεία είναι ακριβώς αυτά της έκδοσης, το ανεβάζει και το δημοσιεύει με τον συνηθισμένο τρόπο, και μετά ελέγχει τις σελίδες. Το ιστορικό δεν ξαναγράφεται ποτέ, άρα και η ίδια η επαναφορά μπορεί να αναιρεθεί.

9

Αρχείο αλλαγών

Κάθε αίτημα με τον αριθμό του, το αίτημα, ποιος το ζήτησε, ποιος το ενέκρινε ή το απέρριψε, πότε, και σε ποια κατάσταση βρίσκεται. Πατήστε μια γραμμή για να ανοίξει η αλλαγή με τους ελέγχους και το diff της· η διεύθυνση παίρνει το ?change=<id>, ώστε μπορείτε να μοιραστείτε τον σύνδεσμο με την ομάδα σας.

Επόμενος οδηγός Σχετικά με το Printer’s Helper: τι κάνει και τα όριά του

Έχετε μια πιο σύντομη, συγκεκριμένη ερώτηση; Δείτε τις Συχνές ερωτήσεις.