学习如何在 GitHub 中创建分支是第一步。然而,掌握如何在 GitHub 中安全地合并分支对于每个分支来说都同样重要。 GitHub上 工作流程。因此,在这篇文章中,我们将引导您完成整个过程,首先是 如何在 GitHub 中创建分支 然后向你展示 如何在 GitHub 中合并分支 安全地。我们还将介绍如何在发现任何问题时取消合并,以及最后,Xygeni 如何帮助您在问题进入主分支之前将其捕获。
让我们一步一步地进行。
1. 如何正确在 GitHub 中创建分支
所有安全的工作流程都始于您在 GitHub 中创建分支。它允许开发人员隔离功能、修复或实验,而不会影响生产代码。
要在 GitHub 中创建分支:
1. 导航到你的存储库
2. 点击分支选择器下拉菜单
3. 输入新分支的名称
4。 点击 创建分支
从现在起,你的新分支已准备就绪。你现在可以推送代码、协作修改,并最终打开 pull request虽然这是一个基本的 GitHub 操作,但它为安全开发奠定了基础。
重要的是,每次在 GitHub 中创建分支时,它都应该是可重复且受保护的工作流程的一部分。
2.扫描 Pull Requests 合并前自动
当你在 GitHub 上创建分支并准备进行审查时,下一步是了解如何安全地合并 GitHub 中的分支。每次 GitHub 推送分支都应该触发自动检查。但在合并之前,务必 确认 这 代码不会引入漏洞。 单一不安全 commit 可以暴露您的应用程序, leak secret或破坏关键基础设施。
将代码合并到主分支是一项影响很大的操作。如果没有适当的检查,可能会导致严重的后果,例如:
这就是 Xygeni 真正与众不同之处
通过使用 GitHub动作,你可以触发 自动Xygeni扫描 每当开发人员打开 pull request 合并到受保护的分支。GitHub 中的受保护分支是指需要经过特定检查或批准才能合并更改的分支。
Xygeni 分析 最新执行 pull request 工作流程 验证拟议变更的安全状况。这包括检查 代码、依赖项、机密和 CI/CD 配置。不会重新扫描整个分支,但会使用最新的工作流程结果来强制执行策略并阻止不安全的合并。
这些扫描验证代码是否安全且可投入生产。它们检测:
整合 这些早期检查可确保 每次你在 GitHub 上创建一个分支并准备合并时,你都会使用 完全可见性和控制.
这是一个简化的设置:
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. 阻止不安全合并 Guardrails
Guardrails确保当你在 GitHub 中创建分支或尝试合并分支时,只有安全的更改才能到达你的主分支 GitHub 设置。Xygeni 为你提供 完全控制合并的内容。您可以定义预cis根据您的安全策略和风险承受能力定制规则。例如:
- 如果是关键机密则阻止 找到(例如 AWS 密钥、令牌)
- 构建失败 如果一个 新的高风险 开源包介绍
- 拒绝 pull requests 这 修改敏感路径 喜欢
.github/workflows/,infrastructure/或secrets.env - 防止合并 如果一个 降级重新引入 已知 漏洞
- 阻止 CI/CD 配置更改 除非正确标记
- 如果发生以下情况,请停止合并 SAST 检测到高或 关键问题
- 适用更严格 Guardrails 在生产分支上 同时保持开发的灵活性
这些规则就像自动守门人一样,帮助你的团队只合并安全的内容,避免意外发生、无需人工审核,也无需最后一刻的紧急救援。
护栏规则示例:
guardrail block_critical_secrets
on secrets
when severity = critical
then @fail()
视觉反馈 Dashboard
为了确保完全可见性,Xygeni 显示了对 Guardrail 状态的最新评估结果。
- 首先,绿色图标表示所有策略均已通过。
- 相反,红色图标表示违反了一个或多个护栏条件。
因此,开发人员和安全团队都可以立即了解合并被阻止的原因,而无需深入研究 CI 日志。
来自的真实示例 Dashboard:
例如,假设一个存储库没有受保护的分支,这是一种常见的错误配置,允许开发人员推送 commit未经核实。这是一个严重的风险。
Xygeni 自动检测并将其标记为 签名commits 问题下 CI/CD 类别。 这 dashboard 强调:
- 严重性: 高
- 类型: 签名 Commits
- 说明: 存储库没有受保护的分支
- 库存状态: 可选
因此,通过这种内容丰富的反馈,团队可以通过 Xygeni UI 快速识别风险、了解其影响并采取纠正措施。
定制 执法行为
你始终掌控一切。选择严格程度 Guardrails 应该:
--fail-on=critical: 仅在发现严重问题时才进行区块合并--never-fail: 运行 Guardrails 在执行之前以试运行模式测试策略
因此,下次你在 GitHub 中创建分支时,你的 Guardrails 已经在那里,保护你的 pipeline 并自动执行您的政策。
4. 发现风险时自动取消 GitHub 中的合并
如果检测到风险,则取消合并。此保护措施可保护每个 GitHub 分支项目,并强制执行有关如何在 GitHub 中合并分支的最佳实践。
Xygeni 直接集成到 GitHub 的 UI 中。当发现风险时:
- GitHub 显示检查失败
- GitHub 的保护措施阻止了合并
- 合并队列跳过不安全的代码
无论是秘密、CVE 还是危险 CI/CD 模式,结果是一样的: GitHub 中的合并已取消 并标记为需要审查。
您还可以在Xygeni中查看详细结果:
- 各分行安全状况
- 合并为何受阻
- 完整的扫描历史记录
- 项目页面中通过绿色(通过)或红色(失败)图标显示护栏状态
这种可视化反馈功能让开发人员和安全团队能够轻松自信地采取行动。当您需要更深入的背景信息时,每个问题都会链接到包含严重程度、标签、位置和缓解指南的文档。
Tldr 仅合并安全的内容
总而言之,在 GitHub 中创建分支后,安全合并的方法如下:
- 通过 UI 在 GitHub 中创建分支
- 每次触发自动扫描 pull request 与 Xygeni
- 使用以下方法阻止不安全的合并 Guardrails
- 使用服务器端审计策略进行更深入的控制
- 当出现故障时取消 GitHub 中的合并
- 在 Xygeni 中可视化所有结果 dashboard
有关存储库保护的更多最佳实践,请阅读我们的 GitHub 安全常见问题解答:每个开发人员都应该知道的内容.
虽然合并是一项基本操作,但要安全地执行,需要真正的可视性和自动化。使用 Xygeni,您不仅合并代码,更合并信任。
自信地保护每个 GitHub 分支
一个被忽视的问题 pull request 可能会危及您的主分支。传统扫描器经常运行过晚,错过关键风险,或无法执行有效的策略。
这就是为什么保护您的 GitHub 分支不仅仅需要扫描。
Xygeni 提供真正的执行力。 当 pull request 针对受保护的分支,Xygeni 分析你的最新执行情况 CI/CD 工作流。它不会重新扫描整个分支。相反,它会评估最新的结果,以检查代码、依赖项、机密和工作流配置中的安全问题。您不仅会收到警报,还会受到保护。
是什么让它与众不同:
- 完整上下文验证: Guardrails 使用严重性、可利用性和分支元数据等丰富的上下文来执行策略。
- 内置 GitHub 集成: 从扫描到执行的所有内容都在您的 GitHub 工作流中本地运行,无需自定义脚本或粘合代码。
- 服务器端审计: 服务器端 Guardrails 上传后验证结果,在 pipeline.
Xygeni 不依赖 CI 设置来捕获所有内容,而是应用基于策略的自动化cis任何东西到达主分支之前,离子。
虽然合并是一项基本操作,但要安全地执行,需要真正的可视性和自动化。使用 Xygeni,您不仅可以保护您的代码库,还可以放心地保护 GitHub 上的每个分支。





