Fons ostendens codicem qualitas status control in SonarQube ad developers

SonarQube fons codici apertus est qualitas certitudinis tribunal, quod amplis programmandi linguarum sustinet et de metricis nuntians ut codicem duplicationem, signa obsequium, test coverage, codicem multiplicitatem, cimices potentiales, et plura praebet. SonarQube proventuum analysin convenienter visualisat ac permittit ut dynamica progressionis evolutionis supra tempus indagare sinat.

Objective: Ostende tincidunt statum originis code qualitas control in SonarQube.

Duae sunt solutiones:

  • Curre scriptionem ad reprimendam fontem codici qualitas status in SonarQube. Si quale imperium source code in SonarQube non transierit, ecclesia deficiet.
  • Monstra fontem codicem qualitas status imperium in pagina principale.

installing SonarQube

Ad institutionem sonarqube ex rpm fasciculis utemur reposito https://harbottle.gitlab.io/harbottle-main.

Instruamus sarcinam cum promptuario pro CentOS VII.

yum install -y https://harbottle.gitlab.io/harbottle-main/7/x86_64/harbottle-main-release.rpm

Instituimus sonarqube ipsum.

yum install -y sonarqube

Per institutionem, maxime plugins instituetur, sed debes invenire bugs et pmd

yum install -y sonarqube-findbugs sonarqube-pmd

Emitte ministerium et adde eam ad startup

systemctl start sonarqube
systemctl enable sonarqube

Si longum tempus onerare capit, numerum temere generantis /dev/./urandom adde usque ad finem optionum sonar.web.javaOpts

sonar.web.javaOpts=Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ -Djava.security.egd=file:/dev/urandom

Cursor scriptionem ad reprimendam statum originis codici qualitas control in SonarQube.

Infeliciter, plugin sonar-break-maven-plugin non diu renovatum est. Scriptum itaque nostrum scribamus.

Ad probationem utemur repositio https://github.com/uweplonus/spotbugs-examples.

Inferentes in Gitlab. Adde fasciculum .gitlab-ci.yml:

variables:
  MAVEN_OPTS: "-Dhttps.protocols=TLSv1.2 -Dmaven.repo.local=~/.m2/repository -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true"
  MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end --show-version -DinstallAtEnd=true -DdeployAtEnd=true"
  SONAR_HOST_URL: "http://172.26.9.226:9000"
  LOGIN: "admin" # Π»ΠΎΠ³ΠΈΠ½ sonarqube
  PASSWORD: "admin" # ΠΏΠ°Ρ€ΠΎΠ»ΡŒ sonarqube

cache:
  paths:
    - .m2/repository

build:
  image: maven:3.3.9-jdk-8
  stage: build
  script:
    - apt install -y jq || true
    - mvn $MAVEN_CLI_OPTS -Dmaven.test.failure.ignore=true org.jacoco:jacoco-maven-plugin:0.8.5:prepare-agent clean verify org.jacoco:jacoco-maven-plugin:0.8.5:report
    - mvn $MAVEN_CLI_OPTS -Dmaven.test.skip=true verify sonar:sonar -Dsonar.host.url=$SONAR_HOST_URL -Dsonar.login=$LOGIN -Dsonar.password=$PASSWORD -Dsonar.gitlab.project_id=$CI_PROJECT_PATH -Dsonar.gitlab.commit_sha=$CI_COMMIT_SHA -Dsonar.gitlab.ref_name=$CI_COMMIT_REF_NAME
    - export URL=$(cat target/sonar/report-task.txt | grep ceTaskUrl | cut -c11- ) #URL where report gets stored
    - echo $URL
    - |
      while : ;do
          curl -k -u "$LOGIN":"$PASSWORD" "$URL" -o analysis.txt
          export status=$(cat analysis.txt | jq -r '.task.status') #Status as SUCCESS, CANCELED, IN_PROGRESS or FAILED
          echo $status
          if [ ${status} == "SUCCESS" ];then
            echo "SONAR ANALYSIS SUCCESS";
            break
          fi
          sleep 5
      done
    - curl -k -u "$LOGIN":"$PASSWORD" "$URL" -o analysis.txt
    - export status=$(cat analysis.txt | jq -r '.task.status') #Status as SUCCESS, CANCELED or FAILED
    - export analysisId=$(cat analysis.txt | jq -r '.task.analysisId') #Get the analysis Id
    - |
      if [ "$status" == "SUCCESS" ]; then
        echo -e "SONAR ANALYSIS SUCCESSFUL...ANALYSING RESULTS";
        curl -k -u "$LOGIN":"$PASSWORD" "$SONAR_HOST_URL/api/qualitygates/project_status?analysisId=$analysisId" -o result.txt; #Analysis result like critical, major and minor issues
        export result=$(cat result.txt | jq -r '.projectStatus.status');

        if [ "$result" == "ERROR" ];then
          echo -e "91mSONAR RESULTS FAILED";
          echo "$(cat result.txt | jq -r '.projectStatus.conditions')"; #prints the critical, major and minor violations
          exit 1 #breaks the build for violations
        else
          echo -e "SONAR RESULTS SUCCESSFUL";
          echo "$(cat result.txt | jq -r '.projectStatus.conditions')";
          exit 0
        fi
      else
          echo -e "e[91mSONAR ANALYSIS FAILEDe[0m";
          exit 1 #breaks the build for failure in Step2
      fi
  tags:
    - docker

