-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathProgram.cs
More file actions
56 lines (46 loc) · 1.6 KB
/
Program.cs
File metadata and controls
56 lines (46 loc) · 1.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
using GitHubIssueManager.Options;
using GitHubIssueManager.Services;
using Microsoft.Azure.Functions.Worker.Builder;
using Microsoft.Azure.WebJobs.Extensions.OpenApi.Core.Abstractions;
using Microsoft.Azure.WebJobs.Extensions.OpenApi.Core.Configurations;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
var builder = FunctionsApplication.CreateBuilder(args);
builder.ConfigureFunctionsWebApplication();
builder.Services.AddSingleton<IOpenApiConfigurationOptions>(_ =>
{
var options = new OpenApiConfigurationOptions
{
Info = new()
{
Version = "1.0.0",
Title = "GitHub issues management API",
Description = "API to manage issues in a GitHub repository",
},
};
var devTunnel = builder.Configuration.GetValue<string>("DevTunnel");
if (!string.IsNullOrEmpty(devTunnel))
{
options.Servers =
[
new() { Url = $"{devTunnel}/api" },
];
}
return options;
});
builder.Services.AddOptions<GitHubOptions>()
.Configure<IConfiguration>((settings, configuration) =>
{
configuration.GetSection("GitHubOptions").Bind(settings);
});
builder.Services.AddOptions<GraphOptions>()
.Configure<IConfiguration>((settings, configuration) =>
{
configuration.GetSection("GraphOptions").Bind(settings);
});
builder.Services.AddSingleton<GraphConnectorService>();
builder.Services.AddSingleton<GitHubIssuesService>();
builder.Build().Run();