<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="/fr/blog/rss.xsl"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel>
        <title>Christophe Avonture &#x2014; Code Quality</title>
        <link>https://www.avonture.be/fr/blog/tags/code-quality</link>
        <description>Tools and practices to improve code quality: static analysis, linters, formatters, and Git hooks (PHPStan, Ruff, pre-commit, etc.).</description>
        <lastBuildDate>Thu, 24 Sep 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>fr</language>
        <item>
            <title><![CDATA[Docker Dive — X-Ray Your Images and Kill the Waste]]></title>
            <link>https://www.avonture.be/fr/fr/blog/docker-dive</link>
            <guid isPermaLink="false">/fr/blog/docker-dive</guid>
            <pubDate>Thu, 24 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[<img src="https://www.avonture.be/fr/img/v2/docker_dive.webp" alt="Docker Dive — X-Ray Your Images and Kill the Waste" style="display:block;max-width:100%;height:auto;">Use dive to inspect every layer of a Docker image, spot wasted megabytes hidden by deleted files, and walk step by step from a 1 GB bloated image down to a tight, efficient build.]]></description>
            <author>Christophe</author>
            <category>docker</category>
            <category>linux</category>
            <category>code-quality</category>
            <enclosure length="0" type="image/webp" url="https://www.avonture.be/fr/img/v2/docker_dive.webp"/>
        <dc:creator><![CDATA[Christophe]]></dc:creator></item>
        <item>
            <title><![CDATA[ai-review, ai-secrets, ai-commit: Three zsh Checks Before Every git Commit]]></title>
            <link>https://www.avonture.be/fr/fr/blog/ollama-git-precommit</link>
            <guid isPermaLink="false">/fr/blog/ollama-git-precommit</guid>
            <pubDate>Mon, 10 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[<img src="https://www.avonture.be/fr/img/v2/ai_review.webp" alt="ai-review, ai-secrets, ai-commit: Three zsh Checks Before Every git Commit" style="display:block;max-width:100%;height:auto;">Three zsh functions that together form a local, offline pre-commit quality gate: ai-review catches SOLID violations and naming issues, ai-secrets separates real hardcoded credentials from false positives, and ai-commit drafts the Conventional Commits message once the diff is actually clean.]]></description>
            <author>Christophe</author>
            <author>Claude Code</author>
            <category>git</category>
            <category>ollama</category>
            <category>zsh</category>
            <category>ai</category>
            <category>security</category>
            <category>code-quality</category>
            <enclosure length="0" type="image/webp" url="https://www.avonture.be/fr/img/v2/ai_review.webp"/>
        <dc:creator><![CDATA[Christophe]]></dc:creator><dc:creator><![CDATA[Claude Code]]></dc:creator></item>
        <item>
            <title><![CDATA[Validate your OpenAPI schema against the Belgif REST standards]]></title>
            <link>https://www.avonture.be/fr/fr/blog/belgif-api-linter</link>
            <guid isPermaLink="false">/fr/blog/belgif-api-linter</guid>
            <pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[<img src="https://www.avonture.be/fr/img/v2/belgif.webp" alt="Validate your OpenAPI schema against the Belgif REST standards" style="display:block;max-width:100%;height:auto;">Validate your FastAPI OpenAPI schema against the Belgif REST standards using Docker, with step-by-step fixes for the most common linting errors.]]></description>
            <author>Christophe</author>
            <category>api</category>
            <category>code-quality</category>
            <category>docker</category>
            <category>python</category>
            <enclosure length="0" type="image/webp" url="https://www.avonture.be/fr/img/v2/belgif.webp"/>
        <dc:creator><![CDATA[Christophe]]></dc:creator></item>
        <item>
            <title><![CDATA[Make your Quarto project Devcontainer-Ready — No More Setup Headaches]]></title>
            <link>https://www.avonture.be/fr/fr/blog/quarto-devcontainer</link>
            <guid isPermaLink="false">/fr/blog/quarto-devcontainer</guid>
            <pubDate>Mon, 03 Nov 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[<img src="https://www.avonture.be/fr/img/v2/devcontainer_quarto.webp" alt="Make your Quarto project Devcontainer-Ready — No More Setup Headaches" style="display:block;max-width:100%;height:auto;">Convert any Quarto project into a fully portable, VSCode-powered devcontainer in minutes.]]></description>
            <author>Christophe</author>
            <category>code-quality</category>
            <category>devcontainer</category>
            <category>docker</category>
            <category>markdown</category>
            <category>quarto</category>
            <category>vscode</category>
            <enclosure length="0" type="image/webp" url="https://www.avonture.be/fr/img/v2/devcontainer_quarto.webp"/>
        <dc:creator><![CDATA[Christophe]]></dc:creator></item>
        <item>
            <title><![CDATA[GitLab - Running Docker-out-of-Docker in your CI]]></title>
            <link>https://www.avonture.be/fr/fr/blog/gitlab-docker-out-of-docker</link>
            <guid isPermaLink="false">/fr/blog/gitlab-docker-out-of-docker</guid>
            <pubDate>Sun, 15 Jun 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[<img src="https://www.avonture.be/fr/img/v2/gitlab.webp" alt="GitLab - Running Docker-out-of-Docker in your CI" style="display:block;max-width:100%;height:auto;">Learn how to set up Docker-out-of-Docker (DooD) in your GitLab CI/CD pipeline. This guide covers configuring your GitLab Runner to share the host's Docker socket and project files, allowing containers to run `docker run` commands.]]></description>
            <author>Christophe</author>
            <category>code-quality</category>
            <category>docker</category>
            <category>gitlab</category>
            <category>quarto</category>
            <enclosure length="0" type="image/webp" url="https://www.avonture.be/fr/img/v2/gitlab.webp"/>
        <dc:creator><![CDATA[Christophe]]></dc:creator></item>
        <item>
            <title><![CDATA[GitLab - Using Docker private images]]></title>
            <link>https://www.avonture.be/fr/fr/blog/gitlab-using-private-images</link>
            <guid isPermaLink="false">/fr/blog/gitlab-using-private-images</guid>
            <pubDate>Fri, 06 Jun 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[<img src="https://www.avonture.be/fr/img/v2/gitlab.webp" alt="GitLab - Using Docker private images" style="display:block;max-width:100%;height:auto;">Use a private Docker image from Docker Hub in your GitLab CI/CD pipeline. Learn to create a read-only token and set up the necessary GitLab CI/CD variables for authentication.]]></description>
            <author>Christophe</author>
            <category>code-quality</category>
            <category>gitlab</category>
            <category>ssh</category>
            <enclosure length="0" type="image/webp" url="https://www.avonture.be/fr/img/v2/gitlab.webp"/>
        <dc:creator><![CDATA[Christophe]]></dc:creator></item>
        <item>
            <title><![CDATA[GitLab - Using an SSH key to connect to private repo]]></title>
            <link>https://www.avonture.be/fr/fr/blog/gitlab-runner-ssh-key</link>
            <guid isPermaLink="false">/fr/blog/gitlab-runner-ssh-key</guid>
            <pubDate>Fri, 30 May 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[<img src="https://www.avonture.be/fr/img/v2/gitlab.webp" alt="GitLab - Using an SSH key to connect to private repo" style="display:block;max-width:100%;height:auto;">Step-by-step guide on configuring a GitLab CI/CD runner to securely use a private SSH key for accessing and cloning private repositories.]]></description>
            <author>Christophe</author>
            <category>code-quality</category>
            <category>gitlab</category>
            <category>ssh</category>
            <enclosure length="0" type="image/webp" url="https://www.avonture.be/fr/img/v2/gitlab.webp"/>
        <dc:creator><![CDATA[Christophe]]></dc:creator></item>
        <item>
            <title><![CDATA[Todo Tree in VSCode]]></title>
            <link>https://www.avonture.be/fr/fr/blog/vscode-todo-tree</link>
            <guid isPermaLink="false">/fr/blog/vscode-todo-tree</guid>
            <pubDate>Fri, 07 Mar 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[<img src="https://www.avonture.be/fr/img/v2/vscode_tips.webp" alt="Todo Tree in VSCode" style="display:block;max-width:100%;height:auto;">Stop forgetting your TODOs and FIXMEs! Use the VSCode Todo Tree extension to summarize all code annotations like TODO, FIXME, and TEMPORARY into one easy-to-track dashboard.]]></description>
            <author>Christophe</author>
            <category>code-quality</category>
            <category>vscode</category>
            <enclosure length="0" type="image/webp" url="https://www.avonture.be/fr/img/v2/vscode_tips.webp"/>
        <dc:creator><![CDATA[Christophe]]></dc:creator></item>
        <item>
            <title><![CDATA[Search your FTP server at lightning speed]]></title>
            <link>https://www.avonture.be/fr/fr/blog/php-grep-searching-at-lightning-speed</link>
            <guid isPermaLink="false">/fr/blog/php-grep-searching-at-lightning-speed</guid>
            <pubDate>Sun, 19 Jan 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[<img src="https://www.avonture.be/fr/img/v2/winscp.webp" alt="Search your FTP server at lightning speed" style="display:block;max-width:100%;height:auto;">Tired of painfully slow FTP search functions? Discover php_grep, the ultra-fast PHP script that uses regular expressions to find content on your FTP server at lightning speed.]]></description>
            <author>Christophe</author>
            <category>code-quality</category>
            <category>ssh</category>
            <category>winscp</category>
            <enclosure length="0" type="image/webp" url="https://www.avonture.be/fr/img/v2/winscp.webp"/>
        <dc:creator><![CDATA[Christophe]]></dc:creator></item>
        <item>
            <title><![CDATA[Git - pre-commit-hooks]]></title>
            <link>https://www.avonture.be/fr/fr/blog/git-precommit</link>
            <guid isPermaLink="false">/fr/blog/git-precommit</guid>
            <pubDate>Fri, 10 Jan 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[<img src="https://www.avonture.be/fr/img/v2/clean_code.webp" alt="Git - pre-commit-hooks" style="display:block;max-width:100%;height:auto;">Hate failed CI/CD pipelines? Discover how to use Git pre-commit hooks, focusing on the pre-commit framework, to enforce code quality standards locally before you push.]]></description>
            <author>Christophe</author>
            <category>code-quality</category>
            <category>git</category>
            <category>python</category>
            <enclosure length="0" type="image/webp" url="https://www.avonture.be/fr/img/v2/clean_code.webp"/>
        <dc:creator><![CDATA[Christophe]]></dc:creator></item>
    </channel>
</rss>