name: Descope 사용자 일괄 처리 on: workflow_dispatch: inputs: google_sheet_url: description: "처리할 Google Sheets의 CSV 내보내기 URL" required: true type: string action_type: description: "실행할 작업" required: true type: choice options: - create - change_password expiry_date: description: "라이선스 만료일 (YYYY-MM-DD). 입력 시 모든 사용자의 만료일을 덮어씁니다." required: false type: string jobs: run_bulk_operation: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: uv 설치 uses: astral-sh/setup-uv@v5 with: enable-cache: true cache-dependency-glob: "**/uv.lock" - name: uv 가상 환경 캐시 uses: actions/cache@v4 with: path: .venv key: ${{ runner.os }}-uv-${{ hashFiles('**/uv.lock') }} restore-keys: | ${{ runner.os }}-uv- - name: 스크립트 실행 env: DESCOPE_PROJECT_ID: ${{ secrets.DESCOPE_PROJECT_ID }} DESCOPE_MANAGEMENT_KEY: ${{ secrets.DESCOPE_MANAGEMENT_KEY }} run: | EXPIRY_DATE_ARG="" if [[ -n "${{ github.event.inputs.expiry_date }}" ]]; then EXPIRY_DATE_ARG="--expiry-date ${{ github.event.inputs.expiry_date }}" fi uv run python main.py "${{ github.event.inputs.google_sheet_url }}" --action ${{ github.event.inputs.action_type }} $EXPIRY_DATE_ARG