Skip to content

Commit

Permalink
Codeanalysis (#30)
Browse files Browse the repository at this point in the history
* Add lint and codeql workflows

* Fix codestyle
  • Loading branch information
XmasApple authored Sep 25, 2023
1 parent 3167e28 commit 33c44a0
Show file tree
Hide file tree
Showing 45 changed files with 4,192 additions and 3,970 deletions.
11 changes: 11 additions & 0 deletions .github/scripts/check-work-copy-equals-to-committed.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/usr/bin/env bash

MESSAGE="$1"

CODE_DIFF="$(git diff)"
if [ -n "$CODE_DIFF" ]; then
echo "$MESSAGE"
echo
echo "$CODE_DIFF"
exit 1;
fi
11 changes: 11 additions & 0 deletions .github/scripts/format-all-dotnet-code.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/usr/bin/env bash

set -eu

DIR="$1"
SLN_FILE="$2"
PROFILE="$3"

cd "$DIR"

jb cleanupcode "$SLN_FILE" --profile="Custom Cleanup"
83 changes: 83 additions & 0 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"

on:
push:
branches: [ "main" ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ "main" ]
schedule:
- cron: '30 9 * * 4'

jobs:
analyze:
name: Analyze
# Runner size impacts CodeQL analysis time. To learn more, please see:
# - https://gh.io/recommended-hardware-resources-for-running-codeql
# - https://gh.io/supported-runners-and-hardware-resources
# - https://gh.io/using-larger-runners
# Consider using larger runners for possible analysis time improvements.
runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
permissions:
actions: read
contents: read
security-events: write

strategy:
fail-fast: false
matrix:
language: [ 'csharp' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby', 'swift' ]
# Use only 'java' to analyze code written in Java, Kotlin or both
# Use only 'javascript' to analyze code written in JavaScript, TypeScript or both
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support

steps:
- name: Checkout repository
uses: actions/checkout@v3

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.

# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality


# Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v2

# ℹ️ Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun

# If the Autobuild fails above, remove it and uncomment the following three lines.
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.

# - run: |
# echo "Run, Build Application using script"
# ./location_of_script_within_repo/buildscript.sh

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
with:
category: "/language:${{matrix.language}}"

80 changes: 80 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
name: lint
on:
push:
branches:
- main
pull_request:
workflow_dispatch:

jobs:
autoformatter:
name: autoformat check
concurrency:
group: lint-autoformat-${{ github.ref }}
cancel-in-progress: true
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: '6.0.x'
- name: Restore
run: dotnet restore ./src/YdbSdk.sln
- name: Install ReSharper
run: dotnet tool install -g JetBrains.ReSharper.GlobalTools
- name: format all files with auto-formatter
run: bash ./.github/scripts/format-all-dotnet-code.sh ./src/ YdbSdk.sln "Custom Cleanup"
- name: Check repository diff
run: bash ./.github/scripts/check-work-copy-equals-to-committed.sh "auto-format broken"

inspection:
runs-on: ubuntu-latest
name: Inspection
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: '6.0.x'
- name: Restore
run: dotnet restore ./src/YdbSdk.sln
- name: Inspect code
uses: muno92/resharper_inspectcode@v1
with:
solutionPath: ./src/YdbSdk.sln
version: 2023.2.1
include: |
**.cs
**.cshtml
minimumReportSeverity: WARNING
ignoreIssueType: |
UnusedField.Compiler,
UnusedVariable.Compiler,
UnusedAutoPropertyAccessor.Global,
UnusedAnonymousMethodSignature,
UnusedNullableDirective,
UnusedTupleComponentInReturnValue,
UnusedLocalFunction.Compiler,
UnusedLocalFunctionReturnValue,
UnusedMethodReturnValue.Global,
UnusedType.Global,
UnusedMemberInSuper.Global,
UnusedMember.Global,
UnusedMemberHierarchy.Global,
UnusedLabel,
UnusedParameter.Global,
UnusedParameterInPartialMethod,
UnusedPositionalParameterCompiler,
UnusedTypeParameter,
NotAccessedField.Compiler,
NotAccessedVariable.Compiler,
NotAccessedField.Global,
NotAccessedPositionalProperty.Global,
NotAccessedVariable,
NotAccessedOutParameterVariable,
NotAccessedPrimaryConstructorParameterCompiler,
InconsistentNaming,
CollectionNeverUpdated.Global
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,7 @@
bin/
obj/
launchSettings.json

### JetBrains Rider
.idea
*.sln.DotSettings.user
13 changes: 6 additions & 7 deletions src/Ydb.Sdk/src/Auth/Anonymous.cs
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
namespace Ydb.Sdk.Auth
namespace Ydb.Sdk.Auth;

public class AnonymousProvider : ICredentialsProvider
{
public class AnonymousProvider : ICredentialsProvider
public string? GetAuthInfo()
{
public string? GetAuthInfo()
{
return null;
}
return null;
}
}
}
13 changes: 6 additions & 7 deletions src/Ydb.Sdk/src/Auth/Auth.cs
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
namespace Ydb.Sdk.Auth
namespace Ydb.Sdk.Auth;

public class InvalidCredentialsException : Exception
{
public class InvalidCredentialsException : Exception
public InvalidCredentialsException(string message)
: base(message)
{
public InvalidCredentialsException(string message)
: base (message)
{
}
}
}
}
11 changes: 5 additions & 6 deletions src/Ydb.Sdk/src/Auth/CredentialsProvider.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
namespace Ydb.Sdk.Auth
namespace Ydb.Sdk.Auth;

public interface ICredentialsProvider
{
public interface ICredentialsProvider
{
string? GetAuthInfo();
}
}
string? GetAuthInfo();
}
25 changes: 12 additions & 13 deletions src/Ydb.Sdk/src/Auth/Token.cs
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
namespace Ydb.Sdk.Auth
namespace Ydb.Sdk.Auth;

public class TokenProvider : ICredentialsProvider
{
public class TokenProvider : ICredentialsProvider
{
private string _token;
private readonly string _token;

public TokenProvider(string token)
{
_token = token;
}
public TokenProvider(string token)
{
_token = token;
}

public string? GetAuthInfo()
{
return _token;
}
public string GetAuthInfo()
{
return _token;
}
}
}
Loading

0 comments on commit 33c44a0

Please sign in to comment.