Cycode

resmi

Tingkatkan keamanan dalam siklus hidup pengembangan Anda melalui pemindaian SAST, SCA, Secrets, dan IaC dengan Cycode.

Apa yang bisa Anda lakukan dengan Cycode MCP?

  • Memindai jalur repositori untuk mencari rahasia yang dikodekan keras — Minta asisten untuk menjalankan cycode_secret_scan pada direktori lokal untuk mendeteksi kredensial yang terekspos.
  • Memeriksa dependensi untuk kerentanan yang diketahui — Jalankan cycode_sca_scan terhadap jalur proyek untuk mengidentifikasi paket sumber terbuka yang rentan atau tidak sesuai.
  • Mengaudit file Infrastructure as Code untuk kesalahan konfigurasi — Gunakan cycode_iac_scan pada direktori Terraform atau CloudFormation untuk menampilkan pengaturan berisiko.
  • Meninjau kode sumber untuk celah keamanan — Jalankan cycode_sast_scan pada basis kode untuk menemukan kelemahan tingkat kode dan masalah kualitas.
  • Memverifikasi autentikasi CLI dan status versi — Panggil cycode_status untuk mengonfirmasi koneksi ke Cycode dan versi mana yang aktif.

Dokumentasi

Panduan Pengguna Cycode CLI

MCP Toplist

Cycode Command Line Interface (CLI) adalah aplikasi yang dapat Anda instal secara lokal untuk memindai repositori Anda terhadap rahasia, kesalahan konfigurasi Infrastructure as Code, kerentanan Software Composition Analysis, dan masalah Static Application Security Testing.

Panduan ini akan memandu Anda melalui instalasi dan penggunaan.

Daftar Isi

  1. Prasyarat
  2. Instalasi
    1. Instal Cycode CLI
      1. Menggunakan Perintah Auth
      2. Menggunakan Perintah Configure
      3. Tambahkan ke Variabel Lingkungan
        1. Di Unix/Linux
        2. Di Windows
    2. Instal Pre-Commit Hook
  3. Perintah Cycode CLI
  4. Perintah MCP
    1. Memulai Server MCP
    2. Opsi yang Tersedia
    3. Alat MCP
    4. Contoh Penggunaan
    5. Konfigurasi Lanjutan
  5. Perintah Platform
    1. Menemukan Perintah
    2. Contoh
    3. Catatan & Batasan
  6. AI Guardrails
    1. Data yang Dikumpulkan oleh AI Guardrails
  7. Perintah Scan
    1. Menjalankan Pemindaian
      1. Opsi
        1. Ambang Keparahan
        2. Monitor
        3. Laporan Cycode
        4. Kerentanan Paket
        5. Kepatuhan Lisensi
        6. Pemulihan Kunci
        7. Berhenti saat Error
      2. Pemindaian Repositori
        1. Opsi Branch
      3. Pemindaian Path
        1. Pemindaian Terraform Plan
      4. Pemindaian Riwayat Commit
        1. Opsi Rentang Commit (Pemindaian Diff)
      5. Pemindaian Pre-Commit
      6. Pemindaian Pre-Push
    2. Hasil Pemindaian
      1. Tampilkan/Sembunyikan Rahasia
      2. Soft Fail
      3. Contoh Hasil Pemindaian
        1. Contoh Hasil Rahasia
        2. Contoh Hasil IaC
        3. Contoh Hasil SCA
        4. Contoh Hasil SAST
      4. Panduan Remediasi Kustom Perusahaan
    3. Mengabaikan Hasil Pemindaian
      1. Mengabaikan Nilai Rahasia
      2. Mengabaikan Nilai SHA Rahasia
      3. Mengabaikan Path
      4. Mengabaikan Aturan Rahasia, IaC, atau SCA
      5. Mengabaikan Paket
      6. Mengabaikan melalui file konfigurasi
  8. Perintah Report
    1. Menghasilkan Laporan SBOM
  9. Perintah Import
  10. Log Pemindaian
  11. Bantuan Sintaks

Prasyarat

  • Aplikasi Cycode CLI memerlukan Python versi 3.9 atau lebih baru. Perintah MCP hanya tersedia untuk Python 3.10 ke atas. Jika Anda menggunakan versi Python yang lebih lama, perintah ini tidak akan tersedia.
  • Gunakan perintah cycode auth untuk mengautentikasi ke Cycode dengan CLI
    • Atau, Anda bisa mendapatkan Cycode Client ID dan Client Secret Key dengan mengikuti langkah-langkah yang dijelaskan di halaman Token Akun Layanan dan Token Akses Pribadi, yang berisi detail tentang cara mendapatkan nilai-nilai ini.

Instalasi

Langkah-langkah instalasi berikut berlaku untuk sistem operasi Windows dan UNIX / Linux.

[!NOTE] Langkah-langkah berikut mengasumsikan penggunaan python3 dan pip3 untuk perintah terkait Python; namun, beberapa sistem mungkin menggunakan perintah python dan pip, tergantung pada konfigurasi lingkungan Python Anda.

Instal Cycode CLI

Untuk menginstal aplikasi Cycode CLI di mesin lokal Anda, lakukan langkah-langkah berikut:

  1. Buka command line atau aplikasi terminal Anda.

  2. Jalankan salah satu perintah berikut:

    • Untuk menginstal dari PyPI:

      pip3 install cycode
      
    • Untuk menginstal dari Homebrew:

      brew install cycode
      
    • Untuk menginstal dari GitHub Releases arahkan dan unduh file yang dapat dieksekusi untuk sistem operasi dan arsitektur Anda, lalu jalankan perintah berikut:

    cd /path/to/downloaded/cycode-cli
    chmod +x cycode
    ./cycode
    
  3. Terakhir, autentikasi CLI. Ada tiga metode untuk mengatur ID klien dan kredensial Cycode (client secret atau token ID OIDC):

Menggunakan Perintah Auth

[!NOTE] Ini adalah metode yang direkomendasikan untuk menyiapkan mesin lokal Anda untuk mengautentikasi dengan Cycode CLI.

  1. Ketik perintah berikut ke jendela terminal/command line Anda:

    cycode auth

  2. Jendela browser akan muncul, meminta Anda untuk masuk ke Cycode (seperti yang terlihat di bawah):

    Cycode login
  3. Masukkan kredensial login Anda di halaman ini dan masuk.

  4. Anda akhirnya akan dibawa ke halaman di bawah ini, di mana Anda akan diminta untuk memilih grup bisnis yang ingin Anda otorisasi dengan Cycode (jika berlaku):

    authorize CLI

    [!NOTE] Ini akan menjadi metode default untuk mengautentikasi dengan Cycode CLI.

  5. Klik tombol Allow untuk mengotorisasi Cycode CLI pada grup bisnis yang dipilih.

    allow CLI
  6. Setelah selesai, Anda akan melihat layar berikut jika berhasil dipilih:

    successfully auth
  7. Di layar terminal/command line, Anda akan melihat yang berikut ini saat keluar dari jendela browser:

    Successfully logged into cycode

Menggunakan Perintah Configure

