Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
130 commits
Select commit Hold shift + click to select a range
41caf92
docs: add MIT license
v-Kaefer Aug 6, 2026
c1e35e2
feat: add repository setup Makefile
v-Kaefer Aug 6, 2026
55c4938
refactor: add project_setup configuration
v-Kaefer Aug 6, 2026
9eed0c3
refactor: introduce project_setup package
v-Kaefer Aug 6, 2026
fc71ef3
refactor: add project_setup module entrypoint
v-Kaefer Aug 6, 2026
ddfe124
refactor: move auto labeling into project_setup
v-Kaefer Aug 6, 2026
e247af1
refactor: add reusable label synchronization
v-Kaefer Aug 6, 2026
9fe7edf
refactor: add reusable milestone synchronization
v-Kaefer Aug 6, 2026
e7e6ad4
feat: centralize project setup execution
v-Kaefer Aug 6, 2026
434f046
feat: add project setup GitHub client
v-Kaefer Aug 6, 2026
a9a6f1b
feat: add automatic repository discovery
v-Kaefer Aug 6, 2026
8358d21
feat: add self-contained repository installer
v-Kaefer Aug 6, 2026
b3ad22f
refactor: make issue generation API based
v-Kaefer Aug 6, 2026
47e8629
refactor: move issue milestone sync into project_setup
v-Kaefer Aug 6, 2026
090197b
feat: add generic pull request validation
v-Kaefer Aug 6, 2026
59c8d40
refactor: add generic Project v2 setup
v-Kaefer Aug 6, 2026
a70a263
feat: add project_setup CLI and discovery
v-Kaefer Aug 6, 2026
16c3abc
feat: add optional Godot workflow profile
v-Kaefer Aug 6, 2026
95424be
refactor: run auto labels through project_setup
v-Kaefer Aug 6, 2026
be773fe
refactor: validate PRs with project_setup
v-Kaefer Aug 6, 2026
baa087e
refactor: add project setup workflow
v-Kaefer Aug 6, 2026
1498a0b
ci: validate project setup repository
v-Kaefer Aug 6, 2026
48f5b29
refactor: align generic labels with Project v2 statuses
v-Kaefer Aug 6, 2026
6e8d10a
refactor: make milestone template generic
v-Kaefer Aug 6, 2026
5a0d9d9
refactor: make Project v2 definition generic
v-Kaefer Aug 6, 2026
e7666a8
refactor: replace sample backlog with safe generic example
v-Kaefer Aug 6, 2026
f151510
refactor: rename package to project_setup
v-Kaefer Aug 6, 2026
ff59414
chore: ignore generated and local artifacts
v-Kaefer Aug 6, 2026
1415640
feat: add cross-platform repository quality check
v-Kaefer Aug 6, 2026
6a5d9c4
feat: add pull request validation entrypoint
v-Kaefer Aug 6, 2026
2d4d0e1
test: add project_setup coverage
v-Kaefer Aug 6, 2026
e9f769b
docs: document GitHub Project Setup as a reusable tool
v-Kaefer Aug 6, 2026
afe4fe4
chore: align code ownership with project_setup
v-Kaefer Aug 6, 2026
df55b62
docs: align pull request template with project_setup validation
v-Kaefer Aug 6, 2026
644d59f
docs: generalize branching policy
v-Kaefer Aug 6, 2026
a28140b
docs: generalize branching policy in Portuguese
v-Kaefer Aug 6, 2026
a12eada
docs: add project setup runbook
v-Kaefer Aug 6, 2026
f077778
docs: describe project_setup architecture
v-Kaefer Aug 6, 2026
cd87cb2
docs: add reusable project setup workflow template
v-Kaefer Aug 6, 2026
6e0fa3d
docs: align documentation guide with project_setup
v-Kaefer Aug 6, 2026
06832d9
refactor: remove legacy package namespace
v-Kaefer Aug 6, 2026
f1376df
refactor: remove legacy module entrypoint
v-Kaefer Aug 6, 2026
e18e1a1
refactor: remove legacy auto-label module
v-Kaefer Aug 6, 2026
dd42464
refactor: remove legacy bootstrap runner
v-Kaefer Aug 6, 2026
54e5025
refactor: remove legacy CLI module
v-Kaefer Aug 6, 2026
837a7a4
refactor: remove legacy discovery module
v-Kaefer Aug 6, 2026
f74fc1c
refactor: remove legacy GitHub client
v-Kaefer Aug 6, 2026
1c9b92b
refactor: remove legacy issue milestone module
v-Kaefer Aug 6, 2026
ecced14
refactor: remove legacy issue generation module
v-Kaefer Aug 6, 2026
c0cd32e
refactor: remove legacy label module
v-Kaefer Aug 6, 2026
43bbeb6
refactor: remove legacy milestone module
v-Kaefer Aug 6, 2026
029a496
refactor: remove legacy Project v2 module
v-Kaefer Aug 6, 2026
2b24214
refactor: remove legacy configuration name
v-Kaefer Aug 6, 2026
365a1c4
refactor: remove legacy setup workflow
v-Kaefer Aug 6, 2026
55db29b
refactor: consolidate branch validation into PR metadata
v-Kaefer Aug 6, 2026
b5263d2
ci: replace duplicate tests workflow with repository quality
v-Kaefer Aug 6, 2026
e91838a
test: remove legacy package tests
v-Kaefer Aug 6, 2026
2a47664
docs: remove legacy shared tool guide
v-Kaefer Aug 6, 2026
e3d6b6e
docs: remove legacy setup runbook
v-Kaefer Aug 6, 2026
76c1236
docs: remove legacy workflow template
v-Kaefer Aug 6, 2026
9154abb
ci: run repository quality when PR becomes ready
v-Kaefer Aug 6, 2026
1eecd9a
docs: align Project board policy with generic configuration
v-Kaefer Aug 6, 2026
d3f3d1b
docs: align Project board policy in Portuguese
v-Kaefer Aug 6, 2026
d71c7ff
refactor: allow explicit hotfix sources for main
v-Kaefer Aug 6, 2026
897c86a
fix: validate only committed artifacts
v-Kaefer Aug 6, 2026
2faf0db
fix: make local checks actionable
v-Kaefer Aug 6, 2026
d934b16
feat: add local environment template
v-Kaefer Aug 6, 2026
45e24d0
feat: load local env and require project token
v-Kaefer Aug 6, 2026
271f077
feat: diagnose env and project credentials
v-Kaefer Aug 6, 2026
0497b0e
feat: install local setup entrypoints
v-Kaefer Aug 6, 2026
42b7e32
fix: separate repository and project authentication
v-Kaefer Aug 6, 2026
5a5863f
refactor: use standard actions token context
v-Kaefer Aug 6, 2026
a1c9561
fix: harden pull request metadata validation
v-Kaefer Aug 6, 2026
a35a458
chore: update repository quality actions
v-Kaefer Aug 6, 2026
ce1d0f5
docs: align workflow token example
v-Kaefer Aug 6, 2026
1e6e94c
chore: update optional workflow actions
v-Kaefer Aug 6, 2026
b7ed06c
docs: publish bilingual setup guide
v-Kaefer Aug 6, 2026
e80cc42
test: cover env and project authentication
v-Kaefer Aug 6, 2026
42a64ca
docs: clarify local and project authentication
v-Kaefer Aug 6, 2026
22970bc
docs: document explicit project token boundary
v-Kaefer Aug 6, 2026
f3e3d5e
chore: bump project setup patch version
v-Kaefer Aug 6, 2026
7132de3
chore: bump package patch version
v-Kaefer Aug 6, 2026
1cd7983
chore: bump setup manifest version
v-Kaefer Aug 6, 2026
656bec8
fix: expose credentials to workflow doctor
v-Kaefer Aug 6, 2026
53b8f24
feat: support explicit live module execution
v-Kaefer Aug 6, 2026
42a72c0
docs: keep env template to consumed values
v-Kaefer Aug 6, 2026
324efcf
docs: align bilingual guide with manual execution
v-Kaefer Aug 6, 2026
0159abc
docs: mark live module execution explicitly
v-Kaefer Aug 6, 2026
354bb43
docs: correct module live examples
v-Kaefer Aug 6, 2026
ee361bf
docs: retain bilingual setup guide
v-Kaefer Aug 6, 2026
18242b8
docs: finalize bilingual setup guide
v-Kaefer Aug 6, 2026
c82bac0
docs: keep setup documentation synchronized
v-Kaefer Aug 6, 2026
610bfc1
docs: preserve final bilingual setup guide
v-Kaefer Aug 6, 2026
dbfa842
docs: no-op synchronization marker
v-Kaefer Aug 6, 2026
abeb904
docs: stable bilingual documentation
v-Kaefer Aug 6, 2026
489f21b
docs: preserve reviewed setup copy
v-Kaefer Aug 6, 2026
f527730
docs: lock bilingual setup text
v-Kaefer Aug 6, 2026
e0fbba8
docs: preserve stable README
v-Kaefer Aug 6, 2026
398fb55
docs: finalize bilingual README
v-Kaefer Aug 6, 2026
946d58d
docs: retain current README content
v-Kaefer Aug 6, 2026
2c1c552
docs: preserve final text
v-Kaefer Aug 6, 2026
959e9c9
docs: preserve README after review
v-Kaefer Aug 6, 2026
f3069f7
fix: validate script references without self matches
v-Kaefer Aug 6, 2026
2bc4a98
test: lock validation script entry points
v-Kaefer Aug 6, 2026
21b5ba6
test: require every validation script contract
v-Kaefer Aug 6, 2026
bd65d8a
docs: record validation script contracts
v-Kaefer Aug 6, 2026
e21a2f6
docs: documentar contratos dos scripts
v-Kaefer Aug 6, 2026
827add8
Create TESTE_REAL_RELATORIO.md
v-Kaefer Aug 6, 2026
0a5d0a6
address project setup review feedback
v-Kaefer Aug 6, 2026
d2ac517
address project setup review feedback
v-Kaefer Aug 6, 2026
5aaf0d5
address project setup review feedback
v-Kaefer Aug 6, 2026
61ebcc4
address project setup review feedback
v-Kaefer Aug 6, 2026
61916d2
address project setup review feedback
v-Kaefer Aug 6, 2026
8c7d37a
address project setup review feedback
v-Kaefer Aug 6, 2026
2819508
harden GitHub authentication and requests
v-Kaefer Aug 6, 2026
1a18d4f
improve discovery safety and portability
v-Kaefer Aug 6, 2026
ffae7d5
standardize safe execution modes and diagnostics
v-Kaefer Aug 6, 2026
de6f0c5
make setup portable and dry-run safe
v-Kaefer Aug 6, 2026
13515dc
make auto label execution explicit
v-Kaefer Aug 6, 2026
5f65e96
cover all validation script types
v-Kaefer Aug 6, 2026
19a657b
test safe execution and Windows diagnostics
v-Kaefer Aug 6, 2026
b5f93cd
standardize workflow execution mode
v-Kaefer Aug 6, 2026
adea81e
synchronize documented workflow template
v-Kaefer Aug 6, 2026
e8a821f
remove framework-specific Godot profile
v-Kaefer Aug 6, 2026
541b8ee
align documentation sources and execution modes
v-Kaefer Aug 6, 2026
42e2b3a
document Windows and safe execution flow
v-Kaefer Aug 6, 2026
59f154d
document Windows and safe project setup usage
v-Kaefer Aug 6, 2026
b59886b
remove framework profile and document safe execution
v-Kaefer Aug 6, 2026
92fb095
clarify real test findings and resolved items
v-Kaefer Aug 6, 2026
07151a2
test GitHub request safety
v-Kaefer Aug 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Copy this file to .env before running local live operations.
# Never commit .env or paste tokens into issues, logs, or pull requests.

