code: def get_commits_between(base_version, new_version):
      cmd = f"git merge-base {base_version} {new_version}"
      rc, merge_base, _ = run(cmd)
      assert rc == 0
  
      # Returns a list of something like
      # b33e38ec47 Allow a higher-precision step type for Vec256::arange (#34555)
      cmd = f"git log --reverse --oneline {merge_base}..{new_version}"
      rc, commits, _ = run(cmd)
      assert rc == 0
  
      log_lines = commits.split("\n")
      hashes, titles = zip(
          *[log_line.split(" ", 1) for log_line in log_lines]
      )
      return hashes, titles
  
imports: import json
  import locale
  import os
  import re
  import subprocess
  from collections import namedtuple
  from os.path import expanduser
  import requests
label_desc: Use image node_id 12 for calling a global function with example usage: get_commits_between(base_version, new_version) and returns: hashes,  titles