jenkinsci / sonar-gerrit-plugin

Jenkins plugin for posting SonarQube issues as Gerrit review comments
https://plugins.jenkins.io/sonar-gerrit/
MIT License
27 stars 38 forks source link

Duplicated comments for one issues in subsequent patchsets #143

Closed reyamam closed 1 year ago

reyamam commented 1 year ago

Jenkins and plugins versions report

Environment ```text Jenkins: 2.387.1 OS: Linux - 4.19.0-22-amd64 Java: 17.0.7 - Eclipse Adoptium (OpenJDK 64-Bit Server VM) --- ace-editor:1.1 analysis-model-api:11.2.0 ansicolor:1.0.2 ant:487.vd79d090d4ea_e antisamy-markup-formatter:159.v25b_c67cd35fb_ apache-httpcomponents-client-4-api:4.5.14-150.v7a_b_9d17134a_5 authentication-tokens:1.53.v1c90fd9191a_b_ badge:1.9.1 blueocean:1.27.4 blueocean-autofavorite:1.2.5 blueocean-bitbucket-pipeline:1.27.4 blueocean-commons:1.27.4 blueocean-config:1.27.4 blueocean-core-js:1.27.4 blueocean-dashboard:1.27.4 blueocean-display-url:2.4.2 blueocean-events:1.27.4 blueocean-git-pipeline:1.27.4 blueocean-github-pipeline:1.27.4 blueocean-i18n:1.27.4 blueocean-jira:1.27.4 blueocean-jwt:1.27.4 blueocean-personalization:1.27.4 blueocean-pipeline-api-impl:1.27.4 blueocean-pipeline-editor:1.27.4 blueocean-pipeline-scm-api:1.27.4 blueocean-rest:1.27.4 blueocean-rest-impl:1.27.4 blueocean-web:1.27.4 bootstrap4-api:4.6.0-6 bootstrap5-api:5.2.2-6 bouncycastle-api:2.28 branch-api:2.1092.vda_3c2a_a_f0c11 build-environment:1.7 build-failure-analyzer:2.4.1 build-monitor-plugin:1.14-717.v3efcdffe8d58 build-name-setter:2.2.1 build-pipeline-plugin:1.5.8 build-timeout:1.31 buildresult-trigger:0.18 buildtriggerbadge:251.vdf6ef853f3f5 caffeine-api:3.1.6-115.vb_8b_b_328e59d8 checks-api:2.0.0 claim:516.v36293563731d cloudbees-bitbucket-branch-source:800.va_b_b_9a_a_5035c1 cloudbees-disk-usage-simple:182.v62ca_0c992a_f3 cloudbees-folder:6.815.v0dd5a_cb_40e0e command-launcher:100.v2f6722292ee8 commons-lang3-api:3.12.0-36.vd97de6465d5b_ commons-text-api:1.10.0-36.vc008c8fcda_7b_ conditional-buildstep:1.4.2 config-file-provider:938.ve2b_8a_591c596 configurationslicing:548.ve92d48e66b_f8 copyartifact:705.v5295cffec284 credentials:1254.vb_96f366e7b_a_d credentials-binding:604.vb_64480b_c56ca_ cvs:2.19.1 dashboard-view:2.487.vcf0ff9008a_c0 data-tables-api:1.13.3-4 delivery-pipeline-plugin:1.4.2 dependency-check-jenkins-plugin:5.4.0 disk-usage:1.0 display-url-api:2.3.7 docker-commons:419.v8e3cd84ef49c docker-custom-build-environment:1.7.3 docker-workflow:563.vd5d2e5c4007f dtkit-api:3.0.2 durable-task:507.v050055d0cb_dd echarts-api:5.4.0-4 elastic-axis:409.v304cee6e7b_55 email-ext:2.99 embeddable-build-status:379.v1825c1804368 envinject:2.901.v0038b_6471582 envinject-api:1.199.v3ce31253ed13 extended-read-permission:3.2 external-monitor-job:206.v9a_94ff0b_4a_10 favorite:2.4.2 font-awesome-api:6.3.0-2 forensics-api:2.2.0 gerrit-trigger:2.39.0 git:5.0.2 git-client:4.2.0 git-server:99.va_0826a_b_cdfa_d github:1.37.1 github-api:1.314-431.v78d72a_3fe4c3 github-branch-source:1728.v859147241f49 global-post-script:1.1.4 groovy:453.vcdb_a_c5c99890 groovy-postbuild:2.5 handlebars:3.0.8 handy-uri-templates-2-api:2.1.8-22.v77d5b_75e6953 htmlpublisher:1.31 instance-identity:173.va_37c494ec4e5 ionicons-api:56.v1b_1c8c49374e jackson2-api:2.15.2-350.v0c2f3f8fc595 jakarta-activation-api:2.0.1-3 jakarta-mail-api:2.0.1-3 javadoc:233.vdc1a_ec702cff javax-activation-api:1.2.0-6 javax-mail-api:1.6.2-9 jaxb:2.3.8-1 jdk-tool:66.vd8fa_64ee91b_d jenkins-design-language:1.27.4 jersey2-api:2.40-1 jira:3.10 jjwt-api:0.11.5-77.v646c772fddb_0 jnr-posix-api:3.1.17-1 job-dsl:1.79 jobConfigHistory:1212.vd4470d08ff12 jquery:1.12.4-1 jquery-detached:1.2.1 jquery3-api:3.7.0-1 jsch:0.2.8-65.v052c39de79b_2 junit:1207.va_09d5100410f junit-attachments:131.vef2117770555 ldap:682.v7b_544c9d1512 lockable-resources:1156.v5e9f897ece02 log-parser:2.3.0 logfilesizechecker:1.5 mailer:457.v3f72cb_e015e5 mapdb-api:1.0.9-28.vf251ce40855d matrix-auth:3.1.8 matrix-project:789.v57a_725b_63c79 maven-plugin:3.22 mercurial:1260.vdfb_723cdcc81 metrics:4.2.18-439.v86a_20b_a_8318b_ mina-sshd-api-common:2.10.0-69.v28e3e36d18eb_ mina-sshd-api-core:2.10.0-69.v28e3e36d18eb_ modernstatus:1.3 momentjs:1.1.1 monitoring:1.94.1 multi-slave-config-plugin:1.2.0 naginator:1.19.2 next-build-number:1.8 okhttp-api:4.11.0-145.vcb_8de402ef81 pam-auth:1.10 parameterized-trigger:2.45 pipeline-build-step:491.v1fec530da_858 pipeline-github-lib:42.v0739460cda_c4 pipeline-graph-analysis:202.va_d268e64deb_3 pipeline-groovy-lib:656.va_a_ceeb_6ffb_f7 pipeline-input-step:468.va_5db_051498a_4 pipeline-milestone-step:111.v449306f708b_7 pipeline-model-api:2.2131.vb_9788088fdb_5 pipeline-model-definition:2.2131.vb_9788088fdb_5 pipeline-model-extensions:2.2131.vb_9788088fdb_5 pipeline-rest-api:2.33 pipeline-stage-step:305.ve96d0205c1c6 pipeline-stage-tags-metadata:2.2131.vb_9788088fdb_5 pipeline-stage-view:2.33 plain-credentials:143.v1b_df8b_d3b_e48 plugin-util-api:3.2.1 popper-api:1.16.1-3 popper2-api:2.11.6-2 port-allocator:1.10 prism-api:1.29.0-7 prometheus:2.2.3 promoted-builds:3.11 pubsub-light:1.17 rake:1.8.0 rebuild:320.v5a_0933a_e7d61 resource-disposer:0.22 rubyMetrics:1.6.5 run-condition:1.5 scm-api:676.v886669a_199a_a_ scoring-load-balancer:59.vf791549fa_989 script-security:1251.vfe552ed55f8d snakeyaml-api:1.33-95.va_b_a_e3e47b_fa_4 sonar:2.15 sonar-gerrit:378.vf4646d4df087 sse-gateway:1.26 ssh-agent:333.v878b_53c89511 ssh-credentials:305.v8f4381501156 ssh-slaves:2.877.v365f5eb_a_b_eec sshd:3.303.vefc7119b_ec23 status-view:1.0 structs:324.va_f5d6774f3a_d subversion:2.17.2 text-finder:1.24 throttle-concurrents:2.14 timestamper:1.25 token-macro:359.vb_cde11682e0c translation:1.16 trilead-api:2.84.v72119de229b_7 urltrigger:1.02 variant:59.vf075fe829ccb view-job-filters:364.v48a_33389553d warnings-ng:10.2.0 windows-slaves:1.8.1 workflow-aggregator:596.v8c21c963d92d workflow-api:1219.v05cd837ea_249 workflow-basic-steps:1017.vb_45b_302f0cea_ workflow-cps:3668.v1763b_b_6ccffd workflow-cps-global-lib:609.vd95673f149b_b workflow-durable-task-step:1247.v7f9dfea_b_4fd0 workflow-job:1316.vd2290d3341a_f workflow-multibranch:746.v05814d19c001 workflow-scm-step:408.v7d5b_135a_b_d49 workflow-step-api:639.v6eca_cd8c04a_a_ workflow-support:839.v35e2736cfd5c ws-cleanup:0.45 xtrigger-api:1.0 xunit:3.1.2 ```

What Operating System are you using (both controller, and any agents involved in the problem)?

Linux

Reproduction steps

  1. Prepare and submit a change containing sonar issues. Check the Sonar Comments in Gerrit
  2. Retrigger the Gerrit event manually via Jenkins

Expected Results

There is only one comment for the sonar issue.

Actual Results

There are two comments for the sonar issue.

Anything else?

We use Jenkins 2.387.1 and Gerrit 3.6.4. We have the following Problem. Assume a Gerrit Change containing sonar issues. If the following patchsets do not fix the issues, then these issues are sent again to Gerrit and as a result, there are multiple comments for identical issues contained in Gerrit. Is there a way to fix this issue by configuration? I’ve tried out many things, but it seems that the there is currently no way. I’ve compared the code of the Sonar-Gerrit-Plugin to the documentation of the Gerrit REST-API. Could it be that setting the field _omit_duplicate_comments of the ReviewInput that is sent as payload of Set Review to true_ would solve the problem?