code-foundry 0.27.12 → 0.27.14

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.
@@ -111,6 +111,9 @@ jobs:
111
111
  analyze-actions:
112
112
  name: Analyze (Actions)
113
113
  needs: detect
114
+ if: >-
115
+ needs.detect.outputs.enabled == 'true' &&
116
+ needs.detect.outputs.actions_available == 'true'
114
117
  runs-on: ${{ inputs.runner }}
115
118
  timeout-minutes: 30
116
119
  steps:
@@ -162,6 +165,9 @@ jobs:
162
165
  analyze-typescript:
163
166
  name: Analyze (TypeScript)
164
167
  needs: detect
168
+ if: >-
169
+ needs.detect.outputs.enabled == 'true' &&
170
+ needs.detect.outputs.javascript_available == 'true'
165
171
  runs-on: ${{ inputs.runner }}
166
172
  timeout-minutes: 30
167
173
  steps:
@@ -213,6 +219,9 @@ jobs:
213
219
  analyze-python:
214
220
  name: Analyze (Python)
215
221
  needs: detect
222
+ if: >-
223
+ needs.detect.outputs.enabled == 'true' &&
224
+ needs.detect.outputs.python_available == 'true'
216
225
  runs-on: ${{ inputs.runner }}
217
226
  timeout-minutes: 30
218
227
  steps:
@@ -264,6 +273,9 @@ jobs:
264
273
  analyze-rust:
265
274
  name: Analyze (Rust)
266
275
  needs: detect
276
+ if: >-
277
+ needs.detect.outputs.enabled == 'true' &&
278
+ needs.detect.outputs.rust_available == 'true'
267
279
  runs-on: ${{ inputs.runner }}
268
280
  timeout-minutes: 30
269
281
  steps:
@@ -29,7 +29,7 @@ jobs:
29
29
  id: check-pr
30
30
  run: |
31
31
  BRANCH="${{ github.ref_name }}"
32
- EXISTING=$(gh pr list --limit 1 --base staging --head "$BRANCH" --state open --json number,title 2>/dev/null | node -e 'let d=""; process.stdin.on("data", c => d += c).on("end", () => console.log(JSON.parse(d || "[]").length))')
32
+ EXISTING=$(gh pr list --repo "$GITHUB_REPOSITORY" --limit 1 --base staging --head "$BRANCH" --state open --json number,title 2>/dev/null | node -e 'let d=""; process.stdin.on("data", c => d += c).on("end", () => console.log(JSON.parse(d || "[]").length))')
33
33
  echo "existing=$EXISTING" >> "$GITHUB_OUTPUT"
34
34
 
35
35
  - name: Create
@@ -37,6 +37,7 @@ jobs:
37
37
  run: |
38
38
  BRANCH="${{ github.ref_name }}"
39
39
  gh pr create \
40
+ --repo "$GITHUB_REPOSITORY" \
40
41
  --base staging \
41
42
  --head "$BRANCH" \
42
43
  --draft \
@@ -51,7 +52,7 @@ jobs:
51
52
  if: steps.check-pr.outputs.existing == '0'
52
53
  run: |
53
54
  BRANCH="${{ github.ref_name }}"
54
- PR_NUMBER=$(gh pr list --limit 1 --base staging --head "$BRANCH" --state open --json number 2>/dev/null | node -e 'let d=""; process.stdin.on("data", c => d += c).on("end", () => console.log(JSON.parse(d || "[]")[0]?.number || ""))')
55
+ PR_NUMBER=$(gh pr list --repo "$GITHUB_REPOSITORY" --limit 1 --base staging --head "$BRANCH" --state open --json number 2>/dev/null | node -e 'let d=""; process.stdin.on("data", c => d += c).on("end", () => console.log(JSON.parse(d || "[]")[0]?.number || ""))')
55
56
  if [ -n "$PR_NUMBER" ]; then
