Μετάβαση στο περιεχόμενο

Σύνδεση κεντρικού υπολογιστή κώδικα

Το Control Center συνεργάζεται με τρεις κεντρικούς υπολογιστές κώδικα, που σε όλη την εφαρμογή αποκαλούνται forges: GitHub, GitLab και Bitbucket Cloud. Κανένας τους δεν είναι ο προεπιλεγμένος. Συνδέστε έναν και όλα λειτουργούν· συνδέστε πολλούς και ένας μόνο χώρος εργασίας μπορεί να φιλοξενεί ταυτόχρονα αποθετήρια από όλους.

Ο κεντρικός υπολογιστής κώδικα είναι ιδιότητα κάθε αποθετηρίου και διαβάζεται από το remote origin του όταν το καταχωρίζετε. Δεν τον επιλέγετε ποτέ μόνοι σας και δεν υπάρχει ρύθμιση ανά χώρο εργασίας που να μπορεί να πάει στραβά.

  1. Ανοίξτε Ρυθμίσεις → Χώρος εργασίας → Προφίλ και ταυτότητα (/settings/workspace/profile).
  2. Βρείτε την κάρτα Φιλοξενία κώδικα. Εκεί εμφανίζεται κάθε υποστηριζόμενος κεντρικός υπολογιστής κώδικα, συνδεδεμένος ή όχι.
  3. Πατήστε Σύνδεση με … αν η γραμμή το προσφέρει, ή Προσθήκη token και επικολλήστε ένα.

Η Σύνδεση εμφανίζεται για έναν κεντρικό υπολογιστή κώδικα για τον οποίο ο διακομιστής σας έχει καταχωρισμένη εφαρμογή — σήμερα αυτός είναι το GitHub, μέσω device flow (δείτε Δημιουργία της GitHub App). Σε κάθε άλλη περίπτωση το διαπιστευτήριο είναι ένα επικολλημένο token, που είναι η ειλικρινής λύση αντί για ένα κουμπί που δεν μπορεί να ολοκληρωθεί.

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

Κάθε γραμμή σάς δείχνει από πού προέρχεται το διαπιστευτήριό της, γιατί εκεί κρίνεται η διαφορά ανάμεσα στο «το token μου δεν λειτουργεί» και στο «απαντά ένα άλλο token»:

Υπότιτλος Σημασία
Συνδεθήκατε ως octocat Χρησιμοποιείται το δικό σας διαπιστευτήριο
Συνδεθήκατε ως octocat · μέσω της εφαρμογής αυτού του διακομιστή Απαντά η ταυτότητα εφαρμογής του διακομιστή — δεν έχετε συνδεθεί
Συνδεθήκατε ως octocat · από το περιβάλλον Απαντά μια μεταβλητή περιβάλλοντος του διακομιστή, όχι το δικό σας διαπιστευτήριο
Δεν έχει συνδεθεί Δεν έχετε διαπιστευτήριο για αυτόν τον κεντρικό υπολογιστή κώδικα

Τι token θέλει κάθε κεντρικός υπολογιστής κώδικα

Ενότητα με τίτλο «Τι token θέλει κάθε κεντρικός υπολογιστής κώδικα»
Κεντρικός υπολογιστής Token Πού να το δημιουργήσετε
GitHub Classic: repo και read:org. Fine-grained: Contents + Pull requests (read/write), Checks + Actions (read) github.com → Settings → Developer settings → Tokens
GitLab Ένα προσωπικό token πρόσβασης με api gitlab.com → User settings → Access tokens
Bitbucket Ένα Atlassian API token, συν το email του λογαριασμού σας id.atlassian.com → Security → API tokens

Το Bitbucket αυθεντικοποιείται με το email του λογαριασμού σας ως όνομα χρήστη και με το token ως κωδικό πρόσβασης. Ορίστε το BITBUCKET_EMAIL στο περιβάλλον του διακομιστή, ώστε να γνωρίζει ποιο email να συνδυάσει με το token.

