def _depot_substitution()

in dusty/models/config.py [0:0]


    def _depot_substitution(self, obj):
        """ Allows to use depot secrets inside YAML/JSON config """
        if isinstance(obj, dict):
            for key in list(obj.keys()):
                obj[self._depot_substitution(key)] = \
                    self._depot_substitution(obj.pop(key))
        if isinstance(obj, list):
            for index, item in enumerate(obj):
                obj[index] = self._depot_substitution(item)
        if isinstance(obj, str):
            if re.match(r"^\$\=\S*$", obj.strip()):
                obj_key = obj.strip()[2:]
                obj_value = depots.get_secret(self.context, obj_key)
                if obj_value is not None:
                    self.context.set_meta(
                        "depots_resolved_secrets",
                        self.context.get_meta("depots_resolved_secrets", 0) + 1
                    )
                    return obj_value
        return obj