code-foundry 0.12.0 → 0.13.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.
- package/.github/workflows/codeql.yml +4 -147
- package/CHANGELOG.md +7 -0
- package/README.md +4 -0
- package/package.json +1 -1
|
@@ -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
|
-
|
|
29
|
-
name:
|
|
30
|
-
|
|
31
|
-
|
|
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,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.13.0](https://github.com/0xPlayerOne/code-foundry/compare/v0.12.0...v0.13.0) (2026-07-28)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* **codeql:** document centralized CodeQL runtime ([2aa20a9](https://github.com/0xPlayerOne/code-foundry/commit/2aa20a946d0979cb12af87cb2ea2d0b50f279965))
|
|
9
|
+
|
|
3
10
|
## [0.12.0](https://github.com/0xPlayerOne/code-foundry/compare/v0.11.0...v0.12.0) (2026-07-28)
|
|
4
11
|
|
|
5
12
|
|
package/README.md
CHANGED
|
@@ -46,6 +46,10 @@ The standard Security wrapper uses the same runtime contract, so dependency
|
|
|
46
46
|
audits and the public-only Dependency Review policy can be upgraded centrally
|
|
47
47
|
without copying security scripts into every consumer repository.
|
|
48
48
|
|
|
49
|
+
CodeQL is also independently reusable through the same contract. It retains
|
|
50
|
+
GitHub's native security-event permissions and language-specific analysis while
|
|
51
|
+
keeping CodeQL separate from CI and dependency security checks.
|
|
52
|
+
|
|
49
53
|
Initialization defaults to AGPL for new repositories. Synchronization defaults
|
|
50
54
|
to `--license preserve`, so an existing repository's license is never replaced
|
|
51
55
|
unless you explicitly select a license or provide `--license-file`.
|
package/package.json
CHANGED