前言
PR全称pull request,字面翻译来看就是拉取请求。
就是在我们没有主分支(master 或 main)写权限,但发现项目存在漏洞并想要修复的情况下,所采取的动作。
给三方提PR
第一步:Fork 项目仓库(ant-design-vue)
fork 完成后,可以在自己的仓库中找到 fork 到的项目了:
第二步:clone 我们仓库中 ant-design-vue 到本地,创建 特性分支(fix/ab)
第三步:完成修改,将 特性分支 提交到远程
git add .
git commit -m 'fix: xxx'
git push origin -u fix/ab
第四步:然后返回我们仓库中的 ant-design-vue 项目,发现多了一条PR合并的提醒。点击 Compare & pull request 按钮
第五步:按照 ant-design-vue 的要求,我们需要将特性分支 fix/ab 合入 ant-design-vue 主项目的 next 分支。然后点击下面的 Create pull request 按钮。然后就会走 ant-design-vue 的 ci流程,如果全部通过后,那么我们本次的 PR 算是提交成功了。
第六步:就坐等作者审核PR了,如果通过后 next 分支会被合入 ant-design-vue 的下个版本中
下面这张图是我三年前向antd提交的PR,已经被merge到v2版本的主分支当中
配置PR合并
其实禁用 主分支的写权限是必然的,防止有人恶意向主分支提交,污染仓库代码。万一咱们开源的项目也火了呢,谁能保证没有眼红的呢,抓紧看看你的仓库吧
前面简单说了如何向三方开源项目提PR,下面聊一下如何配置我们项目的PR合并。
第一步:打开当前项目的Settings选项
第二步:点击左侧Code and automation类目下的 Branches 选项
第三步:点击右侧Add branch protection rule
第四步:填入被保护分支的名称,或者使用fnmatch语法指定的命名模式匹配到的任何分支
第五步:直接点击 Create
经过上述五步,你们发现在客户端向远程主分支推送代码会被rejected,只能走文章开篇的提PR流程。
PR审核工作流
可能有人会问,上图里面很多个选择项分别是干什么的?下面我们根据图片中出现的几个选项来聊一聊审核的工作流