code: def apply(self):
      for node in self.document.traverse(GenerateTagLinks.baseref):
          # find the entry for the link reference we want to substitute
          link_key = None
          for k in self.linkref_lut.keys():
              if k in node["refuri"]:
                  link_key = k
  
          if not link_key:
              continue
  
          link_value = self.linkref_lut[link_key]
  
          git_tag = (
              subprocess.check_output(["git", "describe", "--always"])
              .decode("utf-8")
              .strip()
          )
          if len(re.findall(self.accepted_tag_format, git_tag)) != 1:
              git_tag = "main"
  
          link_value = link_value.format(MONAILABEL_GIT_TAG=git_tag)
  
          # replace the link reference with the link value
          target = node["refuri"].replace(link_key, link_value, 1)
          node.replace_attr("refuri", target)
  
          # replace the text as well where it occurs
          for txt in node.traverse(GenerateTagLinks.basetext):
              new_txt = Text(
                  txt.replace(self.linkref_prefix, self.github_link, 1),
                  txt.rawsource,
              )
              txt.parent.replate(txt, new_txt)
  
file_path: MONAILabel/docs/source/conf.py
imports: import os
  import re
  import subprocess
  import sys
  from docutils.nodes import Text, reference
  from sphinx.application import Sphinx
  from sphinx.transforms import SphinxTransform
  import monailabel
label_desc: Use image node_id 3 for calling the GenerateTagLinks obj's underlying member method code with example usage: obj.apply() without return types