{"id":133132,"date":"2024-06-10T08:40:53","date_gmt":"2024-06-10T06:40:53","guid":{"rendered":"https:\/\/jfrog.com\/blog\/jfrog-github-integration-technical-details\/"},"modified":"2024-06-24T15:54:49","modified_gmt":"2024-06-24T13:54:49","slug":"jfrog-github-integration-technical-details","status":"publish","type":"post","link":"https:\/\/jfrog.com\/fr\/blog\/jfrog-github-integration-technical-details\/","title":{"rendered":"Comment connecter la Plateforme JFrog \u00e0 votre environnement GitHub pour cr\u00e9er une int\u00e9gration fluide"},"content":{"rendered":"<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-132085\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2024\/05\/28124036\/GitHub-JFrog-Integration-Announcement-blog-863x300-1.png\" alt=\"GitHub JFrog Integration\" width=\"863\" height=\"300\" \/><\/p>\n<p>La derni\u00e8re <a href=\"https:\/\/jfrog.com\/fr\/blog\/github-jfrog-single-platform-experience\/\">collaboration entre JFrog et GitHub<\/a> vous permet d&#8217;associer facilement vos solutions pr\u00e9f\u00e9r\u00e9es pour le code source et les fichiers binaires, gr\u00e2ce \u00e0 une int\u00e9gration fluide. Ainsi, vous b\u00e9n\u00e9ficiez d\u00e9sormais d&#8217;une exp\u00e9rience int\u00e9grale, unifi\u00e9e, compl\u00e8te et s\u00e9curis\u00e9e, pour prendre en charge vos projets logiciels.<\/p>\n<p>Cette int\u00e9gration couvre aussi bien les packages open source que le codage, le CI, la gestion des publications, le d\u00e9ploiement et la production. Vous b\u00e9n\u00e9ficiez \u00e9galement de trois am\u00e9liorations majeures pour votre exp\u00e9rience de d\u00e9veloppeur.<\/p>\n<ol>\n<li><strong>Authentification et autorisation unifi\u00e9es<\/strong> &#8211; pour les actions de workflow GitHub et pour une authentification de SSO fluide entre JFrog et GitHub.<\/li>\n<li><strong>Code bidirectionnel et association de package<\/strong> &#8211; Le code et les packages sont associ\u00e9s sur les deux plateformes.<\/li>\n<li><strong>S\u00e9curit\u00e9 unifi\u00e9e<\/strong> &#8211; Les d\u00e9tections de JFrog Advanced Security sont disponibles directement dans le tableau de bord GitHub, et extraient les contr\u00f4les de requ\u00eates effectu\u00e9s sur les fusions.<\/li>\n<\/ol>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-132065\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2024\/05\/29154839\/GitHub-and-JFrog.png\" alt=\"Flow chart demonstrating how GitHub and JFrog interact throughout the software development lifecycle.\" width=\"863\" height=\"497\" \/><\/p>\n<p style=\"text-align: center\"><em>Exp\u00e9rience int\u00e9grale et unifi\u00e9e JFrog et GitHub, du code au package<\/em><\/p>\n<p>Dans cet article de blog, nous allons passer en revue les flux de cas d\u2019utilisation, avec notamment des instructions \u00e9tape par \u00e9tape pour d\u00e9montrer l\u2019int\u00e9gration.<\/p>\n<p>C&#8217;est parti\u00a0!<\/p>\n<h2>Avant de commencer<\/h2>\n<p>Voici ce dont vous aurez besoin\u00a0:<\/p>\n<ul>\n<li><a href=\"https:\/\/jfrog.com\/fr\/start-free\/\">Cloud JFrog Platform<\/a>\n<ul>\n<li>Cr\u00e9ez un <a href=\"https:\/\/jfrog.com\/fr\/help\/r\/jfrog-platform-administration-documentation\/get-started-with-projects\">projet JFrog<\/a> nomm\u00e9 CodeNinjas_AI<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/github.com\/jfrog\/jfrog-github-example\/edit\/Adding-dependencies\/.github\/workflows\/build-publish.yml\">Exemple de d\u00e9p\u00f4t GitHub<\/a>\n<ul>\n<li>Dupliquez cet exemple de d\u00e9p\u00f4t afin d\u2019avoir votre propre copie pour faire des tests.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2 id=\"authentication-authorization\">1. Authentification et autorisation<\/h2>\n<p>Pour obtenir l\u2019authentification et l\u2019autorisation sur les deux plateformes, vous devez configurer\u00a0:<\/p>\n<ul>\n<li><a href=\"#github-variables\">Variables Github<\/a><\/li>\n<li><a href=\"#oauth\">OAuth<\/a><\/li>\n<li><a href=\"#oidc\">OIDC<\/a><\/li>\n<li><a href=\"#github-actions\">GitHub Actions<\/a><\/li>\n<\/ul>\n<h3 id=\"github-variables\">Variables Github<\/h3>\n<p>Les <a href=\"https:\/\/docs.github.com\/en\/actions\/learn-github-actions\/variables\">variables GitHub<\/a> servent \u00e0 stocker vos informations sensibles. D\u00e9finissez les deux variables suivantes dans GitHub, qui pointeront vers JFrog. Acc\u00e9dez \u00e0 <em>Settings<\/em> (Param\u00e8tres) &gt; <em>Secrets and variables<\/em> (Secrets et variables) &gt; <em>Actions<\/em>, puis ajoutez vos variables.<\/p>\n<ul>\n<li><strong>JF_URL<\/strong> &#8211; repr\u00e9sente l&#8217;URL de base sur le serveur JFrog<\/li>\n<li><strong>JF_PROJECT<\/strong> &#8211; repr\u00e9sente la cl\u00e9 du projet JFrog qui se connecte au d\u00e9p\u00f4t GitHub<\/li>\n<\/ul>\n<p style=\"text-align: center\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-132163\" style=\"cursor: pointer\" src=\"https:\/\/jfrog.com\/wp-content\/uploads\/2024\/05\/1_GitHub-Actions-Secrets-and-Variables.png\" alt=\"\" data-lity=\"\" \/><em>Secrets et variables des actions GitHub<\/em><\/p>\n<p style=\"text-align: right\"><a href=\"#authentication-authorization\">Retour en haut &gt;<\/a><\/p>\n<h3 id=\"oauth\">OAuth<\/h3>\n<p>Configurez OAuth pour vous connecter \u00e0 la Plateforme JFrog d&#8217;apr\u00e8s l&#8217;authentification GitHub <a href=\"https:\/\/jfrog.com\/fr\/help\/r\/jfrog-platform-administration-documentation\/github-oauth-setup\">GitHub OAuth<\/a>.<\/p>\n<p style=\"text-align: center\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-132169\" style=\"cursor: pointer\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2024\/05\/30095844\/2_GitHub-OAuth-Login-to-the-JFrog-Platform.png\" alt=\"GitHub OAuth Login to the JFrog Platform\" width=\"1999\" height=\"1108\" data-lity=\"\" \/><em>Connexion GitHub OAuth \u00e0 la Plateforme JFrog<\/em><\/p>\n<p style=\"text-align: right\"><a href=\"#authentication-authorization\">Retour en haut &gt;<\/a><\/p>\n<h3 id=\"oidc\">OIDC<\/h3>\n<p><a href=\"https:\/\/docs.github.com\/en\/actions\/deployment\/security-hardening-your-deployments\/about-security-hardening-with-openid-connect#benefits-of-using-oidc\">L&#8217;int\u00e9gration par JFrog d&#8217;OIDC avec GitHub Actions<\/a> vous permet d&#8217;\u00e9tablir une relation de confiance entre GitHub Actions et la Plateforme JFrog.<\/p>\n<p>\u00c0 partir de l&#8217;UI de la Plateforme JFrog, acc\u00e9dez \u00e0 l&#8217;onglet Administration &gt; <em>General<\/em> (G\u00e9n\u00e9ral) &gt; <em>Manage Integrations<\/em> (G\u00e9rer les int\u00e9grations) &gt; <em>New Integration<\/em> (Nouvelle int\u00e9gration) &gt; <em>OpenID Connect<\/em>.<\/p>\n<p>Configurez l&#8217;int\u00e9gration OIDC, puis cliquez sur <em>Save<\/em> (Enregistrer) et Continue (Continuer).<\/p>\n<p>Configurez les mappages d\u2019identit\u00e9\u00a0:<\/p>\n<ul>\n<li><strong>Name<\/strong> (Nom)\u00a0: nom des mappages d\u2019identit\u00e9<\/li>\n<li><strong>Description<\/strong>\u00a0: de pr\u00e9f\u00e9rence, doit identifier le d\u00e9p\u00f4t d\u2019origine et l\u2019identit\u00e9 mapp\u00e9e<\/li>\n<li><strong>Priority<\/strong> (Priorit\u00e9)\u00a0: ordre de priorit\u00e9 selon lequel les mappages d\u2019identit\u00e9 sont \u00e9valu\u00e9s<\/li>\n<li><strong>Claims json<\/strong> (Affirmations json)\u00a0: fichier JSON contenant toutes les affirmations \u00e0 v\u00e9rifier pour que ce mappage soit \u00e9valu\u00e9 comme vrai\n<ul>\n<li><strong>iss<\/strong>\u00a0: d\u00e9fini sur <a href=\"https:\/\/token.actions.githubusercontent.com\">https:\/\/token.actions.githubusercontent.com<\/a> pour v\u00e9rifier que les affirmations ont \u00e9t\u00e9 produites par Github<\/li>\n<li><strong>Enterprise<\/strong> (Entreprise)\u00a0: restriction des affirmations facultative pour le nom d\u2019entreprise auquel appartient le d\u00e9p\u00f4t<\/li>\n<li><strong>Repository<\/strong> (D\u00e9p\u00f4t)\u00a0: nom de votre d\u00e9p\u00f4t Github<\/li>\n<li><strong>Optional claims<\/strong> (Affirmations facultatives)\u00a0: environment, actor, runner_environment, sub, repository_owner, repository_visibility, workflow, etc.<br \/>\nPar exemple,<\/p>\n<pre class=\"language-bash\"><code>{\"repository\":\"&lt;repository_name&gt;, \"enterprise\":\"&lt;your_github_enterprise_name&gt;\"}<\/code><\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<li><strong>Token scope<\/strong> (Port\u00e9e du jeton)\u00a0: Groupe \/ Utilisateur \/ Administrateur\u00a0: jeton dont la port\u00e9e est d\u00e9limit\u00e9e avec un groupe\/utilisateur sp\u00e9cifique<\/li>\n<li><strong>Service<\/strong>\u00a0: services JFrog sp\u00e9cifiques\/tous les services JFrog pour permettre l\u2019acc\u00e8s<\/li>\n<li><strong>Token Expiration Time<\/strong> (D\u00e9lai d&#8217;expiration du jeton)\u00a0: nombre de minutes avant l\u2019expiration du jeton<\/li>\n<\/ul>\n<p style=\"text-align: center\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-132171\" style=\"cursor: pointer\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2024\/05\/30100003\/3_JFrog-Platform-Identity-Mapping.png\" alt=\"JFrog Platform - Identity Mapping\" width=\"1999\" height=\"1107\" data-lity=\"\" \/><em>Plateforme JFrog &#8211; Mappage d&#8217;identit\u00e9<\/em><\/p>\n<p style=\"text-align: center\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-132190\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2024\/05\/30122413\/JFrog-Platform-and-GitHub-OIDC-Integration_new.gif\" alt=\"JFrog Platform and GitHub - OIDC Integration\" width=\"3456\" height=\"1918\" \/><em>Plateforme JFrog et GitHub &#8211; Int\u00e9gration OIDC<\/em><\/p>\n<p style=\"text-align: right\"><a href=\"#authentication-authorization\">Retour en haut &gt;<\/a><\/p>\n<h3 id=\"github-actions\">GitHub Actions<\/h3>\n<p>Cr\u00e9ez votre configuration Github Action pour d\u00e9finir <a href=\"https:\/\/github.com\/marketplace\/actions\/setup-jfrog-cli\">JFrog CLI<\/a> et ex\u00e9cuter <a href=\"https:\/\/github.com\/jfrog\/frogbot\">JFrog FrogBot<\/a>.<\/p>\n<p><strong>D\u00e9finir la configuration JFrog CLI\u00a0:<\/strong><\/p>\n<pre class=\"language-bash\"><code>- name: Configurer JFrog CLI\r\n    utilise\u00a0: jfrog\/setup-jfrog-cli@v4\r\n    env: \r\n      JF_URL\u00a0: https:\/\/${{ vars.JF_URL }}\/\r\n      JF_PROJECT\u00a0: ${{ vars.JF_PROJECT }}\r\n    avec\u00a0:\r\n      oidc-provider-name\u00a0: &lt;nom de l'int\u00e9gration OIDC d\u00e9finie sur la Plateforme JFrog&gt;<\/code><\/pre>\n<p><strong>Configuration de Frogbot\u00a0:<\/strong><\/p>\n<pre class=\"language-bash\"><code> - uses: jfrog\/frogbot@v2\r\n      avec\u00a0:\r\n          oidc-provider-name\u00a0: \r\nenv:\r\n          # URL de la Plateforme JFrog\r\n          JF_URL\u00a0: https:\/\/${{ vars.JF_URL }}\/\r\n          JF_PROJECT\u00a0: ${{ vars.JF_PROJECT }}\r\n          JF_GIT_TOKEN\u00a0: ${{ secrets.GITHUB_TOKEN }}\r\n          \u2026<\/code><\/pre>\n<p style=\"text-align: right\"><a href=\"#authentication-authorization\">Retour en haut &gt;<\/a><\/p>\n<h2>2. Association de package et code bidirectionnel<\/h2>\n<p>L&#8217;utilisation de <a href=\"https:\/\/docs.jfrog.com\/integrations\/docs\/download-and-install-the-jfrog-cli\">JFrog CLI<\/a> dans votre <a href=\"https:\/\/docs.github.com\/en\/actions\">action de build GitHub<\/a> connecte le build aux informations de build pertinentes, aux packages et aux scans de s\u00e9curit\u00e9 dans JFrog. Cette int\u00e9gration vous permet de combiner GitHub Actions et JFrog Artifactory.<\/p>\n<p>Cet exemple de t\u00e2che de build yml est configur\u00e9 pour <a href=\"https:\/\/docs.github.com\/en\/actions\/using-workflows\/triggering-a-workflow\">se d\u00e9clencher automatiquement<\/a> apr\u00e8s chaque requ\u00eate d&#8217;extraction\/d&#8217;envoi.<\/p>\n<pre class=\"language-bash\"><code> # configuration de python pour utiliser un d\u00e9p\u00f4t python organis\u00e9\r\n- name: configurer l\u2019environnement jfrog\r\n    run: |\r\n      jf pip-config --repo-resolve=python-virtual \r\n# configuration de python\r\n- name: configurer l\u2019environnement\r\n              run: |                      \r\n                python3 -m pip install --upgrade pip setuptools wheel sigstore\r\n                wheel -h\r\n                pip show setuptools\r\n                echo $VIRTUAL_ENV\r\n# cr\u00e9ation du package python\r\n- name: projet de build\r\n    run: |                      \r\n      jf pip install -r requirements.txt\r\npython setup.py sdist bdist_wheel\r\ncd dist &amp;&amp; echo \"hashes=$(sha256sum * | base64 -w0)\" &gt;&gt; $GITHUB_OUTPUT\r\n\r\n# t\u00e9l\u00e9verser le package python sur la Plateforme JFrog\r\n- name: publier un package python\r\n    run: |\r\n      jf rt upload dist\/ python-virtual\/example-projects\/ \r\n\r\n# d\u00e9finition de Docker\r\n- name: Configurer Docker Buildx\r\n  utilise\u00a0: docker\/setup-buildx-action@v3\r\n\r\n# authentification docker \u00e0 l\u2019aide des identifiants de courte dur\u00e9e oidc\r\n- name: Authentifier Docker\r\n    utilise\u00a0: docker\/login-action@v3\r\n    avec\u00a0:\r\n      registre\u00a0: ${{ vars.JF_URL }}\r\n      nom d'utilisateur\u00a0: ${{ steps.setup-cli.outputs.oidc-user }}\r\n      mot de passe\u00a0: ${{ steps.setup-cli.outputs.oidc-token }}\r\n# build d'image de docker\r\n- name: Cr\u00e9er une image Docker\r\n    utilise\u00a0: docker\/build-push-action@v5\r\n    id\u00a0: build\r\n    avec\u00a0:\r\n      envoi\u00a0: vrai\r\n      plateformes\u00a0: linux\/amd64 #, linux\/arm64\r\n      \u00e9tiquettes\u00a0: ${{ vars.JF_URL }}\/${{ env.DOCKER_REPO }}\/${{ env.IMAGE_NAME }}\r\n# scan docker xray\r\n- name: scan docker\r\n     run: |  \r\n       jf docker pull ${{ vars.JF_URL }}\/${{ env.DOCKER_REPO }}\/${{ env.IMAGE_NAME }}\r\n       jf docker scan ${{ vars.JF_URL }}\/${{ env.DOCKER_REPO }}\/${{ env.IMAGE_NAME }} \r\n\r\n# ajout du docker con\u00e7u dans les informations de build de JFrog\r\n- name: ajouter un package docker au build\r\n    run: |  \r\n      echo \"${{ vars.JF_URL }}\/${{ env.DOCKER_REPO }}\/${{ env.IMAGE_NAME }}@${{ steps.build.outputs.digest }}\" &gt; metadata.json\r\n      jf rt build-docker-create ${{ env.DOCKER_REPO }} --image-file metadata.json \r\n\r\n# publication et scan d\u2019une information de build pour le build\r\n- name: publier les informations du build\r\n    run: |\r\n      jf rt build-collect-env      # Collecter les variables d'environnement\r\n      jf rt build-publish       # Publier les informations de build\r\n      jf build-scan  # Informations de build de scan Xray<\/code><\/pre>\n<h3>R\u00e9sum\u00e9 de la t\u00e2che JFrog dans GitHub<\/h3>\n<p>Une fois l\u2019ex\u00e9cution du build termin\u00e9e, un r\u00e9sum\u00e9 de la t\u00e2che qui inclut les informations de build et de s\u00e9curit\u00e9 est g\u00e9n\u00e9r\u00e9. Vous pouvez facilement naviguer entre les plateformes JFrog et GitHub. Vous pouvez ainsi consulter les donn\u00e9es de scan de s\u00e9curit\u00e9 Xray, les d\u00e9tails du build du projet tels que le diff de build, les variables d\u2019environnement, les informations json de build, et bien plus encore. Vous pouvez \u00e9galement obtenir des informations suppl\u00e9mentaires sur vos artefacts et votre scan de s\u00e9curit\u00e9 en cliquant sur le lien du package de projet, qui vous dirigera vers la vue des packages de projet JFrog.<\/p>\n<p style=\"text-align: center\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-131819\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2024\/05\/28140733\/JFrog-Job-Summar-and-Build-Info-SBOM-pointing-back-to-GitHub-Job.gif\" alt=\"JFrog Job Summary, and Build-Info SBOM pointing back to GitHub Job\" width=\"3456\" height=\"1918\" \/><em>R\u00e9sum\u00e9 de t\u00e2che JFrog, packages, vuln\u00e9rabilit\u00e9s et informations sur le build SBOM pointant vers la t\u00e2che GitHub<\/em><\/p>\n<h2>3. S\u00e9curit\u00e9 unifi\u00e9e<\/h2>\n<p><a href=\"https:\/\/jfrog.com\/fr\/blog\/secure-your-git-repository-with-frogbot-the-git-bot\/\">JFrog Frogbot<\/a> scanne automatiquement vos d\u00e9p\u00f4ts pour d\u00e9tecter les vuln\u00e9rabilit\u00e9s potentielles, les secrets expos\u00e9s et les malwares dans vos d\u00e9pendances. Lorsque des vuln\u00e9rabilit\u00e9s sont d\u00e9tect\u00e9es, Frogbot vous avertit et peut \u00e9galement ouvrir automatiquement des demandes de d&#8217;extraction avec des correctifs sugg\u00e9r\u00e9s, ce qui rationalise le processus de correction. Ces v\u00e9rifications peuvent \u00e9viter que toute modification de code non autoris\u00e9e ne soit fusionn\u00e9e dans votre d\u00e9p\u00f4t.<\/p>\n<p>Vous b\u00e9n\u00e9ficiez \u00e9galement de rapports et de tableaux de bord d\u00e9taill\u00e9s qui peuvent vous aider \u00e0 r\u00e9pondre aux exigences de conformit\u00e9 et donner un aper\u00e7u de la posture de s\u00e9curit\u00e9 de vos projets.<\/p>\n<p><a href=\"https:\/\/docs.jfrog.com\/integrations\/docs\/integration-workflows#configure-frogbot-in-github-actions\">Configuration Frogbot avec des actions GitHub &gt;<\/a><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-132188\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2024\/05\/30121539\/JFrog-Frogbot-Unsafe-Hash-Algorithm.gif\" alt=\"Unsafe Hash Algorithm\" width=\"3446\" height=\"1896\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Dans cet exemple, nous pouvons voir que Frogbot a d\u00e9tect\u00e9 un algorithme de hachage non s\u00e9curis\u00e9\u00a0:<\/p>\n<table>\n<tbody>\n<tr>\n<td><em>Une vuln\u00e9rabilit\u00e9 d&#8217;algorithme de hachage non s\u00e9curis\u00e9 se produit lors de l&#8217;utilisation d&#8217;un algorithme de hachage non s\u00e9curis\u00e9 connu. Un algorithme de hachage accepte une entr\u00e9e arbitraire et g\u00e9n\u00e8re une valeur de hachage, une sortie \u00e0 longueur fixe qui peut \u00eatre utilis\u00e9e pour v\u00e9rifier l&#8217;int\u00e9grit\u00e9 des donn\u00e9es, comme les mots de passe ou les fichiers.<br \/>\nUn algorithme de hachage non s\u00e9curis\u00e9 dans un algorithme qu&#8217;un attaquant peut utiliser pour g\u00e9n\u00e9rer la m\u00eame valeur de hachage pour diff\u00e9rentes donn\u00e9es d&#8217;entr\u00e9e dans un d\u00e9lai raisonnable (\u00ab\u00a0attaque de collision de hachage\u00a0\u00bb).<\/em><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>La correction suivante a \u00e9galement \u00e9t\u00e9 fournie pour nous aider \u00e0 r\u00e9soudre facilement le probl\u00e8me\u00a0:<\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-132175\" style=\"cursor: pointer\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2024\/05\/30101004\/4_Remediation.png\" alt=\"Remediation\" width=\"901\" height=\"348\" data-lity=\"\" \/><\/p>\n<p>Voil\u00e0\u00a0!<\/p>\n<p>Maintenant, il ne vous reste plus qu\u2019\u00e0 essayer.<\/p>\n<p>&nbsp;<\/p>\n<h4 style=\"text-align: center\">D\u00e9couvrez la puissance de l&#8217;association de GitHub et JFrog le 13\u00a0juin.<\/h4>\n<p style=\"text-align: center\"><span style=\"font-weight: 400\">\n    <a class=\"button button-primary\"  href=\"https:\/\/jfrog.com\/fr\/github-webinar\/\" target=\"_self\">\n    <span>Inscrivez-vous \u00e0 notre webinaire commun<\/span>\n    <\/a>\n    <\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>La derni\u00e8re collaboration entre JFrog et GitHub vous permet d&#8217;associer facilement vos solutions pr\u00e9f\u00e9r\u00e9es pour le code source et les fichiers binaires, gr\u00e2ce \u00e0 une int\u00e9gration fluide. Ainsi, vous b\u00e9n\u00e9ficiez d\u00e9sormais d&#8217;une exp\u00e9rience int\u00e9grale, unifi\u00e9e, compl\u00e8te et s\u00e9curis\u00e9e, pour prendre en charge vos projets logiciels. Cette int\u00e9gration couvre aussi bien les packages open source que &hellip;<\/p>\n","protected":false},"author":73,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[10503,10502,10425,10153,9963,9960,9392,9370],"tags":[10532,10533],"class_list":["post-133132","post","type-post","status-publish","format-standard","hentry","category-pipelines-ci-cd","category-distribution-de-logiciels","category-distribution-fr","category-securite-et-devsecops","category-plateforme-jfrog","category-gestion-des-artefacts","category-xray-fr","category-artifactory-fr","tag-github-fr","tag-integration-fr"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v22.6 (Yoast SEO v22.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Comment connecter la Plateforme JFrog \u00e0 votre environnement GitHub pour cr\u00e9er une int\u00e9gration fluide | JFrog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/posts\/133132\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Comment connecter la Plateforme JFrog \u00e0 votre environnement GitHub pour cr\u00e9er une int\u00e9gration fluide\" \/>\n<meta property=\"og:description\" content=\"La derni\u00e8re collaboration entre JFrog et GitHub vous permet d&#8217;associer facilement vos solutions pr\u00e9f\u00e9r\u00e9es pour le code source et les fichiers binaires, gr\u00e2ce \u00e0 une int\u00e9gration fluide. Ainsi, vous b\u00e9n\u00e9ficiez d\u00e9sormais d&#8217;une exp\u00e9rience int\u00e9grale, unifi\u00e9e, compl\u00e8te et s\u00e9curis\u00e9e, pour prendre en charge vos projets logiciels. Cette int\u00e9gration couvre aussi bien les packages open source que &hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jfrog.com\/fr\/blog\/jfrog-github-integration-technical-details\/\" \/>\n<meta property=\"og:site_name\" content=\"JFrog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/artifrog\" \/>\n<meta property=\"article:published_time\" content=\"2024-06-10T06:40:53+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-06-24T13:54:49+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2024\/05\/30211943\/1200x630-2.png\" \/>\n<meta name=\"author\" content=\"adia\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@jfrog\" \/>\n<meta name=\"twitter:site\" content=\"@jfrog\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"adia\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/jfrog-github-integration-technical-details\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/jfrog-github-integration-technical-details\/\"},\"author\":{\"name\":\"adia\",\"@id\":\"https:\/\/jfrog.com\/fr\/#\/schema\/person\/b3b548d5ef5d4a09a60c063aca4e2536\"},\"headline\":\"Comment connecter la Plateforme JFrog \u00e0 votre environnement GitHub pour cr\u00e9er une int\u00e9gration fluide\",\"datePublished\":\"2024-06-10T06:40:53+00:00\",\"dateModified\":\"2024-06-24T13:54:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/jfrog-github-integration-technical-details\/\"},\"wordCount\":1255,\"publisher\":{\"@id\":\"https:\/\/jfrog.com\/fr\/#organization\"},\"image\":{\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/jfrog-github-integration-technical-details\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/jfrog.com\/wp-content\/uploads\/2024\/05\/GitHub-JFrog-Integration-Announcement-blog-863x300-1.png\",\"keywords\":[\"github\",\"int\u00e9gration\"],\"articleSection\":[\"Pipelines CI\/CD\",\"Distribution de Logiciels\",\"Distribution\",\"S\u00e9curit\u00e9 et DevSecOps\",\"Plateforme JFrog\",\"Gestion des Artefacts\",\"Xray\",\"Artifactory\"],\"inLanguage\":\"fr-FR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/jfrog-github-integration-technical-details\/\",\"url\":\"https:\/\/jfrog.com\/fr\/blog\/jfrog-github-integration-technical-details\/\",\"name\":\"Comment connecter la Plateforme JFrog \u00e0 votre environnement GitHub pour cr\u00e9er une int\u00e9gration fluide | JFrog\",\"isPartOf\":{\"@id\":\"https:\/\/jfrog.com\/fr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/jfrog-github-integration-technical-details\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/jfrog-github-integration-technical-details\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/jfrog.com\/wp-content\/uploads\/2024\/05\/GitHub-JFrog-Integration-Announcement-blog-863x300-1.png\",\"datePublished\":\"2024-06-10T06:40:53+00:00\",\"dateModified\":\"2024-06-24T13:54:49+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/jfrog-github-integration-technical-details\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jfrog.com\/fr\/blog\/jfrog-github-integration-technical-details\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/jfrog-github-integration-technical-details\/#primaryimage\",\"url\":\"https:\/\/jfrog.com\/wp-content\/uploads\/2024\/05\/GitHub-JFrog-Integration-Announcement-blog-863x300-1.png\",\"contentUrl\":\"https:\/\/jfrog.com\/wp-content\/uploads\/2024\/05\/GitHub-JFrog-Integration-Announcement-blog-863x300-1.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/jfrog-github-integration-technical-details\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jfrog.com\/fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Comment connecter la Plateforme JFrog \u00e0 votre environnement GitHub pour cr\u00e9er une int\u00e9gration fluide\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jfrog.com\/fr\/#website\",\"url\":\"https:\/\/jfrog.com\/fr\/\",\"name\":\"JFrog\",\"description\":\"Deliver Trusted Software Releases at Speed and Scale\",\"publisher\":{\"@id\":\"https:\/\/jfrog.com\/fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jfrog.com\/fr\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jfrog.com\/fr\/#organization\",\"name\":\"JFrog\",\"url\":\"https:\/\/jfrog.com\/fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/jfrog.com\/fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/05\/27095207\/Logo.svg\",\"contentUrl\":\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/05\/27095207\/Logo.svg\",\"width\":74,\"height\":73,\"caption\":\"JFrog\"},\"image\":{\"@id\":\"https:\/\/jfrog.com\/fr\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/artifrog\",\"https:\/\/x.com\/jfrog\",\"https:\/\/www.linkedin.com\/company\/455737\",\"https:\/\/www.youtube.com\/channel\/UCh2hNg76zo3d1qQqTWIQxDg\",\"https:\/\/www.wikidata.org\/wiki\/Q98608948\"],\"description\":\"We set out on our Liquid Software journey in 2008, with the mission to transform the way enterprises manage and release software updates. The world expects software to update continuously, securely, non-intrusively and without user intervention. This hyper-connected experience can only be enabled by automation with an end-to-end DevOps platform and a binary-centric focus. With this in mind, we\u2019ve developed the JFrog Platform, ushering in a new era of DevOps and DevSecOps standards that power continuous updates. More than a decade after our founding, with thousands of customers and millions of users globally, JFrog has become the \u201cDatabase of DevOps\u201d and the de-facto standard in release and update management.\",\"legalName\":\"Jfrog, Inc.\",\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"minValue\":\"1001\",\"maxValue\":\"5000\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jfrog.com\/fr\/#\/schema\/person\/b3b548d5ef5d4a09a60c063aca4e2536\",\"name\":\"adia\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/jfrog.com\/fr\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/b632c6f43bb8b7c0b2f98092b7eae6c7ae2fced89a69f7c37fd180fa93d803dc?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/b632c6f43bb8b7c0b2f98092b7eae6c7ae2fced89a69f7c37fd180fa93d803dc?s=96&d=mm&r=g\",\"caption\":\"adia\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Comment connecter la Plateforme JFrog \u00e0 votre environnement GitHub pour cr\u00e9er une int\u00e9gration fluide | JFrog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/posts\/133132","og_locale":"fr_FR","og_type":"article","og_title":"Comment connecter la Plateforme JFrog \u00e0 votre environnement GitHub pour cr\u00e9er une int\u00e9gration fluide","og_description":"La derni\u00e8re collaboration entre JFrog et GitHub vous permet d&#8217;associer facilement vos solutions pr\u00e9f\u00e9r\u00e9es pour le code source et les fichiers binaires, gr\u00e2ce \u00e0 une int\u00e9gration fluide. Ainsi, vous b\u00e9n\u00e9ficiez d\u00e9sormais d&#8217;une exp\u00e9rience int\u00e9grale, unifi\u00e9e, compl\u00e8te et s\u00e9curis\u00e9e, pour prendre en charge vos projets logiciels. Cette int\u00e9gration couvre aussi bien les packages open source que &hellip;","og_url":"https:\/\/jfrog.com\/fr\/blog\/jfrog-github-integration-technical-details\/","og_site_name":"JFrog","article_publisher":"https:\/\/www.facebook.com\/artifrog","article_published_time":"2024-06-10T06:40:53+00:00","article_modified_time":"2024-06-24T13:54:49+00:00","og_image":[{"url":"https:\/\/media.jfrog.com\/wp-content\/uploads\/2024\/05\/30211943\/1200x630-2.png"}],"author":"adia","twitter_card":"summary_large_image","twitter_creator":"@jfrog","twitter_site":"@jfrog","twitter_misc":{"Written by":"adia","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jfrog.com\/fr\/blog\/jfrog-github-integration-technical-details\/#article","isPartOf":{"@id":"https:\/\/jfrog.com\/fr\/blog\/jfrog-github-integration-technical-details\/"},"author":{"name":"adia","@id":"https:\/\/jfrog.com\/fr\/#\/schema\/person\/b3b548d5ef5d4a09a60c063aca4e2536"},"headline":"Comment connecter la Plateforme JFrog \u00e0 votre environnement GitHub pour cr\u00e9er une int\u00e9gration fluide","datePublished":"2024-06-10T06:40:53+00:00","dateModified":"2024-06-24T13:54:49+00:00","mainEntityOfPage":{"@id":"https:\/\/jfrog.com\/fr\/blog\/jfrog-github-integration-technical-details\/"},"wordCount":1255,"publisher":{"@id":"https:\/\/jfrog.com\/fr\/#organization"},"image":{"@id":"https:\/\/jfrog.com\/fr\/blog\/jfrog-github-integration-technical-details\/#primaryimage"},"thumbnailUrl":"https:\/\/jfrog.com\/wp-content\/uploads\/2024\/05\/GitHub-JFrog-Integration-Announcement-blog-863x300-1.png","keywords":["github","int\u00e9gration"],"articleSection":["Pipelines CI\/CD","Distribution de Logiciels","Distribution","S\u00e9curit\u00e9 et DevSecOps","Plateforme JFrog","Gestion des Artefacts","Xray","Artifactory"],"inLanguage":"fr-FR"},{"@type":"WebPage","@id":"https:\/\/jfrog.com\/fr\/blog\/jfrog-github-integration-technical-details\/","url":"https:\/\/jfrog.com\/fr\/blog\/jfrog-github-integration-technical-details\/","name":"Comment connecter la Plateforme JFrog \u00e0 votre environnement GitHub pour cr\u00e9er une int\u00e9gration fluide | JFrog","isPartOf":{"@id":"https:\/\/jfrog.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/jfrog.com\/fr\/blog\/jfrog-github-integration-technical-details\/#primaryimage"},"image":{"@id":"https:\/\/jfrog.com\/fr\/blog\/jfrog-github-integration-technical-details\/#primaryimage"},"thumbnailUrl":"https:\/\/jfrog.com\/wp-content\/uploads\/2024\/05\/GitHub-JFrog-Integration-Announcement-blog-863x300-1.png","datePublished":"2024-06-10T06:40:53+00:00","dateModified":"2024-06-24T13:54:49+00:00","breadcrumb":{"@id":"https:\/\/jfrog.com\/fr\/blog\/jfrog-github-integration-technical-details\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jfrog.com\/fr\/blog\/jfrog-github-integration-technical-details\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/jfrog.com\/fr\/blog\/jfrog-github-integration-technical-details\/#primaryimage","url":"https:\/\/jfrog.com\/wp-content\/uploads\/2024\/05\/GitHub-JFrog-Integration-Announcement-blog-863x300-1.png","contentUrl":"https:\/\/jfrog.com\/wp-content\/uploads\/2024\/05\/GitHub-JFrog-Integration-Announcement-blog-863x300-1.png"},{"@type":"BreadcrumbList","@id":"https:\/\/jfrog.com\/fr\/blog\/jfrog-github-integration-technical-details\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jfrog.com\/fr\/"},{"@type":"ListItem","position":2,"name":"Comment connecter la Plateforme JFrog \u00e0 votre environnement GitHub pour cr\u00e9er une int\u00e9gration fluide"}]},{"@type":"WebSite","@id":"https:\/\/jfrog.com\/fr\/#website","url":"https:\/\/jfrog.com\/fr\/","name":"JFrog","description":"Deliver Trusted Software Releases at Speed and Scale","publisher":{"@id":"https:\/\/jfrog.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jfrog.com\/fr\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/jfrog.com\/fr\/#organization","name":"JFrog","url":"https:\/\/jfrog.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/jfrog.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/05\/27095207\/Logo.svg","contentUrl":"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/05\/27095207\/Logo.svg","width":74,"height":73,"caption":"JFrog"},"image":{"@id":"https:\/\/jfrog.com\/fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/artifrog","https:\/\/x.com\/jfrog","https:\/\/www.linkedin.com\/company\/455737","https:\/\/www.youtube.com\/channel\/UCh2hNg76zo3d1qQqTWIQxDg","https:\/\/www.wikidata.org\/wiki\/Q98608948"],"description":"We set out on our Liquid Software journey in 2008, with the mission to transform the way enterprises manage and release software updates. The world expects software to update continuously, securely, non-intrusively and without user intervention. This hyper-connected experience can only be enabled by automation with an end-to-end DevOps platform and a binary-centric focus. With this in mind, we\u2019ve developed the JFrog Platform, ushering in a new era of DevOps and DevSecOps standards that power continuous updates. More than a decade after our founding, with thousands of customers and millions of users globally, JFrog has become the \u201cDatabase of DevOps\u201d and the de-facto standard in release and update management.","legalName":"Jfrog, Inc.","numberOfEmployees":{"@type":"QuantitativeValue","minValue":"1001","maxValue":"5000"}},{"@type":"Person","@id":"https:\/\/jfrog.com\/fr\/#\/schema\/person\/b3b548d5ef5d4a09a60c063aca4e2536","name":"adia","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/jfrog.com\/fr\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/b632c6f43bb8b7c0b2f98092b7eae6c7ae2fced89a69f7c37fd180fa93d803dc?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b632c6f43bb8b7c0b2f98092b7eae6c7ae2fced89a69f7c37fd180fa93d803dc?s=96&d=mm&r=g","caption":"adia"}}]}},"_links":{"self":[{"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/posts\/133132","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/users\/73"}],"replies":[{"embeddable":true,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/comments?post=133132"}],"version-history":[{"count":5,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/posts\/133132\/revisions"}],"predecessor-version":[{"id":134411,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/posts\/133132\/revisions\/134411"}],"wp:attachment":[{"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/media?parent=133132"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/categories?post=133132"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/tags?post=133132"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}