code: def change_type(lines: List[str]) -> Change:
      """
      Return True if 'line' only edits an image tag or if 'line' is not a changed
      line in a diff
      """
      added_images = []
      removed_images = []
      diff_lines = []
  
      for line in lines[2:]:
          if not line.startswith("-") and not line.startswith("+"):
              # not a diff line, ignore it
              continue
  
          diff_lines.append(line)
  
      if len(diff_lines) == 0:
          # no changes made
          return Change.NONE
  
      for line in diff_lines:
          is_add = line.startswith("+")
          line = line.strip().lstrip("+").lstrip("-")
          match = re.search(
              r"^(ci_[a-zA-Z0-9]+) = \'.*\'$",
              line.strip().lstrip("+").lstrip("-"),
              flags=re.MULTILINE,
          )
          if match is None:
              # matched a non-image line, quit early
              return Change.FULL
  
          if is_add:
              added_images.append(match.groups()[0])
          else:
              removed_images.append(match.groups()[0])
  
      # make sure that the added image lines match the removed image lines
      if len(added_images) > 0 and added_images == removed_images:
          return Change.IMAGES_ONLY
      else:
          return Change.FULL
  
file_path: tvm/ci/jenkins/generate.py
imports: import jinja2
  import argparse
  import difflib
  import datetime
  import re
  import textwrap
  from pathlib import Path
  from typing import List, Optional
  from dataclasses import dataclass
  from data import data
label_desc: Use image node_id 2 for calling a global function with example usage: change_type(lines) and returns: Change, Change, Change, Change