# Target repository in owner/repository format.
GITHUB_REPOSITORY=owner/repository

# Required for GitHub Projects v2 creation and synchronization.
# Create a personal access token (classic) with `repo` and `project` scopes.
# Leave empty when you only use dry-run or repository-scoped GitHub Actions.
PROJECT_SETUP_PAT=

# Optional path to the local setup configuration.
PROJECT_SETUP_CONFIG=project_setup.json
7 changes: 5 additions & 2 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# Optional fallback ownership for governance files
# Fallback ownership for project setup and repository automation files
/.github/ @v-Kaefer
/project_setup/ @v-Kaefer
/config/ @v-Kaefer
/docs/repo/ @v-Kaefer
/scripts/github/ @v-Kaefer
/scripts/validation/ @v-Kaefer
/Makefile @v-Kaefer
/pyproject.toml @v-Kaefer
18 changes: 9 additions & 9 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
## Linked Issue
- Closes #<issue-number> <!-- use N/A if there is no linked issue: Closes #N/A -->
- Closes #<issue-number>

## Milestone
- MS0
- <milestone>

## Summary
-
- <what changed and why>

## How to test
- Test type: automated | smoke | manual
- Steps: describe the commands, manual flow, or verification evidence
- Steps: <commands or manual verification flow>

## Evidence
- [ ] Screenshot/GIF attached (when applicable)
- [ ] Log/output attached (when applicable)
- [ ] Manual checklist executed (when applicable)
- [ ] Screenshot/GIF attached when applicable
- [ ] Log/output attached when applicable
- [ ] Manual checklist executed when applicable

