name: Chango
on:
  pull_request:
    types:
      - opened
      - reopened
      - synchronize

permissions: {}

jobs:
  create-chango-fragment:
    permissions:
      # Give the default GITHUB_TOKEN write permission to commit and push the
      # added or changed files to the repository.
      contents: write
    name: Create chango Fragment
    runs-on: ubuntu-latest
    outputs:
      IS_RELEASE_PR: ${{ steps.check_title.outputs.IS_RELEASE_PR }}

    steps:
      - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
        with:
          # needed for commit and push step at the end
          persist-credentials: true
      - name: Check PR Title
        id: check_title
        run: | # zizmor: ignore[template-injection]
          if [[ "$(echo "${{ github.event.pull_request.title }}" | tr '[:upper:]' '[:lower:]')" =~ ^bump\ version\ to\ .* ]]; then
            echo "COMMIT_AND_PUSH=false" >> $GITHUB_OUTPUT
            echo "IS_RELEASE_PR=true" >> $GITHUB_OUTPUT
          else
            echo "COMMIT_AND_PUSH=true" >> $GITHUB_OUTPUT
            echo "IS_RELEASE_PR=false" >> $GITHUB_OUTPUT
          fi

      # Create the new fragment
      - uses: Bibo-Joshi/chango@212fc662da1b1026f335e110270d75690df05758 # 0.5.0
        with:
          github-token: ${{ secrets.CHANGO_PAT }}
          query-issue-types: true
          commit-and-push: ${{ steps.check_title.outputs.COMMIT_AND_PUSH }}

      # Run `chango release` if applicable - needs some additional setup.
      - name: Set up Python
        if: steps.check_title.outputs.IS_RELEASE_PR == 'true'
        uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
        with:
          python-version: "3.x"

      - name: Do Release
        if: steps.check_title.outputs.IS_RELEASE_PR == 'true'
        run: |
          cd ./target-repo
          git add changes/unreleased/*
          pip install . --group docs
          VERSION_TAG=$(python -c "from telegram import __version__; print(f'{__version__}')")
          chango release --uid $VERSION_TAG

      - name: Commit & Push
        if: steps.check_title.outputs.IS_RELEASE_PR == 'true'
        uses: stefanzweifel/git-auto-commit-action@778341af668090896ca464160c2def5d1d1a3eb0 # v6.0.1
        with:
          commit_message: "Do chango Release"
          repository: ./target-repo
