GitHub 分支规则集 - 如何指定哪些项目需要拉取请求

问题描述 投票:0回答:1

我有一个包含

.github
src
目录和
README.md
文件的存储库。

我希望能够对

.github
文件夹或
README.md
文件中的任何内容进行更改,而无需拉取请求。但是,对于
src
文件夹中的任何更改都应该需要拉取请求。我在分支规则集中找不到允许这样做的设置。

举个例子,处理

.github
文件夹中的操作,并且每次都创建拉取请求是不必要的,而且很烦人。

如果这是 GitHub Action 的一部分,它会有这样的内容:

on:
  workflow_dispatch: 
  pull_request:
    branches:
      - main
      - dev 
    paths:
      - 'src/**'

我如何为规则集做这样的事情?

在其他workds中,如何使规则集应用于存储库的

src
目录而不是整个存储库?

或者我需要采取不同的方法吗?


ruleset settings

path include github-rulesets
1个回答
0
投票

我使用了很多不同的分支:

  • 主控(受保护)
  • 开发
  • 测试
  • 产品
  • 修补程序
  • 错误修复
  • 重构或清理
  • 功能/{分支名称}

我认为只有在将功能推送或合并到主分支时才会触发管道。当我要在开发环境中工作时,我会使用开发分支。我正在使用这个模板

我针对您的问题更新了此模板。

name: CI

# the placeholder `$default-branch` will be automatically replaced with
# the name of the repository's default branch, e.g. main
on:
  push:
    branches: [$default-branch]
  pull_request:
    branches: [$default-branch]

jobs:
  enforce-pr:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v2

      - name: Check for changes in src directory
        id: check_changes
        run: |
          git fetch origin main
          CHANGED_FILES=$(git diff --name-only HEAD origin/main)
          echo "Changed files: $CHANGED_FILES"
          if echo "$CHANGED_FILES" | grep -q '^src/'; then
            echo "::set-output name=changes_in_src::true"
          else
            echo "::set-output name=changes_in_src::false"
          fi

      - name: Fail if changes in src directory
        if: steps.check_changes.outputs.changes_in_src == 'true'
        run: |
          echo "Changes detected in src directory. Please create a pull request."
          exit 1
© www.soinside.com 2019 - 2024. All rights reserved.