[!NOTE] Jika Anda sudah mengatur Cycode Client ID dan Client Secret Anda melalui variabel lingkungan Linux atau Windows, kredensial tersebut akan diutamakan daripada metode ini.

  1. Ketik perintah berikut ke jendela terminal/command line Anda:

    cycode configure
    
  2. Masukkan nilai URL API Cycode Anda (Anda dapat mengosongkannya untuk menggunakan nilai default).

    Cycode API URL [https://api.cycode.com]: https://api.onpremise.com

  3. Masukkan nilai URL APP Cycode Anda (Anda dapat mengosongkannya untuk menggunakan nilai default).

    Cycode APP URL [https://app.cycode.com]: https://app.onpremise.com

  4. Masukkan nilai Cycode Client ID Anda.

    Cycode Client ID []: 7fe5346b-xxxx-xxxx-xxxx-55157625c72d

  5. Masukkan nilai Cycode Client Secret Anda (lewati jika Anda berencana menggunakan token ID OIDC).

    Cycode Client Secret []: c1e24929-xxxx-xxxx-xxxx-8b08c1839a2e

  6. Masukkan nilai Token ID OIDC Cycode Anda (opsional).

    Cycode ID Token []: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...

  7. Jika nilai-nilai berhasil dimasukkan, Anda akan melihat pesan berikut:

    Successfully configured CLI credentials!

    atau/dan

    Successfully configured Cycode URLs!

Jika Anda masuk ke folder .cycode di bawah folder pengguna Anda, Anda akan menemukan kredensial ini dibuat dan ditempatkan di file credentials.yaml di folder tersebut. URL ditempatkan di file config.yaml di folder tersebut.

Tambahkan ke Variabel Lingkungan

Di Unix/Linux:

export CYCODE_CLIENT_ID={your Cycode ID}

dan

export CYCODE_CLIENT_SECRET={your Cycode Secret Key}

Jika organisasi Anda menggunakan autentikasi OIDC, Anda dapat memberikan token ID sebagai gantinya (atau sebagai tambahan):

export CYCODE_ID_TOKEN={your Cycode OIDC ID token}

Di Windows

  1. Dari Control Panel, arahkan ke menu System:

    system menu
  2. Selanjutnya, klik Advanced system settings:

    advanced system setting
  3. Di jendela System Properties yang terbuka, klik tombol Environment Variables:

    environments variables button
  4. Buat variabel CYCODE_CLIENT_ID dan CYCODE_CLIENT_SECRET dengan nilai yang sesuai dengan ID dan Secret Key Anda. Jika Anda mengautentikasi melalui OIDC, tambahkan juga CYCODE_ID_TOKEN dengan nilai token ID OIDC Anda:

    environment variables window
  5. Masukkan cycode.exe ke dalam path untuk menyelesaikan instalasi.

Instal Pre-Commit Hook

Pre-commit dan pre-push hook Cycode dapat diatur dalam repositori lokal Anda sehingga aplikasi Cycode CLI akan mengidentifikasi masalah apa pun dengan kode Anda secara otomatis sebelum Anda melakukan commit atau push ke basis kode Anda.

[!NOTE] Pre-commit dan pre-push hook tidak tersedia untuk pemindaian IaC.

Lakukan langkah-langkah berikut untuk menginstal pre-commit hook:

Menginstal Pre-Commit Hook

  1. Instal framework pre-commit (Python 3.9 atau lebih tinggi harus diinstal):

    pip3 install pre-commit
    
  2. Arahkan ke direktori teratas dari repositori Git lokal yang ingin Anda konfigurasi.

  3. Buat file YAML baru bernama .pre-commit-config.yaml (sertakan awalan .) di direktori teratas repositori yang berisi yang berikut:

    repos:
      - repo: https://github.com/cycodehq/cycode-cli
        rev: v3.5.0
        hooks:
          - id: cycode
            stages: [pre-commit]
    
  4. Ubah file yang dibuat sesuai kebutuhan spesifik Anda. Gunakan ID hook cycode untuk mengaktifkan pemindaian Rahasia. Gunakan ID hook cycode-sca untuk mengaktifkan pemindaian SCA. Gunakan ID hook cycode-sast untuk mengaktifkan pemindaian SAST. Jika Anda ingin mengaktifkan semua jenis pemindaian, gunakan konfigurasi ini:

    repos:
      - repo: https://github.com/cycodehq/cycode-cli
        rev: v3.5.0
        hooks:
          - id: cycode
            stages: [pre-commit]
          - id: cycode-sca
            stages: [pre-commit]
          - id: cycode-sast
            stages: [pre-commit]
    
  5. Instal hook Cycode:

    pre-commit install
    

    Instalasi hook yang berhasil akan menghasilkan pesan: Pre-commit installed at .git/hooks/pre-commit.

  6. Perbarui pre-commit hook:

    pre-commit autoupdate
    

    Ini akan secara otomatis menaikkan rev di .pre-commit-config.yaml ke versi terbaru Cycode CLI yang tersedia.

[!NOTE] Pemicu terjadi pada perintah git commit. Hook hanya memicu pada file yang staged untuk commit.

Menginstal Pre-Push Hook

Untuk menginstal pre-push hook sebagai tambahan atau pengganti pre-commit hook:

  1. Tambahkan pre-push hook ke file .pre-commit-config.yaml Anda:

    repos:
      - repo: https://github.com/cycodehq/cycode-cli
        rev: v3.5.0
        hooks:
          - id: cycode-pre-push
            stages: [pre-push]
    
  2. Instal pre-push hook:

    pre-commit install --hook-type pre-push
    
  3. Untuk kedua pre-commit dan pre-push hook, gunakan:

    pre-commit install
    pre-commit install --hook-type pre-push
    

[!NOTE] Pre-push hook memicu pada perintah git push dan hanya memindai commit yang akan di-push.

Perintah Cycode CLI

Berikut adalah opsi dan perintah yang tersedia dengan aplikasi Cycode CLI:

OpsiDeskripsi
-v, --verboseTampilkan log detail.
--no-progress-meterJangan tampilkan pengukur kemajuan.
--no-update-notifierJangan periksa pembaruan CLI.
-o, --output [rich|text|json|table]Tentukan jenis output. Defaultnya adalah rich.
--client-id TEXTTentukan ID klien Cycode untuk eksekusi pemindaian spesifik ini.
--client-secret TEXTTentukan client secret Cycode untuk eksekusi pemindaian spesifik ini.
--id-token TEXTTentukan token ID OIDC Cycode untuk eksekusi pemindaian spesifik ini.
--install-completionInstal completion untuk shell saat ini.
--show-completion [bash|zsh|fish|powershell|pwsh]Tampilkan completion untuk shell yang ditentukan, untuk menyalinnya atau menyesuaikan instalasi.
-h, --helpTampilkan opsi untuk perintah yang diberikan.
PerintahDeskripsi
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
authAutentikasi mesin Anda untuk mengaitkan CLI dengan akun Cycode Anda.
configurePerintah awal untuk mengonfigurasi autentikasi klien CLI Anda.
ignoreAbaikan nilai, jalur, atau ID aturan tertentu.
mcpMulai server Model Context Protocol (MCP) untuk mengaktifkan integrasi AI dengan kemampuan pemindaian Cycode.
scanPindai konten untuk pelanggaran Secrets/IaC/SCA/SAST. Anda perlu menentukan jenis pemindaian yang akan dilakukan: commit-history/path/repository/dll.
reportBuat laporan. Anda perlu menentukan jenis laporan yang akan dilakukan sebagai SBOM.
statusTampilkan status CLI dan keluar.

Perintah MCP [EKSPERIMEN]

[!WARNING] Perintah MCP hanya tersedia untuk Python 3.10 ke atas. Jika Anda menggunakan versi Python yang lebih lama, perintah ini tidak akan tersedia.

Perintah Model Context Protocol (MCP) memungkinkan Anda memulai server MCP yang mengekspos kemampuan pemindaian Cycode ke sistem dan aplikasi AI. Ini memungkinkan model AI untuk berinteraksi dengan alat CLI Cycode melalui protokol standar.

[!TIP] Untuk pengalaman terbaik, instal Cycode CLI secara global di sistem Anda menggunakan pip install cycode atau brew install cycode, lalu autentikasi sekali dengan cycode auth. Setelah instalasi dan autentikasi global, Anda tidak perlu mengonfigurasi variabel lingkungan CYCODE_CLIENT_ID dan CYCODE_CLIENT_SECRET di file konfigurasi MCP Anda.

Add MCP Server to Cursor using UV

Memulai Server MCP

Untuk memulai server MCP, gunakan perintah berikut:

cycode mcp

Secara default, ini memulai server menggunakan transport stdio, yang cocok untuk integrasi lokal dan aplikasi AI yang dapat menjalankan subproses.

Opsi yang Tersedia

OpsiDeskripsi
-t, --transportJenis transport untuk server MCP: stdio, sse, atau streamable-http (default: stdio)
-H, --hostAlamat host untuk mengikat server (hanya digunakan untuk transport non-stdio) (default: 127.0.0.1)
-p, --portNomor port untuk mengikat server (hanya digunakan untuk transport non-stdio) (default: 8000)
--helpTampilkan pesan bantuan dan opsi yang tersedia

Alat MCP

Server MCP menyediakan alat berikut yang dapat digunakan oleh sistem AI:

Nama AlatDeskripsi
cycode_secret_scanPindai rahasia yang dikodekan secara keras (hardcoded secrets)
cycode_sca_scanPindai Analisis Komposisi Perangkat Lunak (SCA) - kerentanan dan masalah lisensi
cycode_iac_scanPindai Infrastruktur sebagai Kode (IaC) untuk kesalahan konfigurasi
cycode_sast_scanPindai Pengujian Keamanan Aplikasi Statis (SAST) - kualitas kode dan kelemahan keamanan
cycode_statusDapatkan versi CLI Cycode, status autentikasi, dan informasi konfigurasi

Setiap alat pindai menerima dua mode input yang saling eksklusif:

  • paths (lebih disukai) — satu atau lebih jalur file atau direktori yang ada di disk. Direktori dipindai secara rekursif. Mesin Cycode menangani penemuan dan penyaringan file, seperti yang dilakukan cycode scan -t <type> path ./src dari CLI.
  • files (alternatif) — kamus yang memetakan jalur file ke konten lengkapnya sebagai string. Gunakan ini hanya jika file tidak tersedia di disk (mis. pengeditan dalam memori yang belum disimpan).

[!TIP] Gunakan paths bila memungkinkan. Melewatkan file besar (seperti package-lock.json) sebagai konten sebaris dapat melebihi batas token dan memperlambat klien AI. Dengan paths, mesin Cycode membaca file langsung dari disk.

Semua alat pindai mengembalikan objek JSON yang menyertakan bidang "summary" dengan jumlah pelanggaran yang dapat dibaca manusia (mis. "Cycode found 3 violations: 1 CRITICAL, 2 HIGH.") selain array "detections" lengkap.

Contoh Penggunaan

Contoh Perintah Dasar

Mulai server MCP dengan pengaturan default (transport stdio):

cycode mcp

Mulai server MCP dengan transport stdio eksplisit:

cycode mcp -t stdio

Mulai server MCP dengan transport Server-Sent Events (SSE):

cycode mcp -t sse -p 8080

Mulai server MCP dengan transport HTTP streamable pada host dan port kustom:

cycode mcp -t streamable-http -H 0.0.0.0 -p 9000

Pelajari lebih lanjut tentang jenis Transport MCP di Spesifikasi Protokol MCP – Transport.

Contoh Konfigurasi

Menggunakan MCP dengan Cursor/VS Code/Claude Desktop/dll (mcp.json)

[!NOTE] Untuk lingkungan Cycode EU, pastikan untuk mengatur nilai CYCODE_API_URL dan CYCODE_APP_URL yang sesuai di variabel lingkungan (mis., https://api.eu.cycode.com dan https://app.eu.cycode.com).

Ikuti panduan ini untuk mengonfigurasi server MCP di VS Code/GitHub Copilot Anda. Perlu diingat bahwa di settings.json, ada objek mcp yang berisi sub-objek servers bersarang, bukan objek mcpServers mandiri.

Untuk transport stdio (eksekusi langsung):

{
  "mcpServers": {
    "cycode": {
      "command": "cycode",
      "args": ["mcp"],
      "env": {
        "CYCODE_CLIENT_ID": "your-cycode-id",
        "CYCODE_CLIENT_SECRET": "your-cycode-secret-key",
        "CYCODE_API_URL": "https://api.cycode.com",
        "CYCODE_APP_URL": "https://app.cycode.com"
      }
    }
  }
}

Untuk transport stdio dengan instalasi pipx:

{
  "mcpServers": {
    "cycode": {
      "command": "pipx",
      "args": ["run", "cycode", "mcp"],
      "env": {
        "CYCODE_CLIENT_ID": "your-cycode-id",
        "CYCODE_CLIENT_SECRET": "your-cycode-secret-key",
        "CYCODE_API_URL": "https://api.cycode.com",
        "CYCODE_APP_URL": "https://app.cycode.com"
      }
    }
  }
}

Untuk transport stdio dengan instalasi uvx:

{
  "mcpServers": {
    "cycode": {
      "command": "uvx",
      "args": ["cycode", "mcp"],
      "env": {
        "CYCODE_CLIENT_ID": "your-cycode-id",
        "CYCODE_CLIENT_SECRET": "your-cycode-secret-key",
        "CYCODE_API_URL": "https://api.cycode.com",
        "CYCODE_APP_URL": "https://app.cycode.com"
      }
    }
  }
}

Untuk transport SSE (Server-Sent Events):

{
  "mcpServers": {
    "cycode": {
      "url": "http://127.0.0.1:8000/sse"
    }
  }
}

Untuk transport SSE pada port kustom:

{
  "mcpServers": {
    "cycode": {
      "url": "http://127.0.0.1:8080/sse"
    }
  }
}

Untuk transport HTTP streamable:

{
  "mcpServers": {
    "cycode": {
      "url": "http://127.0.0.1:8000/mcp"
    }
  }
}
Menjalankan Server MCP di Latar Belakang

Untuk transport SSE (mulai server terlebih dahulu, lalu konfigurasi klien):

# Start the MCP server in the background
cycode mcp -t sse -p 8000 &

# Configure in mcp.json
{
  "mcpServers": {
    "cycode": {
      "url": "http://127.0.0.1:8000/sse"
    }
  }
}

Untuk transport HTTP streamable:

# Start the MCP server in the background
cycode mcp -t streamable-http -H 127.0.0.2 -p 9000 &

# Configure in mcp.json
{
  "mcpServers": {
    "cycode": {
      "url": "http://127.0.0.2:9000/mcp"
    }
  }
}

Konfigurasi Lanjutan

Sertifikat Kustom dan Timeout (Lingkungan Proxy)

Jika organisasi Anda menggunakan proxy perusahaan atau bundel CA kustom untuk inspeksi HTTPS, Anda perlu memberi tahu Cycode CLI (dan tumpukan TLS Python yang mendasarinya) di mana menemukan bundel sertifikat tepercaya. Anda juga dapat meningkatkan timeout panggilan alat MCP jika pemindaian terpotong.

Variabel LingkunganDeskripsi
REQUESTS_CA_BUNDLEJalur ke file bundel CA kustom (.pem atau .crt). Digunakan oleh pustaka requests untuk semua panggilan HTTPS yang dilakukan oleh Cycode CLI.
SSL_CERT_FILEJalur ke file bundel CA kustom. Digunakan oleh modul ssl tingkat rendah Python. Atur ini bersama REQUESTS_CA_BUNDLE untuk cakupan penuh.
MCP_TOOL_TIMEOUTTimeout (dalam detik) yang ditunggu oleh klien MCP seperti Claude dan GitHub Copilot untuk menyelesaikan panggilan alat. Tingkatkan ini jika pemindaian yang berjalan lama terpotong sebelum selesai.

[!TIP] Atur REQUESTS_CA_BUNDLE dan SSL_CERT_FILE ke jalur bundel CA yang sama. REQUESTS_CA_BUNDLE mencakup lapisan HTTP; SSL_CERT_FILE mencakup lapisan TLS tingkat rendah. Hanya menggunakan salah satu mungkin masih menyebabkan kesalahan sertifikat di beberapa lingkungan.

Contoh konfigurasi mcp.json dengan sertifikat kustom dan timeout yang lebih lama:

{
  "mcpServers": {
    "cycode": {
      "command": "cycode",
      "args": ["mcp"],
      "env": {
        "REQUESTS_CA_BUNDLE": "/path/to/your/corporate-ca-bundle.pem",
        "SSL_CERT_FILE": "/path/to/your/corporate-ca-bundle.pem",
        "MCP_TOOL_TIMEOUT": "1800"
      }
    }
  }
}

[!NOTE] Server MCP memerlukan autentikasi CLI Cycode yang tepat untuk berfungsi. Pastikan Anda telah melakukan autentikasi menggunakan cycode auth atau mengonfigurasi kredensial Anda sebelum memulai server MCP.

Pra-otorisasi Alat untuk Subagen (Claude Code)

Ketika Claude Code mendelegasikan pekerjaan ke subagen latar belakang (mis. untuk menjalankan pemindaian secara paralel), subagen tersebut tidak dapat menampilkan prompt izin interaktif. Jika alat Cycode belum disetujui sebelumnya, pemindaian akan gagal secara diam-diam dalam konteks subagen.

Untuk pra-otorisasi alat MCP Cycode agar berfungsi di semua konteks termasuk subagen, tambahkan ke daftar allowedTools di pengaturan Claude Code Anda (~/.claude/settings.json):

{
  "allowedTools": [
    "mcp__cycode__cycode_secret_scan",
    "mcp__cycode__cycode_sca_scan",
    "mcp__cycode__cycode_iac_scan",
    "mcp__cycode__cycode_sast_scan",
    "mcp__cycode__cycode_status"
  ]
}

Setelah ditambahkan, Claude Code tidak akan meminta persetujuan saat alat ini dipanggil, dan mereka akan bekerja dengan benar di dalam subagen.

Pemecahan Masalah MCP

Jika Anda mengalami masalah dengan server MCP, Anda dapat mengaktifkan pencatatan debug untuk mendapatkan informasi lebih rinci tentang apa yang terjadi. Ada dua cara untuk mengaktifkan pencatatan debug:

  1. Menggunakan flag -v atau --verbose:
cycode -v mcp
  1. Menggunakan variabel lingkungan CYCODE_CLI_VERBOSE:
CYCODE_CLI_VERBOSE=1 cycode mcp

Log debug akan menampilkan informasi rinci tentang:

  • Startup dan konfigurasi server
  • Percobaan dan status koneksi
  • Eksekusi dan hasil alat
  • Setiap kesalahan atau peringatan yang terjadi

Informasi ini dapat membantu ketika:

  • Mendiagnosis masalah koneksi
  • Memahami mengapa alat tertentu tidak berfungsi
  • Mengidentifikasi masalah autentikasi
  • Men-debug masalah spesifik transport

Konfigurasi MCP

Perintah Platform [BETA]

[!WARNING] Perintah platform dalam tahap beta. Perintah, argumen, dan format output dihasilkan secara dinamis dari spesifikasi API Cycode dan dapat berubah antar rilis tanpa pemberitahuan. Jangan mengandalkannya dalam otomatisasi produksi dulu.

Perintah cycode platform mengekspos API baca platform Cycode sebagai perintah CLI. Ini mengelompokkan endpoint berdasarkan sumber daya (mis. projects, violations, workflows) dan mengubah parameter setiap endpoint menjadi argumen CLI bertipe dan flag --option.

cycode platform projects list --page-size 50
cycode platform violations count
cycode platform workflows view <workflow-id>

Spesifikasi OpenAPI diambil dari API Cycode pada penggunaan pertama dan di-cache di ~/.cycode/openapi-spec.json selama 24 jam. Perintah yang tidak terkait (cycode scan, cycode status, dll.) tidak memicu pengambilan.

[!NOTE] Anda harus diautentikasi (cycode auth atau variabel lingkungan CYCODE_CLIENT_ID / CYCODE_CLIENT_SECRET) agar cycode platform dapat menemukan dan menjalankan perintah. Perintah CLI Cycode lainnya berfungsi tanpa autentikasi.

Menemukan Perintah

Karena perintah dihasilkan dari spesifikasi, sumber kebenaran untuk apa yang tersedia adalah --help:

cycode platform --help                  # list all resource groups
cycode platform projects --help         # list actions on a resource
cycode platform projects list --help    # list options/arguments for an action

Contoh Platform

# List projects with pagination
cycode platform projects list --page-size 25

# View a single project by ID
cycode platform projects view <project-id>

# Count violations across the tenant
cycode platform violations count

# Filter using query parameters (see `--help` for what each endpoint supports)
cycode platform violations list --severity CRITICAL

Semua output adalah JSON secara default — salurkan melalui jq untuk pemfilteran ad-hoc:

cycode platform projects list --page-size 100 | jq '.items[].name'

Catatan & Batasan Platform

  • Hanya-baca saat ini. Hanya endpoint GET yang diekspos dalam beta ini.
  • Didorong oleh spesifikasi. Menambahkan endpoint baru ke API akan memunculkannya secara otomatis saat cache berikutnya disegarkan.
  • Tidak ada spesifikasi yang dibundel. Pemanggilan cycode platform pertama setelah instalasi (atau setelah cache 24 jam kedaluwarsa) melakukan pengambilan jaringan. Pada koneksi lambat, panggilan pertama ini mungkin memakan waktu beberapa detik; panggilan berikutnya hampir instan hingga cache kedaluwarsa.
  • Timpa TTL cache dengan CYCODE_SPEC_CACHE_TTL=<seconds>.

Pagar Pembatas AI [BETA]

AI Guardrails memasang hook ke agen coding AI yang didukung (Claude Code, Cursor, Copilot, Codex) sehingga prompt, file yang dibaca agen, dan argumen alat MCP dipindai untuk mendeteksi rahasia sebelum mencapai model.

Data yang Dikumpulkan oleh AI Guardrails

Pemindaian terjadi di sisi server, sehingga konten yang dipindai meninggalkan mesin: teks prompt, isi file yang dibaca agen, dan argumen alat MCP dikirim ke tenant Cycode Anda untuk diperiksa rahasianya.

Setiap peristiwa juga dilaporkan dengan konteks tentang pengembang dan mesin, sehingga temuan dapat diatribusikan ke perangkat dan pengguna asalnya. Sebagian dari ini adalah data pribadi:

  • Pengidentifikasi perangkat — nama host mesin dan nomor seri perangkat keras.
  • Pengidentifikasi pengguna — alamat email pengguna yang masuk ke agen coding AI, dan nama pengguna sistem operasi lokal.
  • Detail lingkungan — sistem operasi dan versinya, agen AI, versinya dan model yang digunakan, isi file konfigurasi MCP agen, dan plugin yang diaktifkan.

Nomor seri perangkat keras di-cache dalam file sementara lokal, hanya dapat dibaca oleh pengguna yang menjalankan perintah, sehingga pemanggilan hook berulang tidak perlu menanyakan ulang perangkat keras.

Jika pengumpulan data ini tidak dapat diterima di lingkungan Anda, jangan pasang hook guardrails (cycode ai-guardrails uninstall menghapus hook yang sudah terpasang).

Perintah Scan

Menjalankan Scan

Aplikasi CLI Cycode menawarkan beberapa jenis pemindaian sehingga Anda dapat memilih opsi yang paling sesuai dengan kasus Anda. Berikut adalah opsi dan perintah yang tersedia saat ini:

OpsiDeskripsi
-t, --scan-type [secret|iac|sca|sast]Tentukan pemindaian yang ingin Anda jalankan (secret/iac/sca/sast), defaultnya adalah secret.
--show-secret BOOLEANTampilkan rahasia dalam teks biasa. Lihat bagian Tampilkan/Sembunyikan Rahasia untuk detail lebih lanjut.
--soft-fail BOOLEANJalankan pemindaian tanpa gagal, selalu kembalikan kode status non-error. Lihat bagian Soft Fail untuk detail lebih lanjut.
--severity-threshold [INFO|LOW|MEDIUM|HIGH|CRITICAL]Hanya tampilkan pelanggaran pada level yang ditentukan atau lebih tinggi.
--sca-scanTentukan pemindaian SCA yang ingin Anda jalankan (package-vulnerabilities/license-compliance). Defaultnya adalah keduanya.
--monitorJika ditentukan, hasil pemindaian akan dicatat di Cycode.
--cycode-reportTampilkan tautan ke laporan pemindaian di platform Cycode pada output konsol.
--no-restoreJika ditentukan, Cycode tidak akan menjalankan perintah restore. Ini HANYA akan memindai dependensi langsung!
--stop-on-errorBatalkan pemindaian jika terjadi kegagalan pengumpulan file atau pemulihan dependensi, alih-alih melewati file yang gagal dan melanjutkan.
--gradle-all-sub-projectsJalankan perintah gradle restore untuk semua sub proyek. Ini harus dijalankan dari
--maven-settings-fileHanya untuk Maven, memungkinkan penggunaan file settings.xml kustom saat memindai dependensi
--helpTampilkan opsi untuk perintah yang diberikan.
PerintahDeskripsi
commit-historyPindai riwayat commit atau lakukan pemindaian diff antara commit tertentu
pathPindai file di jalur yang diberikan dalam perintah
pre-commitGunakan perintah ini untuk memindai konten yang belum di-commit
repositoryPindai repositori git termasuk riwayatnya

Opsi

Opsi Severity

Untuk membatasi hasil pemindaian ke ambang batas keparahan tertentu, argumen --severity-threshold dapat ditambahkan ke perintah scan.

Misalnya, perintah berikut akan memindai repositori untuk pelanggaran kebijakan yang memiliki tingkat keparahan Medium atau lebih tinggi:

cycode scan --severity-threshold MEDIUM repository ~/home/git/codebase

Opsi Monitor

[!NOTE] Opsi ini hanya tersedia untuk pemindaian SCA.

Untuk mendorong hasil pemindaian yang terkait dengan kebijakan SCA yang ditemukan dalam pemindaian tipe SCA ke Cycode, tambahkan argumen --monitor ke perintah scan.

Misalnya, perintah berikut akan memindai repositori untuk pelanggaran kebijakan SCA dan mendorongnya ke platform Cycode:

cycode scan -t sca --monitor repository ~/home/git/codebase

Opsi Cycode Report

Untuk setiap pemindaian yang dilakukan menggunakan CLI Cycode, laporan dibuat secara otomatis dan hasilnya dikirim ke Cycode. Hasil ini terkait dengan kebijakan yang relevan (misalnya, kebijakan SCA untuk pemindaian Repositori) dalam platform Cycode.

Untuk mencetak URL langsung ke laporan Cycode ini di output CLI Anda setelah pemindaian selesai, tambahkan argumen --cycode-report ke perintah scan Anda.

cycode scan --cycode-report repository ~/home/git/codebase

Semua hasil pemindaian dari CLI akan muncul di bagian CLI Logs Cycode. Jika Anda menyertakan flag --cycode-report dalam perintah Anda, tautan langsung ke laporan spesifik akan ditampilkan di terminal Anda setelah hasil pemindaian.

[!WARNING] Anda harus memiliki peran owner atau admin di Cycode untuk melihat halaman ini.

cli-report

Halaman laporan akan terlihat seperti di bawah ini:

Opsi Package Vulnerabilities

[!NOTE] Opsi ini hanya tersedia untuk pemindaian SCA.

Untuk memindai kerentanan paket tertentu dari repositori lokal Anda, tambahkan argumen --sca-scan package-vulnerabilities setelah opsi -t sca atau --scan-type sca.

Pada contoh sebelumnya, jika Anda hanya ingin menjalankan pemindaian SCA pada kerentanan paket, Anda dapat menjalankan yang berikut:

cycode scan -t sca --sca-scan package-vulnerabilities repository ~/home/git/codebase

Opsi License Compliance

[!NOTE] Opsi ini hanya tersedia untuk pemindaian SCA.

Untuk memindai cabang tertentu dari repositori lokal Anda, tambahkan argumen --sca-scan license-compliance diikuti dengan nama cabang yang ingin Anda pindai.

Pada contoh sebelumnya, jika Anda hanya ingin memindai cabang bernama dev, Anda dapat menjalankan yang berikut:

cycode scan -t sca --sca-scan license-compliance repository ~/home/git/codebase -b dev

Opsi Lock Restore

[!NOTE] Opsi ini hanya tersedia untuk pemindaian SCA.

Saat menjalankan pemindaian SCA, CLI Cycode secara otomatis mencoba memulihkan (menghasilkan) file kunci dependensi untuk setiap file manifes yang didukung yang ditemukannya. Ini memungkinkan pemindaian dependensi transitif, bukan hanya yang tercantum langsung di manifes. Untuk melewati langkah ini dan hanya memindai dependensi langsung, gunakan flag --no-restore.

Ekosistem berikut mendukung pemulihan file kunci otomatis:

EkosistemFile manifesFile kunci yang dihasilkanAlat yang dipanggil (saat file kunci tidak ada)
npmpackage.jsonpackage-lock.jsonnpm install --package-lock-only --ignore-scripts --no-audit
Yarnpackage.jsonyarn.lockyarn install --ignore-scripts
pnpmpackage.jsonpnpm-lock.yamlpnpm install --ignore-scripts
Denodeno.json / deno.jsoncdeno.lock(hanya baca file kunci yang ada)
Gogo.modgo.mod.graphgo list -m -json all + go mod graph
Mavenpom.xmlbcde.mvndepsmvn dependency:tree
Gradlebuild.gradle / build.gradle.ktsgradle-dependencies-generated.txtgradle dependencies -q --console plain
SBTbuild.sbtbuild.sbt.locksbt dependencyLockWrite
NuGet*.csprojpackages.lock.jsondotnet restore --use-lock-file
RubyGemfileGemfile.lockbundle --quiet
Poetrypyproject.tomlpoetry.lockpoetry lock
pippyproject.toml / requirements.txtpylock.tomlpip lock . / pip lock -r requirements.txt -o pylock.toml
PipenvPipfilePipfile.lockpipenv lock
PHP Composercomposer.jsoncomposer.lockcomposer update --no-cache --no-install --no-scripts --ignore-platform-reqs

Jika file kunci sudah ada bersama manifes, Cycode membacanya langsung tanpa menjalankan perintah instalasi apa pun.

Prasyarat SBT: Plugin sbt-dependency-lock harus diinstal. Tambahkan baris berikut ke project/plugins.sbt:

addSbtPlugin("software.purpledragon" % "sbt-dependency-lock" % "1.5.1")

Opsi Stop on Error

Secara default, Cycode terus memindai meskipun file tidak dapat dibaca (misalnya karena kesalahan izin) atau file kunci dependensi tidak dapat dihasilkan selama pemindaian SCA. Item yang gagal dilewati dengan peringatan dan pemindaian dilanjutkan dengan file yang tersisa.

Gunakan --stop-on-error untuk mengubah perilaku ini: pemindaian dibatalkan segera pada kegagalan pertama tersebut dan melaporkan kesalahan.

cycode scan -t sca --stop-on-error path ~/home/git/codebase

Ini berguna dalam pipeline CI di mana kegagalan diam-diam akan menghasilkan hasil pemindaian yang tidak lengkap. Saat --stop-on-error dipicu, Anda dapat memperbaiki masalah yang mendasarinya atau, khusus untuk kegagalan pemulihan SCA, tambahkan --no-restore untuk melewati pembuatan file kunci dan hanya memindai dependensi langsung.

Saat --stop-on-error digunakan, CLI membedakan antara kesalahan pemindaian dan pelanggaran kebijakan melalui kode keluar:

Kode keluarArti
0Pemindaian selesai tanpa pelanggaran
1Pemindaian selesai dan ditemukan pelanggaran
2Pemindaian dibatalkan karena kesalahan (hanya saat --stop-on-error diatur)

Pemindaian Repositori

Pemindaian repositori memeriksa seluruh repositori lokal untuk setiap rahasia yang terekspos atau kesalahan konfigurasi yang tidak aman. Jenis pemindaian yang lebih holistik ini melihat semuanya: status terkini repositori Anda dan riwayat commit-nya. Ini akan mencari tidak hanya rahasia yang saat ini terekspos di dalam repositori tetapi juga rahasia yang sebelumnya dihapus.

Untuk menjalankan pemindaian repositori penuh, jalankan yang berikut:

cycode scan repository {{path}}

Misalnya, jika Anda ingin memindai repositori yang disimpan di ~/home/git/codebase, Anda dapat menjalankan yang berikut:

cycode scan repository ~/home/git/codebase

Opsi berikut tersedia untuk digunakan dengan perintah ini:

OpsiDeskripsi
-b, --branch TEXTCabang yang akan dipindai, jika tidak diatur, memindai cabang default

Opsi Branch

Untuk memindai cabang tertentu dari repositori lokal Anda, tambahkan argumen -b (sebagai alternatif, --branch) diikuti dengan nama cabang yang ingin Anda pindai.

Berdasarkan contoh sebelumnya, jika Anda hanya ingin memindai cabang bernama dev, Anda dapat menjalankan yang berikut:

cycode scan repository ~/home/git/codebase -b dev

Pemindaian Path

Pemindaian path memeriksa direktori lokal tertentu dan semua isinya, alih-alih hanya berfokus pada repositori GIT.

Untuk menjalankan pemindaian direktori, jalankan yang berikut:

cycode scan path {{path}}

Misalnya, pertimbangkan skenario di mana Anda ingin memindai direktori yang terletak di ~/home/git/codebase. Anda kemudian dapat menjalankan yang berikut:

cycode scan path ~/home/git/codebase

Pemindaian Terraform Plan

CLI Cycode mendukung pemindaian rencana Terraform (mendukung Terraform 0.12 dan yang lebih baru)

File rencana Terraform harus dalam format JSON (memiliki ekstensi .json)

Jika Anda hanya memiliki file konfigurasi, Anda dapat membuat rencana dengan melakukan hal berikut:

  1. Inisialisasi direktori kerja yang berisi file konfigurasi Terraform:

    terraform init

  2. Buat rencana eksekusi Terraform dan simpan output biner:

    terraform plan -out={tfplan_output}

  3. Ubah file output biner menjadi JSON yang dapat dibaca:

    terraform show -json {tfplan_output} > {tfplan}.json

  4. Pindai {tfplan}.json Anda dengan CLI Cycode:

    cycode scan -t iac path ~/PATH/TO/YOUR/{tfplan}.json

Pemindaian Riwayat Komit

[!NOTE] Pemindaian Riwayat Komit tidak tersedia untuk pemindaian IaC.

Perintah pemindaian riwayat komit menyediakan dua kemampuan utama:

  1. Pemindaian Riwayat Penuh: Menganalisis semua komit dalam riwayat repositori
  2. Pemindaian Diff: Hanya memindai perubahan antara komit tertentu

Pemindaian rahasia dapat menganalisis semua komit dalam riwayat repositori karena rahasia yang diperkenalkan dan kemudian dihapus masih dapat bocor atau terekspos. Untuk pemindaian SCA dan SAST, perintah riwayat komit berfokus pada pemindaian perbedaan/perubahan antar komit, menjadikannya sempurna untuk tinjauan pull request dan pemindaian inkremental.

Pemindaian riwayat komit memeriksa riwayat komit repositori Git Anda dan dapat digunakan baik untuk analisis historis komprehensif maupun pemindaian diff yang ditargetkan pada perubahan tertentu.

Untuk menjalankan pemindaian riwayat komit, jalankan perintah berikut:

cycode scan commit-history {{path}}

Sebagai contoh, pertimbangkan skenario di mana Anda ingin memindai riwayat komit untuk repositori yang disimpan di ~/home/git/codebase. Anda kemudian dapat menjalankan perintah berikut:

cycode scan commit-history ~/home/git/codebase

Opsi berikut tersedia untuk digunakan dengan perintah ini:

OpsiDeskripsi
-r, --commit-range TEXTPindai rentang komit di repositori git ini, secara default cycode memindai semua riwayat komit (contoh: HEAD~1)

Opsi Rentang Komit (Pemindaian Diff)

Opsi rentang komit mengaktifkan pemindaian diff – hanya memindai perubahan antara komit tertentu alih-alih seluruh riwayat repositori. Ini sangat berguna untuk:

  • Validasi pull request: Hanya memindai perubahan yang diperkenalkan dalam PR
  • Pemindaian CI/CD inkremental: Fokus pada perubahan terbaru daripada seluruh basis kode
  • Tinjauan cabang fitur: Membandingkan perubahan terhadap cabang main/master
  • Optimasi kinerja: Pemindaian lebih cepat dengan membatasi cakupan pada perubahan yang relevan

Sintaks Rentang Komit

Opsi --commit-range (-r) mendukung sintaks revisi Git standar:

SintaksDeskripsiContoh
commit1..commit2Perubahan dari komit1 ke komit2abc123..def456
commit1...commit2Perubahan di komit2 yang tidak ada di komit1main...feature-branch
commitPerubahan dari komit ke HEADHEAD~1
branch1..branch2Perubahan dari cabang1 ke cabang2main..feature-branch

Contoh Pemindaian Diff

Pindai perubahan di komit terakhir:

cycode scan commit-history -r HEAD~1 ~/home/git/codebase

Pindai perubahan antara dua komit tertentu:

cycode scan commit-history -r abc123..def456 ~/home/git/codebase

Pindai perubahan di cabang fitur Anda dibandingkan dengan main:

cycode scan commit-history -r main..HEAD ~/home/git/codebase

Pindai perubahan antara main dan cabang fitur:

cycode scan commit-history -r main..feature-branch ~/home/git/codebase

Pindai semua perubahan dalam 3 komit terakhir:

cycode scan commit-history -r HEAD~3..HEAD ~/home/git/codebase

[!TIP] Untuk pipeline CI/CD, Anda dapat menggunakan variabel lingkungan seperti ${{ github.event.pull_request.base.sha }}..${{ github.sha }} (GitHub Actions) atau $CI_MERGE_REQUEST_TARGET_BRANCH_SHA..$CI_COMMIT_SHA (GitLab CI) untuk hanya memindai perubahan PR/MR.

Pemindaian Pra-Komit

Pemindaian pra-komit secara otomatis mengidentifikasi masalah apa pun sebelum Anda mengkomit perubahan ke repositori Anda. Tidak perlu menjalankan pemindaian ini secara manual; konfigurasikan hook pra-komit seperti yang dijelaskan di bagian Instalasi panduan ini.

Setelah menginstal hook pra-komit, Anda mungkin sesekali ingin melewatkan pemindaian selama komit tertentu. Untuk melakukannya, tambahkan yang berikut ini ke perintah git Anda untuk melewatkan pemindaian untuk satu komit:

SKIP=cycode git commit -m <your commit message>`

Pemindaian Pra-Push

Pemindaian pra-push secara otomatis mengidentifikasi masalah apa pun sebelum Anda mendorong perubahan ke repositori jarak jauh. Hook ini berjalan di sisi klien dan hanya memindai komit yang akan didorong, menjadikannya efisien untuk menangkap masalah sebelum mencapai repositori jarak jauh.

[!NOTE] Hook pra-push tidak tersedia untuk pemindaian IaC.

Hook pra-push terintegrasi dengan kerangka kerja pra-komit dan dapat dikonfigurasi untuk berjalan sebelum operasi git push apa pun.

Menginstal Hook Pra-Push

Untuk menyiapkan hook pra-push menggunakan kerangka kerja pra-komit:

  1. Instal kerangka kerja pra-komit (jika belum terinstal):

    pip3 install pre-commit
    
  2. Buat atau perbarui file .pre-commit-config.yaml Anda untuk menyertakan hook pra-push:

    repos:
      - repo: https://github.com/cycodehq/cycode-cli
        rev: v3.5.0
        hooks:
          - id: cycode-pre-push
            stages: [pre-push]
    
  3. Untuk beberapa jenis pemindaian, gunakan konfigurasi ini:

    repos:
      - repo: https://github.com/cycodehq/cycode-cli
        rev: v3.5.0
        hooks:
          - id: cycode-pre-push          # Secrets scan
            stages: [pre-push]
          - id: cycode-sca-pre-push      # SCA scan
            stages: [pre-push]
          - id: cycode-sast-pre-push     # SAST scan
            stages: [pre-push]
    
  4. Instal hook pra-push:

    pre-commit install --hook-type pre-push
    

    Instalasi yang berhasil akan menghasilkan pesan: Pre-push installed at .git/hooks/pre-push.

  5. Jaga hook pra-push tetap terbarui:

    pre-commit autoupdate
    

Cara Kerja Pemindaian Pra-Push

Hook pra-push:

  • Menerima informasi tentang komit apa yang sedang didorong
  • Menghitung rentang komit yang sesuai untuk dipindai
  • Untuk cabang baru: memindai semua komit dari basis penggabungan dengan cabang default
  • Untuk cabang yang sudah ada: hanya memindai komit baru sejak push terakhir
  • Menjalankan pemindaian komprehensif yang sama seperti mode pemindaian Cycode lainnya

Deteksi Cabang Default Cerdas

Hook pra-push secara cerdas mendeteksi cabang default untuk perhitungan basis penggabungan menggunakan urutan prioritas ini:

  1. Variabel Lingkungan: CYCODE_DEFAULT_BRANCH - memungkinkan penggantian manual
  2. Git Remote HEAD: Menggunakan git symbolic-ref refs/remotes/origin/HEAD untuk mendeteksi cabang default jarak jauh yang sebenarnya
  3. Git Remote Info: Jatuh kembali ke git remote show origin jika symbolic-ref gagal
  4. Fallback Hardcoded: Menggunakan nama cabang default umum (origin/main, origin/master, main, master)

Mengatur Cabang Default Kustom:

export CYCODE_DEFAULT_BRANCH=origin/develop

Deteksi cerdas ini memastikan hook pra-push bekerja dengan benar terlepas dari apakah repositori Anda menggunakan main, master, develop, atau nama cabang default lainnya.

Melewatkan Pemindaian Pra-Push

Untuk melewatkan pemindaian pra-push untuk operasi push tertentu, gunakan:

SKIP=cycode-pre-push git push

Atau untuk melewatkan semua hook pra-push:

git push --no-verify

[!TIP] Hook pra-push dipicu pada perintah git push dan hanya memindai komit yang akan didorong, menjadikannya lebih efisien daripada memindai seluruh repositori.

Mengecualikan Jalur Dari Pemindaian

Anda dapat menggunakan file .cycodeignore untuk memberi tahu CLI Cycode file dan direktori mana yang akan dikecualikan dari pemindaian. Ini berfungsi seperti file .gitignore. Ini membantu Anda memfokuskan pemindaian pada kode yang relevan dan mencegah jalur tertentu memicu pelanggaran secara lokal.

Cara Kerjanya

  1. Buat file bernama .cycodeignore di folder kerja Anda.
  2. Daftarkan file dan direktori yang ingin Anda kecualikan, menggunakan pola yang sama seperti .gitignore.
  3. Tempatkan file ini di direktori tempat Anda berencana menjalankan perintah pemindaian cycode.

[!WARNING]

  • File tidak valid: Jika file .cycodeignore berisi kesalahan sintaks, pemindaian CLI akan gagal dan mengembalikan kesalahan.
  • Mengabaikan jalur vs. pelanggaran: File ini untuk mengecualikan jalur. Ini berbeda dari kemampuan CLI untuk mengabaikan pelanggaran tertentu (misalnya, dengan menggunakan flag --ignore-violation).

Pemindai yang Didukung

  • SAST
  • IaC (segera hadir)
  • SCA (segera hadir)

Hasil Pemindaian

Setiap pemindaian akan selesai dengan pesan yang menyatakan apakah ada masalah yang ditemukan atau tidak.

Jika tidak ada masalah yang ditemukan, pemindaian berakhir dengan pesan sukses berikut:

Good job! No issues were found!!! 👏👏👏

Jika masalah ditemukan, kartu pelanggaran akan muncul setelah selesai. Dalam hal ini Anda harus meninjau file yang dimaksud untuk baris spesifik yang disorot oleh pesan hasil. Terapkan perubahan apa pun yang diperlukan untuk menyelesaikan masalah, lalu jalankan pemindaian lagi.

Tampilkan/Sembunyikan Rahasia

Dalam contoh di bawah, sebuah rahasia ditemukan di file secret_test, yang terletak di subfolder cli. Bagian kedua dari pesan menunjukkan baris spesifik tempat rahasia muncul, yang dalam hal ini adalah nilai yang ditetapkan ke googleApiKey.

Perhatikan bagaimana contoh tersebut mengaburkan nilai rahasia sebenarnya, mengganti sebagian besar rahasia dengan tanda bintang. Pemindaian mengaburkan rahasia secara default, tetapi Anda dapat secara opsional menonaktifkan fitur ini untuk melihat rahasia lengkap (dengan asumsi mesin tempat Anda melihat hasil pemindaian cukup aman dari mata-mata).

Untuk menonaktifkan pengaburan rahasia, tambahkan argumen --show-secret ke jenis pemindaian apa pun.

Dalam contoh berikut, Pemindaian Jalur dijalankan terhadap subdirektori cli dengan opsi diaktifkan untuk menampilkan rahasia apa pun yang ditemukan secara lengkap:

cycode scan --show-secret path ./cli

Hasilnya kemudian tidak akan dikaburkan.

Soft Fail

Dalam operasi normal, CLI akan mengembalikan kode keluar 1 ketika masalah ditemukan dalam hasil pemindaian. Tergantung pada pengaturan CI/CD Anda, ini biasanya akan mengakibatkan kegagalan keseluruhan. Jika Anda tidak ingin ini terjadi, Anda dapat menggunakan fitur soft fail.

Dengan menambahkan opsi --soft-fail ke jenis pemindaian apa pun, kode keluar akan dipaksa menjadi 0 terlepas dari apakah ada hasil yang ditemukan.

Contoh Hasil Pemindaian

Contoh Hasil Rahasia

╭─────────────────────────────────────────────────────────────── Hardcoded generic-password is used ───────────────────────────────────────────────────────────────╮
│                                                                                                                                               Violation 12 of 12 │
│ ╭─ 🔍 Details ───────────────────────────────────────╮ ╭─ 💻 Code Snippet ─────────────────────────────────────────────────────────────────────────────────────╮ │
│ │  Severity    🟠 MEDIUM                             │ │   34 };                                                                                               │ │
│ │  In file     /Users/cycodemacuser/NodeGoat/test/s  │ │   35                                                                                                  │ │
│ │              ecurity/profile-test.js               │ │   36 var sutUserName = "user1";                                                                       │ │
│ │  Secret SHA  b4ea3116d868b7c982ee6812cce61727856b  │ │ ❱ 37 var sutUserPassword = "Us*****23";                                                               │ │
│ │              802b3063cd5aebe7d796988552e0          │ │   38                                                                                                  │ │
│ │  Rule ID     68b6a876-4890-4e62-9531-0e687223579f  │ │   39 chrome.setDefaultService(service);                                                               │ │
│ ╰────────────────────────────────────────────────────╯ │   40                                                                                                  │ │
│                                                        ╰───────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ ╭─ 📝 Summary ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │
│ │ A generic secret or password is an authentication token used to access a computer or application and is assigned to a password variable.                     │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

Contoh Hasil IaC

╭──────────── Enable Content Encoding through the attribute 'MinimumCompressionSize'. This value should be greater than -1 and smaller than 10485760. ─────────────╮
│                                                                                                                                              Violation 45 of 110 │
│ ╭─ 🔍 Details ───────────────────────────────────────╮ ╭─ 💻 Code Snippet ─────────────────────────────────────────────────────────────────────────────────────╮ │
│ │  Severity      🟠 MEDIUM                           │ │   20 BinaryMediaTypes:                                                                                │ │
│ │  In file       ...ads-copy/iac/cft/api-gateway/ap  │ │   21   - !Ref binaryMediaType1                                                                        │ │
│ │                i-gateway-rest-api/deploy.yml       │ │   22   - !Ref binaryMediaType2                                                                        │ │
│ │  IaC Provider  CloudFormation                      │ │ ❱ 23 MinimumCompressionSize: -1                                                                       │ │
│ │  Rule ID       33c4b90c-3270-4337-a075-d3109c141b  │ │   24 EndpointConfiguration:                                                                           │ │
│ │                53                                  │ │   25   Types:                                                                                         │ │
│ ╰────────────────────────────────────────────────────╯ │   26     - EDGE                                                                                       │ │
│                                                        ╰───────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ ╭─ 📝 Summary ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │
│ │ This policy validates the proper configuration of content encoding in AWS API Gateway. Specifically, the policy checks for the attribute                     │ │
│ │ 'minimum_compression_size' in API Gateway REST APIs. Correct configuration of this attribute is important for enabling content encoding of API responses for │ │
│ │ improved API performance and reduced payload sizes.                                                                                                          │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

Contoh Hasil SCA

╭─────────────────────────────────────────────────────── [CVE-2019-10795] Prototype Pollution in undefsafe ────────────────────────────────────────────────────────╮
│                                                                                                                                             Violation 172 of 195 │
│ ╭─ 🔍 Details ───────────────────────────────────────╮ ╭─ 💻 Code Snippet ─────────────────────────────────────────────────────────────────────────────────────╮ │
│ │  Severity               🟠 MEDIUM                  │ │   26758   "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=",                                           │ │
│ │  In file                /Users/cycodemacuser/Node  │ │   26759   "dev": true                                                                                 │ │
│ │                         Goat/package-lock.json     │ │   26760 },                                                                                            │ │
│ │  CVEs                   CVE-2019-10795             │ │ ❱ 26761 "undefsafe": {                                                                                │ │
│ │  Package                undefsafe                  │ │   26762   "version": "2.0.2",                                                                         │ │
│ │  Version                2.0.2                      │ │   26763   "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.2.tgz",                   │ │
│ │  First patched version  Not fixed                  │ │   26764   "integrity": "sha1-Il9rngM3Zj4Njnz9aG/Cg2zKznY=",                                           │ │
│ │  Dependency path        nodemon 1.19.1 ->          │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ │                         undefsafe 2.0.2            │                                                                                                           │
│ │  Rule ID                9c6a8911-e071-4616-86db-4  │                                                                                                           │
│ │                         943f2e1df81                │                                                                                                           │
│ ╰────────────────────────────────────────────────────╯                                                                                                           │
│ ╭─ 📝 Summary ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │
│ │ undefsafe before 2.0.3 is vulnerable to Prototype Pollution. The 'a' function could be tricked into adding or modifying properties of Object.prototype using │ │
│ │ a __proto__ payload.                                                                                                                                         │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

Contoh Hasil SAST

╭───────────────────────────────────────────── [CWE-208: Observable Timing Discrepancy] Observable Timing Discrepancy ─────────────────────────────────────────────╮
│                                                                                                                                               Violation 24 of 49 │
│ ╭─ 🔍 Details ───────────────────────────────────────╮ ╭─ 💻 Code Snippet ─────────────────────────────────────────────────────────────────────────────────────╮ │
│ │  Severity       🟠 MEDIUM                          │ │   173         " including numbers, lowercase and uppercase letters.";                                 │ │
│ │  In file        /Users/cycodemacuser/NodeGoat/app  │ │   174     return false;                                                                               │ │
│ │                 /routes/session.js                 │ │   175 }                                                                                               │ │
│ │  CWE            CWE-208                            │ │ ❱ 176 if (password !== verify) {                                                                      │ │
│ │  Subcategory    Security                           │ │   177     errors.verifyError = "Password must match";                                                 │ │
│ │  Language       js                                 │ │   178     return false;                                                                               │ │
│ │  Security Tool  Bearer (Powered by Cycode)         │ │   179 }                                                                                               │ │
│ │  Rule ID        19fbca07-a8e7-4fa6-92ac-a36d15509  │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ │                 fa9                                │                                                                                                           │
│ ╰────────────────────────────────────────────────────╯                                                                                                           │
│ ╭─ 📝 Summary ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │
│ │ Observable Timing Discrepancy occurs when the time it takes for certain operations to complete can be measured and observed by attackers. This vulnerability │ │
│ │ is particularly concerning when operations involve sensitive information, such as password checks or secret comparisons. If attackers can analyze how long   │ │
│ │ these operations take, they might be able to deduce confidential details, putting your data at risk.                                                         │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

Panduan Remediasi Kustom Perusahaan

Jika perusahaan Anda telah menetapkan panduan remediasi kustom dalam kebijakan yang relevan melalui portal Cycode, Anda akan melihat bidang untuk "Panduan Perusahaan" yang berisi panduan remediasi yang Anda tambahkan. Perhatikan bahwa jika Anda belum menambahkan panduan perusahaan apa pun, bidang ini tidak akan muncul di alat CLI.

Mengabaikan Hasil Pemindaian

Aturan pengabaian dapat ditambahkan untuk mengabaikan nilai rahasia tertentu, nilai SHA512 tertentu, jalur tertentu, dan ID aturan rahasia dan IaC Cycode tertentu. Ini akan menyebabkan pemindaian tidak memperingatkan nilai-nilai ini. Aturan pengabaian ditulis dan disimpan secara lokal di file ./.cycode/config.yaml.

[!WARNING] Menambahkan nilai untuk diabaikan harus dilakukan dengan pertimbangan cermat terhadap nilai, jalur, dan kebijakan untuk memastikan bahwa pemindaian akan mendeteksi positif sejati.

Berikut adalah opsi yang tersedia untuk perintah cycode ignore:

OpsiDeskripsi
--by-value TEXTAbaikan nilai tertentu saat memindai secret. Lihat Mengabaikan Nilai Secret untuk detail lebih lanjut.
--by-sha TEXTAbaikan representasi SHA512 tertentu dari sebuah string saat memindai secret. Lihat Mengabaikan Nilai SHA Secret untuk detail lebih lanjut.
--by-path TEXTHindari pemindaian jalur tertentu. Perlu menentukan tipe pemindaian. Lihat Mengabaikan Jalur untuk detail lebih lanjut.
--by-rule TEXTAbaikan pemindaian ID aturan secret/IaC/SCA tertentu. Lihat Mengabaikan Aturan Secret atau IaC untuk detail lebih lanjut.
--by-package TEXTAbaikan pemindaian versi paket tertentu saat menjalankan pemindaian SCA. Pola yang diharapkan - name@version. Lihat Mengabaikan Paket untuk detail lebih lanjut.
--by-cve TEXTAbaikan pemindaian CVE tertentu saat menjalankan pemindaian SCA. Pola yang diharapkan: CVE-YYYY-NNN.
-t, --scan-type [secret|iac|sca|sast]Tentukan pemindaian yang ingin Anda jalankan (secret/iac/sca/sast). Nilai default adalah secret.
-g, --globalTambahkan aturan pengabaian dan perbarui di file konfigurasi global .cycode.

Mengabaikan Nilai Secret

Untuk mengabaikan nilai secret tertentu, Anda perlu menggunakan flag --by-value. Ini akan mengabaikan nilai secret yang diberikan dari semua pemindaian mendatang. Gunakan perintah berikut untuk menambahkan nilai secret yang akan diabaikan:

cycode ignore --by-value {{secret-value}}

Pada contoh di bagian atas seksi ini, perintah untuk mengabaikan nilai secret tertentu adalah sebagai berikut:

cycode ignore --by-value h3110w0r1d!@#$350

Pada contoh di atas, ganti nilai h3110w0r1d!@#$350 dengan nilai secret Anda yang tidak dimasking. Lihat opsi pemindaian Cycode untuk detail tentang cara melihat nilai secret di hasil pemindaian.

Mengabaikan Nilai SHA Secret

Untuk mengabaikan nilai SHA secret tertentu, Anda perlu menggunakan flag --by-sha. Ini akan mengabaikan nilai SHA secret yang diberikan dari semua pemindaian mendatang. Gunakan perintah berikut untuk menambahkan nilai SHA secret yang akan diabaikan:

cycode ignore --by-sha {{secret-sha-value}}

Pada contoh di bagian atas seksi ini, perintah untuk mengabaikan nilai SHA secret tertentu adalah sebagai berikut:

cycode ignore --by-sha a44081db3296c84b82d12a35c446a3cba19411dddfa0380134c75f7b3973bff0

Pada contoh di atas, ganti nilai a44081db3296c84b82d12a35c446a3cba19411dddfa0380134c75f7b3973bff0 dengan nilai SHA secret Anda.

Mengabaikan Jalur

Untuk mengabaikan jalur tertentu untuk pemindaian secret, IaC, atau SCA, Anda perlu menggunakan flag --by-path bersama dengan flag -t, --scan-type (Anda harus menentukan tipe pemindaian). Ini akan mengabaikan jalur yang diberikan dari semua pemindaian mendatang untuk tipe pemindaian yang diberikan. Gunakan perintah berikut untuk menambahkan jalur yang akan diabaikan:

cycode ignore -t {{scan-type}} --by-path {{path}}

Pada contoh di bagian atas seksi ini, perintah untuk mengabaikan jalur tertentu untuk secret adalah sebagai berikut:

cycode ignore -t secret --by-path ~/home/my-repo/config

Pada contoh di atas, ganti nilai ~/home/my-repo/config dengan nilai jalur Anda.

Pada contoh di bagian atas seksi ini, perintah untuk mengabaikan jalur tertentu dari pemindaian IaC adalah sebagai berikut:

cycode ignore -t iac --by-path ~/home/my-repo/config

Pada contoh di atas, ganti nilai ~/home/my-repo/config dengan nilai jalur Anda.

Pada contoh di bagian atas seksi ini, perintah untuk mengabaikan jalur tertentu dari pemindaian SCA adalah sebagai berikut:

cycode ignore -t sca --by-path ~/home/my-repo/config

Pada contoh di atas, ganti nilai ~/home/my-repo/config dengan nilai jalur Anda.

Mengabaikan Aturan Secret, IaC, SCA, atau SAST

Untuk mengabaikan aturan secret, IaC, SCA, atau SAST tertentu, Anda perlu menggunakan flag --by-rule bersama dengan flag -t, --scan-type (Anda harus menentukan tipe pemindaian). Ini akan mengabaikan nilai ID aturan yang diberikan dari semua pemindaian mendatang. Gunakan perintah berikut untuk menambahkan nilai ID aturan yang akan diabaikan:

cycode ignore -t {{scan-type}} --by-rule {{rule-ID}}

Pada contoh di bagian atas seksi ini, perintah untuk mengabaikan ID aturan secret tertentu adalah sebagai berikut:

cycode ignore -t secret --by-rule ce3a4de0-9dfc-448b-a004-c538cf8b4710

Pada contoh di atas, ganti nilai ce3a4de0-9dfc-448b-a004-c538cf8b4710 dengan ID aturan yang ingin Anda abaikan.

Pada contoh di bagian atas seksi ini, perintah untuk mengabaikan ID aturan IaC tertentu adalah sebagai berikut:

cycode ignore -t iac --by-rule bdaa88e2-5e7c-46ff-ac2a-29721418c59c

Pada contoh di atas, ganti nilai bdaa88e2-5e7c-46ff-ac2a-29721418c59c dengan ID aturan yang ingin Anda abaikan.

Pada contoh di bagian atas seksi ini, perintah untuk mengabaikan ID aturan SCA tertentu adalah sebagai berikut:

cycode ignore -t sca --by-rule dc21bc6b-9f4f-46fb-9f92-e4327ea03f6b

Pada contoh di atas, ganti nilai dc21bc6b-9f4f-46fb-9f92-e4327ea03f6b dengan ID aturan yang ingin Anda abaikan.

Mengabaikan Paket

[!NOTE] Opsi ini hanya tersedia untuk pemindaian SCA.

Untuk mengabaikan paket tertentu dalam pemindaian SCA, Anda perlu menggunakan flag --by-package bersama dengan flag -t, --scan-type (Anda harus menentukan tipe pemindaian sca). Ini akan mengabaikan paket yang diberikan, menggunakan format {{package_name}}@{{package_version}}, dari semua pemindaian mendatang. Gunakan perintah berikut untuk menambahkan paket dan versi yang akan diabaikan:

cycode ignore --scan-type sca --by-package {{package_name}}@{{package_version}}

ATAU

cycode ignore -t sca --by-package {{package_name}}@{{package_version}}

Pada contoh di bawah, perintah untuk mengabaikan paket SCA tertentu adalah sebagai berikut:

cycode ignore --scan-type sca --by-package pyyaml@5.3.1

Pada contoh di atas, ganti pyyaml dengan nama paket dan 5.3.1 dengan versi paket yang ingin Anda abaikan.

Mengabaikan melalui file konfigurasi

Aturan pengabaian yang diterapkan disimpan dalam file konfigurasi yang disebut config.yaml. File ini dapat dengan mudah dibagikan antar pengembang atau bahkan di-commit ke Git remote. File-file ini selalu terletak di folder .cycode. Folder dimulai dengan titik (.), dan Anda harus mengaktifkan tampilan file tersembunyi untuk melihatnya.

Jalur file konfigurasi

Secara default, semua perintah cycode ignore menyimpan aturan pengabaian ke direktori saat ini tempat CLI dijalankan.

Contoh: menjalankan perintah CLI pengabaian dari /Users/name/projects/backend akan membuat config.yaml di /Users/name/projects/backend/.cycode

➜  backend  pwd
/Users/name/projects/backend
➜  backend  cycode ignore --by-value test-value
➜  backend  tree -a
.
└── .cycode
    └── config.yaml

2 directories, 1 file

Opsi kedua adalah menyimpan aturan pengabaian ke file konfigurasi global. Jalur konfigurasi global adalah ~/.cycode/config.yaml, di mana ~ berarti users home directory, for example, /Users/name` di macOS.

Penyimpanan ke ruang global dapat dilakukan dengan flag -g dari perintah cycode ignore. Contoh: cycode ignore -g --by-value test-value.

Direktori kerja yang tepat

Sangat penting untuk menempatkan folder .cycode dan menjalankan CLI dari tempat yang sama. Anda harus memeriksa ulang saat bekerja dengan lingkungan yang berbeda seperti CI/CD (GitHub Actions, Jenkins, dll.).

Anda dapat meng-commit folder .cycode ke root repositori Anda. Dalam skenario ini, Anda harus menjalankan pemindaian CLI dari root repositori. Jika itu tidak sesuai dengan kebutuhan Anda, Anda dapat menyalin sementara folder .cycode ke mana pun Anda inginkan dan melakukan pemindaian CLI dari folder ini.

Struktur aturan pengabaian di konfigurasi

Penting untuk memahami bagaimana CLI menyimpan aturan yang diabaikan agar dapat membaca file konfigurasi ini atau bahkan memodifikasinya tanpa CLI.

Struktur YAML abstrak:

exclusions:
  {scanTypeName}:
    {ignoringType}:
    - someIgnoringValue1
    - someIgnoringValue2

Nilai yang mungkin dari scanTypeName: iac, sca, sast, secret.

Nilai yang mungkin dari ignoringType: paths, values, rules, packages, shas, cves.

[!WARNING] Nilai untuk "abaikan berdasarkan nilai" tidak disimpan sebagai teks biasa! CLI menyimpan hash sha256 dari nilai tersebut. Anda harus memasukkan hash dari string saat memodifikasi file konfigurasi secara manual.

Contoh config.yaml nyata:

exclusions:
  iac:
    rules:
    - bdaa88e2-5e7c-46ff-ac2a-29721418c59c
  sca:
    packages:
    - pyyaml@5.3.1
  secret:
    paths:
    - /Users/name/projects/build
    rules:
    - ce3a4de0-9dfc-448b-a004-c538cf8b4710
    shas:
    - a44081db3296c84b82d12a35c446a3cba19411dddfa0380134c75f7b3973bff0
    values:
    - a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3
    - 60303ae22b998861bce3b28f33eec1be758a213c86c93c076dbe9f558c11c752

Perintah Report

Menghasilkan Laporan SBOM

Software bill of materials (SBOM) adalah inventaris semua komponen penyusun dan dependensi perangkat lunak yang terlibat dalam pengembangan dan pengiriman aplikasi. Dengan menggunakan perintah ini, Anda dapat membuat laporan SBOM untuk proyek lokal Anda atau untuk URI repositori Anda.

Opsi berikut tersedia untuk digunakan dengan perintah ini:

OpsiDeskripsiDiperlukanDefault
-f, --format [spdx-2.2|spdx-2.3|cyclonedx-1.4]Format SBOMYa
-o, --output-format [JSON]Tentukan format file outputTidakjson
--output-file PATHFile outputTidaknama file otomatis disimpan ke direktori saat ini
--include-vulnerabilitiesSertakan kerentananTidakFalse
--include-dev-dependenciesSertakan dependensi devTidakFalse

Perintah berikut tersedia untuk digunakan dengan perintah ini:

PerintahDeskripsi
pathHasilkan laporan SBOM untuk jalur yang disediakan dalam perintah
repository-urlHasilkan laporan SBOM untuk URI repositori yang disediakan dalam perintah

Repositori

Untuk membuat laporan SBOM untuk URI repositori:
cycode report sbom --format <sbom format> --include-vulnerabilities --include-dev-dependencies --output-file </path/to/file> repository_url <repository url>

Contoh:
cycode report sbom --format spdx-2.3 --include-vulnerabilities --include-dev-dependencies repository_url https://github.com/cycodehq/cycode-cli.git

Proyek Lokal

Untuk membuat laporan SBOM untuk sebuah jalur:
cycode report sbom --format <sbom format> --include-vulnerabilities --include-dev-dependencies --output-file </path/to/file> path </path/to/project>

Contoh:
cycode report sbom --format spdx-2.3 --include-vulnerabilities --include-dev-dependencies path /path/to/local/project

Subperintah path mendukung opsi tambahan berikut:

OpsiDeskripsi
--no-restoreLewati restorasi lockfile dan pindai hanya dependensi langsung. Lihat Opsi Lock Restore untuk detail.
--gradle-all-sub-projectsJalankan perintah restore Gradle untuk semua sub-proyek (gunakan dari root build Gradle multi-proyek).
--maven-settings-fileHanya untuk Maven, memungkinkan penggunaan file settings.xml kustom saat membangun pohon dependensi.

Perintah Import

Mengimpor SBOM

Software bill of materials (SBOM) adalah inventaris semua komponen penyusun dan dependensi perangkat lunak yang terlibat dalam pengembangan dan pengiriman aplikasi. Dengan menggunakan perintah ini, Anda dapat mengimpor file SBOM dari sistem file Anda ke Cycode.

Opsi berikut tersedia untuk digunakan dengan perintah ini:

OpsiDeskripsiWajibDefault
-n, --name TEXTNama tampilan SBOMYa
-v, --vendor TEXTNama entitas yang menyediakan SBOMYa
-l, --label TEXTLampirkan label ke SBOMTidak
-o, --owner TEXTAlamat email pengguna Cycode yang menjadi narahubung untuk SBOM iniTidak
-b, --business-impact [High | Medium | Low]Dampak BisnisTidakMedium

Sebagai contoh:
cycode import sbom --name example-sbom --vendor cycode -label tag1 -label tag2 --owner example@cycode.com /path/to/local/project

Log Pemindaian

Semua pemindaian CLI dicatat di Cycode. Log dapat ditemukan di Pengaturan > Log CLI.

Bantuan Sintaks

Anda dapat menambahkan argumen --help ke perintah apa pun kapan saja untuk melihat pesan bantuan yang akan menampilkan opsi yang tersedia dan sintaksnya.

Untuk melihat bantuan umum, cukup masukkan perintah:

cycode --help

Untuk melihat opsi pemindaian, masukkan:

cycode scan --help

Untuk melihat opsi yang tersedia untuk jenis pemindaian tertentu, masukkan:

cycode scan {{option}} --help

Sebagai contoh, untuk melihat opsi yang tersedia untuk Pemindaian Jalur, Anda akan memasukkan:

cycode scan path --help

Untuk melihat opsi yang tersedia untuk fungsi abaikan pemindaian, gunakan perintah ini:

cycode ignore --help

Untuk melihat opsi yang tersedia untuk laporan, gunakan perintah ini:

cycode report --help

Untuk melihat opsi yang tersedia untuk jenis laporan tertentu, masukkan:

cycode scan {{option}} --help