{"id":2268,"date":"2026-06-30T12:22:53","date_gmt":"2026-06-30T12:22:53","guid":{"rendered":"https:\/\/www.almtoolbox.com\/fr\/blog\/?p=2268"},"modified":"2026-07-05T19:15:47","modified_gmt":"2026-07-05T19:15:47","slug":"comment-integrer-litellm-aux-workflows-git-github-et-gitlab","status":"publish","type":"post","link":"https:\/\/www.almtoolbox.com\/fr\/blog\/comment-integrer-litellm-aux-workflows-git-github-et-gitlab\/","title":{"rendered":"Comment int\u00e9grer LiteLLM aux workflows Git, GitHub et GitLab ?"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>LiteLLM<\/em> offre un moyen pratique d&#8217;int\u00e9grer des capacit\u00e9s d&#8217;IA \u00e0 des processus d&#8217;automatisation bas\u00e9s sur Git, sans vous enfermer chez un fournisseur de mod\u00e8les unique.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour les \u00e9quipes utilisant GitHub ou GitLab, l&#8217;outil peut servir de passerelle d&#8217;IA unifi\u00e9e pour la r\u00e9vision de code, l&#8217;aide \u00e0 la r\u00e9daction de commits, l&#8217;analyse des demandes de fusion (merge requests) et les automatisations pilot\u00e9es par l&#8217;int\u00e9gration continue (CI).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cela s&#8217;av\u00e8re particuli\u00e8rement utile lorsque vous recherchez de la flexibilit\u00e9 entre les diff\u00e9rents fournisseurs, une gouvernance centralis\u00e9e et une API coh\u00e9rente pour vos pipelines.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><a href=\"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2026\/06\/litellm-illus.webp\"><img decoding=\"async\" src=\"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2026\/06\/litellm-illus-1024x559.webp\" alt=\"litellm git github gitlab\" class=\"wp-image-9424\"\/><\/a><\/figure>\n\n\n\n<div style=\"height:38px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Pourquoi LiteLLM s&#8217;adapte  bien aux workflows Git<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In git-based environments, the same AI capability often needs to work across different stages: commit time, pull request or merge request review, release preparation, and CI checks.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">LiteLLM helps by giving you one <em><strong>OpenAI-compatible<\/strong><\/em> endpoint that can route requests to many model providers behind the scenes. That means your automation can stay stable even if you change models, add fallbacks, or move some workloads to self-hosted inference.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For DevOps and DevSecOps teams, this is a strong pattern because it keeps AI usage centralized.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can add policy controls, logging, model allowlists, and cost tracking at the proxy layer instead of spreading those concerns across many scripts and repositories. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In practice, that makes AI features easier to standardize across GitHub and GitLab estates.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dans les environnements bas\u00e9s sur Git, une m\u00eame fonctionnalit\u00e9 d&#8217;IA doit souvent op\u00e9rer \u00e0 diff\u00e9rentes \u00e9tapes : lors du <em>commit<\/em>, de la revue de <em>pull request<\/em> ou de <em>merge request<\/em>, de la pr\u00e9paration de la mise en production et des v\u00e9rifications d&#8217;int\u00e9gration continue (CI).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">LiteLLM facilite cette t\u00e2che en proposant un point de terminaison unique compatible avec l&#8217;API OpenAI, capable d&#8217;acheminer les requ\u00eates vers divers fournisseurs de mod\u00e8les en arri\u00e8re-plan. Ainsi, vos processus automatis\u00e9s restent stables, m\u00eame si vous changez de mod\u00e8le, mettez en place des m\u00e9canismes de secours (<em>fallbacks<\/em>) ou d\u00e9placez certaines charges de travail vers une infrastructure d&#8217;inf\u00e9rence auto-h\u00e9berg\u00e9e.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour les \u00e9quipes DevOps et DevSecOps, cette approche est particuli\u00e8rement pertinente car elle permet de centraliser l&#8217;utilisation de l&#8217;IA.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vous pouvez int\u00e9grer des contr\u00f4les de politique, la journalisation, des listes blanches de mod\u00e8les et le suivi des co\u00fbts directement au niveau du proxy, plut\u00f4t que de disperser ces \u00e9l\u00e9ments \u00e0 travers de multiples scripts et d\u00e9p\u00f4ts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Concr\u00e8tement, cela simplifie la standardisation des fonctionnalit\u00e9s d&#8217;IA au sein de vos \u00e9cosyst\u00e8mes GitHub et GitLab.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Cas d&#8217;utilisation courants<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Voici des moyens pratiques d&#8217;utiliser LiteLLM dans des workflows bas\u00e9s sur Git :<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Revue de pull request ou de merge request.<\/li>\n\n\n\n<li>G\u00e9n\u00e9ration de messages de commit.<\/li>\n\n\n\n<li>V\u00e9rifications de s\u00e9curit\u00e9 et de conformit\u00e9.<\/li>\n\n\n\n<li>R\u00e9daction de notes de version.<\/li>\n\n\n\n<li>Aide \u00e0 la documentation.<\/li>\n\n\n\n<li>Enrichissement du pipeline CI.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Exemple de GitHub Actions<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Cet exemple illustre un mod\u00e8le simple dans lequel GitHub Actions fait appel \u00e0 un proxy LiteLLM lors d&#8217;un workflow de pull request. Vous pouvez adapter le prompt pour g\u00e9n\u00e9rer un r\u00e9sum\u00e9 de la revue, une \u00e9bauche de journal des modifications (changelog) ou une liste de contr\u00f4le de s\u00e9curit\u00e9.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">text<code>name: AI Review with LiteLLM\n\non:\n  pull_request:\n    types: [opened, synchronize, reopened]\n\njobs:\n  ai-review:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout code\n        uses: actions\/checkout@v4\n\n      - name: Get diff\n        run: |\n          git fetch origin ${{ github.base_ref }} --depth=1\n          git diff origin\/${{ github.base_ref }}...HEAD &gt; pr.diff\n\n      - name: Call LiteLLM proxy\n        env:\n          LITELLM_API_KEY: ${{ secrets.LITELLM_API_KEY }}\n        run: |\n          PROMPT=$(cat &lt;&lt;'EOF'\n          Review the following pull request diff and provide:\n          1. A short summary\n          2. Potential risks\n          3. Suggested improvements\n\n          Diff:\n          EOF\n          )\n          DIFF_CONTENT=$(cat pr.diff)\n\n          curl -s https:\/\/litellm.example.com\/v1\/chat\/completions \\\n            -H \"Authorization: Bearer ${LITELLM_API_KEY}\" \\\n            -H \"Content-Type: application\/json\" \\\n            -d \"$(jq -n \\\n              --arg model 'gpt-4o-mini' \\\n              --arg system \"$PROMPT\" \\\n              --arg user \"$DIFF_CONTENT\" \\\n              '{\n                model: $model,\n                messages: [\n                  {role: \"system\", content: $system},\n                  {role: \"user\", content: $user}\n                ]\n              }')\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ce mod\u00e8le est particuli\u00e8rement adapt\u00e9 lorsque vous souhaitez int\u00e9grer la sortie de l&#8217;IA directement dans le flux de travail, plut\u00f4t que de passer par une \u00e9tape distincte de r\u00e9vision manuelle. Vous pouvez \u00e9galement enregistrer la r\u00e9ponse sous forme de commentaire de pull request, d&#8217;artefact de build ou de r\u00e9sum\u00e9 de t\u00e2che.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Exemple GitLab CI  <\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dans GitLab, cette m\u00eame id\u00e9e correspond parfaitement \u00e0 un pipeline de demande de fusion (merge request pipeline). Cet exemple utilise un job qui r\u00e9cup\u00e8re le diff et l&#8217;envoie \u00e0 un proxy LiteLLM.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">text<code>stages:\n  - ai_review\n\nai_review:\n  stage: ai_review\n  image: alpine:3.20\n  variables:\n    GIT_DEPTH: \"1\"\n  before_script:\n    - apk add --no-cache git curl jq\n  script:\n    - git fetch origin \"$CI_MERGE_REQUEST_TARGET_BRANCH_NAME\" --depth=1\n    - git diff \"origin\/$CI_MERGE_REQUEST_TARGET_BRANCH_NAME...HEAD\" &gt; mr.diff\n    - |\n      PROMPT=\"Review the following merge request diff and provide:\n      1. A short summary\n      2. Potential risks\n      3. Suggested improvements\"\n      DIFF_CONTENT=\"$(cat mr.diff)\"\n\n      curl -s https:\/\/litellm.example.com\/v1\/chat\/completions \\\n        -H \"Authorization: Bearer ${LITELLM_API_KEY}\" \\\n        -H \"Content-Type: application\/json\" \\\n        -d \"$(jq -n \\\n          --arg model 'gpt-4o-mini' \\\n          --arg system \"$PROMPT\" \\\n          --arg user \"$DIFF_CONTENT\" \\\n          '{\n            model: $model,\n            messages: [\n              {role: \"system\", content: $system},\n              {role: \"user\", content: $user}\n            ]\n          }')\"\n  rules:\n    - if: $CI_MERGE_REQUEST_IID<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Cela s&#8217;int\u00e8gre parfaitement \u00e0 GitLab, car les pipelines de demandes de fusion constituent d\u00e9j\u00e0 un emplacement tout indiqu\u00e9 pour les v\u00e9rifications automatis\u00e9es. Vous pouvez \u00e9tendre le m\u00eame job pour publier la r\u00e9ponse en tant qu&#8217;artefact, ajouter un commentaire \u00e0 la demande de fusion ou transmettre le r\u00e9sultat \u00e0 une \u00e9tape de contr\u00f4le qualit\u00e9 ult\u00e9rieure.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conseil  de mise en \u0153uvre<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Si vous d\u00e9veloppez cette solution pour un environnement de production, veillez \u00e0 structurer le format des invites et des r\u00e9ponses.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Par exemple, demandez une sortie JSON afin que votre pipeline puisse analyser correctement la gravit\u00e9, le r\u00e9sum\u00e9 et les recommandations.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il est \u00e9galement judicieux de s\u00e9parer les mod\u00e8les publics des d\u00e9p\u00f4ts sensibles et d&#8217;acheminer les projets prot\u00e9g\u00e9s uniquement vers des fournisseurs auto-h\u00e9berg\u00e9s ou agr\u00e9\u00e9s.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour les environnements fortement bas\u00e9s sur GitLab, LiteLLM peut \u00e9galement servir de couche de compatibilit\u00e9 devant les syst\u00e8mes d&#8217;IA auto-h\u00e9berg\u00e9s ou internes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour les flux de travail centr\u00e9s sur GitHub, il permet de standardiser le comportement de l&#8217;IA entre les d\u00e9p\u00f4ts, m\u00eame si les \u00e9quipes pr\u00e9f\u00e8rent des mod\u00e8les diff\u00e9rents. Dans les deux cas, la v\u00e9ritable valeur ajout\u00e9e r\u00e9side non seulement dans l&#8217;acc\u00e8s aux mod\u00e8les, mais aussi dans le contr\u00f4le et la coh\u00e9rence.<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-background\" style=\"background-color:#ebf6ff\">Notre entreprise propose des licences par abonnement, du support et des services g\u00e9r\u00e9s pour LiteLLM, git, GitLab et GitHub.<br>Contactez-nous pour toute question.: <a href=\"mailto:litellm@almtoolbox.com\" target=\"_blank\" rel=\"noreferrer noopener\">litellm@almtoolbox.com<\/a> <br>ou appelez-nous :   +33 1 84 17 53 28 <\/h4>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Apprenez \u00e0 int\u00e9grer LiteLLM \u00e0 git, GitHub et GitLab pour la revue de code assist\u00e9e par l&#8217;IA, les commits, les notes de version et le routage s\u00e9curis\u00e9 des mod\u00e8les&hellip; <a class=\"more-link\" href=\"https:\/\/www.almtoolbox.com\/fr\/blog\/comment-integrer-litellm-aux-workflows-git-github-et-gitlab\/\">Continue reading <span class=\"screen-reader-text\">Comment int\u00e9grer LiteLLM aux workflows Git, GitHub et GitLab ?<\/span> <span class=\"meta-nav\" aria-hidden=\"true\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[42,365],"tags":[50,341,194,383,3,386,385],"class_list":["post-2268","post","type-post","status-publish","format-standard","hentry","category-devops","category-litellm","tag-devsecops","tag-git","tag-github","tag-github-actions","tag-gitlab","tag-llm-infrastructure","tag-self-hosted-ai"],"_links":{"self":[{"href":"https:\/\/www.almtoolbox.com\/fr\/blog\/wp-json\/wp\/v2\/posts\/2268","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.almtoolbox.com\/fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.almtoolbox.com\/fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.almtoolbox.com\/fr\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.almtoolbox.com\/fr\/blog\/wp-json\/wp\/v2\/comments?post=2268"}],"version-history":[{"count":3,"href":"https:\/\/www.almtoolbox.com\/fr\/blog\/wp-json\/wp\/v2\/posts\/2268\/revisions"}],"predecessor-version":[{"id":2279,"href":"https:\/\/www.almtoolbox.com\/fr\/blog\/wp-json\/wp\/v2\/posts\/2268\/revisions\/2279"}],"wp:attachment":[{"href":"https:\/\/www.almtoolbox.com\/fr\/blog\/wp-json\/wp\/v2\/media?parent=2268"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.almtoolbox.com\/fr\/blog\/wp-json\/wp\/v2\/categories?post=2268"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.almtoolbox.com\/fr\/blog\/wp-json\/wp\/v2\/tags?post=2268"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}