style.yaml fails due to branch protection

After creating the below workflow file using usethis::use_github_action("style"), my build fails due to branch protection. Not sure what to do to circumvent this. From my limited understanding, I'm gathering from [this GHA Community thread]( Allowing github-actions[bot] to push to protected branch · community · Discussion #25305) that it's not possible?

[Build error]( Remove check_creds() · asadow/megamation@add0a40 (github.com)):

Run if FILES_TO_COMMIT=($(git diff-index --name-only add0a4077317d6a10b585b9be1f596aa5fef3d4f \
[master b7ec5bf] Style code (GHA)
 8 files changed, 217 insertions(+), 180 deletions(-)
Already up to date.
remote: error: GH006: Protected branch update failed for refs/heads/master.        
remote: error: Changes must be made through a pull request.        
To https://github.com/asadow/megamation
 ! [remote rejected] master -> master (protected branch hook declined)
error: failed to push some refs to 'https://github.com/asadow/megamation'
Error: Process completed with exit code 1.

style.yaml:

# Workflow derived from https://github.com/r-lib/actions/tree/v2/examples
# Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help
on:
  push:
    paths: ["**.[rR]", "**.[qrR]md", "**.[rR]markdown", "**.[rR]nw", "**.[rR]profile"]

name: Style

jobs:
  style:
    runs-on: ubuntu-latest
    permissions:
      contents: write
    env:
      GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
    steps:
      - name: Checkout repo
        uses: actions/checkout@v3
        with:
          fetch-depth: 0

      - name: Setup R
        uses: r-lib/actions/setup-r@v2
        with:
          use-public-rspm: true

      - name: Install dependencies
        uses: r-lib/actions/setup-r-dependencies@v2
        with:
          extra-packages: any::styler, any::roxygen2
          needs: styler

      - name: Enable styler cache
        run: styler::cache_activate()
        shell: Rscript {0}

      - name: Determine cache location
        id: styler-location
        run: |
          cat(
            "location=",
            styler::cache_info(format = "tabular")$location,
            "\n",
            file = Sys.getenv("GITHUB_OUTPUT"),
            append = TRUE,
            sep = ""
          )
        shell: Rscript {0}

      - name: Cache styler
        uses: actions/cache@v3
        with:
          path: ${{ steps.styler-location.outputs.location }}
          key: ${{ runner.os }}-styler-${{ github.sha }}
          restore-keys: |
            ${{ runner.os }}-styler-
            ${{ runner.os }}-

      - name: Style
        run: styler::style_pkg()
        shell: Rscript {0}

      - name: Commit and push changes
        run: |
          if FILES_TO_COMMIT=($(git diff-index --name-only ${{ github.sha }} \
              | egrep --ignore-case '\.(R|[qR]md|Rmarkdown|Rnw|Rprofile)$'))
          then
            git config --local user.name "$GITHUB_ACTOR"
            git config --local user.email "$GITHUB_ACTOR@users.noreply.github.com"
            git commit ${FILES_TO_COMMIT[*]} -m "Style code (GHA)"
            git pull --ff-only
            git push origin
          else
            echo "No changes to commit."
          fi

are you asking how to turn off the branch protection ?

1 Like

No, as without protection I assume anyone can then push to the main branch. But maybe I misunderstand how that all works.

According to info at About protected branches - GitHub Docs

You can have a bypass list

It seems to me as if that's specific to organizations under GitHub Enterprise.

But I do have access to rulesets. Am I missing something?

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.

If you have a query related to it or one of the replies, start a new topic and refer back with a link.