GitHub
07/23/2026, 2:46 PMmeltano run, meltano el(t) and meltano select in:
• #8580
It's probably a bit more involved than those since we don't construct a context for the invoker in this case but something might be done with
meltano/src/meltano/cli/invoke.py
Line 136 in</meltano/meltano/commit/5ecd933f8684675787e313c92f336efcf1705501|5ecd933>
| invoker = invoker_factory(project, plugin) |
| ------------------------------------------ |
and
meltano/src/meltano/core/elt_context.py
Lines 177 to 193 in</meltano/meltano/commit/5ecd933f8684675787e313c92f336efcf1705501|5ecd933>
| plugin_contexts = { |
| ----------------------------------------------------------------------------------------------------- |
| PluginType.EXTRACTORS: self.extractor, |
| PluginType.LOADERS: self.loader, |
| PluginType.TRANSFORMERS: self.transformer, |
| } |
| |
| if plugin_context := plugin_contexts[plugin_type]: |
| return invoker_factory( |
| self.project, |
| plugin_context.plugin, |
| context=self, |
| run_dir=self.elt_run_dir, |
| plugin_settings_service=plugin_context.settings_service, |
| ) |
| |
| errmsg = f"Plugin context could not be found for {plugin_type.value}" # pragma: no cover # noqa: E501 |
| raise RuntimeError(errmsg) # pragma: no cover |
More context in Slack: https://meltano.slack.com/archives/C069CPF8NTD/p1729883816814319
meltano/meltanoGitHub
07/23/2026, 2:46 PM