如何以编程方式自动将我的 C# 应用程序问题添加到 Github

How to automate add my c# application issues to Github programmatically

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

我有一个 Error Handler library (ErrorControlSystem) 可以将其附加到 win 应用程序中以在 SQL table.

上引发异常

现在,我想存储 ErrorControlSystem 自身异常,而没有针对自身 Github 存储库问题的目标应用异常。

我该怎么做?

您可以为此使用 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 执行 post 请求。

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

的响应

这是"fast, easy"解决方案。如果您想对 GitHub 问题做更多的事情,@VonC 的答案可能是更好的答案,因为它提供了一个更与对象相关的解决方案

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

可以create issue:

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

Create returns 代表创建的问题的 Task<Issue>