Για εγκατάσταση headless ή CI, ο διακομιστής διαβάζει τα εξής:

  • GitHub — GITHUB_TOKEN, μετά GH_TOKEN
  • GitLab — GITLAB_TOKEN, μετά CI_JOB_TOKEN
  • Bitbucket — BITBUCKET_API_TOKEN, μετά BITBUCKET_TOKEN (μαζί με BITBUCKET_EMAIL)

Αυτά είναι διαπιστευτήρια του διακομιστή, όχι δικά σας, και η διάκριση είναι καθοριστική: ένα αίτημα που γίνεται για λογαριασμό σας χρησιμοποιεί το δικό σας διαπιστευτήριο και τίποτε άλλο, οπότε το περιβάλλον δεν υποκαθιστά ποτέ σιωπηλά εσάς. Η εργασία χωρίς άνθρωπο πίσω της — webhooks, polling PR, συγχρονισμός εισιτηρίων — επιλύει πρώτα την ταυτότητα εφαρμογής του διακομιστή, μετά το διαπιστευτήριο του ιδιοκτήτη του διακομιστή και τέλος το περιβάλλον. Η σειρά είναι σταθερή, ώστε το «συνδέθηκα και τίποτα δεν άλλαξε» να μην αποτελεί ποτέ υποστηριζόμενο αποτέλεσμα.

Είστε διαφορετικό πρόσωπο σε κάθε κεντρικό υπολογιστή κώδικα

Ενότητα με τίτλο «Είστε διαφορετικό πρόσωπο σε κάθε κεντρικό υπολογιστή κώδικα»

Ο ίδιος άνθρωπος είναι octocat στο GitHub και κάτι εντελώς διαφορετικό στο GitLab. Το Control Center επιλύει την ταυτότητά σας ανά κεντρικό υπολογιστή κώδικα και χρησιμοποιεί τη σωστή για κάθε αποθετήριο, και έτσι οι ενδείξεις «χρειάζεται τον έλεγχό μου», «δημιουργήθηκαν από εμένα» και «το εγκρίνατε» είναι σωστές σε έναν μικτό χώρο εργασίας.

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

Ένα εισερχόμενο για όλους τους κεντρικούς υπολογιστές κώδικα

Ενότητα με τίτλο «Ένα εισερχόμενο για όλους τους κεντρικούς υπολογιστές κώδικα»

Τα εισερχόμενα και η ουρά PR απλώνονται σε κάθε κεντρικό υπολογιστή κώδικα που εκπροσωπείται στον χώρο εργασίας και συγχωνεύουν τα αποτελέσματα σε μία ροή — ένα pull request από το GitHub και ένα από το Bitbucket βρίσκονται δίπλα-δίπλα, ταξινομημένα κατά χρόνο και όχι ομαδοποιημένα κατά προμηθευτή.

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

Τι μπορεί να κάνει κάθε κεντρικός υπολογιστής κώδικα

Ενότητα με τίτλο «Τι μπορεί να κάνει κάθε κεντρικός υπολογιστής κώδικα»

Κάθε κεντρικός υπολογιστής κώδικα υποστηρίζει τον βασικό κύκλο: προβολή και άνοιγμα pull requests, ανάγνωση diffs, σχολιασμό inline και σε επίπεδο κορυφής, έλεγχο, συγχώνευση και κλείσιμο. Πέρα από αυτά διαφέρουν πραγματικά, και το Control Center κρύβει ό,τι δεν μπορεί να κάνει ένας κεντρικός υπολογιστής κώδικα, αντί να εμφανίζει ένα χειριστήριο που αποτυγχάνει σιωπηλά.

