Use new projects API
This commit is contained in:
parent
11bca4cf53
commit
8bf483b334
24 changed files with 141 additions and 222 deletions
|
@ -19,21 +19,18 @@ steps:
|
||||||
environment:
|
environment:
|
||||||
ConnectionString:
|
ConnectionString:
|
||||||
from_secret: ConnectionString
|
from_secret: ConnectionString
|
||||||
GitDomain:
|
|
||||||
from_secret: GitDomain
|
|
||||||
GitToken:
|
|
||||||
from_secret: GitToken
|
|
||||||
BlogEndpoint:
|
BlogEndpoint:
|
||||||
from_secret: BlogEndpoint
|
from_secret: BlogEndpoint
|
||||||
|
GitEndpoint:
|
||||||
|
from_secret: GitEndpoint
|
||||||
commands:
|
commands:
|
||||||
- curl -sL https://deb.nodesource.com/setup_12.x | bash -
|
- curl -sL https://deb.nodesource.com/setup_12.x | bash -
|
||||||
- apt-get install -y nodejs
|
- apt-get install -y nodejs
|
||||||
- chmod +x ./build.sh
|
- chmod +x ./build.sh
|
||||||
- ./build.sh
|
- ./build.sh
|
||||||
- sed -i "s/<DatabaseConnectionString>/$ConnectionString/g" output/appsettings.json
|
- sed -i "s/<DatabaseConnectionString>/$ConnectionString/g" output/appsettings.json
|
||||||
- sed -i "s/<GitDomain>/$GitDomain/g" output/appsettings.json
|
|
||||||
- sed -i "s/<GitToken>/$GitToken/g" output/appsettings.json
|
|
||||||
- sed -i "s/<BlogEndpoint>/$BlogEndpoint/g" output/appsettings.json
|
- sed -i "s/<BlogEndpoint>/$BlogEndpoint/g" output/appsettings.json
|
||||||
|
- sed -i "s/<GitEndpoint>/$GitEndpoint/g" output/appsettings.json
|
||||||
- cp Infrastructure/website.service output/
|
- cp Infrastructure/website.service output/
|
||||||
- cp -r ./output/* /output
|
- cp -r ./output/* /output
|
||||||
- name: restart service
|
- name: restart service
|
||||||
|
|
76
Website.Tests/Data/GitApiTests.cs
Normal file
76
Website.Tests/Data/GitApiTests.cs
Normal file
|
@ -0,0 +1,76 @@
|
||||||
|
using System;
|
||||||
|
using System.Net.Http;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using FluentAssertions;
|
||||||
|
using Website.Data;
|
||||||
|
using Website.Models.Git;
|
||||||
|
using Xunit;
|
||||||
|
|
||||||
|
namespace Website.Tests.Data {
|
||||||
|
public class GitApiTests {
|
||||||
|
[Fact]
|
||||||
|
public async Task GetRepositories_WithUser_ReturnsRepositoryCollection() {
|
||||||
|
const string json = @"[{""name"":""name"",""url"":""url""}]";
|
||||||
|
var httpClient = new HttpClientBuilder()
|
||||||
|
.WithMethod(HttpMethod.Get)
|
||||||
|
.WithUrl("/repositories")
|
||||||
|
.WithQueryString("user", "test")
|
||||||
|
.WithResponse(json)
|
||||||
|
.Build();
|
||||||
|
|
||||||
|
var expectation = new[] {new Repository {Url = "url", Name = "name"}};
|
||||||
|
|
||||||
|
var api = new GitApi(httpClient);
|
||||||
|
(await api.GetRepositories("test")).Should().BeEquivalentTo(expectation);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task GetBranches_WithUserAndRepository_ReturnsBranchCollection() {
|
||||||
|
const string json = @"[{""name"":""master"",""commit"":{""id"":""0923b554309ef562fca978c7e981b3812bc4af40"",""message"":""message"",""timestamp"":""2020-04-11T14:09:29+01:00"",""url"":null}}]";
|
||||||
|
var httpClient = new HttpClientBuilder()
|
||||||
|
.WithMethod(HttpMethod.Get)
|
||||||
|
.WithUrl("/branches")
|
||||||
|
.WithQueryString("user", "test")
|
||||||
|
.WithQueryString("repository", "repo")
|
||||||
|
.WithResponse(json)
|
||||||
|
.Build();
|
||||||
|
|
||||||
|
var expectation = new[] {
|
||||||
|
new Branch {
|
||||||
|
Name = "master",
|
||||||
|
Commit = new Commit {
|
||||||
|
Id = "0923b554309ef562fca978c7e981b3812bc4af40",
|
||||||
|
Message = "message",
|
||||||
|
Timestamp = new DateTimeOffset(2020, 04, 11, 14, 09, 29, TimeSpan.FromHours(1))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
var api = new GitApi(httpClient);
|
||||||
|
(await api.GetBranches("test", "repo")).Should().BeEquivalentTo(expectation);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task GetCommit_WithUserAndRepositoryAndHash_ReturnsCommit() {
|
||||||
|
const string json = @"{""id"":""0923b554309ef562fca978c7e981b3812bc4af40"",""message"":""message"",""timestamp"":""2020-04-11T14:09:29+01:00"",""url"":""https://test.com/test/repo/commit/0923b554309ef562fca978c7e981b3812bc4af40""}";
|
||||||
|
var httpClient = new HttpClientBuilder()
|
||||||
|
.WithMethod(HttpMethod.Get)
|
||||||
|
.WithUrl("/commit")
|
||||||
|
.WithQueryString("user", "test")
|
||||||
|
.WithQueryString("repository", "repo")
|
||||||
|
.WithQueryString("hash", "hash")
|
||||||
|
.WithResponse(json)
|
||||||
|
.Build();
|
||||||
|
|
||||||
|
var expectation = new Commit {
|
||||||
|
Id = "0923b554309ef562fca978c7e981b3812bc4af40",
|
||||||
|
Message = "message",
|
||||||
|
Timestamp = new DateTimeOffset(2020, 04, 11, 14, 09, 29, TimeSpan.FromHours(1)),
|
||||||
|
Url = "https://test.com/test/repo/commit/0923b554309ef562fca978c7e981b3812bc4af40"
|
||||||
|
};
|
||||||
|
|
||||||
|
var api = new GitApi(httpClient);
|
||||||
|
(await api.GetCommit("test", "repo", "hash")).Should().BeEquivalentTo(expectation);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -7,18 +7,18 @@ using System.Linq;
|
||||||
namespace Website.Controllers {
|
namespace Website.Controllers {
|
||||||
public class HomeController : Controller {
|
public class HomeController : Controller {
|
||||||
private readonly IBlogApi _blogApi;
|
private readonly IBlogApi _blogApi;
|
||||||
private readonly GitServerApi _api;
|
private readonly IGitApi _api;
|
||||||
|
|
||||||
public HomeController(IBlogApi blogApi, GitServerApi api) {
|
public HomeController(IBlogApi blogApi, IGitApi api) {
|
||||||
_api = api;
|
_api = api;
|
||||||
_blogApi = blogApi;
|
_blogApi = blogApi;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<IActionResult> Index() {
|
public async Task<IActionResult> Index() {
|
||||||
var post = await _blogApi.GetLatestPostAsync();
|
var post = await _blogApi.GetLatestPostAsync();
|
||||||
var repo = (await _api.GetRepositories()).First();
|
var repo = (await _api.GetRepositories("rob")).First();
|
||||||
var branch = (await _api.GetBranches(repo.Name)).First();
|
var branch = (await _api.GetBranches("rob", repo.Name)).First();
|
||||||
var commit = await _api.GetCommit(repo.Name, branch.Commit.Id);
|
var commit = await _api.GetCommit("rob", repo.Name, branch.Commit.Id);
|
||||||
|
|
||||||
var model = new HomeViewModel {
|
var model = new HomeViewModel {
|
||||||
BlogPost = new BlogPostViewModel(post, false),
|
BlogPost = new BlogPostViewModel(post, false),
|
||||||
|
|
16
Website/Data/GitApi.cs
Normal file
16
Website/Data/GitApi.cs
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Net.Http;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Website.Models.Git;
|
||||||
|
|
||||||
|
namespace Website.Data {
|
||||||
|
public class GitApi : ApiClient, IGitApi {
|
||||||
|
|
||||||
|
public GitApi(HttpClient client) : base(client) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<IEnumerable<Repository>> GetRepositories(string user) => await Get<IEnumerable<Repository>>("repositories", new { user });
|
||||||
|
public async Task<IEnumerable<Branch>> GetBranches(string user, string repository) => await Get<IEnumerable<Branch>>("branches", new {user, repository});
|
||||||
|
public async Task<Commit> GetCommit(string user, string repository, string hash) => await Get<Commit>("commit", new {user, repository, hash});
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,39 +0,0 @@
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Net.Http;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using Newtonsoft.Json;
|
|
||||||
using Website.Data.States.Git;
|
|
||||||
using Website.Models.Git;
|
|
||||||
|
|
||||||
namespace Website.Data {
|
|
||||||
public class GitServerApi {
|
|
||||||
private readonly HttpClient _client;
|
|
||||||
private readonly string _domain;
|
|
||||||
private readonly string _token;
|
|
||||||
|
|
||||||
public GitServerApi(HttpClient client, string domain, string token) {
|
|
||||||
_client = client;
|
|
||||||
_domain = domain;
|
|
||||||
_token = token;
|
|
||||||
}
|
|
||||||
|
|
||||||
public async Task<IEnumerable<Repository>> GetRepositories() {
|
|
||||||
var response = await _client.GetStringAsync($"https://{_domain}/api/v1/users/rob/repos?token={_token}");
|
|
||||||
var states = JsonConvert.DeserializeObject<IEnumerable<RepositoryState>>(response);
|
|
||||||
return states.Select(state => new Repository(state));
|
|
||||||
}
|
|
||||||
|
|
||||||
public async Task<IEnumerable<Branch>> GetBranches(string repository) {
|
|
||||||
var response = await _client.GetStringAsync($"https://{_domain}/api/v1/repos/rob/{repository}/branches?token={_token}");
|
|
||||||
var states = JsonConvert.DeserializeObject<IEnumerable<BranchState>>(response);
|
|
||||||
return states.Select(state => new Branch(state));
|
|
||||||
}
|
|
||||||
|
|
||||||
public async Task<Commit> GetCommit(string repository, string hash) {
|
|
||||||
var response = await _client.GetStringAsync($"https://{_domain}/api/v1/repos/rob/{repository}/commits/{hash}?token={_token}");
|
|
||||||
var state = JsonConvert.DeserializeObject<CommitDetailsState>(response);
|
|
||||||
return new Commit(state);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
11
Website/Data/IGitApi.cs
Normal file
11
Website/Data/IGitApi.cs
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Website.Models.Git;
|
||||||
|
|
||||||
|
namespace Website.Data {
|
||||||
|
public interface IGitApi {
|
||||||
|
Task<IEnumerable<Repository>> GetRepositories(string user);
|
||||||
|
Task<IEnumerable<Branch>> GetBranches(string user, string repository);
|
||||||
|
Task<Commit> GetCommit(string user, string repository, string hash);
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,10 +0,0 @@
|
||||||
using System;
|
|
||||||
|
|
||||||
namespace Website.Data.States.Git {
|
|
||||||
public class AuthorState {
|
|
||||||
public string name { get; set; }
|
|
||||||
public string email { get; set; }
|
|
||||||
public string username { get; set; }
|
|
||||||
public DateTimeOffset date { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
namespace Website.Data.States.Git {
|
|
||||||
public class BranchState
|
|
||||||
{
|
|
||||||
public string name { get; set; }
|
|
||||||
public CommitState commit { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
namespace Website.Data.States.Git {
|
|
||||||
public class CommitDetailsState {
|
|
||||||
public string url { get; set; }
|
|
||||||
public string sha { get; set; }
|
|
||||||
public string html_url { get; set; }
|
|
||||||
public CommitState commit { get; set; }
|
|
||||||
public UserState author { get; set; }
|
|
||||||
public UserState committer { get; set; }
|
|
||||||
public CommitPointerState[] parents { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,6 +0,0 @@
|
||||||
namespace Website.Data.States.Git {
|
|
||||||
public partial class CommitPointerState {
|
|
||||||
public string url { get; set; }
|
|
||||||
public string sha { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
using System;
|
|
||||||
|
|
||||||
namespace Website.Data.States.Git {
|
|
||||||
public class CommitState {
|
|
||||||
public string id { get; set; }
|
|
||||||
public string message { get; set; }
|
|
||||||
public string url { get; set; }
|
|
||||||
public AuthorState author { get; set; }
|
|
||||||
public AuthorState committer { get; set; }
|
|
||||||
public object added { get; set; }
|
|
||||||
public object removed { get; set; }
|
|
||||||
public object modified { get; set; }
|
|
||||||
public DateTimeOffset timestamp { get; set; }
|
|
||||||
public CommitPointerState tree { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,10 +0,0 @@
|
||||||
namespace Website.Data.States.Git {
|
|
||||||
public class RepositoryOwnerState {
|
|
||||||
public int id { get; set; }
|
|
||||||
public string username { get; set; }
|
|
||||||
public string login { get; set; }
|
|
||||||
public string full_name { get; set; }
|
|
||||||
public string email { get; set; }
|
|
||||||
public string avatar_url { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
namespace Website.Data.States.Git {
|
|
||||||
public class RepositoryPermissionsState {
|
|
||||||
public bool admin { get; set; }
|
|
||||||
public bool push { get; set; }
|
|
||||||
public bool pull { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,31 +0,0 @@
|
||||||
using System;
|
|
||||||
|
|
||||||
namespace Website.Data.States.Git {
|
|
||||||
public class RepositoryState {
|
|
||||||
public int id { get; set; }
|
|
||||||
public RepositoryOwnerState owner { get; set; }
|
|
||||||
public string name { get; set; }
|
|
||||||
public string full_name { get; set; }
|
|
||||||
public string description { get; set; }
|
|
||||||
public bool _private { get; set; }
|
|
||||||
public bool fork { get; set; }
|
|
||||||
public object parent { get; set; }
|
|
||||||
public bool empty { get; set; }
|
|
||||||
public bool mirror { get; set; }
|
|
||||||
public int size { get; set; }
|
|
||||||
public string html_url { get; set; }
|
|
||||||
public string ssh_url { get; set; }
|
|
||||||
public string clone_url { get; set; }
|
|
||||||
public string website { get; set; }
|
|
||||||
public int stars_count { get; set; }
|
|
||||||
public int forks_count { get; set; }
|
|
||||||
public int watchers_count { get; set; }
|
|
||||||
public int open_issues_count { get; set; }
|
|
||||||
public string default_branch { get; set; }
|
|
||||||
public DateTime created_at { get; set; }
|
|
||||||
public DateTime updated_at { get; set; }
|
|
||||||
public RepositoryPermissionsState permissions { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
namespace Website.Data.States.Git {
|
|
||||||
public partial class UserState {
|
|
||||||
public long id { get; set; }
|
|
||||||
public string username { get; set; }
|
|
||||||
public string login { get; set; }
|
|
||||||
public string full_name { get; set; }
|
|
||||||
public string email { get; set; }
|
|
||||||
public string avatar_url { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,14 +1,6 @@
|
||||||
using Website.Data.States.Git;
|
namespace Website.Models.Git {
|
||||||
|
|
||||||
namespace Website.Models.Git {
|
|
||||||
public class Branch {
|
public class Branch {
|
||||||
|
public string Name { get; set; }
|
||||||
public Branch(BranchState state) {
|
public Commit Commit { get; set; }
|
||||||
Name = state.name;
|
|
||||||
Commit = new Commit(state.commit);
|
|
||||||
}
|
|
||||||
|
|
||||||
public string Name { get; }
|
|
||||||
public Commit Commit { get; private set; }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,24 +1,10 @@
|
||||||
using System;
|
using System;
|
||||||
using Website.Data.States.Git;
|
|
||||||
|
|
||||||
namespace Website.Models.Git {
|
namespace Website.Models.Git {
|
||||||
public class Commit {
|
public class Commit {
|
||||||
public Commit(CommitState commit) {
|
public string Id { get; set; }
|
||||||
Id = commit.id;
|
public string Message { get; set; }
|
||||||
Message = commit.message;
|
public DateTimeOffset Timestamp { get; set; }
|
||||||
Timestamp = commit.timestamp;
|
public string Url { get; set; }
|
||||||
}
|
|
||||||
|
|
||||||
public Commit(CommitDetailsState commit) {
|
|
||||||
Id = commit.sha;
|
|
||||||
Message = commit.commit.message;
|
|
||||||
Timestamp = commit.commit.author.date;
|
|
||||||
Url = commit.html_url.Replace("/commits/", "/commit/");
|
|
||||||
}
|
|
||||||
|
|
||||||
public string Id { get; }
|
|
||||||
public string Message { get; }
|
|
||||||
public DateTimeOffset Timestamp { get; }
|
|
||||||
public string Url { get; }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,12 +1,5 @@
|
||||||
using Website.Data.States.Git;
|
namespace Website.Models.Git {
|
||||||
|
|
||||||
namespace Website.Models.Git {
|
|
||||||
public class Repository {
|
public class Repository {
|
||||||
public Repository(RepositoryState state) {
|
|
||||||
Name = state.name;
|
|
||||||
Url = state.html_url;
|
|
||||||
}
|
|
||||||
|
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
public string Url { get; set; }
|
public string Url { get; set; }
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,7 +32,14 @@ namespace Website
|
||||||
});
|
});
|
||||||
|
|
||||||
services.AddSingleton(Configuration);
|
services.AddSingleton(Configuration);
|
||||||
RegisterRepositories(services);
|
services.AddSingleton<IDatabaseProvider, MySQLDatabaseProvider>()
|
||||||
|
.AddSingleton<UserRepository, UserRepository>();
|
||||||
|
|
||||||
|
services.AddHttpClient<IGitApi, GitApi>(client => client.BaseAddress = new Uri(Configuration["gitApiEndpoint"]))
|
||||||
|
.ConfigurePrimaryHttpMessageHandler(() => new HttpClientHandler {ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => true});
|
||||||
|
|
||||||
|
services.AddHttpClient<IBlogApi, BlogApi>(client => client.BaseAddress = new Uri(Configuration["blogApiEndpoint"]))
|
||||||
|
.ConfigurePrimaryHttpMessageHandler(() => new HttpClientHandler {ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => true});
|
||||||
|
|
||||||
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).AddCookie();
|
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).AddCookie();
|
||||||
|
|
||||||
|
@ -43,16 +50,6 @@ namespace Website
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void RegisterRepositories(IServiceCollection services) =>
|
|
||||||
services.AddSingleton<IDatabaseProvider, MySQLDatabaseProvider>()
|
|
||||||
.AddSingleton<IBlogApi, BlogApi>()
|
|
||||||
.AddSingleton<UserRepository, UserRepository>()
|
|
||||||
.AddSingleton(new GitServerApi(new HttpClient(), Configuration["gitDomain"], Configuration["gitToken"]))
|
|
||||||
.AddHttpClient<IBlogApi, BlogApi>(client => client.BaseAddress = new Uri(Configuration["blogApiEndpoint"]))
|
|
||||||
.ConfigurePrimaryHttpMessageHandler(() => new HttpClientHandler {
|
|
||||||
ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => true
|
|
||||||
});
|
|
||||||
|
|
||||||
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
|
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
|
||||||
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
|
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
|
||||||
{
|
{
|
||||||
|
|
|
@ -5,14 +5,14 @@ using Website.Data;
|
||||||
|
|
||||||
namespace Website.ViewComponents {
|
namespace Website.ViewComponents {
|
||||||
public class ProjectNavigationViewComponent :ViewComponent {
|
public class ProjectNavigationViewComponent :ViewComponent {
|
||||||
private readonly GitServerApi _api;
|
private readonly IGitApi _api;
|
||||||
|
|
||||||
public ProjectNavigationViewComponent(GitServerApi api) {
|
public ProjectNavigationViewComponent(IGitApi api) {
|
||||||
_api = api;
|
_api = api;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<IViewComponentResult> InvokeAsync() {
|
public async Task<IViewComponentResult> InvokeAsync() {
|
||||||
var repositories = await _api.GetRepositories();
|
var repositories = await _api.GetRepositories("rob");
|
||||||
return View(repositories.Take(5));
|
return View(repositories.Take(5));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<Target Name="BuildCss" BeforeTargets="Build">
|
<Target Name="BuildCss" BeforeTargets="Build">
|
||||||
<Exec WorkingDirectory="$(ProjectDir)" Command="npm install" />
|
<!--<Exec WorkingDirectory="$(ProjectDir)" Command="npm install" />
|
||||||
<Exec WorkingDirectory="$(ProjectDir)" Command="npx gulp compile_scss" />
|
<Exec WorkingDirectory="$(ProjectDir)" Command="npx gulp compile_scss" />-->
|
||||||
</Target>
|
</Target>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -9,7 +9,6 @@
|
||||||
"ConnectionStrings": {
|
"ConnectionStrings": {
|
||||||
"database": "Server=localhost;User ID=user;Password=pass;Database=db"
|
"database": "Server=localhost;User ID=user;Password=pass;Database=db"
|
||||||
},
|
},
|
||||||
"gitDomain": "",
|
"blogApiEndpoint": "",
|
||||||
"gitToken": "",
|
"gitApiEndpoint": ""
|
||||||
"blogApiEndpoint": ""
|
|
||||||
}
|
}
|
|
@ -7,9 +7,8 @@
|
||||||
"ConnectionStrings": {
|
"ConnectionStrings": {
|
||||||
"database": "<DatabaseConnectionString>"
|
"database": "<DatabaseConnectionString>"
|
||||||
},
|
},
|
||||||
"gitDomain": "<GitDomain>",
|
|
||||||
"gitToken": "<GitToken>",
|
|
||||||
"blogApiEndpoint": "<BlogEndpoint>",
|
"blogApiEndpoint": "<BlogEndpoint>",
|
||||||
|
"gitApiEndpoint": "<GitEndpoint>",
|
||||||
"AllowedHosts": "*",
|
"AllowedHosts": "*",
|
||||||
"Kestrel": {
|
"Kestrel": {
|
||||||
"EndPoints": {
|
"EndPoints": {
|
||||||
|
|
|
@ -2,6 +2,6 @@
|
||||||
|
|
||||||
sed \
|
sed \
|
||||||
-e 's/"database": "Server=.*;User ID=.*;Password=.*;Database=.*"/"database": "Server=localhost;User ID=user;Password=pass;Database=db"/g' \
|
-e 's/"database": "Server=.*;User ID=.*;Password=.*;Database=.*"/"database": "Server=localhost;User ID=user;Password=pass;Database=db"/g' \
|
||||||
-e 's/"gitDomain": ".*"/"gitDomain": ""/g' \
|
-e 's/"blogApiEndpoint": ".*"/"blogApiEndpoint": ""/g' \
|
||||||
-e 's/"gitToken": ".*"/"gitToken": ""/g' \
|
-e 's/"gitApiEndpoint": ".*"/"gitApiEndpoint": ""/g' \
|
||||||
$1
|
$1
|
Loading…
Add table
Add a link
Reference in a new issue