Bahasa Indonesia

Jalankan pemindaian keamanan massal

Temukan repositori GitHub atau jalankan pemindaian keamanan yang dapat dilanjutkan dari inventaris CSV.

Gunakan npx @openai/codex-security bulk-scan untuk meninjau repositori dalam satu kampanye. Temukan repositori dari akun GitHub pribadi Anda atau sebuah organisasi, atau berikan CSV yang menetapkan setiap repositori ke revisi Git yang tepat.

Pilih sumber repositori

Sumber Kapan menggunakannya
Penemuan GitHub Pilih repositori secara interaktif dari akun GitHub pribadi Anda atau sebuah organisasi.
Inventaris CSV Jalankan kampanye otomatis yang dapat diulang terhadap revisi repositori yang tepat.

Kedua alur kerja menyimpan progres, mempertahankan hasil per repositori, dan memungkinkan Anda melanjutkan kampanye setelah terjadi gangguan.

Temukan repositori GitHub

Masuk dengan GitHub CLI:

gh auth login

Mulai pemindaian massal interaktif:

npx @openai/codex-security bulk-scan

CLI memandu Anda melalui langkah-langkah berikut:

  1. Pilih akun GitHub pribadi Anda atau sebuah organisasi.
  2. Tinjau repositori yang aktif dalam 90 hari terakhir.
  3. Cari dalam daftar repositori dan pilih repositori yang akan dipindai.
  4. Pilih direktori untuk hasil pemindaian.
  5. Tinjau repositori yang dipilih dan konfirmasikan kampanye.

Penemuan mengecualikan repositori yang diarsipkan dan fork. CLI mencatat commit cabang default yang tepat untuk setiap repositori yang dipilih di <output-directory>/repositories.csv. Tidak ada pemindaian yang dimulai hingga Anda mengonfirmasi pilihan.

Untuk menggunakan GitHub Enterprise Server, masuk terlebih dahulu ke host GitHub Anda:

gh auth login --hostname github.example.com

Tetapkan GH_HOST saat Anda memulai penemuan repositori:

GH_HOST=github.example.com npx @openai/codex-security bulk-scan

Penemuan interaktif memerlukan terminal. Untuk CI, container, atau daftar repositori yang telah disiapkan, gunakan inventaris CSV sebagai gantinya.

Buat CSV repositori

Buat CSV dengan satu baris untuk setiap repositori dan revisi yang ditetapkan:

id,repository,revision,scope,mode,prompt
payments,https://github.com/example/payments.git,0123456789abcdef0123456789abcdef01234567,services/api,standard,Review payment authorization and refunds.
identity,https://github.com/example/identity.git,fedcba9876543210fedcba9876543210fedcba98,,deep,Review session and identity boundaries.

CSV mendukung kolom berikut:

Kolom Wajib Deskripsi
id Ya Pengidentifikasi repositori unik. Gunakan huruf, angka, titik, tanda hubung, atau garis bawah.
repository Ya URL HTTPS, URL SSH, atau jalur repositori lokal. Jalur relatif diacu dari direktori CSV.
revision Ya SHA commit Git lengkap sepanjang 40 atau 64 karakter. Nama cabang, tag, dan hash commit yang dipersingkat tidak didukung.
scope Tidak Direktori relatif terhadap repositori yang akan dipindai. Hilangkan nilainya untuk memindai seluruh repositori.
mode Tidak standard atau deep. Hilangkan nilainya untuk menggunakan mode yang dipilih oleh perintah.
prompt Tidak Instruksi pemindaian khusus untuk repositori ini.

Untuk menemukan SHA commit lengkap repositori lokal, jalankan:

git -C /path/to/repository rev-parse HEAD

Jalankan kampanye dari CSV

Berikan CSV dan direktori output privat di luar repositori:

npx @openai/codex-security bulk-scan repositories.csv \
  --output-dir /path/outside/repositories/security-scans \
  --workers 4

