【问题标题】:Adding pull request build status to Github将拉取请求构建状态添加到 Github
【发布时间】:2018-06-27 16:32:19
【问题描述】:

我在 VSTS 中有一个用于 Github 的拉取请求触发器。我还想将此触发器添加到 Github 中所需的检查中,并在如下所示的拉取请求页面上显示构建状态。

我还在 Github 上查看了分支保护页面,但没有可用的状态检查。

是否可以在 VSTS 中执行此操作,或者我是否需要创建提到的 PR 状态服务器 here

【问题讨论】:

  • 你有没有成功设置网络挂钩或服务?
  • Github 存储库中有一个 VSTS webhook,VSTS 现在使用这个 webhook 为 PR 启动构建。我还在 webhook 中添加了状态事件,但没有任何改变。
  • 你检查过 VSTS 的日志吗?也许是连接?

标签: azure-devops azure-pipelines


【解决方案1】:

我检查了 Advanced settings => Report build status 选项,VSTS 会自动将提交状态发送到 Github。

【讨论】:

    【解决方案2】:

    在 Azure DevOps 中启用 GitHub commit status checks 的配置似乎已更改。

    1. 确保为您的组织或存储库安装了 Azure Pipelines
    2. 编辑您的 Azure DevOps 构建(管道)
    3. 点击获取来源步骤
    4. 在 GitHub 配置下,选择 Report build status
    5. 保存和队列,如果您愿意)更新的配置

    如果 DevOps 团队中的某个人看到这一点,则应默认启用报告提交状态!

    【讨论】:

      【解决方案3】:

      VSTS中没有这样的设置,你可以参考这个工作流来做:

      1. 获取提交 sha
      2. 通过REST API创建状态检查上下文

      发帖:https://api.github.com/repos/[owner]/[repository]/statuses/[commit sha]

      正文(应用程序/json):

      {
        "state": "success",
        "target_url": "XXX",
        "description": "Build verify",
        "context": "continuous-integration/vsts"
      }
      

      然后在分支保护页面查看相关状态检查:

      注意:target_url 可以是徽章 URL(在构建定义的选项中检查启用的徽章)

      1. 在 VSTS 持续集成(启用持续集成)中为当前提交创建构建定义以通过 REST API 创建状态(与步骤 2:更改提交 sha 和正文相同)
      2. 创建构建定义以通过 VSTS 中的 REST API 更新当前提交的状态(启用拉取请求验证

      【讨论】:

        【解决方案4】:

        通过 Jenkins,可以从管道创建/更新 Pull-Request 状态

        script {
            pullRequest.createStatus(status: "success",
                                     context: "validate-profiles",
                                     description: "Profiles file validated successfully!",
                                     targetUrl: "$RUN_DISPLAY_URL")
        }
        

        可以通过管道完成大量其他事情,避免显式调用 GitHub API

        对 Pull-Request 发表评论

        pullRequest.comment("Your service-profile request is received. Please track ticket progress here: "+ticketData['_links']['web'])
        

        为拉取请求创建和添加标签

        pullRequest.addLabel(env.TICKET_ID)
        

        更新拉取请求的标题

        pullRequest.setTitle("["+env.TICKET_ID+"] Profile Review Request for "+env.CHANGE_TARGET)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-06-15
          • 2015-12-12
          • 2018-07-24
          • 2019-01-09
          • 1970-01-01
          • 2012-09-20
          相关资源
          最近更新 更多