Versions Compared

Key

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


Panel
borderColor#C3CCD7
bgColor#FCFCFC

Table of Contents

Table of Contents
indent16px


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

상태

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

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

해결 상태

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

  • Fixed - 분석 결과 해당 이슈가 수정되어 Sonarqube가 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 문서를 참조합니다.