命令行接口在本地執行CODACY代碼分析。
有了一個命令,您可以:
curl -L https://github.com/codacy/codacy-analysis-cli/archive/master.tar.gz | tar xvz
cd codacy-analysis-cli- * && sudo make install一旦滿足先決條件,就該使Bash和Docker之間的連通性了。
守護程序必須在沒有TLS的情況下暴露。為了做到這一點,請轉到Docker設置 - > General。只需在TCP:// Localhost上使用標籤的“揭露守護程序:2375無TLS”的複選框,Docker將重新加載。
現在是時候去Bash並安裝和配置Docker客戶端了。
如果您使用的是Windows 10(在1803上方構建),以下命令將使Docker客戶端可從bash sudo ln -s "/mnt/c/Program Files/Docker/Docker/resources/bin/docker.exe" /usr/local/bin/docker提供。
如果您使用的是Windows 10的先前版本,則可以在這裡找到一個非常容易遵循的教程。
由於您將使用WSL,因此需要將變量Docker_host配置為tcp://0.0.0.0:2375 ,為了做到這一點,只需在bash上鍵入以下命令
export DOCKER_HOST=tcp://0.0.0.0:2375
也可以將此變量添加到您的.bashrc或.bash_profile文件中,以便在啟動bash時隨時準備就緒
echo "export DOCKER_HOST=tcp://0.0.0.0:2375" >> ~/.bash_profile
echo "export DOCKER_HOST=tcp://0.0.0.0:2375" >> ~/.bashrc
如果您使用的是蘋果矽,請確保:
Use Rosetta for x86/amd64 emulation on Apple Silicon (在開發功能下) 此時,Codacy-Analysis-CLI準備安裝。
在bash中,轉到要下載該工具的文件夾並輸入以下命令:
sudo apt-get install make
curl -L https://github.com/codacy/codacy-analysis-cli/archive/master.tar.gz | tar xvz
cd codacy-analysis-cli-*
再次,由於使用了WSL,必須在此目錄中的makefile中添加兩條突出顯示的線條。
在測試部分之前:
export DOCKER_HOST=tcp://0.0.0.0:2375
並且,在安裝中,部分:
docker login
最後,只需鍵入以下命令,安裝將啟動
sudo make install
當需要Docker的用戶名時,請確保編寫用戶名而不是電子郵件,因為根據您創建的Docker帳戶的方式,它們可能會有所不同。
codacy-analysis-cli analyze
--tool < TOOL-SHORT-NAME >
--directory < SOURCE-CODE-PATH > java -jar codacy-analysis-cli-assembly-{VERSION}.jar analyze
--tool <TOOL-SHORT-NAME>
--directory <SOURCE-CODE-PATH>
# other options
sbt " codacyAnalysisCli/runMain com.codacy.analysis.cli.Main analyze --tool <TOOL-SHORT-NAME> --directory <SOURCE-CODE-PATH> "docker run
--rm=true
--env CODACY_CODE= " $CODACY_CODE "
--volume /var/run/docker.sock:/var/run/docker.sock
--volume " $CODACY_CODE " : " $CODACY_CODE "
--volume /tmp:/tmp
codacy/codacy-analysis-cli
analyze --tool < TOOL-SHORT-NAME >CLI輸出的默認格式是文本,分為3個類別:
工具報告的問題在3個不同級別之間有所不同( Error , Warning和Info )。例子:
Found [Error] `Expected "#E1675A" to be "#e1675a" (color-hex-case)` in styles/variables.less:4 (Stylelint_color-hex-case)
Found [Warning] `'object short notation' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).` in scripts/main.js:28 (iterator)
Found [Info] `Missing semicolon.` in views/components/Progress.jsx:18 (asi)
為每個文件打印指標數據,並包含5種類型的數據:
LOC代碼行CLOC評論的代碼行CC環形複雜性#methods方法數量#classes的數量例子:
Found [Metrics] in generic/Test.java:
CC - 33
LOC - 778
CLOC - 864
#methods - 3
#classes - 1
每個發現的克隆都打印出有關行總數,令牌數量和所有發生的信息(啟動的線以及結束的位置)。例子:
Found [Clone] 7 duplicated lines with 10 tokens:
generic/test.rb
l. 681 - 687
l. 693 - 699
generic/another_test.rb
l. 601 - 607
l. 193 - 199
analyze - 通過目錄/文件進行CODACY分析--help - 顯示所有配置選項,其含義和可能的值。--verbose用詳細輸出運行工具--tool - 選擇分析代碼(例如製動器)或“指標”,“重複”,“問題”的工具,僅運行特定的工具類別--directory - 選擇要分析的目錄--codacy-api-base-url或env。 CODACY_API_BASE_URL更改CODACY安裝API URL以檢索配置(例如企業安裝)--output - 將輸出結果發送到文件--format [默認:文本] - 更改輸出格式(例如JSON)--commit-uuid [默認:當前GIT分支的最新提交] - 設置將接收CODACY結果的提交UUID--skip-commit-uuid-validation [默認值:false] - 使用commit uuid強制使用,即使它不屬於當前的git分支。--skip-uncommitted-files-check [默認值:false] - 跳過在分析目錄中查看未投入的文件--upload [默認值:false] - 請求將結果推到Codacy--upload-batch-size [默認值:50000] - 每批最大結果數量上傳到codacy--skip-ssl-verification [默認值:false] - 與Codacy API通信時跳過SSL證書驗證--parallel [默認值:2] - 並行運行的工具數量--max-allowed-issues [默認值:0] - 分析成功的最大問題數量--registry-address [默認:空] - 替代註冊表地址(例如ArtProd.myCompany/)--fail-if-incomplete [默認值:false] - 如果任何工具無法運行,則分析失敗--allow-network [默認值:false] - 允許網絡訪問,因此需要執行的工具(例如,findbugs)--force-file-permissions [默認值:false] - 在運行分析之前更改權限可讀取文件--tool-timeout [默認值:15分鐘] - 每個工具必須執行的最大時間(例如15分鐘,1小時)--max-tool-memory [默認值:3G] - 每個工具執行的最大內存(在字節或使用Docker的內存限制標誌的符號))--tmp-directory [可選] - 用於分析目的的臨時目錄--gh-code-scanning-compat [默認值:false] -對於非安全性問題,將問題嚴重性降低一個級別,以與GitHub的代碼掃描功能兼容。此選項僅在與--format sarif結合使用時會產生效果。請注意,在這種情況下,Codacy方面的同樣問題將具有更高的優先級。validate-configuration - 驗證CODACY配置文件--directory選擇目錄在哪裡查找CODACY配置文件CODACY_ANALYSIS_CLI_VERSION [默認值:穩定] - 設置CLI的替代版本。 (例如,最新,0.1.0-alpha3.1350,...)SKIP_CONTAINER_ENGINE_CHECK [默認值:false] - 跳過docker套接字的初始測試(在沒有Docker套接字的系統中運行時有用)要執行某些高級配置,Codacy允許創建一個配置文件。檢查我們的文檔以獲取更多詳細信息。
要在本地運行與Codacy在代碼中進行的分析,您可以遠程請求配置。
查看如何生成項目令牌。
配x 警告:出於安全原因,我們建議您將項目API令牌存儲在環境變量codacy_project_token而不是設置--project-token中。
codacy-analysis-cli analyze
--project-token < PROJECT-TOKEN >
--tool < TOOL-SHORT-NAME >
--directory < SOURCE-CODE-PATH > 查看如何生成帳戶API令牌。
配x 警告:出於安全原因,我們建議您將帳戶API令牌存儲在環境變量CODACY_API_TOKEN而不是設置--api-token中。
提供商,用戶名和項目名稱可以從Codacy的URL中檢索。
codacy-analysis-cli analyze
--api-token < API-TOKEN >
--provider < PROVIDER >
--username < USERNAME >
--project < PROJECT-NAME >
--tool < TOOL-SHORT-NAME >
--directory < SOURCE-CODE-PATH > 代碼
注意: - 替罪羊在測試中的編譯期間運行,以禁用它,設置NO_SCAPEGOAT 。
sbt compile
測試
sbt test:compile
sbt testsbt scalafmtAll scalafmtSbtsbt dependencyUpdatessbt scapegoat
sbt scalafixsbt coverage test
sbt coverageReport
sbt coverageAggregate
export CODACY_PROJECT_TOKEN= " <TOKEN> "
sbt codacyCoverage當地的
sbt 'codacyAnalysisCli/stage'
docker build -t codacy-analysis-cli .
當地的
sbt 'set version in codacyAnalysisCore := "<VERSION>"' codacyAnalysisCore/publishLocal
發布
sbt 'set version in codacyAnalysisCore := "<VERSION>"' 'set pgpPassphrase := Some("<SONATYPE_GPG_PASSPHRASE>".toCharArray)' codacyAnalysisCore/publishSigned
sbt 'set version in codacyAnalysisCore := "<VERSION>"' sonatypeRelease
7.0.0 :fix- --parallel使工具實際運行實際運行。恢復先前的行為使用--parallel 1
4.0.0 :重命名analyse命令進行analyze 。如果您使用JAR或sbt運行CLI,則這是一個打破的更改,但如果您使用提供的腳本,則不會。
Codacy是一個監視您的技術債務,幫助您提高代碼質量和安全性,向開發人員教授最佳實踐的平台,並幫助您節省代碼審查的時間。我們通過自動化和標準化代碼審查來幫助開發人員每天運送數十億行代碼。
CODACY無縫集成到工作流程中,可幫助工程團隊節省代碼審核的時間,並查找,修復和防止編碼缺陷,否則這些缺陷本來可以將其作為技術債務。我們的平台使用人工智能建議代碼質量修復。 Codacy支持40多種語言和框架,並提供免費開源。
開始免費試用以了解更多信息。
Codacy還有助於跟踪代碼覆蓋範圍,代碼重複和代碼複雜性。
Codacy支持PHP,Python,Ruby,Java,JavaScript和Scala等。
Codacy是免費的開源項目。