【问题标题】:Bitbucket Pull Request refspecBitbucket 拉取请求参考规范
【发布时间】:2016-05-14 23:23:26
【问题描述】:

我搜索了 Atlassian 文档并找到了这个 ref/pull-requests/$PR_NO/from,当我尝试获取它时,我遇到了这个错误 Couldn't find remote ref refs/pull-requests/1/from。有没有办法启用这个参考?还是 webhook 是唯一的选择?我正在尝试使用 Bitbucket 进行 CI 设置。

(我们采用 10 用户付费计划)

【问题讨论】:

    标签: jenkins bitbucket


    【解决方案1】:

    这现在是可能的。您只需在<repo_root>/.git/config 中添加这样一行:

    [remote "origin"]
        url = ...
        fetch = ...
        fetch = +refs/pull-requests/*:refs/pull-requests/*
    

    当你抓取时,你会看到一组全新的 refs 出现:

    $ git fetch origin
    remote: Counting objects: 252, done.
    remote: Compressing objects: 100% (48/48), done.
    remote: Total 82 (delta 20), reused 0 (delta 0)
    Unpacking objects: 100% (82/82), done.
    From ...
     * [new ref]           refs/pull-requests/300/from  -> refs/pull-requests/300/from
     * [new ref]           refs/pull-requests/300/merge -> refs/pull-requests/300/merge
     * [new ref]           refs/pull-requests/302/from  -> refs/pull-requests/302/from
     * [new ref]           refs/pull-requests/323/from  -> refs/pull-requests/323/from
     * [new ref]           refs/pull-requests/323/merge -> refs/pull-requests/323/merge
     * [new ref]           refs/pull-requests/344/from  -> refs/pull-requests/344/from
     * [new ref]           refs/pull-requests/344/merge -> refs/pull-requests/344/merge
     * [new ref]           refs/pull-requests/350/from  -> refs/pull-requests/350/from
     * [new ref]           refs/pull-requests/350/merge -> refs/pull-requests/350/merge
     * [new ref]           refs/pull-requests/355/from  -> refs/pull-requests/355/from
     * [new ref]           refs/pull-requests/355/merge -> refs/pull-requests/355/merge
    

    */from 为您提供公关部门负责人; */merge 为您提供将 PR 与目标分支合并的结果。

    更多详情请见Pull request proficiency: Fetching abilities unlocked!

    【讨论】:

    • 请参阅 this 了解为什么这可能是个坏主意。
    【解决方案2】:
    【解决方案3】:

    Bitbucket Server (Stash) 支持(自托管)

    Stash 支持 refspecs,可通过以下命令使用

    git config --add remote.origin.fetch '+refs/pull-requests//from:refs/remotes/origin/pr/'
    

    您可以检查您的 .git/config 文件以查看其设置是否正确

    [remote "upstream"]
    url = git@stash.atlassian.com:docker/libswarm.git
    fetch = +refs/heads/*:refs/remotes/upstream/*
    fetch = +refs/pull-requests/*/from:refs/remotes/upstream/pr/*
    

    https://www.atlassian.com/blog/archives/how-to-fetch-pull-requests

    Bitbucket Cloud (bitbucket.com) 不支持

    Bitbucket Cloud 目前不支持 refspec 上的 PR,可用选项是 Poll Bitbucket 的 Git 或 API Endpoint

    https://jira.atlassian.com/browse/BCLOUD-5814

    鉴于该请求已被搁置 7 年,明智的做法是不要等待 refspec 实施(截至 2019 年 11 月)

    【讨论】:

    • 请参阅this,了解为什么这可能是个坏主意。
    猜你喜欢
    • 2019-10-19
    • 2018-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-06
    相关资源
    最近更新 更多