name: Create Branch File on: create: branches: - 'committee/*' jobs: create-file: runs-on: ubuntu-latest steps: - name: Get branch name id: branch_name run: | branch_name=${{ github.ref }} echo "branch=${branch_name#refs/heads/committee/}" >> $GITHUB_OUTPUT - name: Check out code uses: actions/checkout@v3 with: ref: committee/${{ steps.branch_name.outputs.branch }} - name: Generate Committee File run: | branch_name=${{ github.ref }} branch_name=${branch_name#refs/heads/committee/} sed "s/class Example/class ${branch_name^}/g" src/Committees/example.py > "src/Committees/${branch_name}.py" shell: bash - name: Commit and Push Changes run: | branch_name=${{ github.ref }} branch_name=${branch_name#refs/heads/committee/} git config --global user.email "actions@github.com" git config --global user.name "GitHub Actions" git status git add "src/Committees/${branch_name}.py" git commit -m "Add ${branch_name}.py" git push origin committee/$branch_name shell: bash - name: Create Committee Team id: create_team env: GITHUB_TOKEN: ${{ secrets.ORG_ADMIN }} run: | branch_name=${{ github.ref }} branch_name=${branch_name#refs/heads/committee/} response=$(curl -X POST \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer $GITHUB_TOKEN" \ https://api.github.com/orgs/BX-bot-ecosystem/teams \ -d '{"name":"'$branch_name'","privacy":"closed"}') team_id=$(echo "$response" | jq -r '.id') echo "Team ID: $team_id" echo "team_id=$team_id" >> $GITHUB_OUTPUT - name: Protect Branch env: GITHUB_TOKEN: ${{ secrets.ORG_ADMIN }} run: | branch_name=${{ github.ref }} branch_name=${branch_name#refs/heads/committee/} team_id=${{ steps.create_team.outputs.team_id }} response=$(curl -X PUT \ -H "Authorization: Bearer $GITHUB_TOKEN" \ -d '{"enforce_admins": false, "required_status_checks": null, "required_pull_request_reviews": {"dismissal_restrictions": {"users": [], "teams": ['$team_id']}, "dismiss_stale_reviews": true, "require_code_owner_reviews": true, "required_approving_review_count": 1}, "restrictions": {"users": [], "teams": ['$team_id']}}' \ "https://api.github.com/repos/BX-bot-ecosystem/Telegram-BX-Bot/branches/$branch_name/protection") echo "Branch Protection Response: $response"