code: def get_changelog() -> dict:
      """construct changelog dict"""
      changelog = defaultdict(list)
      for commit in REPO.iter_commits():
          for file in commit.stats.files:
              if file.startswith(
                  "nboost"
              ) and not commit.summary.startswith("Merge"):
                  line = FMT.format(
                      sha=commit.hexsha[:7],
                      url=COMMIT_URL % commit.hexsha,
                      msg=commit.summary.split(": ")[-1],
                      name=commit.committer.name,
                      changes=commit.stats.total["lines"],
                  )
                  module = (
                      file.split("/")[1].split(".")[0]
                      if "/" in file
                      else file
                  )
                  changelog[module].append(line)
          if commit.committed_date < LAST_RELEASE:
              break
      return changelog
  
file_path: nboost/changelog.py
imports: from collections import defaultdict
  from nboost import __version__
  from datetime import datetime
  from pathlib import Path
  import git
label_desc: Use image node_id 2 for calling a global function with example usage: get_changelog() and returns: changelog