Skip to content

Commit

Permalink
Build, Publish script update, added git hook for code formatting. (#25)
Browse files Browse the repository at this point in the history
* `snyk.yml` workflow, which serves the purpose of identifying and addressing dependency vulnerabilities in the project.
* `sonar.yml` workflow to analyze the source code, enhancing code quality and maintainability.
* `git-build-hook-maven-plugin` plugin into the project, providing support for Git hooks.
* `pre-commit.sh` hook, which automatically executes `mvn spotless:apply` prior to each commit, ensuring code formatting consistency.

### Changed
* Bumped `jackson` version to `2.17.0`
* Bumped `slf4j-api` version to `2.0.16`
* Bumped `junit-jupiter` version to `5.11.0`
* Bumped `guava` version to `33.3.0-jre`
* Bumped `maven-gpg-plugin` version to `3.2.5`
* Bumped `spotless-maven-plugin` version to `2.43.0`
  • Loading branch information
ib-tjuhasz authored Aug 22, 2024
1 parent 9f51c63 commit 41c41d9
Show file tree
Hide file tree
Showing 10 changed files with 207 additions and 106 deletions.
21 changes: 11 additions & 10 deletions .github/workflows/maven.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,15 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
java: [ '11' ]
java: [ '11', '17', '21' ]
steps:
- uses: actions/checkout@v2
- name: Set up JDK
uses: actions/setup-java@v2
with:
java-version: ${{ matrix.java }}
distribution: 'temurin'
cache: maven
- name: Build with Maven
run: mvn clean install -U
- uses: actions/checkout@v4
- name: Set up JDK ${{ matrix.java }}
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.java }}
distribution: 'temurin'
cache: maven
- name: Maven build
run: |
mvn clean install -U -Djava.version=${{ matrix.java }}
24 changes: 24 additions & 0 deletions .github/workflows/snyk.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Snyk vulnerability scan

on: [push]

jobs:
snyk:
name: Run Snyk to check for vulnerabilities
permissions:
security-events: write
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Snyk vulnerability check
uses: snyk/actions/maven-3-jdk-11@master
continue-on-error: true
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
with:
args: --sarif-file-output=snyk.sarif
--severity-threshold=high
- name: Upload Results to GitHub Code Scanning
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: snyk.sarif
25 changes: 25 additions & 0 deletions .github/workflows/sonar.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: SonarCloud analysis

on: [push]

jobs:
sonarcloud:
name: SonarCloud analysis
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: maven
- name: Sonarcloud code analysis
run: |
mvn -B verify sonar:sonar \
-Dsonar.host.url=https://sonarcloud.io \
-Dsonar.organization=infobip \
-Dsonar.projectKey=infobip_infobip-api-java-client \
-Dsonar.login=${{ secrets.SONAR_TOKEN }}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
*.class
.idea/

