Basics
This check is disabled by default.
Learn how to enable it via .credo.exs.
This check has a base priority of higher and works with any version of Elixir.
Explanation
Use Repo.transact/1,2 instead of calling Repo.transaction/1,2
directly.
Examples
Avoid:
Repo.transaction(fn ->
create_user!(attrs)
create_audit_event!(attrs)
end)Prefer:
Repo.transact(fn ->
create_user!(attrs)
create_audit_event!(attrs)
end)Notes
Repo.transaction/1,2 is deprecated in Ecto 3.13 in favor of
Repo.transact/1,2. Keeping deprecated calls around makes future Ecto
upgrades noisier and leaves new transactional code on the old API.
Repo.transact/1,2 communicates the preferred Ecto API directly and
keeps transaction call sites off the deprecated API.
This check uses static AST analysis, so it favors clear source-level patterns over runtime behavior.
Options
This check has no check-specific options. Configure it with an empty option list.
Usage
Add this check to Credo's checks: list in .credo.exs:
%{
configs: [
%{
name: "default",
checks: [
{Bylaw.Credo.Check.Ecto.NoRepoTransaction, []}
]
}
]
}Check-Specific Parameters
There are no specific parameters for this check.
General Parameters
Like with all checks, general params can be applied.
Parameters can be configured via the .credo.exs config file.