Go 언어 이용의 리포지토리를 Inspecode로 정적 해석+테스트 해 본다
Inspecode란?
Inspecode 은 CodeClimate 및 SideCI와 같은 정적 코드 분석 서비스의 일종입니다. 문서 에 있는 것처럼, 꽤 많은 언어와 툴에 대응하고 있는 것이 특징입니다. 그리고 정적 코드 해석이라고 하면서, Go 언어나 Javascript에 관해서는 테스트의 실행도 할 수 있어 버립니다.
이번에는 Go 언어를 이용한 리포지토리에 대해 Inspecode에서 정적 코드 해석 + 테스트 실행을 시도합니다.
Disclaimer
저는 Inspecode 개발에 관여합니다. 일본어의 튜토리얼이 전혀 없기 때문에 시험에 Qiita에 투고해 보았습니다.
사용할 리포지토리
gitleaks 라는 git에 비밀 정보를 커밋하고 있는지 확인하는 도구의 리포지토리를 대상으로 해 보겠습니다.
절차
1. gitleaks 리포지토리 포크
Organization 부하에 Fork하면 나중에 귀찮아서 개인 계정 부하에 Fork하는 것이 좋습니다. .
2. 구성 파일 추가
다음 구성 파일을 rocro.yml
라는 이름으로 git 저장소 바로 아래에 추가합니다. 설정 파일 없이도 어느 정도는 움직입니다만, 이번은 테스트도 실행하고 싶기 때문에 미리 만들어 둡니다.
inspecode:
gofmt:
thresholds:
num-issues: 0
golint:
thresholds:
num-issues: 0
goimports:
thresholds:
num-issues: 0
go-test:
thresholds:
num-issues: 0
사용하려는 도구와 구문 분석 작업을 실패로 간주하는 Issues 수의 임계값을 지정합니다. 예를 들어 이번 설정이라면, 어느 쪽의 툴이 하나라도 Issue를 지적하면, 작업 실패로 합니다.
그 밖에도 Go 언어에서는 다음 도구을 사용할 수 있으므로 필요에 따라 추가해 보세요.
3. Inspecode에 Sign in/up
여기 페이지 에서 Sign in/up 할 수 있습니다. GitHub 계정이 필요합니다.
4. gitleaks 리포지토리 등록
Top 페이지에서 Repositories 목록 페이지를 열고,
gitleaks의 저장소를 등록합니다.
등록하면 자동으로 첫 번째 분석 작업이 실행됩니다.
5. 분석 작업 열기
Reports 목록 페이지를 열고,
Loading 아이콘을 누릅니다.
6. 분석 작업의 내용 확인
다음과 같이 도구별로 실행 성공 여부가 표시됩니다. go test
는 성공, gofmt
, goimports
, golint
는 실패하고 있음을 알 수 있습니다.
gofmt
등이 실패하고 있는 것은, 툴이 Issue를 지적했기 때문이라고 생각됩니다. 지적한 이슈를 보려면 View Report 버튼을 누릅니다.
7. 보고서 확인
다음과 같은 형식으로 해석 결과를 확인할 수 있습니다.
Issues 탭을 열면 도구가 지적한 Issues를 나열할 수 있습니다.
gofmt와 goimports가 Issue를 지적합니다.
분석 작업의 성공 여부는 GitHub에도 자동으로 반영되므로 Pull Request에서 확인할 수도 있습니다.
요약
Inspecode를 사용하여 Go 언어를 이용한 리포지토리에 대해 정적 코드 분석 + 테스트 실행을 시도했습니다. 마지막으로, 이번에는 소개할 수 없었던 기능을 조금 나란히 둡니다. .
저는 Inspecode 개발에 관여합니다. 일본어의 튜토리얼이 전혀 없기 때문에 시험에 Qiita에 투고해 보았습니다.
사용할 리포지토리
gitleaks 라는 git에 비밀 정보를 커밋하고 있는지 확인하는 도구의 리포지토리를 대상으로 해 보겠습니다.
절차
1. gitleaks 리포지토리 포크
Organization 부하에 Fork하면 나중에 귀찮아서 개인 계정 부하에 Fork하는 것이 좋습니다. .
2. 구성 파일 추가
다음 구성 파일을 rocro.yml
라는 이름으로 git 저장소 바로 아래에 추가합니다. 설정 파일 없이도 어느 정도는 움직입니다만, 이번은 테스트도 실행하고 싶기 때문에 미리 만들어 둡니다.
inspecode:
gofmt:
thresholds:
num-issues: 0
golint:
thresholds:
num-issues: 0
goimports:
thresholds:
num-issues: 0
go-test:
thresholds:
num-issues: 0
사용하려는 도구와 구문 분석 작업을 실패로 간주하는 Issues 수의 임계값을 지정합니다. 예를 들어 이번 설정이라면, 어느 쪽의 툴이 하나라도 Issue를 지적하면, 작업 실패로 합니다.
그 밖에도 Go 언어에서는 다음 도구을 사용할 수 있으므로 필요에 따라 추가해 보세요.
3. Inspecode에 Sign in/up
여기 페이지 에서 Sign in/up 할 수 있습니다. GitHub 계정이 필요합니다.
4. gitleaks 리포지토리 등록
Top 페이지에서 Repositories 목록 페이지를 열고,
gitleaks의 저장소를 등록합니다.
등록하면 자동으로 첫 번째 분석 작업이 실행됩니다.
5. 분석 작업 열기
Reports 목록 페이지를 열고,
Loading 아이콘을 누릅니다.
6. 분석 작업의 내용 확인
다음과 같이 도구별로 실행 성공 여부가 표시됩니다. go test
는 성공, gofmt
, goimports
, golint
는 실패하고 있음을 알 수 있습니다.
gofmt
등이 실패하고 있는 것은, 툴이 Issue를 지적했기 때문이라고 생각됩니다. 지적한 이슈를 보려면 View Report 버튼을 누릅니다.
7. 보고서 확인
다음과 같은 형식으로 해석 결과를 확인할 수 있습니다.
Issues 탭을 열면 도구가 지적한 Issues를 나열할 수 있습니다.
gofmt와 goimports가 Issue를 지적합니다.
분석 작업의 성공 여부는 GitHub에도 자동으로 반영되므로 Pull Request에서 확인할 수도 있습니다.
요약
Inspecode를 사용하여 Go 언어를 이용한 리포지토리에 대해 정적 코드 분석 + 테스트 실행을 시도했습니다. 마지막으로, 이번에는 소개할 수 없었던 기능을 조금 나란히 둡니다. .
1. gitleaks 리포지토리 포크
Organization 부하에 Fork하면 나중에 귀찮아서 개인 계정 부하에 Fork하는 것이 좋습니다. .
2. 구성 파일 추가
다음 구성 파일을
rocro.yml
라는 이름으로 git 저장소 바로 아래에 추가합니다. 설정 파일 없이도 어느 정도는 움직입니다만, 이번은 테스트도 실행하고 싶기 때문에 미리 만들어 둡니다.inspecode:
gofmt:
thresholds:
num-issues: 0
golint:
thresholds:
num-issues: 0
goimports:
thresholds:
num-issues: 0
go-test:
thresholds:
num-issues: 0
사용하려는 도구와 구문 분석 작업을 실패로 간주하는 Issues 수의 임계값을 지정합니다. 예를 들어 이번 설정이라면, 어느 쪽의 툴이 하나라도 Issue를 지적하면, 작업 실패로 합니다.
그 밖에도 Go 언어에서는 다음 도구을 사용할 수 있으므로 필요에 따라 추가해 보세요.
3. Inspecode에 Sign in/up
여기 페이지 에서 Sign in/up 할 수 있습니다. GitHub 계정이 필요합니다.
4. gitleaks 리포지토리 등록
Top 페이지에서 Repositories 목록 페이지를 열고,
gitleaks의 저장소를 등록합니다.
등록하면 자동으로 첫 번째 분석 작업이 실행됩니다.
5. 분석 작업 열기
Reports 목록 페이지를 열고,
Loading 아이콘을 누릅니다.
6. 분석 작업의 내용 확인
다음과 같이 도구별로 실행 성공 여부가 표시됩니다.
go test
는 성공, gofmt
, goimports
, golint
는 실패하고 있음을 알 수 있습니다.gofmt
등이 실패하고 있는 것은, 툴이 Issue를 지적했기 때문이라고 생각됩니다. 지적한 이슈를 보려면 View Report 버튼을 누릅니다.7. 보고서 확인
다음과 같은 형식으로 해석 결과를 확인할 수 있습니다.
Issues 탭을 열면 도구가 지적한 Issues를 나열할 수 있습니다.
gofmt와 goimports가 Issue를 지적합니다.
분석 작업의 성공 여부는 GitHub에도 자동으로 반영되므로 Pull Request에서 확인할 수도 있습니다.
요약
Inspecode를 사용하여 Go 언어를 이용한 리포지토리에 대해 정적 코드 분석 + 테스트 실행을 시도했습니다. 마지막으로, 이번에는 소개할 수 없었던 기능을 조금 나란히 둡니다. .
구성 파일의 ignore에서 특정 디렉토리를 구문 분석에서 제외 할 수 있습니다.
구성 파일의 runtime 에서 Go 버전을 지정할 수 있습니다. 아직 1.10 대응되어 있지 않습니다만. .
auto-fix
가 있는 도구가 대상입니다. 설정 방법은 각 툴의 문서를 봐 주세요. Reference
이 문제에 관하여(Go 언어 이용의 리포지토리를 Inspecode로 정적 해석+테스트 해 본다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ks888/items/65d3be0f05e1aecc817b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)