Cách hợp nhất nhánh trong GitHub, hủy hợp nhất nhánh GitHub, nhánh GitHub

Tạo nhánh trên GitHub và hợp nhất an toàn.

Học cách tạo nhánh trong GitHub là bước đầu tiên. Tuy nhiên, việc thành thạo cách hợp nhất các nhánh trong GitHub một cách an toàn cũng quan trọng không kém đối với mọi nhánh. GitHub quy trình làm việc. Vì vậy, trong bài viết này, chúng tôi sẽ hướng dẫn bạn toàn bộ quy trình, bắt đầu từ Cách tạo nhánh trong GitHub và sau đó cho bạn xem Cách hợp nhất nhánh trong GitHub một cách an toàn. Chúng ta cũng sẽ tìm hiểu cách hủy bỏ thao tác hợp nhất nếu bạn phát hiện bất kỳ sự cố nào, và cuối cùng, cách Xygeni có thể giúp bạn phát hiện mọi vấn đề trước khi chúng xuất hiện trong nhánh chính của bạn.

Chúng ta hãy cùng xem xét từng bước một.

1. Cách tạo nhánh trong GitHub đúng cách

Mọi quy trình làm việc an toàn đều bắt đầu khi bạn tạo một nhánh trong GitHub. Điều này cho phép các nhà phát triển cô lập các tính năng, bản sửa lỗi hoặc thử nghiệm mà không ảnh hưởng đến mã nguồn đang được sử dụng trong môi trường sản xuất.

Để tạo nhánh trong GitHub:

1. Điều hướng đến kho lưu trữ của bạn

2. Nhấp vào menu thả xuống chọn nhánh.

Cách hợp nhất nhánh trong GitHub, hủy hợp nhất nhánh trên GitHub và nhánh trên GitHub

3. Nhập tên chi nhánh mới của bạn

4. nhấp chuột Tạo nhánh

Cách hợp nhất nhánh trong GitHub, hủy hợp nhất nhánh trên GitHub và nhánh trên GitHub

Từ đây, nhánh mới của bạn đã sẵn sàng. Giờ bạn có thể đẩy mã, cộng tác về các thay đổi và cuối cùng là mở một nhánh. pull requestMặc dù đây chỉ là một thao tác cơ bản trên GitHub, nhưng nó tạo tiền đề cho việc phát triển an toàn.

Điều quan trọng là, mỗi khi bạn tạo một nhánh trong GitHub, nó phải là một phần của quy trình làm việc có thể lặp lại và được bảo vệ.

2. Quét Pull Requests Tự động trước khi hợp nhất

Khi bạn tạo một nhánh trên GitHub và chuẩn bị cho quá trình xem xét, bước tiếp theo là hiểu cách hợp nhất các nhánh trên GitHub một cách an toàn. Mỗi lần đẩy nhánh lên GitHub đều phải kích hoạt các kiểm tra tự động. Nhưng trước khi hợp nhất, điều cần thiết là phải... xác minh việc này Mã này không gây ra lỗ hổng bảo mật. Một sự không an toàn duy nhất commit có thể làm lộ thông tin ứng dụng của bạn. leak secrethoặc phá vỡ cơ sở hạ tầng trọng yếu.

Việc hợp nhất mã vào nhánh chính là một thao tác có tác động lớn. Nếu không có các bước kiểm tra thích hợp, nó có thể dẫn đến những hậu quả nghiêm trọng như:

Đây chính là điểm mà Xygeni tạo nên sự khác biệt thực sự.

Bằng cách sử dụng Tác vụ GitHub, bạn có thể kích hoạt Quét Xygeni tự động bất cứ khi nào một nhà phát triển mở một pull request vào một nhánh được bảo vệ. Trong GitHub, nhánh được bảo vệ là nhánh yêu cầu các bước kiểm tra hoặc phê duyệt cụ thể trước khi cho phép hợp nhất các thay đổi.

