feat: enhance CTF channel creation with permissions and reaction hand… #16
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [ main, master ] | |
| pull_request: | |
| branches: [ main, master ] | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: ["3.13"] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install the latest version of uv | |
| uses: astral-sh/setup-uv@v6 | |
| with: | |
| version: "latest" | |
| enable-cache: true | |
| cache-dependency-glob: "uv.lock" | |
| - name: Set up Python ${{ matrix.python-version }} | |
| run: uv python install ${{ matrix.python-version }} | |
| - name: Install dependencies | |
| run: uv sync | |
| - name: Lint with ruff (if available) | |
| run: | | |
| if uv run --quiet ruff --version 2>/dev/null; then | |
| uv run ruff check . | |
| else | |
| echo "Ruff not installed, skipping linting" | |
| fi | |
| continue-on-error: true | |
| - name: Check code formatting with ruff (if available) | |
| run: | | |
| if uv run --quiet ruff --version 2>/dev/null; then | |
| uv run ruff format --check | |
| else | |
| echo "Ruff not installed, skipping format check" | |
| fi | |
| continue-on-error: true | |
| security-check: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install the latest version of uv | |
| uses: astral-sh/setup-uv@v6 | |
| with: | |
| version: "latest" | |
| - name: Set up Python | |
| run: uv python install 3.13 | |
| - name: Install dependencies | |
| run: uv sync | |
| - name: Security check with bandit (if available) | |
| run: | | |
| if uv run --quiet bandit --version 2>/dev/null; then | |
| uv run bandit -r . -f json || true | |
| else | |
| echo "Bandit not installed, skipping security check" | |
| fi | |
| continue-on-error: true |