code: def params_repo(tmp_dir, scm, dvc):
      tmp_dir.gen("params.yaml", "foo: 1")
      tmp_dir.gen("params.json", '{"bar": 2, "foobar": 3}')
      tmp_dir.gen("other_params.json", '{"foo": {"bar": 4}}')
  
      dvc.run(
          name="stage-0",
          cmd="echo stage-0",
      )
  
      dvc.run(
          name="stage-1",
          cmd="echo stage-1",
          params=["foo", "params.json:bar"],
      )
  
      dvc.run(
          name="stage-2",
          cmd="echo stage-2",
          params=["other_params.json:foo"],
      )
  
      dvc.run(
          name="stage-3",
          cmd="echo stage-2",
          params=["params.json:foobar"],
      )
  
      scm.add(
          [
              "params.yaml",
              "params.json",
              "other_params.json",
              "dvc.yaml",
              "dvc.lock",
          ]
      )
      scm.commit("commit dvc files")
  
      tmp_dir.gen("params.yaml", "foo: 5")
      scm.add(["params.yaml"])
      scm.commit("update params.yaml")
  
imports: import json
  import os
  from textwrap import dedent
  from typing import Dict, List
  import pytest
  from dvc import api
label_desc: Use image node_id 1 for calling a global function with example usage: params_repo(tmp_dir, scm, dvc) without return types