56
- gh pr ready "$PR_NUMBER"
57
+ gh pr ready "$PR_NUMBER" --repo "$GITHUB_REPOSITORY"
57
58
  fi
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.27.14](https://github.com/0xPlayerOne/code-foundry/compare/v0.27.13...v0.27.14) (2026-07-29)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * **codeql:** skip unavailable analyzers ([9ddf8e3](https://github.com/0xPlayerOne/code-foundry/commit/9ddf8e30dab4da2ba1f6bb20dd3503e56ab1b880))
9
+ * **draft-pr:** pass repository explicitly ([6fbf289](https://github.com/0xPlayerOne/code-foundry/commit/6fbf289649ce2097e42b156cf2db0c39fb8ceee1))
10
+ * **draft-pr:** use explicit repository for lookups ([e498d6e](https://github.com/0xPlayerOne/code-foundry/commit/e498d6e125099e2437041112e1b3442a7ebea389))
11
+
12
+ ## [0.27.13](https://github.com/0xPlayerOne/code-foundry/compare/v0.27.12...v0.27.13) (2026-07-29)
13
+
14
+
15
+ ### Bug Fixes
16
+
17
+ * **sync:** package the gitignore template ([e65c63d](https://github.com/0xPlayerOne/code-foundry/commit/e65c63dcb09a623d5ce0b55f734bbe73719c72f2))
18
+
3
19
  ## [0.27.12](https://github.com/0xPlayerOne/code-foundry/compare/v0.27.11...v0.27.12) (2026-07-29)
4
20
 
5
21
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "code-foundry",
3
- "version": "0.27.12",
3
+ "version": "0.27.14",
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",
@@ -144,6 +144,10 @@ function shouldInclude(file, languages, features) {
144
144
 
145
145
  /** @param {string} source @param {string} file */
146
146
  function sourcePath(source, file) {
147
+ if (file === '.gitignore') {
148
+ const rootTemplate = join(source, file)
149
+ return existsSync(rootTemplate) ? rootTemplate : join(source, 'src/templates/gitignore')
150
+ }
147
151
  if (file.startsWith('.github/workflows/')) {
148
152
  const name = file.slice('.github/workflows/'.length, -4)
149
153
  return join(source, '.github/workflows', `${name}_self-ci.yml`)
package/src/runtime.mjs CHANGED
@@ -276,7 +276,9 @@ function codeql() {
276
276
  if (hasLanguage('python')) available.push('python')
277
277
  if (hasLanguage('rust')) available.push('rust')
278
278
  const changed = capture('git', ['diff', '--name-only', process.env.CODEQL_BASE_SHA || 'HEAD^', process.env.GITHUB_SHA || 'HEAD']).split('\n').filter(Boolean)
279
- const languagesJson = available.map((language) => ({ language, name: language === 'javascript-typescript' ? 'TypeScript' : language[0].toUpperCase() + language.slice(1), 'build-mode': 'none', changed: changed.length === 0 || changed.some((file) => fileMatches(language, file)) }))
279
+ // Upload every configured language on every analysis run so GitHub can
280
+ // compare pull requests against the base branch's code-scanning config.
281
+ const languagesJson = available.map((language) => ({ language, name: language === 'javascript-typescript' ? 'TypeScript' : language[0].toUpperCase() + language.slice(1), 'build-mode': 'none', changed: true }))
280
282
  writeOutput('languages', languagesJson)
281
283
  for (const language of ['actions', 'javascript-typescript', 'python', 'rust']) {
282
284
  const entry = languagesJson.find((item) => item.language === language)
@@ -0,0 +1,77 @@
1
+ # Operating system
2
+ .DS_Store
3
+ Thumbs.db
4
+ .Trashes
5
+
6
+ # Secrets and local environment
7
+ .env
8
+ .env.*
9
+ !.env.example
10
+ *.pem
11
+ *.key
12
+
13
+ # JavaScript and TypeScript
14
+ node_modules/
15
+ .pnp/
16
+ .pnp.js
17
+ .turbo/
18
+ *.tsbuildinfo
19
+ next-env.d.ts
20
+
21
+ # Python
22
+ .venv/
23
+ venv/
24
+ __pycache__/
25
+ *.py[cod]
26
+ .pytest_cache/
27
+ .ruff_cache/
28
+ .mypy_cache/
29
+
30
+ # Rust
31
+ target/
32
+
33
+ # Build and test output
34
+ dist/
35
+ build/
36
+ out/
37
+ coverage/
38
+ htmlcov/
39
+ .coverage*
40
+ .next/
41
+ artifacts/
42
+ cache/
43
+ !.github/actions/cache/
44
+ !.github/actions/cache/action.yml
45
+ typechain/
46
+ coverage.json
47
+ tests/.bin/
48
+ **/.app/
49
+
50
+ # Logs and temporary files
51
+ *.log
52
+ *.tmp
53
+ *.pid
54
+ npm-debug.log*
55
+ yarn-debug.log*
56
+ pnpm-debug.log*
57
+
58
+ # Editors, agents, and local tools
59
+ .claude/
60
+ .kilo/
61
+ .codex/
62
+ .cursor/
63
+ .windsurf/
64
+ .vscode/
65
+ .idea/
66
+ .zed/
67
+ .fleet/
68
+ .opencode/
69
+ .kluster/
70
+ .direnv/
71
+ .envrc
72
+ .vercel/
73
+ mise.local.toml
74
+ .mise.local.toml
75
+ mise.local.lock
76
+ .mise.local.lock
77
+ *.code-workspace