Dieser Artikel enthält allgemeine Informationen zum Konfigurieren der zusätzlichen Argumente und Einstellungen von GitHub Actions Importer, z. B. optionale Parameter, Pfadargumente und Netzwerkeinstellungen.
Optionale Parameter
GitHub Actions Importer verfügt über mehrere optionale Parameter, mit denen du den Migrationsprozess anpassen kannst.
Einschränken zulässiger Aktionen
Die folgenden Optionen können verwendet werden, um die in konvertierten Workflows zulässigen Aktionen zu begrenzen. In Kombination können diese Optionen die Liste der zulässigen Aktionen erweitern. Wenn keine dieser Optionen angegeben wird, sind alle Aktionen zulässig.
-
--allowed-actions
gibt eine Liste von Aktionen an, die in konvertierten Workflows zugelassen werden sollen. Platzhalter werden unterstützt. Es werden nur die bereitgestellten Aktionen zugelassen.Beispiel:
--allowed-actions actions/checkout@v4 actions/upload-artifact@* my-org/*
Du kannst eine leere Liste bereitstellen, um keine Aktionen zuzulassen. Beispiel:
--allowed-actions=
. -
--allow-verified-actions
gibt an, dass alle Aktionen von verifizierten Erstellern zulässig sind. -
--allow-github-created-actions
gibt an, dass von dergithub
- oderactions
-Organisation veröffentlichte Aktionen zulässig sind.Solche Aktionen umfassen z. B.
github/super-linter
undactions/checkout
.Diese Option entspricht
--allowed-actions actions/* github/*
.
Verwenden einer Anmeldeinformationsdatei für die Authentifizierung
Der Parameter --credentials-file
gibt den Pfad zu einer Datei mit Anmeldeinformationen für verschiedene Server an, bei denen sich GitHub Actions Importer authentifizieren kann. Dies ist nützlich, wenn Buildskripts (z. B. .travis.yml
oder jenkinsfile
) in mehreren GitHub Enterprise Server-Instanzen gespeichert werden.
Eine Anmeldeinformationsdatei muss eine YAML-Datei sein, die eine Liste von Server- und Zugriffstokenkombinationen enthält. GitHub Actions Importer verwendet die Anmeldeinformationen für die URL, die der Netzwerkanforderung am ehesten entspricht.
Beispiel:
- 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
Für die obige Anmeldeinformationsdatei verwendet GitHub Actions Importer das Zugriffstoken ghp_mygeneraltoken
, um alle Netzwerkanforderungen bei https://github.com
zu authentifizieren, es sei denn, die Netzwerkanforderung gilt für ein Repository in der Organisation specific_org
. In diesem Fall wird stattdessen das Token ghp_myorgspecifictoken
zur Authentifizierung verwendet.
Alternative Quellcodeanbieter
GitHub Actions Importer kann automatisch Quellcode aus Nicht-GitHub-Repositorys abrufen. Eine Anmeldeinformationsdatei kann den provider
, die Anbieter-URL und die Anmeldeinformationen angeben, die zum Abrufen des Quellcodes erforderlich sind.
Beispiel:
- url: https://gitlab.com
access_token: super_secret_token
provider: gitlab
Im obigen Beispiel verwendet GitHub Actions Importer das Token super_secret_token
zum Abrufen von Quellcode, der auf https://gitlab.com
gehostet wird.
Unterstützte Werte für provider
lauten:
github
(Standard)gitlab
bitbucket_server
azure_devops
Steuern optionaler Features
Anhand der Option --features
kannst du die Features einschränken, die in den von GitHub Actions Importer erstellten Workflows verwendet werden. Dies ist nützlich, um die neuere GitHub Actions-Syntax bei der Migration zu einer älteren GitHub Enterprise Server-Instanz aus den Workflows auszuschließen. Wenn du die Option --features
verwendest, musst du die Version von GitHub Enterprise Server angeben, zu der migriert wird.
Beispiel:
gh actions-importer dry-run ... --features ghes-3.3
Folgende Werte werden für --features
unterstützt:
all
(Standardwert)ghes-latest
ghes-<number>
, wobei<number>
der Version von GitHub Enterprise Server entspricht,3.0
oder höher. Beispiel:ghes-3.3
.
Du kannst die Liste der verfügbaren Featureflags nach GitHub Actions Importer anzeigen, indem du den Befehl list-features
ausführst. Beispiel:
gh actions-importer list-features
gh actions-importer list-features
Es sollte in etwa folgende Ausgabe angezeigt werden:
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
Um Featureflags umzuschalten, kannst du eine der folgenden Methoden verwenden:
- Verwende die Optionen
--enable-features
und--disable-features
, wenn du den Befehlgh actions-importer
ausführst. - Verwende eine Umgebungsvariable für jedes Featureflag.
Du kannst die Optionen --enable-features
und --disable-features
verwenden, um bestimmte Features auszuwählen, die für die Dauer des Befehls aktiviert oder deaktiviert werden sollen.
Mit dem folgenden Befehl wird beispielsweise die Verwendung von actions/cache
und composite-actions
deaktiviert:
gh actions-importer dry-run ... --disable-features=composite-actions actions/cache
Du kannst den Befehl configure --features
verwenden, um Featureflags interaktiv zu konfigurieren und automatisch in deine Umgebung zu schreiben:
$ 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
Deaktivieren des Zwischenspeicherns von Netzwerkantworten
Standardmäßig speichert GitHub Actions Importer Antworten aus Netzwerkanforderungen zwischen, um die Netzwerklast zu verringern und die Laufzeit zu verkürzen. Du kannst die Option --no-http-cache
verwenden, um den Netzwerkcache zu deaktivieren. Beispiel:
gh actions-importer forecast ... --no-http-cache
Pfadargumente
Beim Ausführen von GitHub Actions Importer sind Pfadargumente relativ zum Datenträger des Containers. Absolute Pfade relativ zum Hostcomputer des Containers werden nicht unterstützt. Bei der Ausführung von GitHub Actions Importer wird das Verzeichnis des /data
-Containers in das Verzeichnis eingebunden, in dem GitHub Actions Importer ausgeführt wird.
Ein Beispiel: Wenn der folgende Befehl im Verzeichnis /Users/mona
verwendet wird, gibt er die GitHub Actions Importer-Überwachungszusammenfassung an das Verzeichnis /Users/mona/out
aus:
gh actions-importer audit --output-dir /data/out
Verwenden eines Proxys
Um auf Server zuzugreifen, die mit einem HTTP-Proxy konfiguriert sind, musst du die folgenden Umgebungsvariablen mit der URL des Proxys festlegen:
OCTOKIT_PROXY
: für alle GitHub-Server.HTTP_PROXY
(oderHTTPS_PROXY
): für alle anderen Server.
Beispiel:
export OCTOKIT_PROXY=https://proxy.example.com:8443
export HTTPS_PROXY=$OCTOKIT_PROXY
Wenn der Proxy eine Authentifizierung erfordert, müssen ein Benutzername und ein Kennwort in der Proxy-URL enthalten sein. Beispiel: https://username:password@proxy.url:port
.
Deaktivieren der SSL-Zertifikatüberprüfung
Standardmäßig werden SSL-Zertifikate beim Senden von Netzwerkanforderungen von GitHub Actions Importer überprüft. Du kannst die SSL-Zertifikatüberprüfung mit der Option --no-ssl-verify
deaktivieren. Beispiel:
gh actions-importer audit --output-dir ./output --no-ssl-verify
Rechtliche Hinweise
Teile wurden von https://github.com/github/gh-actions-importer/ unter der MIT-Lizenz übernommen:
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.