name: Linter on: [push, pull_request, pull_request_target] jobs: eslint: name: ESLint if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' }} runs-on: ubuntu-latest timeout-minutes: 5 steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v2 with: version: 8 - uses: actions/setup-node@v3 with: node-version: lts/* cache: 'pnpm' - run: pnpm i - name: Lint run: pnpm run lint eslint-warning: name: Lint if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' }} runs-on: ubuntu-latest timeout-minutes: 5 permissions: contents: read security-events: write steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v2 with: version: 8 - uses: actions/setup-node@v3 with: node-version: lts/* cache: 'pnpm' - run: pnpm i - name: Lint run: pnpm run lint --format @microsoft/eslint-formatter-sarif --output-file eslint-results.sarif continue-on-error: true - name: Upload analysis results to GitHub uses: github/codeql-action/upload-sarif@v2 with: sarif_file: eslint-results.sarif wait-for-processing: true titleLint: if: ${{ github.event_name == 'pull_request_target' && github.repository == 'DIYgod/RSSHub' }} name: Validate PR title runs-on: ubuntu-latest timeout-minutes: 5 steps: - uses: amannn/action-semantic-pull-request@v5 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} ignoreLabels: | dependencies wip: true labeler: name: Pull Request Labeler if: ${{ github.event_name == 'pull_request_target' && github.actor != 'dependabot[bot]' }} permissions: contents: read pull-requests: write runs-on: ubuntu-latest timeout-minutes: 5 steps: - uses: actions/labeler@v4 with: repo-token: ${{ secrets.GITHUB_TOKEN }} chatgpt-review: name: ChatGPT PR reviewer if: ${{ github.event_name == 'pull_request_target' && false }} permissions: contents: read pull-requests: write runs-on: ubuntu-latest timeout-minutes: 5 steps: - uses: fluxninja/openai-pr-reviewer@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} with: openai_base_url: ${{ secrets.OPENAI_API_ENDPOINT }} openai_model_temperature: '1.0' disable_release_notes: true