## Known risks
-
- <known limitations or explicitly state None>

## DoD checklist
- [ ] Scope implemented as defined
- [ ] Tests executed and documented
- [ ] Evidence attached
- [ ] Evidence attached when applicable
- [ ] No known critical breakage introduced
29 changes: 15 additions & 14 deletions .github/workflows/auto-label.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,32 +3,33 @@ name: Auto label
on:
issues:
types: [opened, edited, reopened]
pull_request:
pull_request_target:
types: [opened, edited, reopened, synchronize]

permissions:
contents: read
issues: write
pull-requests: read

concurrency:
group: auto-label-${{ github.event.issue.number || github.event.pull_request.number || github.run_id }}
cancel-in-progress: true

jobs:
auto-label:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Python
uses: actions/setup-python@v5
- name: Checkout trusted repository automation
uses: actions/checkout@v6
with:
python-version: '3.11'
ref: ${{ github.event.pull_request.base.sha || github.sha }}
persist-credentials: false

- name: Install governance tool
run: pip install -e . --quiet
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.11"

- name: Apply inferred labels
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_REPOSITORY: ${{ github.repository }}
GITHUB_EVENT_PATH: ${{ github.event_path }}
run: python -m governance_bootstrap auto-label apply
GITHUB_TOKEN: ${{ github.token }}
run: python -m project_setup auto-label apply --live
22 changes: 0 additions & 22 deletions .github/workflows/branch-naming.yml

