Menjalankan 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 atau sebuah
organisasi, atau berikan CSV yang menetapkan setiap repositori ke revisi Git
yang tepat.
Memilih sumber repositori
| Sumber | Waktu yang tepat untuk menggunakannya |
|---|---|
| Penemuan GitHub | Pilih repositori secara interaktif dari akun GitHub pribadi atau organisasi Anda. |
| 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 gangguan.
Menemukan repositori GitHub
Masuk dengan GitHub CLI:
gh auth loginMulai pemindaian massal interaktif:
npx @openai/codex-security bulk-scanCLI memandu Anda melalui langkah-langkah berikut:
- Pilih akun GitHub pribadi atau organisasi Anda.
- Tinjau repositori yang aktif dalam 90 hari terakhir.
- Cari dalam daftar repositori dan pilih repositori yang akan dipindai.
- Pilih direktori untuk hasil pemindaian.
- 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 dalam
<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.comTetapkan GH_HOST saat Anda memulai penemuan repositori:
GH_HOST=github.example.com npx @openai/codex-security bulk-scanPenemuan interaktif memerlukan terminal. Untuk CI, kontainer, atau daftar repositori yang telah disiapkan, gunakan inventaris CSV sebagai gantinya.
Membuat CSV repositori
Buat CSV dengan satu baris untuk setiap repositori dan revisi yang ditetapkan:
id,repository,revision,scope,mode
payments,https://github.com/example/payments.git,0123456789abcdef0123456789abcdef01234567,services/api,standard
identity,https://github.com/example/identity.git,fedcba9876543210fedcba9876543210fedcba98,,deepCSV mendukung kolom-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 path repositori lokal. Path relatif ditentukan dari direktori CSV. |
revision |
Ya | SHA commit Git lengkap sepanjang 40 atau 64 karakter. Nama cabang, tag, dan hash commit pendek 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. |
Untuk menemukan SHA commit lengkap repositori lokal, jalankan:
git -C /path/to/repository rev-parse HEADMenjalankan kampanye dari CSV
Berikan CSV dan direktori keluaran privat di luar repositori:
npx @openai/codex-security bulk-scan repositories.csv \
--output-dir /path/outside/repositories/security-scans \
--workers 4--workers mengontrol jumlah pemindaian repositori serentak dan memiliki nilai default
4. 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.
CLI melakukan checkout pada setiap revisi yang ditetapkan, memindai target yang dipilih, mencatat hasilnya, dan menghapus checkout repositori sementara. Repositori hanya dianggap selesai jika pemindaiannya memiliki cakupan lengkap dan semua artefak hasil yang diwajibkan tersedia.
Memilih model dan tingkat penalaran
Secara default, pemindaian massal menggunakan gpt-5.6-sol dengan tingkat penalaran xhigh. Untuk
memilih model dan tingkat 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 highOpsi yang sama berlaku selama penemuan repositori interaktif:
npx @openai/codex-security bulk-scan --model gpt-5.6-terra --effort highTingkat yang didukung adalah minimal, low, medium, high, dan xhigh.
Meninjau hasil kampanye
Direktori keluaran berisi kampanye yang ditetapkan, ledger hasil khusus-tambah, dan 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.mdmanifest.jsonmencatat repositori, revisi yang ditetapkan, cakupan, dan mode pemindaian dalam kampanye.results.jsonlmencatat setiap percobaan repositori, statusnya, direktori artefak, serta detail biaya atau kesalahan yang tersedia.report.mdmenyediakan laporan yang mudah dibaca untuk satu percobaan repositori.findings.jsondancoverage.jsonmencatat 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.sarifHasil dapat berisi kutipan sumber dan detail kerentanan. Jaga agar direktori keluaran tetap privat, berada di luar repositori yang dipindai, dan tunduk pada kebijakan retensi yang sesuai.
Melanjutkan kampanye
Jalankan perintah asli dengan CSV dan direktori keluaran yang sama:
npx @openai/codex-security bulk-scan repositories.csv \
--output-dir /path/outside/repositories/security-scans \
--workers 4CLI melanjutkan repositori yang masih memerlukan pekerjaan. CLI hanya melewati repositori yang selesai jika tanda terima terkait dan semua artefak pemindaian yang diwajibkan masih tersedia.
Jangan mengubah inventaris repositori untuk direktori keluaran yang sudah ada. CLI memeriksa manifes yang ditetapkan dan menolak kampanye yang berbeda. Gunakan direktori keluaran baru saat Anda mengubah repositori, revisi, cakupan, atau mode pemindaian.
Mencoba kembali kesalahan repositori
Gunakan --max-attempts untuk mencoba kembali repositori setelah kesalahan checkout atau pemindaian
sementara:
npx @openai/codex-security bulk-scan repositories.csv \
--output-dir /path/outside/repositories/security-scans \
--workers 4 \
--max-attempts 3Secara default, setiap repositori memiliki satu percobaan. Setiap percobaan mendapatkan tanda terima dan direktori artefaknya sendiri.
Pemindaian massal menggunakan kode keluar berikut:
| Kode keluar | Arti |
|---|---|
0 |
Setiap repositori berhasil diselesaikan. |
2 |
Repositori tidak dapat diselesaikan, pemindaian memiliki cakupan tidak lengkap, atau perintah mengalami kesalahan input atau runtime. |
130 |
Ctrl-C menghentikan kampanye. |
143 |
SIGTERM mengakhiri kampanye. |
Menjalankan 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.
Simpan CSV repositori, hasil pemindaian, dan status proses masuk dalam direktori terpasang
yang 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 keluaran yang terpasang:
docker compose run --rm codex-security \
bulk-scan /input/repositories.csv \
--output-dir /output \
--workers 4Gunakan CSV dan direktori keluaran terpasang yang sama untuk melanjutkan kampanye. Untuk
GitHub Enterprise Server, tetapkan CODEX_SECURITY_GIT_HOST ke host GitHub Anda.
Untuk setiap flag yang tersedia, lihat referensi perintah pemindaian massal. Untuk pertanyaan umum tentang cakupan pemindaian dan temuan, lihat FAQ CLI.