--workers mengontrol pemindaian repositori serentak dan nilai default-nya adalah 4. Opsi ini tidak menetapkan jumlah pekerja pemindaian standar independen dalam setiap pemindaian mendalam; konfigurasikan batas tersebut melalui [deep_scan]. Gunakan --mode deep untuk memilih pemindaian mendalam bagi baris yang tidak memiliki mode sendiri. Setiap baris CSV tetap dapat memilih mode pemindaian dan cakupan repositorinya sendiri.

Tetapkan [deep_scan].max_time_hours untuk membatasi eksekusi pekerja bagi setiap pemindaian mendalam dalam kampanye. Flag --max-time-hours berfungsi dengan scan, bukan bulk-scan.

CLI melakukan checkout pada setiap revisi yang ditetapkan, memindai target yang dipilih, mencatat hasilnya, lalu menghapus checkout repositori sementara. Repositori hanya dianggap selesai jika pemindaiannya memiliki cakupan lengkap dan semua artefak hasil yang diperlukan tersedia.

Bagikan konteks dan instruksi keamanan

Tambahkan dokumen arsitektur, model ancaman, atau kebijakan keamanan ke setiap pemindaian dengan --knowledge-base. Ulangi flag untuk menambahkan lebih banyak file atau direktori:

npx @openai/codex-security bulk-scan repositories.csv \
  --output-dir /path/outside/repositories/security-scans \
  --knowledge-base /path/to/architecture.md \
  --knowledge-base /path/to/security-policies

Untuk menambahkan instruksi pemindaian bersama atau menjalankan tindak lanjut setelah setiap pemindaian, berikan file prompt:

npx @openai/codex-security bulk-scan repositories.csv \
  --output-dir /path/outside/repositories/security-scans \
  --scan-prompt-file scan-instructions.md \
  --post-scan-prompt-file follow-up.md

CLI menambahkan prompt CSV setiap repositori setelah instruksi pemindaian bersama. Instruksi tindak lanjut dijalankan dalam sesi terautentikasi yang sama setelah pemindaian berhasil serta pemindaian dengan cakupan tidak lengkap atau kesalahan, tetapi tidak setelah pembatalan atau pemindaian yang mencapai batas biayanya. Jalur file prompt diacu dari direktori Anda saat ini.

Pilih model dan tingkat penalaran

Pemindaian massal menggunakan gpt-5.6-sol dengan tingkat penalaran xhigh secara default. Untuk memilih model dan tingkat penalaran lain bagi kampanye CSV:

npx @openai/codex-security bulk-scan repositories.csv \
  --output-dir /path/outside/repositories/security-scans \
  --workers 4 \
  --model gpt-5.6-terra \
  --effort high

Opsi yang sama berfungsi selama penemuan repositori interaktif:

npx @openai/codex-security bulk-scan --model gpt-5.6-terra --effort high

Tingkat penalaran yang didukung adalah minimal, low, medium, high, dan xhigh.

Untuk menggunakan OpenRouter atau Fireworks, tetapkan masing-masing OPENROUTER_API_KEY atau FIREWORKS_API_KEY, dan tentukan --provider serta --model. Untuk kredensial dan contoh, lihat penyiapan OpenRouter atau Fireworks atau penyiapan Amazon Bedrock.

Tinjau hasil kampanye

Direktori output berisi kampanye yang ditetapkan, buku besar hasil yang hanya dapat ditambahi, serta artefak terpisah untuk setiap repositori dan percobaan:

security-scans/
├── manifest.json
├── results.jsonl
├── checkouts/
└── artifacts/
    ├── payments/
    │   └── attempt-1/
    │       ├── scan-manifest.json
    │       ├── findings.json
    │       ├── coverage.json
    │       └── report.md
    └── identity/
        └── attempt-1/
            ├── scan-manifest.json
            ├── findings.json
            ├── coverage.json
            └── report.md
  • manifest.json mencatat repositori, revisi yang ditetapkan, cakupan, mode pemindaian, serta instruksi bersama atau khusus repositori dalam kampanye.
  • results.jsonl mencatat setiap percobaan repositori, statusnya, direktori artefak, serta detail biaya atau kesalahan yang tersedia.
  • report.md menyediakan laporan yang mudah dibaca untuk satu percobaan repositori.
  • findings.json dan coverage.json mencatat temuan dan cakupan yang ditinjau dalam percobaan tersebut.

