【问题标题】:How to push a Git server repository issues to Github repository?如何将 Git 服务器存储库问题推送到 Github 存储库?
【发布时间】:2015-08-22 21:50:21
【问题描述】:

我在 Git 服务器 上有一个存储库,例如 Bitbucket,现在我想切换到 Github。所以我成功地在Github 上复制了我的存储库,但是我的存储库问题(近200 个问题)没有复制到Github 存储库!

存在一种无需手动插入即可复制Github 存储库中所有问题的方法!?

【问题讨论】:

  • 如果您的 Git 服务器有 API,请将其与 GitHub's API 一起使用,以避免任何手动工作。
  • bitbucnket 有一个 API,但我不知道如何将我的问题插入 github!请帮帮我?

标签: git github repository bitbucket


【解决方案1】:

正如choroba 上面所说,您可以使用 BitBucket API 来检索您当前的问题列表或特定问题的详细信息。查看https://confluence.atlassian.com/display/BITBUCKET/Use+the+Bitbucket+REST+APIs 了解更多信息。简而言之,您可以向https://api.bitbucket.org/2.0/repositories/<repo-owner-username>/<repo-name>/issues/<ID> 发出请求,并获取问题详细信息的 JSON 响应。您可以在浏览器中转到 https://api.bitbucket.org/2.0/repositories/tutorials/tutorials.bitbucket.org/issues/1 以查看响应的示例。

由于您不想迁移所有问题,您可以反复向https://api.bitbucket.org/2.0/repositories/tutorials/tutorials.bitbucket.org/issues/<ID> 发出请求,其中 ID 的范围从 1 到您有多少问题。

获得现有问题详细信息后,您需要编写一些代码来解析 JSON,然后使用 BitBucket 提供的信息向 GitHub 的 API 发出请求以创建新问题。

您可以通过https://developer.github.com/v3/issues/#create-an-issue 阅读 GitHub 的 API。基本上为此,您将向https://api.github.com/repos/<repo-owner-username>/<repo-name>/issues 发出POST 请求,并随请求提供必要的参数。具体如何执行此操作将取决于您用于发出请求的库。使用 CURL,请求可能看起来像 curl -H "Content-Type: application/json" -X POST -d '{"title":"Found an issue","body":"I'm having a problem with this."}' https://api.github.com/repos/behzad-khosravifar/myRepo/issues

所以把它们放在一起pseudocode 可能看起来像:

for (id = 1 to 100)
    issueRawData = http_get('https://api.bitbucket.org/2.0/repositories/<owner>/<repo>/issues/'+id)
    issueJson = JSON.parse(issueRawData);
    postData = { "title" : issue.title, "body" : issue.content.raw }
    http_post('https://api.github.com/repos/<repo-owner-username>/<repo-name>/issues/'+id, postData)
}

额外和陷阱

  • 遍历所有问题意味着您在 GitHub 中基于已在 BitBucket 中关闭的问题创建问题。您可以检查从 BitBucket 返回的“状态”字段,以有条件地在 GitHub 中创建问题。或者,无论如何创建问题,然后在创建问题后使用 GitHub 的 API 关闭问题。
  • 您需要通过 GitHub(可能还有 BitBucket)进行身份验证。 https://developer.github.com/v3/auth/ 详细介绍了在 GitHub 中创建问题时如何提供身份验证详细信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 2012-08-25
    • 2013-02-14
    • 2011-12-09
    • 2011-07-29
    • 2021-09-11
    • 2019-08-30
    相关资源
    最近更新 更多