Skip to content

Commit af1fa7d

Browse files
committed
first commit
1 parent edb4dfd commit af1fa7d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+3397
-1
lines changed

.editorconfig

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# EditorConfig: https://EditorConfig.org
2+
3+
root = true
4+
5+
# All Files
6+
[*]
7+
charset = utf-8
8+
indent_style = space
9+
indent_size = 4
10+
insert_final_newline = true
11+
trim_trailing_whitespace = true
12+
13+
# XML Configuration Files
14+
[*.{xml,config,props,targets,nuspec,resx,ruleset,vsixmanifest,vsct,refactorlog,runsettings}]
15+
indent_size = 2
16+
17+
# JSON Files
18+
[*.{json,json5,webmanifest}]
19+
indent_size = 2
20+
21+
# Project Files
22+
[*.{csproj,sqlproj}]
23+
indent_size = 2
24+
25+
# YAML Files
26+
[*.{yml,yaml}]
27+
indent_size = 2
28+
29+
# Markdown Files
30+
[*.md]
31+
trim_trailing_whitespace = false
32+
33+
# Web Files
34+
[*.{htm,html,js,jsm,ts,tsx,css,sass,scss,less,pcss,svg,vue}]
35+
indent_size = 2
36+
37+
# Batch Files
38+
[*.{cmd,bat}]
39+
end_of_line = crlf
40+
41+
# Bash Files
42+
[*.sh]
43+
end_of_line = lf
44+
45+
[*.{cs,vb}]
46+
dotnet_sort_system_directives_first = true
47+
dotnet_separate_import_directive_groups = true
48+
dotnet_style_namespace_match_folder = true
49+
50+
[*.cs]
51+
csharp_using_directive_placement = outside_namespace
52+
csharp_style_namespace_declarations = file_scoped:warning

.gitattributes

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
###############################################################################
2+
# Set default behavior to automatically normalize line endings.
3+
###############################################################################
4+
* text=auto
5+
6+
###############################################################################
7+
# Set default behavior for command prompt diff.
8+
#
9+
# This is need for earlier builds of msysgit that does not have it on by
10+
# default for csharp files.
11+
# Note: This is only used by command line
12+
###############################################################################
13+
#*.cs diff=csharp
14+
15+
###############################################################################
16+
# Set the merge driver for project and solution files
17+
#
18+
# Merging from the command prompt will add diff markers to the files if there
19+
# are conflicts (Merging from VS is not affected by the settings below, in VS
20+
# the diff markers are never inserted). Diff markers may cause the following
21+
# file extensions to fail to load in VS. An alternative would be to treat
22+
# these files as binary and thus will always conflict and require user
23+
# intervention with every merge. To do so, just uncomment the entries below
24+
###############################################################################
25+
#*.sln merge=binary
26+
#*.csproj merge=binary
27+
#*.vbproj merge=binary
28+
#*.vcxproj merge=binary
29+
#*.vcproj merge=binary
30+
#*.dbproj merge=binary
31+
#*.fsproj merge=binary
32+
#*.lsproj merge=binary
33+
#*.wixproj merge=binary
34+
#*.modelproj merge=binary
35+
#*.sqlproj merge=binary
36+
#*.wwaproj merge=binary
37+
38+
###############################################################################
39+
# behavior for image files
40+
#
41+
# image files are treated as binary by default.
42+
###############################################################################
43+
#*.jpg binary
44+
#*.png binary
45+
#*.gif binary
46+
47+
###############################################################################
48+
# diff behavior for common document formats
49+
#
50+
# Convert binary document formats to text before diffing them. This feature
51+
# is only available from the command line. Turn it on by uncommenting the
52+
# entries below.
53+
###############################################################################
54+
#*.doc diff=astextplain
55+
#*.DOC diff=astextplain
56+
#*.docx diff=astextplain
57+
#*.DOCX diff=astextplain
58+
#*.dot diff=astextplain
59+
#*.DOT diff=astextplain
60+
#*.pdf diff=astextplain
61+
#*.PDF diff=astextplain
62+
#*.rtf diff=astextplain
63+
#*.RTF diff=astextplain

