Cursor CLI kullanarak repository’ni güvenlik açıkları ve secret sızıntıları açısından otomatik olarak denetle. Bu workflow potansiyel secret’ları tarar, riskli workflow desenlerini tespit eder ve güvenlik düzeltmeleri önerir.
name: Auto Secrets Audit

on:
  schedule:
    - cron: "0 4 * * *"
  workflow_dispatch:

permissions:
  contents: write
  pull-requests: write
  actions: read

jobs:
  secrets-audit:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Install Cursor CLI
        run: |
          curl https://cursor.com/install -fsS | bash
          echo "$HOME/.cursor/bin" >> $GITHUB_PATH

      - name: Configure git identity
        run: |
          git config user.name "Cursor Agent"
          git config user.email "cursoragent@cursor.com"

      - name: Scan and propose hardening
        env:
          CURSOR_API_KEY: ${{ secrets.CURSOR_API_KEY }}
          MODEL: gpt-5
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          BRANCH_PREFIX: audit
        run: |
          cursor-agent -p "GitHub Actions runner'da çalışıyorsun.

          GitHub CLI `gh` olarak mevcut ve `GH_TOKEN` ile kimlik doğrulaması yapılmış. Git mevcut. Repository içeriklerine yazma erişimin var ve pull request'lere yorum yapabilirsin, ancak PR'ları doğrudan oluşturmamalı veya düzenlememelisin.

          # Bağlam:
          - Repo: ${{ github.repository }}
           - Güvenlik Sıkılaştırma Branch Öneki: ${{ env.BRANCH_PREFIX }}

          # Hedef:
          - Repository secret sızıntısı ve workflow güvenlik sıkılaştırma denetimini zamanlanmış olarak gerçekleştir ve minimal güvenli düzeltmeler öner.

          # Gereksinimler:
          1) İzlenen dosyalarda ve yakın geçmişte potansiyel secret'ları tara; mevcut ise allowlist desenlerini destekle (örn. .gitleaks.toml).
          2) Riskli workflow desenlerini tespit et: pin'lenmemiş action'lar, aşırı geniş izinler, güvenli olmayan pull_request_target kullanımı, fork'lanmış PR bağlamlarında secret'lar, deprecated güvenli olmayan komutlar, eksik permission blokları.
          3) Bağlam'dan Güvenlik Sıkılaştırma Branch Öneki kullanarak bu çalıştırma için kalıcı bir branch koru. Eksikse oluştur, aksi takdirde güncelle ve değişiklikleri origin'e push et.
          4) Minimal düzenlemeler öner: güvenli olduğu yerde literal'ları redakte et, ignore kuralları ekle, action'ları SHA'ya pin'le, izinleri azalt, workflow'lara güvenlik önlemleri ekle ve değişiklikleri ve düzeltme rehberliğini özetleyen bir SECURITY_LOG.md ekle.
          5) Origin'e push et.
          6) Repo'da en az bir açık PR varsa, en son güncellenmiş açık PR'a güvenlik sıkılaştırma değişikliklerini kısaca açıklayan ve hızlı PR oluşturmak için inline karşılaştırma linki içeren tek bir doğal dil yorumu (1-2 cümle) gönder veya güncelle.
          7) Yinelenen yorumlardan kaçın; mevcut ise mevcut bot yorumunu güncelle. Değişiklik yoksa veya açık PR yoksa hiçbir şey gönderme.

          # Girdiler ve konvansiyonlar:
          - PR'ları listelemek ve yorum göndermek için `gh` kullan. Yinelenen yorumlardan kaçın.

          # Güncellemeler gerçekleştiğinde teslim edilecekler:
           - Bu çalıştırma için kalıcı güvenlik sıkılaştırma branch'ine push edilmiş commit'ler.
          - Yukarıdaki karşılaştırma linki ile tek bir doğal dil PR yorumu (yalnızca açık PR mevcutsa).
          " --force --model "$MODEL" --output-format=text