1
0
mirror of synced 2025-12-30 03:01:36 -05:00

translations batch (#17637)

* New Crowdin translations by Github Action

* fix frontmatter errors in translation

* fix release notes

* revert broken translation to main

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
This commit is contained in:
Vanessa Yuen
2021-02-02 20:56:26 +01:00
committed by GitHub
parent e53d1b7982
commit 5336b9a35c
2731 changed files with 24684 additions and 15460 deletions

View File

@@ -10,7 +10,10 @@ redirect_from:
versions:
free-pro-team: '*'
enterprise-server: '>=2.22'
type: 'overview'
type: overview
topics:
- Action development
- Fundamentals
---
{% data reusables.actions.enterprise-beta %}
@@ -124,7 +127,7 @@ Schritte:
#### Verwenden des SHA eines Commits für die Releaseverwaltung
Each Git commit receives a calculated SHA value, which is unique and immutable. Your action's users might prefer to rely on a commit's SHA value, as this approach can be more reliable than specifying a tag, which could be deleted or moved. However, this means that users will not receive further updates made to the action. Using a commit's full SHA value instead of the abbreviated value can help prevent people from using a malicious commit that uses the same abbreviation.
Each Git commit receives a calculated SHA value, which is unique and immutable. Your action's users might prefer to rely on a commit's SHA value, as this approach can be more reliable than specifying a tag, which could be deleted or moved. However, this means that users will not receive further updates made to the action. {% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.0" %}You must use a commit's full SHA value, and not an abbreviated value.{% else %}Using a commit's full SHA value instead of the abbreviated value can help prevent people from using a malicious commit that uses the same abbreviation.{% endif %}
```yaml
Schritte:

View File

@@ -6,6 +6,8 @@ versions:
free-pro-team: '*'
enterprise-server: '>=2.22'
type: 'tutorial'
topics:
- 'Action development'
---
{% data reusables.actions.enterprise-beta %}
@@ -65,12 +67,12 @@ Before you begin, you'll create a {% data variables.product.product_name %} repo
required: true
default: 'World'
outputs:
random-number:
random-number:
description: "Random number"
value: ${{ steps.random-number-generator.outputs.random-id }}
runs:
using: "composite"
steps:
steps:
- run: echo Hello ${{ inputs.who-to-greet }}.
shell: bash
- id: random-number-generator
@@ -122,7 +124,7 @@ jobs:
uses: actions/hello-world-composite-run-steps-action@v1
with:
who-to-greet: 'Mona the Octocat'
- run: echo random-number ${{ steps.foo.outputs.random-number }}
- run: echo random-number ${{ steps.foo.outputs.random-number }}
shell: bash
```
{% endraw %}

View File

@@ -11,6 +11,9 @@ versions:
free-pro-team: '*'
enterprise-server: '>=2.22'
type: 'tutorial'
topics:
- 'Action development'
- 'Docker'
---
{% data reusables.actions.enterprise-beta %}
@@ -39,7 +42,7 @@ Erstellen Sie zunächst ein GitHub-Repository.
1. Gehe in Deinem Terminal zum Verzeichnisse Deines neuen Repositorys.
```shell
```shell{:copy}
cd hello-world-docker-action
```
@@ -48,7 +51,7 @@ Erstellen Sie zunächst ein GitHub-Repository.
Erstelle im neuen Verzeichnis `hello-world-docker-action` eine neue `Dockerfile`-Datei. Weitere Informationen findest Du unter „[Dockerfile-Support für {% data variables.product.prodname_actions %}](/actions/creating-actions/dockerfile-support-for-github-actions)“.
**Dockerfile**
```dockerfile
```dockerfile{:copy}
# Container-Image, das Deinen Code ausführt
FROM alpine:3.10
@@ -65,7 +68,7 @@ Erstellen Sie eine neue `action.yml`-Datei im von Ihnen oben erstellten Verzeich
{% raw %}
**action.yml**
```yaml
```yaml{:copy}
# action.yml
name: 'Hello World'
description: 'Greet someone and record the time'
@@ -97,25 +100,24 @@ Als Nächstes ruft das Skript die aktuelle Zeit ab und legt sie als eine Ausgabe
1. Erstelle eine neue `entrypoint.sh`-Datei im Verzeichnis `hello-world-docker-action`.
1. Mache Deine Datei `entrypoint.sh` ausführbar:
```shell
chmod +x entrypoint.sh
```
1. Füge Deiner Datei `entrypoint.sh` den folgenden Code hinzu.
**entrypoint.sh**
```shell
```shell{:copy}
#!/bin/sh -l
echo "Hello $1"
time=$(date)
echo "::set-output name=time::$time"
```
Wenn `entrypoint.sh` ohne Fehler durchläuft, wird der Status der Aktion auf `success` (erfolgreich) festgelegt. Du kannst auch explizit Exit-Codes im Code Deiner Aktion festlegen, um einen Status der Aktion anzugeben. Weitere Informationen findest Du unter "[Exit Codes für Aktionen setzen](/actions/creating-actions/setting-exit-codes-for-actions)."
1. Make your `entrypoint.sh` file executable by running the following command on your system.
```shell{:copy}
$ chmod +x entrypoint.sh
```
### Eine README erstellen
Sie können eine README-Datei erstellen, um Person dahingehend zu informieren, wie sie Ihre Aktion verwenden sollen. Eine README ist am hilfreichsten, wenn Sie vorhaben, Ihre Aktion öffentlich freizugeben. Zudem eignet sie sich dafür, Sie oder Ihr Team dahingehend zu erinnern, wie die Aktion verwendet wird.
@@ -130,7 +132,7 @@ Erstelle in Deinem Verzeichnis `hello-world-docker-action` eine Datei `README.md
- Ein Beispiel für die Verwendung Deiner Aktion in einem Workflow.
**README.md**
```markdown
```markdown{:copy}
# Docker-Aktion „Hello world“
Diese Aktion gibt „Hello World“ oder „Hello“ + den Namen einer Person aus, die im Protokoll gegrüßt werden soll.
@@ -160,7 +162,7 @@ Committen Sie in Ihrem Terminal Ihre Dateien `action.yml`, `entrypoint.sh`, `Doc
Es hat sich bewährt, auch ein Versions-Tag für Releases Deiner Aktion hinzuzufügen. Weitere Informationen zur Versionierung Deiner Aktion findest Du unter "[Informationen zu Aktionen](/actions/automating-your-workflow-with-github-actions/about-actions#using-release-management-for-actions)."
```shell
```shell{:copy}
git add action.yml entrypoint.sh Dockerfile README.md
git commit -m "My first action is ready"
git tag -a -m "My first action release" v1
@@ -175,11 +177,11 @@ Nun sind Sie bereit, Ihre Aktion in einem Workflow zu testen. Wenn eine Aktion i
#### Beispiel mit einer öffentlichen Aktion
Der folgende Workflow-Code verwendet die fertiggestellte Aktion „hello world“ im öffentlichen Repository [`actions/hello-world-docker-action`](https://github.com/actions/hello-world-docker-action). Kopiere den folgenden Workflow-Beispielcode in eine Datei `.github/workflows/main.yml`. Ersetze jedoch `actions/hello-world-docker-action` durch Deinen Repository- und Aktionsnamen. Darüber hinaus können Sie die Eingabe `who-to-greet` durch Ihren Namen ersetzen.
The following workflow code uses the completed _hello world_ action in the public [`actions/hello-world-docker-action`](https://github.com/actions/hello-world-docker-action) repository. Kopiere den folgenden Workflow-Beispielcode in eine Datei `.github/workflows/main.yml`. Ersetze jedoch `actions/hello-world-docker-action` durch Deinen Repository- und Aktionsnamen. Darüber hinaus können Sie die Eingabe `who-to-greet` durch Ihren Namen ersetzen. {% if currentVersion == "free-pro-team@latest" %}Public actions can be used even if they're not published to {% data variables.product.prodname_marketplace %}. For more information, see "[Publishing an action](/actions/creating-actions/publishing-actions-in-github-marketplace#publishing-an-action)." {% endif %}
{% raw %}
**.github/workflows/main.yml**
```yaml
```yaml{:copy}
on: [push]
jobs:
@@ -200,11 +202,11 @@ jobs:
#### Beispiel mit einer privaten Aktion
Kopieren Sie den folgenden Workflow-Beispielcode im Repository Ihrer Aktion in eine `.github/workflows/main.yml`-Datei. Darüber hinaus können Sie die Eingabe `who-to-greet` durch Ihren Namen ersetzen.
Kopieren Sie den folgenden Workflow-Beispielcode im Repository Ihrer Aktion in eine `.github/workflows/main.yml`-Datei. Darüber hinaus können Sie die Eingabe `who-to-greet` durch Ihren Namen ersetzen. {% if currentVersion == "free-pro-team@latest" %}This private action can't be published to {% data variables.product.prodname_marketplace %}, and can only be used in this repository.{% endif %}
{% raw %}
**.github/workflows/main.yml**
```yaml
```yaml{:copy}
zu: [push]
Jobs:

View File

@@ -11,6 +11,9 @@ versions:
free-pro-team: '*'
enterprise-server: '>=2.22'
type: 'tutorial'
topics:
- 'Action development'
- 'JavaScript'
---
{% data reusables.actions.enterprise-beta %}

View File

@@ -8,7 +8,7 @@ redirect_from:
versions:
free-pro-team: '*'
enterprise-server: '>=2.22'
type: 'reference'
type: reference
---
{% data reusables.actions.enterprise-beta %}
@@ -48,20 +48,21 @@ Für die Docker-Anweisung `ENTRYPOINT` gibt es sowohl eine _shell_-Form als auch
Wenn Du Deinen Container so konfigurierst, dass er die _exec_-Form der Anweisung `ENTRYPOINT` verwendet, können die in der Metadaten-Datei der Aktion konfigurierten `args` (Argumente) nicht in einer Kommando-Shell genutzt werden. Wenn die `Args` der Aktion eine Umgebungsvariable enthalten, wird die Variable nicht ersetzt. Wenn Du zum Beispiel das folgende _exec_-Format verwendest, wird nicht der in `$GITHUB_SHA` gespeicherte Wert ausgegeben, sondern stattdessen „`$GITHUB_SHA`“.
```
```dockerfile
ENTRYPOINT ["echo $GITHUB_SHA"]
```
Wenn Du Variablensubstitution willst, verwende entweder die _Shell_-Form oder führe direkt eine Shell aus. Zum Beispiel kannst Du mit dem folgenden _exec_-Format eine Shell ausführen, um den Wert auszugeben, der in der Umgebungsvariable `GITHUB_SHA` gespeichert ist.
```
```dockerfile
ENTRYPOINT ["sh", "-c", "echo $GITHUB_SHA"]
```
Um `args` aus der Metadaten-Datei der Aktion an einen Docker Container zu übergeben, der die _exec_-Form im `ENTRYPOINT` verwendet, empfehlen wir, ein Shell-Skript namens `entrypoint.sh` zu erstellen und dieses von der `ENTRYPOINT`-Anweisung aus anrufen:
##### Beispiel *Dockerfile*
```
```dockerfile
# Container image that runs your code
FROM debian:9.5-slim

View File

@@ -1,7 +1,7 @@
---
title: Metadaten-Syntax für GitHub-Aktionen
shortTitle: Metadaten-Syntax
intro: Du kannst Aktionen erstellen, um Aufgaben in Ihrem Repository zu erledigen. Für Aktionen ist eine Metadaten-Datei erforderlich, welche die YAML-Syntax verwendet.
intro: 'Du kannst Aktionen erstellen, um Aufgaben in Ihrem Repository zu erledigen. Für Aktionen ist eine Metadaten-Datei erforderlich, welche die YAML-Syntax verwendet.'
product: '{% data reusables.gated-features.actions %}'
redirect_from:
- /articles/metadata-syntax-for-github-actions
@@ -11,7 +11,7 @@ redirect_from:
versions:
free-pro-team: '*'
enterprise-server: '>=2.22'
type: 'reference'
type: reference
---
{% data reusables.actions.enterprise-beta %}

View File

@@ -41,11 +41,13 @@ Weitere Informationen finden Sie unter „[Eine JavaScript-Aktion erstellen](/ar
Wenn Sie eine Docker-Container-Aktion erstellen, können Sie einen Fehler-Exit-Code im `entrypoint.sh`-Skript festlegen. Ein Beispiel:
{% raw %}
```
if <condition> ; then
echo "Game over!"
exit 1
fi
```
{% endraw %}
Weitere Informationen finden Sie unter „[Eine Docker-Container-Aktion erstellen](/articles/creating-a-docker-container-action)“.

View File

@@ -8,7 +8,9 @@ redirect_from:
versions:
free-pro-team: '*'
enterprise-server: '>=2.22'
type: 'overview'
type: overview
topics:
- Pakete erstellen
---
{% data reusables.actions.enterprise-beta %}

View File

@@ -8,7 +8,10 @@ redirect_from:
versions:
free-pro-team: '*'
enterprise-server: '>=2.22'
type: 'overview'
type: overview
topics:
- Containers
- Docker
---
{% data reusables.actions.enterprise-beta %}
@@ -47,7 +50,7 @@ Du kannst das Schlüsselwort `Services` verwenden, um Service-Container zu erste
Dieses Beispiel erstellt einen Dienst namens `redis` in einem Job namens `container-job`. Der Docker-Host in diesem Beispiel ist der Container `node:10.18-jessie`.
{% raw %}
```yaml
```yaml{:copy}
name: Redis container example
on: push
@@ -89,7 +92,7 @@ Wenn Du den Port des Docker-Hosts angibst, aber nicht den des Containers, dann w
Dieses Beispiel ordnet den Port 6379 des Service-Containers `redis` dem Port 6379 des Docker-Hosts zu.
{% raw %}
```yaml
```yaml{:copy}
name: Redis Service Example
on: push

View File

@@ -8,6 +8,10 @@ versions:
free-pro-team: '*'
enterprise-server: '>=2.22'
type: 'tutorial'
topics:
- 'CI'
- 'Java'
- 'Ant'
---
{% data reusables.actions.enterprise-beta %}
@@ -38,7 +42,7 @@ Um schnell loszulegen, kannst Du beim Erstellen eines neuen Workflows die vorkon
Du kannst auch manuell diesen Workflow hinzufügen, indem Du eine neue Datei im Verzeichnis `.github/workflows` Deines Reporitorys erstellst.
{% raw %}
```yaml
```yaml{:copy}
name: Java CI
on: [push]
@@ -79,7 +83,7 @@ Der Starter-Workflow führt das in der Datei _build.xml_ angegebene „default t
Wenn Du zum Bauen Deines Projekts andere Befehle verwenden oder ein anderes Ziel auszuführen möchtest, kannst Du dies angeben. Vielleicht möchtest Du beispielsweise das Ziel `jar` ausführen, das in Deiner Datei _build-ci.xml_ konfiguriert ist.
{% raw %}
```yaml
```yaml{:copy}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v1
@@ -97,7 +101,7 @@ Nachdem sowohl Build erfolgreich war und Deine Tests bestanden hat, wirst Du die
Ant erstellt normalerweise Ausgabedateien wie JARs, EARs oder WARs im Verzeichnis `build/jar`. Du kannst den Inhalt dieses Verzeichnisses mit der Aktion `upload-artifact` hochladen.
{% raw %}
```yaml
```yaml{:copy}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v1

View File

@@ -8,6 +8,10 @@ versions:
free-pro-team: '*'
enterprise-server: '>=2.22'
type: 'tutorial'
topics:
- 'CI'
- 'Java'
- 'Gradle'
---
{% data reusables.actions.enterprise-beta %}
@@ -38,7 +42,7 @@ Um schnell loszulegen, kannst Du beim Erstellen eines neuen Workflows die vorkon
Du kannst auch manuell diesen Workflow hinzufügen, indem Du eine neue Datei im Verzeichnis `.github/workflows` Deines Reporitorys erstellst.
{% raw %}
```yaml
```yaml{:copy}
name: Java CI
on: [push]
@@ -79,7 +83,7 @@ Der Starter-Workflow führt standardmäßig den Task `build` aus. In der Standar
Wenn Du zum Bauen Deines Projekts andere Befehle verwenden oder einen anderen Task auszuführen möchtest, kannst Du dies angeben. Vielleicht möchtest Du beispielsweise den Task `package` ausführen, der in Deiner Datei _ci.gradle_ konfiguriert ist.
{% raw %}
```yaml
```yaml{:copy}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v1
@@ -95,7 +99,7 @@ steps:
When using {% data variables.product.prodname_dotcom %}-hosted runners, you can cache your dependencies to speed up your workflow runs. Nach einem erfolgreichen Lauf wird Dein lokaler Paket-Cache von Gradle in der Aktions-Infrastruktur auf GitHub gespeichert. Bei zukünftigen Workflow-Ausführungen wird der Cache wiederhergestellt, so dass Abhängigkeiten nicht aus entfernten Paket-Repositories heruntergeladen werden müssen. Weitere Informationen findest Du unter „<a href="/actions/guides/caching-dependencies-to-speed-up-workflows" class="dotcom-only">Caching-Abhängigkeiten zur Beschleunigung von Workflows</a>“ und der [Aktion `cache`](https://github.com/marketplace/actions/cache).
{% raw %}
```yaml
```yaml{:copy}
steps:
- uses: actions/checkout@v2
- name: Set up JDK 1.8
@@ -105,15 +109,24 @@ steps:
- name: Cache Gradle packages
uses: actions/cache@v2
with:
path: ~/.gradle/caches
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
restore-keys: ${{ runner.os }}-gradle
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Build with Gradle
run: ./gradlew build
- name: Cleanup Gradle Cache
# Remove some files from the Gradle cache, so they aren't cached by GitHub Actions.
# Restoring these files from a GitHub Actions cache might cause problems for future builds.
run: |
rm -f ~/.gradle/caches/modules-2/modules-2.lock
rm -f ~/.gradle/caches/modules-2/gc.properties
```
{% endraw %}
Dieser Workflow speichert den Inhalt Deines lokalen Gradle-Package-Caches im Verzeichnis `.gradle/caches` des Home-Verzeichnisses auf dem Runner. Der Cache-Schlüssel wird der gehashte Inhalt der Gradle-Build-Dateien sein, so dass Änderungen an ihnen den Cache ungültig machen.
This workflow will save the contents of your local Gradle package cache, located in the `.gradle/caches` and `.gradle/wrapper` directories of the runner's home directory. The cache key will be the hashed contents of the gradle build files (including the Gradle wrapper properties file), so any changes to them will invalidate the cache.
### Workflow-Daten als Artefakte paketieren
@@ -122,7 +135,7 @@ Nachdem sowohl Build erfolgreich war und Deine Tests bestanden hat, wirst Du die
Gradle erstellt normalerweise Ausgabedateien wie JARs, EARs oder WARs im Verzeichnis `build/libs`. Du kannst den Inhalt dieses Verzeichnisses mit der Aktion `upload-artifact` hochladen.
{% raw %}
```yaml
```yaml{:copy}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v1

View File

@@ -8,6 +8,10 @@ versions:
free-pro-team: '*'
enterprise-server: '>=2.22'
type: 'tutorial'
topics:
- 'CI'
- 'Java'
- 'Maven'
---
{% data reusables.actions.enterprise-beta %}
@@ -38,7 +42,7 @@ Um schnell loszulegen, kannst Du beim Erstellen eines neuen Workflows die vorkon
Du kannst auch manuell diesen Workflow hinzufügen, indem Du eine neue Datei im Verzeichnis `.github/workflows` Deines Reporitorys erstellst.
{% raw %}
```yaml
```yaml{:copy}
name: Java CI
on: [push]
@@ -79,7 +83,7 @@ Der Starter-Workflow führt standardmäßig das „target“ (Ziel) `package` au
Wenn Du zum Bauen Deines Projekts andere Befehle verwenden oder ein anderes Ziel auszuführen möchtest, kannst Du dies angeben. Vielleicht möchtest Du beispielsweise das Ziel `verify` ausführen, das in Deiner Datei _pom-ci.xml_ konfiguriert ist.
{% raw %}
```yaml
```yaml{:copy}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v1
@@ -95,7 +99,7 @@ steps:
When using {% data variables.product.prodname_dotcom %}-hosted runners, you can cache your dependencies to speed up your workflow runs. Nach einem erfolgreichen Lauf wird Dein lokales Maven-Repository in der Aktions-Infrastruktur auf GitHub gespeichert. Bei zukünftigen Workflow-Ausführungen wird der Cache wiederhergestellt, so dass Abhängigkeiten nicht aus entfernten Maven-Repositories heruntergeladen werden müssen. Weitere Informationen findest Du unter „<a href="/actions/guides/caching-dependencies-to-speed-up-workflows" class="dotcom-only">Caching-Abhängigkeiten zur Beschleunigung von Workflows</a>“ und der [Aktion `cache`](https://github.com/marketplace/actions/cache).
{% raw %}
```yaml
```yaml{:copy}
steps:
- uses: actions/checkout@v2
- name: Set up JDK 1.8
@@ -122,7 +126,7 @@ Nachdem sowohl Build erfolgreich war und Deine Tests bestanden hat, wirst Du die
Maven erstellt normalerweise Ausgabedateien wie JARs, EARs oder WARs im Verzeichnis `target`. Um diese als Artefakte hochzuladen, kannst du sie in ein neues Verzeichnis kopieren, welches Artefakte zum Hochladen enthält. Zum Beispiel kannst Du ein Verzeichnis namens `staging` erstellen. Dann kannst Du den Inhalt dieses Verzeichnisses mit der Aktion `upload-artifact` hochladen.
{% raw %}
```yaml
```yaml{:copy}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v1

View File

@@ -44,7 +44,7 @@ jobs:
- name: Setup .NET Core SDK ${{ matrix.dotnet }}
uses: actions/setup-dotnet@v1.6.0
with:
dotnet-version: {{ matrix.dotnet-version }}
dotnet-version: ${{ matrix.dotnet-version }}
- name: Install dependencies
run: dotnet restore
- name: Build
@@ -58,7 +58,7 @@ jobs:
To use a preinstalled version of the .NET Core SDK on a {% data variables.product.prodname_dotcom %}-hosted runner, use the `setup-dotnet` action. This action finds a specific version of .NET from the tools cache on each runner, and adds the necessary binaries to `PATH`. These changes will persist for the remainder of the job.
The `setup-dotnet` action is the recommended way of using .NET with {% data variables.product.prodname_actions %}, because it ensures consistent behavior across different runners and different versions of .NET. If you are using a self-hosted runner, you must install .NET and add it to `PATH`. For more information, see the [`setup-dotnet`](https://github.com/marketplace/actions/setup-dotnet).
The `setup-dotnet` action is the recommended way of using .NET with {% data variables.product.prodname_actions %}, because it ensures consistent behavior across different runners and different versions of .NET. If you are using a self-hosted runner, you must install .NET and add it to `PATH`. For more information, see the [`setup-dotnet`](https://github.com/marketplace/actions/setup-net-core-sdk) action.
#### Using multiple .NET versions
@@ -125,7 +125,7 @@ steps:
You can cache NuGet dependencies using a unique key, which allows you to restore the dependencies for future workflows with the [`cache`](https://github.com/marketplace/actions/cache) action. For example, the YAML below installs the `Newtonsoft` package.
For more information, see "[Caching dependencies to speed up workflows](/actions/guides/caching-dependencies-to-speed-up-workflows)."
Weitere Informationen findest Du unter „[Abhängigkeiten zur Beschleunigung von Workflows im Cache zwischenspeichern](/actions/guides/caching-dependencies-to-speed-up-workflows).
{% raw %}
```yaml

View File

@@ -9,6 +9,10 @@ versions:
free-pro-team: '*'
enterprise-server: '>=2.22'
type: 'tutorial'
topics:
- 'CI'
- 'Node'
- 'JavaScript'
---
{% data reusables.actions.enterprise-beta %}
@@ -77,7 +81,7 @@ The template includes a matrix strategy that builds and tests your code with fou
Jeder Job in der Matrix kann mithilfe des `Matrix`-Kontexts auf den im Array `node-version` definierten Wert zugreifen. Die Aktion `setup-node` verwendet den Kontext als Eingabe für `node-version`. Die Aktion `setup-node` konfiguriert jeden Job mit einer anderen Node.js-Version bevor sie den Code baut und testet. Weitere Informationen zu Matrix-Strategien und Kontexten findest Du unter „[Workflow-Syntax für {% data variables.product.prodname_actions %}](/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstrategymatrix)“ und „[Kontext- und Ausdruckssyntax für {% data variables.product.prodname_actions %}](/actions/reference/context-and-expression-syntax-for-github-actions)“.
{% raw %}
```yaml
```yaml{:copy}
strategy:
matrix:
node-version: [10.x, 12.x, 14.x, 15.x]
@@ -93,7 +97,7 @@ steps:
Alternativ kannnst Du auch mit genauen Node.js-Versionen bauen und testen.
```yaml
```yaml{:copy}
strategy:
matrix:
node-version: [8.16.2, 10.17.0]
@@ -102,7 +106,7 @@ strategy:
Oder Du kannst auch mithilfe einer einzelnen Version von Node.js bauen und testen.
{% raw %}
```yaml
```yaml{:copy}
name: Node.js CI
on: [push]
@@ -136,7 +140,7 @@ When using {% data variables.product.prodname_dotcom %}-hosted runners, you can
Dieses Beispiel installiert die Abhängigkeiten, die in der Datei *package.json* definiert sind. Weitere Informationen findest Du unter [`npm install`](https://docs.npmjs.com/cli/install).
```yaml
```yaml{:copy}
steps:
- uses: actions/checkout@v2
- name: Use Node.js
@@ -150,7 +154,7 @@ steps:
Du kannst mithilfe `npm ci` die Versionen in der Datei *package-lock.json* oder *npm-shrinkwrap.json* installieren und Aktualisierungen der Sperrdatei verhindern. `npm ci` zu verwenden ist gewöhnlich schneller als `npm install` laufen zu lassen. Weitere Informationen findest Du unter [`npm ci`](https://docs.npmjs.com/cli/ci.html) und „[Einführung in `npm ci` für schnellere und zuverlässigere Builds](https://blog.npmjs.org/post/171556855892/introducing-npm-ci-for-faster-more-reliable)“.
{% raw %}
```yaml
```yaml{:copy}
steps:
- uses: actions/checkout@v2
- name: Use Node.js
@@ -166,7 +170,7 @@ steps:
Dieses Beispiel installiert die Abhängigkeiten, die in der Datei *package.json* definiert sind. Weitere Informationen findest Du unter [`Yarn-Installation`](https://yarnpkg.com/en/docs/cli/install).
```yaml
```yaml{:copy}
steps:
- uses: actions/checkout@v2
- name: Use Node.js
@@ -179,7 +183,7 @@ steps:
Alternativ kannst Du `--frozen-lockfile` übergeben, um die Versionen in der Datei *yarn.lock* zu installieren und Aktualisierungen der Datei *yarn.lock* zu verhindern.
```yaml
```yaml{:copy}
steps:
- uses: actions/checkout@v2
- name: Use Node.js
@@ -201,7 +205,7 @@ Im folgenden Beispiel enthält das Geheimnis `NPM_TOKEN` den npm-Authentifizieru
Bevor Du Abhängigkeiten installierst, verwende die Aktion `setup-node`, um die Datei *.npmrc* zu erstellen. Die Aktion hat zwei Eingabeparameter. Der Parameter `node-version` legt die Version von Node.js fest und der Parameter `registry-url` bestimmt die Standard-Registry. Wenn Deine Paket-Registry Geltungsbereiche verwendet, musst Du den Parameter `scope` verwenden. Weitere Informationen findest Du unter [`npm-scope`](https://docs.npmjs.com/misc/scope).
{% raw %}
```yaml
```yaml{:copy}
steps:
- uses: actions/checkout@v2
- name: Use Node.js
@@ -220,7 +224,7 @@ steps:
Das obige Beispiel erzeugt eine *.npmrc* Datei mit folgendem Inhalt:
```
```ini
//registry.npmjs.org/:_authToken=${NODE_AUTH_TOKEN}
@octocat:registry=https://registry.npmjs.org/
always-auth=true
@@ -231,7 +235,7 @@ always-auth=true
When using {% data variables.product.prodname_dotcom %}-hosted runners, you can cache dependencies using a unique key, and restore the dependencies when you run future workflows using the `cache` action. Weitere Informationen findest Du unter „<a href="/actions/guides/caching-dependencies-to-speed-up-workflows" class="dotcom-only">Caching-Abhängigkeiten zur Beschleunigung von Workflows</a>“ und der [Aktion `cache`](https://github.com/marketplace/actions/cache).
{% raw %}
```yaml
```yaml{:copy}
steps:
- uses: actions/checkout@v2
- name: Use Node.js
@@ -256,7 +260,7 @@ steps:
Du kannst die gleichen Befehle verwenden, die Du auch lokal verwendest, um Deinen Code zu erstellen und zu testen. Wenn Du beispielsweise `npm run build` ausführst, um die in Deinem *package.json* definierten Build-Schritte zu durchlaufen, und `npm test`, um Deine Testsuite laufen zu lassen, dann fügst Di diese Befehle in Deine Workflow-Datei ein.
```yaml
```yaml{:copy}
steps:
- uses: actions/checkout@v2
- name: Use Node.js

View File

@@ -8,6 +8,9 @@ versions:
authors:
- potatoqualitee
type: 'tutorial'
topics:
- 'CI'
- 'Powershell'
---
{% data reusables.actions.enterprise-beta %}

View File

@@ -8,6 +8,9 @@ versions:
free-pro-team: '*'
enterprise-server: '>=2.22'
type: 'tutorial'
topics:
- 'CI'
- 'Python'
---
{% data reusables.actions.enterprise-beta %}
@@ -37,7 +40,7 @@ Du solltest ein grundlegendes Verständnis von Python, PyPy und pip haben. Weite
Um schnell loszulegen, füge die Vorlage in das Verzeichnis `.github/workflows` Deines Repositorys ein.
{% raw %}
```yaml
```yaml{:copy}
name: Python package
on: [push]
@@ -94,7 +97,7 @@ Wenn Du einen selbst gehosteten Runner verwendest, kannst Du den Runner so konfi
#### Mehrere Python-Versionen verwenden
{% raw %}
```yaml
```yaml{:copy}
name: Python package
on: [push]
@@ -126,7 +129,7 @@ jobs:
Du kannst eine bestimmte Version von Python konfigurieren, For example, 3.8. Alternatively, you can use semantic version syntax to get the latest minor release. Dieses Beispiel verwendet das neueste Minor Release von Python 3.
{% raw %}
```yaml
```yaml{:copy}
name: Python package
on: [push]
@@ -158,7 +161,7 @@ Wenn du eine Version von Python angibst, die nicht verfügbar ist, schlägt `set
Du kannst in Deinem Workflow auch das Schlüsselwort `exclude` verwenden, wenn Du eine bestimmte Konfiguration von Python nicht laufen lassen möchtest. Weitere Informationen findest Du unter „[Workflow-Syntax für {% data variables.product.prodname_actions %}](/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstrategy)“.
{% raw %}
```yaml
```yaml{:copy}
name: Python package
on: [push]
@@ -196,7 +199,7 @@ Auf {% data variables.product.prodname_dotcom %}-gehosteten Runnern ist der Pake
When using {% data variables.product.prodname_dotcom %}-hosted runners, you can also cache dependencies to speed up your workflow. Weitere Informationen findest Du unter „<a href="/actions/guides/caching-dependencies-to-speed-up-workflows" class="dotcom-only">Abhängigkeiten zur Beschleunigung von Workflows im Cache zwischenspeichern</a>“.
{% raw %}
```yaml
```yaml{:copy}
steps:
- uses: actions/checkout@v2
- name: Set up Python
@@ -213,7 +216,7 @@ steps:
Nach dem Update von `pip` werden üblicherweise im nächsten Schritt die Abhängigkeiten aus *requirements.txt* installiert.
{% raw %}
```yaml
```yaml{:copy}
steps:
- uses: actions/checkout@v2
- name: Set up Python
@@ -234,7 +237,7 @@ When using {% data variables.product.prodname_dotcom %}-hosted runners, you can
Pip caches dependencies in different locations, depending on the operating system of the runner. The path you'll need to cache may differ from the Ubuntu example below depending on the operating system you use. For more information, see [Python caching examples](https://github.com/actions/cache/blob/main/examples.md#python---pip).
{% raw %}
```yaml
```yaml{:copy}
steps:
- uses: actions/checkout@v2
- name: Setup Python
@@ -271,7 +274,7 @@ Du kannst die gleichen Befehle verwenden, die Du auch lokal verwendest, um Deine
This example installs or upgrades `pytest` and `pytest-cov`. Tests are then run and output in JUnit format while code coverage results are output in Cobertura. For more information, see [JUnit](https://junit.org/junit5/) and [Cobertura](https://cobertura.github.io/cobertura/).
{% raw %}
```yaml
```yaml{:copy}
steps:
- uses: actions/checkout@v2
- name: Set up Python
@@ -295,7 +298,7 @@ steps:
The following example installs or upgrades `flake8` and uses it to lint all files. For more information, see [Flake8](http://flake8.pycqa.org/en/latest/).
{% raw %}
```yaml
```yaml{:copy}
steps:
- uses: actions/checkout@v2
- name: Set up Python
@@ -318,7 +321,7 @@ steps:
With {% data variables.product.prodname_actions %}, you can run tests with tox and spread the work across multiple jobs. You'll need to invoke tox using the `-e py` option to choose the version of Python in your `PATH`, rather than specifying a specific version. For more information, see [tox](https://tox.readthedocs.io/en/latest/).
{% raw %}
```yaml
```yaml{:copy}
name: Python package
on: [push]
@@ -352,7 +355,7 @@ You can upload artifacts to view after a workflow completes. Zum Beispiel kann e
The following example demonstrates how you can use the `upload-artifact` action to archive test results from running `pytest`. For more information, see the [`upload-artifact` action](https://github.com/actions/upload-artifact).
{% raw %}
```yaml
```yaml{:copy}
name: Python package
on: [push]
@@ -365,26 +368,26 @@ jobs:
matrix:
python-version: [2.7, 3.5, 3.6, 3.7, 3.8]
steps:
- uses: actions/checkout@v2
- name: Setup Python # Set Python version
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
# Install pip and pytest
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pytest
- name: Test with pytest
run: pytest tests.py --doctest-modules --junitxml=junit/test-results-${{ matrix.python-version }}.xml
- name: Upload pytest test results
uses: actions/upload-artifact@v2
with:
name: pytest-results-${{ matrix.python-version }}
path: junit/test-results-${{ matrix.python-version }}.xml
# Use always() to always run this step to publish test results when there are test failures
if: ${{ always() }}
steps:
- uses: actions/checkout@v2
- name: Setup Python # Set Python version
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
# Install pip and pytest
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pytest
- name: Test with pytest
run: pytest tests.py --doctest-modules --junitxml=junit/test-results-${{ matrix.python-version }}.xml
- name: Upload pytest test results
uses: actions/upload-artifact@v2
with:
name: pytest-results-${{ matrix.python-version }}
path: junit/test-results-${{ matrix.python-version }}.xml
# Use always() to always run this step to publish test results when there are test failures
if: ${{ always() }}
```
{% endraw %}
@@ -395,7 +398,7 @@ You can configure your workflow to publish your Python package to any package re
You can store any access tokens or credentials needed to publish your package using secrets. The following example creates and publishes a package to PyPI using `twine` and `dist`. Weitere Informationen findest Du unter "[Verschlüsselte Geheimnisse erstellen und verwenden](/github/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets)".
{% raw %}
```yaml
```yaml{:copy}
name: Upload Python Package
on:

View File

@@ -6,6 +6,9 @@ versions:
free-pro-team: '*'
enterprise-server: '>=2.22'
type: 'tutorial'
topics:
- 'CI'
- 'Ruby'
---
{% data reusables.actions.enterprise-beta %}
@@ -46,10 +49,7 @@ jobs:
steps:
- uses: actions/checkout@v2
- name: Set up Ruby
# To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
# change this to (see https://github.com/ruby/setup-ruby#versioning):
# uses: ruby/setup-ruby@v1
uses: ruby/setup-ruby@ec106b438a1ff6ff109590de34ddc62c540232e0
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6
- name: Install dependencies
@@ -63,7 +63,7 @@ jobs:
The easiest way to specify a Ruby version is by using the `ruby/setup-ruby` action provided by the Ruby organization on GitHub. The action adds any supported Ruby version to `PATH` for each job run in a workflow. For more information see, the [`ruby/setup-ruby`](https://github.com/ruby/setup-ruby).
Using either Ruby's `ruby/setup-ruby` action or GitHub's `actions/setup-ruby` action is the recommended way of using Ruby with GitHub Actions because it ensures consistent behavior across different runners and different versions of Ruby.
Using Ruby's `ruby/setup-ruby` action is the recommended way of using Ruby with GitHub Actions because it ensures consistent behavior across different runners and different versions of Ruby.
The `setup-ruby` action takes a Ruby version as an input and configures that version on the runner.
@@ -119,10 +119,7 @@ jobs:
steps:
- uses: actions/checkout@v2
- name: Set up Ruby ${{ matrix.ruby-version }}
# To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
# change this to (see https://github.com/ruby/setup-ruby#versioning):
# uses: ruby/setup-ruby@v1
uses: ruby/setup-ruby@ec106b438a1ff6ff109590de34ddc62c540232e0
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby-version }}
- name: Install dependencies
@@ -316,4 +313,3 @@ jobs:
GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}"
```
{% endraw %}

View File

@@ -10,6 +10,8 @@ redirect_from:
versions:
free-pro-team: '*'
type: 'tutorial'
topics:
- 'Workflows'
---
### Informationen zum Zwischenspeichern von Workflow-Abhängigkeiten
@@ -68,7 +70,7 @@ Weitere Informationen findest Du unter [`Aktionen/Cache`](https://github.com/act
Dieses Beispiel erzeugt einen neuen Cache, wenn sich die Pakete in `package-lock.json` ändern oder wenn das Betriebssystem des Runners wechselt. Das folgende Beispiel verwendet Kontexte und Ausdrücke, um einen Schlüssel zu erzeugen, der eine Kennung des Runner-Betriebssystems und einen SHA-256-Hash der Datei `package-lock.json` enthält.
{% raw %}
```yaml
```yaml{:copy}
name: Caching mit npm
on: push
@@ -124,14 +126,14 @@ Ein Cache-Key (Cache-Schlüssel) kann Kontexte, Funktionen, Literale und Operato
Wenn Du zum Erstellen eines `key`s Ausdrücke verwendest, kannst Du automatisch einen neuen Cache zu erstellen, sobald sich die Abhängigkeiten geändert haben. Zum Beispiel kannst Du einen `key` mittels eines Ausdrucks erstellen, der den Hash-Code einer npm-Datei `package-lock.json` errechnet.
{% raw %}
```
```yaml
npm-${{ hashFiles('package-lock.json') }}
```
{% endraw %}
{% data variables.product.prodname_dotcom %} wertet den Ausdruck aus `hash "package-lock.json"` um daraus den endgültigen `key` abzuleiten.
```
```yaml
npm-d5ea0750
```
@@ -144,7 +146,7 @@ Du kannst eine Liste der `restore-keys` angeben, die verwendet werden sollen, we
#### Beispiel für die Verwendung mehrerer Restore-Keys
{% raw %}
```
```yaml
restore-keys: |
npm-foobar-${{ hashFiles('package-lock.json') }}
npm-foobar-
@@ -155,7 +157,7 @@ restore-keys: |
Der Runner bewertet die Ausdrücke, die sich in folgende `restore-keys` auflösen lassen:
{% raw %}
```
```yaml
restore-keys: |
npm-foobar-d5ea0750
npm-foobar-

View File

@@ -10,6 +10,9 @@ versions:
free-pro-team: '*'
enterprise-server: '>=2.22'
type: 'tutorial'
topics:
- 'Containers'
- 'Docker'
---
{% data reusables.actions.enterprise-beta %}
@@ -37,7 +40,7 @@ Es kann Dir auch helfen, YAML, die Syntax für {% data variables.product.prodnam
{% data reusables.github-actions.copy-workflow-file %}
{% raw %}
```yaml
```yaml{:copy}
name: PostgreSQL service example
on: push
@@ -94,7 +97,7 @@ jobs:
{% data reusables.github-actions.postgres-label-description %}
```yaml
```yaml{:copy}
jobs:
# Label des Container-Jobs
container-job:
@@ -124,7 +127,7 @@ jobs:
{% data reusables.github-actions.service-template-steps %}
```yaml
```yaml{:copy}
steps:
# Laedt eine Kopie des Codes in Dein Repository herunter, bevor CI-Tests starten
- name: Check out repository code
@@ -159,7 +162,7 @@ Wenn Du einen Job direkt auf der Runner-Maschine ausführst, musst Du die Ports
{% data reusables.github-actions.copy-workflow-file %}
{% raw %}
```yaml
```yaml{:copy}
name: PostgreSQL Service Example
on: push
@@ -220,7 +223,7 @@ jobs:
Der Workflow ordnet Port 5432 des PostgreSQL-Service-Containers dem Docker-Host zu. Weitere Informationen über das Schlüsselwort `ports` findest Du unter "[Informationen über Service-Container](/actions/automating-your-workflow-with-github-actions/about-service-containers#mapping-docker-host-and-service-container-ports)."
```yaml
```yaml{:copy}
jobs:
# Label des Runner-Jobs
runner-job:
@@ -251,7 +254,7 @@ jobs:
{% data reusables.github-actions.service-template-steps %}
```yaml
```yaml{:copy}
steps:
# Laedt eine Kopie des Codes in Dein Repository herunter, bevor CI-Tests starten
- name: Check out repository code
@@ -287,7 +290,7 @@ Du kannst *client.js* anpassen, um alle PostgreSQL-Vorgänge einzuschließen, di
{% data reusables.github-actions.service-container-add-script %}
```javascript
```javascript{:copy}
const { Client } = require('pg');
const pgclient = new Client({

View File

@@ -10,6 +10,9 @@ versions:
free-pro-team: '*'
enterprise-server: '>=2.22'
type: 'tutorial'
topics:
- 'Containers'
- 'Docker'
---
{% data reusables.actions.enterprise-beta %}
@@ -37,7 +40,7 @@ Es kannst Dir helfen, wenn Du ein grundlegendes Verständnis von YAML, der Synta
{% data reusables.github-actions.copy-workflow-file %}
{% raw %}
```yaml
```yaml{:copy}
name: Redis container example
on: push
@@ -91,7 +94,7 @@ jobs:
{% data reusables.github-actions.redis-label-description %}
```yaml
```yaml{:copy}
jobs:
# Label des Container-Jobs
container-job:
@@ -118,7 +121,7 @@ jobs:
{% data reusables.github-actions.service-template-steps %}
```yaml
```yaml{:copy}
steps:
# Laedt eine Kopie des Codes in Dein Repository herunter, bevor CI tests gestartet werden
- name: Check out repository code
@@ -152,7 +155,7 @@ Wenn Du einen Job direkt auf der Runner-Maschine ausführst, musst Du die Ports
{% data reusables.github-actions.copy-workflow-file %}
{% raw %}
```yaml
```yaml{:copy}
name: Redis runner example
on: push
@@ -210,7 +213,7 @@ jobs:
Der Workflow ordnet Port 6379 des Redis-Service-Containers dem Docker-Host zu. Weitere Informationen über das Schlüsselwort `ports` findest Du unter "[Informationen über Service-Container](/actions/automating-your-workflow-with-github-actions/about-service-containers#mapping-docker-host-and-service-container-ports)."
```yaml
```yaml{:copy}
jobs:
# Label des Runner-Jobs
runner-job:
@@ -238,7 +241,7 @@ jobs:
{% data reusables.github-actions.service-template-steps %}
```yaml
```yaml{:copy}
steps:
# Laedt eine Kopie des Codes in Dein Repository herunter, bevor CI tests gestartet werden
- name: Check out repository code
@@ -274,7 +277,7 @@ Du kannst *client.js* anpassen, um alle Redis-Operationen abzudecken, die Dein W
{% data reusables.github-actions.service-container-add-script %}
```javascript
```javascript{:copy}
const redis = require("redis");
// Erzeugt einen neuen Redis-Client

View File

@@ -5,6 +5,11 @@ product: '{% data reusables.gated-features.actions %}'
versions:
free-pro-team: '*'
enterprise-server: '>=2.22'
type: 'tutorial'
topics:
- 'CD'
- 'Containers'
- 'Amazon ECS'
---
{% data reusables.actions.enterprise-beta %}

View File

@@ -5,6 +5,11 @@ product: '{% data reusables.gated-features.actions %}'
versions:
free-pro-team: '*'
enterprise-server: '>=2.22'
type: 'tutorial'
topics:
- 'CD'
- 'Containers'
- 'Azure App Service'
---
{% data reusables.actions.enterprise-beta %}

View File

@@ -5,6 +5,11 @@ product: '{% data reusables.gated-features.actions %}'
versions:
free-pro-team: '*'
enterprise-server: '>=2.22'
type: 'tutorial'
topics:
- 'CD'
- 'Containers'
- 'Google Kubernetes Engine'
---
{% data reusables.actions.enterprise-beta %}

View File

@@ -21,9 +21,46 @@ learningTracks:
- getting_started
- continuous_integration
- continuous_deployment
- deploy_to_the_cloud
- hosting_your_own_runners
- create_actions
layout: product-sublanding
includeGuides:
- /actions/quickstart
- /actions/learn-github-actions/introduction-to-github-actions
- /actions/creating-actions/creating-a-docker-container-action
- /actions/guides/setting-up-continuous-integration-using-workflow-templates
- /actions/guides/building-and-testing-python
- /actions/guides/building-and-testing-nodejs
- /actions/guides/about-packaging-with-github-actions
- /actions/guides/publishing-docker-images
- /actions/guides/caching-dependencies-to-speed-up-workflows
- /actions/guides/about-continuous-integration
- /actions/guides/building-and-testing-powershell
- /actions/guides/building-and-testing-ruby
- /actions/guides/building-and-testing-java-with-maven
- /actions/guides/building-and-testing-java-with-gradle
- /actions/guides/building-and-testing-java-with-ant
- /actions/guides/publishing-nodejs-packages
- /actions/guides/publishing-java-packages-with-maven
- /actions/guides/publishing-java-packages-with-gradle
- /actions/guides/storing-workflow-data-as-artifacts
- /actions/guides/about-service-containers
- /actions/guides/creating-redis-service-containers
- /actions/guides/creating-postgresql-service-containers
- /actions/guides/deploying-to-amazon-elastic-container-service
- /actions/guides/deploying-to-azure-app-service
- /actions/guides/deploying-to-google-kubernetes-engine
- /actions/learn-github-actions/essential-features-of-github-actions
- /actions/learn-github-actions/security-hardening-for-github-actions
- /actions/creating-actions/about-actions
- /actions/creating-actions/creating-a-javascript-action
- /actions/creating-actions/creating-a-composite-run-steps-action
- /actions/learn-github-actions/migrating-from-azure-pipelines-to-github-actions
- /actions/learn-github-actions/migrating-from-circleci-to-github-actions
- /actions/learn-github-actions/migrating-from-gitlab-cicd-to-github-actions
- /actions/learn-github-actions/migrating-from-jenkins-to-github-actions
- /actions/learn-github-actions/migrating-from-travis-ci-to-github-actions
---
<!-- {% link_in_list /about-continuous-integration %} -->

View File

@@ -8,6 +8,10 @@ versions:
free-pro-team: '*'
enterprise-server: '>=2.22'
type: 'tutorial'
topics:
- 'Pakete erstellen'
- 'Publishing'
- 'Docker'
---
{% data reusables.actions.enterprise-beta %}
@@ -55,7 +59,7 @@ Um zum „Docker Hub“ zu pushen, benötigst Du ein Benutzerkonto auf „Docker
* `repository`: Dein „Docker Hub“-Repository im Format `DOCKER-HUB-NAMESPACE/DOCKER-HUB-REPOSITORY`.
{% raw %}
```yaml
```yaml{:copy}
name: Publish Docker image
on:
release:
@@ -93,7 +97,7 @@ Die für {% data variables.product.prodname_registry %} erforderlichen `build-pu
* `repository`: Muss im Format `OWNER/REPOSITORY/IMAGE_NAME` gesetzt werden. Beispiel: Für ein Bild namens `octo-image` auf {% data variables.product.prodname_dotcom %} unter `http://github. om/octo-org/octo-repo` sollte die Option `repository` auf `octo-org/octo-repo/octo-image` gesetzt werden.
{% raw %}
```yaml
```yaml{:copy}
name: Publish Docker image
on:
release:
@@ -126,7 +130,7 @@ In einem einzigen Workflow kannst Du Dein Docker-Image in mehreren Registries ve
Der folgende Beispiel-Workflow verwendet die Schritte der `build-push-action` aus den vorherigen Abschnitten („[Veröffentlichung von Bildern auf Docker Hub](#publishing-images-to-docker-hub)“ und „[Veröffentlichung von Bildern in {% data variables.product.prodname_registry %}](#publishing-images-to-github-packages)“), um einen einzigen Workflow zu erstellen, der in beide Registries pusht.
{% raw %}
```yaml
```yaml{:copy}
name: Publish Docker image
on:
release:

View File

@@ -8,6 +8,11 @@ versions:
free-pro-team: '*'
enterprise-server: '>=2.22'
type: 'tutorial'
topics:
- 'Pakete erstellen'
- 'Publishing'
- 'Java'
- 'Gradle'
---
{% data reusables.actions.enterprise-beta %}
@@ -43,7 +48,7 @@ Jedes Mal, wenn Du ein neues Release erstellst, kannst Du einen Workflow anstoß
Du kannst ein neues Maven-Repository im Block `publishing` Deiner Datei _build.gradle_ definieren, das auf Dein Paket-Repository verweist. Wenn Du zum Beispiel über das OSSRH-Hosting-Projekt in das „Maven Central Repository“ deployst, kann Deine _build.gradle_ ein Repository mit dem Namen `"OSSRH"` bestimmen.
{% raw %}
```groovy
```groovy{:copy}
publishing {
...
@@ -67,7 +72,7 @@ Im Deploy-Schritt musst Du Umgebungsvariablen für den Benutzernamen und das Pas
{% raw %}
```yaml
```yaml{:copy}
name: Publish package to the Maven Central Repository
on:
release:
@@ -105,7 +110,7 @@ Der `GITHUB_TOKEN` existiert standardmäßig in Deinem Repository und hat Lese-
Wenn beispielsweise Deine Organisation „octocat“ und Dein Repository „hello-world“ heißt, sieht die {% data variables.product.prodname_registry %}-Konfiguration in _build.gradle_ so ähnlich wie im folgenden Beispiel aus.
{% raw %}
```groovy
```groovy{:copy}
publishing {
...
@@ -126,7 +131,7 @@ publishing {
Mit dieser Konfiguration kannst Du einen Workflow erstellen, der mithilfe des Befehls `gradle publish` Dein Paket im „Maven Central Repository“ veröffentlicht.
{% raw %}
```yaml
```yaml{:copy}
name: Publish package to GitHub Packages
on:
release:
@@ -162,7 +167,7 @@ Wenn Du beispielsweise über das OSSRH-Hosting-Projekt in das Central Repository
Wenn Deine Organisation „octocat“ und Dein Repository „hello-world“ heißt, sieht die {% data variables.product.prodname_registry %}-Konfiguration in _build.gradle_ so ähnlich wie im folgenden Beispiel aus.
{% raw %}
```groovy
```groovy{:copy}
publishing {
...
@@ -191,7 +196,7 @@ publishing {
Mit dieser Konfiguration kannst Du einen Workflow erstellen, der mithilfe des Befehls `gradle publish` Dein Paket sowohl im „Maven Central Repository“ als auch in der {% data variables.product.prodname_registry %} veröffentlicht.
{% raw %}
```yaml
```yaml{:copy}
name: Publish package to the Maven Central Repository and GitHub Packages
on:
release:

View File

@@ -8,6 +8,11 @@ versions:
free-pro-team: '*'
enterprise-server: '>=2.22'
type: 'tutorial'
topics:
- 'Pakete erstellen'
- 'Publishing'
- 'Java'
- 'Maven'
---
{% data reusables.actions.enterprise-beta %}
@@ -47,7 +52,7 @@ In diesem Workflow kannst Du die Aktion `setup-java` verwenden. Diese Aktion ins
Wenn Du zum Beispiel über das OSSRH-Hosting-Projekt ins „Maven Central Repository“ deployst, kann Deine _pom.xml_ ein Distributions-Management-Repository mit `ossrh` als `id` angeben.
{% raw %}
```xml
```xml{:copy}
<project ...>
...
<distributionManagement>
@@ -67,7 +72,7 @@ Im Deploy-Schritt musst Du die Umgebungsvariablen auf den Benutzernamen setzen,
{% raw %}
```yaml
```yaml{:copy}
name: Publish package to the Maven Central Repository
on:
release:
@@ -113,7 +118,7 @@ Für ein Maven-basiertes Projekt kannst Du diese Einstellungen nutzen, indem Du
Wenn beispielsweise Deine Organisation „octocat“ und Dein Repository „hello-world“ heißt, sieht die {% data variables.product.prodname_registry %}-Konfiguration in _pom.xml_ so ähnlich wie im folgenden Beispiel aus.
{% raw %}
```xml
```xml{:copy}
<project ...>
...
<distributionManagement>
@@ -130,7 +135,7 @@ Wenn beispielsweise Deine Organisation „octocat“ und Dein Repository „hell
Mit dieser Konfiguration kannst Du einen Workflow erstellen, der Dein Paket in der {% data variables.product.prodname_registry %} veröffentlicht, indem Du die automatisch generierte _settings.xml_ verwendest.
{% raw %}
```yaml
```yaml{:copy}
name: Publish package to GitHub Packages
on:
release:
@@ -165,7 +170,7 @@ Du kannst Deine Pakete sowohl im Maven Central Repository als auch in der {% dat
Stelle sicher, dass Deine Datei _pom.xml_ ein Distributionsmanagement-Repository sowohl für Dein {% data variables.product.prodname_dotcom %}-Repository als auch Deinen „Maven Central Repository“-Provider enthält. Wenn Du z.B. über das Hosting-Projekt OSSRH in das Central Repository deployst, solltest Du es vielleicht in einem Distributionsverwaltungs-Repository mit `ossrh` als `id` angeben, und Du solltest {% data variables.product.prodname_registry %} in einem Distributionsverwaltungs-Repository mit `github` als `id` setzen.
{% raw %}
```yaml
```yaml{:copy}
name: Publish package to the Maven Central Repository and GitHub Packages
on:
release:

View File

@@ -9,6 +9,11 @@ versions:
free-pro-team: '*'
enterprise-server: '>=2.22'
type: 'tutorial'
topics:
- 'Pakete erstellen'
- 'Publishing'
- 'Node'
- 'JavaScript'
---
{% data reusables.actions.enterprise-beta %}
@@ -54,7 +59,7 @@ Wenn Du ein Paket veröffentlichst, das einen Präfix für den „scope“ (Gelt
Dieses Beispiel speichert das Geheimnis `NPM_TOKEN` in der Umgebungsvariablen `NODE_AUTH_TOKEN`. Wenn die Aktion `setup-node` eine Datei *.npmrc* erzeugt, referenziert sie das Token aus der Umgebungsvariable `NODE_AUTH_TOKEN`.
{% raw %}
```yaml
```yaml{:copy}
name: Node.js Package
on:
release:
@@ -78,7 +83,7 @@ jobs:
Im obigen Beispiel erzeugt die Aktion `setup-node` auf dem Runner eine Datei *.npmrc* mit folgendem Inhalt:
```
```ini
//registry.npmjs.org/:_authToken=${NODE_AUTH_TOKEN}
registry=https://registry.npmjs.org/
always-auth=true
@@ -114,7 +119,7 @@ If you want to publish your package to a different repository, you must use a pe
Dieses Beispiel speichert das Geheimnis `GITHUB_TOKEN` in der Umgebungsvariablen `NODE_AUTH_TOKEN`. Wenn die Aktion `setup-node` eine Datei *.npmrc* erzeugt, referenziert sie das Token aus der Umgebungsvariable `NODE_AUTH_TOKEN`.
{% raw %}
```yaml
```yaml{:copy}
name: Node.js Package
on:
release:
@@ -140,7 +145,7 @@ jobs:
Die Aktion `setup-node` erzeugt eine Datei *.npmrc* auf dem Runner. Wenn Du für die Aktion `setup-node` die Eingabe `scope` verwendest, enthält die Datei *.npmrc* das Präfix „scope“. Standardmäßig legt die Aktion `setup-node` den „Scope“ (Geltungsbereich) in der Datei *.npmrc* auf das Konto fest, das diese Workflow-Datei enthält.
```
```ini
//npm.pkg.github.com/:_authToken=${NODE_AUTH_TOKEN}
@octocat:registry=https://npm.pkg.github.com
always-auth=true
@@ -151,7 +156,7 @@ always-auth=true
Wenn Du den Paketmanager „Yarn“ verwendest, kannst Du mit Yarn Pakete installieren und veröffentlichen.
{% raw %}
```yaml
```yaml{:copy}
name: Node.js Package
on:
release:
@@ -167,7 +172,7 @@ jobs:
node-version: '12.x'
registry-url: 'https://registry.npmjs.org'
# Defaults to the user or organization that owns the workflow file
scope: '@octocat'
scope: '@octocat'
- run: yarn
- run: yarn publish
env:
@@ -196,7 +201,7 @@ Wenn Du für die Aktion `setup-node` die Eingabe `scope` verwendest, erstellt di
Dieser Workflow ruft die Aktion `setup-node` zweimal auf. Jedes Mal, wenn die Aktion `setup-node` ausgeführt wird, überschreibt sie die Datei *.npmrc*. Die Datei *.npmrc* referenziert den Token, mit dem Du authentifizierte Operationen in der Paket-Registry durchführen kannst, durch die Umgebungsvariable `NODE_AUTH_TOKEN`. Der Workflow setzt die Umgebungsvariable `NODE_AUTH_TOKEN` jedes Mal, wenn der Befehl `npm publish` ausgeführt wird; zuerst mit einem Token zum Veröffentlichen auf npm (`NPM_TOKEN`) und dann mit einem Token zum Veröffentlichen in der {% data variables.product.prodname_registry %} (`GITHUB_TOKEN`).
{% raw %}
```yaml
```yaml{:copy}
name: Node.js Package
on:
release:

View File

@@ -12,6 +12,8 @@ versions:
free-pro-team: '*'
enterprise-server: '>=2.22'
type: 'tutorial'
topics:
- 'Workflows'
---
{% data reusables.actions.enterprise-beta %}
@@ -79,7 +81,7 @@ In diesem Beispiel wird gezeigt, wie Sie einen Workflow für ein Node.js-Projekt
Der Workflow lädt die Produktionsartefakte in das `dist` Verzeichnis, schließt jedoch alle Markdowndateien aus. Es lädt auch die `code-coverage.html` Bericht als ein weiteres Artefakt.
```yaml
```yaml{:copy}
Name: Node CI
on: [push]
@@ -114,7 +116,7 @@ jobs:
You can define a custom retention period for individual artifacts created by a workflow. When using a workflow to create a new artifact, you can use `retention-days` with the `upload-artifact` action. This example demonstrates how to set a custom retention period of 5 days for the artifact named `my-artifact`:
```
```yaml{:copy}
- name: 'Upload Artifact'
uses: actions/upload-artifact@v2
with:
@@ -183,7 +185,7 @@ Auftrag 3 zeigt das im vorherigen Auftrag hochgeladene Ergebnis an:
Die vollständige, in diesem Workflow-Beispiel durchgeführte mathematische Operation lautet `(3 + 7) x 9 = 90`.
```yaml
```yaml{:copy}
name: Daten zwischen Jobs
teilen: [push]

View File

@@ -7,7 +7,7 @@ redirect_from:
versions:
free-pro-team: '*'
enterprise-server: '>=2.22'
type: 'overview'
type: overview
---
{% data reusables.actions.enterprise-beta %}

View File

@@ -38,7 +38,7 @@ Wenn es nicht praktikabel ist, Umgebungsvariablen zu setzen, kannst Du die Proxy
Eine beispielhafte Proxy-Konfiguration mittels _.env_ ist unten dargestellt:
```
```ini
https_proxy=http://proxy.local:8080
no_proxy=example.com,myserver.local:443
```

View File

@@ -64,8 +64,11 @@ Diese Labels funktionieren kumulativ, so dass die Labels eines selbst-gehosteten
### Routing precedence for self-hosted runners
If you use both repository-level and organization-level runners, {% data variables.product.prodname_dotcom %} follows an order of precedence when routing jobs to self-hosted runners:
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:
1. The job's `runs-on` labels are processed. {% data variables.product.prodname_dotcom %} then attempts to locate a runner that matches the label requirements:
2. The job is sent to a repository-level runner that matches the job labels. If no repository-level runner is available (either busy, offline, or no matching labels):
3. The job is sent to an organization-level runner that matches the job labels. If no organization-level runner is available, the job request fails with an error.
1. {% data variables.product.prodname_dotcom %} first searches for a runner at the repository level, then at the organization level{% if currentVersion ver_gt "enterprise-server@2.21" %}, then at the enterprise level{% endif %}.
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.

View File

@@ -10,21 +10,22 @@ featuredLinks:
- /actions/learn-github-actions
- /actions/guides/about-continuous-integration
- /actions/guides/about-packaging-with-github-actions
gettingStarted:
- /actions/managing-workflow-runs
- /actions/hosting-your-own-runners
guideCards:
- /actions/guides/setting-up-continuous-integration-using-workflow-templates
- /actions/guides/publishing-nodejs-packages
- /actions/guides/building-and-testing-powershell
popular:
- /actions/reference/workflow-syntax-for-github-actions
- /actions/reference/events-that-trigger-workflows
- /actions/learn-github-actions
- /actions/reference/events-that-trigger-workflows
- /actions/reference/context-and-expression-syntax-for-github-actions
- /actions/reference/workflow-commands-for-github-actions
- /actions/reference/environment-variables
- /actions/reference/encrypted-secrets
changelog:
-
title: Environments, environment protection rules and environment secrets (beta)
date: '2020-12-15'
href: https://github.blog/changelog/2020-12-15-github-actions-environments-environment-protection-rules-and-environment-secrets-beta/
-
title: Workflow visualization
date: '2020-12-08'
@@ -33,10 +34,6 @@ changelog:
title: Removing set-env and add-path commands on November 16
date: '2020-11-09'
href: https://github.blog/changelog/2020-10-01-github-actions-deprecating-set-env-and-add-path-commands/
-
title: Ubuntu-latest workflows will use Ubuntu-20.04
date: '2020-10-29'
href: https://github.blog/changelog/2020-10-29-github-actions-ubuntu-latest-workflows-will-use-ubuntu-20-04
product_video: https://www.youtube-nocookie.com/embed/cP0I9w2coGU
redirect_from:
- /articles/automating-your-workflow-with-github-actions/
@@ -73,7 +70,7 @@ versions:
{% render 'code-example-card' for actionsCodeExamples as example %}
</div>
<button class="js-filter-card-show-more btn btn-outline float-right">Show more {% octicon "arrow-right" %}</button>
<button class="js-filter-card-show-more btn btn-outline float-right" data-js-filter-card-max="6">Show more {% octicon "arrow-right" %}</button>
<div class="js-filter-card-no-results d-none py-4 text-center text-gray font-mktg">
<div class="mb-3">{% octicon "search" width="24" %}</div>

View File

@@ -5,7 +5,9 @@ intro: '{% data variables.product.prodname_actions %} are designed to help you b
versions:
free-pro-team: '*'
enterprise-server: '>=2.22'
type: 'overview'
type: overview
topics:
- Fundamentals
---
{% data reusables.actions.enterprise-beta %}

View File

@@ -11,6 +11,8 @@ versions:
free-pro-team: '*'
enterprise-server: '>=2.22'
type: 'how_to'
topics:
- 'Fundamentals'
---
{% data reusables.actions.enterprise-beta %}
@@ -68,7 +70,7 @@ Schritte:
#### Using SHAs
If you need more reliable versioning, you should use the SHA value associated with the version of the action. SHAs are immutable and therefore more reliable than tags or branches. However this approach means you will not automatically receive updates for an action, including important bug fixes and security updates. This example targets an action's SHA:
If you need more reliable versioning, you should use the SHA value associated with the version of the action. SHAs are immutable and therefore more reliable than tags or branches. However this approach means you will not automatically receive updates for an action, including important bug fixes and security updates. {% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.0" %}You must use a commit's full SHA value, and not an abbreviated value. {% endif %}This example targets an action's SHA:
```yaml
Schritte:

View File

@@ -9,7 +9,9 @@ redirect_from:
versions:
free-pro-team: '*'
enterprise-server: '>=2.22'
type: 'overview'
type: overview
topics:
- Fundamentals
---
{% data reusables.actions.enterprise-beta %}
@@ -147,7 +149,7 @@ To help you understand how YAML syntax is used to create a workflow file, this s
```
</td>
<td>
Groups together all the steps that run in the <code>check-bats-version</code> job. Each line nested under this section is a separate action.
Groups together all the steps that run in the <code>check-bats-version</code> job. Each item nested under this section is a separate action or shell command.
</td>
</tr>
<tr>
@@ -180,7 +182,7 @@ To help you understand how YAML syntax is used to create a workflow file, this s
```
</td>
<td>
The <code>run</code> keyword tells the job to execute a command on the runner. In this case, you are using <code>npm</code> to install the <code>bats</code> software testing package.
The <code>run</code> keyword tells the job to execute a command on the runner. In this case, you are using <code>npm</code> to install the <code>bats</code> software testing package.
</td>
</tr>
<tr>

View File

@@ -6,6 +6,8 @@ versions:
free-pro-team: '*'
enterprise-server: '>=2.22'
type: 'how_to'
topics:
- 'Workflows'
---
{% data reusables.actions.enterprise-beta %}

View File

@@ -7,6 +7,11 @@ versions:
free-pro-team: '*'
enterprise-server: '>=2.22'
type: 'tutorial'
topics:
- 'Azure-Pipelines'
- 'Migration'
- 'CI'
- 'CD'
---
{% data reusables.actions.enterprise-beta %}
@@ -62,16 +67,16 @@ Azure-Pipelines
{% raw %}
```yaml
jobs:
- job: scripts
pool:
vmImage: 'windows-latest'
steps:
- script: echo "This step runs in the default shell"
- bash: echo "This step runs in bash"
- pwsh: Write-Host "This step runs in PowerShell Core"
- task: PowerShell@2
inputs:
script: Write-Host "This step runs in PowerShell"
- job: scripts
pool:
vmImage: 'windows-latest'
steps:
- script: echo "This step runs in the default shell"
- bash: echo "This step runs in bash"
- pwsh: Write-Host "This step runs in PowerShell Core"
- task: PowerShell@2
inputs:
script: Write-Host "This step runs in PowerShell"
```
{% endraw %}
</td>
@@ -82,13 +87,13 @@ jobs:
scripts:
runs-on: windows-latest
steps:
- run: echo "This step runs in the default shell"
- run: echo "This step runs in bash"
shell: bash
- run: Write-Host "This step runs in PowerShell Core"
shell: pwsh
- run: Write-Host "This step runs in PowerShell"
shell: powershell
- run: echo "This step runs in the default shell"
- run: echo "This step runs in bash"
shell: bash
- run: Write-Host "This step runs in PowerShell Core"
shell: pwsh
- run: Write-Host "This step runs in PowerShell"
shell: powershell
```
{% endraw %}
</td>
@@ -123,11 +128,11 @@ Azure-Pipelines
{% raw %}
```yaml
jobs:
- job: run_command
pool:
vmImage: 'windows-latest'
steps:
- script: echo "This step runs in CMD on Windows by default"
- job: run_command
pool:
vmImage: 'windows-latest'
steps:
- script: echo "This step runs in CMD on Windows by default"
```
{% endraw %}
</td>
@@ -138,9 +143,9 @@ jobs:
run_command:
runs-on: windows-latest
steps:
- run: echo "This step runs in PowerShell on Windows by default"
- run: echo "This step runs in CMD on Windows explicitly"
shell: cmd
- run: echo "This step runs in PowerShell on Windows by default"
- run: echo "This step runs in CMD on Windows explicitly"
shell: cmd
```
{% endraw %}
</td>
@@ -171,12 +176,12 @@ Azure-Pipelines
{% raw %}
```yaml
jobs:
- job: conditional
pool:
vmImage: 'ubuntu-latest'
steps:
- script: echo "This step runs with str equals 'ABC' and num equals 123"
condition: and(eq(variables.str, 'ABC'), eq(variables.num, 123))
- job: conditional
pool:
vmImage: 'ubuntu-latest'
steps:
- script: echo "This step runs with str equals 'ABC' and num equals 123"
condition: and(eq(variables.str, 'ABC'), eq(variables.num, 123))
```
{% endraw %}
</td>
@@ -187,8 +192,8 @@ jobs:
conditional:
runs-on: ubuntu-latest
steps:
- run: echo "This step runs with str equals 'ABC' and num equals 123"
if: ${{ env.str == 'ABC' && env.num == 123 }}
- run: echo "This step runs with str equals 'ABC' and num equals 123"
if: ${{ env.str == 'ABC' && env.num == 123 }}
```
{% endraw %}
</td>
@@ -217,29 +222,29 @@ Azure-Pipelines
{% raw %}
```yaml
jobs:
- job: initial
pool:
vmImage: 'ubuntu-latest'
steps:
- script: echo "This job will be run first."
job: fanout1
pool:
vmImage: 'ubuntu-latest'
dependsOn: initial
steps:
- script: echo "This job will run after the initial job, in parallel with fanout2."
job: fanout2
pool:
vmImage: 'ubuntu-latest'
dependsOn: initial
steps:
- script: echo "This job will run after the initial job, in parallel with fanout1."
job: fanin:
pool:
vmImage: 'ubuntu-latest'
dependsOn: [fanout1, fanout2]
steps:
- script: echo "This job will run after fanout1 and fanout2 have finished."
- job: initial
pool:
vmImage: 'ubuntu-latest'
steps:
- script: echo "This job will be run first."
- job: fanout1
pool:
vmImage: 'ubuntu-latest'
dependsOn: initial
steps:
- script: echo "This job will run after the initial job, in parallel with fanout2."
- job: fanout2
pool:
vmImage: 'ubuntu-latest'
dependsOn: initial
steps:
- script: echo "This job will run after the initial job, in parallel with fanout1."
- job: fanin:
pool:
vmImage: 'ubuntu-latest'
dependsOn: [fanout1, fanout2]
steps:
- script: echo "This job will run after fanout1 and fanout2 have finished."
```
{% endraw %}
</td>
@@ -250,22 +255,22 @@ jobs:
initial:
runs-on: ubuntu-latest
steps:
- run: echo "This job will be run first."
- run: echo "This job will be run first."
fanout1:
runs-on: ubuntu-latest
needs: initial
steps:
- run: echo "This job will run after the initial job, in parallel with fanout2."
- run: echo "This job will run after the initial job, in parallel with fanout2."
fanout2:
runs-on: ubuntu-latest
needs: initial
steps:
- run: echo "This job will run after the initial job, in parallel with fanout1."
- run: echo "This job will run after the initial job, in parallel with fanout1."
fanin:
runs-on: ubuntu-latest
needs: [fanout1, fanout2]
steps:
- run: echo "This job will run after fanout1 and fanout2 have finished."
- run: echo "This job will run after fanout1 and fanout2 have finished."
```
{% endraw %}
</td>
@@ -294,15 +299,15 @@ Azure-Pipelines
{% raw %}
```yaml
jobs:
- job: run_python
pool:
vmImage: 'ubuntu-latest'
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '3.7'
architecture: 'x64'
- script: python script.py
- job: run_python
pool:
vmImage: 'ubuntu-latest'
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '3.7'
architecture: 'x64'
- script: python script.py
```
{% endraw %}
</td>
@@ -313,11 +318,11 @@ jobs:
run_python:
runs-on: ubuntu-latest
steps:
- uses: actions/setup-python@v2
with:
python-version: '3.7'
architecture: 'x64'
- run: python script.py
- uses: actions/setup-python@v2
with:
python-version: '3.7'
architecture: 'x64'
- run: python script.py
```
{% endraw %}
</td>

View File

@@ -7,6 +7,11 @@ versions:
free-pro-team: '*'
enterprise-server: '>=2.22'
type: 'tutorial'
topics:
- 'CircleCI'
- 'Migration'
- 'CI'
- 'CD'
---
{% data reusables.actions.enterprise-beta %}
@@ -258,24 +263,24 @@ jobs:
POSTGRES_DB: ruby25
POSTGRES_PASSWORD: ""
ports:
- 5432:5432
# einen Gesundheitscheck zufuegen
- 5432:5432
# Add a health check
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
steps:
# Diese Docker-Datei Setzt USER auf circleci statt dem Standardbenutzer, daher muessen wir die Datei-Berechtigungen fuer dieses Image aktualisieren, um auf GH-Aktionen arbeiten zu koennen.
# See https://docs.github.com/actions/reference/virtual-environments-for-github-hosted-runners#docker-container-filesystem
- name: Setup file system permissions
run: sudo chmod -R 777 $GITHUB_WORKSPACE /github /__w/_temp
- uses: actions/checkout@v2
- name: Install dependencies
run: bundle install --path vendor/bundle
- name: Setup environment configuration
run: cp .sample.env .env
- name: Setup database
run: bundle exec rake db:setup
- name: Run tests
run: bundle exec rake
# This Docker file changes sets USER to circleci instead of using the default user, so we need to update file permissions for this image to work on GH Actions.
# See https://docs.github.com/actions/reference/virtual-environments-for-github-hosted-runners#docker-container-filesystem
- name: Setup file system permissions
run: sudo chmod -R 777 $GITHUB_WORKSPACE /github /__w/_temp
- uses: actions/checkout@v2
- name: Install dependencies
run: bundle install --path vendor/bundle
- name: Setup environment configuration
run: cp .sample.env .env
- name: Setup database
run: bundle exec rake db:setup
- name: Run tests
run: bundle exec rake
```
{% endraw %}
</td>
@@ -412,35 +417,35 @@ jobs:
POSTGRES_DB: ruby25
POSTGRES_PASSWORD: ""
ports:
- 5432:5432
- 5432:5432
# Add a health check
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
steps:
- uses: actions/checkout@v2
- name: Setup Ruby
uses: eregon/use-ruby-action@master
with:
ruby-version: ${{ matrix.ruby }}
- name: Cache dependencies
uses: actions/cache@v2
with:
path: vendor/bundle
key: administrate-${{ matrix.image }}-${{ hashFiles('Gemfile.lock') }}
- name: Install postgres headers
run: sudo apt-get install libpq-dev
- name: Install dependencies
run: bundle install --path vendor/bundle
- name: Setup environment configuration
run: cp .sample.env .env
- name: Setup database
run: bundle exec rake db:setup
- name: Run tests
run: bundle exec rake
- name: Install appraisal
run: bundle exec appraisal install
- name: Run appraisal
run: bundle exec appraisal rake
- uses: actions/checkout@v2
- name: Setup Ruby
uses: eregon/use-ruby-action@master
with:
ruby-version: ${{ matrix.ruby }}
- name: Cache dependencies
uses: actions/cache@v2
with:
path: vendor/bundle
key: administrate-${{ matrix.image }}-${{ hashFiles('Gemfile.lock') }}
- name: Install postgres headers
run: sudo apt-get install libpq-dev
- name: Install dependencies
run: bundle install --path vendor/bundle
- name: Setup environment configuration
run: cp .sample.env .env
- name: Setup database
run: bundle exec rake db:setup
- name: Run tests
run: bundle exec rake
- name: Install appraisal
run: bundle exec appraisal install
- name: Run appraisal
run: bundle exec appraisal rake
```
{% endraw %}
</td>

View File

@@ -5,6 +5,11 @@ versions:
free-pro-team: '*'
enterprise-server: '>=2.22'
type: 'tutorial'
topics:
- 'GitLab'
- 'Migration'
- 'CI'
- 'CD'
---
{% data reusables.actions.enterprise-beta %}
@@ -60,8 +65,8 @@ job1:
jobs:
job1:
steps:
- uses: actions/checkout@v2
- run: echo "Run your script here"
- uses: actions/checkout@v2
- run: echo "Run your script here"
```
{% endraw %}
</td>
@@ -257,24 +262,24 @@ jobs:
build_a:
runs-on: ubuntu-latest
steps:
- run: echo "This job will be run first."
- run: echo "This job will be run first."
build_b:
runs-on: ubuntu-latest
steps:
- run: echo "This job will be run first, in parallel with build_a"
- run: echo "This job will be run first, in parallel with build_a"
test_ab:
runs-on: ubuntu-latest
needs: [build_a,build_b]
steps:
- run: echo "This job will run after build_a and build_b have finished"
- run: echo "This job will run after build_a and build_b have finished"
deploy_ab:
runs-on: ubuntu-latest
needs: [test_ab]
steps:
- run: echo "This job will run after test_ab is complete"
- run: echo "This job will run after test_ab is complete"
```
{% endraw %}
</td>
@@ -335,12 +340,12 @@ test_async:
```yaml
jobs:
test_async:
- name: Cache node modules
uses: actions/cache@v2
with:
path: ~/.npm
key: v1-npm-deps-${{ hashFiles('**/package-lock.json') }}
restore-keys: v1-npm-deps-
- name: Cache node modules
uses: actions/cache@v2
with:
path: ~/.npm
key: v1-npm-deps-${{ hashFiles('**/package-lock.json') }}
restore-keys: v1-npm-deps-
```
{% endraw %}
</td>
@@ -371,7 +376,7 @@ GitLab CI/CD
script:
artifacts:
paths:
- math-homework.txt
- math-homework.txt
```
{% endraw %}
</td>
@@ -424,12 +429,12 @@ container-job:
services:
- postgres
script:
# Performs a clean installation of all dependencies
# in the `package.json` file
- npm ci
# Runs a script that creates a PostgreSQL client,
# populates the client with data, and retrieves data
- node client.js
# Performs a clean installation of all dependencies
# in the `package.json` file
- npm ci
# Runs a script that creates a PostgreSQL client,
# populates the client with data, and retrieves data
- node client.js
tags:
- docker
```

View File

@@ -7,6 +7,11 @@ versions:
free-pro-team: '*'
enterprise-server: '>=2.22'
type: 'tutorial'
topics:
- 'Jenkins'
- 'Migration'
- 'CI'
- 'CD'
---
{% data reusables.actions.enterprise-beta %}
@@ -37,8 +42,8 @@ Mit Jenkins kannst Du Builds an einen einzelnen Build-Agenten senden oder sie ü
Similarly, {% data variables.product.prodname_actions %} can send jobs to {% data variables.product.prodname_dotcom %}-hosted or self-hosted runners, and you can use labels to classify runners according to various attributes. Die folgende Tabelle vergleicht, wie das Konzept für verteilte Builds sowohl bei Jenkins als auch bei {% data variables.product.prodname_actions %} umgesetzt ist.
| Jenkins | {% data variables.product.prodname_actions %}
| ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`Agenten`](https://wiki.jenkins.io/display/JENKINS/Distributed+builds) | [`Runner`](/actions/learn-github-actions/introduction-to-github-actions#runners) <br> [`selbst-gehostete Runner`](/actions/hosting-your-own-runners/about-self-hosted-runners) |
| ----------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`Agenten`](https://wiki.jenkins.io/display/JENKINS/Distributed+builds) | [`runners`](/actions/learn-github-actions/introduction-to-github-actions#runners) <br> [`self-hosted runners`](/actions/hosting-your-own-runners/about-self-hosted-runners) |
#### Sektionen verwenden, um Pipelines zu organisieren
@@ -51,7 +56,6 @@ Jenkins teilt seine Deklarative Pipelines in mehrere Sektionen auf. Similarly, {
| [`stages`](https://jenkins.io/doc/book/pipeline/syntax/#stages) | [`jobs`](/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobs) |
| [`steps`](https://jenkins.io/doc/book/pipeline/syntax/#steps) | [`jobs.<job_id>.steps`](/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idsteps) |
### Anweisungen verwenden
Jenkins verwendet Anweisungen um _Deklarative Pipelines_ zu verwalten. Diese Anweisungen definieren die Merkmale Deines Workflows und die Art und weise, wie dieser ausgeführt wird. Die folgende Tabelle zeigt, wie diese Anweisungen den Konzepten innerhalb von {% data variables.product.prodname_actions %} entsprechen.
@@ -69,7 +73,6 @@ Jenkins verwendet Anweisungen um _Deklarative Pipelines_ zu verwalten. Diese Anw
| [`input`](https://jenkins.io/doc/book/pipeline/syntax/#input) | [`inputs`](/actions/automating-your-workflow-with-github-actions/metadata-syntax-for-github-actions#inputs) |
| [`when`](https://jenkins.io/doc/book/pipeline/syntax/#when) | [`jobs.<job_id>.if`](/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idif) |
### Sequenzielle „Stages“ (Phasen) verwenden
#### Parallele Verarbeitungvon Jobs
@@ -114,23 +117,23 @@ Jenkins-Pipeline
<tr>
<td>
```yaml
pipeline {
agent any
triggers {
cron('H/15 * * * 1-5')
}
}
```
```yaml
pipeline {
agent any
triggers {
cron('H/15 * * * 1-5')
}
}
```
</td>
<td>
```yaml
on:
```yaml
on:
schedule:
- cron: '*/15 * * * 1-5'
```
- cron: '*/15 * * * 1-5'
```
</td>
</tr>
@@ -150,25 +153,24 @@ Jenkins-Pipeline
<tr>
<td>
```yaml
pipeline {
agent any
environment {
MAVEN_PATH = '/usr/local/maven'
}
```yaml
pipeline {
agent any
environment {
MAVEN_PATH = '/usr/local/maven'
}
```
}
```
</td>
<td>
```yaml
jobs:
maven-build:
```yaml
jobs:
maven-build:
env:
MAVEN_PATH: '/usr/local/maven'
```
```
</td>
</tr>
@@ -188,30 +190,28 @@ Jenkins-Pipeline
<tr>
<td>
```yaml
pipeline {
triggers {
upstream(
upstreamProjects: 'job1,job2',
threshold: hudson.model.Result.SUCCESS)
}
}
```yaml
pipeline {
triggers {
upstream(
upstreamProjects: 'job1,job2',
threshold: hudson.model.Result.SUCCESS
)
}
```
}
```
</td>
<td>
```yaml
jobs:
job1:
job2:
needs: job1
job3:
needs: [job1, job2]
```
```yaml
jobs:
job1:
job2:
needs: job1
job3:
needs: [job1, job2]
```
</td>
</tr>
@@ -231,26 +231,27 @@ Jenkins-Pipeline
<tr>
<td>
```yaml
```yaml
pipeline {
agent none
stages {
stage('Run Tests') {
matrix {
axes {
axis {
name: 'PLATFORM'
values: 'macos', 'linux'
agent none
stages {
stage('Run Tests') {
matrix {
axes {
axis {
name: 'PLATFORM'
values: 'macos', 'linux'
}
}
}
agent { label "${PLATFORM}" }
stages {
stage('test') {
tools { nodejs "node-12" }
steps {
dir("scripts/myapp") {
sh(script: "npm install -g bats")
sh(script: "bats tests")
agent { label "${PLATFORM}" }
stages {
stage('test') {
tools { nodejs "node-12" }
steps {
dir("scripts/myapp") {
sh(script: "npm install -g bats")
sh(script: "bats tests")
}
}
}
}
@@ -258,33 +259,32 @@ stages {
}
}
}
}
```
```
</td>
<td>
{% raw %}
```yaml
name: demo-workflow
on:
push:
jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [macos-latest, ubuntu-latest]
steps:
- uses: actions/checkout@v1
- uses: actions/setup-node@v1
with:
node-version: 12
- run: npm install -g bats
- run: bats tests
working-directory: scripts/myapp
```
```yaml
name: demo-workflow
on:
push:
jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [macos-latest, ubuntu-latest]
steps:
- uses: actions/checkout@v1
- uses: actions/setup-node@v1
with:
node-version: 12
- run: npm install -g bats
- run: bats tests
working-directory: scripts/myapp
```
{% endraw %}
</td>

View File

@@ -7,6 +7,11 @@ versions:
free-pro-team: '*'
enterprise-server: '>=2.22'
type: 'tutorial'
topics:
- 'Travis CI'
- 'Migration'
- 'CI'
- 'CD'
---
### Einführung
@@ -69,8 +74,8 @@ Travis CI
```yaml
matrix:
include:
- rvm: 2.5
- rvm: 2.6.3
- rvm: 2.5
- rvm: 2.6.3
```
{% endraw %}
</td>
@@ -109,8 +114,8 @@ Travis CI
```yaml
branches:
only:
- main
- 'mona/octocat'
- main
- 'mona/octocat'
```
{% endraw %}
</td>
@@ -119,7 +124,7 @@ branches:
```yaml
on:
push:
branches:
branches:
- main
- 'mona/octocat'
```
@@ -155,9 +160,9 @@ git:
<td class="d-table-cell v-align-top">
{% raw %}
```yaml
- uses: actions/checkout@v2
with:
submodules: false
- uses: actions/checkout@v2
with:
submodules: false
```
{% endraw %}
</td>
@@ -207,10 +212,10 @@ When working with different languages in {% data variables.product.prodname_acti
Ein Beispiel:
```yaml
steps:
- name: Run build script
run: ./.github/scripts/build.sh
shell: bash
steps:
- name: Run build script
run: ./.github/scripts/build.sh
shell: bash
```
### Error handling in {% data variables.product.prodname_actions %}
@@ -275,11 +280,11 @@ jobs:
run_python:
runs-on: ubuntu-latest
steps:
- uses: actions/setup-python@v2
with:
python-version: '3.7'
architecture: 'x64'
- run: python script.py
- uses: actions/setup-python@v2
with:
python-version: '3.7'
architecture: 'x64'
- run: python script.py
```
{% endraw %}
</td>
@@ -345,20 +350,20 @@ Travis CI
<tr>
<td>
```yaml
```yaml
env:
- MAVEN_PATH="/usr/local/maven"
```
```
</td>
<td>
```yaml
jobs:
maven-build:
env:
MAVEN_PATH: '/usr/local/maven'
```
```yaml
jobs:
maven-build:
env:
MAVEN_PATH: '/usr/local/maven'
```
</td>
</tr>
@@ -378,24 +383,24 @@ Travis CI
<tr>
<td>
{% raw %}
```yaml
```yaml
install:
- npm install
- npm install
script:
- npm run build
- npm test
```
- npm run build
- npm test
```
{% endraw %}
</td>
<td>
{% raw %}
```yaml
```yaml
name: Node.js CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Use Node.js
uses: actions/setup-node@v1
@@ -404,7 +409,7 @@ jobs:
- run: npm install
- run: npm run build
- run: npm test
```
```
{% endraw %}
</td>
</tr>

View File

@@ -8,7 +8,9 @@ redirect_from:
versions:
free-pro-team: '*'
enterprise-server: '>=2.22'
type: 'overview'
type: overview
topics:
- Sicherheit
---
{% data reusables.actions.enterprise-beta %}
@@ -54,11 +56,13 @@ This means that a compromise of a single action within a workflow can be very si
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.
{% if currentVersion ver_lt "enterprise-server@3.1" %}
{% warning %}
**Warning:** The short version of the commit SHA is insecure and should never be used for specifying an action's Git reference. Because of how repository networks work, any user can fork the repository and push a crafted commit to it that collides with the short SHA. This causes subsequent clones at that SHA to fail because it becomes an ambiguous commit. As a result, any workflows that use the shortened SHA will immediately fail.
{% endwarning %}
{% endif %}
* **Audit the source code of the action**
@@ -140,4 +144,4 @@ The following tables describe the {% data variables.product.prodname_actions %}
| `action:org.runner_group_removed` | Triggered when an organization admin removes a self-hosted runner group. |
| `action:org.runner_group_renamed` | Triggered when an organization admin renames a self-hosted runner group. |
| `action:org.runner_group_runners_added` | Triggered when an organization admin [adds 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). |
| `action:org.runner_group_runners_removed` | Triggered when an organization admin removes a self-hosted runner from a group. |
| `action:org.runner_group_runners_removed` | Triggered when an organization admin removes a self-hosted runner from a group. |

View File

@@ -34,7 +34,7 @@ https://github.com/<OWNER>/<REPOSITORY>/Workflows/<WORKFLOW_FILE_PATH>/badge.svg
In diesem Markdown-Beispiel wird ein Status-Badge für einen Workflow mit dem Namen "Greet Everyone" hinzugefügt. Die `owner` des Repositorys sind die `Aktionen` Organisation, und der name `REPOSITORY` ist `hello-world`.
```
```markdown
! [Beispiel-Workflowname] (https://github.com/actions/hello-world/workflows/Greet%20Everyone/badge.svg)
```
@@ -42,7 +42,7 @@ In diesem Markdown-Beispiel wird ein Status-Badge für einen Workflow mit dem Na
In diesem Markdown-Beispiel wird ein Status-Badge für einen Workflow mit dem Dateipfad `.github/workflows/main.yml`hinzugefügt. Die `owner` des Repositorys sind die `Aktionen` Organisation, und der name `REPOSITORY` ist `hello-world`.
```
```markdown
! [Beispiel Workflowdateipfad] (https://github.com/actions/hello-world/workflows/.github/workflows/main.yml/badge.svg)
```
@@ -50,7 +50,7 @@ In diesem Markdown-Beispiel wird ein Status-Badge für einen Workflow mit dem Da
In diesem Markdown-Beispiel wird ein Status-Badge für eine Verzweigung mit dem Namen `Feature-1-`hinzugefügt.
```
```markdown
! [Beispiel-Zweigparameter] (https://github.com/actions/hello-world/workflows/Greet%20Everyone/badge.svg?branch=feature-1)
```
@@ -58,6 +58,6 @@ In diesem Markdown-Beispiel wird ein Status-Badge für eine Verzweigung mit dem
In diesem Markdown-Beispiel wird ein Badge hinzugefügt, das den Status von Workflowausführungen anzeigt, die durch das `pull_request` -Ereignis ausgelöst werden.
```
```markdown
! [Beispielereignisparameter] (https://github.com/actions/hello-world/workflows/Greet%20Everyone/badge.svg?event=pull_request)
```

View File

@@ -18,7 +18,7 @@ To run a workflow manually, the workflow must be configured to run on the `workf
To trigger the `workflow_dispatch` event on {% data variables.product.prodname_dotcom %}, your workflow must be in the default branch. Führen Sie die folgenden Schritte aus, um eine Workflowausführung manuell auszulösen.
{% data reusables.repositories.permissions-statement-read %}
{% data reusables.repositories.permissions-statement-write %}
{% data reusables.repositories.navigate-to-repo %}
{% data reusables.repositories.actions-tab %}

View File

@@ -7,6 +7,9 @@ redirect_from:
versions:
free-pro-team: '*'
enterprise-server: '>=2.22'
type: 'quick_start'
topics:
- 'Fundamentals'
---
{% data reusables.actions.enterprise-beta %}

View File

@@ -186,27 +186,27 @@ jobs:
steps:
- name: Dump GitHub context
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
GITHUB_CONTEXT: ${{ toJSON(github) }}
run: echo "$GITHUB_CONTEXT"
- name: Dump job context
env:
JOB_CONTEXT: ${{ toJson(job) }}
JOB_CONTEXT: ${{ toJSON(job) }}
run: echo "$JOB_CONTEXT"
- name: Dump steps context
env:
STEPS_CONTEXT: ${{ toJson(steps) }}
STEPS_CONTEXT: ${{ toJSON(steps) }}
run: echo "$STEPS_CONTEXT"
- name: Dump runner context
env:
RUNNER_CONTEXT: ${{ toJson(runner) }}
RUNNER_CONTEXT: ${{ toJSON(runner) }}
run: echo "$RUNNER_CONTEXT"
- name: Dump strategy context
env:
STRATEGY_CONTEXT: ${{ toJson(strategy) }}
STRATEGY_CONTEXT: ${{ toJSON(strategy) }}
run: echo "$STRATEGY_CONTEXT"
- name: Dump matrix context
env:
MATRIX_CONTEXT: ${{ toJson(matrix) }}
MATRIX_CONTEXT: ${{ toJSON(matrix) }}
run: echo "$MATRIX_CONTEXT"
```
{% endraw %}
@@ -348,7 +348,7 @@ Der Wert für `array` kann ein Array oder ein String sein. Alle Werte im `array`
`join(github.event.issue.labels.*.name, ', ')` kann „Bug, Hilfe gesucht“ zurückgeben
#### toJson
#### toJSON
`toJSON(value)`
@@ -358,13 +358,13 @@ Gibt eine Pretty-Print-JSON-Darstellung von `value` zurück. Diese Funktion hilf
`toJSON(job)` kann `{ "status": "Success" }` zurückgeben.
#### fromJson
#### fromJSON
`fromJSON(value)`
Gibt ein JSON-Objekt für `value` zurück. Mit dieser Funktion kannst Du ein JSON-Objekt als ausgewerteten Ausdruck bereitstellen.
Returns a JSON object or JSON data type for `value`. You can use this function to provide a JSON object as an evaluated expression or to convert environment variables from a string.
##### Beispiel
##### Example returning a JSON object
Dieser Workflow legt eine JSON-Matrix in einem Job fest und übergibt sie mittels einer Ausgabe und `fromJSON` an den nächsten Job.
@@ -384,12 +384,33 @@ jobs:
needs: job1
runs-on: ubuntu-latest
strategy:
matrix: ${{fromJson(needs.job1.outputs.matrix)}}
matrix: ${{fromJSON(needs.job1.outputs.matrix)}}
steps:
- run: build
```
{% endraw %}
##### Example returning a JSON data type
This workflow uses `fromJSON` to convert environment variables from a string to a Boolean or integer.
{% raw %}
```yaml
name: print
on: push
env:
continue: true
time: 3
jobs:
job1:
runs-on: ubuntu-latest
steps:
- continue-on-error: ${{ fromJSON(env.continue) }}
timeout-minutes: ${{ fromJSON(env.time) }}
run: echo ...
```
{% endraw %}
#### hashFiles
`hashFiles(path)`

View File

@@ -21,15 +21,25 @@ versions:
Um benutzerdefinierte Umgebungsvariablen festzulegen, musst Du die Variablen in der Workflow-Datei angeben. You can define environment variables for a step, job, or entire workflow using the [`jobs.<job_id>.steps[*].env`](/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepsenv), [`jobs.<job_id>.env`](/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idenv), and [`env`](/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#env) keywords. Weitere Informationen finden Sie unter „[Workflow-Syntax für {% data variables.product.prodname_dotcom %}](/articles/workflow-syntax-for-github-actions/#jobsjob_idstepsenv)“.
```yaml
steps:
- name: Hello world
run: echo Hello world $FIRST_NAME $middle_name $Last_Name!
jobs:
weekday_job:
runs-on: ubuntu-latest
env:
FIRST_NAME: Mona
middle_name: The
Last_Name: Octocat
DAY_OF_WEEK: Mon
steps:
- name: "Hello world when it's Monday"
if: env.DAY_OF_WEEK == 'Mon'
run: echo "Hello $FIRST_NAME $middle_name $Last_Name, today is Monday!"
env:
FIRST_NAME: Mona
middle_name: The
Last_Name: Octocat
```
To use the value of an environment variable in a workflow file, you should use the [`env` context](/actions/reference/context-and-expression-syntax-for-github-actions#env-context). If you want to use the value of an environment variable inside a runner, you can use the runner operating system's normal method for reading environment variables.
If you use the workflow file's `run` key to read environment variables from within the runner operating system (as shown in the example above), the variable is substituted in the runner operating system after the job is sent to the runner. For other parts of a workflow file, you must use the `env` context to read environment variables; this is because workflow keys (such as `if`) require the variable to be substituted during workflow processing before it is sent to the runner.
You can also use the {% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.22" %}`GITHUB_ENV` environment file{% else %} `set-env` workflow command{% endif %} to set an environment variable that the following steps in a workflow can use. The {% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.22" %}environment file{% else %} `set-env` command{% endif %} can be used directly by an action or as a shell command in a workflow file using the `run` keyword. Weitere Informationen findest Du unter „[Workflow-Befehle für {% data variables.product.prodname_actions %}](/actions/reference/workflow-commands-for-github-actions/#setting-an-environment-variable)“.
### Standard-Umgebungsvariablen

View File

@@ -257,7 +257,7 @@ During the execution of a workflow, the runner generates temporary files that ca
**Warning:** Powershell does not use UTF-8 by default. Make sure you write files using the correct encoding. For example, you need to set UTF-8 encoding when you set the path:
```
```yaml
steps:
- run: echo "mypath" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
```
@@ -272,11 +272,19 @@ Erstellt oder aktualisiert eine Umgebungsvariable für alle Aktionen, die als n
#### Beispiel
```bash
echo "action_state=yellow" >> $GITHUB_ENV
{% raw %}
```
Running `$action_state` in a future step will now return `yellow`
steps:
- name: Set the value
id: step_one
run: |
echo "action_state=yellow" >> $GITHUB_ENV
- name: Use the value
id: step_two
run: |
echo "${{ env.action_state }}" # This will output 'yellow'
```
{% endraw %}
#### Multiline strings
@@ -291,7 +299,7 @@ For multiline strings, you may use a delimiter with the following syntax.
##### Beispiel
In this example, we use `EOF` as a delimiter and set the `JSON_RESPONSE` environment variable to the value of the curl response.
```
```yaml
steps:
- name: Set the value
id: step_one

View File

@@ -27,7 +27,7 @@ Name des Workflows. {% data variables.product.prodname_dotcom %} zeigt die Namen
### `on`
**Erforderlich** Name des Ereignisses auf {% data variables.product.prodname_dotcom %}, das den Workflow auslöst. Sie können einen `string` für ein einzelnes Ereignis, ein `array` mit Ereignissen, ein `array` mit Ereignis-`types` oder eine Ereigniskonfigurations-`map` festlegen, mit der ein Workflow geplant oder die Ausführung eines Workflows auf bestimmte Dateien, Tags oder Branch-Änderungen beschränkt wird. Eine Liste der verfügbaren Ereignisse finden Sie unter „[Ereignisse, die Workflows auslösen](/articles/events-that-trigger-workflows)“.
**Required**. The name of the {% data variables.product.prodname_dotcom %} event that triggers the workflow. Sie können einen `string` für ein einzelnes Ereignis, ein `array` mit Ereignissen, ein `array` mit Ereignis-`types` oder eine Ereigniskonfigurations-`map` festlegen, mit der ein Workflow geplant oder die Ausführung eines Workflows auf bestimmte Dateien, Tags oder Branch-Änderungen beschränkt wird. Eine Liste der verfügbaren Ereignisse finden Sie unter „[Ereignisse, die Workflows auslösen](/articles/events-that-trigger-workflows)“.
{% data reusables.github-actions.actions-on-examples %}
@@ -286,7 +286,7 @@ In this example, `job3` uses the `always()` conditional expression so that it al
### `jobs.<job_id>.runs-on`
**Erforderlich** Typ der Maschine, auf der der Job ausgeführt wird. Die Maschine kann entweder ein {% data variables.product.prodname_dotcom %}-gehosteter oder ein selbst-gehosteter Runner sein.
**Required**. The type of machine to run the job on. Die Maschine kann entweder ein {% data variables.product.prodname_dotcom %}-gehosteter oder ein selbst-gehosteter Runner sein.
{% data reusables.actions.enterprise-github-hosted-runners %}
@@ -299,6 +299,7 @@ Verfügbare Arten von {% data variables.product.prodname_dotcom %}-gehostete Run
{% data reusables.github-actions.supported-github-runners %}
{% data reusables.github-actions.ubuntu-runner-preview %}
{% data reusables.github-actions.macos-runner-preview %}
##### Beispiel
@@ -518,7 +519,7 @@ Aktionen sind entweder JavaScript-Dateien oder Docker-Container. Bei Docker-Cont
```yaml
steps:
# Reference a specific commit
- uses: actions/setup-node@74bc508
- uses: actions/setup-node@c46424eee26de4078d34105d3de3cc4992202b1e
# Reference the major version of a release
- uses: actions/setup-node@v1
# Reference a minor version of a release
@@ -700,12 +701,24 @@ steps:
Mit `command […options] {0} [..more_options]` können Sie einen Vorlagen-String für den `shell`-Wert festlegen. {% data variables.product.prodname_dotcom %} interpretiert das erste Wort im String, nach dem ein „Whitespace“ (Zwischenraum-Zeichen) steht, als Befehl, und der Dateiname für das temporäre Skript wird in `{0}` eingefügt.
Ein Beispiel:
```yaml
steps:
- name: Display the environment variables and their values
run: |
print %ENV
shell: perl {0}
```
The command used, `perl` in this example, must be installed on the runner. 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)."
#### Exit-Codes und Voreinstellung für Fehleraktionen
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-Verhalten mit `set -e o pipefail`: Standard für `bash` und integrierte `shell`. Dies ist außerdem der Standard, wenn Du eine Option für eine Plattform außer Windows angibst.
- Fail-fast behavior using `set -eo pipefail`: Default for `bash` and built-in `shell`. Dies ist außerdem der Standard, wenn Du eine Option für eine Plattform außer Windows angibst.
- Wenn Du auf Fail-Fast verzichtest und stattdessen die volle Kontrolle übernehmen möchtest, stelle einen Vorlagen-String für die Shell-Optionen bereit. 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.
@@ -1186,7 +1199,7 @@ Weitere Informationen zur Syntax für Branch-, Tag- und Pfadfilter finden Sie un
| `'**'` | Abgleich mit allen Branch- und Tag-Namen. Dies ist das Standardverhalten, wenn Sie keinen `branches`- oder `tags`-Filter angeben. | `all/the/branches`<br/><br/>`every/tag` |
| `'*feature'` | Das Zeichen `*` ist ein Sonderzeichen in YAML. Wenn ein Muster mit `*` beginnen soll, sind Anführungszeichen erforderlich. | `mona-feature`<br/><br/>`feature`<br/><br/>`ver-10-feature` |
| `v2*` | Abgleich mit Branch- und Tag-Namen, die mit `v2` beginnen. | `v2`<br/><br/>`v2.0`<br/><br/>`v2.9` |
| `v[12].[0-9]+.[0-9]+` | Abgleich mit allen semantischen Versions-Tags mit der Hauptversion 1 oder 2. | `v1.10.1`<br/><br/>`v2.0.0` |
| `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` |
#### Muster für den Abgleich von Dateinamen

View File

@@ -76,8 +76,8 @@ $ ghe-config -l
```
Dadurch können Sie den UUID Ihres Knotens in `cluster.conf` ermitteln.
``` shell
$ ghe-config _hostname_.uuid
```shell
$ ghe-config <em>HOSTNAME</em>.uuid
```
{% if currentVersion ver_gt "enterprise-server@2.21" %}
@@ -545,8 +545,8 @@ ghe-dpages status
```
Um einen {% data variables.product.prodname_pages %}-Speicherdienst zu evakuieren, bevor ein Cluster-Knoten evakuiert wird:
``` shell
ghe-dpages evacuate pages-server-<uuid>
```shell
ghe-dpages evacuate pages-server-<em>UUID</em>
```
#### ghe-spokes
@@ -571,16 +571,16 @@ ghe-spokes route
Um Speicherdienste auf einem Cluster-Knoten zu evakuieren:
``` shell
ghe-spokes server evacuate git-server-<uuid>
```shell
ghe-spokes server evacuate git-server-<em>UUID</em>
```
#### ghe-storage
Mit diesem Dienstprogramm können Sie alle Speicherdienste evakuieren, bevor Sie einen Clusterknoten evakuieren.
``` shell
ghe-storage evacuate storage-server-<uuid>
```shell
ghe-storage evacuate storage-server-<em>UUID</em>
```
### Git

View File

@@ -41,12 +41,6 @@ For more information about contacting support, see "[About {% data variables.con
- Wählen Sie im Dropdownmenü **Authentication** (Authentifizierung) den von Ihrem SMTP-Server verwendeten Verschlüsselungstyp aus.
- Geben Sie im Feld **No-reply email address** („no-reply“-E-Mail-Adresse) die E-Mail-Adresse ein, die für alle Benachrichtigungs-E-Mails in den Feldern „From“ (Von) und „To“ (An) verwendet werden soll.
{% note %}
**Hinweis:** Wenn Sie das Kontrollkästchen **Send from author** (Über Autor senden) im E-Mail-Webhook **Services** (Dienste) in einem Repository aktivieren, werden ausgehende E-Mails für dieses Repository über den Autor und nicht über die „no-reply“-E-Mail-Adresse gesendet. Weitere Informationen findest Du unter "[Informationen zu E-Mail-Benachrichtigungen für Pushes in Dein Repository](/github/administering-a-repository/about-email-notifications-for-pushes-to-your-repository)."
{% endnote %}
6. Wenn Sie alle eingehenden E-Mails verwerfen möchten, die an die „no-reply“-E-Mail-Adresse adressiert sind, sollten Sie **Discard email addressed to the no-reply email address** (An die „no-reply“-E-Mail-Adresse adressierte E-Mails verwerfen) aktivieren. ![Kontrollkästchen zum Verwerfen der an die „no-reply“-E-Mail-Adresse adressierten E-Mails](/assets/images/enterprise/management-console/discard-noreply-emails.png)
7. Wählen Sie unter **Support** (Unterstützung) einen Linktyp aus, um Ihren Benutzern zusätzliche Unterstützung zu bieten:
- **Email** (E-Mail): Eine interne E-Mail-Adresse.
@@ -155,7 +149,7 @@ Sie werden feststellen, dass `metroplex` die eingehende Nachricht empfängt, sie
#### Ihre DNS-Einstellungen verifizieren
Damit eingehende E-Mails ordnungsgemäß verarbeitet werden, müssen Sie eine gültigen A-Datensatz (oder CNAME) und einen MX-Datensatz konfigurieren. Weitere Informationen finden Sie unter „[DNS- und Firewalleinstellungen zum Zulassen eingehender E-Mails konfigurieren](#configuring-dns-and-firewall-settings-to-allow-incoming-emails).
Damit eingehende E-Mails ordnungsgemäß verarbeitet werden, müssen Sie eine gültigen A-Datensatz (oder CNAME) und einen MX-Datensatz konfigurieren. For more information, see "[Configuring DNS and firewall settings to allow incoming emails](#configuring-dns-and-firewall-settings-to-allow-incoming-emails)."
#### Einstellungen der Firewall oder der AWS-Sicherheitsgruppe überprüfen

View File

@@ -10,7 +10,7 @@ versions:
### About high availability replication for clusters
You can configure a cluster deployment of {% data variables.product.prodname_ghe_server %} for high availability, where an identical set of passive nodes sync with the nodes in your active cluster. If hardware or software failures affect the datacenter with your active cluster, you can manually fail over to the replica nodes and continue processing user requests without data loss.
You can configure a cluster deployment of {% data variables.product.prodname_ghe_server %} for high availability, where an identical set of passive nodes sync with the nodes in your active cluster. If hardware or software failures affect the datacenter with your active cluster, you can manually fail over to the replica nodes and continue processing user requests, minimizing the impact of the outage.
In high availability mode, each active node syncs regularly with a corresponding passive node. The passive node runs in standby and does not serve applications or process user requests.

View File

@@ -25,9 +25,11 @@ Wenn Sie einen Knoten offline nehmen, der Datendienste aufweist (wie Git, Pages
ghe-spokes evac-status
```
Für {% data variables.product.prodname_pages %}
{% raw %}
```
echo "select count(*) from pages_replicas where host = 'pages-server-<uuid>'" | ghe-dbconsole -y
```
{% endraw %}
Für Storage
```
ghe-storage evacuation-status
@@ -36,18 +38,26 @@ Wenn Sie einen Knoten offline nehmen, der Datendienste aufweist (wie Git, Pages
3. Nach Abschluss des Kopiervorgangs können Sie den Speicherdienst evakuieren. Führen Sie einen der folgenden Befehle aus:
Für Git
{% raw %}
```
ghe-spokes server evacuate git-server-<uuid>
```
{% endraw %}
Für {% data variables.product.prodname_pages %}
{% raw %}
```
ghe-dpages evacuate pages-server-<uuid>
```
{% endraw %}
Nehmen Sie für Storage den Knoten offline.
{% raw %}
```
ghe-storage offline storage-server-<uuid>
```
{% endraw %}
Evakuieren Sie anschließend
{% raw %}
```
ghe-storage evacuate storage-server-<uuid>
```
{% endraw %}

View File

@@ -45,7 +45,7 @@ Die Namen der Knoten können beliebige gültige Hostnamen sein. Die Namen werden
Geben Sie den ersten Clusterknoten an, den Sie als den MySQL-Master über `mysql-server` und `mysql-master` konfiguriert haben.
```
```ini
[cluster]
mysql-master = ghe-data-node-1
redis-master = ghe-data-node-1

View File

@@ -63,7 +63,7 @@ This example demonstrates using the `actions-sync` tool to sync an individual ac
* You can sync multiple actions by replacing the `--repo-name` parameter with `--repo-name-list` or `--repo-name-list-file`. For more information, see the [`actions-sync` README](https://github.com/actions/actions-sync#actions-sync).
1. After the action repository is created on your enterprise instance, people in your enterprise can use the destination repository to reference the action in their workflows. For the example action shown above:
```
```yaml
uses: synced-actions/docker-build-push-action@v1
```

View File

@@ -0,0 +1,46 @@
---
title: About GitHub AE
intro: '{% data variables.product.prodname_ghe_managed %} is the most secure and compliant way to use {% data variables.product.prodname_dotcom %}.'
versions:
github-ae: '*'
---
### Informationen zu {% data variables.product.prodname_ghe_managed %}
{% data reusables.github-ae.github-ae-enables-you %}
{% data variables.product.prodname_ghe_managed %} offers one developer platform from idea to production. You can increase developer velocity, automate entire workflows, secure your code, and collaborate in developers favorite tool.
{% data variables.product.prodname_ghe_managed %} provides your organization with all the power of [{% data variables.product.prodname_enterprise %}](https://github.com/enterprise). With {% data variables.product.prodname_ghe_managed %}, you can also meet security and compliance goals with a suite of features and certifications that put you in control.
### A highly available and planet-scale cloud
{% data variables.product.prodname_ghe_managed %} is a fully managed service, hosted in a high availability architecture. {% data variables.product.prodname_ghe_managed %} is hosted globally in a cloud that can scale to support your full development lifecycle without limits. {% data variables.product.prodname_dotcom %} fully manages backups, failover, and disaster recovery, so you never need to worry about your service or data.
### Data residency
All of your data is stored within the geographic region of your choosing. You can comply with GDPR and global data protection standards by keeping all of your data within your chosen region.
### Encryption on your terms
All customer data is encrypted at rest, and you can provide your own encryption key to encrypt your data under your encryption policies. You control your key and access to all of your data. For more information, see "[Configuring data encryption for your enterprise](/admin/configuration/configuring-data-encryption-for-your-enterprise)."
### Isolated accounts
All developer accounts are fully isolated in {% data variables.product.prodname_ghe_managed %}. You can fully control the accounts through your identity provider, with SAML single sign on as mandatory. SCIM enables you to ensure that employees only have access to the resources they should, as defined in your central identity management system. For more information, see "[Managing identity and access for your enterprise](/admin/authentication/managing-identity-and-access-for-your-enterprise)."
### Restricted network access
Secure access to your enterprise on {% data variables.product.prodname_ghe_managed %} with restricted network access, so that your data can only be accessed from within your network. For more information, see "[Restricting network traffic to your enterprise](/admin/configuration/restricting-network-traffic-to-your-enterprise)."
### Commercial and government environments
{% data variables.product.prodname_ghe_managed %} is available in the Azure Government cloud, the trusted cloud for US government agencies and their partners. {% data variables.product.prodname_ghe_managed %} is also available in the commercial cloud, so you can choose the hosting environment that is right for your organization.
### Premium Plus support
Premium Plus support is available for all {% data variables.product.prodname_ghe_managed %} customers, to ensure you have the fastest and most personal support experience. A dedicated Account Manager will work with you to help you get the most out of {% data variables.product.prodname_dotcom %}. Our support team will resolve issues any time of day, in the shortest possible time.
### Informationen zur Abrechnung für {% data variables.product.prodname_ghe_managed %}
{% data reusables.github-ae.about-billing %} For more information, see "[Managing billing for your enterprise](/admin/overview/managing-billing-for-your-enterprise)."

View File

@@ -12,6 +12,7 @@ Weitere Informationen zu oder zum Kauf von {% data variables.product.prodname_en
### Inhaltsverzeichnis
{% link_in_list /about-github-ae %}
{% link_in_list /about-enterprise-accounts %}
{% link_in_list /managing-your-github-enterprise-license %}
{% link_in_list /managing-billing-for-your-enterprise %}

View File

@@ -41,7 +41,9 @@ Wenn Du Benutzerlizenzen erneuern oder zu {% data variables.product.prodname_ent
{% data reusables.enterprise-accounts.license-tab %}
12. Klicken Sie unter „Quick links“ (Schnellzugriff) auf **Update license** (Lizenz aktualisieren). ![Lizenz-Link aktualisieren](/assets/images/enterprise/business-accounts/update-license-link.png)
13. Klicke zum Auswählen Deiner Lizenz auf **Lizenzdatei** oder ziehe Deine Lizenzdatei auf **Lizenzdatei**. ![Lizenzdatei hochladen](/assets/images/enterprise/management-console/upload-license.png)
14. Klicke **Upload**. ![Upgrade-Start](/assets/images/enterprise/management-console/begin-upload.png)
14. Klicke **Upload**. ![Begin upload](/assets/images/enterprise/management-console/begin-upload.png)
{% if enterpriseVersion ver_lt "enterprise-server@3.0" %}If the web UI for {% data variables.product.prodname_ghe_server %} doesn't reflect your updated license immediately, see "[Troubleshooting](#troubleshooting)."{% endif %}
### Lizenznutzung anzeigen
@@ -70,3 +72,23 @@ Auf {% data variables.product.prodname_ghe_server %} können Sie eine JSON-Datei
{% data reusables.enterprise-accounts.license-tab %}
10. Klicke unter "Enterprise Server-Instanzen" auf **Servernutzung hinzufügen**. ![Link zum Hochladen der GitHub Enterprise Server-Nutzung](/assets/images/help/business-accounts/upload-ghe-server-usage-link.png)
11. Laden Sie die JSON-Datei hoch, die Sie von {% data variables.product.prodname_ghe_server %} heruntergeladen haben.![„Drag and drop or select a file to upload“ (Hochzuladende Datei per Drag-and-Drop auswählen oder suchen)](/assets/images/help/business-accounts/upload-ghe-server-usage-file.png)
{% if currentVersion ver_lt "enterprise-server@3.0" %}
### Problemlösungen
In some scenarios, the web UI for {% data variables.product.prodname_ghe_server %} may not immediately reflect your new license. You can force the system to detect the license by restarting two system services.
{% data reusables.enterprise_installation.ssh-into-instance %}
1. Restart the services for Git authentication and the HTTP server.
{% warning %}
**Warning**: Running the following command will result in a few minutes of user-facing downtime for {% data variables.product.prodname_ghe_server %}. Run the command with care.
{% endwarning %}
sudo systemctl restart github-gitauth github-unicorn
1. After {% data variables.product.prodname_ghe_server %} returns you to a prompt, try accessing {% data variables.product.prodname_ghe_server %} via the command line or web UI again.
{% endif %}

View File

@@ -58,7 +58,8 @@ Außerhalb der `stdin` bereitgestellten Werte sind zusätzliche Variablen vorhan
| $GITHUB_VIA | Die zum Erstellen des ref-Werts verwendete Methode.<br> **Mögliche Werte:**<br> - `auto-merge deployment api` <br> - `blob edit` <br> - `branch merge api` <br> - `branches page delete button` <br> - `git refs create api` <br> - `git refs delete api` <br> - `git refs update api` <br> - `merge api` <br> - `pull request branch delete button` <br> - `pull request branch undo button` <br> - `pull request merge api` <br> - `pull request merge button` <br> - `pull request revert button` <br> - `releases delete button` <br> - `stafftools branch restore` <br> - `slumlord (#{sha})` |
| $GIT_PUSH_OPTION_COUNT | Die Anzahl der Push-Optionen, die vom Client gesendet wurden. Weitere Informationen zu den Push-Optionen finden Sie unter „[git-push](https://git-scm.com/docs/git-push#git-push---push-optionltoptiongt)“ in der Git-Dokumentation. |
| $GIT_PUSH_OPTION_N | <em>N</em> entspricht hierbei einer ab 0 beginnenden Ganzzahl. Diese Variable enthält den String der vom Client gesendeten Push-Option. Die erste gesendete Option wird in GIT_PUSH_OPTION_0 gespeichert. Die zweite gesendete Option wird in GIT_PUSH_OPTION_1 gespeichert usw. Weitere Informationen zu den Push-Optionen finden Sie unter „[git-push](https://git-scm.com/docs/git-push#git-push---push-optionltoptiongt)“ in der Git-Dokumentation. |{% if currentVersion ver_gt "enterprise-server@2.21" %}
| $GIT_USER_AGENT | The user-agent string sent by the client that pushed the changes. |{% endif %}
| $GIT_USER_AGENT | The user-agent string sent by the client that pushed the changes.
{% endif %}
### Berechtigungen festlegen und einen Pre-Receive-Hook per Push-Vorgang an {% data variables.product.prodname_ghe_server %} übertragen
@@ -93,30 +94,30 @@ Sie können ein Pre-Receive-Hook-Skript lokal testen, bevor Sie es auf Ihrer {%
2. Erstellen Sie eine Datei namens `Dockerfile.dev`, die Folgendes enthält:
```
FROM gliderlabs/alpine:3.3
RUN \
apk add --no-cache git openssh bash && \
ssh-keygen -A && \
sed -i "s/#AuthorizedKeysFile/AuthorizedKeysFile/g" /etc/ssh/sshd_config && \
adduser git -D -G root -h /home/git -s /bin/bash && \
passwd -d git && \
su git -c "mkdir /home/git/.ssh && \
ssh-keygen -t ed25519 -f /home/git/.ssh/id_ed25519 -P '' && \
mv /home/git/.ssh/id_ed25519.pub /home/git/.ssh/authorized_keys && \
mkdir /home/git/test.git && \
git --bare init /home/git/test.git"
```dockerfile
FROM gliderlabs/alpine:3.3
RUN \
apk add --no-cache git openssh bash && \
ssh-keygen -A && \
sed -i "s/#AuthorizedKeysFile/AuthorizedKeysFile/g" /etc/ssh/sshd_config && \
adduser git -D -G root -h /home/git -s /bin/bash && \
passwd -d git && \
su git -c "mkdir /home/git/.ssh && \
ssh-keygen -t ed25519 -f /home/git/.ssh/id_ed25519 -P '' && \
mv /home/git/.ssh/id_ed25519.pub /home/git/.ssh/authorized_keys && \
mkdir /home/git/test.git && \
git --bare init /home/git/test.git"
VOLUME ["/home/git/.ssh", "/home/git/test.git/hooks"]
WORKDIR /home/git
VOLUME ["/home/git/.ssh", "/home/git/test.git/hooks"]
WORKDIR /home/git
CMD ["/usr/sbin/sshd", "-D"]
```
CMD ["/usr/sbin/sshd", "-D"]
```
3. Erstellen Sie ein Pre-Receive-Testskript namens `always_reject.sh`. Dieses Beispielskript lehnt alle Push-Vorgänge ab, was zum Sperren eines Repositorys nützlich ist:
3. Erstellen Sie ein Pre-Receive-Testskript namens `always_reject.sh`. Dieses Beispielskript lehnt alle Push-Vorgänge ab, was zum Sperren eines Repositorys nützlich ist:
```
#!/usr/bin/env bash
```shell
#!/usr/bin/env bash
echo "error: rejecting all pushes"
exit 1

View File

@@ -80,7 +80,7 @@ versions:
| Name | Beschreibung |
| ------------------------------------------:| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `repo.access` | The visibility of a repository changed to private{% if enterpriseServerVersions contains currentVersion %}, public,{% endif %} or internal. |
| `repo.archive` | Ein Repository wurde archiviert. For more information, see "[Archiving a {% data variables.product.prodname_dotcom %} repository](/github/creating-cloning-and-archiving-repositories/archiving-a-github-repository)." |
| `repo.archived` | Ein Repository wurde archiviert. For more information, see "[Archiving a {% data variables.product.prodname_dotcom %} repository](/github/creating-cloning-and-archiving-repositories/archiving-a-github-repository)." |
| `repo.add_member` | Einem Repository wurde ein Mitarbeiter hinzugefügt. |
| `repo.config` | Ein Websiteadministrator hat erzwungene Push-Vorgänge blockiert. Weitere Informationen finden Sie unter „[Erzwungene Push-Vorgänge an ein Repository blockieren](/enterprise/{{ currentVersion }}/admin/guides/developer-workflow/blocking-force-pushes-to-a-repository/)“. |
| `repo.create` | Ein Repository wurde erstellt. |
@@ -89,7 +89,7 @@ versions:
| `repo.rename` | Ein Repository wurde umbenannt. |
| `repo.transfer` | Ein Benutzer hat eine Anfrage akzeptiert, ein übertragenes Repository zu empfangen. |
| `repo.transfer_start` | Ein Benutzer hat eine Anfrage gesendet, ein Repository an einen anderen Benutzer oder an eine andere Organisation zu übertragen. |
| `repo.unarchive` | Die Archivierung eines Repositorys wurde aufgehoben. For more information, see "[Archiving a {% data variables.product.prodname_dotcom %} repository](/github/creating-cloning-and-archiving-repositories/archiving-a-github-repository)."{% if enterpriseServerVersions contains currentVersion %}
| `repo.unarchived` | Die Archivierung eines Repositorys wurde aufgehoben. For more information, see "[Archiving a {% data variables.product.prodname_dotcom %} repository](/github/creating-cloning-and-archiving-repositories/archiving-a-github-repository)."{% if enterpriseServerVersions contains currentVersion %}
| `repo.config.disable_anonymous_git_access` | Anonymous Git read access is disabled for a repository. Weitere Informationen finden Sie unter „[Anonymen Git-Lesezugriff für ein Repository aktivieren](/enterprise/{{ currentVersion }}/user/articles/enabling-anonymous-git-read-access-for-a-repository)“. |
| `repo.config.enable_anonymous_git_access` | Anonymous Git read access is enabled for a repository. Weitere Informationen finden Sie unter „[Anonymen Git-Lesezugriff für ein Repository aktivieren](/enterprise/{{ currentVersion }}/user/articles/enabling-anonymous-git-read-access-for-a-repository)“. |
| `repo.config.lock_anonymous_git_access` | Die Einstellung für den anonymen Git-Lesezugriff eines Repositorys ist gesperrt, wodurch Repository-Administratoren daran gehindert werden, diese Einstellung zu ändern (zu aktivieren oder zu deaktivieren). Weitere Informationen finden Sie unter „[Änderung des anonymen Git-Lesezugriffs durch Benutzer verhindern](/enterprise/{{ currentVersion }}/admin/guides/user-management/preventing-users-from-changing-anonymous-git-read-access)“. |

View File

@@ -33,11 +33,11 @@ Wenn Du den private Modus nicht aktiviert hast, hat das Migrationsskript keine A
1. Stellen Sie eine Verbindung zur Verwaltungsshell her. Weitere Informationen findest Du unter "[Auf die administrative Shell (SSH) zugreifen](/enterprise/admin/installation/accessing-the-administrative-shell-ssh)."
2. Navigiere zum Verzeichnis `/data/github/current`.
```
```shell
cd /data/github/current
```
3. Führe den Migrationsbefehl aus.
```
```shell
sudo bin/safe-ruby lib/github/transitions/20191210220630_convert_public_ghes_repos_to_internal.rb --verbose -w | tee -a /tmp/convert_public_ghes_repos_to_internal.log
```

View File

@@ -22,16 +22,19 @@ Push-Protokolleinträge zeigen:
### Push-Protokolle eines Repositorys anzeigen
1. Sign into {% data variables.product.prodname_ghe_server %} as a site administrator.
1. Navigieren Sie zu einem Repository.
{% data reusables.enterprise_site_admin_settings.access-settings %}
1. In the upper-right corner of the repository's page, click
{% octicon "rocket" aria-label="The rocket ship" %}.
![Raumschiffsymbol für den Zugriff auf die Einstellungen des Websiteadministrators](/assets/images/enterprise/site-admin-settings/access-new-settings.png)
{% data reusables.enterprise_site_admin_settings.security-tab %}
4. Klicken Sie auf der linken Seitenleiste auf **Push Log** (Push-Protokoll). ![Registerkarte „Push log“ (Push-Protokoll)](/assets/images/enterprise/site-admin-settings/push-log-tab.png)
{% if enterpriseServerVersions contains currentVersion %}
### Push-Protokolle eines Repositorys an der Befehlszeile anzeigen
1. Stellen Sie eine SSH-Verbindung zu Ihrer Appliance her. Weitere Informationen finden Sie unter „[Auf die Verwaltungsshell (SSH) zugreifen](/enterprise/{{ currentVersion }}/admin/guides/installation/accessing-the-administrative-shell-ssh/)“.
2. Öffnen Sie im entsprechenden Git-Repository die Auditprotokolldatei:
{% data reusables.enterprise_installation.ssh-into-instance %}
1. Öffnen Sie im entsprechenden Git-Repository die Auditprotokolldatei:
```shell
ghe-repo <em>owner</em>/<em>repository</em> -c "less audit_log"
```

View File

@@ -33,3 +33,14 @@ versions:
![Ein Tag in der Historie anzeigen](/assets/images/help/desktop/viewing-tags-in-history.png)
3. Alle dem Commit zugeordneten Tags sind in den Metadaten dieses Commits sichtbar. ![Ein Tag im Commit anzeigen](/assets/images/help/desktop/viewing-tags-in-commit.png)
### Deleting tags
{% note %}
**Note**: You can only delete tags associated with commits that have not yet been pushed.
{% endnote %}
{% data reusables.desktop.history-tab %}
{% data reusables.desktop.delete-tag %}

View File

@@ -80,7 +80,7 @@ The `hook_attributes` object has the following key:
This example uses a form on a web page with a button that triggers the `POST` request for a user account:
```
```html
<form action="https://github.com/settings/apps/new?state=abc123" method="post">
Create a GitHub App Manifest: <input type="text" name="manifest" id="manifest"><br>
<input type="submit" value="Submit">
@@ -111,7 +111,7 @@ This example uses a form on a web page with a button that triggers the `POST` re
```
This example uses a form on a web page with a button that triggers the `POST` request for an organization account. Replace `ORGANIZATION` with the name of the organization account where you want to create the app.
```
```html
<form action="https://github.com/organizations/<em>ORGANIZATION</em>/settings/apps/new?state=abc123" method="post">
Create a GitHub App Manifest: <input type="text" name="manifest" id="manifest"><br>
<input type="submit" value="Submit">

View File

@@ -435,7 +435,7 @@ The code above gets the full repository name and the head SHA of the commit from
### Schritt 2.3. Running RuboCop
Great! You're cloning the repository and creating check runs using your CI server. Now you'll get into the nitty gritty details of the [RuboCop linter](https://rubocop.readthedocs.io/en/latest/basic_usage/#rubocop-as-a-code-style-checker) and [Checks API annotations](/rest/reference/checks#create-a-check-run).
Great! You're cloning the repository and creating check runs using your CI server. Now you'll get into the nitty gritty details of the [RuboCop linter](https://docs.rubocop.org/rubocop/usage/basic_usage.html#code-style-checker) and [Checks API annotations](/rest/reference/checks#create-a-check-run).
The following code runs RuboCop and saves the style code errors in JSON format. Add this code below the call to `clone_repository` you added in the [previous step](#step-22-cloning-the-repository) and above the code that updates the check run to complete.
@@ -447,7 +447,7 @@ logger.debug @report
@output = JSON.parse @report
```
The code above runs RuboCop on all files in the repository's directory. The option `--format json` is a handy way to save a copy of the linting results in a machine-parsable format. See the [RuboCop docs](https://rubocop.readthedocs.io/en/latest/formatters/#json-formatter) for details and an example of the JSON format.
The code above runs RuboCop on all files in the repository's directory. The option `--format json` is a handy way to save a copy of the linting results in a machine-parsable format. See the [RuboCop docs](https://docs.rubocop.org/rubocop/formatters.html#json-formatter) for details and an example of the JSON format.
Because this code stores the RuboCop results in a `@report` variable, it can safely remove the checkout of the repository. This code also parses the JSON so you can easily access the keys and values in your GitHub App using the `@output` variable.
@@ -588,7 +588,7 @@ This code limits the total number of annotations to 50. But you can modify this
When the `offense_count` is zero, the CI test is a `success`. If there are errors, this code sets the conclusion to `neutral` in order to prevent strictly enforcing errors from code linters. But you can change the conclusion to `failure` if you would like to ensure that the check suite fails when there are linting errors.
When errors are reported, the code above iterates through the `files` array in the RuboCop report. For each file, it extracts the file path and sets the annotation level to `notice`. You could go even further and set specific warning levels for each type of [RuboCop Cop](https://rubocop.readthedocs.io/en/latest/cops/), but to keep things simpler in this quickstart, all errors are set to a level of `notice`.
When errors are reported, the code above iterates through the `files` array in the RuboCop report. For each file, it extracts the file path and sets the annotation level to `notice`. You could go even further and set specific warning levels for each type of [RuboCop Cop](https://docs.rubocop.org/rubocop/cops.html), but to keep things simpler in this quickstart, all errors are set to a level of `notice`.
This code also iterates through each error in the `offenses` array and collects the location of the offense and error message. After extracting the information needed, the code creates an annotation for each error and stores it in the `annotations` array. Because annotations only support start and end columns on the same line, `start_column` and `end_column` are only added to the `annotation` object if the start and end line values are the same.
@@ -718,13 +718,13 @@ If the annotations are related to a file already included in the PR, the annotat
If you've made it this far, kudos! 👏 You've already created a CI test. In this section, you'll add one more feature that uses RuboCop to automatically fix the errors it finds. You already added the "Fix this" button in the [previous section](#step-25-updating-the-check-run-with-ci-test-results). Now you'll add the code to handle the `requested_action` check run event triggered when someone clicks the "Fix this" button.
The RuboCop tool [offers](https://rubocop.readthedocs.io/en/latest/basic_usage/#auto-correcting-offenses) the `--auto-correct` command-line option to automatically fix errors it finds. When you use the `--auto-correct` feature, the updates are applied to the local files on the server. You'll need to push the changes to GitHub after RuboCop does its magic.
The RuboCop tool [offers](https://docs.rubocop.org/rubocop/usage/basic_usage.html#auto-correcting-offenses) the `--auto-correct` command-line option to automatically fix errors it finds. When you use the `--auto-correct` feature, the updates are applied to the local files on the server. You'll need to push the changes to GitHub after RuboCop does its magic.
To push to a repository, your app must have write permissions for "Repository contents." You set that permission back in [Step 2.2. Cloning the repository](#step-22-cloning-the-repository) to **Read & write**, so you're all set.
In order to commit files, Git must know which [username](/articles/setting-your-username-in-git/) and [email](/articles/setting-your-commit-email-address-in-git/) to associate with the commit. Add two more environment variables in your `.env` file to store the name (`GITHUB_APP_USER_NAME`) and email (`GITHUB_APP_USER_EMAIL`) settings. Your name can be the name of your app and the email can be any email you'd like for this example. Ein Beispiel:
```
```ini
GITHUB_APP_USER_NAME=Octoapp
GITHUB_APP_USER_EMAIL=octoapp@octo-org.com
```

View File

@@ -58,7 +58,8 @@ An _authorized_ OAuth App has access to all of the user's or organization owner'
| Installation tokens expire after a predefined amount of time (currently 1 hour). | OAuth tokens remain active until they're revoked by the customer. |
| {% data reusables.apps.api-rate-limits-non-ghec %}{% if currentVersion == "free-pro-team@latest" %} Higher rate limits apply for {% data variables.product.prodname_ghe_cloud %}. For more information, see "[Rate limits for GitHub Apps](/developers/apps/rate-limits-for-github-apps)."{% endif %} | OAuth tokens use the user's rate limit of 5,000 requests per hour. |
| Rate limit increases can be granted both at the GitHub Apps level (affecting all installations) and at the individual installation level. | Rate limit increases are granted per OAuth App. Every token granted to that OAuth App gets the increased limit. |{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.21" or currentVersion == "github-ae@latest" %}
| {% data variables.product.prodname_github_app %}s can authenticate on behalf of the user, which is called user-to-server requests. The flow to authorize is the same as the OAuth App authorization flow. User-to-server tokens can expire and be renewed with a refresh token. For more information, see "[Refreshing user-to-server access tokens](/apps/building-github-apps/refreshing-user-to-server-access-tokens/)" and "[Identifying and authorizing users for GitHub Apps](/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/)." | The OAuth flow used by {% data variables.product.prodname_oauth_app %}s authorizes an {% data variables.product.prodname_oauth_app %} on behalf of the user. This is the same flow used in {% data variables.product.prodname_github_app %} user-to-server authorization. |{% endif %}
| {% data variables.product.prodname_github_app %}s can authenticate on behalf of the user, which is called user-to-server requests. The flow to authorize is the same as the OAuth App authorization flow. User-to-server tokens can expire and be renewed with a refresh token. For more information, see "[Refreshing user-to-server access tokens](/apps/building-github-apps/refreshing-user-to-server-access-tokens/)" and "[Identifying and authorizing users for GitHub Apps](/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/)." | The OAuth flow used by {% data variables.product.prodname_oauth_app %}s authorizes an {% data variables.product.prodname_oauth_app %} on behalf of the user. This is the same flow used in {% data variables.product.prodname_github_app %} user-to-server authorization.
{% endif %}
### Requesting permission levels for resources

View File

@@ -89,7 +89,7 @@ Expiring user tokens are currently part of the user-to-server token expiration b
By default, the response takes the following form. The response parameters `expires_in`, `refresh_token`, and `refresh_token_expires_in` are only returned when you enable the beta for expiring user-to-server access tokens.
```
```json
{
"access_token": "e72e16c7e42f292c6912e7710c838347ae178b4a",
"expires_in": "28800",

View File

@@ -18,15 +18,23 @@ To learn about publishing {% data variables.product.prodname_actions %} in {% da
### Apps
Anyone can share their apps with other users on {% data variables.product.prodname_marketplace %} but only listings that are verified by {% data variables.product.company_short %} can include paid plans. For more information, see "[About verified creators](/developers/github-marketplace/about-verified-creators)."
Anyone can share their apps with other users for free on {% data variables.product.prodname_marketplace %} but only apps owned by organizations can sell their app.
To publish paid plans for your app and display a marketplace badge, you must complete the publisher verification process. For more information, see "[Applying for publisher verification for your organization](/developers/github-marketplace/applying-for-publisher-verification-for-your-organization)" or "[Requirements for listing an app](/developers/github-marketplace/requirements-for-listing-an-app)."
Once the organization meets the requirements, someone with owner permissions in the organization can publish paid plans for any of their apps. Each app with a paid plan also goes through a financial onboarding process to enable payments.
To publish apps with free plans, you only need to meet the general requirements for listing any app. For more information, see "[Requirements for all GitHub Marketplace listings](/developers/github-marketplace/requirements-for-listing-an-app#requirements-for-all-github-marketplace-listings)."
#### New to apps?
If you're interested in creating an app for {% data variables.product.prodname_marketplace %}, but you're new to {% data variables.product.prodname_github_apps %} or {% data variables.product.prodname_oauth_app %}s, see "[Building {% data variables.product.prodname_github_apps %}](/developers/apps/building-github-apps)" or "[Building {% data variables.product.prodname_oauth_app %}s](/developers/apps/building-oauth-apps)."
#### GitHub Apps vs. OAuth Apps
{% data reusables.marketplace.github_apps_preferred %}, although you can list both OAuth and {% data variables.product.prodname_github_app %}s in {% data variables.product.prodname_marketplace %}. For more information, see "[Differences between {% data variables.product.prodname_github_apps %} and {% data variables.product.prodname_oauth_app %}s](/apps/differences-between-apps/)" and "[Migrating {% data variables.product.prodname_oauth_app %}s to {% data variables.product.prodname_github_apps %}](/apps/migrating-oauth-apps-to-github-apps/)."
If you have questions about {% data variables.product.prodname_marketplace %}, please contact {% data variables.contact.contact_support %} directly.
### Publishing an app to {% data variables.product.prodname_marketplace %}
### Publishing an app to {% data variables.product.prodname_marketplace %} overview
When you have finished creating your app, you can share it with other users by publishing it to {% data variables.product.prodname_marketplace %}. In summary, the process is:
@@ -38,13 +46,9 @@ When you have finished creating your app, you can share it with other users by p
1. Add a pricing plan. For more information, see "[Setting pricing plans for your listing](/developers/github-marketplace/setting-pricing-plans-for-your-listing)."
1. Check whether your app meets the requirements for listing on {% data variables.product.prodname_marketplace %} as a free or a paid app. For more information, see "[Requirements for listing an app](/developers/github-marketplace/requirements-for-listing-an-app)."
1. Read and accept the terms of the "[{% data variables.product.prodname_marketplace %} Developer Agreement](/articles/github-marketplace-developer-agreement/)."
1. Submit your listing for publication in {% data variables.product.prodname_marketplace %}, requesting verification if you want to sell the app. For more information, see "[Submitting your listing for publication](/developers/github-marketplace/submitting-your-listing-for-publication)."
An onboarding expert will contact you with any questions or further steps. For example, if you have added a paid plan, you will need to complete the verification process and complete financial onboarding. As soon as your listing is approved the app is published to {% data variables.product.prodname_marketplace %}.
1. Submit your listing for publication in {% data variables.product.prodname_marketplace %}. For more information, see "[Submitting your listing for publication](/developers/github-marketplace/submitting-your-listing-for-publication)."
### Seeing how your app is performing
@@ -52,3 +56,7 @@ You can access metrics and transactions for your listing. Weitere Informationen
- "[Viewing metrics for your listing](/developers/github-marketplace/viewing-metrics-for-your-listing)"
- "[Viewing transactions for your listing](/developers/github-marketplace/viewing-transactions-for-your-listing)"
### Contacting Support
If you have questions about {% data variables.product.prodname_marketplace %}, please contact {% data variables.contact.contact_support %} directly.

View File

@@ -0,0 +1,43 @@
---
title: About marketplace badges
intro: 'Learn about the badges that you may see for some apps and actions listings on {% data variables.product.prodname_marketplace %}.'
redirect_from:
- /developers/github-marketplace/about-verified-creator-badges
versions:
free-pro-team: '*'
---
### For GitHub Apps
Apps with the {% octicon "verified" aria-label="The verified badge" %}, are owned by an organization that has:
- Confirmed their domain
- Confirmed their email address so {% data variables.product.prodname_dotcom %} Support can reach the organization
- Required two-factor authentication for their organization. Weitere Informationen finden Sie unter „[Zwei-Faktor-Authentifizierung in Ihrer Organisation erzwingen](/github/setting-up-and-managing-organizations-and-teams/requiring-two-factor-authentication-in-your-organization)“.
![Marketplace badge for GitHub Apps](/assets/images/marketplace/apps-with-verified-publisher-badge.png)
To learn how you can add this badge to your app, see "[Applying for publisher verification for your organization](/developers/github-marketplace/applying-for-publisher-verification-for-your-organization)."
For more information about the requirements for listing an app on {% data variables.product.prodname_marketplace %}, see "[Requirements for listing an app on {% data variables.product.prodname_marketplace %}](/marketplace/getting-started/requirements-for-listing-an-app-on-github-marketplace/)."
For information on finding apps to use, see "[Searching {% data variables.product.prodname_marketplace %}](/github/searching-for-information-on-github/searching-github-marketplace)."
### For GitHub actions
Actions with the {% octicon "verified" aria-label="The verified badge" %}, or verified creator badge, indicate that {% data variables.product.prodname_dotcom %} has verified the creator of the action as a partner organization.
![Verified creator badge for GitHub Actions](/assets/images/marketplace/verified-creator-badge-for-actions.png)
For information on how to publish a GitHub action to {% data variables.product.prodname_marketplace %}, see "[Publishing actions in GitHub Marketplace](/actions/creating-actions/publishing-actions-in-github-marketplace)."
### About the previous verification process for apps
In addition to the verified creator badge, you'll also see badges for unverified and verified apps. These apps were published using the old method for verifying individual apps.
![Green verified and grey unverified badge](/assets/images/marketplace/marketplace_verified_badges.png)
{% note %}
**Note:** The new publisher verification process for apps replaces the previous process where individual apps were verified. The new publisher verification process is similar to the verification process for actions. If you have apps that were verified under the old process, these will not be affected by the changes. The {% data variables.product.prodname_marketplace %} team will contact you with details of how to migrate to organization-based verification.
{% endnote %}

View File

@@ -0,0 +1,32 @@
---
title: Applying for publisher verification for your organization
intro: 'To offer paid plans for your app or to include a marketplace badge in your app listing, you must complete the publisher verification process for your organization.'
versions:
free-pro-team: '*'
---
Publisher verification ensures that {% data variables.product.prodname_dotcom %} has a way to contact you, that you've enabled two-factor authentication for your organization, and that your organization's domain has been verified.
Once your organization has been verified, you can publish paid plans for your app. For information, see "[Setting pricing plans for your listing](/developers/github-marketplace/setting-pricing-plans-for-your-listing)."
To offer paid plans for your app, the app must be owned by an organization and you must have owner permissions in the organization. If your app is currently owned by a user account, you'll need to transfer the ownership of the app to an organization. For more information, see "[Transferring ownership of a GitHub App](/developers/apps/transferring-ownership-of-a-github-app)" or "[Transferring ownership of an OAuth App](/developers/apps/transferring-ownership-of-an-oauth-app)."
### Requesting publisher verification
{% data reusables.profile.access_profile %}
{% data reusables.profile.access_org %}
{% data reusables.organizations.org_settings %}
1. Klicke auf der linken Seitenleiste auf **Developer settings** (Entwicklereinstellungen). ![Developer settings option in the organization settings sidebar](/assets/images/marketplace/developer-settings-in-org-settings.png)
1. Under "Developer settings", click **Publisher Verification**. ![Publisher verification option in the organization settings sidebar](/assets/images/marketplace/publisher-verification-settings-option.png)
1. Under "Publisher Verification", complete the information in the checklist:
- Ensure that your basic profile information is present and accurate. Also, make sure that you've included the best email address for support and updates from {% data variables.product.company_short %}.
- Ensure that Two-factor authentication is enabled for your organization. Weitere Informationen finden Sie unter „[Zwei-Faktor-Authentifizierung in Ihrer Organisation erzwingen](/github/setting-up-and-managing-organizations-and-teams/requiring-two-factor-authentication-in-your-organization)“.
- Submit a verified domain. For related information, see "[Verifying your organization's domain](/github/setting-up-and-managing-organizations-and-teams/verifying-your-organizations-domain)."
![Publisher Verification checklist](/assets/images/marketplace/publisher-verification-checklist.png)
1. Click **Request Verification**. {% data variables.product.company_short %} will review your details and let you know once your publisher verification is complete.
### Weiterführende Informationen
For information about the process of publishing apps, see "[About GitHub Marketplace](/developers/github-marketplace/about-github-marketplace)."

View File

@@ -60,7 +60,7 @@ Once you've created a {% data variables.product.prodname_marketplace %} draft li
### Submitting your app
Once you've completed your {% data variables.product.prodname_marketplace %} listing, you can submit your listing for review from the **Overview** page. You'll need to read and accept the "[{% data variables.product.prodname_marketplace %} Developer Agreement](/articles/github-marketplace-developer-agreement/)," and then you can click **Submit for review**. After you submit your app for review, an onboarding expert will contact you with additional information about the onboarding process. You can learn more about the onboarding and security review process in "[Getting started with {% data variables.product.prodname_marketplace %}](/marketplace/getting-started/)."
Once you've completed your {% data variables.product.prodname_marketplace %} listing, you can submit your listing for review from the **Overview** page. You'll need to read and accept the "[{% data variables.product.prodname_marketplace %} Developer Agreement](/articles/github-marketplace-developer-agreement/)," and then you can click **Submit for review**. After you submit your app for review, an onboarding expert will contact you with additional information about the onboarding process.
### Removing a {% data variables.product.prodname_marketplace %} listing

View File

@@ -0,0 +1,8 @@
---
title: GitHub Marketplace Overview
intro: 'Learn how you can share your app or action with the {% data variables.product.company_short %} community on {% data variables.product.prodname_marketplace %}.'
mapTopic: true
versions:
free-pro-team: '*'
---

View File

@@ -9,9 +9,12 @@ versions:
free-pro-team: '*'
---
{% topic_link_in_list /creating-apps-for-github-marketplace %}
{% topic_link_in_list /github-marketplace-overview %}
{% link_in_list /about-github-marketplace %}
{% link_in_list /about-verified-creators %}
{% link_in_list /about-marketplace-badges %}
{% link_in_list /applying-for-publisher-verification-for-your-organization %}
{% topic_link_in_list /creating-apps-for-github-marketplace %}
{% link_in_list /requirements-for-listing-an-app %}
{% link_in_list /security-best-practices-for-apps %}
{% link_in_list /customer-experience-best-practices-for-apps %}

View File

@@ -48,18 +48,21 @@ To protect your customers, we recommend that you also follow security best pract
### Requirements for paid apps
In addition to the requirements for all apps above, each app that you offer as a paid service on {% data variables.product.prodname_marketplace %} must also meet the following requirements:
To publish a paid plan for your app on {% data variables.product.prodname_marketplace %}, your app must be owned by an organization that is a verified publisher. For more information about the verification process or transfering ownership of your app, see "[Applying for publisher verification for your organization](/developers/github-marketplace/applying-for-publisher-verification-for-your-organization)."
If your app is already published and you're a verified publisher, then you can publish a new paid plan from the pricing plan editor. For more information, see "[Setting pricing plans for your listing](/developers/github-marketplace/setting-pricing-plans-for-your-listing)."
To publish a paid app (or an app that offers a paid plan), you must also meet the following requirements:
- {% data variables.product.prodname_github_app %}s should have a minimum of 100 installations.
- {% data variables.product.prodname_oauth_app %}s should have a minimum of 200 users.
- All paid apps must handle {% data variables.product.prodname_marketplace %} purchase events for new purchases, upgrades, downgrades, cancellations, and free trials. For more information, see "[Billing requirements for paid apps](#billing-requirements-for-paid-apps)" below.
- Publishing organizations must have a verified domain and must enable two-factor authentication. Weitere Informationen finden Sie unter „[Zwei-Faktor-Authentifizierung in Ihrer Organisation erzwingen](/github/setting-up-and-managing-organizations-and-teams/requiring-two-factor-authentication-in-your-organization)“.
When you are ready to publish the app on {% data variables.product.prodname_marketplace %} you must request verification for the listing.
When you are ready to publish the app on {% data variables.product.prodname_marketplace %} you must request verification for the app listing.
{% note %}
The verification process is open to organizations. {% data reusables.marketplace.app-transfer-to-org-for-verification %} For information on how to do this, see: "[Submitting your listing for publication](/developers/github-marketplace/submitting-your-listing-for-publication#transferring-an-app-to-an-organization-before-you-submit)."
**Note:** {% data reusables.marketplace.app-transfer-to-org-for-verification %} For information on how to transfer an app to an organization, see: "[Submitting your listing for publication](/developers/github-marketplace/submitting-your-listing-for-publication#transferring-an-app-to-an-organization-before-you-submit)."
{% endnote %}

View File

@@ -19,11 +19,13 @@ versions:
### About setting pricing plans
If you want to sell an app on {% data variables.product.prodname_marketplace %}, you need to request verification when you publish the listing for your app. During the verification process, an onboarding expert checks the organization's identity and security settings. The onboarding expert will also take the organization through financial onboarding. For more information, see: "[Requirements for listing an app on {% data variables.product.prodname_marketplace %}](/marketplace/getting-started/requirements-for-listing-an-app-on-github-marketplace/)."
{% data variables.product.prodname_marketplace %} offers several different types of pricing plans. For detailed information, see "[Pricing plans for {% data variables.product.prodname_marketplace %}](/developers/github-marketplace/pricing-plans-for-github-marketplace-apps)."
{% data reusables.marketplace.app-transfer-to-org-for-verification %} For information on how to do this, see: "[Submitting your listing for publication](/developers/github-marketplace/submitting-your-listing-for-publication#transferring-an-app-to-an-organization-before-you-submit)."
To offer a paid plan for your app, your app must be owned by an organization that has completed the publisher verification process and met certain criteria. For more information, see "[Applying for publisher verification for your organization](/developers/github-marketplace/applying-for-publisher-verification-for-your-organization)" and "[Requirements for listing an app on {% data variables.product.prodname_marketplace %}](/marketplace/getting-started/requirements-for-listing-an-app-on-github-marketplace/)."
{% data variables.product.prodname_marketplace %} offers several different types of pricing plan. For detailed information, see "[Pricing plans for {% data variables.product.prodname_marketplace %}](/developers/github-marketplace/pricing-plans-for-github-marketplace-apps)."
If your app is already published with a paid plan and you're a verified publisher, then you can publish a new paid plan from the "Edit a pricing plan" page in your Marketplace app listing settings.
![Publish this plan button](/assets/images/marketplace/publish-this-plan-button.png)
### About saving pricing plans

View File

@@ -1,6 +1,6 @@
---
title: Submitting your listing for publication
intro: 'You can submit your listing for the {% data variables.product.prodname_dotcom %} community to use.'
intro: 'To finish your app listing submission, you can request a review by an onboarding expert.'
redirect_from:
- /marketplace/listing-on-github-marketplace/submitting-your-listing-for-review
- /developers/github-marketplace/submitting-your-listing-for-review
@@ -8,30 +8,14 @@ versions:
free-pro-team: '*'
---
Once your app listing meets the {% data variables.product.prodname_marketplace %} requirements, you can submit your app. For an overview of the app listing requirements, see "[Requirements for listing an app](/developers/github-marketplace/requirements-for-listing-an-app)."
1. In the top left of the app listing page, click **Overview**. For information on finding your app listing page, see "[Drafting a listing for your app](/developers/github-marketplace/drafting-a-listing-for-your-app)."
Once you've completed the listing for your app, you'll see two buttons that allow you to request publication of the listing with or without verification. The **Request** button for "Publish without verification" is disabled if you have published any paid pricing plans in the listing.
![Overview option for the marketplace draft listing](/assets/images/marketplace/edit-marketplace-listing-overview.png)
![Unverified and verified request button](/assets/images/marketplace/marketplace-request-button.png)
2. To submit your your completed app listing, click **Request review**.
{% data reusables.marketplace.launch-with-free %}
!["Publish your app to Marketplace" checklist with submission button at the bottom](/assets/images/marketplace/publish-your-app-checklist-and-submission.png)
After you submit your listing for review, an onboarding expert will reach out to you with additional information.
For an overview of the process for creating and submitting a listing, see "[About {% data variables.product.prodname_marketplace %}](/developers/github-marketplace/about-github-marketplace#publishing-an-app-to-github-marketplace)."
### Prerequisites for publishing with verification
Before you request verification of your listing, you'll need to integrate the {% data variables.product.prodname_marketplace %} billing flows and webhook into your app. For more information, see "[Using the {% data variables.product.prodname_marketplace %} API in your app](/developers/github-marketplace/using-the-github-marketplace-api-in-your-app)."
If you've met the requirements for listing and you've integrated with the {% data variables.product.prodname_marketplace %} API, go ahead and submit your listing. For more information, see "[Requirements for listing an app](/developers/github-marketplace/requirements-for-listing-an-app)."
{% data reusables.marketplace.app-transfer-to-org-for-verification %} For information on how to do this, see: "[Transferring an app to an organization before you submit](#transferring-an-app-to-an-organization-before-you-submit)" below.
### Transferring an app to an organization before you submit
You cannot sell an app that's owned by a user account. You need to transfer the app to an organization that is already a verified creator, or that can request verification for a listing for the app. For details, see:
1. "[Creating an organization from scratch](/github/setting-up-and-managing-organizations-and-teams/creating-a-new-organization-from-scratch)"
1. "[Transferring ownership of a GitHub App](/developers/apps/transferring-ownership-of-a-github-app)" or "[Transferring ownership of an OAuth App](/developers/apps/transferring-ownership-of-an-oauth-app)"
An onboarding expert will reach out to you with additional information.

View File

@@ -1,6 +1,7 @@
---
title: Secret scanning
intro: 'As a service provider, you can partner with {% data variables.product.prodname_dotcom %} to have your secret token formats secured through secret scanning, which searches for accidental commits of your secret format and can be sent to a service provider''s verify endpoint.'
miniTocMaxHeadingLevel: 4
redirect_from:
- /partnerships/token-scanning/
- /partnerships/secret-scanning
@@ -8,52 +9,52 @@ versions:
free-pro-team: '*'
---
{% data variables.product.prodname_dotcom %} scans repositories for known secret formats to prevent fraudulent use of credentials that were committed accidentally. Secret scanning happens by default on public repositories, and can be enabled on private repositories by repository administrators or organization owners. As a service provider, you can partner with {% data variables.product.prodname_dotcom %} so that your secret formats are included in our secret scanning.
{% data variables.product.prodname_dotcom %} scans repositories for known secret formats to prevent fraudulent use of credentials that were committed accidentally. {% data variables.product.prodname_secret_scanning_caps %} happens by default on public repositories, and can be enabled on private repositories by repository administrators or organization owners. As a service provider, you can partner with {% data variables.product.prodname_dotcom %} so that your secret formats are included in our {% data variables.product.prodname_secret_scanning %}.
When a match of your secret format is found in a public repository, a payload is sent to an HTTP endpoint of your choice.
When a match of your secret format is found in a private repository configured for secret scanning, then repository admins are alerted and can view and manage the secret scanning results on {% data variables.product.prodname_dotcom %}. For more information, see "[Managing alerts from secret scanning](/github/administering-a-repository/managing-alerts-from-secret-scanning)".
When a match of your secret format is found in a private repository configured for {% data variables.product.prodname_secret_scanning %}, then repository admins are alerted and can view and manage the {% data variables.product.prodname_secret_scanning %} results on {% data variables.product.prodname_dotcom %}. Weitere Informationen findest Du unter „[Warnungen von {% data variables.product.prodname_secret_scanning %} verwalten](/github/administering-a-repository/managing-alerts-from-secret-scanning)."
{% note %}
**Note:** Secret scanning for private repositories is currently in beta.
**Note:** {% data variables.product.prodname_secret_scanning_caps %} for private repositories is currently in beta.
{% endnote %}
This article describes how you can partner with {% data variables.product.prodname_dotcom %} as a service provider and join the secret scanning program.
This article describes how you can partner with {% data variables.product.prodname_dotcom %} as a service provider and join the {% data variables.product.prodname_secret_scanning %} program.
### The secret scanning process
### The {% data variables.product.prodname_secret_scanning %} process
##### How secret scanning works in a public repository
##### How {% data variables.product.prodname_secret_scanning %} works in a public repository
The following diagram summarizes the secret scanning process for public repositories, with any matches sent to a service provider's verify endpoint.
The following diagram summarizes the {% data variables.product.prodname_secret_scanning %} process for public repositories, with any matches sent to a service provider's verify endpoint.
![Flow diagram showing the process of scanning for a secret and sending matches to a service provider's verify endpoint](/assets/images/secret-scanning-flow.png "Secret scanning flow")
![Flow diagram showing the process of scanning for a secret and sending matches to a service provider's verify endpoint](/assets/images/secret-scanning-flow.png "{% data variables.product.prodname_secret_scanning_caps %} flow")
### Joining the secret scanning program on {% data variables.product.prodname_dotcom %}
### Joining the {% data variables.product.prodname_secret_scanning %} program on {% data variables.product.prodname_dotcom %}
1. Contact {% data variables.product.prodname_dotcom %} to get the process started.
1. Identify the relevant secrets you want to scan for and create regular expressions to capture them.
1. For secret matches found in public repositories, create a secret alert service which accepts webhooks from {% data variables.product.prodname_dotcom %} that contain the secret scanning message payload.
1. For secret matches found in public repositories, create a secret alert service which accepts webhooks from {% data variables.product.prodname_dotcom %} that contain the {% data variables.product.prodname_secret_scanning %} message payload.
1. Implement signature verification in your secret alert service.
1. Implement secret revocation and user notification in your secret alert service.
1. Provide feedback for false positives (optional).
#### Contact {% data variables.product.prodname_dotcom %} to get the process started
To get the enrollment process started, email secret-scanning@github.com.
To get the enrollment process started, email <a href="mailto:secret-scanning@github.com">secret-scanning@github.com</a>.
You will receive details on the secret scanning program, and you will need to agree to {% data variables.product.prodname_dotcom %}'s terms of participation before proceeding.
You will receive details on the {% data variables.product.prodname_secret_scanning %} program, and you will need to agree to {% data variables.product.prodname_dotcom %}'s terms of participation before proceeding.
#### Identify your secrets and create regular expressions
To scan for your secrets, {% data variables.product.prodname_dotcom %} needs the following pieces of information for each secret that you want included in the secret scanning program:
To scan for your secrets, {% data variables.product.prodname_dotcom %} needs the following pieces of information for each secret that you want included in the {% data variables.product.prodname_secret_scanning %} program:
* A unique, human readable name for the secret type. We'll use this to generate the `Type` value in the message payload later.
* A regular expression which finds the secret type. Be as precise as possible, because this will reduce the number of false positives.
* The URL of the endpoint that receives messages from {% data variables.product.prodname_dotcom %}. This does not have to be unique for each secret type.
Send this information to secret-scanning@github.com.
Send this information to <a href="mailto:secret-scanning@github.com">secret-scanning@github.com</a>.
#### Create a secret alert service
@@ -61,7 +62,7 @@ Create a public, internet accessible HTTP endpoint at the URL you provided to us
##### Example POST sent to your endpoint
```
```http
POST / HTTP/1.1
Host: HOST
Accept: */*
@@ -94,7 +95,7 @@ You can retrieve the {% data variables.product.prodname_dotcom %} secret scannin
content-type: application/json
GITHUB-PUBLIC-KEY-IDENTIFIER: 90a421169f0a406205f1563a953312f0be898d3c7b6c06b681aa86a874555f4a
GITHUB-PUBLIC-KEY-SIGNATURE: MEUCICxTWEpKo7BorLKutFZDS6ie+YFg6ecU7kEA6rUUSJqsAiEA9bK0Iy6vk2QpZOOg2IpBhZ3JRVdwXx1zmgmNAR7Izpc=
```
Content-Length: 0000
```
@@ -315,4 +316,44 @@ puts openssl_key.verify(OpenSSL::Digest::SHA256.new, Base64.decode64(signature),
When we report secrets to you, we send a JSON array with each element containing the token, type identifier, and commit URL. When you send us feedback, you send us information about whether the detected token was a real or false credential. We accept feedback in the following formats.
For secret scanning in public repositories, you can enhance your secret alert service to revoke the exposed secrets and notify the affected users. How you implement this in your secret alert service is up to you, but we recommend considering any secrets that {% data variables.product.prodname_dotcom %} sends you messages about as public and compromised.
You can send us the raw token:
```
[
{
"token_raw": "The raw token",
"token_type": "ACompany_API_token",
"label": "true_positive"
}
]
```
You may also provide the token in hashed form after performing a one way cryptographic hash of the raw token using SHA-256:
```
[
{
"token_hash": "The SHA-256 hashed form of the raw token",
"token_type": "ACompany_API_token",
"label": "false_positive"
}
]
```
A few important points:
- You should only send us either the raw form of the token ("token_raw"), or the hashed form ("token_hash"), but not both.
- For the hashed form of the raw token, you can only use SHA-256 to hash the token, not any other hashing algorithm.
- The label indicates whether the token is a true ("true_positive") or a false positive ("false_positive"). Only these two lowercased literal strings are allowed.
{% note %}
**Note:** Our request timeout is set to be higher (that is, 30 seconds) for partners who provide data about false positives. If you require a timeout higher than 30 seconds, email us at <a href="mailto:secret-scanning@github.com">secret-scanning@github.com</a>.
{% endnote %}
- The label indicates whether the token is a true ("true_positive") or a false positive ("false_positive"). Only these two lowercased literal strings are allowed.
{% note %}
**Note:** Our request timeout is set to be higher (that is, 30 seconds) for partners who provide data about false positives. If you require a timeout higher than 30 seconds, email us at <a href="mailto:secret-scanning@github.com">secret-scanning@github.com</a>.
{% endnote %}

View File

@@ -22,7 +22,7 @@ featuredLinks:
- /discussions/guides/finding-discussions-across-multiple-repositories
- /discussions/collaborating-with-your-community-using-discussions/collaborating-with-maintainers-using-discussions
- /discussions/managing-discussions-for-your-community/managing-categories-for-discussions-in-your-repository
product_video: https://www.youtube-nocookie.com/embed/DbTWBP3_RbM
product_video: https://www.youtube-nocookie.com/embed/IpBw2SJkFyk
layout: product-landing
versions:
free-pro-team: '*'
@@ -43,7 +43,7 @@ versions:
{% render 'discussions-community-card' for discussionsCommunityExamples as example %}
</div>
{% if discussionsCommunityExamples.length > 6 %}
<button class="js-filter-card-show-more btn btn-outline float-right">Show more {% octicon "arrow-right" %}</button>
<button class="js-filter-card-show-more btn btn-outline float-right" data-js-filter-card-max="6">Show more {% octicon "arrow-right" %}</button>
{% endif %}
<div class="js-filter-card-no-results d-none py-4 text-center text-gray font-mktg">
<div class="mb-3">{% octicon "search" width="24" %}</div>

View File

@@ -0,0 +1,18 @@
---
title: Informationen zu Campus Advisors
intro: 'Lernen Sie als Instrukteur oder Mentor, {% data variables.product.prodname_dotcom %} an Ihrer Einrichtung mit Campus Advisors-Schulungen und -Support zu verwenden.'
redirect_from:
- /education/teach-and-learn-with-github-education/about-campus-advisors
- /github/teaching-and-learning-with-github-education/about-campus-advisors
- /articles/about-campus-advisors
versions:
free-pro-team: '*'
---
Professoren, Lehrer und Mentoren können die Onlineschulungen von Campus Advisors nutzen, um den Umgang mit Git und {% data variables.product.prodname_dotcom %} sowie Best Practices für das Unterrichten von Studenten mit {% data variables.product.prodname_dotcom %} zu erlernen. Weitere Informationen findest Du unter „[Campus Advisors](https://education.github.com/teachers/advisors).“
{% note %}
**Hinweis:** Als Kursleiter kannst Du keine {% data variables.product.prodname_dotcom %}-Konten für Deine Studenten erstellen. Studenten müssen ihre eigenen {% data variables.product.prodname_dotcom %}-Konten erstellen.
{% endnote %}

View File

@@ -0,0 +1,12 @@
---
title: Informationen zu Campus Experts
intro: 'Erwirb Dir als Student mit Campus Experts-Schulungen für {% data variables.product.prodname_dotcom %} die notwendigen Fähigkeiten, um die Technologie-Community an Deiner Bildungseinrichtung sowie ein realistisches Portfolio aufzubauen.'
redirect_from:
- /education/teach-and-learn-with-github-education/about-campus-experts
- /github/teaching-and-learning-with-github-education/about-campus-experts
- /articles/about-campus-experts
versions:
free-pro-team: '*'
---
Erlernen von Fähigkeiten in den Bereichen öffentliches Reden, technisches Schreiben, Community Leadership und Softwareentwicklung als Campus Experts für {% data variables.product.prodname_dotcom %}. Weitere Informationen findest Du unter „[Campus Experts](https://education.github.com/students/experts).“

View File

@@ -0,0 +1,32 @@
---
title: Informationen über GitHub Education für Lehrer und Forscher
intro: '{% data variables.product.prodname_education %} bietet eine Vielzahl von Tools, mit denen Lehrer und Forscher innerhalb und außerhalb des Unterrichts effektiver arbeiten können.'
redirect_from:
- /education/teach-and-learn-with-github-education/about-github-education-for-educators-and-researchers
- /github/teaching-and-learning-with-github-education/about-github-education-for-educators-and-researchers
- /articles/about-github-education-for-educators-and-researchers
versions:
free-pro-team: '*'
---
{% data reusables.education.about-github-education-link %}
### {% data variables.product.prodname_education %} für Lehrer
Die Werkzeuge und Dienste von {% data variables.product.prodname_education %} für Lehrer aller Bildungsebenen ermöglichen Dir Folgendes:
- Verwende [{% data variables.product.prodname_classroom %}](https://classroom.github.com), um Code zu verteilen, Schülern und Studenten Feedback zu geben und Aufgaben auf {% data variables.product.prodname_dotcom %} einzusammeln.
- Tritt unserer [{% data variables.product.prodname_education_community %}](https://education.github.com/forum) bei, um mit Deinen Kollegen aus der ganzen Welt über aktuelle Trends in der technologischen Bildung zu diskutieren.
- Greife auf unsere [Open-Source-Lehrpläne](https://education.github.community/t/open-source-lesson-plans/1591) zum Unterrichten von Git und {% data variables.product.prodname_dotcom %} zu und passe diese an.
- [Fordere eine {% data variables.product.prodname_dotcom %}-Tasche](https://education.github.community/t/get-a-github-swag-bag-for-your-classroom/33) mit Lehrmaterialien und Aufmerksamkeiten für Deine Schüler und Studenten an.
{% data reusables.education.apply-for-team %}
### {% data variables.product.prodname_education %} für Forscher
Die Werkzeuge und Dienste von {% data variables.product.prodname_education %} für Forscher ermöglichen Dir Folgendes:
- Arbeite weltweit auf {% data variables.product.prodname_dotcom %} mit anderen Personen gemeinsam an Deiner Forschungsarbeit.
- [Erfahre](https://education.github.com/stories), wie akademische Einrichtungen auf der ganzen Welt {% data variables.product.prodname_dotcom %} für ihre Forschung verwenden.
{% data reusables.education.apply-for-team %}
### Weiterführende Informationen
- „[Informationen zu {% data variables.product.prodname_education %} für Schüler und Studenten](/articles/about-github-education-for-students)“

View File

@@ -0,0 +1,22 @@
---
title: Informationen zu GitHub Education für Schüler und Studenten
intro: '{% data variables.product.prodname_education %} bietet Schülern und Studenten praktische Erfahrung mit kostenlosem Zugriff auf verschiedene Entwicklertools von Partnern von {% data variables.product.prodname_dotcom %}.'
redirect_from:
- /education/teach-and-learn-with-github-education/about-github-education-for-students
- /github/teaching-and-learning-with-github-education/about-github-education-for-students
- /articles/about-github-education-for-students
versions:
free-pro-team: '*'
---
Die Verwendung von {% data variables.product.prodname_dotcom %} für Ihre Projektarbeiten ist ein praktischer Weg, um mit anderen zusammenzuarbeiten und ein Portfolio aufzubauen, das Ihre praktische Erfahrung zeigt.
{% data reusables.education.about-github-education-link %}
Jeder mit einem {% data variables.product.prodname_dotcom %}-Konto kann unbegrenzt in öffentlichen und privaten Repositorys mit {% data variables.product.prodname_free_user %} zusammenarbeiten. Als Schüler oder Student können Sie auch das {% data variables.product.prodname_student_pack %} beantragen, das kostenlosen Zugriff auf Tools und Dienste bietet, die von professionellen Entwicklern verwendet werden. For more information, see "[Apply for a student developer pack](/education/explore-the-benefits-of-teaching-and-learning-with-github-education/apply-for-a-student-developer-pack)" and [{% data variables.product.prodname_education %}](https://education.github.com/pack).
Wenn Sie Mitglied in einem FIRST Robotics Club sind, kann Ihr Lehrer einen Rabatt beantragen, damit Ihr Team mit {% data variables.product.prodname_team %} zusammenarbeiten kann, wodurch eine unbegrenzte Anzahl von Benutzern und privaten Repositorys kostenlos genutzt werden kann. For more information, see "[Apply for an educator or researcher discount](/education/explore-the-benefits-of-teaching-and-learning-with-github-education/apply-for-an-educator-or-researcher-discount)."
### Weiterführende Informationen
- „[Informationen zu {% data variables.product.prodname_education %} für Lehrer und Forscher](/articles/about-github-education-for-educators-and-researchers)“

View File

@@ -0,0 +1,24 @@
---
title: Informationen zu GitHub Education
intro: '{% data variables.product.prodname_education %} bietet ein spezielles kostenloses Produkt für Bildungseinrichtungen, die {% data variables.product.prodname_dotcom %} optimal für ihre Community nutzen möchten und den spezifischen Programmanforderungen zustimmen.'
redirect_from:
- /education/teach-and-learn-with-github-education/about-github-education
- /github/teaching-and-learning-with-github-education/about-github-education
- /articles/about-github-education
versions:
free-pro-team: '*'
---
Wenn Ihre Schule bestimmte Anforderungen erfüllt, kann Ihre weiterführende Schule, Ihre Universität oder Ihr Schülercamp {% data variables.product.prodname_education %} und damit das Beste von {% data variables.product.prodname_dotcom %} kostenlos nutzen, einschließlich
- {% data variables.product.prodname_ghe_cloud %} und/oder {% data variables.product.prodname_ghe_server %},
- Lehrerschulung zur Beherrschung von Git und {% data variables.product.prodname_dotcom %} mit unserem Campus Advisors-Programm,
- automatisierter Zugriff auf die Premiumfunktionen von {% data variables.product.prodname_education %}, wie z. B. das {% data variables.product.prodname_student_pack %},
- Schulungen für Schüler und Studenten mit dem Campus Experts-Programm zur Entwicklung von Leadership und technischer Kompetenz.
Weitere Informationen findest Du auf der [offiziellen {% data variables.product.prodname_education %}-Seite](https://education.github.com/partners/schools).
Teachers can manage a course on software development with {% data variables.product.prodname_education %}. {% data variables.product.prodname_classroom %} allows you to distribute code, provide feedback, and manage coursework using {% data variables.product.product_name %}. For more information, see "[Manage coursework with {% data variables.product.prodname_classroom %}](/education/manage-coursework-with-github-classroom)."
Weitere Informationen zu Schulungsprogrammen für Schüler, Studenten und Lehrer findest Du unter „[{% data variables.product.prodname_dotcom %} Campus Experts](https://education.github.com/students/experts)“ und „[Campus Advisors](https://education.github.com/teachers/advisors).“
Wenn Sie Schüler, Student oder Lehrkraft sind und Ihre Einrichtung nicht mit {% data variables.product.prodname_dotcom %} als {% data variables.product.prodname_education %}-Einrichtung kooperiert, können Sie trotzdem individuell Rabatte für die Nutzung von {% data variables.product.prodname_dotcom %} beantragen. For more information, see "[Use {% data variables.product.prodname_dotcom %} for your schoolwork](/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-for-your-schoolwork)" or "[Use {% data variables.product.prodname_dotcom %} in your classroom and research](/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-in-your-classroom-and-research/)."

View File

@@ -0,0 +1,54 @@
---
title: Apply for a student developer pack
intro: 'Studenten können das {% data variables.product.prodname_student_pack %} beantragen, das Angebote und Vorteile von {% data variables.product.prodname_dotcom %}-Partnern umfasst.'
redirect_from:
- /education/teach-and-learn-with-github-education/apply-for-a-student-developer-pack
- /github/teaching-and-learning-with-github-education/applying-for-a-student-developer-pack
- /articles/applying-for-a-student-developer-pack
versions:
free-pro-team: '*'
---
{% data reusables.education.about-github-education-link %}
### Anforderungen
Damit Du ein {% data variables.product.prodname_student_pack %} nutzen kannst, musst Du:
- Derzeit als Schüler oder Student in einer Einrichtung eingeschrieben sein, die einen Abschluss oder ein Diplom verleiht, beispielsweise ein Gymnasium, eine weiterführende Schule, eine Hochschule, eine Universität, eine Heimschule oder eine ähnliche Bildungseinrichtung,
- Eine überprüfbare E-Mail-Adresse einer Hochschule besitzen oder Dokumente hochladen, die Deinen aktuellen Status als Student bestätigen
- Ein [{% data variables.product.prodname_dotcom %}-Benutzerkonto](/articles/signing-up-for-a-new-github-account) besitzen,
- Mindestens 13 Jahre alt sein
Documents that prove your current student status include a picture of your school ID with current enrollment date, class schedule, transcript, and affiliation or enrollment verification letter.
Während Deiner Zeit als Student wirst Du möglicherweise dazu aufgefordert, in regelmäßigen Abständen Deinen aktuellen akademischen Status zu bestätigen.
{% note %}
**Hinweis:** Du kannst akademische Rabatte nicht von einem Konto zu einem anderen übertragen. Wenn Du den Rabatt auf mehrere Konten anwenden möchtest, kannst Du Deine Benutzerkonten [zusammenführen](/articles/merging-multiple-user-accounts) und das resultierende Konto [umbenennen](/articles/changing-your-github-username), falls gewünscht.
{% endnote %}
Weitere Informationen zum Verlängerung Ihres {% data variables.product.prodname_student_pack %}s finden Sie unter „[Ablauf und Verlängerungen](/education/explore-the-benefits-of-teaching-and-learning-with-github-education/apply-for-a-student-developer-pack/#expiration-and-renewals)“.
### Ein {% data variables.product.prodname_student_pack %} beantragen
{% data reusables.education.benefits-page %}
3. Wähle unter „Which best describes your academic status?“ (Was beschreibt Deinen akademischen Status am besten?) **Student** aus. ![Akademischen Status auswählen](/assets/images/help/education/academic-status-student.png)
{% data reusables.education.select-email-address %}
{% data reusables.education.upload-proof-status %}
{% data reusables.education.school-name %}
{% data reusables.education.plan-to-use-github %}
{% data reusables.education.submit-application %}
### Ablauf und Verlängerungen
Wenn Ihr Zugriff auf das {% data variables.product.prodname_student_pack %} abgelaufen ist, können Sie ihn erneut beantragen, sofern Sie die Voraussetzungen weiterhin erfüllen. Einige unserer Partnerangebote können jedoch nicht verlängert werden. Die meisten zeitlich begrenzten Angebote unserer Partner beginnen unmittelbar nachdem Du sie eingerichtet hast. Weitere Informationen findest Du auf der [{% data variables.product.prodname_student_pack %}](https://education.github.com/pack)-Seite.
Angaben dazu, wann Ihr kostenloser Zugriff auf das {% data variables.product.prodname_student_pack %} abläuft, finden Sie in den [Abrechnungseinstellungen](https://github.com/settings/billing) Ihres Kontos.
### Weiterführende Informationen
- „[Warum wurde mein Antrag für das {% data variables.product.prodname_student_pack %}s abgelehnt?](/articles/why-wasn-t-my-application-for-a-student-developer-pack-approved)“
- „[Für ein neues {% data variables.product.prodname_dotcom %}-Konto anmelden](/articles/signing-up-for-a-new-github-account)“
- [{% data variables.product.prodname_education %}](https://education.github.com)

View File

@@ -0,0 +1,58 @@
---
title: Apply for an educator or researcher discount
intro: 'Wenn Sie ein Lehrer oder Forscher sind, können Sie beantragen, {% data variables.product.prodname_team %} kostenlos für das Konto Ihrer Organisation zu erhalten.'
redirect_from:
- /education/teach-and-learn-with-github-education/apply-for-an-educator-or-researcher-discount
- /github/teaching-and-learning-with-github-education/applying-for-an-educator-or-researcher-discount
- /articles/applying-for-a-classroom-discount/
- /articles/applying-for-a-discount-for-your-school-club/
- /articles/applying-for-an-academic-research-discount/
- /articles/applying-for-a-discount-for-your-first-robotics-team/
- /articles/applying-for-an-educator-or-researcher-discount
versions:
free-pro-team: '*'
---
### Informationen zu Lehrer- und Forscherrabatten
{% data reusables.education.about-github-education-link %}
{% data reusables.education.educator-requirements %}
For more information about user accounts on {% data variables.product.product_name %}, see "[Signing up for a new {% data variables.product.prodname_dotcom %} account](/github/getting-started-with-github/signing-up-for-a-new-github-account)."
### Einen Lehrer- oder Forscherrabatt beantragen
{% data reusables.education.benefits-page %}
{% data reusables.education.click-get-teacher-benefits %}
{% data reusables.education.select-email-address %}
{% data reusables.education.upload-proof-status %}
{% data reusables.education.school-name %}
{% data reusables.education.plan-to-use-github %}
{% data reusables.education.submit-application %}
### Ein Upgrade Deiner Organisation durchführen
Nachdem Dein Antrag für einen Lehrer- oder Forscherrabatt genehmigt wurde, kannst Du die von Dir mit Deiner Lerngemeinschaft benutzte Organisation auf {% data variables.product.prodname_team %} hochstufen, was die kostenlose Nutzung von unbegrenzten Benutzern und privaten Repositorys erlaubt. Du kannst eine vorhandene Organisation hochstufen oder eine neue Organisation für das Hochstufen erstellen.
#### Hochstufen einer vorhandenen Organisation
{% data reusables.education.upgrade-page %}
{% data reusables.education.upgrade-organization %}
#### Hochstufen einer neuen Organisation
{% data reusables.education.upgrade-page %}
1. Klicke auf {% octicon "plus" aria-label="The plus symbol" %} **Create an organization** (Erstelle eine Organisation). ![Schaltfläche „Create an organization“ (Eine Organisation erstellen)](/assets/images/help/education/create-org-button.png)
3. Lies die Informationen, dann klicke auf **Create organization** (Organisation erstellen). ![Schaltfläche „Create organization“ (Organisation erstellen)](/assets/images/help/education/create-organization-button.png)
4. Klicke unter "Choose your plan" (Wähle Deinen Plan), auf **Choose {% data variables.product.prodname_free_team %}** (Wähle Produkt).
5. Folge den Anweisungen, um Deine Organisation zu erstellen.
{% data reusables.education.upgrade-page %}
{% data reusables.education.upgrade-organization %}
### Weiterführende Informationen
- „[Warum wurde mein Antrag eines Lehrer- oder Forscherrabatts nicht genehmigt?](/articles/why-wasn-t-my-application-for-an-educator-or-researcher-discount-approved)“
- [{% data variables.product.prodname_education %}](https://education.github.com)
- [{% data variables.product.prodname_classroom %}-Videos](https://classroom.github.com/videos)
- [{% data variables.product.prodname_education_community %}](https://education.github.community/)

View File

@@ -0,0 +1,26 @@
---
title: Explore the benefits of teaching and learning with GitHub Education
shortTitle: Erkunden
intro: Learn how {% data variables.product.prodname_education %} can benefit your classroom, schoolwork, or research and how to apply for free access to various developer tools from {% data variables.product.company_short %}'s partners.
redirect_from:
- /education/teach-and-learn-with-github-education
- /github/teaching-and-learning-with-github-education
- /categories/teaching-and-learning-with-github-education
versions:
free-pro-team: '*'
---
### Inhaltsverzeichnis
{% topic_link_in_list /use-github-at-your-educational-institution %}
{% link_in_list /about-github-education %}
{% link_in_list /about-campus-experts %}
{% link_in_list /about-campus-advisors %}
{% topic_link_in_list /use-github-for-your-schoolwork %}
{% link_in_list /about-github-education-for-students %}
{% link_in_list /apply-for-a-student-developer-pack %}
{% link_in_list /why-wasnt-my-application-for-a-student-developer-pack-approved %}
{% topic_link_in_list /use-github-in-your-classroom-and-research %}
{% link_in_list /about-github-education-for-educators-and-researchers %}
{% link_in_list /apply-for-an-educator-or-researcher-discount %}
{% link_in_list /why-wasnt-my-application-for-an-educator-or-researcher-discount-approved %}

View File

@@ -0,0 +1,12 @@
---
title: Use GitHub at your educational institution
intro: 'Maximieren Sie die Vorteile der Nutzung von {% data variables.product.prodname_dotcom %} in Ihrer Einrichtung für Ihre Studenten, Instrukteure und IT-Mitarbeiter mit {% data variables.product.prodname_education %} und unseren verschiedenen Schulungsprogrammen für Studenten und Instrukteure.'
mapTopic: true
redirect_from:
- /education/teach-and-learn-with-github-education/use-github-at-your-educational-institution
- /github/teaching-and-learning-with-github-education/using-github-at-your-educational-institution
- /articles/using-github-at-your-educational-institution
versions:
free-pro-team: '*'
---

View File

@@ -0,0 +1,12 @@
---
title: Use GitHub for your schoolwork
intro: 'Schüler und Studenten können {% data variables.product.prodname_dotcom %} verwenden, um an Schulprojekten zusammenzuarbeiten und erste praktische Erfahrung aufzubauen.'
mapTopic: true
redirect_from:
- /education/teach-and-learn-with-github-education/use-github-for-your-schoolwork
- /github/teaching-and-learning-with-github-education/using-github-for-your-schoolwork
- /articles/using-github-for-your-schoolwork
versions:
free-pro-team: '*'
---

View File

@@ -0,0 +1,12 @@
---
title: Use GitHub in your classroom and research
intro: 'Lehrer oder Forscher können {% data variables.product.prodname_dotcom %} für die Zusammenarbeit im Klassenraum, in der Studenten- oder Forschungsgruppe usw. verwenden.'
mapTopic: true
redirect_from:
- /education/teach-and-learn-with-github-education/use-github-in-your-classroom-and-research
- /github/teaching-and-learning-with-github-education/using-github-in-your-classroom-and-research
- /articles/using-github-in-your-classroom-and-research
versions:
free-pro-team: '*'
---

View File

@@ -0,0 +1,68 @@
---
title: Warum wurde mein Antrag für das Studentenentwicklungspaket abgelehnt?
intro: 'Lies die generellen Gründe, weshalb Anträge für das {% data variables.product.prodname_student_pack %} nicht genehmigt werden, und Tipps, um die erneute Bewerbung erfolgreich zu gestalten.'
redirect_from:
- /education/teach-and-learn-with-github-education/why-wasnt-my-application-for-a-student-developer-pack-approved
- /github/teaching-and-learning-with-github-education/why-wasnt-my-application-for-a-student-developer-pack-approved
- /articles/why-was-my-application-for-a-student-developer-pack-denied/
- /articles/why-wasn-t-my-application-for-a-student-developer-pack-approved
- /articles/why-wasnt-my-application-for-a-student-developer-pack-approved
versions:
free-pro-team: '*'
---
{% tip %}
**Tipp:** {% data reusables.education.about-github-education-link %}
{% endtip %}
### Unklare Dokumente zur akademischen Zugehörigkeit
Wenn anhand des von Dir hochgeladenen Bildes Dein aktueller akademischer Status nicht eindeutig identifiziert werden kann, fordern wir einen weiteren Nachweis Deines akademischen Status an. {% data reusables.education.upload-proof-reapply %}
{% data reusables.education.pdf-support %}
### Akademische E-Mail-Adresse mit einer nicht verifizierten Domäne verwenden
Wenn Deine akademische E-Mail-Adresse eine nicht verifizierte Domäne aufweist, fordern wir einen weiteren Nachweis Deines akademischen Status an. {% data reusables.education.upload-proof-reapply %}
{% data reusables.education.pdf-support %}
### Akademische E-Mail-Adresse von einer Bildungseinrichtung mit lockeren E-Mail-Richtlinien verwenden
Wenn Deine Bildungseinrichtung E-Mail-Adressen vor der bezahlten Studentenregistrierung ausstellt, fordern wir einen weiteren Nachweis Deines akademischen Status an. {% data reusables.education.upload-proof-reapply %}
{% data reusables.education.pdf-support %}
Bei anderen Fragen oder Bedenken zur Domäne der Bildungseinrichtung solltest Du das IT-Personal Deiner Bildungseinrichtung bitten, uns zu kontaktieren.
### Akademische E-Mail-Adresse wird bereits verwendet
Wenn Deine akademische E-Mail-Adresse bereits verwendet wurde, um ein {% data variables.product.prodname_student_pack %} für ein anderes {% data variables.product.prodname_dotcom %}-Konto anzufordern, kannst Du die akademische E-Mail-Adresse bis zum Ablauf des entsprechenden Rabatts nicht erneut verwenden, um Dich erfolgreich für ein anderes {% data variables.product.prodname_student_pack %} zu bewerben.
{% note %}
**Hinweis:** Es verstößt gegen die {% data variables.product.prodname_dotcom %}-[Nutzungsbedingungen](/articles/github-terms-of-service/#3-account-requirements), mehr als ein persönliches Konto zu verwenden.
{% endnote %}
Falls Du über mehrere persönliche Konten verfügst, musst Du Deine Konten zusammenführen. Um den Rabatt zu erhalten, solltest Du das Konto beibehalten, für das der Rabatt gewährt wurde. Du kannst das beibehaltene Konto umbenennen und Deinen Beitragsverlauf beibehalten. Füge dem beibehaltenen Konto dazu alle Deine E-Mail-Adressen hinzu.
Weitere Informationen findest Du unter:
- „[Mehrere Benutzerkonten zusammenführen](/articles/merging-multiple-user-accounts)“
- „[Deinen {% data variables.product.prodname_dotcom %}-Benutzernamen ändern](/articles/changing-your-github-username)“
- „[E-Mail-Adresse zu Deinem {% data variables.product.prodname_dotcom %}-Konto hinzufügen](/articles/adding-an-email-address-to-your-github-account)“
### Nicht berechtigter Studentenstatus
Du bist nicht für ein {% data variables.product.prodname_student_pack %} berechtigt, falls:
- You're enrolled in an informal learning program that is not part of the [{% data variables.product.prodname_dotcom %} Campus Program](https://education.github.com/schools) and not enrolled in a degree or diploma granting course of study.
- Du weniger als 13 Jahre alt bist.
Dein Kursleiter kann weiterhin einen {% data variables.product.prodname_education %}-Rabatt für die Nutzung in der Ausbildung beantragen. Wenn Du ein Student an einer Codierschule oder in einem Schülercamp bist, hast Du Anspruch auf ein {% data variables.product.prodname_student_pack %}, wenn Deine Bildungseinrichtung dem [{% data variables.product.prodname_dotcom %}-Campus-Programm](https://education.github.com/schools) beitritt.
### Weiterführende Informationen
- „[Ein Studentenentwicklungspaket beantragen](/articles/applying-for-a-student-developer-pack)“
- "[Apply for a student developer pack](/education/explore-the-benefits-of-teaching-and-learning-with-github-education/apply-for-a-student-developer-pack)"

View File

@@ -0,0 +1,46 @@
---
title: Warum wurde mein Antrag auf einen Lehrer- oder Forscherrabatt nicht genehmigt?
intro: Lies die generellen Gründe durch, weshalb Bewerbungen für einen Lehrer- oder Forscherrabatt nicht genehmigt werden, und die Tipps, um die erneute Bewerbung erfolgreich zu gestalten.
redirect_from:
- /education/teach-and-learn-with-github-education/why-wasnt-my-application-for-an-educator-or-researcher-discount-approved
- /github/teaching-and-learning-with-github-education/why-wasnt-my-application-for-an-educator-or-researcher-discount-approved
- /articles/why-was-my-application-for-an-educator-or-researcher-discount-denied/
- /articles/why-wasn-t-my-application-for-an-educator-or-researcher-discount-approved
- /articles/why-wasnt-my-application-for-an-educator-or-researcher-discount-approved
versions:
free-pro-team: '*'
---
{% tip %}
**Tipp:** {% data reusables.education.about-github-education-link %}
{% endtip %}
### Unklare Zugehörigkeitsnachweisdokumente
Falls das von Dir hochgeladene Bild Deine aktuelle Beschäftigung an einer Schule oder Universität nicht zweifelsfrei belegt, musst Du Dich erneut bewerben und ein anderes Bild Deiner Fakultäts-ID oder einen Beschäftigungsnachweis mit eindeutigen Informationen hochladen.
{% data reusables.education.pdf-support %}
### Akademische E-Mail-Adresse mit einer nicht verifizierten Domäne verwenden
Wenn Deine akademische E-Mail-Adresse eine nicht verifizierte Domäne aufweist, fordern wir allenfalls einen weiteren Nachweis Deines akademischen Status an. {% data reusables.education.upload-different-image %}
{% data reusables.education.pdf-support %}
### Akademische E-Mail-Adresse von einer Bildungseinrichtung mit lockeren E-Mail-Richtlinien verwenden
Falls Alumni und pensionierte Lehrkörper Deiner Bildungseinrichtung lebenslang auf die von Deiner Bildungseinrichtung ausgestellten E-Mail-Adressen zugreifen können, fordern wir allenfalls einen weiteren Nachweis Deines akademischen Status an. {% data reusables.education.upload-different-image %}
{% data reusables.education.pdf-support %}
Bei anderen Fragen oder Bedenken zur Domäne der Bildungseinrichtung solltest Du das IT-Personal Deiner Bildungseinrichtung bitten, uns zu kontaktieren.
### Nichtstudent beantragt das Studentenentwicklungspaket
Lehrer und Forscher sind nicht berechtigt für die Partnerangebote, die im Lieferumfang von [{% data variables.product.prodname_student_pack %}](https://education.github.com/pack) enthalten sind. Stelle bei der erneuten Bewerbung sicher, dass Du **Faculty** (Universitätsmitglied) auswählst, um Deinen akademischen Status zu beschreiben.
### Weiterführende Informationen
- "[Apply for an educator or researcher discount](/education/explore-the-benefits-of-teaching-and-learning-with-github-education/apply-for-an-educator-or-researcher-discount)"

View File

@@ -12,8 +12,8 @@ Teachers, students, and researchers can use tools from {% data variables.product
- [Sign up for a new {% data variables.product.prodname_dotcom %} account](/github/getting-started-with-github/signing-up-for-a-new-github-account)
- [Git and {% data variables.product.prodname_dotcom %} quickstart ](/github/getting-started-with-github/quickstart)
- [Apply for an educator or researcher discount](/education/teach-and-learn-with-github-education/apply-for-an-educator-or-researcher-discount)
- [Apply for a student developer pack](/education/teach-and-learn-with-github-education/apply-for-a-student-developer-pack)
- [Apply for an educator or researcher discount](/education/explore-the-benefits-of-teaching-and-learning-with-github-education/apply-for-an-educator-or-researcher-discount)
- [Apply for a student developer pack](/education/explore-the-benefits-of-teaching-and-learning-with-github-education/apply-for-a-student-developer-pack)
### Run a software development course with {% data variables.product.company_short %}
@@ -32,7 +32,7 @@ Administer a classroom, assign and review work from your students, and teach the
Incorporate {% data variables.product.prodname_dotcom %} into your education, and use the same tools as the professionals.
- [Git and {% data variables.product.prodname_dotcom %} learning resources](/github/getting-started-with-github/git-and-github-learning-resources)
- [Use {% data variables.product.prodname_dotcom %} for your schoolwork](/education/teach-and-learn-with-github-education/use-github-for-your-schoolwork)
- [Use {% data variables.product.prodname_dotcom %} for your schoolwork](/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-for-your-schoolwork)
- [Try {% data variables.product.prodname_desktop %}](/desktop)
- [Try {% data variables.product.prodname_cli %}](/github/getting-started-with-github/github-cli)
@@ -41,5 +41,5 @@ Incorporate {% data variables.product.prodname_dotcom %} into your education, an
Participate in the community, get training from {% data variables.product.company_short %}, and learn or teach new skills.
- [{% data variables.product.prodname_education_community %}](https://education.github.community)
- [Informationen zu Campus Experts](/education/teach-and-learn-with-github-education/about-campus-experts)
- [Informationen zu Campus Advisors](/education/teach-and-learn-with-github-education/about-campus-advisors)
- [Informationen zu Campus Experts](/education/explore-the-benefits-of-teaching-and-learning-with-github-education/about-campus-experts)
- [Informationen zu Campus Advisors](/education/explore-the-benefits-of-teaching-and-learning-with-github-education/about-campus-advisors)

View File

@@ -6,16 +6,16 @@ introLinks:
quickstart: /education/quickstart
featuredLinks:
guides:
- /education/teach-and-learn-with-github-education/apply-for-a-student-developer-pack
- /education/teach-and-learn-with-github-education/apply-for-an-educator-or-researcher-discount
- /education/teach-and-learn-with-github-education/use-github-at-your-educational-institution
- /education/explore-the-benefits-of-teaching-and-learning-with-github-education/apply-for-a-student-developer-pack
- /education/explore-the-benefits-of-teaching-and-learning-with-github-education/apply-for-an-educator-or-researcher-discount
- /education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution
guideCards:
- /github/getting-started-with-github/signing-up-for-a-new-github-account
- /github/getting-started-with-github/git-and-github-learning-resources
- /education/manage-coursework-with-github-classroom/basics-of-setting-up-github-classroom
popular:
- /education/teach-and-learn-with-github-education/use-github-for-your-schoolwork
- /education/teach-and-learn-with-github-education/use-github-in-your-classroom-and-research
- /education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-for-your-schoolwork
- /education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-in-your-classroom-and-research
- /desktop
- /github/getting-started-with-github/github-cli
- /education/manage-coursework-with-github-classroom/teach-with-github-classroom
@@ -41,5 +41,5 @@ versions:
free-pro-team: '*'
---
<!-- {% link_with_intro /teach-and-learn-with-github-education %} -->
<!-- {% link_with_intro /explore-the-benefits-of-teaching-and-learning-with-github-education %} -->
<!-- {% link_with_intro /manage-coursework-with-github-classroom %} -->

View File

@@ -30,4 +30,4 @@ For more information about teaching with {% data variables.product.prodname_clas
### Weiterführende Informationen
- "[Teach and learn with {% data variables.product.prodname_education %}](/education/teach-and-learn-with-github-education)"
- "[Explore the benefits of teaching and learning with {% data variables.product.prodname_education %}](/education/teach-and-learn-with-github-education)"

View File

@@ -140,6 +140,6 @@ You can see the teams that are working on or have submitted an assignment in the
### Weiterführende Informationen
- "[Use {% data variables.product.prodname_dotcom %} in your classroom and research](/education/teach-and-learn-with-github-education/use-github-in-your-classroom-and-research)"
- "[Use {% data variables.product.prodname_dotcom %} in your classroom and research](/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-in-your-classroom-and-research)"
- "[Connect a learning management system to {% data variables.product.prodname_classroom %}](/education/manage-coursework-with-github-classroom/connect-a-learning-management-system-to-github-classroom)"
- [Using Existing Teams in Group Assignments?](https://education.github.community/t/using-existing-teams-in-group-assignments/6999) in the {% data variables.product.prodname_education %} Community

View File

@@ -11,8 +11,6 @@ You can use a template repository on {% data variables.product.product_name %} a
To use the template repository for your assignment, the template repository must be owned by your organization, or the visibility of the template repository must be public.
{% data reusables.classroom.you-may-want-to-predefine-repository-settings %} For more information, see "[Configure default settings for assignment repositories](/education/manage-coursework-with-github-classroom/configure-default-settings-for-assignment-repositories)."
### Weiterführende Informationen
- "[Create an individual assignment](/education/manage-coursework-with-github-classroom/create-an-individual-assignment)"

View File

@@ -120,5 +120,5 @@ You can see whether a student has joined the classroom and accepted or submitted
### Weiterführende Informationen
- "[Use {% data variables.product.prodname_dotcom %} in your classroom and research](/education/teach-and-learn-with-github-education/use-github-in-your-classroom-and-research)"
- "[Use {% data variables.product.prodname_dotcom %} in your classroom and research](/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-in-your-classroom-and-research)"
- "[Connect a learning management system to {% data variables.product.prodname_classroom %}](/education/manage-coursework-with-github-classroom/connect-a-learning-management-system-to-github-classroom)"

View File

@@ -19,7 +19,6 @@ versions:
{% link_in_list /create-an-assignment-from-a-template-repository %}
{% link_in_list /leave-feedback-with-pull-requests %}
{% link_in_list /use-autograding %}
{% link_in_list /configure-default-settings-for-assignment-repositories %}
{% link_in_list /connect-a-learning-management-system-to-github-classroom %}
{% topic_link_in_list /integrate-github-classroom-with-an-ide %}

View File

@@ -4,5 +4,8 @@ intro: Learn how to set up your classroom and assignments.
mapTopic: true
versions:
free-pro-team: '*'
redirect_from:
- /education/manage-coursework-with-github-classroom/configure-default-settings-for-assignment-repositories
- /education/manage-coursework-with-github-classroom/probot-settings
---

Some files were not shown because too many files have changed in this diff Show More