diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 0000000..5e4e049 --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,17 @@ +name: CI + +# Test CI for the review-policy test repo. Calls the org reusable Python-app CI +# so this repo emits the `ci / ci` status check, the same way a real repo does — +# letting us validate how the required-review gate coexists with another required +# check under branch protection. `collect-only: false` skips the pytest job (this +# repo has no requirements.txt); the lint job (ruff + conventions) is enough. + +on: + pull_request: + branches: [main, dev] + +jobs: + ci: + uses: Sea-Haven-Industries/.github/.github/workflows/ci-python-app.yaml@main + with: + collect-only: false diff --git a/.github/workflows/required-review.yml b/.github/workflows/required-review.yml index b8387a2..dc50752 100644 --- a/.github/workflows/required-review.yml +++ b/.github/workflows/required-review.yml @@ -21,7 +21,9 @@ jobs: required-review: uses: Sea-Haven-Industries/.github/.github/workflows/callable-required-review.yaml@feat/required-review-workflow with: - all-of-teams: "luby,internal-dev" + # Test team (just Adam) so the real luby / internal-dev teams are not + # involved while validating. Switch to "luby,internal-dev" for production. + all-of-teams: "review-test-approvers" secrets: app_id: ${{ secrets.REVIEW_POLICY_APP_ID }} app_private_key: ${{ secrets.REVIEW_POLICY_APP_PRIVATE_KEY }} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..731112f --- /dev/null +++ b/.gitignore @@ -0,0 +1,12 @@ +# Python +__pycache__/ +*.py[cod] +.venv/ +venv/ + +# Secrets / local config +.env +.env.* + +# OS / editor +.DS_Store diff --git a/app.py b/app.py new file mode 100644 index 0000000..e1ad34a --- /dev/null +++ b/app.py @@ -0,0 +1,20 @@ +"""Boilerplate module for the review-policy test repo. + +This repo exists only to validate the multi-team required-review workflow and the +branch-protection rulesets before they are applied to the real shoc repos. It is +disposable and will be deleted once the gate is confirmed working. +""" + + +def greet(name: str) -> str: + """Return a friendly greeting for the given name.""" + return f"Hello, {name}!" + + +def add(a: int, b: int) -> int: + """Return the sum of two integers.""" + return a + b + + +if __name__ == "__main__": + print(greet("review-policy"))