code: def test_inject(path=None):
      ds = Dataset(path).create(force=True)
      assert_repo_status(ds.path, untracked=["foo", "bar"])
      list(
          run_command(
              "nonsense command",
              dataset=ds,
              inject=True,
              extra_info={"custom_key": "custom_field"},
          )
      )
      msg = last_commit_msg(ds.repo)
      assert_in("custom_key", msg)
      assert_in("nonsense command", msg)
  
imports: import logging
  import os
  import os.path
  import sys
  from os import mkdir, remove
  from unittest.mock import patch
  from datalad.api import clone, run
  from datalad.cli.main import main
  from datalad.core.local.run import _format_iospecs, _get_substitutions, format_command, run_command
  from datalad.distribution.dataset import Dataset
  from datalad.support.exceptions import CommandError, IncompleteResultsError, NoDatasetFound
  from datalad.tests.utils_pytest import DEFAULT_BRANCH, OBSCURE_FILENAME, assert_false, assert_in, assert_in_results, assert_not_in, assert_not_in_results, assert_raises, assert_repo_status, assert_result_count, assert_status, create_tree, eq_, known_failure_windows, neq_, ok_, ok_exists, ok_file_has_content, patch_config, swallow_logs, swallow_outputs, with_tempfile, with_tree
  from datalad.utils import chpwd, ensure_unicode, on_windows
label_desc: Use image node_id 12 for calling a global function with example usage: test_inject(path) without return types