ドキュメントには頻繁に更新が加えられ、その都度公開されています。本ページの翻訳はまだ未完成な部分があることをご了承ください。最新の情報については、英語のドキュメンテーションをご参照ください。本ページの翻訳に問題がある場合はこちらまでご連絡ください。
記事のバージョン: Enterprise Server 2.15

このバージョンの GitHub Enterprise はこの日付をもって終了となります: このバージョンの GitHub Enterprise はこの日付をもって終了となりました: 2019-10-16. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 For better performance, improved security, and new features, upgrade to the latest version of GitHub Enterprise. For help with the upgrade, contact GitHub Enterprise support.

pre-receiveフック環境の作成

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

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

GitHub Enterprise Server は、以下のパッケージを含むデフォルトの環境を提供します: awkbashcoreutilscurlfindgnupggrepjqsed

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

このガイドの内容

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

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

  1. ローカルに[Dockerがインストール]](https://www.docker.com/)されているか確認してください。

  2. この情報を含む Dockerfile.alpine-3.3 ファイルを作成してください:

    FROM gliderlabs/alpine:3.3
    RUN apk add --no-cache git bash
  3. From the working directory that contains Dockerfile.alpine-3.3, build an image:

    $ 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 ファイルを作成します:

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

    For more information about creating a chroot environment see "Chroot" from the Debian Wiki, "BasicChroot" from the Ubuntu Community Help Wiki, or "Installing Alpine Linux in a chroot" from the Alpine Linux Wiki.

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

  1. In the upper-right corner of any page, click .

    サイトアドミン設定にアクセスするための宇宙船のアイコン

  2. In the left sidebar, click Business.

    Business tab in the Site admin settings

  3. Under your business account's name, click Settings.

    Settings tab on the business account profile page

  4. 左のサイトバーでHooks(フック)をクリックしてください。

    Hooks tab in the business account settings sidebar

  5. [Manage environments] (環境を管理) をクリックします。

    環境を管理

  6. [Add environment] (環境を追加) をクリックします。

    環境を追加

  7. 希望する名前を [Environment name] (環境名) フィールドに入力します。

    環境名

  8. 環境が入っている *.tar.gz ファイルの URL を入力します。

    URL から環境をアップロード

  9. [Add environment] (環境を追加) をクリックします。

    環境を追加するボタン

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

  1. 環境が入っている読み出し可能な *.tar.gz ファイルを Web のホストにアップロードしてその URL をコピーするか、このファイルを scp で GitHub Enterprise Server アプライアンスに転送してください。 scp を使う場合には、*.tar.gz ファイルの権限を外界から読めるように調整しなければならないかもしれません。

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

  3. ghe-hook-env-create コマンドを使い、環境に与えたい名前を最初の引数に、環境が入っている *.tar.gz ファイルの完全なローカルパスあるいは URL を 2 番目の引数に入力してください。

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

担当者にお尋ねください

探しているものが見つからなかったでしょうか?

弊社にお問い合わせください