อินเทอร์เฟซบรรทัดคำสั่งเพื่อดำเนินการวิเคราะห์รหัสรหัสในเครื่อง
ด้วยคำสั่งเดียวที่คุณสามารถทำได้:
curl -L https://github.com/codacy/codacy-analysis-cli/archive/master.tar.gz | tar xvz
cd codacy-analysis-cli- * && sudo make installเมื่อพบสิ่งที่จำเป็นต้องมีเวลาแล้วก็ถึงเวลาที่จะเปิดใช้งานการเชื่อมต่อระหว่าง Bash และ Docker
เป็นข้อบังคับว่า daemon ถูกเปิดเผยโดยไม่มี TLS เพื่อที่จะทำเช่นนั้นไปที่การตั้งค่า Docker -> ทั่วไป เพียงคลิกที่ช่องทำเครื่องหมายด้วยฉลาก 'เปิดเผย daemon บน tcp: // localhost: 2375 โดยไม่มี TLS' และ Docker จะโหลดซ้ำ
ตอนนี้ถึงเวลาไปที่ทุบตีและติดตั้งและกำหนดค่าไคลเอนต์ 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 เพื่อให้ตัวแปรพร้อมเสมอเมื่อคุณเริ่มทุบตี
echo "export DOCKER_HOST=tcp://0.0.0.0:2375" >> ~/.bash_profile
echo "export DOCKER_HOST=tcp://0.0.0.0:2375" >> ~/.bashrc
หากคุณใช้ Apple Silicon โปรดตรวจสอบให้แน่ใจว่า:
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 ให้แน่ใจว่าได้เขียนชื่อผู้ใช้ไม่ใช่อีเมลเพราะขึ้นอยู่กับวิธีที่คุณสร้างบัญชีนักเทียบท่าของคุณพวกเขาอาจแตกต่างกัน
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 - เรียกใช้การวิเคราะห์การเข้ารหัสผ่านไดเรกทอรี/ไฟล์--help -แสดงตัวเลือกการกำหนดค่าทั้งหมดความหมายและค่าที่เป็นไปได้--verbose -เรียกใช้เครื่องมือด้วยเอาต์พุต verbose--tool -เลือกเครื่องมือในการวิเคราะห์รหัส (เช่น Brakeman) หรือ "ตัวชี้วัด", "การทำซ้ำ", "ปัญหา" เพื่อเรียกใช้เฉพาะหมวดหมู่เครื่องมือเฉพาะ--directory -เลือกไดเรกทอรีที่จะวิเคราะห์--codacy-api-base-url หรือ env CODACY_API_BASE_URL - เปลี่ยนการติดตั้ง Codacy API URL เพื่อดึงการกำหนดค่า (เช่นการติดตั้งองค์กร)--output -ส่งผลลัพธ์ผลลัพธ์ไปยังไฟล์--format [ค่าเริ่มต้น: ข้อความ] -เปลี่ยนรูปแบบเอาต์พุต (เช่น JSON)--commit-uuid [ค่าเริ่มต้น: การกระทำล่าสุดของสาขา GIT ปัจจุบัน]-ตั้งค่า UUID ที่จะได้รับผลการประมวลผล--skip-commit-uuid-validation [ค่าเริ่มต้น: false]-บังคับใช้การกระทำ UUID แม้ว่ามันจะไม่ได้อยู่ในสาขา GIT ปัจจุบัน--skip-uncommitted-files-check [ค่าเริ่มต้น: false]-ข้ามการตรวจสอบไฟล์ที่ไม่มีข้อ จำกัด ในไดเรกทอรีการวิเคราะห์--upload [ค่าเริ่มต้น: false] -คำขอส่งผลลัพธ์ไปยังรหัส--upload-batch-size [ค่าเริ่มต้น: 50000]-จำนวนสูงสุดของผลลัพธ์ในแต่ละชุดเพื่ออัปโหลดไปยังการเข้ารหัส--skip-ssl-verification [ค่าเริ่มต้น: false]-ข้ามการตรวจสอบใบรับรอง SSL เมื่อสื่อสารกับ Codacy API--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 โปรดทราบว่าในกรณีนี้ปัญหาเดียวกันทางด้านการแปลงจะมีลำดับความสำคัญสูงกว่าvalidate-configuration - ตรวจสอบความถูกต้องของไฟล์กำหนดค่า codacy--directory -เลือกไดเรกทอรีที่จะค้นหาไฟล์กำหนดค่าการเข้ารหัสCODACY_ANALYSIS_CLI_VERSION [ค่าเริ่มต้น: เสถียร] - ตั้งค่าเวอร์ชันทางเลือกของ CLI เพื่อเรียกใช้ (เช่นล่าสุด, 0.1.0-alpha3.1350, ... )SKIP_CONTAINER_ENGINE_CHECK [ค่าเริ่มต้น: false] - ข้ามการทดสอบเบื้องต้นสำหรับการปรากฏตัวของซ็อกเก็ต Docker (มีประโยชน์เมื่อทำงานในระบบที่ไม่มีซ็อกเก็ต Docker พร้อมใช้งาน)ในการดำเนินการกำหนดค่าขั้นสูงบางอย่าง Codacy อนุญาตให้สร้างไฟล์การกำหนดค่า ตรวจสอบเอกสารของเราสำหรับรายละเอียดเพิ่มเติม
ในการเรียกใช้การวิเคราะห์แบบเดียวกันกับที่ Codacy ทำในรหัสของคุณคุณสามารถขอการกำหนดค่าจากระยะไกล
ดูวิธีการสร้างโทเค็นโครงการ
คำเตือน: ด้วยเหตุผลด้านความปลอดภัยเราขอแนะนำให้คุณจัดเก็บโทเค็น API Project ของคุณในตัวแปรสภาพแวดล้อม codacy_project_token แทนการตั้งค่า --project-token
codacy-analysis-cli analyze
--project-token < PROJECT-TOKEN >
--tool < TOOL-SHORT-NAME >
--directory < SOURCE-CODE-PATH > ดูวิธีการสร้างโทเค็นบัญชี API
คำเตือน: ด้วยเหตุผลด้านความปลอดภัยเราขอแนะนำให้คุณจัดเก็บโทเค็น API บัญชีของคุณในตัวแปรสภาพแวดล้อม codacy_api_token แทนการตั้งค่า --api-token
ชื่อผู้ให้บริการชื่อผู้ใช้และชื่อโครงการสามารถเรียกคืนได้จาก 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 : แก้ไข --parallel ที่ไม่ได้ทำให้เครื่องมือทำงานในแบบคู่ขนาน เพื่อกู้คืนการใช้พฤติกรรมก่อนหน้านี้ --parallel 1
4.0.0 : เปลี่ยนชื่อคำสั่ง analyse เพื่อ analyze นี่เป็นการเปลี่ยนแปลงที่แตกหักหากคุณใช้งาน CLI โดยใช้ขวดหรือ sbt แต่ไม่ใช่ถ้าคุณใช้สคริปต์ที่ให้ไว้
Codacy เป็นแพลตฟอร์มที่ตรวจสอบหนี้ทางเทคนิคของคุณช่วยให้คุณปรับปรุงคุณภาพรหัสและความปลอดภัยของคุณสอนวิธีปฏิบัติที่ดีที่สุดให้กับนักพัฒนาของคุณและช่วยให้คุณประหยัดเวลาในการตรวจสอบรหัส เราช่วยให้นักพัฒนาจัดส่งรหัสหลายพันล้านบรรทัดต่อวันโดยการตรวจสอบรหัสโดยอัตโนมัติและกำหนดมาตรฐาน
การรวมเข้ากับเวิร์กโฟลว์การเข้ารหัสช่วยให้ทีมงานวิศวกรรมประหยัดเวลาในการตรวจสอบรหัสและค้นหาแก้ไขและป้องกันข้อบกพร่องในการเข้ารหัสที่อาจเป็นหนี้ทางเทคนิค แพลตฟอร์มของเราใช้ปัญญาประดิษฐ์เพื่อแนะนำการแก้ไขคุณภาพรหัส Codacy รองรับ 40+ ภาษาและเฟรมเวิร์กและมีให้บริการในโอเพ่นซอร์สฟรี
เริ่มทดลองใช้ฟรีเพื่อเรียนรู้เพิ่มเติม
การเข้ารหัสยังช่วยติดตามความครอบคลุมของรหัสการทำซ้ำรหัสและความซับซ้อนของรหัส
Codacy รองรับ PHP, Python, Ruby, Java, JavaScript และ Scala และอื่น ๆ
Codacy ฟรีสำหรับโครงการโอเพ่นซอร์ส