【问题标题】:Getting a branch name I work on with GitHub Webhook on Pull Requests获取我使用 GitHub Webhook on Pull Requests 处理的分支名称
【发布时间】:2018-09-18 13:53:34
【问题描述】:

在 Git Hub 上标记拉取请求时,我试图从 WebHook 触发器中获取所有详细信息。 我从有效负载中获得了很多信息,但我真正需要的一件事是我处理的分支名称,其中包含我打开的拉取请求。

在 GitHub 页面中,我看到: Pavel 想要将 2 个提交合并到 master from

【问题讨论】:

  • 您能否截取您正在谈论的内容以便更清晰?

标签: python git github-api webhooks


【解决方案1】:

以下方法对我有用。 PS:在 CloudBees Jenkins Enterprise 2.263.2.3-rolling 上测试

描述性管道中,我在阶段使用以下代码>阶段块

    stage ('stage_name') {
        steps {
            echo 'hello from common section'
            echo "BRANCH_NAME: ${env.GIT_BRANCH.split("/")[1]}"
        }
    }

【讨论】:

    【解决方案2】:

    所以我以这种方式解决了它,即使可能有更好的方法..

    content 是我通过 WebHook 收到的有效负载 json。

    pull_request_url 是我正在处理的 PR 的 url。

    pr_content 是我在调用 PR url 时收到的 json。

    从那里我只是从 pr_content json 中提取分支名称

    def get_branch_name(content):
        pull_request_url = content['pull_request']['_links']['self']['href']
        pr_content = get(pull_request_url)
        if pr_content.status_code == 200:
            branch_name = (pr_content.json()['head']['label']).split(":")[1]
        else:
            branch_name = 'master'
        return branch_name
    

    【讨论】:

      【解决方案3】:

      这里是拉取请求事件的文档: https://developer.github.com/v3/activity/events/types/#pullrequestevent

      您想过滤掉actionlabeled 的事件。

      那么你的目标分支在$.base.ref,源分支在$.head.ref

      如果您想在 Jenkins 中执行此操作,我可以建议 https://github.com/jenkinsci/generic-webhook-trigger-plugin/

      【讨论】:

        猜你喜欢
        • 2021-05-24
        • 1970-01-01
        • 2018-05-04
        • 2018-09-16
        • 2023-02-24
        • 1970-01-01
        • 2020-06-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多