code-foundry 0.11.0 → 0.12.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.
@@ -0,0 +1,241 @@
1
+ name: Code Foundry CodeQL
2
+
3
+ on:
4
+ workflow_call:
5
+ inputs:
6
+ runtime-repository:
7
+ description: Repository containing the Code Foundry runtime.
8
+ required: false
9
+ type: string
10
+ default: 0xPlayerOne/code-foundry
11
+ runtime-ref:
12
+ description: Code Foundry runtime tag or ref.
13
+ required: false
14
+ type: string
15
+ default: v0.11.0
16
+
17
+ permissions:
18
+ actions: read
19
+ contents: read
20
+ packages: read
21
+ security-events: write
22
+
23
+ env:
24
+ REPO_FOUNDRY_PROFILE: ${{ vars.REPO_FOUNDRY_PROFILE }}
25
+ REPO_FOUNDRY_LANGUAGES: ${{ vars.REPO_FOUNDRY_LANGUAGES }}
26
+ REPO_FOUNDRY_FEATURES: ${{ vars.REPO_FOUNDRY_FEATURES }}
27
+
28
+ concurrency:
29
+ group: ${{ github.workflow }}-${{ github.event.pull_request.head.repo.full_name || github.repository }}-${{ github.event.pull_request.head.ref || github.ref_name }}
30
+ cancel-in-progress: true
31
+
32
+ jobs:
33
+ detect:
34
+ name: Detect
35
+ runs-on: ubuntu-slim
36
+ timeout-minutes: 10
37
+ outputs:
38
+ languages: ${{ steps.languages.outputs.languages }}
39
+ code_security: ${{ steps.security.outputs.status }}
40
+ actions_available: ${{ steps.languages.outputs.actions_available }}
41
+ actions_changed: ${{ steps.languages.outputs.actions_changed }}
42
+ actions_build_mode: ${{ steps.languages.outputs.actions_build_mode }}
43
+ javascript_available: ${{ steps.languages.outputs.javascript_available }}
44
+ javascript_changed: ${{ steps.languages.outputs.javascript_changed }}
45
+ javascript_build_mode: ${{ steps.languages.outputs.javascript_build_mode }}
46
+ python_available: ${{ steps.languages.outputs.python_available }}
47
+ python_changed: ${{ steps.languages.outputs.python_changed }}
48
+ python_build_mode: ${{ steps.languages.outputs.python_build_mode }}
49
+ rust_available: ${{ steps.languages.outputs.rust_available }}
50
+ rust_changed: ${{ steps.languages.outputs.rust_changed }}
51
+ rust_build_mode: ${{ steps.languages.outputs.rust_build_mode }}
52
+ steps:
53
+ - name: Detect Code Security
54
+ id: security
55
+ env:
56
+ GH_TOKEN: ${{ github.token }}
57
+ run: |
58
+ status="disabled"
59
+ if [ "${{ github.event.repository.private }}" != "true" ]; then
60
+ status="enabled"
61
+ else
62
+ status="$(gh api "repos/${GITHUB_REPOSITORY}" --jq '.security_and_analysis.code_security.status // "disabled"' 2>/dev/null || printf 'disabled')"
63
+ fi
64
+ printf 'status=%s\n' "$status" >> "$GITHUB_OUTPUT"
65
+ - name: Checkout
66
+ if: ${{ !github.event.repository.private || steps.security.outputs.status == 'enabled' }}
67
+ uses: actions/checkout@v7
68
+ with:
69
+ fetch-depth: 2
70
+ filter: blob:none
71
+ sparse-checkout: |
72
+ .github
73
+ .mise.toml
74
+ mise.lock
75
+ package.json
76
+ bun.lock
77
+ bun.lockb
78
+ pnpm-lock.yaml
79
+ yarn.lock
80
+ package-lock.json
81
+ sparse-checkout-cone-mode: false
82
+ - name: Runtime
83
+ if: ${{ !github.event.repository.private || steps.security.outputs.status == 'enabled' }}
84
+ uses: actions/checkout@v7
85
+ with:
86
+ repository: ${{ inputs.runtime-repository }}
87
+ ref: ${{ inputs.runtime-ref }}
88
+ path: .code-foundry
89
+ sparse-checkout: |
90
+ .github/actions
91
+ .github/scripts
92
+ - name: Install runtime
93
+ if: ${{ !github.event.repository.private || steps.security.outputs.status == 'enabled' }}
94
+ run: |
95
+ mkdir -p .github/actions .github/scripts
96
+ cp -R .code-foundry/.github/actions/. .github/actions/
97
+ cp -R .code-foundry/.github/scripts/. .github/scripts/
98
+ - id: languages
99
+ name: Detect languages
100
+ env:
101
+ CODEQL_BASE_SHA: ${{ github.event_name == 'pull_request' && github.event.pull_request.base.sha || github.event.before }}
102
+ REPO_FOUNDRY_CODE_SECURITY: ${{ steps.security.outputs.status }}
103
+ REPO_FOUNDRY_PRIVATE: ${{ github.event.repository.private }}
104
+ run: |
105
+ if [ "$REPO_FOUNDRY_PRIVATE" = "true" ] && [ "$REPO_FOUNDRY_CODE_SECURITY" != "enabled" ]; then
106
+ echo 'languages=[]' >> "$GITHUB_OUTPUT"
107
+ else
108
+ bash .github/scripts/codeql-languages.sh
109
+ fi
110
+
111
+ analyze-actions:
112
+ name: Analyze (Actions)
113
+ needs: detect
114
+ if: >-
115
+ ( !github.event.repository.private || needs.detect.outputs.code_security == 'enabled' ) &&
116
+ needs.detect.outputs.actions_available == 'true' &&
117
+ needs.detect.outputs.actions_changed == 'true'
118
+ runs-on: ubuntu-latest
119
+ timeout-minutes: 30
120
+ steps:
121
+ - name: Checkout
122
+ uses: actions/checkout@v7
123
+ - name: Runtime
124
+ uses: actions/checkout@v7
125
+ with:
126
+ repository: ${{ inputs.runtime-repository }}
127
+ ref: ${{ inputs.runtime-ref }}
128
+ path: .code-foundry
129
+ sparse-checkout: |
130
+ .github/actions
131
+ .github/scripts
132
+ - name: Install runtime
133
+ run: |
134
+ mkdir -p .github/actions .github/scripts
135
+ cp -R .code-foundry/.github/actions/. .github/actions/
136
+ cp -R .code-foundry/.github/scripts/. .github/scripts/
137
+ - name: Analyze
138
+ uses: ./.github/actions/codeql
139
+ with:
140
+ language: actions
141
+ build-mode: ${{ needs.detect.outputs.actions_build_mode }}
142
+ category: /language:actions
143
+
144
+ analyze-typescript:
145
+ name: Analyze (TypeScript)
146
+ needs: detect
147
+ if: >-
148
+ ( !github.event.repository.private || needs.detect.outputs.code_security == 'enabled' ) &&
149
+ needs.detect.outputs.javascript_available == 'true' &&
150
+ needs.detect.outputs.javascript_changed == 'true'
151
+ runs-on: ubuntu-latest
152
+ timeout-minutes: 30
153
+ steps:
154
+ - name: Checkout
155
+ uses: actions/checkout@v7
156
+ - name: Runtime
157
+ uses: actions/checkout@v7
158
+ with:
159
+ repository: ${{ inputs.runtime-repository }}
160
+ ref: ${{ inputs.runtime-ref }}
161
+ path: .code-foundry
162
+ sparse-checkout: |
163
+ .github/actions
164
+ .github/scripts
165
+ - name: Install runtime
166
+ run: |
167
+ mkdir -p .github/actions .github/scripts
168
+ cp -R .code-foundry/.github/actions/. .github/actions/
169
+ cp -R .code-foundry/.github/scripts/. .github/scripts/
170
+ - name: Analyze
171
+ uses: ./.github/actions/codeql
172
+ with:
173
+ language: javascript-typescript
174
+ build-mode: ${{ needs.detect.outputs.javascript_build_mode }}
175
+ category: /language:javascript-typescript
176
+
177
+ analyze-python:
178
+ name: Analyze (Python)
179
+ needs: detect
180
+ if: >-
181
+ ( !github.event.repository.private || needs.detect.outputs.code_security == 'enabled' ) &&
182
+ needs.detect.outputs.python_available == 'true' &&
183
+ needs.detect.outputs.python_changed == 'true'
184
+ runs-on: ubuntu-latest
185
+ timeout-minutes: 30
186
+ steps:
187
+ - name: Checkout
188
+ uses: actions/checkout@v7
189
+ - name: Runtime
190
+ uses: actions/checkout@v7
191
+ with:
192
+ repository: ${{ inputs.runtime-repository }}
193
+ ref: ${{ inputs.runtime-ref }}
194
+ path: .code-foundry
195
+ sparse-checkout: |
196
+ .github/actions
197
+ .github/scripts
198
+ - name: Install runtime
199
+ run: |
200
+ mkdir -p .github/actions .github/scripts
201
+ cp -R .code-foundry/.github/actions/. .github/actions/
202
+ cp -R .code-foundry/.github/scripts/. .github/scripts/
203
+ - name: Analyze
204
+ uses: ./.github/actions/codeql
205
+ with:
206
+ language: python
207
+ build-mode: ${{ needs.detect.outputs.python_build_mode }}
208
+ category: /language:python
209
+
210
+ analyze-rust:
211
+ name: Analyze (Rust)
212
+ needs: detect
213
+ if: >-
214
+ ( !github.event.repository.private || needs.detect.outputs.code_security == 'enabled' ) &&
215
+ needs.detect.outputs.rust_available == 'true' &&
216
+ needs.detect.outputs.rust_changed == 'true'
217
+ runs-on: ubuntu-latest
218
+ timeout-minutes: 30
219
+ steps:
220
+ - name: Checkout
221
+ uses: actions/checkout@v7
222
+ - name: Runtime
223
+ uses: actions/checkout@v7
224
+ with:
225
+ repository: ${{ inputs.runtime-repository }}
226
+ ref: ${{ inputs.runtime-ref }}
227
+ path: .code-foundry
228
+ sparse-checkout: |
229
+ .github/actions
230
+ .github/scripts
231
+ - name: Install runtime
232
+ run: |
233
+ mkdir -p .github/actions .github/scripts
234
+ cp -R .code-foundry/.github/actions/. .github/actions/
235
+ cp -R .code-foundry/.github/scripts/. .github/scripts/
236
+ - name: Analyze
237
+ uses: ./.github/actions/codeql
238
+ with:
239
+ language: rust
240
+ build-mode: ${{ needs.detect.outputs.rust_build_mode }}
241
+ category: /language:rust
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.12.0](https://github.com/0xPlayerOne/code-foundry/compare/v0.11.0...v0.12.0) (2026-07-28)
4
+
5
+
6
+ ### Features
7
+
8
+ * **codeql:** add reusable CodeQL workflow runtime ([65896bb](https://github.com/0xPlayerOne/code-foundry/commit/65896bb407ad9d792c962e86d63384849f711a16))
9
+
3
10
  ## [0.11.0](https://github.com/0xPlayerOne/code-foundry/compare/v0.10.0...v0.11.0) (2026-07-28)
4
11
 
5
12
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "code-foundry",
3
- "version": "0.11.0",
3
+ "version": "0.12.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",