name: Maintenance / Renovate on: schedule: # Run at 5am UTC daily to avoid late-night dev - cron: '0 5 * * *' workflow_dispatch: inputs: dryRun: description: 'Dry run mode' required: false default: null type: choice options: - null - 'extract' - 'lookup' - 'full' logLevel: description: 'Log level' required: false default: 'info' type: choice options: - 'info' - 'warning' - 'critical' push: branches: - main paths: # Re-run when config changes - '.forgejo/workflows/renovate.yml' - 'renovate.json' jobs: renovate: name: Renovate runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Self-hosted Renovate uses: https://github.com/renovatebot/github-action@v40.1.0 env: LOG_LEVEL: ${{ inputs.logLevel || 'info' }} RENOVATE_AUTODISCOVER: 'false' RENOVATE_BINARY_SOURCE: 'install' RENOVATE_DRY_RUN: ${{ inputs.dryRun || 'false' }} RENOVATE_ENDPOINT: ${{ github.server_url }}/api/v1 RENOVATE_GIT_TIMEOUT: 60000 RENOVATE_GIT_URL: 'endpoint' RENOVATE_GITHUB_TOKEN_WARN: 'false' RENOVATE_ONBOARDING: 'false' RENOVATE_PLATFORM: 'forgejo' RENOVATE_PR_COMMITS_PER_RUN_LIMIT: 3 RENOVATE_REPOSITORIES: '["${{ github.repository }}"]' RENOVATE_REQUIRE_CONFIG: 'required' RENOVATE_TOKEN: ${{ secrets.RENOVATE_TOKEN }}