10

如何使用 C# 以编程方式在我的 Github 存储库中添加问题?

我有一个错误处理程序库 ( ErrorControlSystem)可以将它附加到 win 应用程序中,以在 SQL 表上引发该异常。

现在,我想ErrorControlSystem在自我 Github 存储库问题上存储自我异常而没有目标应用程序异常。

我该怎么做?

4

2 回答 2

15

您可以为此使用 GitHub API。创建一个 webhook 并通过以下方式添加问题:

POST /repos/:owner/:repo/issues

来自https://developer.github.com/v3/issues/的示例

{
  "title": "Found a bug",
  "body": "I'm having a problem with this.",
  "assignee": "octocat",
  "milestone": 1,
  "labels": [
    "Label1",
    "Label2"
  ]
}

所以你所要做的就是一个 HTTP - POST 命令来添加一个问题。

您可以使用 WebRequest 进行发布请求。

api的完整描述: https ://api.github.com/repos/octocat/Hello-World/issues/1347

完整的 C# 示例:

public void CreateBug(Exception ex) {
  WebRequest request = WebRequest.Create ("https://api.github.com/repos/yourUserName/YourRepo/issues ");
  request.Method = "POST";
  string postData = "{'title':'exception occured!', 'body':'{0}','assignee': 'yourUserName'}";
  byte[] byteArray = Encoding.UTF8.GetBytes (string.Format(postData,ex));
  request.ContentLength = byteArray.Length;
  Stream dataStream = request.GetRequestStream ();
  dataStream.Write (byteArray, 0, byteArray.Length);
  dataStream.Close ();
  WebResponse response = request.GetResponse ();
}

现在您的问题已创建,并且响应包含来自 GitHub 的响应

这是“快速、简单”的解决方案。如果您想在 GitHub 问题上做更多事情,@VonC 的答案可能会更好,因为它提供了更多与对象相关的解决方案

于 2015-05-21T11:26:32.183 回答
14

如果您需要使用 C# 以编程方式在 GitHub 存储库上创建问题,可以参考octokit/octokit.net将使用 GitHub API 的 C# 项目。

它可以产生问题

var createIssue = new NewIssue("this thing doesn't work");
var issue = await _issuesClient.Create("octokit", "octokit.net", createIssue);

Create返回一个Task<Issue>代表创建的问题。

于 2015-05-21T11:26:46.773 回答