📅  最后修改于: 2023-12-03 15:24:46.885000             🧑  作者: Mango
如果你是一个开发者,那么你可能经常使用 GitHub 来管理你的项目。在 GitHub 上,你可以创建问题(issue)来跟踪和管理你项目中的 bug、功能请求等事项。当问题已经得到解决或者不再需要讨论的时候,你可以关闭这个问题。
但是,有时候你可能想知道这个问题何时被关闭。在这篇文章中,我们将介绍如何使用 C# 语言找到 GitHub 问题的关闭日期。
GitHub 提供了一个 GraphQL API,通过这个 API 可以获取到关于 GitHub 上的各种信息,包括问题的信息。我们可以使用 C# 编写程序来调用这个 API,从而获取问题的关闭日期。
以下是一个基本的 C# 程序,用于调用 GitHub GraphQL API 并获取一个问题的关闭日期:
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using Newtonsoft.Json.Linq;
class Program
{
static async System.Threading.Tasks.Task Main(string[] args)
{
// 定义查询字符串,并将 {OWNER}、{REPO} 和 {ISSUE_NUMBER} 替换为实际的值
string query = @"
{
repository(owner: '{OWNER}', name: '{REPO}') {
issue(number: {ISSUE_NUMBER}) {
closedAt
}
}
}
";
query = query.Replace("{OWNER}", "your-username")
.Replace("{REPO}", "your-repository")
.Replace("{ISSUE_NUMBER}", "123");
// 创建 HttpClient 对象,并设置 GitHub API 的请求头
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Add("User-Agent", "GitHubAPI (C#)");
// 构造 HTTP POST 请求的内容
var content = new StringContent("{\"query\": \"" + query.Replace("\"", "\\\"") + "\"}", Encoding.UTF8, "application/json");
// 发送 HTTP POST 请求,并从响应中获取关闭日期信息
var response = await client.PostAsync("https://api.github.com/graphql", content);
var result = await response.Content.ReadAsStringAsync();
var data = JObject.Parse(result)["data"];
var closedAt = (DateTime?)data?["repository"]?["issue"]?["closedAt"];
// 输出关闭日期信息
if (closedAt != null)
{
Console.WriteLine($"This issue was closed at: {closedAt}");
}
else
{
Console.WriteLine("This issue is not closed yet.");
}
}
}
}
使用这个程序,你需要将 {OWNER}
、{REPO}
和 {ISSUE_NUMBER}
替换为实际的值,然后执行程序即可。
本文介绍了如何使用 C# 语言找到 GitHub 问题的关闭日期。通过使用 GitHub GraphQL API,我们可以轻松地获取问题的关闭日期信息,从而更好地管理和跟踪我们的项目。