code: def determine_users_to_cc(
      issue: Dict[str, Any],
      github: GitHubRepo,
      team_issue: str,
      issue_data: Optional[Dict[str, Any]],
  ) -> List[str]:
      if issue_data is None:
          issue_data = fetch_issue(github, issue_number=int(team_issue))
  
      # Fetch the list of teams
      teams = parse_teams(issue_data, issue_number=int(team_issue))
  
      logging.info(
          f"Found these teams in issue #{team_issue}\n{json.dumps(teams, indent=2)}"
      )
  
      title = issue["title"]
      if "author" in issue:
          author = issue["author"]["login"]
      else:
          author = issue["user"]["login"]
      tags = tags_from_title(title)
      if isinstance(issue["labels"], dict):
          tags += tags_from_labels(issue["labels"]["nodes"])
      else:
          tags += tags_from_labels(issue["labels"])
  
      tags = [t.lower() for t in tags]
      logging.info(f"Found tags: {tags}")
  
      # Update the PR or issue based on tags in the title and GitHub tags
      to_cc = [teams.get(t, []) for t in tags]
      to_cc = list(set(item for sublist in to_cc for item in sublist))
      to_cc = [user for user in to_cc if user != author]
      return to_cc
  
file_path: tvm/ci/scripts/github/github_tag_teams.py
imports: import os
  import json
  import argparse
  import logging
  import re
  import sys
  from pathlib import Path
  from typing import Dict, Any, List, Tuple, Optional
  from git_utils import git, GitHubRepo, parse_remote, find_ccs, dry_run_token
  from cmd_utils import tags_from_title, init_log
label_desc: Use image node_id 6 for calling a global function with example usage: determine_users_to_cc(issue, github, team_issue, issue_data) and returns: to_cc