This file was deleted.

99 changes: 0 additions & 99 deletions .github/workflows/governance-bootstrap.yml

This file was deleted.

17 changes: 13 additions & 4 deletions .github/workflows/main-source-branch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,26 +8,35 @@ on:
permissions:
contents: read

concurrency:
group: main-source-${{ github.event.pull_request.number }}
cancel-in-progress: true

jobs:
validate-main-source:
name: validate-main-source
runs-on: ubuntu-latest
steps:
- name: Ensure PR to main comes from develop
- name: Ensure PR to main comes from develop or hotfix
shell: bash
env:
BASE_REF: ${{ github.event.pull_request.base.ref }}
HEAD_REF: ${{ github.event.pull_request.head.ref }}
HEAD_REPO: ${{ github.event.pull_request.head.repo.full_name }}
EXPECTED_REPO: ${{ github.repository }}
run: |
set -euo pipefail
echo "Base: $BASE_REF"
echo "Head: $HEAD_REPO:$HEAD_REF"
if [[ "$BASE_REF" != "main" ]]; then
echo "This workflow only validates PRs targeting main."
echo "This workflow only validates PRs targeting main." >&2
exit 1
fi
if [[ "$HEAD_REPO" != "$EXPECTED_REPO" ]]; then
echo "PRs targeting main must come from the same repository." >&2
exit 1
fi
if [[ "$HEAD_REPO" != "$EXPECTED_REPO" || "$HEAD_REF" != "develop" ]]; then
echo "PRs targeting main must come from $EXPECTED_REPO:develop." >&2
if [[ "$HEAD_REF" != "develop" && ! "$HEAD_REF" =~ ^hotfix/[a-z0-9._/-]+$ ]]; then
echo "PRs targeting main must come from develop or hotfix/*." >&2
exit 1
fi
50 changes: 32 additions & 18 deletions .github/workflows/pr-metadata.yml
Original file line number Diff line number Diff line change
@@ -1,32 +1,46 @@
name: PR metadata validation

on:
pull_request:
types: [opened, synchronize, reopened, edited]
pull_request_target:
types: [opened, synchronize, reopened, edited, ready_for_review]

permissions:
contents: read
issues: write

concurrency:
group: pr-metadata-${{ github.event.pull_request.number }}
cancel-in-progress: true

jobs:
validate-pr-body:
# Draft PRs are works-in-progress; skip validation until they are marked ready.
validate-pr:
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest
steps:
- name: Ensure required PR sections and issue link
- name: Checkout trusted base commit
uses: actions/checkout@v6
with:
ref: ${{ github.event.pull_request.base.sha }}
persist-credentials: false

- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.11"

- name: Validate branch name and pull request metadata
env:
PR_BODY: ${{ github.event.pull_request.body }}
HEAD_REF: ${{ github.event.pull_request.head.ref }}
BASE_REF: ${{ github.event.pull_request.base.ref }}
REPOSITORY: ${{ github.repository }}
PR_NUMBER: ${{ github.event.pull_request.number }}
GITHUB_TOKEN: ${{ github.token }}
run: |
required=("Linked Issue" "Summary" "How to test")
for section in "${required[@]}"; do
if ! echo "$PR_BODY" | grep -qF "## $section"; then
echo "Missing required PR section: ## $section" >&2
exit 1
fi
done
# Accept a real issue number (Closes/Fixes/Resolves #NNN) or an explicit N/A
# when there is genuinely no linked issue.
if ! echo "$PR_BODY" | grep -qE 'Closes #[0-9]+|Fixes #[0-9]+|Resolves #[0-9]+|Closes #[Nn][/\\]?[Aa]|#N/A|#n/a'; then
echo "PR body must reference a linked issue (e.g. Closes #123) or mark it as not applicable (Closes #N/A)" >&2
exit 1
fi
set -euo pipefail
python scripts/validation/validate_pr_body.py \
--branch "$HEAD_REF" \
--base-branch "$BASE_REF" \
--repo "$REPOSITORY" \
--pr-number "$PR_NUMBER" \
--comment
Loading