20 Commits

Author SHA1 Message Date
Dwi Siswanto
276b0c8370 Merge pull request #10 from kitabisa/development
🪲 Use GitHub environment instead of child workdir name as defa…
2020-07-26 06:08:30 +07:00
Dwi Siswanto
6c4cd0d6d9 🪲 Use GitHub environment instead of child workdir name as default value of project key & name 2020-07-26 03:20:28 +07:00
Dwi Siswanto
1c37e4588f 📘 Update usage docs 2020-07-17 09:30:15 +07:00
Dwi Siswanto
545a1a5fac Remove unused variable 2020-07-17 09:30:09 +07:00
Dwi Siswanto
63ca4c2787 Merge pull request #6 from nordcloud/master
Add project identity parameters
2020-07-16 23:36:50 +07:00
Dariusz Dwornikowski
9bdc677f66 Add projectVersion to README 2020-07-16 12:39:56 +02:00
Dariusz Dwornikowski
80213a727e Fix variable assignments 2020-07-16 12:38:54 +02:00
Dariusz Dwornikowski
5379cc65b4 Add setting of projectVersion 2020-07-14 09:45:39 +02:00
Dariusz Dwornikowski
accc346655 Add setting of projectName 2020-07-11 13:06:03 +02:00
dw1
50fbee7c7b ✏️ Fix can't formatting 2020-06-23 06:28:23 +07:00
dw1
d0028cf7df Merge branch 'master' of github.com:kitabisa/sonarqube-action 2020-06-23 06:21:17 +07:00
Dwi Siswanto
5cd2fa569f 📖 Update issue templates 2020-06-23 06:20:31 +07:00
Dwi Siswanto
7b0e7aa29e 📖 Update issue templates 2020-06-23 06:17:36 +07:00
dw1
a1521f09b4 📝 Update usage docs 2020-06-23 05:59:44 +07:00
dw1
c9f1220abc 📖 Add pull request template 2020-06-23 05:59:36 +07:00
dw1
ecb9a772a9 📖 Add issue template 2020-06-23 05:59:27 +07:00
dw1
bb543d0f7a 🪲 Add dynamic projectKey input. Fixes #5 2020-06-23 05:59:03 +07:00
dw1
abc24397e0 Add jq package to Dockerfile 2020-06-23 00:45:57 +07:00
dw1
07b55c6b20 🐛 Bug fixed for #2 2020-06-23 00:40:38 +07:00
dw1
3d458002e9 update readme 2020-01-30 17:50:20 +07:00
6 changed files with 155 additions and 24 deletions

25
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@@ -0,0 +1,25 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: bug
assignees: dwisiswant0
---
### Issue and Steps to Reproduce
<!-- Describe your issue and tell us how to reproduce it (include any useful information). -->
### Versions
### Screenshots
#### Expected
#### Actual
### Specifications
- Version:
- Platform:
- Subsystem:

View File

@@ -15,6 +15,8 @@ RUN npm config set unsafe-perm true && \
npm config set unsafe-perm false
ENV NODE_PATH "/usr/lib/node_modules/"
RUN apk add --no-cache ca-certificates jq
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]

37
PULL_REQUEST_TEMPLATE.md Normal file
View File

@@ -0,0 +1,37 @@
THIS PROJECT IS IN MAINTENANCE MODE. We accept pull-requests for Bug Fixes **ONLY**. NO NEW FEATURES ACCEPTED!
---
<!--- Provide a general summary of your changes in the Title above -->
### Description
<!--- Describe your changes in detail -->
### Related Issue
Fixes #
<!--- This project only accepts pull requests related to open issues -->
<!--- If suggesting a new feature or change, please discuss it in an issue first -->
<!--- If fixing a bug, there should be an issue describing it with steps to reproduce -->
<!--- Please link to the issue here: -->
### Motivation and Context
<!--- Why is this change required? What problem does it solve? -->
<!--- If it fixes an open issue, please link to the issue here. -->
### Types of Changes
<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] ~New feature (non-breaking change which adds functionality)~
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
- [ ] My code follows the code style of this project.
- [ ] My change requires a change to the documentation.
- [ ] I have updated the documentation accordingly.
- [ ] All new and existing tests passed.
### How Has This Been Tested?
<!--- Please describe in detail how you tested your changes. -->
<!--- Include details of your testing environment, and the tests you ran to -->
<!--- see how your change affects other areas of the code, etc. -->
### Screenshots (if appropriate):

View File