Xygeni phân tích lần thực thi mới nhất của pull request quy trình làm việc Để xác thực tình trạng bảo mật của các thay đổi được đề xuất. Điều này bao gồm việc kiểm tra các vấn đề trong mã nguồn, các phụ thuộc, bí mật và CI/CD cấu hìnhToàn bộ nhánh không được quét lại, mà kết quả quy trình làm việc gần nhất được sử dụng để thực thi các chính sách và chặn các thao tác hợp nhất không an toàn.

Các bản quét này xác nhận rằng mã nguồn an toàn và sẵn sàng cho môi trường sản xuất. Chúng phát hiện:

Tích hợp những cuộc kiểm tra sớm này đảm bảo Mỗi khi bạn tạo một nhánh trong GitHub và chuẩn bị hợp nhất, bạn đều thực hiện thao tác đó với... khả năng hiển thị và kiểm soát đầy đủ.

Đây là một thiết lập đơn giản:

on:   pull_request:     branches: [ main ] jobs:   xygeni-scan:     runs-on: ubuntu-latest     steps:       - name: Checkout         uses: actions/checkout@v3       - name: Xygeni Scanner         uses: xygeni/xygeni-action@3.2.0         with:           token: ${{ secrets.XYGENI_TOKEN }}

3. Chặn các giao dịch hợp nhất không an toàn bằng Guardrails

GuardrailsHãy đảm bảo rằng khi bạn tạo nhánh trên GitHub hoặc cố gắng hợp nhất các nhánh trên GitHub, chỉ những thay đổi an toàn mới được đưa đến nhánh chính của bạn trên GitHub. Xygeni cung cấp cho bạn... Toàn quyền kiểm soát những gì được hợp nhấtBạn có thể định nghĩa trướccisCác quy tắc được thiết kế riêng cho chính sách bảo mật và mức độ chấp nhận rủi ro của bạn. Ví dụ:

  • Chặn nếu đó là bí mật quan trọng được tìm thấy (ví dụ: khóa AWS, mã thông báo)
  • Thất bại trong quá trình xây dựng nếu một rủi ro cao mới Gói phần mềm mã nguồn mở được giới thiệu
  • Từ chối pull requests việc này sửa đổi các đường dẫn nhạy cảm Lượt thích .github/workflows/, infrastructure/, hoặc là secrets.env
  • Ngăn chặn việc hợp nhất nếu một hạ cấp tái giới thiệu nổi tiếng Lỗ hổng
  • Chặn CI/CD thay đổi cấu hình trừ khi được dán nhãn đúng cách
  • Dừng việc hợp nhất nếu SAST phát hiện mức cao hoặc vấn đề quan trọng
  • Áp dụng nghiêm ngặt hơn Guardrails trên các nhánh sản xuất đồng thời duy trì tính linh hoạt trong quá trình phát triển.

Những quy tắc này hoạt động như những người gác cổng tự động. Chúng giúp nhóm của bạn chỉ hợp nhất những gì an toàn, không có bất ngờ, không cần xem xét thủ công, không cần giải quyết sự cố vào phút cuối.

Ví dụ về quy tắc lan can bảo vệ:

guardrail block_critical_secrets   on secrets   when severity = critical   then @fail()

Phản hồi trực quan trong Dashboard

Cách hợp nhất nhánh trong GitHub, hủy hợp nhất nhánh trên GitHub và nhánh trên GitHub

Để đảm bảo tính minh bạch hoàn toàn, Xygeni hiển thị kết quả đánh giá mới nhất về tình trạng của lan can bảo vệ.

  • Đầu tiên của tất cả cácBiểu tượng màu xanh lá cây có nghĩa là tất cả các chính sách đã được thông qua.
  • Ngược lạiBiểu tượng màu đỏ báo hiệu rằng một hoặc nhiều điều kiện của hệ thống lan can bảo vệ đã bị vi phạm.

