Skip to content

Commit 483f144

Browse files
committed
feat: add template synchronization configuration
1 parent d23449b commit 483f144

File tree

1 file changed

+149
-0
lines changed

1 file changed

+149
-0
lines changed

.github/template-sync-config.yml

Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
# Template Synchronization Configuration
2+
# Defines which files should be synced from template to derived repositories
3+
4+
template_version: "2.0.0"
5+
6+
# Files to sync (preserving project customizations)
7+
sync_files:
8+
# Configuration files - merge intelligently
9+
- path: "tsconfig.json"
10+
action: "merge"
11+
preserve_fields: ["name", "description", "version"]
12+
13+
- path: "biome.json"
14+
action: "replace"
15+
16+
- path: "vitest.config.ts"
17+
action: "replace"
18+
19+
- path: ".editorconfig"
20+
action: "replace"
21+
22+
- path: ".gitignore"
23+
action: "merge"
24+
25+
- path: ".yarnrc.yml"
26+
action: "replace"
27+
28+
# Shared utilities and patterns
29+
- path: "shared/utils/fetch.ts"
30+
action: "sync_shared_utils"
31+
target: "src/utils/fetch.ts"
32+
33+
- path: "shared/patterns/mcp-server-base.ts"
34+
action: "copy_if_missing"
35+
target: "src/utils/mcp-server-base.ts"
36+
37+
# Shared dependencies
38+
- path: "shared/dependencies/core.json"
39+
action: "sync_dependencies"
40+
category: "core"
41+
42+
- path: "shared/dependencies/optional.json"
43+
action: "detect_and_suggest"
44+
category: "optional"
45+
46+
# Package.json - merge selectively
47+
- path: "package.json"
48+
action: "merge"
49+
preserve_fields:
50+
- "name"
51+
- "version"
52+
- "description"
53+
- "author"
54+
- "repository"
55+
- "dependencies"
56+
- "main"
57+
- "bin"
58+
sync_fields:
59+
- "devDependencies"
60+
- "scripts.test"
61+
- "scripts.test:watch"
62+
- "scripts.test:ci"
63+
- "scripts.lint"
64+
- "scripts.lint:fix"
65+
- "scripts.format"
66+
- "scripts.build"
67+
- "scripts.prepare"
68+
69+
# GitHub workflows - replace with project-specific substitutions
70+
- path: ".github/workflows/ci.yml"
71+
action: "replace"
72+
73+
- path: ".github/workflows/semantic-release.yml"
74+
action: "template"
75+
substitutions:
76+
- pattern: "mcp-template"
77+
replacement: "{{project_name}}"
78+
- pattern: "@mearman/mcp-template"
79+
replacement: "@mearman/{{project_name}}"
80+
81+
# Husky and commit hooks
82+
- path: ".husky/"
83+
action: "replace"
84+
85+
- path: "commitlint.config.js"
86+
action: "replace"
87+
88+
# Template source files (for new projects)
89+
- path: "src/tools/example.ts"
90+
action: "copy_if_missing"
91+
92+
- path: "src/tools/example.test.ts"
93+
action: "copy_if_missing"
94+
95+
- path: "src/utils/validation.ts"
96+
action: "merge_utils"
97+
98+
- path: "src/utils/validation.test.ts"
99+
action: "merge_utils"
100+
101+
# Files to never sync (project-specific)
102+
ignore_files:
103+
- "README.md"
104+
- "CHANGELOG.md"
105+
- "LICENSE"
106+
- "package-lock.json"
107+
- "yarn.lock"
108+
- "src/index.ts"
109+
- "src/index.test.ts"
110+
- "src/cli.ts"
111+
- "src/cli.test.ts"
112+
- "src/tools/*" # Except example files
113+
- ".template-sync-config.yml"
114+
115+
# Repository discovery settings
116+
repo_discovery:
117+
organization: "Mearman"
118+
topic: "mcp-server"
119+
template_marker: ".template-marker"
120+
121+
# Sync behavior
122+
sync_behavior:
123+
create_pull_request: true
124+
auto_merge: false
125+
pr_title: "chore: sync template updates (v{{template_version}})"
126+
pr_body: |
127+
## Template Sync
128+
129+
This PR synchronizes updates from the mcp-template repository.
130+
131+
**Template Version:** {{template_version}}
132+
**Files Updated:** {{updated_files}}
133+
134+
### Changes
135+
{{change_summary}}
136+
137+
### Review Notes
138+
- Configuration files have been updated
139+
- Project-specific customizations are preserved
140+
- Please review changes before merging
141+
142+
---
143+
*This PR was automatically created by the template sync workflow*
144+
145+
# Conflict resolution
146+
conflict_resolution:
147+
strategy: "create_pr_with_conflicts"
148+
notify_on_conflicts: true
149+
conflict_markers: true

0 commit comments

Comments
 (0)