Πώς να ρυθμίσετε και να διατηρήσετε τους κανόνες προστασίας υποκαταστημάτων GitHub


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

Γιατί είναι απαραίτητη η προστασία του υποκαταστήματος;

Η προστασία των υποκαταστημάτων έχει να κάνει με την πρόληψη ανεπιθύμητων ενεργειών. Μπορείτε να ορίσετε κανόνες που να απαιτούν ελέγχους αιτημάτων έλξης, να απαιτούν την ολοκλήρωση δοκιμών πριν από τη συγχώνευση ή να απαιτούν υπογεγραμμένες δεσμεύσεις για την επαλήθευση της αυθεντικότητας.

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

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

Η προστασία υποκαταστημάτων, από προεπιλογή, δεν θα ισχύει για τους διαχειριστές. Μπορείτε επίσης να δώσετε σε άτομα συγκεκριμένη άδεια επιτρέποντάς τους να την παρακάμψουν. Εάν δεν θέλετε οι διαχειριστές ή οποιοσδήποτε άλλος να μπορεί να παρακάμψει ορισμένους κανόνες, μπορείτε να το απενεργοποιήσετε για κάθε κανόνα.

Προστασία κλαδιών είναι

διατίθεται δωρεάν για δημόσια αποθετήρια

αλλά δεν είναι διαθέσιμο για ιδιωτικά αποθετήρια χωρίς GitHub Team ή Enterprise.

Τι κάνουν οι κανόνες προστασίας υποκαταστημάτων του GitHub;

Υπάρχουν αρκετές ρυθμίσεις που μπορείτε να ενεργοποιήσετε για την προστασία διακλαδώσεων και όλες κάνουν διαφορετικά πράγματα. Εδώ είναι μερικά από τα πιο χρήσιμα:

  • Η “Απαίτηση ελέγχων αιτημάτων έλξης πριν από τη συγχώνευση” δεν θα επιτρέψει τη συγχώνευση των PR σε προστατευμένα υποκαταστήματα έως ότου ένα ή περισσότερα άτομα με άδεια εγκρίνουν το αίτημα. Αυτό είναι ιδιαίτερα χρήσιμο για την αποτροπή ενός μεμονωμένου ατόμου από τη συγχώνευση ενός PR από μόνο του.
  • Η “Απαιτείται επίλυση συνομιλιών” θα διασφαλίσει ότι επιτρέπεται η συγχώνευση μόνο κλειστών και οριστικοποιημένων PR.
  • Η “Απαίτηση ελέγχων κατάστασης πριν από τη συγχώνευση” θα ενσωματωθεί με τη διοχέτευση CI για την εκτέλεση δοκιμών σε νέες δεσμεύσεις για να επαληθευτεί ότι δεν παραβιάζουν τίποτα. Το GitHub διαθέτει ακόμη και ένα API κατάστασης δέσμευσης που μπορείτε να χρησιμοποιήσετε για εξωτερική ενοποίηση.
  • Το “Require Deployments to success” χρησιμοποιείται συνήθως για να διασφαλιστεί ότι οι εκδόσεις αναπτύσσονται σωστά σε περιβάλλοντα σταδιοποίησης πριν από τη συγχώνευση.
  • Το “Require linear

    ” αποτρέπει την ώθηση των δεσμεύσεων συγχώνευσης στον κλάδο, κάτι που απαιτεί οι συγχωνεύσεις να είναι συγχωνεύσεις squash ή rebase. Το ιστορικό γραμμικής δέσμευσης προτιμάται από πολλές ομάδες, καθώς διευκολύνει τον εντοπισμό και την επαναφορά εκδόσεων.
  • Η “Απαίτηση υπογεγραμμένων δεσμεύσεων” θα επιβάλει τις δεσμεύσεις να είναι υπογεγραμμένες με GPG, επαληθεύοντας ότι δημιουργήθηκαν με το ιδιωτικό κλειδί του χρήστη και δεν έχουν συνταχθεί από εισβολέα με πρόσβαση στο GitHub.

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

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

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

Πώς να ρυθμίσετε τους κανόνες προστασίας υποκαταστημάτων GitHub

Οι κανόνες προστασίας υποκαταστημάτων ορίζονται στις ρυθμίσεις του αποθετηρίου. Κάντε κλικ στο κουμπί ρυθμίσεων για το αποθετήριο σας και, στη συνέχεια, κάντε κλικ στην «Προστασία υποκαταστημάτων».

Πρέπει να ορίσετε ένα φίλτρο για τον κανόνα προστασίας διακλάδωσης. Μπορείτε απλώς να το ορίσετε στο όνομα ενός συγκεκριμένου κλάδου, όπως “main”, ή μπορείτε να χρησιμοποιήσετε χαρακτήρες μπαλαντέρ για να στοχεύσετε πολλαπλούς κλάδους ταυτόχρονα.

Ένας απεριόριστος χαρακτήρας μπαλαντέρ “*” θα ισχύει για όλους τους κλάδους και πολλοί κανόνες προστασίας διακλαδώσεων μπορούν να στοιβάζονται ο ένας πάνω στον άλλο. Ωστόσο, δεν μπορείτε να έχετε δύο κανόνες με το ίδιο φίλτρο.

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

Ένα πράγμα που θα θέλετε να είναι ενεργοποιημένο τις περισσότερες φορές είναι ο κανόνας που εμποδίζει τους διαχειριστές να παρακάμπτουν τους κανόνες.

Στη συνέχεια, μπορείτε να ενεργοποιήσετε τον κανόνα, αν και θα πρέπει να πραγματοποιήσετε εκ νέου έλεγχο ταυτότητας με την εφαρμογή GitHub για κινητά, καθώς η αλλαγή των κανόνων προστασίας υποκαταστημάτων είναι μια περιορισμένη ενέργεια. Μπορείτε να ελέγξετε εάν είναι ενεργοποιημένο επιχειρώντας να εξαναγκάσετε την ώθηση—ο πελάτης Git σας θα πρέπει να εμφανίσει σφάλμα.


HowToGeek.com



You might also like


Leave A Reply



Cancel Reply

Your email address will not be published.