How it works
What happens between the scheduled trigger and the pull request.
Fetch the registry. The extensions registry is downloaded from the URL given by
registry-url, which defaults to the Quarto extensions directory.Scan for extensions. Every
_extensions/directory under the configured scan directories is read, and each_extension.ymlor_extension.yamlmanifest is collected.Check versions. The installed version of each extension is compared with the registry release using semantic versioning, and the difference is classified as patch, minor, or major. The update strategy and the include and exclude lists are applied here.
Process each extension. Extensions are handled one at a time so that each one can become its own pull request, unless grouped updates are enabled.
Apply the update. The Quarto CLI performs the installation with
quarto add owner/repo@version --no-prompt, so the result is exactly what a local update would produce.Check compatibility. The
quarto-requiredfield of the updated manifest is compared against the installed Quarto version, and an extension that requires a newer Quarto is skipped and reported rather than committed.Track the source. The
sourcefield of the manifest is maintained, which is what makes the extension trackable on the next run.Create or update the pull request. An open pull request is looked up by branch name and title, both of which carry the target version, so a run that finds the same version again skips it and leaves the existing pull request alone. A run that finds a newer version opens a pull request of its own, and the superseded one stays open until it is merged or closed.
Failures do not stop the run
An extension that cannot be updated does not abort the workflow. Failures from quarto add and unmet quarto-required constraints are collected, the remaining extensions are still processed, and the skipped ones are listed in the job summary and in the pull request body. See troubleshooting for what to do about them.