code: def get_source_url(obj):
      
      source_env_prefix = obj.context.config['source_env_prefix']
      task = obj.task
      log.debug("Getting source url for {} {}...".format(obj.name, obj.task_id))
      repo = get_repo(obj.task, source_env_prefix=source_env_prefix)
      source = task['metadata']['source']
      if repo and not verify_repo_matches_url(repo, source):
          raise CoTError("{name} {task_id}: {source_env_prefix} {repo} doesn't match source {source}!".format(
              name=obj.name, task_id=obj.task_id, source_env_prefix=source_env_prefix, repo=repo, source=source
          ))
      log.info("{} {}: found {}".format(obj.name, obj.task_id, source))
      return source
docs: Get the source url for a Trust object.
  
      Args:
          obj (ChainOfTrust or LinkOfTrust): the trust object to inspect
  
      Raises:
          CoTError: if repo and source are defined and don't match
  
      Returns:
          str: the source url.