Details
The vendored ICON_TYPES list in icon_types.rs had no real drift guard.
Introduced a two-layer protection, mirroring the Iglu schema pattern:
Build time:
config/vendored/system_note_metadata.actionsbecomes the source of truth (one action per line, pinned SHA in the header).
crates/indexer/build.rsgeneratesICON_TYPESfrom it, so the Rust constant can't drift from the vendor file, it's derived from it.CI:
scripts/check-system-note-actions.shfetchesapp/models/system_note_metadata.rbfromgitlab-org/gitlabat the pinned SHA and diffs it against the committed vendor file. The newsystem-note-actions-checklint job runs it on every MR.
MR Link
https://gitlab.com/gitlab-org/orbit/knowledge-graph/-/merge_requests/1665
Log in or sign up for Devpost to join the conversation.