PR合并时如何在GitHub上创建标签?

Tom*_*ero 6 git github githooks pull-request

我当前的工作流程需要在每个 PR 上都有一个版本 Bump,所以我想利用这一点,并在每次 PR 合并时在 GitHub 上自动创建一个标签,因此它出现在“发布”部分。

我已经看到我可以编写一个合并后的钩子。我怀疑这个钩子是在我的机器上本地运行,还是在 GitHub 上远程运行,或者两者都运行(假设我在 GitHub 上合并了 PR,而不是在本地。这是怎么回事?

Von*_*onC 7

我可以写一个合并后的钩子。我怀疑这个钩子是在我的机器上本地运行,还是在 GitHub 上远程运行,或者两者都运行

2015:它肯定不会在 GitHub 上运行(这对 GitHub 运行任何用户提供的钩子来说都是不安全的)。

您可以拥有拉取请求Webhook:通过侦听其 JSON 有效负载,如果PR 事件指示合并的PR ,您可以添加标签并将其推回 GitHub 。
(也就是说,如果action是“ closed”,而merged键是“ true”)


2020 年:它肯定会在 GitHub 上运行:这称为GitHub Actions

在 OP 的情况下,GitHub Tag Action

一个 GitHub 操作,用于在合并时使用最新的 SemVer 格式版本自动碰撞和标记 master。适用于任何平台。

用法

name: Bump version
on:
  push:
    branches:
      - master
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@master
        with:
          # Fetches entire history, so we can analyze commits since last tag
          fetch-depth: 0
      - name: Bump version and push tag
        uses: mathieudutour/github-tag-action@v4.5
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
Run Code Online (Sandbox Code Playgroud)

一个类似且更新的 Action:github-tag-action
请参阅Nick Sjostrom 的创建 Github 操作以标记提交” 。

name: Bump version
on:
  push:
    branches:
      - master
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@master
    - name: Bump version and push tag
      uses: anothrNick/github-tag-action@master
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        REPO_OWNER: anothrNick
Run Code Online (Sandbox Code Playgroud)