Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Panel
borderColor#888888

Table of Contents

Table of Contents
indent16px


이슈는 자동으로 발견합니다.

상태

이슈가 생성된 후에는 다음과 같은 다섯 단계의 라이프사이클 중 하나의 상태를 가집니다:

  • Open - SonarQube가 새로운 이슈라고 결정한 상태
  • Confirmed - 해당 이슈가 유효한 이슈라고 사용자가 직접 설정한 상태
  • Resolved - 다음 분석시 해당 이슈가 완료될 것이라고 사용자가 직접 설정한 상태
  • Reopened - Resolved 상태의 이슈가 실제로 수정되지 않았을 경우, SonarQube가 자동으로 설정한 상태 
  • Closed - SonarQube가 자동으로 생성한 이슈 중, 분석시 해당 이슈가 완료되었다고 Sonarqube가 자동으로 설정한 상태

해결 상태

Closed 상태의 이슈는 다음 두 가지 중 하나의 해결 상태를 가집니다:

  • Fixed - 분석 결과 해당 이슈가 수정되어 Sonarqube가 자동으로 설정한 상태
  • Removed - 분석 결과 해당 이슈를 발생시킨 코딩 규칙 혹은 소스 코드가 존재하지 않은 경우 SonarQube가 자동으로 설정한 상태. 코딩 규칙이 코딩 프로파일에서 제외되거나 관련된 프로파일이 삭제된 경우 해당 코딩 규칙은 존재하지 않는 것으로 판단합니다. 파일이름 변경, 파일 위치 이동, 파일 삭제시 해당 파일은 존재하지 않는 것으로 판단합니다.

Resolved 해결 상태의 이슈는 다음 두 가지 중 하나의 해결 상태를 가집니다: 

  • False Positive - 오류 오검출. 사용자가 직접 설정
  • Won't Fix - 오류이나 수정하지 않음. 사용자가 직접 설정

이슈 워크플로우

이슈는 다음의 경우 자동적으로 Closed 상태로 변경됩니다:

  • 이슈(어떤 상태에서든)가 정상적으로 수정된 경우 => Resolution: Fixed
  • 코딩 규칙 비활성화 혹은 사용 불가(즉, 플러그인 삭제)로 이슈 자체가 사라진 경우 => Resolution: Removed

이슈는 다음의 경우 자동적으로 Reopened 상태로 변경됩니다:

  • Resolved(해결 상태가 False positive로 설정되지 않은) 해결 상태의 이슈가 다음 분석 시에도 존재하는 경우

어떤 이슈를 "New"로 판단하는가

분석 수행 과정에서 이슈의 생성 일자를 결정하는 과정에서, 다음의 알고리즘을 사용해 해당 이슈의 신규(new) 혹은 기존(exsted) 여부를 판단합니다. 각 이슈는 네 가지 기준(line, line number, line content 혹은 "hash" 및 message)에 대해 세 가지 기준이 다음의 조건을 만족하는 경우 동이한 이슈로 결정됩니다:

  • 동일 코딩 규칙에 대해, 코드 라인(line number)과 해시(hash)가 동일함(동일한 메시지(message)일 필요는 없음) > 일치
  • 동일 코딩 규칙에 대해, 메시지(message)와 해시(has)가 동일함(동일한 코드 라인(line number)일 필요는 없음) > 일치
  • 동일 코딩 규칙에 대해, 메시지(message)와 코드 라인(line number)가 동일함(동일한 해시(hash)일 필요는 없음) > 일치

상기 이외의 모든 경우, 해당 이슈는 신규 이슈로 결정됩니다.

Closed 상태의 이슈 삭제하기

기본적으로 Closed 상태의 이슈 데이터는 30일간 유지합니다. 관련된 세부적인 내용은 Housekeeping 문서를 참조합니다.


Issues are detected automatically. 

Statuses

After creation, issues flow through a lifecycle, taking on one of five possible statuses:

  • Open - set by SonarQube on new issues
  • Confirmed - set manually to indicate that the issue is valid
  • Resolved - set manually to indicate that the next analysis should Close the issue
  • Reopened - set automatically by SonarQube when a Resolved issue hasn't actually been corrected
  • Closed - set automatically by SonarQube for automatically created issues. 

Resolutions

Closed issues will have one of two resolutions:

  • Fixed - set automatically when a subsequent analysis shows that the issue has been corrected
  • Removed - set automatically when either the related coding rule or the file is no longer available. The rule may not be available either because it has been removed from the profile or because the underlying plugin has been uninstalled. The file could be unavailable because it has been removed from the project, moved to a different location or renamed.

Resolved issues will have one of two resolutions:

  • False Positive - set manually
  • Won't Fix - set manually

Issue workflow 

Issues are automatically closed (status: Closed) when:

  • an issue (of any status) has been properly fixed => Resolution: Fixed
  • an issue no longer exists because the related coding rule has been deactived or is no longer available (ie: plugin has been removed) => Resolution: Removed

Issues are automatically reopened (status: Reopened) when:

  • an issue that was Resolved (but Resolution is not False positive) is shown by a subsequent analysis to still exist

Understanding which issues are "new"

To determine the creation date of an issue, during each analysis, the following algorithm is executed to determine if an issue is new or existed previously. For each issue, three of four criteria (rule; line number; line content or "hash"; and message) must match for a detected issue to be matched up with an existing one:

  • on the same rule, with the same line number and with the same hash (but not necessarily with the same message) > MATCH
  • on the same rule, with the same message and with the same hash (but not necessarily with the same line) > MATCH
  • on the same rule, with the same message and with the same line number (but not necessarily with the same hash) > MATCH

In any other case, the issue is a new one.

Purging Closed Issues

By default, Closed issues are kept for 30 days. For more details, browse the Housekeeping documentation.