code-foundry 0.12.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -91,10 +91,12 @@ for workflow in ci codeql security test draft-pr release-pr release; do
91
91
  fi
92
92
  done
93
93
 
94
- for script in ci.sh codeql-languages.sh profile.sh security.sh doctor.sh bootstrap.sh sync-template.sh init-repo.sh sync-protection.sh sync-codeowners.sh; do
94
+ for script in ci.sh profile.sh doctor.sh bootstrap.sh sync-template.sh init-repo.sh sync-protection.sh sync-codeowners.sh; do
95
95
  [ -x ".github/scripts/$script" ] || error "missing executable script: .github/scripts/$script"
96
96
  done
97
97
 
98
+ printf '%s\n' 'Remote CI, Test, Security, and CodeQL runtimes are loaded by reusable workflow wrappers.'
99
+
98
100
  if [ "$errors" -gt 0 ]; then
99
101
  printf '%s\n' "Repository doctor found $errors error(s)." >&2
100
102
  exit 1
@@ -243,17 +243,11 @@ files=(
243
243
  .github/ISSUE_TEMPLATE/bug_report.yml
244
244
  .github/ISSUE_TEMPLATE/config.yml
245
245
  .github/ISSUE_TEMPLATE/feature_request.yml
246
- .github/actions/setup/action.yml
247
- .github/actions/cache/action.yml
248
- .github/actions/codeql/action.yml
249
246
  .github/scripts/profile.sh
250
247
  .github/scripts/bootstrap.sh
251
248
  .github/scripts/changed-files.sh
252
249
  .github/scripts/ci.sh
253
- .github/scripts/codeql-languages.sh
254
250
  .github/scripts/doctor.sh
255
- .github/scripts/security.sh
256
- .github/scripts/sitecustomize.py
257
251
  .github/scripts/pre-commit.sh
258
252
  .github/scripts/sync-template.sh
259
253
  .github/scripts/init-repo.sh
@@ -15,151 +15,8 @@ permissions:
15
15
  packages: read
16
16
  security-events: write
17
17
 
18
- env:
19
- REPO_FOUNDRY_PROFILE: ${{ vars.REPO_FOUNDRY_PROFILE }}
20
- REPO_FOUNDRY_LANGUAGES: ${{ vars.REPO_FOUNDRY_LANGUAGES }}
21
- REPO_FOUNDRY_FEATURES: ${{ vars.REPO_FOUNDRY_FEATURES }}
22
-
23
- concurrency:
24
- group: ${{ github.workflow }}-${{ github.event.pull_request.head.repo.full_name || github.repository }}-${{ github.event.pull_request.head.ref || github.ref_name }}
25
- cancel-in-progress: true
26
-
27
18
  jobs:
28
- detect:
29
- name: Detect
30
- runs-on: ubuntu-slim
31
- timeout-minutes: 10
32
- outputs:
33
- languages: ${{ steps.languages.outputs.languages }}
34
- code_security: ${{ steps.security.outputs.status }}
35
- actions_available: ${{ steps.languages.outputs.actions_available }}
36
- actions_changed: ${{ steps.languages.outputs.actions_changed }}
37
- actions_build_mode: ${{ steps.languages.outputs.actions_build_mode }}
38
- javascript_available: ${{ steps.languages.outputs.javascript_available }}
39
- javascript_changed: ${{ steps.languages.outputs.javascript_changed }}
40
- javascript_build_mode: ${{ steps.languages.outputs.javascript_build_mode }}
41
- python_available: ${{ steps.languages.outputs.python_available }}
42
- python_changed: ${{ steps.languages.outputs.python_changed }}
43
- python_build_mode: ${{ steps.languages.outputs.python_build_mode }}
44
- rust_available: ${{ steps.languages.outputs.rust_available }}
45
- rust_changed: ${{ steps.languages.outputs.rust_changed }}
46
- rust_build_mode: ${{ steps.languages.outputs.rust_build_mode }}
47
- steps:
48
- - name: Detect Code Security
49
- id: security
50
- env:
51
- GH_TOKEN: ${{ github.token }}
52
- run: |
53
- status="disabled"
54
- if [ "${{ github.event.repository.private }}" != "true" ]; then
55
- status="enabled"
56
- else
57
- status="$(gh api "repos/${GITHUB_REPOSITORY}" --jq '.security_and_analysis.code_security.status // "disabled"' 2>/dev/null || printf 'disabled')"
58
- fi
59
- printf 'status=%s\n' "$status" >> "$GITHUB_OUTPUT"
60
- - name: Checkout
61
- if: ${{ !github.event.repository.private || steps.security.outputs.status == 'enabled' }}
62
- uses: actions/checkout@v7
63
- with:
64
- fetch-depth: 2
65
- # Detection only reads Git trees, paths, and small profile files;
66
- # defer source blob transfer until the analyzer jobs.
67
- filter: blob:none
68
- sparse-checkout: |
69
- .github
70
- .mise.toml
71
- mise.lock
72
- package.json
73
- bun.lock
74
- bun.lockb
75
- pnpm-lock.yaml
76
- yarn.lock
77
- package-lock.json
78
- - id: languages
79
- name: Detect languages
80
- env:
81
- CODEQL_BASE_SHA: ${{ github.event_name == 'pull_request' && github.event.pull_request.base.sha || github.event.before }}
82
- REPO_FOUNDRY_CODE_SECURITY: ${{ steps.security.outputs.status }}
83
- REPO_FOUNDRY_PRIVATE: ${{ github.event.repository.private }}
84
- run: |
85
- if [ "$REPO_FOUNDRY_PRIVATE" = "true" ] && [ "$REPO_FOUNDRY_CODE_SECURITY" != "enabled" ]; then
86
- echo 'languages=[]' >> "$GITHUB_OUTPUT"
87
- else
88
- bash .github/scripts/codeql-languages.sh
89
- fi
90
-
91
- analyze-actions:
92
- name: Analyze (Actions)
93
- needs: detect
94
- if: >-
95
- ( !github.event.repository.private || needs.detect.outputs.code_security == 'enabled' ) &&
96
- needs.detect.outputs.actions_available == 'true' &&
97
- needs.detect.outputs.actions_changed == 'true'
98
- runs-on: ubuntu-latest
99
- timeout-minutes: 30
100
- steps:
101
- - name: Checkout
102
- uses: actions/checkout@v7
103
- - name: Analyze
104
- uses: ./.github/actions/codeql
105
- with:
106
- language: actions
107
- build-mode: ${{ needs.detect.outputs.actions_build_mode }}
108
- category: /language:actions
109
-
110
- analyze-typescript:
111
- name: Analyze (TypeScript)
112
- needs: detect
113
- if: >-
114
- ( !github.event.repository.private || needs.detect.outputs.code_security == 'enabled' ) &&
115
- needs.detect.outputs.javascript_available == 'true' &&
116
- needs.detect.outputs.javascript_changed == 'true'
117
- runs-on: ubuntu-latest
118
- timeout-minutes: 30
119
- steps:
120
- - name: Checkout
121
- uses: actions/checkout@v7
122
- - name: Analyze
123
- uses: ./.github/actions/codeql
124
- with:
125
- language: javascript-typescript
126
- build-mode: ${{ needs.detect.outputs.javascript_build_mode }}
127
- category: /language:javascript-typescript
128
-
129
- analyze-python:
130
- name: Analyze (Python)
131
- needs: detect
132
- if: >-
133
- ( !github.event.repository.private || needs.detect.outputs.code_security == 'enabled' ) &&
134
- needs.detect.outputs.python_available == 'true' &&
135
- needs.detect.outputs.python_changed == 'true'
136
- runs-on: ubuntu-latest
137
- timeout-minutes: 30
138
- steps:
139
- - name: Checkout
140
- uses: actions/checkout@v7
141
- - name: Analyze
142
- uses: ./.github/actions/codeql
143
- with:
144
- language: python
145
- build-mode: ${{ needs.detect.outputs.python_build_mode }}
146
- category: /language:python
147
-
148
- analyze-rust:
149
- name: Analyze (Rust)
150
- needs: detect
151
- if: >-
152
- ( !github.event.repository.private || needs.detect.outputs.code_security == 'enabled' ) &&
153
- needs.detect.outputs.rust_available == 'true' &&
154
- needs.detect.outputs.rust_changed == 'true'
155
- runs-on: ubuntu-latest
156
- timeout-minutes: 30
157
- steps:
158
- - name: Checkout
159
- uses: actions/checkout@v7
160
- - name: Analyze
161
- uses: ./.github/actions/codeql
162
- with:
163
- language: rust
164
- build-mode: ${{ needs.detect.outputs.rust_build_mode }}
165
- category: /language:rust
19
+ codeql:
20
+ name: CodeQL
21
+ uses: 0xPlayerOne/code-foundry/.github/workflows/reusable-codeql.yml@v0.12.0
22
+ secrets: inherit
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.14.0](https://github.com/0xPlayerOne/code-foundry/compare/v0.13.0...v0.14.0) (2026-07-28)
4
+
5
+
6
+ ### Features
7
+
8
+ * **init:** minimize consumer workflow footprint ([4427c1f](https://github.com/0xPlayerOne/code-foundry/commit/4427c1f964c3a0dc6ffe080ea3779ad2b8a1d170))
9
+
10
+ ## [0.13.0](https://github.com/0xPlayerOne/code-foundry/compare/v0.12.0...v0.13.0) (2026-07-28)
11
+
12
+
13
+ ### Features
14
+
15
+ * **codeql:** document centralized CodeQL runtime ([2aa20a9](https://github.com/0xPlayerOne/code-foundry/commit/2aa20a946d0979cb12af87cb2ea2d0b50f279965))
16
+
3
17
  ## [0.12.0](https://github.com/0xPlayerOne/code-foundry/compare/v0.11.0...v0.12.0) (2026-07-28)
4
18
 
5
19
 
package/README.md CHANGED
@@ -42,10 +42,19 @@ the selected repository is saved in `.github/template.yml` and rendered into
42
42
  the small `ci.yml` and `test.yml` wrappers automatically. The equivalent
43
43
  environment variable is `REPO_FOUNDRY_RUNTIME_REPOSITORY`.
44
44
 
45
+ Normal synchronization imports only the local hook, agent-facing command,
46
+ profile/release, initializer, doctor, ownership, and protection entrypoints.
47
+ Workflow-only actions and Security/CodeQL analyzers stay in the versioned
48
+ runtime package and are not duplicated in consumer repositories.
49
+
45
50
  The standard Security wrapper uses the same runtime contract, so dependency
46
51
  audits and the public-only Dependency Review policy can be upgraded centrally
47
52
  without copying security scripts into every consumer repository.
48
53
 
54
+ CodeQL is also independently reusable through the same contract. It retains
55
+ GitHub's native security-event permissions and language-specific analysis while
56
+ keeping CodeQL separate from CI and dependency security checks.
57
+
49
58
  Initialization defaults to AGPL for new repositories. Synchronization defaults
50
59
  to `--license preserve`, so an existing repository's license is never replaced
51
60
  unless you explicitly select a license or provide `--license-file`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "code-foundry",
3
- "version": "0.12.0",
3
+ "version": "0.14.0",
4
4
  "description": "A fast, language-aware repository factory for agent-ready workflows, testing, security, and release automation.",
5
5
  "type": "module",
6
6
  "license": "AGPL-3.0-or-later",