feat: add attack_changelog command for generating changelog artifacts between ATT&CK versions#236
Merged
Merged
Conversation
… between ATT&CK versions
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



This pull request introduces a new
attack_changelogcommand and supporting module to simplify and standardize the process of generating ATT&CK changelog artifacts for a pair of releases. It refactors the previous example script to use this new interface, and updates documentation and CLI configuration accordingly. The most important changes are:New command and module for changelog generation:
mitreattack/diffStix/attack_changelog.py, which provides a robust, reusable interface (generate_attack_changelog) and a CLI (attack_changelog) for generating changelog artifacts between two ATT&CK releases. This includes logic to automatically download missing STIX bundles, normalize inputs, and output artifacts in a consistent structure.Refactoring and simplification of example script:
examples/generate_multiple_attack_diffs.pyto use the newgenerate_attack_changelogfunction instead of duplicating logic, removing now-unnecessary helper functions and simplifying artifact generation. [1] [2] [3]Documentation and CLI integration:
mitreattack/diffStix/README.mdwith usage instructions and details for the newattack_changelogcommand, clarifying its behavior and outputs.attack_changelogCLI entry point inpyproject.tomlso it is available as a command-line tool after installation.