惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Apple Machine Learning Research
Apple Machine Learning Research
爱范儿
爱范儿
博客园_首页
博客园 - 【当耐特】
V
Visual Studio Blog
博客园 - 叶小钗
月光博客
月光博客
美团技术团队
J
Java Code Geeks
小众软件
小众软件
Y
Y Combinator Blog
博客园 - Franky
Martin Fowler
Martin Fowler
博客园 - 聂微东
Microsoft Azure Blog
Microsoft Azure Blog
IT之家
IT之家
MyScale Blog
MyScale Blog
人人都是产品经理
人人都是产品经理
Microsoft Security Blog
Microsoft Security Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
阮一峰的网络日志
阮一峰的网络日志
酷 壳 – CoolShell
酷 壳 – CoolShell
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
云风的 BLOG
云风的 BLOG

Recent Commits to openclaw:main

test: merge chat side-result checks · openclaw/openclaw@ddd2c2a test: merge cron history checks · openclaw/openclaw@f7eb746 test: merge responsive navigation shell checks · openclaw/openclaw@c2e4b47 docs(changelog): add codex oauth fixes · openclaw/openclaw@628e6cd test: merge navigation routing cases · openclaw/openclaw@5d8cecb Tests: mock channel registry bundled fallback · openclaw/openclaw@2b08233 Secrets: avoid broad web search discovery for single plugin config · openclaw/openclaw@a464f59 test: merge config view browser checks · openclaw/openclaw@20cf511 fix(status): align oauth health with runtime · openclaw/openclaw@eed7116 feat: add macOS screen snapshots for monitor preview (#67954) thanks … · openclaw/openclaw@f377db1 fix: report shared auth scopes in hello-ok (#67810) thanks @BunsDev · openclaw/openclaw@0b6c39b Auto-reply: avoid eager bundled route fallback · openclaw/openclaw@3ea1bf4 Tests: narrow session binding contract setup · openclaw/openclaw@54e4e16 fix(macOS): enable undo/redo in webchat composer text input (#34962) · openclaw/openclaw@00951dc Tests: speed up channel setup promotion · openclaw/openclaw@82b529a Docs: refresh agent instructions · openclaw/openclaw@5775fe2 fix(auth): serialize OAuth refresh across agents to fix #26322 (#67876) · openclaw/openclaw@8e79080 test: allow ollama public surface boundary test · openclaw/openclaw@7d4f1a6 Docs: add test performance guardrails · openclaw/openclaw@89706d3 Tests: restore context-engine usage proof · openclaw/openclaw@e4c4f95 Tests: slim context engine runtime coverage · openclaw/openclaw@74c198f ci: retry failed custom checkouts · openclaw/openclaw@0ee5baf test: trim duplicate provider auth onboarding cases · openclaw/openclaw@1ffc02e matrix: fix sessions_spawn --thread subagent session spawning (#67643) · openclaw/openclaw@1ce2596 test: reduce auth choice fixture churn · openclaw/openclaw@857b9cd test: mock health status config boundaries · openclaw/openclaw@9d5ab4a test: mock onboard config io boundary · openclaw/openclaw@299694d test: mock legacy state plugin boundaries · openclaw/openclaw@2713089 test: mock channel install boundaries · openclaw/openclaw@b945248 test: mock doctor preview channel boundaries · openclaw/openclaw@b1a3ad4
ci: split macos codeql shard · openclaw/openclaw@7719257
vincentkoc · 2026-04-28 · via Recent Commits to openclaw:main
Original file line numberDiff line numberDiff line change

@@ -0,0 +1,89 @@

1+

name: CodeQL macOS Critical Security

2+
3+

on:

4+

workflow_dispatch:

5+

schedule:

6+

- cron: "0 8 * * 1"

7+
8+

concurrency:

9+

group: codeql-macos-critical-security-${{ github.workflow }}-${{ github.event_name == 'workflow_dispatch' && github.run_id || github.sha }}

10+

cancel-in-progress: false

11+
12+

env:

13+

FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true"

14+
15+

permissions:

16+

actions: read

17+

contents: read

18+

security-events: write

19+
20+

jobs:

21+

macos:

22+

name: Critical Security (macOS)

23+

runs-on: blacksmith-6vcpu-macos-latest

24+

timeout-minutes: 45

25+

steps:

26+

- name: Checkout

27+

uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6

28+

with:

29+

submodules: false

30+
31+

- name: Select Xcode

32+

run: |

33+

sudo xcode-select -s /Applications/Xcode_26.1.app

34+

xcodebuild -version

35+

swift --version

36+
37+

- name: Initialize CodeQL

38+

uses: github/codeql-action/init@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4

39+

with:

40+

languages: swift

41+

build-mode: manual

42+

config-file: ./.github/codeql/codeql-macos-critical-security.yml

43+
44+

- name: Build macOS for CodeQL

45+

run: swift build --package-path apps/macos --product OpenClaw

46+
47+

- name: Analyze

48+

id: analyze

49+

uses: github/codeql-action/analyze@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4

50+

with:

51+

output: sarif-results

52+

upload: failure-only

53+

category: "/codeql-critical-security/macos"

54+
55+

- name: Remove dependency build results

56+

env:

57+

SARIF_OUTPUT: sarif-results

58+

run: |

59+

set -euo pipefail

60+

shopt -s nullglob

61+
62+

if [ ! -d "$SARIF_OUTPUT" ]; then

63+

echo "SARIF output directory not found: $SARIF_OUTPUT" >&2

64+

exit 1

65+

fi

66+
67+

mkdir -p sarif-results-filtered

68+
69+

files=("$SARIF_OUTPUT"/*.sarif)

70+

if [ "${#files[@]}" -eq 0 ]; then

71+

echo "No SARIF files found in $SARIF_OUTPUT" >&2

72+

exit 1

73+

fi

74+
75+

for file in "${files[@]}"; do

76+

jq '

77+

def in_dependency_build:

78+

((.locations // []) | length > 0)

79+

and all(.locations[]; (.physicalLocation.artifactLocation.uri? // "") | test("^apps/macos/\\.build/"));

80+
81+

.runs |= map(.results = ((.results // []) | map(select(in_dependency_build | not))))

82+

' "$file" > "sarif-results-filtered/$(basename "$file")"

83+

done

84+
85+

- name: Upload filtered SARIF

86+

uses: github/codeql-action/upload-sarif@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4

87+

with:

88+

sarif_file: sarif-results-filtered

89+

category: "/codeql-critical-security/macos"

Original file line numberDiff line numberDiff line change

@@ -11,7 +11,6 @@ on:

1111

options:

1212

- all

1313

- security

14-

- macos-security

1514

schedule:

1615

- cron: "0 6 * * *"

1716

@@ -61,74 +60,3 @@ jobs:

6160

uses: github/codeql-action/analyze@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4

6261

with:

6362

category: "/codeql-critical-security/${{ matrix.language }}"

64-
65-

macos-security:

66-

name: Critical Security (macOS)

67-

if: ${{ github.event_name == 'workflow_dispatch' && inputs.profile == 'macos-security' }}

68-

runs-on: blacksmith-6vcpu-macos-latest

69-

timeout-minutes: 45

70-

steps:

71-

- name: Checkout

72-

uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6

73-

with:

74-

submodules: false

75-
76-

- name: Select Xcode

77-

run: |

78-

sudo xcode-select -s /Applications/Xcode_26.1.app

79-

xcodebuild -version

80-

swift --version

81-
82-

- name: Initialize CodeQL

83-

uses: github/codeql-action/init@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4

84-

with:

85-

languages: swift

86-

build-mode: manual

87-

config-file: ./.github/codeql/codeql-macos-critical-security.yml

88-
89-

- name: Build macOS for CodeQL

90-

run: swift build --package-path apps/macos --product OpenClaw

91-
92-

- name: Analyze

93-

id: analyze

94-

uses: github/codeql-action/analyze@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4

95-

with:

96-

output: sarif-results

97-

upload: failure-only

98-

category: "/codeql-critical-security/macos"

99-
100-

- name: Remove dependency build results

101-

env:

102-

SARIF_OUTPUT: sarif-results

103-

run: |

104-

set -euo pipefail

105-

shopt -s nullglob

106-
107-

if [ ! -d "$SARIF_OUTPUT" ]; then

108-

echo "SARIF output directory not found: $SARIF_OUTPUT" >&2

109-

exit 1

110-

fi

111-
112-

mkdir -p sarif-results-filtered

113-
114-

files=("$SARIF_OUTPUT"/*.sarif)

115-

if [ "${#files[@]}" -eq 0 ]; then

116-

echo "No SARIF files found in $SARIF_OUTPUT" >&2

117-

exit 1

118-

fi

119-
120-

for file in "${files[@]}"; do

121-

jq '

122-

def in_dependency_build:

123-

((.locations // []) | length > 0)

124-

and all(.locations[]; (.physicalLocation.artifactLocation.uri? // "") | test("^apps/macos/\\.build/"));

125-
126-

.runs |= map(.results = ((.results // []) | map(select(in_dependency_build | not))))

127-

' "$file" > "sarif-results-filtered/$(basename "$file")"

128-

done

129-
130-

- name: Upload filtered SARIF

131-

uses: github/codeql-action/upload-sarif@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4

132-

with:

133-

sarif_file: sarif-results-filtered

134-

category: "/codeql-critical-security/macos"

Original file line numberDiff line numberDiff line change

@@ -230,14 +230,19 @@ or overlapping changed hunks.

230230

The `CodeQL` workflow is intentionally a narrow first-pass security scanner,

231231

not the full repository sweep. Daily and manual runs scan Actions workflow code

232232

plus the highest-risk JavaScript/TypeScript auth, secrets, sandbox, cron, and

233-

gateway surfaces with high-precision security queries. macOS remains a manual

234-

security shard so its runtime and alert quality can be tracked separately.

233+

gateway surfaces with high-precision security queries.

235234
236235

The `CodeQL Android Critical Security` workflow is the scheduled Android

237236

security shard. It builds the Android app manually for CodeQL on the smallest

238237

Blacksmith Linux runner label accepted by workflow sanity and uploads results

239238

under the `/codeql-critical-security/android` category.

240239
240+

The `CodeQL macOS Critical Security` workflow is the weekly/manual macOS

241+

security shard. It builds the macOS app manually for CodeQL on Blacksmith macOS,

242+

filters dependency build results out of the uploaded SARIF, and uploads results

243+

under the `/codeql-critical-security/macos` category. Keep it outside the daily

244+

default workflow because the macOS build dominates runtime even when clean.

245+
241246

The `CodeQL Critical Quality` workflow is the matching non-security shard. It

242247

runs only error-severity, non-security JavaScript/TypeScript quality queries

243248

over narrow high-value surfaces. Its baseline job scans the same auth, secrets,