Do đó, cả các nhà phát triển và nhóm bảo mật đều có được cái nhìn tổng quan ngay lập tức về lý do tại sao việc hợp nhất bị chặn, mà không cần phải xem xét nhật ký CI.

Ví dụ thực tế từ Dashboard:

Ví dụ, giả sử kho lưu trữ không có nhánh được bảo vệ, một lỗi cấu hình phổ biến cho phép các nhà phát triển đẩy mã lên kho lưu trữ. commitmà không có sự xác minh. Đó là một rủi ro nghiêm trọng.

Xygeni tự động phát hiện và gắn cờ điều này là một lỗi. đã ký_commits vấn đề thuộc CI/CD thể loại. Các dashboard điểm nổi bật:

  • Mức độ nghiêm trọng: Cao
  • Kiểu: Ký Commits
  • Giải thích: Kho lưu trữ không có nhánh được bảo vệ.
  • Tình trạng: Mở

Do đó, với phản hồi giàu ngữ cảnh này, các nhóm có thể nhanh chóng xác định rủi ro, hiểu được tác động của nó và thực hiện các biện pháp khắc phục, tất cả đều từ giao diện người dùng Xygeni.

Tùy chỉnh Hành vi thực thi

Bạn luôn nắm quyền kiểm soát. Hãy tự quyết định mức độ nghiêm khắc. Guardrails nên là:

  • --fail-on=critical: Chỉ hợp nhất khối khi có phát hiện nghiêm trọng.
  • --never-fail: chạy Guardrails ở chế độ chạy thử để kiểm tra các chính sách trước khi thực thi.

Vậy nên lần tới khi bạn tạo một nhánh trong GitHub, nhánh của bạn sẽ... Guardrails họ đã ở đó rồi, đang bảo vệ bạn. pipeline và tự động thực thi các chính sách của bạn.

Làm sao để biết một ứng dụng GitHub có an toàn hay không?

Hãy tìm hiểu cách đánh giá GitHub Apps trước khi cài đặt chúng.

Đọc liên quan:

4. Tự động hủy hợp nhất trên GitHub khi phát hiện rủi ro

Nếu phát hiện rủi ro, quá trình hợp nhất sẽ bị hủy bỏ. Biện pháp bảo vệ này giúp bảo vệ mọi nhánh dự án GitHub và đảm bảo tuân thủ các quy tắc tốt nhất về cách hợp nhất nhánh trên GitHub.

Xygeni tích hợp trực tiếp vào giao diện người dùng của GitHub. Khi phát hiện rủi ro:

  • GitHub hiển thị trạng thái kiểm tra là thất bại.
  • Các biện pháp bảo vệ của GitHub ngăn chặn việc hợp nhất.
  • Hàng đợi hợp nhất bỏ qua mã không an toàn.

Cho dù đó là bí mật, lỗ hổng bảo mật (CVE) hay nguy hiểm. CI/CD Dù theo mô hình nào, kết quả vẫn như nhau: Quá trình hợp nhất đã bị hủy trên GitHub. và được đánh dấu để xem xét.

Bạn cũng có thể xem kết quả chi tiết trong Xygeni:

  • Tình trạng an ninh của từng chi nhánh
  • Vì sao việc hợp nhất bị chặn?
  • Lịch sử quét đầy đủ
  • Trạng thái của lan can bảo vệ được hiển thị bằng biểu tượng màu xanh lá cây (đạt) hoặc màu đỏ (không đạt) trên trang dự án.

Phản hồi trực quan này giúp các nhà phát triển và nhóm bảo mật dễ dàng hành động một cách tự tin. Và khi bạn cần ngữ cảnh sâu hơn, mỗi vấn đề đều liên kết đến tài liệu với mức độ nghiêm trọng, thẻ, vị trí và hướng dẫn khắc phục.

Tóm lại: Chỉ hợp nhất những gì an toàn.

