code-foundry 1.3.0 → 1.3.1
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.
|
@@ -9,17 +9,16 @@ permissions:
|
|
|
9
9
|
contents: read
|
|
10
10
|
|
|
11
11
|
jobs:
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
# The scan itself still runs only for generated release pull requests
|
|
15
|
-
# (or manual dispatch) with the scanner configured and keyed.
|
|
16
|
-
scan:
|
|
17
|
-
name: OpenCode Security / Scan
|
|
12
|
+
detect:
|
|
13
|
+
name: OpenCode Security / Detect
|
|
18
14
|
if: >-
|
|
19
15
|
vars.CI_BILLING_PAUSED != 'true' &&
|
|
20
16
|
(github.event_name == 'workflow_dispatch' ||
|
|
21
17
|
startsWith(github.event.pull_request.head.ref, 'release-please--branches--main'))
|
|
22
18
|
runs-on: ubuntu-slim
|
|
19
|
+
outputs:
|
|
20
|
+
enabled: ${{ steps.detect.outputs.enabled }}
|
|
21
|
+
token: ${{ steps.detect.outputs.token }}
|
|
23
22
|
steps:
|
|
24
23
|
- name: Checkout
|
|
25
24
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
|
@@ -36,17 +35,27 @@ jobs:
|
|
|
36
35
|
if [ -n "$OPENCODE_API_KEY" ]; then token=true; fi
|
|
37
36
|
echo "enabled=$enabled" >> "$GITHUB_OUTPUT"
|
|
38
37
|
echo "token=$token" >> "$GITHUB_OUTPUT"
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
38
|
+
|
|
39
|
+
# Reusable workflows can only be called from a job level, so the scan is
|
|
40
|
+
# its own job gated on the detect outputs. The scan itself still runs only
|
|
41
|
+
# for generated release pull requests (or manual dispatch) with the
|
|
42
|
+
# scanner configured and keyed.
|
|
43
|
+
scan:
|
|
44
|
+
name: OpenCode Security / Scan
|
|
45
|
+
needs: detect
|
|
46
|
+
if: >-
|
|
47
|
+
vars.CI_BILLING_PAUSED != 'true' &&
|
|
48
|
+
needs.detect.outputs.enabled == 'true' &&
|
|
49
|
+
needs.detect.outputs.token == 'true'
|
|
50
|
+
uses: 0xPlayerOne/opencode-security/.github/workflows/opencode-security.yml@137698ef3545204af8fad00fc8bd64d663c8122e # main
|
|
51
|
+
with:
|
|
52
|
+
# This is the scanner checkout ref, not the consumer PR ref. The
|
|
53
|
+
# reusable workflow already checks out the consumer repository.
|
|
54
|
+
source_ref: 137698ef3545204af8fad00fc8bd64d663c8122e
|
|
55
|
+
runner: ubuntu-latest
|
|
56
|
+
model: opencode-go/muse-spark-1.3-contributor
|
|
57
|
+
mode: standard
|
|
58
|
+
fail_on_severity: high
|
|
59
|
+
max_cost_usd: 1
|
|
60
|
+
secrets:
|
|
61
|
+
OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }}
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.3.1](https://github.com/0xPlayerOne/code-foundry/compare/v1.3.0...v1.3.1) (2026-09-07)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* restore job-level OpenCode scanner call; preserve consumer oxlint ignores on sync ([#473](https://github.com/0xPlayerOne/code-foundry/issues/473)) ([171ac3d](https://github.com/0xPlayerOne/code-foundry/commit/171ac3dc57368a6ad1e21d8b439a34cbbe2eca58))
|
|
9
|
+
|
|
3
10
|
## [1.3.0](https://github.com/0xPlayerOne/code-foundry/compare/v1.2.1...v1.3.0) (2026-09-07)
|
|
4
11
|
|
|
5
12
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "code-foundry",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.1",
|
|
4
4
|
"description": "A fast, language-aware repository factory for agent-ready workflows, testing, security, and release automation.",
|
|
5
5
|
"homepage": "https://github.com/0xPlayerOne/code-foundry#readme",
|
|
6
6
|
"bugs": {
|
package/src/commands/sync.mjs
CHANGED
|
@@ -227,7 +227,12 @@ export function syncRepository(options) {
|
|
|
227
227
|
}
|
|
228
228
|
if (file === '.oxfmtrc.json' && existsSync(destination)) {
|
|
229
229
|
content = Buffer.from(
|
|
230
|
-
|
|
230
|
+
mergeIgnorePatternsConfig(content.toString('utf8'), readFileSync(destination, 'utf8'))
|
|
231
|
+
)
|
|
232
|
+
}
|
|
233
|
+
if (file === '.oxlintrc.json' && existsSync(destination)) {
|
|
234
|
+
content = Buffer.from(
|
|
235
|
+
mergeIgnorePatternsConfig(content.toString('utf8'), readFileSync(destination, 'utf8'))
|
|
231
236
|
)
|
|
232
237
|
}
|
|
233
238
|
if (!existsSync(destination) || !buffersEqual(content, readFileSync(destination))) {
|
|
@@ -776,13 +781,14 @@ function mergeGitignore(baseline, existing) {
|
|
|
776
781
|
}
|
|
777
782
|
|
|
778
783
|
/**
|
|
779
|
-
* Merge
|
|
780
|
-
* baseline owns every key except
|
|
781
|
-
* patterns (added by sync
|
|
782
|
-
* repeated syncs never
|
|
784
|
+
* Merge a baseline Oxc config (.oxfmtrc.json / .oxlintrc.json) with the
|
|
785
|
+
* consumer's current config. The baseline owns every key except
|
|
786
|
+
* `ignorePatterns`, where consumer-specific patterns (added by sync
|
|
787
|
+
* migrations or by the repository) are preserved so repeated syncs never
|
|
788
|
+
* churn them.
|
|
783
789
|
* @param {string} baseline @param {string} existing @returns {string}
|
|
784
790
|
*/
|
|
785
|
-
function
|
|
791
|
+
function mergeIgnorePatternsConfig(baseline, existing) {
|
|
786
792
|
/** @type {string[]} */
|
|
787
793
|
let extra = []
|
|
788
794
|
try {
|