我正在使用 TeamCity 和 Github 自动化语义版本控制,并且我正在尝试找到一种计算直接影响 master 分支的提交的方法。
Git-Extensions 的这个带注释的屏幕截图可能最好地解释了这一点。我想自动计算箭头中的版本号:
作为构建过程的一部分,我正在使用 ruby 和 octokit 来查询 GitHub API。当提交或合并符合主要/次要版本时,主要和次要版本号会手动增加,因此伪代码基本上是:
- 找到major.minor.0对应的commit
- 计算自 major.minor.0 以来更改主分支状态的每个提交
- 将补丁版本设置为 commits.count
我遇到的问题是,如果我只计算对 master 的提交,每次接受拉取请求时,提交计数都会增加n+1,其中n是对分支的提交数。这会起作用,但它......不优雅。是的,我知道当您接受拉取请求时,您实际上是在接受该分支的整个历史作为您的“主”历史的一部分,但对于版本控制而言,这并不重要。
有谁知道我如何通过 GitHub API 过滤提交,以确定提交是否在创建时直接影响了master,或者是否有某种原因这实际上是不可能的?
谢谢!