Skip to main content

このバージョンの GitHub Enterprise はこの日付をもって終了となりました: 2023-01-18. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの向上、新機能の向上を図るために、最新バージョンの GitHub Enterprise にアップグレードします。 アップグレードに関するヘルプについては、GitHub Enterprise サポートにお問い合わせく� さい

pre-receiveフック環境の作成

pre-receiveフックを実行するには、デフォルトのpre-receive環境を使うか、カスタ� の環境を作成します。

GitHub Enterprise Server の受信前環境は Linux chroot 環境です。 pre-receiveフックはプッシュのイベントごとに実行されるので、高速かつ軽量でなければなりません。 こうしたチェックに必要となる環境は、通常最小限のものです。

GitHub Enterprise Server には、次のパッケージを含む既定の環境が用意されています: awkbashcoreutilscurlfindgnupggrepjqsed

特定の言語のサポートなど、この環境が満たさない特定の要求があるなら、独自の 64 ビット Linux chroot 環境を作成してそれをアップロードできます。

Dockerを利用したpre-receiveフック環境の作成

pre-receiveフック環境の構築には、Linuxのコンテナ管理ツールが利用できます。 この例では、Alpine LinuxDocker を使用します。

  1. ローカルに Docker がインストールされていることを確実にします

  2. 次の情� �を含むファイル Dockerfile.alpine-3.3 を作成します。

    FROM gliderlabs/alpine:3.3
    RUN apk add --no-cache git bash
    
  3. Dockerfile.alpine-3.3 が� �納されている作業ディレクトリから、イメージをビルドします。

    $ docker build -f Dockerfile.alpine-3.3 -t pre-receive.alpine-3.3 .
    > Sending build context to Docker daemon 12.29 kB
    > Step 1 : FROM gliderlabs/alpine:3.3
    >  ---> 8944964f99f4
    > Step 2 : RUN apk add --no-cache git bash
    >  ---> Using cache
    >  ---> 0250ab3be9c5
    > Successfully built 0250ab3be9c5
  4. コンテナを作成します:

    $ docker create --name pre-receive.alpine-3.3 pre-receive.alpine-3.3 /bin/true
  5. Docker コンテナーを gzip で圧縮された tar ファイルにエクスポートします。

    $ docker export pre-receive.alpine-3.3 | gzip > alpine-3.3.tar.gz

    この alpine-3.3.tar.gz ファイルは、GitHub Enterprise Server アプライアンスにアップロードする準備ができています。

chrootを使ったpre-receiveフック環境の作成

  1. Linux chroot 環境を作成します。

  2. chroot ディレクトリの gzip で圧縮された tar ファイルを作成します。

    $ cd /path/to/chroot
    $ tar -czf /path/to/pre-receive-environment.tar.gz .

    注:

    • tar アーカイブ内に、ファイルの先� �のディレクトリ パスは含めないでく� さい (/path/to/chroot など)。
    • chroot 環境へのエントリ ポイントとして、/bin/sh が存在し、実行可能でなければなりません。
    • 旧来の chroot と異なり、chroot 環境では受信前フックのために dev ディレクトリを必要とすることはありません。

chroot 環境の作成方法の詳細については、Debian Wiki の「Chroot」、Ubuntu Community Help Wiki の「BasicChroot」、Alpine Linux Wiki の 「chroot への Alpine Linux のインストール」を参照してく� さい。

GitHub Enterprise Serverへのpre-receiveフック環境のアップロード

  1. GitHub Enterprise Server の右上で、ご自分のプロファイル写真をクリックしてから、 [Enterprise 設定] をクリックします。 GitHub Enterprise Server のプロファイル写真のドロップダウン メニューの [自分の Enterprise] 1. エンタープライズ アカウントのサイドバーで、 [設定] をクリックします。 エンタープライズ アカウントのサイドバー内の [設定] タブ 1. [ 設定] で、 [フック] をクリックします。 [Enterprise アカウント設定] サイドバーの [フック] タブ
  2. [環境を管理する] をクリックします。 環境を管理する
  3. [環境の追� ] をクリックします。 環境の追� 
  4. [環境名] フィールドに目的の名前を入力します。 環境名
  5. ご利用の環境を含む *.tar.gz ファイルの URL を入力します。 URL から環境をアップロードする
  6. [環境の追� ] をクリックします。 [環境の追� ] ボタン

管理シェル経由でのpre-receiveフック環境のアップロード

  1. ご利用の環境が含まれている読み出し可能な *.tar.gz ファイルを Web のホストにアップロードし、その URL をコピーするか、またはそのファイルを scp を介して GitHub Enterprise Server アプライアンスに転送してく� さい。 scp を使用する� �合には、*.tar.gz ファイルの権限を外界から読めるように調整することが必要な� �合があります。

  2. 管理シェルに接続します。

  3. ghe-hook-env-create コマンドを使用して、最初の引数として環境に使用する名前を入力し、2 番目の引数として環境を含む *.tar.gz ファイルの完全なローカル パスまたは URL を入力します。

    admin@ghe-host:~$ ghe-hook-env-create AlpineTestEnv /home/admin/alpine-3.3.tar.gz
    > Pre-receive hook environment 'AlpineTestEnv' (2) has been created.