Deep-dive on the Next Gen Platform. Join the Webinar!

Skip Navigation
Show nav
Dev Center
  • Get Started
  • ドキュメント
  • Changelog
  • Search
  • Get Started
    • Node.js
    • Ruby on Rails
    • Ruby
    • Python
    • Java
    • PHP
    • Go
    • Scala
    • Clojure
    • .NET
  • ドキュメント
  • Changelog
  • More
    Additional Resources
    • Home
    • Elements
    • Products
    • Pricing
    • Careers
    • Help
    • Status
    • Events
    • Podcasts
    • Compliance Center
    Heroku Blog

    Heroku Blog

    Find out what's new with Heroku on our blog.

    Visit Blog
  • Log inorSign up
Hide categories

Categories

  • Heroku のアーキテクチャ
    • Dyno (アプリコンテナ)
      • Dyno Management
      • Dyno Concepts
      • Dyno Behavior
      • Dyno Reference
      • Dyno Troubleshooting
    • スタック (オペレーティングシステムイメージ)
    • ネットワーキングと DNS
    • プラットフォームポリシー
    • プラットフォームの原則
  • Developer Tools
    • コマンドライン
    • Heroku VS Code Extension
  • デプロイ
    • Git を使用したデプロイ
    • Docker によるデプロイ
    • デプロイ統合
  • 継続的デリバリーとインテグレーション
    • 継続的統合
  • 言語サポート
    • Node.js
      • Node.js Behavior in Heroku
      • Working with Node.js
      • Troubleshooting Node.js Apps
    • Ruby
      • Rails のサポート
      • Bundler の使用
      • Working with Ruby
      • Ruby Behavior in Heroku
      • Troubleshooting Ruby Apps
    • Python
      • Working with Python
      • Python でのバックグランドジョブ
      • Python Behavior in Heroku
      • Django の使用
    • Java
      • Java Behavior in Heroku
      • Working with Java
      • Maven の使用
      • Spring Boot の使用
      • Troubleshooting Java Apps
    • PHP
      • Working with PHP
      • PHP Behavior in Heroku
    • Go
      • Go の依存関係管理
    • Scala
    • Clojure
    • .NET
      • Working with .NET
  • データベースとデータ管理
    • Heroku Postgres
      • Postgres の基礎
      • Postgres スターターガイド
      • Postgres のパフォーマンス
      • Postgres のデータ転送と保持
      • Postgres の可用性
      • Postgres の特別なトピック
      • Migrating to Heroku Postgres
    • Heroku Data For Redis
    • Apache Kafka on Heroku
    • その他のデータストア
  • AI
    • Working with AI
    • Heroku Inference
      • AI Models
      • Inference Essentials
      • Inference API
      • Quick Start Guides
  • モニタリングとメトリクス
    • ログ記録
  • アプリのパフォーマンス
  • アドオン
    • すべてのアドオン
  • 共同作業
  • セキュリティ
    • アプリのセキュリティ
    • ID と認証
      • シングルサインオン (SSO)
    • Private Space
      • インフラストラクチャネットワーキング
    • コンプライアンス
  • Heroku Enterprise
    • Enterprise Accounts
    • Enterprise Team
    • Heroku Connect (Salesforce 同期)
      • Heroku Connect の管理
      • Heroku Connect のリファレンス
      • Heroku Connect のトラブルシューティング
  • パターンとベストプラクティス
  • Heroku の拡張
    • Platform API
    • アプリの Webhook
    • Heroku Labs
    • アドオンのビルド
      • アドオン開発のタスク
      • アドオン API
      • アドオンのガイドラインと要件
    • CLI プラグインのビルド
    • 開発ビルドパック
    • Dev Center
  • アカウントと請求
  • トラブルシューティングとサポート
  • Salesforce とのインテグレーション
  • デプロイ
  • デプロイ統合
  • GitHub 統合 (Heroku GitHub デプロイ)

GitHub 統合 (Heroku GitHub デプロイ)

日本語 — Switch to English

この記事の英語版に更新があります。ご覧の翻訳には含まれていない変更点があるかもしれません。

最終更新日 2024年05月09日(木)

Table of Contents

  • GitHub 統合の有効化
  • 手動デプロイ
  • 自動デプロイ
  • レビューアプリ
  • Heroku CI
  • Diff へのリンク
  • GitHub からの切断
  • よくある質問

Heroku は GitHub と統合することで、GitHub 上のコードを Heroku 上で実行中のアプリに容易にデプロイできるようになります。Heroku アプリ用の GitHub 統合が設定された場合、Heroku は指定された GitHub リポジトリへのプッシュを自動的にビルドし、(ビルドに成功した場合は) リリースすることができます。

GitHub 統合の有効化

GitHub 統合は、Heroku Dashboard​ でアプリの Deploy​ タブから設定できます。

GitHub 統合の有効化

GitHub 統合を設定するには、GitHub での認証が必要です。これは Heroku アカウントごとに 1 回のみ実行すれば十分です。

GitHub の自動デプロイを設定するには、GitHub リポジトリ管理者アクセスが必要です。これは、Heroku では GitHub リポジトリにサービスフックを登録する必要があり、このアクションには管理者アクセスが必要なためです。GitHub 組織の場合、ユーザーの GitHub アカウントも組織のメンバーである必要があり、外部の共同作業者であってはなりません。

 

ユーザーのリポジトリが、サードパーティアプリケーション制限が有効化されている​ GitHub 組織内にある場合、組織管理者は、組織で使用できるよう Heroku を承認する必要があります。GitHub についての詳細は、こちら​を参照してください。

Heroku アプリを GitHub リポジトリにリンクした後で、ブランチから選択的にデプロイするか、自動デプロイを設定することができます。

アプリがない場合は、GitHub からの組織の統合を承認する必要があります。このプロセスについての詳細は、「Approving OAuth Apps for your organization​」(組織の OAuth アプリの承認) を参照してください。

手動デプロイ

手動デプロイでは、ユーザーのアプリに接続されている GitHub リポジトリから任意のブランチの即時デプロイを作成できます。変更が Heroku にデプロイされるタイミングを管理する場合は、手動デプロイを使用してください。

手動デプロイ

また、手動デプロイは、自動デプロイ用に構成されているものとは異なるブランチを一時的にデプロイするために使用することもできます。たとえば、開発アプリを development​ GitHub ブランチに同期しているが、ある機能ブランチを一時的にテストするとします。この場合は、その機能ブランチの手動デプロイをトリガーするだけで、Heroku アプリ上でその機能ブランチをテストできます。ただし、その機能ブランチのリリースは、GitHub が development​ ブランチに次回正常にプッシュされるときに上書きされます。

自動デプロイ

GitHub ブランチの自動デプロイを有効にした場合、Heroku はすべてのプッシュをビルドしてそのブランチにデプロイします。たとえば、Heroku 上に開発アプリがある場合、GitHub development​ ブランチへのプッシュが自動的にビルドされてそのアプリにデプロイされるように設定できます。

自動デプロイ

自動化された継続的インテグレーションを使用するように (たとえば Travis CI で) GitHub リポジトリを設定した場合、[Wait for CI to pass before deploy] チェックボックスをチェックすることができます。有効にした場合、Heroku は関連するコミットのすべてのコミットステータスが success​ と表示された後にのみ自動デプロイします。

チェックの 1 つが pending​ ステータスを示しているため、このコミットは自動デプロイされません。 失敗したコミットステータス - 自動起動しません

すべてのチェックが success​ ステータスを示しているため、このコミットは自動デプロイされます。 成功したコミットステータス - 自動デプロイできます

レビューアプリ

Heroku アプリに対してレビューアプリを有効にすると、Heroku は親アプリに接続されている GitHub リポジトリ上で開いている各プルリクエストに対して一時的なテストアプリを作成します。レビューアプリは、GitHub Flow​ を使用して、コードベースへの変更を提案、議論、および管理する場合に優れています。プルリクエストブランチは、Heroku 上の新しいアプリにデプロイされるため、ユーザーおよび共同作業者は非常にシンプルにコードブランチをテストおよびデバッグできます。また、GitHub ブランチを表す Heroku アプリ上で、自動化された統合テストを実行することもできます。

詳細は、レビューアプリの記事​をご覧ください。

Heroku CI

GitHub リポジトリを Pipeline に接続したら、Heroku CI​ をオンにすることができます。これは Heroku Pipeline に容易に統合できる (したがって、レビューアプリ、既存の Heroku アプリ、および GitHub 統合を補完する)、視覚的で低設定のテストランナーです。すべての Heroku Pipeline は Heroku CI に対応しているため、Pipeline の Settings​ タブでこれをオンにします。

Diff へのリンク

GitHub リポジトリにリンクされているアプリの場合、ダッシュボードの Activity​ タブのリリースには [View Diff] のリンクが含まれています。リンクをたどると、最終リリース以降の変更内容を示す GitHub 比較ビューが表示されます。

Diff ビューへのリンク

GitHub からの切断

個々のアプリの切断

個々のアプリは、GitHub ペインの各アプリの Deploy​ タブで切断できます。

アプリを切断するための UI のスクリーンショット

アカウントの切断

Heroku および GitHub アカウントは、ダッシュボードアカウントページのアプリケーションペイン​で切断できます。

アカウントを切断するための UI のスクリーンショット

よくある質問

GitHub 統合は、自分の Heroku にホストされた Git リポジトリと同期されますか?

GitHub 統合が有効化されたアプリの場合、Heroku は GitHub リポジトリのコンテンツを Heroku にホストされたリポジトリに同期しません​。その代わりに、Heroku は GitHub からソースを直接プルします。Heroku Git リモートにコードをプッシュすることも技術的には可能ですが、どのコードがアプリに現在デプロイされているのかについて共同作業者を混乱させるおそれがあるため、そうすることは控えてください。

GitHub 以外のバージョン管理プロバイダーを使用したらどうなりますか?

Heroku は現在、GitHub 以外のバージョン管理プロバイダーのための自社製のデプロイ統合機能を提供していません。GitLab や Bitbucket などの別のバージョン管理プロバイダーを使用する場合のデプロイオプションについては、こちらの記事​を参照してください。

ビルド出力はどこに表示されますか?

ビルド出力は、Heroku Dashboard 上にある当該アプリケーションの Activity​ タブに表示されます。ビルド出力の履歴や、進行中のビルドのストリーム出力も確認することができます。

GitHub 統合はスキーマ移行を自動的に実行しますか?

デフォルトでは、Heroku はデプロイ中に、Rails などのフレームワークによって指定される移行を実行しません。

Heroku Release Phase​ を使用すると、アプリの新しいバージョンの実行前のスキーマ移行などの一般的なタスクを実行できます。詳細は、関連するドキュメントを参照してください。

GitHub 統合は Git のサブモジュールと連動しますか?

サブモジュールを使用する GitHub リポジトリは一般的に Heroku に正常にデプロイされません。これは、repo-content の tarball が生成される場合は、GitHub にサブモジュールのコンテンツがないためです。

Heroku が自分の GitHub リポジトリにアクセスできないのはなぜですか?

GitHub 統合がリポジトリの内容にアクセスできない場合、一般的に次のいずれかが原因となっています。

  1. GitHub ユーザーがリポジトリへのアクセス権限を失った。これはリポジトリへのアクセス権限を再び要求するか、別の GitHub ユーザーを使用することで対処できます。
  2. サードパーティアプリケーション制限​が組織で有効になっている。サードパーティアプリケーション制限が有効になっている場合、Heroku Dashboard​ OAuth アプリケーションに組織へのアクセス権限を付与する必要があります。これを行う方法については、GitHub のドキュメント​を参照してください。
  3. リポジトリが存在しなくなった。
  4. GitHub ユーザーが組織の外部の共同作業者であり、現在サポートされていない。ユーザーは組織のメンバーである必要があります。

アクティビティログで、デプロイの原因として間違ったユーザーが指定されているのはなぜですか?

GitHub からの通知を受けてビルドをトリガーするとき、GitHub ユーザー ID を受け取り、リンクされている Heroku アカウントを見つけようとします。GitHub ID に一致するリンク済みアカウントが見つからない場合、Pipeline またはアプリを GitHub に接続したユーザーがおそらく表示されます。

原因となるユーザーが正しく指定されていない場合、ダッシュボードを使用してアカウントを GitHub に接続すると、この問題が解決される可能性があります。

Heroku で自分の GitHub リポジトリに対する読み取りと書き込みの許可が必要なのはなぜですか?

これにはいくつかの理由があります。

  1. レビューアプリからデプロイが行われた場合、Heroku GitHub 統合は、コードがデプロイされたことを示すデプロイステータスを、このリンクと一緒に公開します。

  2. レビューアプリを有効化するとき、サービスでは、レビューアプリを自動的にビルドできるようにするために必要な app.json​ ファイルをユーザーが持っていることを確認します。このファイルは自動的に生成されてリポジトリにコミットされます。

  3. GitHub 統合サービスは自動デプロイを駆動させる目的で、カスタムフックをリポジトリに追加できるようにする必要があります。そうすることで、ユーザーが変更内容をブランチにプッシュし、これらが GitHub からのものであることを検証するときに、GitHub から通知を受け取ることができ、このためにはリポジトリへの管理アクセスが必要です。

GitHub アプリでは、リポジトリのきめ細かい制御が可能ですが、この機能は GitHub 統合にまだ統合されていません。スケジュールの確約はできませんが、このことは Heroku で確かに認識されています。Heroku Changelog に注目しておいてください。

上記がすべて該当しない場合は、サポートチケットをオープンしてください​。

関連カテゴリー

  • デプロイ統合
slug チェックサム Heroku で Terraform を使用する

Information & Support

  • Getting Started
  • Documentation
  • Changelog
  • Compliance Center
  • Training & Education
  • Blog
  • Support Channels
  • Status

Language Reference

  • Node.js
  • Ruby
  • Java
  • PHP
  • Python
  • Go
  • Scala
  • Clojure
  • .NET

Other Resources

  • Careers
  • Elements
  • Products
  • Pricing
  • RSS
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku Blog
    • Heroku News Blog
    • Heroku Engineering Blog
  • Twitter
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku
    • Heroku Status
  • Github
  • LinkedIn
  • © 2025 Salesforce, Inc. All rights reserved. Various trademarks held by their respective owners. Salesforce Tower, 415 Mission Street, 3rd Floor, San Francisco, CA 94105, United States
  • heroku.com
  • Legal
  • Terms of Service
  • Privacy Information
  • Responsible Disclosure
  • Trust
  • Contact
  • Cookie Preferences
  • Your Privacy Choices