Repolode
yoheimuta

yoheimuta/protolint

protoc 컴파일러 없이 Protocol Buffer 스타일 가이드 규칙을 적용하는 플러그인형 린터이자 자동 수정 도구입니다.

스타
697
포크
65
열린 이슈
53
마지막 커밋
15일 전

어떤 프로젝트인가요?

protolint는 proto2와 proto3의 .proto 파일을 검사하고 수정합니다. protobuf 컴파일러를 실행하지 않고 파일을 직접 파싱하므로 검사가 빠르게 실행되며, 전체 컴파일 환경도 필요하지 않습니다. 공식 스타일 가이드 규칙 대부분은 -fix 플래그로 수정할 수 있고, 자동 비활성화 모드에서는 API 호환성을 깨뜨릴 수 있는 변경 대신 억제 주석을 삽입합니다.

protolint:disable 주석으로 규칙을 파일 안에서 비활성화하거나 .protolint.yaml 파일을 통해 설정할 수 있습니다. 사용자 지정 린트 규칙은 플러그인으로 불러올 수 있습니다. 출력 형식은 GitHub Actions, Azure DevOps, GitLab CI, JUnit, SARIF, SonarQube 및 기타 도구에 맞게 지정할 수 있습니다.

protolint는 독립 실행형 CLI, protoc 플러그인, pre-commit 훅, Go 라이브러리, npm 또는 Python 패키지, AI 클라이언트용 MCP 서버로 실행할 수 있습니다.

핵심 기능

  • 01protoc 없이 proto2와 proto3 파일을 검사합니다.
  • 02-fix로 공식 스타일 가이드 위반 대부분을 자동 수정합니다.
  • 03자동 비활성화 모드는 API 호환성을 유지하도록 억제 주석을 삽입합니다.
  • 04파일 내 비활성화 주석과 .protolint.yaml 설정을 지원합니다.
  • 05플러그인 아키텍처를 통해 사용자 지정 규칙을 불러옵니다.
  • 06JUnit, SARIF, SonarQube, JSON 및 CI 시스템용 리포터를 제공합니다.

활용 사례

  • 팀의 protobuf 스키마 전반에 일관된 이름 지정과 들여쓰기 규칙을 적용합니다.
  • 병합 전에 CI 파이프라인이나 pre-commit 훅에서 스타일 검사를 실행합니다.
  • VS Code, IntelliJ, Vim 등의 편집기에서 protobuf 파일을 린트합니다.
  • 내부 API 규칙에 맞는 프로젝트별 린트 규칙을 추가합니다.

토픽

자주 묻는 질문

protolint은(는) 무엇인가요?
protoc 컴파일러 없이 Protocol Buffer 스타일 가이드 규칙을 적용하는 플러그인형 린터이자 자동 수정 도구입니다. protolint는 proto2와 proto3의 .proto 파일을 검사하고 수정합니다. protobuf 컴파일러를 실행하지 않고 파일을 직접 파싱하므로 검사가 빠르게 실행되며, 전체 컴파일 환경도 필요하지 않습니다. 공식 스타일 가이드 규칙 대부분은 -fix 플래그로 수정할 수 있고, 자동 비활성화 모드에서는 API 호환성을 깨뜨릴 수 있는 변경 대신 억제 주석을 삽입합니다.
protolint은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
protolint은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
protolint은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. protolint의 마지막 커밋은 2026년 10월 7일입니다.
protolint은(는) 어디에 사용할 수 있나요?
팀의 protobuf 스키마 전반에 일관된 이름 지정과 들여쓰기 규칙을 적용합니다. 병합 전에 CI 파이프라인이나 pre-commit 훅에서 스타일 검사를 실행합니다. VS Code, IntelliJ, Vim 등의 편집기에서 protobuf 파일을 린트합니다. 내부 API 규칙에 맞는 프로젝트별 린트 규칙을 추가합니다.
protolint은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/yoheimuta/protolint

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트