Skip to content

threat-detection: document macOS support and add installer platform-mapping tests #50655

Description

@davidslater

Created by GitHub Ace · View Session

Summary

Maintenance follow-up on macOS support for the external detector installer. No functional change is requiredactions/setup/sh/install_threat_detect_binary.sh already has a complete install_darwin_binary() branch (lines 153-179) mapping x86_64threat-detect-darwin-x64 and arm64threat-detect-darwin-arm64, dispatched from the uname -s switch at line 179.

Previously those assets did not exist, so any workflow combining threat-detection.runs-on: macos-* with features: gh-aw-detection: true got a 404 at install time, surfacing as an opaque infra failure rather than a clear "unsupported platform" message. Upstream #741 fixed that: v0.4.0 publishes all four assets. So the latent failure is resolved by the version bump in #50644, and only documentation and test debt remain.

Item 1 — stale header comment

install_threat_detect_binary.sh lines 16-17:

# Platform support:
#   - Linux (x64, arm64): Downloads pre-built binary

The script has supported Darwin for a while and the assets now exist. Update to document macOS x64/arm64.

While editing, note in the header that the macOS assets are unsigned and not notarized. The installer checksum-verifies them before execution (as documented in upstream #741), but users on macOS runners may hit Gatekeeper/quarantine behavior, and that should not be a surprise discovered at runtime.

Item 2 — no installer tests

There is currently no test file for install_threat_detect_binary anywhere in the repo. Add coverage for the OS/arch → asset-name mapping across all four combinations:

uname -s uname -m Expected asset
Linux x86_64 threat-detect-linux-amd64
Linux aarch64 / arm64 threat-detect-linux-arm64
Darwin x86_64 threat-detect-darwin-x64
Darwin arm64 threat-detect-darwin-arm64

Worth also asserting that an unrecognized OS or arch fails fast with an actionable message rather than attempting a 404 download.

Note the asymmetric naming — Linux uses amd64, Darwin uses x64. That inconsistency is exactly the kind of thing a test should pin, since it is easy to "fix" incorrectly during a refactor and the failure only appears at runtime on a macOS runner.

Upstream runs a scheduled parity check validating these mappings against its release-targets.txt, but that protects the publishing side. A test here protects installer behavior locally and catches drift before a release exists.

Acceptance criteria

  • Header # Platform support: block documents Linux and macOS (x64, arm64), and notes the macOS assets are unsigned/not notarized with checksum verification as the mitigation.
  • Test coverage for all four OS/arch → asset-name mappings.
  • Test coverage for the unsupported-platform failure path.

References

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions