{"id":133126,"date":"2024-06-10T08:29:17","date_gmt":"2024-06-10T06:29:17","guid":{"rendered":"https:\/\/jfrog.com\/blog\/jfrog-github-integration-technical-details\/"},"modified":"2024-09-26T12:27:28","modified_gmt":"2024-09-26T10:27:28","slug":"jfrog-github-integration-technical-details","status":"publish","type":"post","link":"https:\/\/jfrog.com\/ja\/blog\/jfrog-github-integration-technical-details\/","title":{"rendered":"JFrog Platform\u3092GitHub\u74b0\u5883\u306b\u63a5\u7d9a\u3057\u3066\u30b7\u30fc\u30e0\u30ec\u30b9\u306a\u7d71\u5408\u3092\u4f5c\u6210\u3059\u308b\u65b9\u6cd5"},"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><a href=\"https:\/\/jfrog.com\/ja\/blog\/github-jfrog-single-platform-experience\/\">GitHub\u3068\u306e\u6700\u65b0\u306eJFrog\u30b3\u30e9\u30dc\u30ec\u30fc\u30b7\u30e7\u30f3<\/a>\u306b\u3088\u308a\u3001\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3068\u30d0\u30a4\u30ca\u30ea\u306e\u304a\u6c17\u306b\u5165\u308a\u306e\u30bd\u30ea\u30e5\u30fc\u30b7\u30e7\u30f3\u3092\u30b7\u30fc\u30e0\u30ec\u30b9\u306a\u7d71\u5408\u3067\u7c21\u5358\u306b\u7d44\u307f\u5408\u308f\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u3064\u307e\u308a\u3001\u3053\u308c\u306b\u3088\u308a\u3001\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u30b5\u30dd\u30fc\u30c8\u3059\u308b\u3001\u7d71\u5408\u3055\u308c\u305f\u5305\u62ec\u7684\u3067\u30bb\u30ad\u30e5\u30a2\u306a\u30a8\u30f3\u30c9\u30c4\u30fc\u30a8\u30f3\u30c9\u306e\u30a8\u30af\u30b9\u30da\u30ea\u30a8\u30f3\u30b9\u304c\u5f97\u3089\u308c\u307e\u3059\u3002<\/p>\n<p>\u3053\u306e\u7d71\u5408\u306f\u3001\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u30ad\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3\u304b\u3089\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3001CI\u3001\u30ea\u30ea\u30fc\u30b9\u7ba1\u7406\u3001\u30c7\u30d7\u30ed\u30a4\u3001\u672c\u756a\u74b0\u5883\u307e\u3067\u3001\u3059\u3079\u3066\u3092\u30ab\u30d0\u30fc\u3057\u3066\u3044\u307e\u3059\u3002\u3053\u308c\u306b\u306f\u3001\u958b\u767a\u8005\u30a8\u30af\u30b9\u30da\u30ea\u30a8\u30f3\u30b9\u306b\u5bfe\u3059\u308b3\u3064\u306e\u5927\u304d\u306a\u6539\u5584\u304c\u542b\u307e\u308c\u307e\u3059\u3002<\/p>\n<ol>\n<li><strong>\u7d71\u4e00\u3055\u308c\u305f\u8a8d\u8a3c\u3068\u8a8d\u53ef<\/strong> &#8211; GitHub\u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u30a2\u30af\u30b7\u30e7\u30f3\u3068\u3001JFrog\u3068GitHub\u9593\u306e\u30b7\u30fc\u30e0\u30ec\u30b9\u306aSSO\u8a8d\u8a3c\u306b\u3064\u3044\u3066\u7d71\u4e00\u304c\u56f3\u3089\u308c\u307e\u3059\u3002<\/li>\n<li><strong>\u53cc\u65b9\u5411\u306e\u30b3\u30fc\u30c9\u3068\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u30ea\u30f3\u30af<\/strong> &#8211; \u30b3\u30fc\u30c9\u3068\u30d1\u30c3\u30b1\u30fc\u30b8\u306f\u4e21\u65b9\u306e\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3067\u30ea\u30f3\u30af\u3055\u308c\u307e\u3059\u3002<\/li>\n<li><strong>\u7d71\u5408\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3<\/strong> &#8211; JFrog Advanced Security\u306e\u8abf\u67fb\u7d50\u679c\u306fGitHub\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u304b\u3089\u76f4\u63a5\u5165\u624b\u3067\u304d\u3001\u30de\u30fc\u30b8\u6642\u306b\u30d7\u30eb\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u30c1\u30a7\u30c3\u30af\u304c\u5b9f\u884c\u3055\u308c\u307e\u3059\u3002<\/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>\u30b3\u30fc\u30c9\u304b\u3089\u30d1\u30c3\u30b1\u30fc\u30b8\u307e\u3067\u3001\u7d71\u5408\u3055\u308c\u305f\u30a8\u30f3\u30c9\u30c4\u30fc\u30a8\u30f3\u30c9\u306eJFrog\u3068GitHub\u30a8\u30af\u30b9\u30da\u30ea\u30a8\u30f3\u30b9<\/em><\/p>\n<p>\u3053\u306e\u30d6\u30ed\u30b0\u8a18\u4e8b\u3067\u306f\u3001\u7d71\u5408\u306e\u30c7\u30e2\u3092\u884c\u3046\u305f\u3081\u306e\u8a73\u7d30\u306a\u624b\u9806\u3092\u542b\u3081\u305f\u3001\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9\u306e\u6d41\u308c\u306b\u3064\u3044\u3066\u8aac\u660e\u3057\u307e\u3059\u3002<\/p>\n<p>\u305d\u308c\u3067\u306f\u59cb\u3081\u307e\u3057\u3087\u3046\u3002<\/p>\n<h2>\u306f\u3058\u3081\u306b<\/h2>\n<p>\u4e8b\u524d\u306b\u6e96\u5099\u3057\u3066\u304a\u304f\u3082\u306e\u306f\u4ee5\u4e0b\u306e\u901a\u308a\u3067\u3059\u3002<\/p>\n<ul>\n<li><a href=\"https:\/\/jfrog.com\/ja\/start-free\/\">JFrog Platform Cloud<\/a>\n<ul>\n<li>CodeNinjas_AI\u3068\u547c\u3070\u308c\u308b<a href=\"https:\/\/jfrog.com\/ja\/help\/r\/jfrog-platform-administration-documentation\/get-started-with-projects\">JFrog\u30d7\u30ed\u30b8\u30a7\u30af\u30c8<\/a>\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/github.com\/jfrog\/jfrog-github-example\/edit\/Adding-dependencies\/.github\/workflows\/build-publish.yml\">GitHub\u306e\u30b5\u30f3\u30d7\u30eb\u30ea\u30dd\u30b8\u30c8\u30ea<\/a>\n<ul>\n<li>\u3053\u306e\u30b5\u30f3\u30d7\u30eb\u30ea\u30dd\u30b8\u30c8\u30ea\u3092\u30d5\u30a9\u30fc\u30af\u3057\u3066\u3001\u81ea\u5206\u81ea\u8eab\u306e\u30b3\u30d4\u30fc\u3067\u8a66\u305b\u308b\u3088\u3046\u306b\u3057\u307e\u3059\u3002<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2 id=\"authentication-authorization\">1.\u8a8d\u8a3c\u3068\u8a8d\u53ef<\/h2>\n<p>\u4e21\u65b9\u306e\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3067\u8a8d\u8a3c\u3068\u8a8d\u53ef\u3092\u884c\u3046\u306b\u306f\u3001\u6b21\u306e\u69cb\u6210\u304c\u5fc5\u8981\u3067\u3059\u3002<\/p>\n<ul>\n<li><a href=\"#github-variables\">Github\u5909\u6570<\/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\">Github\u5909\u6570<\/h3>\n<p><a href=\"https:\/\/docs.github.com\/en\/actions\/learn-github-actions\/variables\">GitHub\u5909\u6570<\/a>\u306f\u3001\u6a5f\u5bc6\u6027\u306e\u9ad8\u3044\u8a8d\u8a3c\u3092\u683c\u7d0d\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002JFrog\u3092\u6307\u3059\u6b21\u306e2\u3064\u306e\u5909\u6570\u3092GitHub\u3067\u5b9a\u7fa9\u3057\u307e\u3059\u3002<em>Settings<\/em> &gt; <em>Secrets and variables<\/em> &gt; <em>Actions<\/em>\u306b\u79fb\u52d5\u3057\u3001\u5909\u6570\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002<\/p>\n<ul>\n<li><strong>JF_URL<\/strong> &#8211; JFrog\u30b5\u30fc\u30d0\u30fc\u3078\u306e\u30d9\u30fc\u30b9URL\u3092\u8868\u3057\u307e\u3059\u3002<\/li>\n<li><strong>JF_PROJECT<\/strong> &#8211; GitHub\u30ea\u30dd\u30b8\u30c8\u30ea\u306b\u63a5\u7d9a\u3059\u308bJFrog\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30ad\u30fc\u3092\u8868\u3057\u307e\u3059<\/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>GitHub Actions\u306e\u30b7\u30fc\u30af\u30ec\u30c3\u30c8\u3068\u5909\u6570<\/em><\/p>\n<p style=\"text-align: right;\"><a href=\"#authentication-authorization\">\u30c8\u30c3\u30d7\u306b\u623b\u308b &gt;<\/a><\/p>\n<h3 id=\"oauth\">OAuth<\/h3>\n<p>GitHub\u8a8d\u8a3c\u3067\u3042\u308b<a href=\"https:\/\/jfrog.com\/ja\/help\/r\/jfrog-platform-administration-documentation\/github-oauth-setup\">GitHub OAuth<\/a>\u306b\u57fa\u3065\u3044\u3066JFrog Platform\u306b\u30ed\u30b0\u30a4\u30f3\u3059\u308b\u3088\u3046\u306bOAuth\u3092\u69cb\u6210\u3057\u307e\u3059\u3002<\/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>JFrog Platform\u3078\u306eGitHub OAuth\u306e\u30ed\u30b0\u30a4\u30f3<\/em><\/p>\n<p style=\"text-align: right;\"><a href=\"#authentication-authorization\">\u30c8\u30c3\u30d7\u306b\u623b\u308b &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\">JFrog\u306eOIDC\u3068GitHub Actions\u306e\u7d71\u5408<\/a>\u306b\u3088\u308a\u3001GitHub Actions\u3068JFrog Platform\u306e\u9593\u306b\u4fe1\u983c\u95a2\u4fc2\u304c\u78ba\u7acb\u3055\u308c\u307e\u3059\u3002<\/p>\n<p>JFrog Platform\u306eUI\u304b\u3089\u3001\u300cAdministration\u300d\u30bf\u30d6 &gt; <em>General<\/em> &gt; <em>Manage Integrations<\/em> &gt; <em>New Integration<\/em> &gt; <em>OpenID Connect<\/em>\u306b\u79fb\u52d5\u3057\u307e\u3059\u3002<\/p>\n<p>OIDC\u7d71\u5408\u3092\u69cb\u6210\u3057\u3001\u300c<em>Save<\/em>\u300d\u3068\u300cContinue\u300d\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002<\/p>\n<p>ID\u30de\u30c3\u30d4\u30f3\u30b0\u3092\u69cb\u6210\u3057\u307e\u3059\u3002<\/p>\n<ul>\n<li><strong>Name<\/strong>:ID\u30de\u30c3\u30d4\u30f3\u30b0\u540d<\/li>\n<li><strong>Description<\/strong>:\u5143\u306e\u30ea\u30dd\u30b8\u30c8\u30ea\u3068\u30de\u30c3\u30d4\u30f3\u30b0\u3055\u308c\u305fID\u3092\u8b58\u5225\u3067\u304d\u308b\u3053\u3068\u304c\u671b\u307e\u3057\u3044<\/li>\n<li><strong>Priority<\/strong>:ID\u30de\u30c3\u30d4\u30f3\u30b0\u304c\u8a55\u4fa1\u3055\u308c\u308b\u512a\u5148\u9806\u4f4d<\/li>\n<li><strong>Claims json<\/strong>:\u3053\u306e\u30de\u30c3\u30d4\u30f3\u30b0\u304ctrue\u3068\u8a55\u4fa1\u3055\u308c\u308b\u305f\u3081\u306b\u691c\u8a3c\u3055\u308c\u308b\u30af\u30ec\u30fc\u30e0\u3092\u542b\u3080JSON\u30d5\u30a1\u30a4\u30eb\n<ul>\n<li><strong>iss<\/strong>:\u30af\u30ec\u30fc\u30e0\u304cGithub\u306b\u3088\u3063\u3066\u751f\u6210\u3055\u308c\u305f\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u305f\u3081\u306b\u3001<a href=\"https:\/\/token.actions.githubusercontent.com\">https:\/\/token.actions.githubusercontent.com<\/a>\u306b\u8a2d\u5b9a\u3057\u307e\u3059<\/li>\n<li><strong>Enterprise<\/strong>:\u30ea\u30dd\u30b8\u30c8\u30ea\u304c\u5c5e\u3059\u308b\u30a8\u30f3\u30bf\u30fc\u30d7\u30e9\u30a4\u30ba\u540d\u306b\u5bfe\u3059\u308b\u30af\u30ec\u30fc\u30e0\u5236\u9650 (\u30aa\u30d7\u30b7\u30e7\u30f3)<\/li>\n<li><strong>Repository<\/strong>:\u304a\u4f7f\u3044\u306eGithub\u306e\u30ea\u30dd\u30b8\u30c8\u30ea\u540d<\/li>\n<li><strong>\u30af\u30ec\u30fc\u30e0 (\u30aa\u30d7\u30b7\u30e7\u30f3)<\/strong>:\u74b0\u5883\u3001\u30a2\u30af\u30bf\u30fc\u3001runner_environment\u3001\u30b5\u30d6\u3001repository_owner\u3001repository_visibility\u3001\u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u306a\u3069<br \/>\n\u4f8b:<\/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>:Group \/ User \/ Admin:\u7279\u5b9a\u306e\u30b0\u30eb\u30fc\u30d7\/\u30e6\u30fc\u30b6\u30fc\u3092\u6301\u3064\u30b9\u30b3\u30fc\u30d7\u4ed8\u304d\u30c8\u30fc\u30af\u30f3<\/li>\n<li><strong>Service<\/strong>:\u30a2\u30af\u30bb\u30b9\u3092\u8a31\u53ef\u3059\u308b\u7279\u5b9a\u306e\u3001\u307e\u305f\u306f\u3059\u3079\u3066\u306eJFrog\u30b5\u30fc\u30d3\u30b9<\/li>\n<li><strong>Token Expiration Time<\/strong>:\u30c8\u30fc\u30af\u30f3\u306e\u6709\u52b9\u671f\u9650 (\u5206)<\/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>JFrog Platform &#8211; ID\u30de\u30c3\u30d4\u30f3\u30b0<\/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>JFrog Platform\u3068GitHub &#8211; OIDC\u7d71\u5408<\/em><\/p>\n<p style=\"text-align: right;\"><a href=\"#authentication-authorization\">\u30c8\u30c3\u30d7\u306b\u623b\u308b &gt;<\/a><\/p>\n<h3 id=\"github-actions\">GitHub Actions<\/h3>\n<p>Github Action\u306e\u69cb\u6210\u3092\u4f5c\u6210\u3057\u3066\u3001<a href=\"https:\/\/github.com\/marketplace\/actions\/setup-jfrog-cli\">JFrog CLI<\/a>\u3092\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u3057\u3001<a href=\"https:\/\/github.com\/jfrog\/frogbot\">JFrog FrogBot<\/a>\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002<\/p>\n<p><strong>JFrog CLI\u8a2d\u5b9a\u306e\u69cb\u6210:<\/strong><\/p>\n<pre class=\"language-bash\"><code>- name:Setup JFrog CLI\r\n    uses:jfrog\/setup-jfrog-cli@v4\r\n    env:\r\n      JF_URL:https:\/\/${{ vars.JF_URL }}\/\r\n      JF_PROJECT:${{ vars.JF_PROJECT }}\r\n    with:\r\n      oidc-provider-name:&lt;OIDC integration name set on JFrog platform&gt;<\/code><\/pre>\n<p><strong>Frogbot\u306e\u69cb\u6210:<\/strong><\/p>\n<pre class=\"language-bash\"><code> - uses:jfrog\/frogbot@v2\r\n      with:\r\n          oidc-provider-name:\r\nenv:\r\n          # JFrog Platform\u306eURL\r\n          JF_URL:https:\/\/${{ vars.JF_URL }}\/\r\n          JF_PROJECT:${{ vars.JF_PROJECT }}\r\n          JF_GIT_TOKEN:${{ secrets.GITHUB_TOKEN }}\r\n          \u2026<\/code><\/pre>\n<p style=\"text-align: right;\"><a href=\"#authentication-authorization\">\u30c8\u30c3\u30d7\u306b\u623b\u308b &gt;<\/a><\/p>\n<h2>2.\u53cc\u65b9\u5411\u306e\u30b3\u30fc\u30c9\u3068\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u30ea\u30f3\u30af<\/h2>\n<p><a href=\"https:\/\/docs.github.com\/en\/actions\">GitHub\u30d3\u30eb\u30c9\u30a2\u30af\u30b7\u30e7\u30f3<\/a>\u3067<a href=\"https:\/\/docs.jfrog.com\/integrations\/docs\/download-and-install-the-jfrog-cli\">JFrog CLI<\/a>\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001\u30d3\u30eb\u30c9\u304cJFrog\u306e\u95a2\u9023\u3059\u308b\u30d3\u30eb\u30c9\u60c5\u5831\u3001\u30d1\u30c3\u30b1\u30fc\u30b8\u3001\u304a\u3088\u3073\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30b9\u30ad\u30e3\u30f3\u306b\u63a5\u7d9a\u3055\u308c\u307e\u3059\u3002\u3053\u306e\u7d71\u5408\u306b\u3088\u308a\u3001GitHub Actions\u3068JFrog Artifactory\u3092\u7d44\u307f\u5408\u308f\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u3053\u306e\u4f8b\u306b\u898b\u3089\u308c\u308b\u30d3\u30eb\u30c9\u30b8\u30e7\u30d6\u306eyml\u306f\u3001\u3059\u3079\u3066\u306e\u30d7\u30eb\u30ea\u30af\u30a8\u30b9\u30c8\/\u30d7\u30c3\u30b7\u30e5\u306e\u5f8c\u306b<a href=\"https:\/\/docs.github.com\/en\/actions\/using-workflows\/triggering-a-workflow\">\u81ea\u52d5\u7684\u306b\u30c8\u30ea\u30ac\u30fc\u3059\u308b<\/a>\u3088\u3046\u306b\u69cb\u6210\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n<pre class=\"language-bash\"><code> # \u53b3\u9078\u3055\u308c\u305fPython\u30ea\u30dd\u30b8\u30c8\u30ea\u3092\u4f7f\u7528\u3059\u308b\u3088\u3046\u306bPython\u3092\u8a2d\u5b9a\u3059\u308b\r\n- name:configure jfrog environment\r\n    run:|\r\n      jf pip-config --repo-resolve=python-virtual\r\n# Python\u306e\u69cb\u6210\r\n- name:configure environment\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# Python\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u30d3\u30eb\u30c9\r\n- name:build project\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# JFrog Platform\u3078\u306ePython\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\r\n- name:publish python package\r\n    run:|\r\n      jf rt upload dist\/ python-virtual\/example-projects\/\r\n\r\n# Docker\u306e\u8a2d\u5b9a\r\n- name:Setup Docker Buildx\r\n  uses:docker\/setup-buildx-action@v3\r\n\r\n# OIDC\u306e\u6709\u52b9\u671f\u9593\u306e\u77ed\u3044\u8a8d\u8a3c\u60c5\u5831\u3092\u4f7f\u7528\u3057\u305fDocker\u8a8d\u8a3c\r\n- name:Authenticate Docker\r\n    uses:docker\/login-action@v3\r\n    with:\r\n      registry:${{ vars.JF_URL }}\r\n      username:${{ steps.setup-cli.outputs.oidc-user }}\r\n      password:${{ steps.setup-cli.outputs.oidc-token }}\r\n# Docker\u30a4\u30e1\u30fc\u30b8\u306e\u30d3\u30eb\u30c9\r\n- name:Build Docker image\r\n    uses:docker\/build-push-action@v5\r\n    id:build\r\n    with:\r\n      push:true\r\n      platforms:linux\/amd64 #, linux\/arm64\r\n      tags:${{ vars.JF_URL }}\/${{ env.DOCKER_REPO }}\/${{ env.IMAGE_NAME }}\r\n# Docker Xray\u306e\u30b9\u30ad\u30e3\u30f3\r\n- name:docker scan\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# \u30d3\u30eb\u30c9\u3055\u308c\u305fDocker\u3092JFrog\u306e\u30d3\u30eb\u30c9\u60c5\u5831\u306b\u8ffd\u52a0\u3059\u308b\r\n- name:add docker package to 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# \u30d3\u30eb\u30c9\u306e\u30d3\u30eb\u30c9\u60c5\u5831\u306e\u516c\u958b\u3068\u30b9\u30ad\u30e3\u30f3\r\n- name:publish build info\r\n    run:|\r\n      jf rt build-collect-env      # \u74b0\u5883\u5909\u6570\u306e\u53ce\u96c6\r\n      jf rt build-publish       # \u30d3\u30eb\u30c9\u60c5\u5831\u306e\u516c\u958b\r\n      jf build-scan  # Xray Scan\u306e\u30d3\u30eb\u30c9\u60c5\u5831<\/code><\/pre>\n<h3>GitHub\u306eJFrog\u30b8\u30e7\u30d6\u306e\u6982\u8981<\/h3>\n<p>\u30d3\u30eb\u30c9\u306e\u5b9f\u884c\u304c\u5b8c\u4e86\u3059\u308b\u3068\u3001\u30d3\u30eb\u30c9\u3068\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u60c5\u5831\u3092\u542b\u3080\u30b8\u30e7\u30d6\u306e\u6982\u8981\u304c\u751f\u6210\u3055\u308c\u307e\u3059\u3002JFrog\u3068GitHub\u306e\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u306e\u9593\u3092\u7c21\u5358\u306b\u79fb\u52d5\u3067\u304d\u307e\u3059\u3002\u3053\u308c\u306b\u3088\u308a\u3001Xray\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30b9\u30ad\u30e3\u30f3\u30c7\u30fc\u30bf\u3001\u30d3\u30eb\u30c9\u5dee\u5206\u306a\u3069\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30d3\u30eb\u30c9\u306e\u8a73\u7d30\u3001\u74b0\u5883\u5909\u6570\u3001\u30d3\u30eb\u30c9JSON\u60c5\u5831\u306a\u3069\u3092\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u30ea\u30f3\u30af\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3068\u3001JFrog\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u30d3\u30e5\u30fc\u306b\u79fb\u52d5\u3057\u3001\u30a2\u30fc\u30c6\u30a3\u30d5\u30a1\u30af\u30c8\u3068\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30b9\u30ad\u30e3\u30f3\u306b\u95a2\u3059\u308b\u8ffd\u52a0\u60c5\u5831\u3092\u53d6\u5f97\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002<\/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>GitHub\u30b8\u30e7\u30d6\u3092\u53c2\u7167\u3059\u308bJFrog\u30b8\u30e7\u30d6\u306e\u6982\u8981\u3001\u30d1\u30c3\u30b1\u30fc\u30b8\u3001\u8106\u5f31\u6027\u3001\u30d3\u30eb\u30c9\u60c5\u5831SBOM<\/em><\/p>\n<h2>3.\u7d71\u5408\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3<\/h2>\n<p><a href=\"https:\/\/jfrog.com\/ja\/blog\/secure-your-git-repository-with-frogbot-the-git-bot\/\">JFrog Frogbot<\/a>\u306f\u3001\u4f9d\u5b58\u95a2\u4fc2\u306e\u6f5c\u5728\u7684\u306a\u8106\u5f31\u6027\u3001\u516c\u958b\u3055\u308c\u305f\u30b7\u30fc\u30af\u30ec\u30c3\u30c8\u3001\u30de\u30eb\u30a6\u30a7\u30a2\u306b\u3064\u3044\u3066\u3001\u30ea\u30dd\u30b8\u30c8\u30ea\u3092\u81ea\u52d5\u7684\u306b\u30b9\u30ad\u30e3\u30f3\u3057\u307e\u3059\u3002\u8106\u5f31\u6027\u304c\u691c\u51fa\u3055\u308c\u308b\u3068\u3001Frogbot\u306f\u8b66\u544a\u3092\u767a\u3059\u308b\u3060\u3051\u3067\u306a\u304f\u3001\u4fee\u6b63\u6848\u3092\u542b\u3080\u30d7\u30eb\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u81ea\u52d5\u7684\u306b\u958b\u304d\u3001\u4fee\u5fa9\u30d7\u30ed\u30bb\u30b9\u3092\u5408\u7406\u5316\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002\u3053\u308c\u3089\u306e\u30c1\u30a7\u30c3\u30af\u306b\u3088\u308a\u3001\u8a31\u53ef\u3055\u308c\u3066\u3044\u306a\u3044\u30b3\u30fc\u30c9\u3084\u5371\u967a\u306a\u30b3\u30fc\u30c9\u306e\u5909\u66f4\u304c\u30ea\u30dd\u30b8\u30c8\u30ea\u306b\u30de\u30fc\u30b8\u3055\u308c\u308b\u306e\u3092\u9632\u3050\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u307e\u305f\u3001\u30b3\u30f3\u30d7\u30e9\u30a4\u30a2\u30f3\u30b9\u8981\u4ef6\u306b\u5f79\u7acb\u3064\u8a73\u7d30\u306a\u30ec\u30dd\u30fc\u30c8\u3068\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u3084\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u4f53\u5236\u306b\u95a2\u3059\u308b\u6d1e\u5bdf\u3082\u5f97\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p><a href=\"https:\/\/docs.jfrog.com\/integrations\/docs\/integration-workflows#configure-frogbot-in-github-actions\">GitHub\u30a2\u30af\u30b7\u30e7\u30f3\u3092\u4f7f\u7528\u3057\u3066Frogbot\u3092\u8a2d\u5b9a\u3059\u308b &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>\u3053\u306e\u4f8b\u3067\u306f\u3001Frogbot\u304c\u5b89\u5168\u3067\u306a\u3044\u30cf\u30c3\u30b7\u30e5\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u3092\u691c\u51fa\u3057\u305f\u3053\u3068\u304c\u308f\u304b\u308a\u307e\u3059\u3002<\/p>\n<table>\n<tbody>\n<tr>\n<td><em>\u5b89\u5168\u3067\u306a\u3044\u30cf\u30c3\u30b7\u30e5\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u306e\u8106\u5f31\u6027\u306f\u3001\u65e2\u77e5\u306e\u5b89\u5168\u3067\u306a\u3044\u30cf\u30c3\u30b7\u30e5\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u3092\u4f7f\u7528\u3059\u308b\u3068\u304d\u306b\u767a\u751f\u3057\u307e\u3059\u3002<\/em><br \/>\n<em>\u30cf\u30c3\u30b7\u30e5\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u306f\u3001\u4efb\u610f\u306e\u5165\u529b\u3092\u53d7\u3051\u5165\u308c\u3001\u30cf\u30c3\u30b7\u30e5\u5024 (\u30d1\u30b9\u30ef\u30fc\u30c9\u3084\u30d5\u30a1\u30a4\u30eb\u306a\u3069\u306e\u30c7\u30fc\u30bf\u306e\u6574\u5408\u6027\u3092<\/em><br \/>\n<em>\u691c\u8a3c\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3067\u304d\u308b\u56fa\u5b9a\u9577\u306e\u51fa\u529b) \u3092\u751f\u6210\u3057\u307e\u3059\u3002<\/em><br \/>\n<em>\u653b\u6483\u8005\u304c\u3042\u308b\u307e\u3068\u307e\u3063\u305f\u6642\u9593\u5185\u306b\u7570\u306a\u308b\u5165\u529b\u30c7\u30fc\u30bf\u306b\u5bfe\u3057\u3066\u540c\u3058\u30cf\u30c3\u30b7\u30e5\u5024\u3092\u751f\u6210\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3067\u304d\u308b\u3001<\/em><br \/>\n<em>\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u5185\u306e\u5b89\u5168\u3067\u306a\u3044\u30cf\u30c3\u30b7\u30e5\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0<\/em><br \/>\n<em>(\u300c\u30cf\u30c3\u30b7\u30e5\u885d\u7a81\u653b\u6483\u300d)\u3002<\/em><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u307e\u305f\u3001\u554f\u984c\u3092\u7c21\u5358\u306b\u4fee\u6b63\u3067\u304d\u308b\u3088\u3046\u306b\u3001\u6b21\u306e\u4fee\u6b63\u3092\u884c\u3044\u307e\u3057\u305f\u3002<\/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>\u4ee5\u4e0a\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>\u3042\u3068\u306f\u3001\u81ea\u5206\u3067\u8a66\u3057\u3066\u307f\u308b\u3060\u3051\u3067\u3059\u3002<\/p>\n<p>&nbsp;<\/p>\n<h4 style=\"text-align: center;\">6\u670813\u65e5\u306bGitHub\u3068JFrog\u306e\u9023\u643a\u306b\u3088\u308b\u76f8\u4e57\u52b9\u679c\u3092\u3054\u89a7\u304f\u3060\u3055\u3044\u3002<\/h4>\n<p style=\"text-align: center;\"><span style=\"font-weight: 400;\">\n    <a class=\"button button-primary\"  href=\"https:\/\/jfrog.com\/ja\/github-webinar\/\" target=\"_self\">\n    <span>\u5171\u540c\u30a6\u30a7\u30d3\u30ca\u30fc\u306b\u767b\u9332\u3059\u308b<\/span>\n    <\/a>\n    <\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>GitHub\u3068\u306e\u6700\u65b0\u306eJFrog\u30b3\u30e9\u30dc\u30ec\u30fc\u30b7\u30e7\u30f3\u306b\u3088\u308a\u3001\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3068\u30d0\u30a4\u30ca\u30ea\u306e\u304a\u6c17\u306b\u5165\u308a\u306e\u30bd\u30ea\u30e5\u30fc\u30b7\u30e7\u30f3\u3092\u30b7 &hellip;<\/p>\n","protected":false},"author":73,"featured_media":139933,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[9189],"tags":[],"class_list":["post-133126","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-9189"],"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>JFrog Platform\u3092GitHub\u74b0\u5883\u306b\u63a5\u7d9a\u3057\u3066\u30b7\u30fc\u30e0\u30ec\u30b9\u306a\u7d71\u5408\u3092\u4f5c\u6210\u3059\u308b\u65b9\u6cd5 | 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\/ja\/wp-json\/wp\/v2\/posts\/133126\" \/>\n<meta property=\"og:locale\" content=\"ja_JP\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"JFrog Platform\u3092GitHub\u74b0\u5883\u306b\u63a5\u7d9a\u3057\u3066\u30b7\u30fc\u30e0\u30ec\u30b9\u306a\u7d71\u5408\u3092\u4f5c\u6210\u3059\u308b\u65b9\u6cd5\" \/>\n<meta property=\"og:description\" content=\"GitHub\u3068\u306e\u6700\u65b0\u306eJFrog\u30b3\u30e9\u30dc\u30ec\u30fc\u30b7\u30e7\u30f3\u306b\u3088\u308a\u3001\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3068\u30d0\u30a4\u30ca\u30ea\u306e\u304a\u6c17\u306b\u5165\u308a\u306e\u30bd\u30ea\u30e5\u30fc\u30b7\u30e7\u30f3\u3092\u30b7 &hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jfrog.com\/ja\/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:29:17+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-26T10:27:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2024\/09\/09172855\/Blog_Thumbnail.png\" \/>\n\t<meta property=\"og:image:width\" content=\"203\" \/>\n\t<meta property=\"og:image:height\" content=\"148\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/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=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jfrog.com\/ja\/blog\/jfrog-github-integration-technical-details\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jfrog.com\/ja\/blog\/jfrog-github-integration-technical-details\/\"},\"author\":{\"name\":\"adia\",\"@id\":\"https:\/\/jfrog.com\/ja\/#\/schema\/person\/b3b548d5ef5d4a09a60c063aca4e2536\"},\"headline\":\"JFrog Platform\u3092GitHub\u74b0\u5883\u306b\u63a5\u7d9a\u3057\u3066\u30b7\u30fc\u30e0\u30ec\u30b9\u306a\u7d71\u5408\u3092\u4f5c\u6210\u3059\u308b\u65b9\u6cd5\",\"datePublished\":\"2024-06-10T06:29:17+00:00\",\"dateModified\":\"2024-09-26T10:27:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jfrog.com\/ja\/blog\/jfrog-github-integration-technical-details\/\"},\"wordCount\":192,\"publisher\":{\"@id\":\"https:\/\/jfrog.com\/ja\/#organization\"},\"image\":{\"@id\":\"https:\/\/jfrog.com\/ja\/blog\/jfrog-github-integration-technical-details\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2024\/09\/09172855\/Blog_Thumbnail.png\",\"articleSection\":[\"\u30ab\u30c6\u30b4\u30ea\u30fc\u306a\u3057\"],\"inLanguage\":\"ja\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jfrog.com\/ja\/blog\/jfrog-github-integration-technical-details\/\",\"url\":\"https:\/\/jfrog.com\/ja\/blog\/jfrog-github-integration-technical-details\/\",\"name\":\"JFrog Platform\u3092GitHub\u74b0\u5883\u306b\u63a5\u7d9a\u3057\u3066\u30b7\u30fc\u30e0\u30ec\u30b9\u306a\u7d71\u5408\u3092\u4f5c\u6210\u3059\u308b\u65b9\u6cd5 | JFrog\",\"isPartOf\":{\"@id\":\"https:\/\/jfrog.com\/ja\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/jfrog.com\/ja\/blog\/jfrog-github-integration-technical-details\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/jfrog.com\/ja\/blog\/jfrog-github-integration-technical-details\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2024\/09\/09172855\/Blog_Thumbnail.png\",\"datePublished\":\"2024-06-10T06:29:17+00:00\",\"dateModified\":\"2024-09-26T10:27:28+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jfrog.com\/ja\/blog\/jfrog-github-integration-technical-details\/#breadcrumb\"},\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jfrog.com\/ja\/blog\/jfrog-github-integration-technical-details\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\/\/jfrog.com\/ja\/blog\/jfrog-github-integration-technical-details\/#primaryimage\",\"url\":\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2024\/09\/09172855\/Blog_Thumbnail.png\",\"contentUrl\":\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2024\/09\/09172855\/Blog_Thumbnail.png\",\"width\":203,\"height\":148},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jfrog.com\/ja\/blog\/jfrog-github-integration-technical-details\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jfrog.com\/ja\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JFrog Platform\u3092GitHub\u74b0\u5883\u306b\u63a5\u7d9a\u3057\u3066\u30b7\u30fc\u30e0\u30ec\u30b9\u306a\u7d71\u5408\u3092\u4f5c\u6210\u3059\u308b\u65b9\u6cd5\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jfrog.com\/ja\/#website\",\"url\":\"https:\/\/jfrog.com\/ja\/\",\"name\":\"JFrog\",\"description\":\"Deliver Trusted Software Releases at Speed and Scale\",\"publisher\":{\"@id\":\"https:\/\/jfrog.com\/ja\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jfrog.com\/ja\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"ja\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jfrog.com\/ja\/#organization\",\"name\":\"JFrog\",\"url\":\"https:\/\/jfrog.com\/ja\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\/\/jfrog.com\/ja\/#\/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\/ja\/#\/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\/ja\/#\/schema\/person\/b3b548d5ef5d4a09a60c063aca4e2536\",\"name\":\"adia\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\/\/jfrog.com\/ja\/#\/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":"JFrog Platform\u3092GitHub\u74b0\u5883\u306b\u63a5\u7d9a\u3057\u3066\u30b7\u30fc\u30e0\u30ec\u30b9\u306a\u7d71\u5408\u3092\u4f5c\u6210\u3059\u308b\u65b9\u6cd5 | 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\/ja\/wp-json\/wp\/v2\/posts\/133126","og_locale":"ja_JP","og_type":"article","og_title":"JFrog Platform\u3092GitHub\u74b0\u5883\u306b\u63a5\u7d9a\u3057\u3066\u30b7\u30fc\u30e0\u30ec\u30b9\u306a\u7d71\u5408\u3092\u4f5c\u6210\u3059\u308b\u65b9\u6cd5","og_description":"GitHub\u3068\u306e\u6700\u65b0\u306eJFrog\u30b3\u30e9\u30dc\u30ec\u30fc\u30b7\u30e7\u30f3\u306b\u3088\u308a\u3001\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3068\u30d0\u30a4\u30ca\u30ea\u306e\u304a\u6c17\u306b\u5165\u308a\u306e\u30bd\u30ea\u30e5\u30fc\u30b7\u30e7\u30f3\u3092\u30b7 &hellip;","og_url":"https:\/\/jfrog.com\/ja\/blog\/jfrog-github-integration-technical-details\/","og_site_name":"JFrog","article_publisher":"https:\/\/www.facebook.com\/artifrog","article_published_time":"2024-06-10T06:29:17+00:00","article_modified_time":"2024-09-26T10:27:28+00:00","og_image":[{"width":203,"height":148,"url":"https:\/\/media.jfrog.com\/wp-content\/uploads\/2024\/09\/09172855\/Blog_Thumbnail.png","type":"image\/png"}],"author":"adia","twitter_card":"summary_large_image","twitter_creator":"@jfrog","twitter_site":"@jfrog","twitter_misc":{"Written by":"adia","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jfrog.com\/ja\/blog\/jfrog-github-integration-technical-details\/#article","isPartOf":{"@id":"https:\/\/jfrog.com\/ja\/blog\/jfrog-github-integration-technical-details\/"},"author":{"name":"adia","@id":"https:\/\/jfrog.com\/ja\/#\/schema\/person\/b3b548d5ef5d4a09a60c063aca4e2536"},"headline":"JFrog Platform\u3092GitHub\u74b0\u5883\u306b\u63a5\u7d9a\u3057\u3066\u30b7\u30fc\u30e0\u30ec\u30b9\u306a\u7d71\u5408\u3092\u4f5c\u6210\u3059\u308b\u65b9\u6cd5","datePublished":"2024-06-10T06:29:17+00:00","dateModified":"2024-09-26T10:27:28+00:00","mainEntityOfPage":{"@id":"https:\/\/jfrog.com\/ja\/blog\/jfrog-github-integration-technical-details\/"},"wordCount":192,"publisher":{"@id":"https:\/\/jfrog.com\/ja\/#organization"},"image":{"@id":"https:\/\/jfrog.com\/ja\/blog\/jfrog-github-integration-technical-details\/#primaryimage"},"thumbnailUrl":"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2024\/09\/09172855\/Blog_Thumbnail.png","articleSection":["\u30ab\u30c6\u30b4\u30ea\u30fc\u306a\u3057"],"inLanguage":"ja"},{"@type":"WebPage","@id":"https:\/\/jfrog.com\/ja\/blog\/jfrog-github-integration-technical-details\/","url":"https:\/\/jfrog.com\/ja\/blog\/jfrog-github-integration-technical-details\/","name":"JFrog Platform\u3092GitHub\u74b0\u5883\u306b\u63a5\u7d9a\u3057\u3066\u30b7\u30fc\u30e0\u30ec\u30b9\u306a\u7d71\u5408\u3092\u4f5c\u6210\u3059\u308b\u65b9\u6cd5 | JFrog","isPartOf":{"@id":"https:\/\/jfrog.com\/ja\/#website"},"primaryImageOfPage":{"@id":"https:\/\/jfrog.com\/ja\/blog\/jfrog-github-integration-technical-details\/#primaryimage"},"image":{"@id":"https:\/\/jfrog.com\/ja\/blog\/jfrog-github-integration-technical-details\/#primaryimage"},"thumbnailUrl":"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2024\/09\/09172855\/Blog_Thumbnail.png","datePublished":"2024-06-10T06:29:17+00:00","dateModified":"2024-09-26T10:27:28+00:00","breadcrumb":{"@id":"https:\/\/jfrog.com\/ja\/blog\/jfrog-github-integration-technical-details\/#breadcrumb"},"inLanguage":"ja","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jfrog.com\/ja\/blog\/jfrog-github-integration-technical-details\/"]}]},{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/jfrog.com\/ja\/blog\/jfrog-github-integration-technical-details\/#primaryimage","url":"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2024\/09\/09172855\/Blog_Thumbnail.png","contentUrl":"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2024\/09\/09172855\/Blog_Thumbnail.png","width":203,"height":148},{"@type":"BreadcrumbList","@id":"https:\/\/jfrog.com\/ja\/blog\/jfrog-github-integration-technical-details\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jfrog.com\/ja\/"},{"@type":"ListItem","position":2,"name":"JFrog Platform\u3092GitHub\u74b0\u5883\u306b\u63a5\u7d9a\u3057\u3066\u30b7\u30fc\u30e0\u30ec\u30b9\u306a\u7d71\u5408\u3092\u4f5c\u6210\u3059\u308b\u65b9\u6cd5"}]},{"@type":"WebSite","@id":"https:\/\/jfrog.com\/ja\/#website","url":"https:\/\/jfrog.com\/ja\/","name":"JFrog","description":"Deliver Trusted Software Releases at Speed and Scale","publisher":{"@id":"https:\/\/jfrog.com\/ja\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jfrog.com\/ja\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"ja"},{"@type":"Organization","@id":"https:\/\/jfrog.com\/ja\/#organization","name":"JFrog","url":"https:\/\/jfrog.com\/ja\/","logo":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/jfrog.com\/ja\/#\/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\/ja\/#\/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\/ja\/#\/schema\/person\/b3b548d5ef5d4a09a60c063aca4e2536","name":"adia","image":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/jfrog.com\/ja\/#\/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\/ja\/wp-json\/wp\/v2\/posts\/133126","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jfrog.com\/ja\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jfrog.com\/ja\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jfrog.com\/ja\/wp-json\/wp\/v2\/users\/73"}],"replies":[{"embeddable":true,"href":"https:\/\/jfrog.com\/ja\/wp-json\/wp\/v2\/comments?post=133126"}],"version-history":[{"count":2,"href":"https:\/\/jfrog.com\/ja\/wp-json\/wp\/v2\/posts\/133126\/revisions"}],"predecessor-version":[{"id":133128,"href":"https:\/\/jfrog.com\/ja\/wp-json\/wp\/v2\/posts\/133126\/revisions\/133128"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jfrog.com\/ja\/wp-json\/wp\/v2\/media\/139933"}],"wp:attachment":[{"href":"https:\/\/jfrog.com\/ja\/wp-json\/wp\/v2\/media?parent=133126"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jfrog.com\/ja\/wp-json\/wp\/v2\/categories?post=133126"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jfrog.com\/ja\/wp-json\/wp\/v2\/tags?post=133126"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}