Skip to content

Commit 8ee1b2f

Browse files
authored
Fix the version lock update code (#1064)
* Fix the version lock update code * Add Rule.lock_info() method
1 parent c0af222 commit 8ee1b2f

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

detection_rules/packaging.py

+6-1
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,12 @@ def manage_versions(rules: List[TOMLRule], deprecated_rules: list = None, curren
112112

113113
if save_changes:
114114
if changed_rules or (new_rules and add_new):
115-
current_versions.update(new_rules if add_new else {})
115+
if add_new:
116+
for rule in new_rules:
117+
current_versions[rule.id] = rule.contents.lock_info()
118+
for rule in changed_rules:
119+
current_versions[rule.id] = rule.contents.lock_info()
120+
116121
current_versions = OrderedDict(sorted(current_versions.items(), key=lambda x: x[1]['rule_name']))
117122

118123
save_etc_dump(current_versions, 'version.lock.json')

detection_rules/rule.py

+3
Original file line numberDiff line numberDiff line change
@@ -324,6 +324,9 @@ def id(self) -> definitions.UUIDString:
324324
def name(self) -> str:
325325
return self.data.name
326326

327+
def lock_info(self) -> dict:
328+
return {"rule_name": self.name, "sha256": self.sha256(), "version": self.autobumped_version}
329+
327330
@property
328331
def is_dirty(self) -> Optional[bool]:
329332
"""Determine if the rule has changed since its version was locked."""

0 commit comments

Comments
 (0)