scatter-proxy 0.1.0

Async request scheduler for unreliable SOCKS5 proxies — multi-path race for maximum throughput
Documentation
name: Auto Release

on:
  pull_request:
    types: [closed]
    branches: [main]

permissions:
  contents: write

jobs:
  tag-release:
    if: github.event.pull_request.merged == true
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Determine version bump
        id: bump
        uses: actions/github-script@v7
        with:
          script: |
            const labels = context.payload.pull_request.labels.map(l => l.name);
            let bump = null;
            if (labels.includes('major')) bump = 'major';
            else if (labels.includes('minor')) bump = 'minor';
            else if (labels.includes('patch')) bump = 'patch';
            else {
              core.info('No version label found, skipping release.');
              return;
            }
            core.setOutput('bump', bump);

      - name: Get current version
        if: steps.bump.outputs.bump
        id: version
        run: |
          CURRENT=$(grep '^version' Cargo.toml | head -1 | sed 's/.*"\(.*\)"/\1/')
          echo "current=$CURRENT" >> $GITHUB_OUTPUT

      - name: Compute next version
        if: steps.bump.outputs.bump
        id: next
        uses: actions/github-script@v7
        with:
          script: |
            const current = '${{ steps.version.outputs.current }}';
            const bump = '${{ steps.bump.outputs.bump }}';
            const [major, minor, patch] = current.split('.').map(Number);
            let next;
            if (bump === 'major') next = `${major + 1}.0.0`;
            else if (bump === 'minor') next = `${major}.${minor + 1}.0`;
            else next = `${major}.${minor}.${patch + 1}`;
            core.setOutput('version', next);
            core.info(`Bumping ${current} → ${next} (${bump})`);

      - name: Create tag
        if: steps.bump.outputs.bump
        run: |
          git config user.name "github-actions[bot]"
          git config user.email "github-actions[bot]@users.noreply.github.com"
          git tag -a "v${{ steps.next.outputs.version }}" -m "Release v${{ steps.next.outputs.version }}"
          git push origin "v${{ steps.next.outputs.version }}"