@@ -1,2 +1,56 @@
# sonarqube-action
Integrate SonarQube scanner to GitHub Actions
# SonarQube GitHub Action
Using this GitHub Action, scan your code with SonarQube scanner to detects bugs, vulnerabilities and code smells in more than 20 programming languages!
<img src="https://www.sonarqube.org/assets/logo-31ad3115b1b4b120f3d1efd63e6b13ac9f1f89437f0cf6881cc4d8b5603a52b4.svg" width="320px">
SonarQube is an open-source platform developed by SonarSource for continuous inspection of code quality to perform automatic reviews with static analysis of code to detect bugs, code smells, and security vulnerabilities on 20+ programming languages.
## Requirements
* Have SonarQube on server. [Install now](https://docs.sonarqube.org/latest/setup/install-server/) if it's not already the case!
## Usage
The workflow, usually declared in `.github/workflows/build.yml`, looks like:
```yaml
on: push
name: Main Workflow
jobs:
sonarQubeTrigger:
name: SonarQube Trigger
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: SonarQube Scan
uses: kitabisa/sonarqube-action@master
with:
host: ${{ secrets.SONARQUBE_HOST }}
login: ${{ secrets.SONARQUBE_TOKEN }}
```
You can change the analysis base directory and/ project key _(allowed characters: letters, numbers, -, \_, . and :, with at least one non-digit.)_ by using the optional input like this:
```yaml
uses: kitabisa/sonarqube-action@master
with:
projectBaseDir: "/path/to/my-custom-project"
projectKey: "my-custom-project"
projectName: "my-custom-project-name"
projectVersion: "v0.0.1"
```
## Secrets
- `host` - **_(Required)_** this is the SonarQube server URL.
- `login` - **_(Required)_** the login or authentication token of a SonarQube user with Execute Analysis permission on the project. See [how to generate SonarQube token](https://docs.sonarqube.org/latest/user-guide/user-token/).
- `password` - The password that goes with the `login` username. This should be left blank if an `login` are authentication token.
You can set all variable in the "Secrets" settings page of your repository.
## License
The Dockerfile and associated scripts and documentation in this project are released under the MIT License.
Container images built with this project include third party materials.

View File

@@ -1,23 +1,35 @@
name: 'SonarQube Scan'
description: 'Scan your code with SonarQube Scanner to detect bugs, vulnerabilities and code smells in more than 25 programming languages.'
author: 'Dwi Siswanto'
name: "SonarQube Scan"
description: "Scan your code with SonarQube Scanner to detect bugs, vulnerabilities and code smells in more than 25 programming languages."
author: "Dwi Siswanto"
branding:
icon: 'check'
color: 'green'
icon: "check"
color: "green"
runs:
using: 'docker'
image: 'Dockerfile'
using: "docker"
image: "Dockerfile"
inputs:
host:
description: 'SonarQube server URL'
description: "SonarQube server URL"
required: true
projectBaseDir:
description: 'Set the sonar.projectBaseDir analysis property'
projectKey:
description: "The project's unique key. Allowed characters are: letters, numbers, -, _, . and :, with at least one non-digit."
required: false
default: '.'
default: ""
projectName:
description: "Name of the project that will be displayed on the web interface."
required: false
default: ""
projectVersion:
description: "The project version."
required: false
default: ""
projectBaseDir:
description: "Set the sonar.projectBaseDir analysis property"
required: false
default: "."
login:
description: 'Login or authentication token of a SonarQube user'
description: "Login or authentication token of a SonarQube user"
required: true
password:
description: 'Password that goes with the sonar.login username. This should be left blank if an authentication token is being used.'
description: "Password that goes with the sonar.login username. This should be left blank if an authentication token is being used."
required: false

View File

@@ -10,19 +10,20 @@ if [[ "${GITHUB_EVENT_NAME}" == "pull_request" ]]; then
fi
fi
if [[ -z "${INPUT_PASSWORD}" ]]; then
SONAR_PASSWORD="&& true"
else
SONAR_PASSWORD="${INPUT_PASSWORD}"
fi
REPOSITORY_NAME=$(basename "${GITHUB_REPOSITORY}")
[[ ! -z ${INPUT_PASSWORD} ]] && SONAR_PASSWORD="${INPUT_PASSWORD}" || SONAR_PASSWORD=""
[[ -z ${INPUT_PROJECTKEY} ]] && SONAR_PROJECTKEY="${REPOSITORY_NAME}" || SONAR_PROJECTKEY="${INPUT_PROJECTKEY}"
[[ -z ${INPUT_PROJECTNAME} ]] && SONAR_PROJECTNAME="${REPOSITORY_NAME}" || SONAR_PROJECTNAME="${INPUT_PROJECTNAME}"
[[ -z ${INPUT_PROJECTVERSION} ]] && SONAR_PROJECTVERSION="" || SONAR_PROJECTVERSION="${INPUT_PROJECTVERSION}"
sonar-scanner \
-Dsonar.host.url=${INPUT_HOST} \
-Dsonar.projectKey=${PWD##*/} \
-Dsonar.projectKey=${SONAR_PROJECTKEY} \
-Dsonar.projectName=${SONAR_PROJECTNAME} \
-Dsonar.projectVersion=${SONAR_PROJECTVERSION} \
-Dsonar.projectBaseDir=${INPUT_PROJECTBASEDIR} \
-Dsonar.login=${INPUT_LOGIN} \
-Dsonar.password=${INPUT_PASSWORD} \
-Dsonar.sources=. \
-Dsonar.sourceEncoding=UTF-8 \
${SONAR_PASSWORD}
-Dsonar.sourceEncoding=UTF-8