diff --git a/.github/workflows/clean.yml b/.github/workflows/clean.yml index 9649364bcf..8fd7518dfa 100644 --- a/.github/workflows/clean.yml +++ b/.github/workflows/clean.yml @@ -4,6 +4,19 @@ on: schedule: - cron: '0 6 * * 0' jobs: + create-branch: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + ref: ${{ github.ref }} + - name: Create Branch + uses: peterjgrainger/action-create-branch@v2.0.1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + branch: 'bot/remove-broken-links' test: runs-on: ubuntu-latest continue-on-error: true @@ -173,6 +186,8 @@ jobs: steps: - name: Checkout uses: actions/checkout@v2 + with: + ref: bot/remove-broken-links - name: Install Dependencies run: npm install - name: Remove Broken Links @@ -182,14 +197,33 @@ jobs: with: name: channels path: channels/${{ matrix.country }}.m3u - pull-request: - needs: test + commit-changes: runs-on: ubuntu-latest + needs: test steps: - name: Checkout uses: actions/checkout@v2 + with: + ref: bot/remove-broken-links - name: Download Artifacts uses: actions/download-artifact@v2 + - name: Commit Changes + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: '[Bot] Update playlists' + commit_user_name: iptv-bot + commit_user_email: 84861620+iptv-bot[bot]@users.noreply.github.com + commit_author: 'iptv-bot[bot] <84861620+iptv-bot[bot]@users.noreply.github.com>' + branch: bot/remove-broken-links + file_pattern: channels/* + pull-request: + runs-on: ubuntu-latest + needs: commit-changes + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + ref: bot/remove-broken-links - name: Generate Token uses: tibdex/github-app-token@v1 id: generate-token @@ -197,18 +231,18 @@ jobs: app_id: ${{ secrets.APP_ID }} private_key: ${{ secrets.APP_PRIVATE_KEY }} - name: Create Pull Request - uses: peter-evans/create-pull-request@v3 + uses: repo-sync/pull-request@v2 with: - title: '[Bot] Remove broken links' - body: | - This pull request is created automatically by `clean` action. + source_branch: 'bot/remove-broken-links' + destination_branch: 'master' + pr_title: '[Bot] Remove broken links' + pr_body: | + This pull request is created by [clean][1] workflow. The script checks each link and removes only those that return a HTTP 404 code (Not Found). Also, the script ignores links with labels `[Geo-blocked]` and `[Not 24/7]` in the title. **IMPORTANT:** Before merging all links should be checked manually to make sure that the response from the server has not changed. Working links should be marked as `[Not 24/7]` so that next time the script will not delete them. - commit-message: '[Bot] Update playlists' - committer: GitHub - branch: bot/remove-broken-links - delete-branch: true - draft: true - token: ${{ steps.generate-token.outputs.token }} + + [1]: https://github.com/iptv-org/iptv/actions/runs/${{ github.run_id }} + pr_draft: true + github_token: ${{ steps.generate-token.outputs.token }}