OPC # 0001: Gitea services
Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
@@ -23,14 +23,22 @@ public static class GiteaEndpoints
|
||||
return app;
|
||||
}
|
||||
|
||||
private static async Task<IResult> GetRepo(GiteaService svc, CancellationToken ct)
|
||||
private static async Task<IResult> GetRepo(GiteaService svc, string? repo, CancellationToken ct)
|
||||
{
|
||||
var repo = await svc.GetRepoAsync(ct);
|
||||
return repo is null ? Results.StatusCode(503) : Results.Ok(repo);
|
||||
var result = await svc.GetRepoAsync(repo, ct);
|
||||
return result is null ? Results.StatusCode(503) : Results.Ok(result);
|
||||
}
|
||||
|
||||
private static async Task<IResult> ListBranches(GiteaService svc, CancellationToken ct) =>
|
||||
Results.Ok(await svc.ListBranchesAsync(ct));
|
||||
private static async Task<IResult> ListBranches(GiteaService svc, string? repo, CancellationToken ct)
|
||||
{
|
||||
// repo=all returns branches from all registered repos, each tagged with repoKey
|
||||
if (repo == "all")
|
||||
{
|
||||
var all = await svc.ListAllBranchesAsync(ct);
|
||||
return Results.Ok(all.Select(x => new { repoKey = x.RepoKey, x.Branch.Name, x.Branch.CommitSha, x.Branch.Protected }));
|
||||
}
|
||||
return Results.Ok(await svc.ListBranchesAsync(repo, ct));
|
||||
}
|
||||
|
||||
private static async Task<IResult> CreateBranch(
|
||||
CreateBranchRequest req, GiteaService svc, CancellationToken ct)
|
||||
@@ -40,40 +48,40 @@ public static class GiteaEndpoints
|
||||
}
|
||||
|
||||
private static async Task<IResult> ListPulls(
|
||||
GiteaService svc, string state = "open", CancellationToken ct = default) =>
|
||||
Results.Ok(await svc.ListPullRequestsAsync(state, ct));
|
||||
GiteaService svc, string state = "open", string? repo = null, CancellationToken ct = default) =>
|
||||
Results.Ok(await svc.ListPullRequestsAsync(state, repo, ct));
|
||||
|
||||
private static async Task<IResult> GetPull(
|
||||
long number, GiteaService svc, CancellationToken ct)
|
||||
long number, GiteaService svc, string? repo = null, CancellationToken ct = default)
|
||||
{
|
||||
var pr = await svc.GetPullRequestAsync(number, ct);
|
||||
var pr = await svc.GetPullRequestAsync(number, repo, ct);
|
||||
return pr is null ? Results.NotFound() : Results.Ok(pr);
|
||||
}
|
||||
|
||||
private static async Task<IResult> CreatePull(
|
||||
CreatePullRequestRequest req, GiteaService svc, CancellationToken ct)
|
||||
CreatePullRequestRequest req, GiteaService svc, string? repo = null, CancellationToken ct = default)
|
||||
{
|
||||
var pr = await svc.CreatePullRequestAsync(req, ct);
|
||||
var pr = await svc.CreatePullRequestAsync(req, repo, ct);
|
||||
return pr is null ? Results.BadRequest("Failed to create PR in Gitea.") : Results.Ok(pr);
|
||||
}
|
||||
|
||||
private static async Task<IResult> ListTags(GiteaService svc, CancellationToken ct) =>
|
||||
Results.Ok(await svc.ListTagsAsync(ct));
|
||||
private static async Task<IResult> ListTags(GiteaService svc, string? repo = null, CancellationToken ct = default) =>
|
||||
Results.Ok(await svc.ListTagsAsync(repo, ct));
|
||||
|
||||
private static async Task<IResult> CreateTag(
|
||||
CreateTagRequest req, GiteaService svc, CancellationToken ct)
|
||||
CreateTagRequest req, GiteaService svc, string? repo = null, CancellationToken ct = default)
|
||||
{
|
||||
var tag = await svc.CreateTagAsync(req, ct);
|
||||
var tag = await svc.CreateTagAsync(req, repo, ct);
|
||||
return tag is null ? Results.BadRequest("Failed to create tag in Gitea.") : Results.Ok(tag);
|
||||
}
|
||||
|
||||
private static async Task<IResult> ListWebhooks(GiteaService svc, CancellationToken ct) =>
|
||||
Results.Ok(await svc.ListWebhooksAsync(ct));
|
||||
private static async Task<IResult> ListWebhooks(GiteaService svc, string? repo = null, CancellationToken ct = default) =>
|
||||
Results.Ok(await svc.ListWebhooksAsync(repo, ct));
|
||||
|
||||
private static async Task<IResult> RegisterWebhook(
|
||||
CreateWebhookRequest req, GiteaService svc, CancellationToken ct)
|
||||
CreateWebhookRequest req, GiteaService svc, string? repo = null, CancellationToken ct = default)
|
||||
{
|
||||
var hook = await svc.RegisterWebhookAsync(req, ct);
|
||||
var hook = await svc.RegisterWebhookAsync(req, repo, ct);
|
||||
return hook is null ? Results.BadRequest("Failed to register webhook in Gitea.") : Results.Ok(hook);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user