この記事では、省略可能なパラメーター、パス引数、ネットワーク設定など、GitHub Actions Importer の補助的な引数と設定を構成するための一般的な情報を提供します。
省略可能なパラメーター
GitHub Actions Importer には、移行プロセスをカスタマイズするために使用できる省略可能なパラメーターがいくつかあります。
許可されるアクションの制限
次のオプションを使うと、変換後のワークフローで許可されるアクションを制限できます。 これらのオプションを組み合わせて使うと、許可されるアクションの一覧が展開されます。 これらのオプションをいずれも指定しない場合は、すべてのアクションが許可されます。
-
--allowed-actions
は、変換後のワークフローで許可するアクションの一覧を指定します。 ワイルドカードを利用できます。 指定されたもの以外のアクションは許可されません。次に例を示します。
--allowed-actions actions/checkout@v4 actions/upload-artifact@* my-org/*
空の一覧を指定すると、すべてのアクションは許可されません。 たとえば、「
--allowed-actions=
」のように入力します。 -
--allow-verified-actions
は、確認された作成者からのすべてのアクションが許可されることを指定します。 -
--allow-github-created-actions
は、github
またはactions
組織から発行されたアクションが許可されることを指定します。たとえば、
github/super-linter
とactions/checkout
のようなアクションです。このオプションは、
--allowed-actions actions/* github/*
と同等です。
認証に資格情報ファイルを使う
--credentials-file
パラメーターでは、GitHub Actions Importer が認証できる異なるサーバーの資格情報を含むファイルへのパスを指定します。 これは、ビルド スクリプト (.travis.yml
や jenkinsfile
など) が複数の GitHub Enterprise Server インスタンスに格納されている場合に便利です。
資格情報ファイルは、サーバーとアクセス トークンの組み合わせの一覧を含む YAML ファイルである必要があります。 GitHub Actions Importer は、実行中のネットワーク要求に最もよく一致する URL の資格情報を使います。
次に例を示します。
- url: https://github.com
access_token: ghp_mygeneraltoken
- url: https://github.com/specific_org/
access_token: ghp_myorgspecifictoken
- url: https://jenkins.org
access_token: abc123
username: marty_mcfly
上記の資格情報ファイルの場合、GitHub Actions Importer はアクセス トークン ghp_mygeneraltoken
を使って https://github.com
へのすべてのネットワーク要求を認証しますが、ネットワーク要求が specific_org
組織内のリポジトリに対するものである場合を "除きます"。__ この場合、代わりに ghp_myorgspecifictoken
トークンが認証に使われます。
代替ソース コード プロバイダー
GitHub Actions Importer は、GitHub 以外のリポジトリからソース コードを自動的にフェッチできます。 資格情報ファイルでは、provider
、プロバイダーの URL、ソース コードを取得するために必要な資格情報を指定できます。
次に例を示します。
- url: https://gitlab.com
access_token: super_secret_token
provider: gitlab
上記の例では、GitHub Actions Importer はトークン super_secret_token
を使って、https://gitlab.com
でホストされているすべてのソース コードを取得します。
provider
でサポートされている値を次に示します。
github
(既定値)gitlab
bitbucket_server
azure_devops
オプション機能を制御する
--features
オプションを使うと、GitHub Actions Importer によって作成されるワークフローで使う機能を制限できます。 これは、以前の GitHub Actions インスタンスに移行するときに、新しい GitHub Enterprise Server 構文をワークフローから除外する場合に便利です。 --features
オプションを使う場合、移行先の GitHub Enterprise Server のバージョンを指定する必要があります。
次に例を示します。
gh actions-importer dry-run ... --features ghes-3.3
--features
でサポートされている値を次に示します。
all
(既定値)ghes-latest
ghes-<number>
。ここで、<number>
は GitHub Enterprise Server のバージョンで、3.0
またはそれ以降です。 たとえば、「ghes-3.3
」のように入力します。
list-features
コマンドを実行すると、GitHub Actions Importer で使用可能な機能フラグのリストを表示できます。 次に例を示します。
gh actions-importer list-features
gh actions-importer list-features
次のような出力が表示されます。
Available feature flags:
actions/cache (disabled):
Control usage of actions/cache inside of workflows. Outputs a comment if not enabled.
GitHub Enterprise Server >= ghes-3.5 required.
composite-actions (enabled):
Minimizes resulting workflow complexity through the use of composite actions. See https://docs.github.com/en/actions/creating-actions/creating-a-composite-action for more information.
GitHub Enterprise Server >= ghes-3.4 required.
reusable-workflows (disabled):
Avoid duplication by re-using existing workflows. See https://docs.github.com/en/actions/using-workflows/reusing-workflows for more information.
GitHub Enterprise Server >= ghes-3.4 required.
workflow-concurrency-option-allowed (enabled):
Allows the use of the `concurrency` option in workflows. See https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#concurrency for more information.
GitHub Enterprise Server >= ghes-3.2 required.
Enable features by passing --enable-features feature-1 feature-2
Disable features by passing --disable-features feature-1 feature-2
機能フラグを切り替えるには、次のいずれかの方法を使うことができます。
gh actions-importer
コマンドを実行するときに、--enable-features
オプションと--disable-features
オプションを使います。- 各機能フラグに環境変数を使います。
--enable-features
オプションと --disable-features
オプションを使って、コマンドの期間を有効または無効にする特定の機能を選ぶことができます。
たとえば、次のコマンドを使うと、actions/cache
と composite-actions
の使用が無効になります。
gh actions-importer dry-run ... --disable-features=composite-actions actions/cache
configure --features
コマンドを使って、機能フラグを対話形式で構成し、環境に自動的に書き込むことができます。
$ gh actions-importer configure --features
✔ Which features would you like to configure?: actions/cache, reusable-workflows
✔ actions/cache (disabled): Enable
? reusable-workflows (disabled):
› Enable
Disable
ネットワーク応答キャッシュの無効化
既定では、GitHub Actions Importer はネットワーク要求からの応答をキャッシュして、ネットワークの負荷を軽減し、実行時間を短縮します。 --no-http-cache
オプションを使うと、ネットワーク キャッシュを無効にできます。 次に例を示します。
gh actions-importer forecast ... --no-http-cache
パス引数
GitHub Actions Importer を実行する場合、パス引数はコンテナーのディスクに対する相対パスであり、コンテナーのホスト コンピューターに対する絶対パスはサポートされていません。 GitHub Actions Importer が実行されると、コンテナーの /data
ディレクトリは GitHub Actions Importer が実行されたディレクトリにマウントされます。
たとえば、次のコマンドを /Users/mona
ディレクトリで使用すると、GitHub Actions Importer 監査の概要が /Users/mona/out
ディレクトリに出力されます。
gh actions-importer audit --output-dir /data/out
プロキシの使用
HTTP プロキシが構成されたサーバーにアクセスするには、プロキシの URL で以下の環境変数を設定する必要があります。
OCTOKIT_PROXY
: すべての GitHub サーバーの場合。HTTP_PROXY
(またはHTTPS_PROXY
): 他のサーバーの場合。
次に例を示します。
export OCTOKIT_PROXY=https://proxy.example.com:8443
export HTTPS_PROXY=$OCTOKIT_PROXY
プロキシで認証が必要な場合は、プロキシの URL にユーザー名とパスワードを含める必要があります。 たとえば、「 https://username:[email protected]:port
」のように入力します。
SSL 証明書の検証の無効化
既定では、GitHub Actions Importer はネットワーク要求を行うときに SSL 証明書を検証します。 --no-ssl-verify
オプションで SSL 証明書の検証を無効にできます。 次に例を示します。
gh actions-importer audit --output-dir ./output --no-ssl-verify
法的通知
MIT ライセンスのもとで https://github.com/github/gh-actions-importer/ から一部を引用しています。
MIT License
Copyright (c) 2022 GitHub
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.