.github/dependabot.yml

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: "github-actions"
4+
directory: "/"
5+
schedule:
6+
interval: daily
7+
time: "01:00"
8+
timezone: "America/Chicago"
9+
open-pull-requests-limit: 10
10+
11+
- package-ecosystem: nuget
12+
directory: "/"
13+
schedule:
14+
interval: daily
15+
time: "02:00"
16+
timezone: "America/Chicago"
17+
open-pull-requests-limit: 10
18+
ignore:
19+
- dependency-name: "Microsoft.CodeAnalysis.CSharp"
20+
groups:
21+
Azure:
22+
patterns:
23+
- "Azure.*"
24+
- "Microsoft.Azure.*"
25+
- "Microsoft.Extensions.Azure"
26+
AspNetCoreHealthChecks:
27+
patterns:
28+
- "AspNetCore.HealthChecks.*"
29+
AspNetCore:
30+
patterns:
31+
- "Microsoft.AspNetCore.*"
32+
- "Microsoft.Extensions.Features"
33+
MicrosoftExtensions:
34+
patterns:
35+
- "Microsoft.Extensions.*"
36+
EntityFrameworkCore:
37+
patterns:
38+
- "Microsoft.EntityFrameworkCore.*"
39+
OpenTelemetry:
40+
patterns:
41+
- "OpenTelemetry.*"
42+
Serilog:
43+
patterns:
44+
- "Serilog"
45+
- "Serilog.*"
46+
Hangfire:
47+
patterns:
48+
- "Hangfire"
49+
- "Hangfire.*"
50+
Testcontainers:
51+
patterns:
52+
- "Testcontainers.*"
53+
xUnit:
54+
patterns:
55+
- "xunit"
56+
- "xunit.assert"
57+
- "xunit.core"
58+
- "xunit.extensibility.*"
59+
- "xunit.runner.*"

.github/workflows/dotnet.yml

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
name: Build
2+
3+
env:
4+
DOTNET_NOLOGO: true
5+
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
6+
DOTNET_ENVIRONMENT: github
7+
ASPNETCORE_ENVIRONMENT: github
8+
BUILD_PATH: "${{github.workspace}}/artifacts"
9+
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
10+
11+
on:
12+
push:
13+
branches:
14+
- main
15+
- develop
16+
tags:
17+
- "v*"
18+
pull_request:
19+
branches:
20+
- main
21+
- develop
22+
23+
jobs:
24+
build:
25+
runs-on: ubuntu-latest
26+
27+
steps:
28+
- name: Checkout
29+
uses: actions/checkout@v4
30+
with:
31+
fetch-depth: 0
32+
33+
- name: Install .NET
34+
uses: actions/setup-dotnet@v4
35+
with:
36+
dotnet-version: 8.0.x
37+
38+
- name: Restore Dependencies
39+
run: dotnet restore
40+
41+
- name: Build Solution
42+
run: dotnet build --no-restore --configuration Release
43+
44+
- name: Run Test
45+
run: dotnet test --no-build --configuration Release --collect:"XPlat Code Coverage" --settings coverlet.runsettings
46+
47+
- name: Report Coverage
48+
if: success()
49+
uses: coverallsapp/github-action@v2
50+
with:
51+
file: "${{github.workspace}}/test/*/TestResults/*/coverage.info"
52+
format: lcov
53+
54+
- name: Create Packages
55+
if: success() && github.event_name != 'pull_request'
56+
run: dotnet pack --configuration Release --no-build --output "${{env.BUILD_PATH}}"
57+
58+
- name: Upload Packages
59+
if: success() && github.event_name != 'pull_request'
60+
uses: actions/upload-artifact@v4
61+
with:
62+
name: packages
63+
path: "${{env.BUILD_PATH}}"
64+
65+
deploy:
66+
runs-on: ubuntu-latest
67+
needs: build
68+
if: success() && github.event_name != 'pull_request' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v'))
69+
70+
steps:
71+
- name: Download Artifact
72+
uses: actions/download-artifact@v4
73+
with:
74+
name: packages
75+
76+
- name: Publish Packages GitHub
77+
run: |
78+
for package in $(find -name "*.nupkg"); do
79+
echo "${0##*/}": Pushing $package...
80+
dotnet nuget push $package --source https://nuget.pkg.github.com/loresoft/index.json --api-key ${{ secrets.GITHUB_TOKEN }} --skip-duplicate
81+
done
82+
83+
- name: Publish Packages feedz
84+
run: |
85+
for package in $(find -name "*.nupkg"); do
86+
echo "${0##*/}": Pushing $package...
87+
dotnet nuget push $package --source https://f.feedz.io/loresoft/open/nuget/index.json --api-key ${{ secrets.FEEDDZ_KEY }} --skip-duplicate
88+
done
89+
90+
- name: Publish Packages Nuget
91+
if: startsWith(github.ref, 'refs/tags/v')
92+
run: |
93+
for package in $(find -name "*.nupkg"); do
94+
echo "${0##*/}": Pushing $package...
95+
dotnet nuget push $package --source https://api.nuget.org/v3/index.json --api-key ${{ secrets.NUGET_KEY }} --skip-duplicate
96+
done

.github/workflows/merge.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: Dependabot Auto-Merge
2+
on: pull_request
3+
4+
permissions:
5+
contents: write
6+
pull-requests: write
7+
8+
jobs:
9+
dependabot:
10+
runs-on: ubuntu-latest
11+
if: github.actor == 'dependabot[bot]'
12+
13+
steps:
14+
- name: Dependabot Metadata
15+
id: metadata
16+
uses: dependabot/fetch-metadata@v2
17+
with:
18+
github-token: "${{ secrets.GITHUB_TOKEN }}"
19+
20+
- name: Dependabot Auto-Merge PRs
21+
run: gh pr merge --auto --merge "$PR_URL"
22+
env:
23+
PR_URL: ${{github.event.pull_request.html_url}}
24+
GH_TOKEN: ${{secrets.GITHUB_TOKEN}}