Scapus .gitlab-ci.yml perfectum non est. Expertus si lustrans officia in sonarqube finita cum statu: "SUCCES". Hactenus nullae aliae status fuerunt. Quamprimum sunt aliae status, corrigam .gitlab-ci.yml in hac poste.

Fons ostendens codicem qualitas status imperium in pagina principale project

Installing plugin for SonarQube

yum install -y sonarqube-qualinsight-badges

Imus ad SonarQube at http://172.26.9.115:9000/
Usorem ordinarium crea, exempli gratia "insignia".
Log in to SonarQube sub hoc usuario.

Fons ostendens codicem qualitas status control in SonarQube ad developers

Vade ad "Meam rationem", novum signum crea, exempli gratia cum nomine "read_all_repositorium" et deprime "Genereate".

Fons ostendens codicem qualitas status control in SonarQube ad developers

Videmus signum apparuisse. tantum 1 tempus apparebit.

Login as administrator.

Vade ad Configurationem -> SVG Badges

Fons ostendens codicem qualitas status control in SonarQube ad developers

Effingo hoc signum in "Actus insigne signum" et deprime puga salva.

Fons ostendens codicem qualitas status control in SonarQube ad developers

Vade ad Administration -> Securitatis -> Permission Templates -> Default template (and other templates that you will have).

Insignia usoris habere debent "Browse" checkbox sedatus.

Testis.

Eg https://github.com/jitpack/maven-simple.

Hoc propositum importat.

Adde fasciculum .gitlab-ci.yml ad radicem projecti cum sequenti contento.

variables:
  MAVEN_OPTS: "-Dhttps.protocols=TLSv1.2 -Dmaven.repo.local=~/.m2/repository -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true"
  MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end --show-version -DinstallAtEnd=true -DdeployAtEnd=true"
  SONAR_HOST_URL: "http://172.26.9.115:9000"
  LOGIN: "admin" # Π»ΠΎΠ³ΠΈΠ½ sonarqube
  PASSWORD: "admin" # ΠΏΠ°Ρ€ΠΎΠ»ΡŒ sonarqube

cache:
  paths:
    - .m2/repository

build:
  image: maven:3.3.9-jdk-8
  stage: build
  script:
    - mvn $MAVEN_CLI_OPTS -Dmaven.test.failure.ignore=true org.jacoco:jacoco-maven-plugin:0.8.5:prepare-agent clean verify org.jacoco:jacoco-maven-plugin:0.8.5:report
    - mvn $MAVEN_CLI_OPTS -Dmaven.test.skip=true verify sonar:sonar -Dsonar.host.url=$SONAR_HOST_URL -Dsonar.login=$LOGIN -Dsonar.password=$PASSWORD -Dsonar.gitlab.project_id=$CI_PROJECT_PATH -Dsonar.gitlab.commit_sha=$CI_COMMIT_SHA -Dsonar.gitlab.ref_name=$CI_COMMIT_REF_NAME
  tags:
    - docker

In SonarQube exertus sic erit:

Fons ostendens codicem qualitas status control in SonarQube ad developers

Adde saccos ad README.md et videbunt sic:

Fons ostendens codicem qualitas status control in SonarQube ad developers

Insignia propono codicem hoc spectat:

Fons ostendens codicem qualitas status control in SonarQube ad developers

Parsing insignia chorda:

[![Quality Gate](http://172.26.9.115:9000/api/badges/gate?key=com.github.jitpack:maven-simple)](http://172.26.9.115:9000/dashboard?id=com.github.jitpack%3Amaven-simple)
[![НазваниС](http://172.26.9.115:9000/api/badges/gate?key=Project Key)](http://172.26.9.115:9000/dashboard?id=id-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°)
[![Coverage](http://172.26.9.115:9000/api/badges/measure?key=com.github.jitpack:maven-simple&metric=coverage)](http://172.26.9.115:9000/dashboard?id=com.github.jitpack%3Amaven-simple)
[![НазваниС ΠœΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ](http://172.26.9.115:9000/api/badges/measure?key=Project Key&metric=ΠœΠ•Π’Π Π˜ΠšΠ)](http://172.26.9.115:9000/dashboard?id=id-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°)

Ubi impetro/reprehendo Key Project et id proiciunt.

Key Project est ad fundum rectum. Domicilium continet documentum id.

Fons ostendens codicem qualitas status control in SonarQube ad developers

Bene obtinendi metrics esse hic.

Omnes viverra petitiones pro melioramentis, bug fixes subire repositio.

Curabitur telegraphum de SonarQube https://t.me/sonarqube_ru
Curabitur telegraphum de DevSecOps - secure DevOps https://t.me/sec_devops

Source: www.habr.com