Tóm lại, đây là cách hợp nhất an toàn sau khi bạn tạo nhánh trên GitHub:

  • Tạo nhánh trong GitHub thông qua giao diện người dùng.
  • Kích hoạt quá trình quét tự động với mỗi pull request với Xygeni 
  • Chặn các giao dịch hợp nhất không an toàn bằng cách sử dụng Guardrails
  • Sử dụng các chính sách kiểm toán phía máy chủ để kiểm soát sâu hơn.
  • Hủy hợp nhất trên GitHub khi có lỗi xảy ra.
  • Hiển thị trực quan tất cả kết quả trong Xygeni's dashboard

Để biết thêm các biện pháp tốt nhất về bảo vệ kho lưu trữ, hãy đọc bài viết của chúng tôi. Câu hỏi thường gặp về bảo mật GitHub: Điều mà mọi nhà phát triển nên biết.

Mặc dù hợp nhất là một thao tác cơ bản, nhưng thực hiện nó một cách an toàn đòi hỏi khả năng giám sát và tự động hóa thực sự. Với Xygeni, bạn không chỉ hợp nhất mã, mà còn hợp nhất cả sự tin tưởng.

Bảo vệ mọi nhánh GitHub một cách an tâm

Một vấn đề bị bỏ qua duy nhất trong pull request có thể gây nguy hiểm cho chi nhánh chính của bạn. Các công cụ quét truyền thống thường hoạt động quá muộn, bỏ sót các rủi ro nghiêm trọng hoặc không thực thi được các chính sách có ý nghĩa.

Đó là lý do tại sao việc bảo vệ các nhánh GitHub của bạn cần nhiều hơn chỉ là quét.

Xygeni cung cấp khả năng thực thi thực sự. Khi một pull request Xygeni nhắm mục tiêu vào một nhánh được bảo vệ, phân tích lần thực thi gần nhất của bạn. CI/CD Quy trình làm việc. Nó không quét lại toàn bộ nhánh. Thay vào đó, nó đánh giá các kết quả gần đây nhất để kiểm tra các vấn đề bảo mật trong mã, các phụ thuộc, bí mật và cấu hình quy trình làm việc. Bạn không chỉ nhận được cảnh báo. Bạn được bảo vệ.

Điều gì làm cho nó khác biệt:

  • Xác thực toàn ngữ cảnh: Guardrails Áp dụng chính sách bằng cách sử dụng ngữ cảnh phong phú như mức độ nghiêm trọng, khả năng khai thác và siêu dữ liệu nhánh.
  • Tích hợp sẵn GitHub: Mọi thứ từ quét đến thực thi đều chạy trực tiếp trong quy trình làm việc GitHub của bạn, không cần đến các tập lệnh tùy chỉnh hoặc mã kết nối.
  • Kiểm toán phía máy chủ: Phía máy chủ Guardrails Xác thực kết quả sau khi tải lên, bổ sung thêm một lớp kiểm soát thứ hai nằm ngoài phạm vi kiểm soát. pipeline.

Thay vì dựa vào hệ thống CI của bạn để phát hiện mọi lỗi, Xygeni áp dụng quy trình tự động, dựa trên chính sách.ciscác ion trước khi bất cứ thứ gì đến nhánh chính của bạn.

Mặc dù hợp nhất là một thao tác cơ bản, nhưng thực hiện nó một cách an toàn đòi hỏi khả năng giám sát và tự động hóa thực sự. Với Xygeni, bạn không chỉ bảo vệ kho lưu trữ của mình, mà còn bảo vệ mọi nhánh trên GitHub một cách chắc chắn.

sca-tools-software-composition-analysis-tools
Ưu tiên, khắc phục và bảo mật các rủi ro phần mềm của bạn
Đăng ký tài khoản miễn phí ngay.
Không cần thẻ tín dụng.

Bảo mật quá trình phát triển và phân phối phần mềm của bạn.

với bộ sản phẩm Xygeni