Δυνατότητα GitHub GitLab Bitbucket
Ομαδοποιημένοι (εκκρεμείς) έλεγχοι ✓ ✓ —
Αίτημα αλλαγών ✓ ✓ ✓
Συγχρονισμένη κατάσταση «προβλήθηκε» ανά αρχείο ✓ — —
Αντιδράσεις emoji ✓ ✓ —
Ελεγκτές ομάδας ή γκρουπ ✓ ✓ —
Προτεινόμενοι ελεγκτές ✓ — ✓
Αποτελέσματα CI σε ένα PR ✓ ✓ ✓
Εμβάθυνση στα βήματα/αρχεία καταγραφής μιας εργασίας CI ✓ ✓ —
Στοιβαγμένα pull requests ✓ — —
Πρότυπα περιγραφής PR ✓ ✓ —
Polling ειδοποιήσεων ✓ — —
Πλούσια προφίλ χρηστών ✓ ✓ —
PR head ref στην πλευρά του διακομιστή ✓ ✓ —

Όπου λείπει μια δυνατότητα, η λειτουργία υποβαθμίζεται με ειλικρίνεια:

  • Η κατάσταση «προβλήθηκε» εξακολουθεί να λειτουργεί, αλλά μόνο στη συσκευή όπου την ορίσατε.
  • Οι ομαδοποιημένοι έλεγχοι στο Bitbucket αναρτώνται σχόλιο προς σχόλιο, οπότε οι ελεγκτές τα βλέπουν να φτάνουν μεμονωμένα και όχι όλα μαζί.
  • Η απουσία PR head ref στο Bitbucket σημαίνει ότι το checkout ενός pull request ανακτά το branch προέλευσής του με το όνομά του, κάτι που αποτυγχάνει μόλις διαγραφεί αυτό το branch.

Το GitLab αποκαλεί το pull request merge request. Το Control Center λέει «pull request» σε όλο το δικό του μοντέλο και χρησιμοποιεί τον όρο του εκάστοτε κεντρικού υπολογιστή κώδικα όταν μιλάει για αυτόν.

Η λίστα PR είναι κενή και αναφέρει ότι ένας κεντρικός υπολογιστής κώδικα δεν είναι συνδεδεμένος

Ενότητα με τίτλο «Η λίστα PR είναι κενή και αναφέρει ότι ένας κεντρικός υπολογιστής κώδικα δεν είναι συνδεδεμένος»

Δεν έχετε διαπιστευτήριο για αυτόν τον κεντρικό υπολογιστή κώδικα. Συνδεθείτε ή επικολλήστε ένα token στις Ρυθμίσεις → Χώρος εργασίας → Προφίλ και ταυτότητα → Φιλοξενία κώδικα. Τα αποθετήρια των άλλων κεντρικών υπολογιστών κώδικα δεν επηρεάζονται.

Σύνδεσα έναν κεντρικό υπολογιστή κώδικα, αλλά τα αποθετήριά του δεν δείχνουν ακόμη τίποτα

Ενότητα με τίτλο «Σύνδεσα έναν κεντρικό υπολογιστή κώδικα, αλλά τα αποθετήριά του δεν δείχνουν ακόμη τίποτα»

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

Η καταχώριση απαιτεί και τα τρία: η διαδρομή βρίσκεται μέσα σε ένα worktree του git, υπάρχει ένα remote origin και αυτό το remote δείχνει στο github.com, το gitlab.com ή το bitbucket.org. Δείτε Προσθήκη αποθετηρίων σε χώρο εργασίας.

Όλα σταματούν να λειτουργούν για λίγο μετά από εντατική χρήση

Ενότητα με τίτλο «Όλα σταματούν να λειτουργούν για λίγο μετά από εντατική χρήση»

Αυτός είναι ο διακόπτης ασφαλείας του ορίου ρυθμού. Όταν ένας κεντρικός υπολογιστής κώδικα σηματοδοτεί το πρωτεύον όριό του, ο πελάτης αποτυγχάνει τοπικά τα επόμενα αιτήματα, χωρίς κλήση δικτύου, μέχρι να παρέλθει το παράθυρο — έτσι μια καταιγίδα επαναλήψεων δεν μπορεί να επιδεινώσει το όριο. Οι παροδικές αποτυχίες επαναλαμβάνονται με εκθετικό backoff.