# Mobile Tools for Java (J2ME)
.mtj.tmp/
Expand Down
14 changes: 13 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,23 @@ All notable changes to the library will be documented in this file.
The format of the file is based on [Keep a Changelog](http://keepachangelog.com/)
and this library adheres to [Semantic Versioning](http://semver.org/) as mentioned in [README.md][readme] file.

## [Unreleased]
## [ [4.3.2](https://github.com/infobip/infobip-api-java-client/releases/tag/4.3.2) ] - 2024-08-22

### Added
* Added mock tests to verify the correctness of request payloads and response handling.
* Added `awaitility` and `wiremock` test dependencies.
* `snyk.yml` workflow, which serves the purpose of identifying and addressing dependency vulnerabilities in the project.
* `sonar.yml` workflow to analyze the source code, enhancing code quality and maintainability.
* `git-build-hook-maven-plugin` plugin into the project, providing support for Git hooks.
* `pre-commit.sh` hook, which automatically executes `mvn spotless:apply` prior to each commit, ensuring code formatting consistency.

### Changed
* Bumped `jackson` version to `2.17.0`
* Bumped `slf4j-api` version to `2.0.16`
* Bumped `junit-jupiter` version to `5.11.0`
* Bumped `guava` version to `33.3.0-jre`
* Bumped `maven-gpg-plugin` version to `3.2.5`
* Bumped `spotless-maven-plugin` version to `2.43.0`

## [ [4.3.1](https://github.com/infobip/infobip-api-java-client/releases/tag/4.3.1) ] - 2024-06-05

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ Simply add the following in your project's POM file under `dependencies` tag:
<dependency>
<groupId>com.infobip</groupId>
<artifactId>infobip-api-java-client</artifactId>
<version>4.3.1</version>
<version>4.3.2</version>
</dependency>
```

Expand Down
12 changes: 12 additions & 0 deletions hooks/pre-commit.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/bin/sh
# Part 1
stagedFiles=$(git diff --staged --name-only)
# Part 2
echo "Running spotlessApply. Formatting code..."
mvn spotless:apply
# Part 3
for file in $stagedFiles; do
if test -f "$file"; then
git add $file
fi
done
210 changes: 118 additions & 92 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

<groupId>com.infobip</groupId>
<artifactId>infobip-api-java-client</artifactId>
<version>4.3.1</version>
<version>4.3.2</version>
<packaging>jar</packaging>

<name>infobip-api-java-client</name>
Expand Down Expand Up @@ -38,102 +38,102 @@
<java.version>11</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<jackson.version>2.15.2</jackson.version>
<jackson.version>2.17.0</jackson.version>
<okhttp.version>4.12.0</okhttp.version>
<slf4j.version>2.0.9</slf4j.version>
<junit-jupiter.version>5.9.2</junit-jupiter.version>
<slf4j.version>2.0.16</slf4j.version>
<junit-jupiter.version>5.11.0</junit-jupiter.version>
<assertj-core.version>3.24.2</assertj-core.version>
<guava.version>32.1.2-jre</guava.version>
<wiremock.version>2.27.2</wiremock.version>
<awaitility.version>4.2.0</awaitility.version>
<guava.version>33.3.0-jre</guava.version>
<wiremock.version>3.0.1</wiremock.version>
<awaitility.version>4.2.2</awaitility.version>
</properties>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.10.1</version>
<configuration>
<release>${java.version}</release>
<encoding>utf8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M8</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.3.0</version>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.4.1</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
<configuration>
<doclint>none</doclint>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.2.1</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
<goal>test-jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>1.6.13</version>
<extensions>true</extensions>
<configuration>
<serverId>ossrh</serverId>
<nexusUrl>https://s01.oss.sonatype.org/</nexusUrl>
<autoReleaseAfterClose>true</autoReleaseAfterClose>
</configuration>
</plugin>
<plugin>
<groupId>com.diffplug.spotless</groupId>
<artifactId>spotless-maven-plugin</artifactId>
<version>2.32.0</version>
<configuration>
<java>
<palantirJavaFormat />
</java>
</configuration>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.10.1</version>
<configuration>
<release>${java.version}</release>
<encoding>utf8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M8</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.3.0</version>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.4.1</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
<configuration>
<doclint>none</doclint>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.2.1</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
<goal>test-jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>1.6.13</version>
<extensions>true</extensions>
<configuration>
<serverId>ossrh</serverId>
<nexusUrl>https://s01.oss.sonatype.org/</nexusUrl>
<autoReleaseAfterClose>true</autoReleaseAfterClose>
</configuration>
</plugin>
<plugin>
<groupId>com.diffplug.spotless</groupId>
<artifactId>spotless-maven-plugin</artifactId>
<version>2.43.0</version>
<configuration>
<java>
<palantirJavaFormat/>
</java>
</configuration>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

Expand All @@ -158,7 +158,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>3.0.1</version>
<version>3.2.5</version>
<executions>
<execution>
<id>sign-artifacts</id>
Expand All @@ -172,6 +172,32 @@
</plugins>
</build>
</profile>
<profile>
<id>git-hook</id>
<build>
<plugins>
<plugin>
<groupId>com.rudikershaw.gitbuildhook</groupId>
<artifactId>git-build-hook-maven-plugin</artifactId>
<version>3.5.0</version>
<configuration>
<installHooks>
<!-- The location of a git hook to install into the default hooks directory. -->
<pre-commit>hooks/pre-commit.sh</pre-commit>
</installHooks>
</configuration>
<executions>
<execution>
<goals>
<!-- Sets git config specified under configuration > gitConfig. -->
<goal>install</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>

<dependencies>
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/infobip/RequestFactory.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
*/
final class RequestFactory {

private static final String USER_AGENT_HEADER_VALUE = "infobip-api-client-java/4.3.1";
private static final String USER_AGENT_HEADER_VALUE = "infobip-api-client-java/4.3.2";

private final ApiKey apiKey;
private final BaseUrl baseUrl;
Expand Down
2 changes: 1 addition & 1 deletion src/test/java/com/infobip/RequestFactoryTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ class RequestFactoryTest {

private static final String GIVEN_API_KEY_VALUE = "apiKeyValue";
private static final ApiKey GIVEN_API_KEY = ApiKey.from(GIVEN_API_KEY_VALUE);
private static final String EXPECTED_USER_AGENT_HEADER_VALUE = "infobip-api-client-java/4.3.1";
private static final String EXPECTED_USER_AGENT_HEADER_VALUE = "infobip-api-client-java/4.3.2";

private final OkHttpClient client = new OkHttpClient();
private final JSON json = new JSON();
Expand Down

0 comments on commit 41c41d9

Please sign in to comment.