Ekspor satu pemindaian repositori yang selesai saat Anda memerlukan hasil portabel:

npx @openai/codex-security export \
  /path/outside/repositories/security-scans/artifacts/payments/attempt-1 \
  --export-format sarif \
  --output /path/outside/repositories/payments.sarif

Hasil dapat memuat kutipan kode sumber dan detail kerentanan. Jaga agar direktori output tetap privat, berada di luar repositori yang dipindai, dan tunduk pada kebijakan retensi yang sesuai.

Lanjutkan kampanye

Jalankan perintah awal dengan CSV dan direktori output yang sama:

npx @openai/codex-security bulk-scan repositories.csv \
  --output-dir /path/outside/repositories/security-scans \
  --workers 4

CLI melanjutkan pemindaian repositori yang belum selesai dan melewati yang telah selesai. Pemindaian dengan cakupan tidak lengkap tidak dicoba ulang. Hasilnya tetap tersedia, dan perintah keluar dengan kode 2.

Jangan ubah inventaris repositori atau instruksi pemindaian dan tindak lanjut untuk direktori output yang sudah ada. CLI memeriksa manifes yang ditetapkan dan menolak kampanye yang berbeda. Gunakan direktori output baru saat Anda mengubah repositori, revisi, cakupan, mode pemindaian, atau instruksi bersama maupun khusus repositori.

Coba ulang kesalahan repositori

Gunakan --max-attempts untuk mencoba ulang repositori setelah terjadi kesalahan checkout atau pemindaian sementara:

npx @openai/codex-security bulk-scan repositories.csv \
  --output-dir /path/outside/repositories/security-scans \
  --workers 4 \
  --max-attempts 3

Nilai default-nya adalah satu percobaan per repositori. Setiap percobaan mendapatkan tanda terima dan direktori artefaknya sendiri. Percobaan ulang mencakup kesalahan checkout, kegagalan pemindaian, dan artefak wajib yang tidak tersedia. Pemindaian yang selesai dengan cakupan tidak lengkap tidak dicoba ulang.

Pemindaian massal menggunakan kode keluar berikut:

Kode keluar Arti
0 Setiap repositori berhasil diselesaikan.
2 Sebuah repositori tidak dapat diselesaikan, pemindaian memiliki cakupan tidak lengkap, atau perintah mengalami kesalahan input atau runtime.
130 Ctrl-C menginterupsi kampanye.
143 SIGTERM menghentikan kampanye.

Jalankan pemindaian massal di Docker

Repositori Codex Security menyertakan konfigurasi Compose yang diperkuat untuk kampanye CSV otomatis pada host Docker Linux. Host harus mendukung pembuatan namespace pengguna tanpa hak istimewa.

Pertahankan CSV repositori, hasil pemindaian, dan status masuk yang dipasang dalam direktori persisten. Berikan kredensial OpenAI melalui lingkungan atau pengelola rahasia. Untuk repositori GitHub privat, berikan GH_TOKEN atau GITHUB_TOKEN dengan cara yang sama.

Jalankan image dengan CSV dan direktori output yang dipasang:

docker compose run --rm codex-security \
  bulk-scan /input/repositories.csv \
  --output-dir /output \
  --workers 4

Gunakan CSV dan direktori output terpasang yang sama untuk melanjutkan kampanye. Untuk GitHub Enterprise Server, tetapkan CODEX_SECURITY_GIT_HOST ke host GitHub Anda.

Untuk melihat setiap flag yang tersedia, lihat referensi perintah bulk-scan . Untuk pertanyaan umum tentang cakupan dan temuan pemindaian, lihat FAQ CLI.