diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 5ed6c1f..a4ab645 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,8 +1,10 @@ version: 2 updates: -- package-ecosystem: nuget +- package-ecosystem: "nuget" directory: "/" schedule: - interval: daily - time: '02:00' - open-pull-requests-limit: 10 + interval: "daily" +- package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "daily" diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 276e0ad..e14c77e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -19,10 +19,10 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - - name: Setup .NET Core 5.0 SDK + - name: Setup .NET Core SDK uses: actions/setup-dotnet@v1 with: - dotnet-version: "5.0.x" + dotnet-version: "6.0.x" source-url: https://nuget.pkg.github.com/graphql-dotnet/index.json env: NUGET_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}} diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 51bf5c3..d953541 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -19,7 +19,7 @@ jobs: - name: Setup .NET Core SDK uses: actions/setup-dotnet@v1 with: - dotnet-version: "5.0.x" + dotnet-version: "6.0.x" source-url: https://nuget.pkg.github.com/graphql-dotnet/index.json env: NUGET_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}} diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 79d6bae..9c73f34 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -27,10 +27,10 @@ jobs: version="${github_ref:10}" echo version=$version echo "version=$version" >> $GITHUB_ENV - - name: Setup .NET Core 5.0 SDK + - name: Setup .NET Core SDK uses: actions/setup-dotnet@v1 with: - dotnet-version: "5.0.x" + dotnet-version: "6.0.x" source-url: https://api.nuget.org/v3/index.json env: NUGET_AUTH_TOKEN: ${{secrets.NUGET_AUTH_TOKEN}} @@ -53,7 +53,7 @@ jobs: working-directory: src run: dotnet nuget push "out/*" -k ${{secrets.NUGET_AUTH_TOKEN}} - name: Upload Nuget packages as release artifacts - uses: actions/github-script@v2 + uses: actions/github-script@v5 with: github-token: ${{secrets.GITHUB_TOKEN}} script: | @@ -64,7 +64,7 @@ jobs: for (let file of await fs.readdir('src/out')) { console.log('uploading', file); - await github.repos.uploadReleaseAsset({ + await github.rest.repos.uploadReleaseAsset({ owner, repo, release_id: ${{ github.event.release.id }}, diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8f99326..efbad74 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -34,17 +34,13 @@ jobs: steps: - name: Checkout source uses: actions/checkout@v2 - - name: Setup .NET Core 3.1 SDK + - name: Setup .NET Core SDKs uses: actions/setup-dotnet@v1 with: - dotnet-version: "3.1.x" - source-url: https://nuget.pkg.github.com/graphql-dotnet/index.json - env: - NUGET_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}} - - name: Setup .NET Core 5.0 SDK - uses: actions/setup-dotnet@v1 - with: - dotnet-version: "5.0.x" + dotnet-version: | + 3.1.x + 5.0.x + 6.0.x source-url: https://nuget.pkg.github.com/graphql-dotnet/index.json env: NUGET_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}} @@ -59,8 +55,9 @@ jobs: working-directory: src run: | dotnet tool install -g dotnet-format --version 6.0.243104 --add-source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json - dotnet format --check --fix-whitespace || (echo "Run 'dotnet format' to fix formatting issues" && exit 1) - dotnet format --check -v diag --fix-style warn --fix-analyzers warn || (echo "Run 'dotnet format' to fix formatting issues" && exit 1) + dotnet format --no-restore --verify-no-changes -v diag --severity warn whitespace || (echo "Run 'dotnet format' to fix whitespace issues" && exit 1) + dotnet format --no-restore --verify-no-changes -v diag --severity warn analyzers || (echo "Run 'dotnet format' to fix analyzers issues" && exit 1) + dotnet format --no-restore --verify-no-changes -v diag --severity warn style || (echo "Run 'dotnet format' to fix style issues" && exit 1) - name: Build solution [Release] working-directory: src run: dotnet build --no-restore -c Release -p:GraphQLTestVersion=${{ matrix.graphqlversion }} diff --git a/src/BasicSample/BasicSample.csproj b/src/BasicSample/BasicSample.csproj index 5d5e067..dac0eb7 100644 --- a/src/BasicSample/BasicSample.csproj +++ b/src/BasicSample/BasicSample.csproj @@ -2,7 +2,7 @@ Exe - net5 + net6 false diff --git a/src/BasicSample/Program.cs b/src/BasicSample/Program.cs index 01ae3f9..b9bb902 100644 --- a/src/BasicSample/Program.cs +++ b/src/BasicSample/Program.cs @@ -75,12 +75,12 @@ public class Query /// Resolver for 'Query.viewer' field. /// [GraphQLAuthorize("AdminPolicy")] - public User Viewer() => new User { Id = Guid.NewGuid().ToString(), Name = "Quinn" }; + public User Viewer() => new() { Id = Guid.NewGuid().ToString(), Name = "Quinn" }; /// /// Resolver for 'Query.users' field. /// - public List Users() => new List { new User { Id = Guid.NewGuid().ToString(), Name = "Quinn" } }; + public List Users() => new() { new User { Id = Guid.NewGuid().ToString(), Name = "Quinn" } }; } /// diff --git a/src/Directory.Build.props b/src/Directory.Build.props index fd898a8..38a732d 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -2,7 +2,7 @@ 5.0.0-preview - 8.0 + latest Joe McBride MIT logo.64x64.png @@ -17,14 +17,13 @@ true true enable + README.md - - - - - - + + + + diff --git a/src/GraphQL.Authorization.ApiTests/GraphQL.Authorization.ApiTests.csproj b/src/GraphQL.Authorization.ApiTests/GraphQL.Authorization.ApiTests.csproj index 817511e..df49e9b 100644 --- a/src/GraphQL.Authorization.ApiTests/GraphQL.Authorization.ApiTests.csproj +++ b/src/GraphQL.Authorization.ApiTests/GraphQL.Authorization.ApiTests.csproj @@ -2,7 +2,7 @@ - net5 + net6 diff --git a/src/GraphQL.Authorization.Tests/AuthorizationValidationRuleTests.cs b/src/GraphQL.Authorization.Tests/AuthorizationValidationRuleTests.cs index ce731cc..fd42d04 100644 --- a/src/GraphQL.Authorization.Tests/AuthorizationValidationRuleTests.cs +++ b/src/GraphQL.Authorization.Tests/AuthorizationValidationRuleTests.cs @@ -148,7 +148,7 @@ public void issue5_with_fragment_should_fail() { config.Query = "query a { article { ...frag } } query b { article { ...frag } } fragment frag on Article { content }"; config.Schema = TypedSchema(); - config.ValidateResult = result => result.Errors.Single(x => x.Message == $"You are not authorized to run this query.\nRequired claim 'admin' is not present."); + config.ValidateResult = result => _ = result.Errors.Single(x => x.Message == $"You are not authorized to run this query.\nRequired claim 'admin' is not present."); }); } diff --git a/src/GraphQL.Authorization.Tests/GraphQL.Authorization.Tests.csproj b/src/GraphQL.Authorization.Tests/GraphQL.Authorization.Tests.csproj index abc4a6f..00f9752 100644 --- a/src/GraphQL.Authorization.Tests/GraphQL.Authorization.Tests.csproj +++ b/src/GraphQL.Authorization.Tests/GraphQL.Authorization.Tests.csproj @@ -2,7 +2,7 @@ - net5;netcoreapp3.1 + net6;net5;netcoreapp3.1 5.0.0-preview-362 diff --git a/src/GraphQL.Authorization/AuthorizationPolicy.cs b/src/GraphQL.Authorization/AuthorizationPolicy.cs index 114ae23..a5f29a4 100644 --- a/src/GraphQL.Authorization/AuthorizationPolicy.cs +++ b/src/GraphQL.Authorization/AuthorizationPolicy.cs @@ -8,7 +8,7 @@ namespace GraphQL.Authorization /// public class AuthorizationPolicy : IAuthorizationPolicy { - private readonly List _requirements = new List(); + private readonly List _requirements = new(); /// /// Creates a policy with a set of specified requirements. diff --git a/src/GraphQL.Authorization/AuthorizationPolicyBuilder.cs b/src/GraphQL.Authorization/AuthorizationPolicyBuilder.cs index 6c299fd..b0d46ea 100644 --- a/src/GraphQL.Authorization/AuthorizationPolicyBuilder.cs +++ b/src/GraphQL.Authorization/AuthorizationPolicyBuilder.cs @@ -9,13 +9,13 @@ namespace GraphQL.Authorization /// public class AuthorizationPolicyBuilder { - private readonly List _requirements = new List(); + private readonly List _requirements = new(); /// /// Build authorization policy. /// /// Created policy. - public AuthorizationPolicy Build() => new AuthorizationPolicy(_requirements); + public AuthorizationPolicy Build() => new(_requirements); /// /// Adds with the specified claim type. diff --git a/src/GraphQL.Authorization/AuthorizationResult.cs b/src/GraphQL.Authorization/AuthorizationResult.cs index 96980a9..29b649c 100644 --- a/src/GraphQL.Authorization/AuthorizationResult.cs +++ b/src/GraphQL.Authorization/AuthorizationResult.cs @@ -8,7 +8,7 @@ namespace GraphQL.Authorization public class AuthorizationResult { // allocation optimization for green path - private static readonly AuthorizationResult _success = new AuthorizationResult { Succeeded = true }; + private static readonly AuthorizationResult _success = new() { Succeeded = true }; /// /// Is the authorization result successful? @@ -31,6 +31,6 @@ public class AuthorizationResult /// /// A set of authorization errors. /// Instance of . - public static AuthorizationResult Fail(IEnumerable errors) => new AuthorizationResult { Errors = errors }; + public static AuthorizationResult Fail(IEnumerable errors) => new() { Errors = errors }; } } diff --git a/src/GraphQL.Authorization/AuthorizationValidationRule.cs b/src/GraphQL.Authorization/AuthorizationValidationRule.cs index 741b58f..99698df 100644 --- a/src/GraphQL.Authorization/AuthorizationValidationRule.cs +++ b/src/GraphQL.Authorization/AuthorizationValidationRule.cs @@ -126,7 +126,7 @@ void Visit(INode node, int _) new MatchingNodeVisitor((variableRef, context) => { - if (!(context.TypeInfo.GetArgument()?.ResolvedType?.GetNamedType() is IComplexGraphType variableType)) + if (context.TypeInfo.GetArgument()?.ResolvedType?.GetNamedType() is not IComplexGraphType variableType || ShouldBeSkipped(actualOperation, context)) return; CheckAuth(variableRef, variableType, userContext, context, operationType); diff --git a/src/GraphQL.Authorization/Requirements/AuthenticatedUserRequirement.cs b/src/GraphQL.Authorization/Requirements/AuthenticatedUserRequirement.cs index 75dffe0..a226adb 100644 --- a/src/GraphQL.Authorization/Requirements/AuthenticatedUserRequirement.cs +++ b/src/GraphQL.Authorization/Requirements/AuthenticatedUserRequirement.cs @@ -9,7 +9,7 @@ namespace GraphQL.Authorization /// public class AuthenticatedUserRequirement : IAuthorizationRequirement { - internal static readonly AuthenticatedUserRequirement Instance = new AuthenticatedUserRequirement(); + internal static readonly AuthenticatedUserRequirement Instance = new(); /// public Task Authorize(AuthorizationContext context) diff --git a/src/Harness/GraphQL.cs b/src/Harness/GraphQL.cs index 121fe05..bf1a1ac 100644 --- a/src/Harness/GraphQL.cs +++ b/src/Harness/GraphQL.cs @@ -24,12 +24,12 @@ public class Query /// Resolver for 'Query.viewer' field. /// [GraphQLAuthorize("AdminPolicy")] - public User Viewer() => new User { Id = Guid.NewGuid().ToString(), Name = "Quinn" }; + public User Viewer() => new() { Id = Guid.NewGuid().ToString(), Name = "Quinn" }; /// /// Resolver for 'Query.users' field. /// - public List Users() => new List { new User { Id = Guid.NewGuid().ToString(), Name = "Quinn" } }; + public List Users() => new() { new User { Id = Guid.NewGuid().ToString(), Name = "Quinn" } }; } /// diff --git a/src/Harness/Harness.csproj b/src/Harness/Harness.csproj index a371bcd..47460da 100644 --- a/src/Harness/Harness.csproj +++ b/src/Harness/Harness.csproj @@ -1,7 +1,7 @@ - net5;netcoreapp3.1 + net6;net5;netcoreapp3.1