diff --git a/.github/workflows/cli-scan.yaml b/.github/workflows/cli-scan.yaml index 54682f4..d8ac2f6 100644 --- a/.github/workflows/cli-scan.yaml +++ b/.github/workflows/cli-scan.yaml @@ -10,6 +10,13 @@ on: - '.github/workflows/cli-scan.yaml' - '.gitignore' - 'comp-cli/**/*' + pull_request: + types: [opened, synchronize, reopened] + paths: + - '.github/workflows/cli-scan.yaml' + - '.gitignore' + - 'comp-cli/**/*' + workflow_dispatch: @@ -22,7 +29,7 @@ jobs: name: SonarQube Scan for CLI runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis - uses: sonarsource/sonarqube-scan-action@master diff --git a/.github/workflows/dotnet-scan.yaml b/.github/workflows/dotnet-scan.yaml index 9fb1b19..fc2bb06 100644 --- a/.github/workflows/dotnet-scan.yaml +++ b/.github/workflows/dotnet-scan.yaml @@ -11,6 +11,13 @@ on: - '.gitignore' - 'comp-dotnet/*.sln' - 'comp-dotnet/project/*.cs*' + pull_request: + types: [opened, synchronize, reopened] + paths: + - '.github/workflows/dotnet-scan.yaml' + - '.gitignore' + - 'comp-dotnet/*.sln' + - 'comp-dotnet/project/*.cs*' workflow_dispatch: jobs: @@ -27,14 +34,14 @@ jobs: with: java-version: 17 - name: Cache SonarQube packages - uses: actions/cache@v1 + uses: actions/cache@v3 with: path: ~\.sonar\cache key: ${{ runner.os }}-sonar restore-keys: ${{ runner.os }}-sonar - name: Cache SonarQube scanner id: cache-sonar-scanner - uses: actions/cache@v1 + uses: actions/cache@v3 with: path: .\.sonar\scanner key: ${{ runner.os }}-sonar-scanner @@ -51,4 +58,4 @@ jobs: cd .\comp-dotnet ..\.sonar\scanner\dotnet-sonarscanner begin /k:"demo:mono-dotnet" /n:"Monorepo .Net Core" /d:sonar.plugins.downloadOnlyRequired=true /d:sonar.token="${{ secrets.SONAR_TOKEN }}" /d:sonar.host.url="${{ secrets.SONAR_HOST_URL }}" dotnet build dotnetcore-sample.sln - ..\.sonar\scanner\dotnet-sonarscanner end /d:sonar.token="${{ secrets.SONAR_TOKEN }}" \ No newline at end of file + ..\.sonar\scanner\dotnet-sonarscanner end /d:sonar.token="${{ secrets.SONAR_TOKEN }}" diff --git a/.github/workflows/maven-scan.yaml b/.github/workflows/maven-scan.yaml index 43efd03..55e5f52 100644 --- a/.github/workflows/maven-scan.yaml +++ b/.github/workflows/maven-scan.yaml @@ -11,6 +11,13 @@ on: - '.gitignore' - 'comp-maven/src/**/*' - 'comp-maven/pom.xml' + pull_request: + types: [opened, synchronize, reopened] + paths: + - '.github/workflows/maven-scan.yaml' + - '.gitignore' + - 'comp-maven/src/**/*' + - 'comp-maven/pom.xml' workflow_dispatch: jobs: scan-maven: @@ -28,13 +35,13 @@ jobs: with: java-version: 17 - name: Cache SonarQube packages - uses: actions/cache@v1 + uses: actions/cache@v3 with: path: ~/.sonar/cache key: ${{ runner.os }}-sonar restore-keys: ${{ runner.os }}-sonar - name: Cache Maven packages - uses: actions/cache@v1 + uses: actions/cache@v3 with: path: ~/.m2 key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} diff --git a/README.md b/README.md index 2c0645d..d7f4fd4 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,12 @@ on: - '.github/workflows/cli-scan.yaml' - '.gitignore' - 'comp-cli/**/*' + pull_request: + types: [opened, synchronize, reopened] + paths: + - '.github/workflows/cli-scan.yaml' + - '.gitignore' + - 'comp-cli/**/*' ``` The SonarQube scan is run with `comp-cli` as the base directory. @@ -49,6 +55,13 @@ on: - '.gitignore' - 'comp-dotnet/*.sln' - 'comp-dotnet/project/*.cs*' + pull_request: + types: [opened, synchronize, reopened] + paths: + - '.github/workflows/dotnet-scan.yaml' + - '.gitignore' + - 'comp-dotnet/*.sln' + - 'comp-dotnet/project/*.cs*' ``` The .NET build and SonarQube scan are run in the `comp-dotnet` directory. ```yaml @@ -75,6 +88,13 @@ on: - '.gitignore' - 'comp-maven/src/**/*' - 'comp-maven/pom.xml' + pull_request: + types: [opened, synchronize, reopened] + paths: + - '.github/workflows/maven-scan.yaml' + - '.gitignore' + - 'comp-maven/src/**/*' + - 'comp-maven/pom.xml' ``` The Maven build and SonarQube scan are run in the `comp-maven` directory. ```yaml diff --git a/comp-cli/src/person.py b/comp-cli/src/person.py index 78f9283..cea717e 100644 --- a/comp-cli/src/person.py +++ b/comp-cli/src/person.py @@ -17,14 +17,12 @@ def __init__(self, first=None, last=None): self.gender = None self.religion = None self.compensation = 0 + return self def store_religion(self, religion): self.religion = religion def compute_pay(self): - # TODO: something - # TODO: something - # TODO: something if self.gender == Person.MALE: self.compensation = SOME_VALUE elif self.gender == Person.FEMALE: diff --git a/comp-dotnet/project/MyClass.cs b/comp-dotnet/project/MyClass.cs index da99e45..9a46bb2 100644 --- a/comp-dotnet/project/MyClass.cs +++ b/comp-dotnet/project/MyClass.cs @@ -6,6 +6,8 @@ public class MyClass { public string ReturnMessage() { + int await = 42; + int async = 42; return "Happy coding!"; } } diff --git a/comp-dotnet/project/Program.cs b/comp-dotnet/project/Program.cs index 8bbe9ca..5301779 100644 --- a/comp-dotnet/project/Program.cs +++ b/comp-dotnet/project/Program.cs @@ -2,7 +2,7 @@ namespace HelloWorld { - class Program + static class Program { static void Main(string[] args) { diff --git a/comp-dotnet/project/obj/Debug/netcoreapp2.2/dotnet-sample.GeneratedMSBuildEditorConfig.editorconfig b/comp-dotnet/project/obj/Debug/netcoreapp2.2/dotnet-sample.GeneratedMSBuildEditorConfig.editorconfig index 7a9dc80..74ddaf9 100644 --- a/comp-dotnet/project/obj/Debug/netcoreapp2.2/dotnet-sample.GeneratedMSBuildEditorConfig.editorconfig +++ b/comp-dotnet/project/obj/Debug/netcoreapp2.2/dotnet-sample.GeneratedMSBuildEditorConfig.editorconfig @@ -1,3 +1,3 @@ is_global = true build_property.RootNamespace = dotnet_sample -build_property.ProjectDir = /Users/theil.bise/repos/monorepo/Monorepo-Example/comp-dotnet/project/ +build_property.ProjectDir = /Users/theil.bise/repos/monorepo/GitHub-Monorepo-Example/comp-dotnet/project/ diff --git a/comp-dotnet/project/obj/Debug/netcoreapp2.2/dotnet-sample.assets.cache b/comp-dotnet/project/obj/Debug/netcoreapp2.2/dotnet-sample.assets.cache index 8e4d66d..ec3f279 100644 Binary files a/comp-dotnet/project/obj/Debug/netcoreapp2.2/dotnet-sample.assets.cache and b/comp-dotnet/project/obj/Debug/netcoreapp2.2/dotnet-sample.assets.cache differ diff --git a/comp-maven/src/main/java/coverage_metrics/CoverageMetrics.java b/comp-maven/src/main/java/coverage_metrics/CoverageMetrics.java index 965228c..edfd370 100644 --- a/comp-maven/src/main/java/coverage_metrics/CoverageMetrics.java +++ b/comp-maven/src/main/java/coverage_metrics/CoverageMetrics.java @@ -1,6 +1,7 @@ package coverage_metrics; import java.security.SecureRandom; +import java.util.List; /* * @@ -89,14 +90,22 @@ public static boolean all0sAnd1s(String val){ } return all; } -private int generateRandom() throws java.io.UnsupportedEncodingException{ - SecureRandom sr = new SecureRandom(); - sr.setSeed(123456L); - int v = sr.nextInt(32); - - sr = new SecureRandom("abcdefghijklmnop".getBytes("us-ascii")); - v = sr.nextInt(32); - return v; + } +class Entity implements Cloneable { // Noncompliant, using `Cloneable` + + public int value; + public List children; // deep copy wanted + + @Override + public Entity clone() { + try { + Entity copy = (Entity) super.clone(); // invariant not enforced, because no constructor is caled + copy.children = children.stream().map(Entity::clone).toList(); + return copy; + } catch (CloneNotSupportedException e) { // this will not happen due to behavioral contract + throw new AssertionError(); + } + } }