Skip to content

Commit 3a6e13d

Browse files
Merge pull request #22 from brainelectronics/feature/add-option-to-skip-internal-snippets
add --no-internal option
2 parents 8abb77c + 18fc3a6 commit 3a6e13d

File tree

3 files changed

+24
-2
lines changed

3 files changed

+24
-2
lines changed

.snippets/21.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
## Add option to skip snippets marked as 'internal'
2+
<!--
3+
type: feature
4+
scope: all
5+
affected: all
6+
-->
7+
8+
This adds the option `--no-internal` to skip snippets with scope `internal`
9+
during the changelog generation. This change explicitly does not add a
10+
documentation to the `README` file to show and test this behaviour in a second
11+
pull request.

snippets2changelog/cli.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,11 @@ def parse_args(argv: Union[Sequence[str], None] = None) -> Args:
7070
action='store_true',
7171
help="Update specified changelog in place",
7272
)
73+
parser_changelog.add_argument(
74+
"--no-internal",
75+
action='store_true',
76+
help="Skip snippets with scope set as 'internal'",
77+
)
7378

7479
parser_create = subparsers.add_parser(
7580
"create",
@@ -119,7 +124,7 @@ def fn_info(_args: Args) -> None:
119124

120125

121126
def fn_changelog(args: Args) -> None:
122-
cc = ChangelogCreator(changelog=args.changelog, snippets_folder=args.snippets, update_in_place=args.in_place, verbosity=args.verbose)
127+
cc = ChangelogCreator(changelog=args.changelog, snippets_folder=args.snippets, update_in_place=args.in_place, skip_internal=args.no_internal, verbosity=args.verbose)
123128
cc.update_changelog()
124129

125130

snippets2changelog/creator.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ def create(self, file_name: Path) -> None:
6464
class ChangelogCreator(ExtractVersion, SnippetParser, SnippetCreator, SnippetCollector): # type: ignore
6565
"""docstring for ChangelogCreator"""
6666

67-
def __init__(self, changelog: Path, snippets_folder: Path, update_in_place: bool, verbosity: int = 0) -> None:
67+
def __init__(self, changelog: Path, snippets_folder: Path, update_in_place: bool, skip_internal: bool = False, verbosity: int = 0) -> None:
6868
if changelog.exists():
6969
self._changelog = changelog
7070
self._update_in_place = update_in_place
@@ -87,6 +87,8 @@ def __init__(self, changelog: Path, snippets_folder: Path, update_in_place: boo
8787
self._logger.debug(("semver_data:", self.semver_data))
8888
# VersionInfo(major=0, minor=1, patch=0, prerelease=None, build=None))
8989

90+
self._skip_internal = skip_internal
91+
9092
def update_changelog(self) -> None:
9193
new_changelog_content = ""
9294
# create a "prolog" and an "epilog", with the new content in between
@@ -97,6 +99,10 @@ def update_changelog(self) -> None:
9799
self.parse(file_name=file_name)
98100
snippet_content = self.parsed_content
99101
self._logger.debug(snippet_content)
102+
103+
if "internal" in snippet_content["scope"] and self._skip_internal:
104+
continue
105+
100106
if snippet_content["type"] == "bugfix":
101107
self.semver_data = self.semver_data.bump_patch()
102108
elif snippet_content["type"] == "feature":

0 commit comments

Comments
 (0)