如何使用 C# 以编程方式在我的 Github 存储库中添加问题?
我有一个错误处理程序库 ( ErrorControlSystem
)可以将它附加到 win 应用程序中,以在 SQL 表上引发该异常。
现在,我想ErrorControlSystem
在自我 Github 存储库问题上存储自我异常而没有目标应用程序异常。
我该怎么做?
如何使用 C# 以编程方式在我的 Github 存储库中添加问题?
我有一个错误处理程序库 ( ErrorControlSystem
)可以将它附加到 win 应用程序中,以在 SQL 表上引发该异常。
现在,我想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 进行发布请求。
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 的答案可能会更好,因为它提供了更多与对象相关的解决方案
如果您需要使用 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>
代表创建的问题。