.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -396,3 +396,10 @@ FodyWeavers.xsd
396396

397397
# JetBrains Rider
398398
*.sln.iml
399+
400+
# Custom
401+
/artifacts
402+
*.GhostDoc.xml
403+
coverage.xml
404+
coverage.opencover.xml
405+
*.received.txt

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
1-
# LinkBuilder.Generator
1+
# RouteLink.Generators
2+
23
Source generator to create a link builder from route attributes

RouteLink.Generators.sln

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
2+
Microsoft Visual Studio Solution File, Format Version 12.00
3+
# 17
4+
VisualStudioVersion = 17.0.31903.59
5+
MinimumVisualStudioVersion = 10.0.40219.1
6+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RouteLink.Generators", "src\RouteLink.Generators\RouteLink.Generators.csproj", "{52D22058-9985-4AE3-8AEE-1E2A68A6AC20}"
7+
EndProject
8+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build", "Build", "{89A8DB30-7715-4CE9-A057-925D97D21512}"
9+
ProjectSection(SolutionItems) = preProject
10+
.github\dependabot.yml = .github\dependabot.yml
11+
src\Directory.Build.props = src\Directory.Build.props
12+
.github\workflows\dotnet.yml = .github\workflows\dotnet.yml
13+
README.md = README.md
14+
EndProjectSection
15+
EndProject
16+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{74029119-636B-4364-998D-E9DFD2BB6DBF}"
17+
EndProject
18+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RouteLink.Performance", "test\RouteLink.Performance\RouteLink.Performance.csproj", "{4ABB26B7-14C3-45BE-BE3D-153954745F15}"
19+
EndProject
20+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RouteLink.Generators.Tests", "test\RouteLink.Generators.Tests\RouteLink.Generators.Tests.csproj", "{F99226A9-1425-424D-95AF-611D9A631619}"
21+
EndProject
22+
Global
23+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
24+
Debug|Any CPU = Debug|Any CPU
25+
Release|Any CPU = Release|Any CPU
26+
EndGlobalSection
27+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
28+
{52D22058-9985-4AE3-8AEE-1E2A68A6AC20}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
29+
{52D22058-9985-4AE3-8AEE-1E2A68A6AC20}.Debug|Any CPU.Build.0 = Debug|Any CPU
30+
{52D22058-9985-4AE3-8AEE-1E2A68A6AC20}.Release|Any CPU.ActiveCfg = Release|Any CPU
31+
{52D22058-9985-4AE3-8AEE-1E2A68A6AC20}.Release|Any CPU.Build.0 = Release|Any CPU
32+
{4ABB26B7-14C3-45BE-BE3D-153954745F15}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
33+
{4ABB26B7-14C3-45BE-BE3D-153954745F15}.Debug|Any CPU.Build.0 = Debug|Any CPU
34+
{4ABB26B7-14C3-45BE-BE3D-153954745F15}.Release|Any CPU.ActiveCfg = Release|Any CPU
35+
{4ABB26B7-14C3-45BE-BE3D-153954745F15}.Release|Any CPU.Build.0 = Release|Any CPU
36+
{F99226A9-1425-424D-95AF-611D9A631619}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
37+
{F99226A9-1425-424D-95AF-611D9A631619}.Debug|Any CPU.Build.0 = Debug|Any CPU
38+
{F99226A9-1425-424D-95AF-611D9A631619}.Release|Any CPU.ActiveCfg = Release|Any CPU
39+
{F99226A9-1425-424D-95AF-611D9A631619}.Release|Any CPU.Build.0 = Release|Any CPU
40+
EndGlobalSection
41+
GlobalSection(SolutionProperties) = preSolution
42+
HideSolutionNode = FALSE
43+
EndGlobalSection
44+
GlobalSection(NestedProjects) = preSolution
45+
{4ABB26B7-14C3-45BE-BE3D-153954745F15} = {74029119-636B-4364-998D-E9DFD2BB6DBF}
46+
{F99226A9-1425-424D-95AF-611D9A631619} = {74029119-636B-4364-998D-E9DFD2BB6DBF}
47+
EndGlobalSection
48+
GlobalSection(ExtensibilityGlobals) = postSolution
49+
SolutionGuid = {46C45F3C-4058-426F-B1F9-4C8E368BE903}
50+
EndGlobalSection
51+
EndGlobal

coverlet.runsettings

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<RunSettings>
3+
<DataCollectionRunSettings>
4+
<DataCollectors>
5+
<DataCollector friendlyName="XPlat code coverage">
6+
<Configuration>
7+
<Format>lcov</Format>
8+
</Configuration>
9+
</DataCollector>
10+
</DataCollectors>
11+
</DataCollectionRunSettings>
12+
</RunSettings>

logo.png

4.89 KB
Loading

0 commit comments

Comments
 (0)