# Zusätzliche Argumente und Einstellungen

GitHub Actions Importer verfügt über mehrere zusätzliche Argumente und Einstellungen, mit denen du den Migrationsprozess an deine Anforderungen anpassen kannst.

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. Alle anderen als die bereitgestellten Aktionen werden nicht zugelassen.

  Beispiel:

  ```shell
  --allowed-actions actions/checkout@v6 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 der `github`- oder `actions`-Organisation veröffentlichte Aktionen zulässig sind.

  Solche Aktionen umfassen z. B. `github/super-linter` und `actions/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:

```yaml
- 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:

```yaml
- 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` (Standardwert)
* `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:

```shell
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`.

Sie können die Liste der verfügbaren Feature-Flags für GitHub Actions Importer anzeigen, indem Sie den Befehl `list-features` ausführen. Beispiel:

```shell copy
gh actions-importer list-features
```

Es sollte in etwa folgende Ausgabe angezeigt werden:

<!-- markdownlint-disable search-replace -->

```shell
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
```

<!-- markdownlint-enable search-replace -->

Um Funktionsflaggen umzuschalten, können Sie eine der folgenden Methoden verwenden:
* Verwende die Optionen `--enable-features` und `--disable-features`, wenn du den Befehl `gh 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:

```shell
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:

```shell
$ 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:

```shell
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:

```shell
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` (oder `HTTPS_PROXY`): für alle anderen Server.

Beispiel:

```shell
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:

```shell
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:

```text
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.
```