Merge branch 'main' into late-april-patch-release-notes
This commit is contained in:
BIN
assets/images/help/commits/signature-verification-statuses.png
Normal file
BIN
assets/images/help/commits/signature-verification-statuses.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 177 KiB |
BIN
assets/images/help/commits/vigilant-mode-checkbox.png
Normal file
BIN
assets/images/help/commits/vigilant-mode-checkbox.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 52 KiB |
BIN
assets/images/help/repository/readme-automatic-toc-setting.png
Normal file
BIN
assets/images/help/repository/readme-automatic-toc-setting.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 360 KiB |
BIN
assets/images/help/repository/readme-automatic-toc.png
Normal file
BIN
assets/images/help/repository/readme-automatic-toc.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 175 KiB |
@@ -86,7 +86,7 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: Setup dotnet ${{ matrix.dotnet-version }}
|
- name: Setup dotnet ${{ matrix.dotnet-version }}
|
||||||
uses: actions/setup-dotnet@v1.7.2
|
uses: actions/setup-dotnet@v1
|
||||||
with:
|
with:
|
||||||
dotnet-version: ${{ matrix.dotnet-version }}
|
dotnet-version: ${{ matrix.dotnet-version }}
|
||||||
# You can test your matrix by printing the current dotnet version
|
# You can test your matrix by printing the current dotnet version
|
||||||
@@ -102,7 +102,7 @@ You can configure your job to use a specific version of .NET, such as `3.1.3`. A
|
|||||||
{% raw %}
|
{% raw %}
|
||||||
```yaml
|
```yaml
|
||||||
- name: Setup .NET 3.x
|
- name: Setup .NET 3.x
|
||||||
uses: actions/setup-dotnet@v2
|
uses: actions/setup-dotnet@v1
|
||||||
with:
|
with:
|
||||||
# Semantic version range syntax or exact version of a dotnet version
|
# Semantic version range syntax or exact version of a dotnet version
|
||||||
dotnet-version: '3.x'
|
dotnet-version: '3.x'
|
||||||
@@ -118,7 +118,7 @@ You can configure your job to use a specific version of .NET, such as `3.1.3`. A
|
|||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: Setup dotnet
|
- name: Setup dotnet
|
||||||
uses: actions/setup-dotnet@v1.7.2
|
uses: actions/setup-dotnet@v1
|
||||||
with:
|
with:
|
||||||
dotnet-version: '3.1.x'
|
dotnet-version: '3.1.x'
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
@@ -139,7 +139,7 @@ For more information, see "[Caching dependencies to speed up workflows](/actions
|
|||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: Setup dotnet
|
- name: Setup dotnet
|
||||||
uses: actions/setup-dotnet@v1.7.2
|
uses: actions/setup-dotnet@v1
|
||||||
with:
|
with:
|
||||||
dotnet-version: '3.1.x'
|
dotnet-version: '3.1.x'
|
||||||
- uses: actions/cache@v2
|
- uses: actions/cache@v2
|
||||||
@@ -171,7 +171,7 @@ You can use the same commands that you use locally to build and test your code.
|
|||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: Setup dotnet
|
- name: Setup dotnet
|
||||||
uses: actions/setup-dotnet@v1.7.2
|
uses: actions/setup-dotnet@v1
|
||||||
with:
|
with:
|
||||||
dotnet-version: '3.1.x'
|
dotnet-version: '3.1.x'
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
@@ -206,7 +206,7 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: Setup dotnet
|
- name: Setup dotnet
|
||||||
uses: actions/setup-dotnet@v1.7.2
|
uses: actions/setup-dotnet@v1
|
||||||
with:
|
with:
|
||||||
dotnet-version: ${{ matrix.dotnet-version }}
|
dotnet-version: ${{ matrix.dotnet-version }}
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
|
|||||||
@@ -0,0 +1,122 @@
|
|||||||
|
---
|
||||||
|
title: Building and testing Xamarin applications
|
||||||
|
intro: You can create a continuous integration (CI) workflow in GitHub Actions to build and test your Xamarin application.
|
||||||
|
product: '{% data reusables.gated-features.actions %}'
|
||||||
|
versions:
|
||||||
|
free-pro-team: '*'
|
||||||
|
enterprise-server: '>=2.22'
|
||||||
|
github-ae: '*'
|
||||||
|
type: 'tutorial'
|
||||||
|
topics:
|
||||||
|
- 'CI'
|
||||||
|
- 'Xamarin'
|
||||||
|
- 'Xamarin.iOS'
|
||||||
|
- 'Xamarin.Android'
|
||||||
|
- 'Android'
|
||||||
|
- 'iOS'
|
||||||
|
---
|
||||||
|
|
||||||
|
{% data reusables.actions.enterprise-beta %}
|
||||||
|
{% data reusables.actions.enterprise-github-hosted-runners %}
|
||||||
|
{% data reusables.actions.ae-beta %}
|
||||||
|
|
||||||
|
### Introduction
|
||||||
|
|
||||||
|
This guide shows you how to create a workflow that performs continuous integration (CI) for your Xamarin project. The workflow you create will allow you to see when commits to a pull request cause build or test failures against your default branch; this approach can help ensure that your code is always healthy.
|
||||||
|
|
||||||
|
{% data variables.product.prodname_actions %}-hosted macOS runner stores Xamarin SDK versions and the associated Mono versions as a set of symlinks to Xamarin SDK locations that are available by a single bundle symlink. For a full list of available Xamarin SDK versions and their corresponding bundles, see the runners documentation:
|
||||||
|
|
||||||
|
* [macOS 10.15](https://github.com/actions/virtual-environments/blob/main/images/macos/macos-10.15-Readme.md#xamarin-bundles)
|
||||||
|
* [macOS 11.0](https://github.com/actions/virtual-environments/blob/main/images/macos/macos-11.0-Readme.md#xamarin-bundles)
|
||||||
|
|
||||||
|
{% data reusables.github-actions.macos-runner-preview %}
|
||||||
|
|
||||||
|
### Prerequisites
|
||||||
|
|
||||||
|
We recommend that you have a basic understanding of Xamarin, .NET Core SDK, YAML, workflow configuration options, and how to create a workflow file. For more information, see:
|
||||||
|
|
||||||
|
- "[Workflow syntax for {% data variables.product.prodname_actions %}](/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions)"
|
||||||
|
- "[Getting started with .NET](https://dotnet.microsoft.com/learn)"
|
||||||
|
- "[Learn Xamarin](https://dotnet.microsoft.com/learn/xamarin)"
|
||||||
|
|
||||||
|
### Bulding Xamarin.iOS apps
|
||||||
|
|
||||||
|
The example below demonstrates how to change the default Xamarin bundle and build a Xamarin.iOS application.
|
||||||
|
|
||||||
|
{% raw %}
|
||||||
|
```yaml
|
||||||
|
name: Build Xamarin.iOS app
|
||||||
|
|
||||||
|
on: [push]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
|
||||||
|
runs-on: macos-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Select default Xamarin bundle to 6_12_6
|
||||||
|
run: |
|
||||||
|
XAMARIN_SDK=6_12_6
|
||||||
|
$VM_ASSETS/select-xamarin-sdk.sh $XAMARIN_SDK
|
||||||
|
|
||||||
|
- name: Set default Xcode 12.3
|
||||||
|
run: |
|
||||||
|
XCODE_ROOT=/Applications/Xcode_12.3.0.app
|
||||||
|
echo "MD_APPLE_SDK_ROOT=$XCODE_ROOT" >> $GITHUB_ENV
|
||||||
|
sudo xcode-select -s $XCODE_ROOT
|
||||||
|
|
||||||
|
- name: Setup .NET Core SDK 5.0.x
|
||||||
|
uses: actions/setup-dotnet@v1
|
||||||
|
with:
|
||||||
|
dotnet-version: '5.0.x'
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: nuget restore <sln_file_path>
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
run: msbuild <csproj_file_path> /p:Configuration=Debug /p:Platform=iPhoneSimulator /t:Rebuild
|
||||||
|
```
|
||||||
|
{% endraw %}
|
||||||
|
|
||||||
|
### Bulding Xamarin.Android apps
|
||||||
|
|
||||||
|
The example below demonstrates how to change default the Xamarin bundle and build a Xamarin.Android application.
|
||||||
|
|
||||||
|
{% raw %}
|
||||||
|
```yaml
|
||||||
|
name: Build Xamarin.Android app
|
||||||
|
|
||||||
|
on: [push]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
|
||||||
|
runs-on: macos-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Select default Xamarin bundle to 6_12_6
|
||||||
|
run: |
|
||||||
|
XAMARIN_SDK=6_12_6
|
||||||
|
$VM_ASSETS/select-xamarin-sdk.sh $XAMARIN_SDK
|
||||||
|
|
||||||
|
- name: Setup .NET Core SDK 5.0.x
|
||||||
|
uses: actions/setup-dotnet@v1
|
||||||
|
with:
|
||||||
|
dotnet-version: '5.0.x'
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: nuget restore <sln_file_path>
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
run: msbuild <csproj_file_path> /t:PackageForAndroid /p:Configuration=Debug
|
||||||
|
```
|
||||||
|
{% endraw %}
|
||||||
|
|
||||||
|
### Specifying a .NET version
|
||||||
|
|
||||||
|
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-net-core-sdk) action.
|
||||||
@@ -42,6 +42,7 @@ includeGuides:
|
|||||||
- /actions/guides/building-and-testing-java-with-maven
|
- /actions/guides/building-and-testing-java-with-maven
|
||||||
- /actions/guides/building-and-testing-java-with-gradle
|
- /actions/guides/building-and-testing-java-with-gradle
|
||||||
- /actions/guides/building-and-testing-java-with-ant
|
- /actions/guides/building-and-testing-java-with-ant
|
||||||
|
- /actions/guides/building-and-testing-xamarin-applications
|
||||||
- /actions/guides/installing-an-apple-certificate-on-macos-runners-for-xcode-development
|
- /actions/guides/installing-an-apple-certificate-on-macos-runners-for-xcode-development
|
||||||
- /actions/guides/publishing-nodejs-packages
|
- /actions/guides/publishing-nodejs-packages
|
||||||
- /actions/guides/publishing-java-packages-with-maven
|
- /actions/guides/publishing-java-packages-with-maven
|
||||||
@@ -84,6 +85,7 @@ includeGuides:
|
|||||||
<!-- {% link_in_list /building-and-testing-java-with-gradle %} -->
|
<!-- {% link_in_list /building-and-testing-java-with-gradle %} -->
|
||||||
<!-- {% link_in_list /building-and-testing-java-with-ant %} -->
|
<!-- {% link_in_list /building-and-testing-java-with-ant %} -->
|
||||||
<!-- {% link_in_list /installing-an-apple-certificate-on-macos-runners-for-xcode-development %} -->
|
<!-- {% link_in_list /installing-an-apple-certificate-on-macos-runners-for-xcode-development %} -->
|
||||||
|
<!-- {% link_in_list /building-and-testing-xamarin-applications %} -->
|
||||||
<!-- {% link_in_list /about-packaging-with-github-actions %} -->
|
<!-- {% link_in_list /about-packaging-with-github-actions %} -->
|
||||||
<!-- {% link_in_list /publishing-nodejs-packages %} -->
|
<!-- {% link_in_list /publishing-nodejs-packages %} -->
|
||||||
<!-- {% link_in_list /publishing-java-packages-with-maven %} -->
|
<!-- {% link_in_list /publishing-java-packages-with-maven %} -->
|
||||||
|
|||||||
37
content/admin/all-releases.md
Normal file
37
content/admin/all-releases.md
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
---
|
||||||
|
title: GitHub Enterprise Server releases
|
||||||
|
intro: Documentation for the currently supported and previously deprecated versions of {{ site.data.variables.product.prodname_ghe_server }}.
|
||||||
|
allowTitleToDifferFromFilename: true
|
||||||
|
versions:
|
||||||
|
enterprise-server: '*'
|
||||||
|
topics:
|
||||||
|
- enterprise
|
||||||
|
---
|
||||||
|
|
||||||
|
## Currently supported
|
||||||
|
|
||||||
|
See [{% data variables.product.prodname_enterprise %}](https://github.com/enterprise) for information about the latest release.
|
||||||
|
|
||||||
|
{% for supportedRelease in enterpriseServerReleases.supported %}
|
||||||
|
- [{% data variables.product.prodname_ghe_server %} {{supportedRelease}}](/enterprise-server@{{supportedRelease}})
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
## Deprecated
|
||||||
|
|
||||||
|
Documentation for deprecated versions remains available but is no longer maintained.
|
||||||
|
|
||||||
|
{% for deprecatedRelease in enterpriseServerReleases.deprecatedReleasesWithNewFormat %}
|
||||||
|
- [Enterprise Server {{deprecatedRelease}}](/enterprise-server@{{deprecatedRelease}})
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{% for deprecatedReleaseLegacyFormat in enterpriseServerReleases.deprecatedReleasesWithLegacyFormat %}
|
||||||
|
- [Enterprise Server {{deprecatedReleaseLegacyFormat}}](/enterprise/{{deprecatedReleaseLegacyFormat}})
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
## Deprecated developer documentation
|
||||||
|
|
||||||
|
Developer documentation for deprecated versions remains available but is no longer maintained.
|
||||||
|
|
||||||
|
{% for deprecatedDevRelease in enterpriseServerReleases.deprecatedReleasesOnDeveloperSite %}
|
||||||
|
- [Enterprise Server {{deprecatedDevRelease}}](https://developer.github.com/enterprise/{{deprecatedDevRelease}})
|
||||||
|
{% endfor %}
|
||||||
@@ -30,3 +30,5 @@ versions:
|
|||||||
{% link_with_intro /enterprise-support %}
|
{% link_with_intro /enterprise-support %}
|
||||||
|
|
||||||
{% link_with_intro /release-notes %}
|
{% link_with_intro /release-notes %}
|
||||||
|
|
||||||
|
{% link_with_intro /all-releases %}
|
||||||
|
|||||||
@@ -47,6 +47,8 @@ For each branch protection rule, you can choose to enable or disable the followi
|
|||||||
- [Allow force pushes](#allow-force-pushes)
|
- [Allow force pushes](#allow-force-pushes)
|
||||||
- [Allow deletions](#allow-deletions)
|
- [Allow deletions](#allow-deletions)
|
||||||
|
|
||||||
|
For more information on how to set up branch protection, see "[Managing a branch protection rule](/github/administering-a-repository/managing-a-branch-protection-rule)."
|
||||||
|
|
||||||
#### Require pull request reviews before merging
|
#### Require pull request reviews before merging
|
||||||
|
|
||||||
{% data reusables.pull_requests.required-reviews-for-prs-summary %}
|
{% data reusables.pull_requests.required-reviews-for-prs-summary %}
|
||||||
@@ -100,7 +102,15 @@ When you enable required commit signing on a branch, contributors {% if currentV
|
|||||||
|
|
||||||
{% note %}
|
{% note %}
|
||||||
|
|
||||||
|
{% if currentVersion == "free-pro-team@latest" %}
|
||||||
|
**Notes:**
|
||||||
|
|
||||||
|
* If you have enabled vigilant mode, which indicates that your commits will always be signed, any commits that {% data variables.product.prodname_dotcom %} identifies as "Partially verified" are permitted on branches that require signed commits. For more information about vigilant mode, see "[Displaying verification statuses for all of your commits](/github/authenticating-to-github/displaying-verification-statuses-for-all-of-your-commits)."
|
||||||
|
* If a collaborator pushes an unsigned commit to a branch that requires commit signatures, the collaborator will need to rebase the commit to include a verified signature, then force push the rewritten commit to the branch.
|
||||||
|
|
||||||
|
{% else %}
|
||||||
**Note:** If a collaborator pushes an unsigned commit to a branch that requires commit signatures, the collaborator will need to rebase the commit to include a verified signature, then force push the rewritten commit to the branch.
|
**Note:** If a collaborator pushes an unsigned commit to a branch that requires commit signatures, the collaborator will need to rebase the commit to include a verified signature, then force push the rewritten commit to the branch.
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{% endnote %}
|
{% endnote %}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: About commit signature verification
|
title: About commit signature verification
|
||||||
intro: 'Using GPG or S/MIME, you can sign tags and commits locally. These tags or commits are marked as verified on {% data variables.product.product_name %} so other people can trust that the changes come from a trusted source.'
|
intro: 'Using GPG or S/MIME, you can sign tags and commits locally. These tags or commits are marked as verified on {% data variables.product.product_name %} so other people can be confident that the changes come from a trusted source.'
|
||||||
redirect_from:
|
redirect_from:
|
||||||
- /articles/about-gpg-commit-and-tag-signatures/
|
- /articles/about-gpg-commit-and-tag-signatures/
|
||||||
- /articles/about-gpg/
|
- /articles/about-gpg/
|
||||||
@@ -16,15 +16,34 @@ topics:
|
|||||||
|
|
||||||
### About commit signature verification
|
### About commit signature verification
|
||||||
|
|
||||||
You can sign commits and tags locally, so other people can verify that your work comes from a trusted source. If a commit or tag has a GPG or S/MIME signature that is cryptographically verifiable, {% data variables.product.product_name %} marks the commit or tag as verified.
|
You can sign commits and tags locally, to give other people confidence about the origin of a change you have made. If a commit or tag has a GPG or S/MIME signature that is cryptographically verifiable, GitHub marks the commit or tag {% if currentVersion == "free-pro-team@latest" %}"Verified" or "Partially verified."{% else %}"Verified."{% endif %}
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
If a commit or tag has a signature that cannot be verified, {% data variables.product.product_name %} marks the commit or tag as unverified.
|
{% if currentVersion == "free-pro-team@latest" %}
|
||||||
|
Commits and tags have the following verification statuses, depending on whether you have enabled vigilant mode. By default vigilant mode is not enabled. For information on how to enable vigilant mode, see "[Displaying verification statuses for all of your commits](/github/authenticating-to-github/displaying-verification-statuses-for-all-of-your-commits)."
|
||||||
|
|
||||||
|
{% data reusables.identity-and-permissions.vigilant-mode-beta-note %}
|
||||||
|
|
||||||
|
#### Default statuses
|
||||||
|
|
||||||
|
| Status | Description |
|
||||||
|
| -------------- | ----------- |
|
||||||
|
| **Verified** | The commit is signed and the signature was successfully verified.
|
||||||
|
| **Unverified** | The commit is signed but the signature could not be verified.
|
||||||
|
| No verification status | The commit is not signed.
|
||||||
|
|
||||||
|
#### Statuses with vigilant mode enabled
|
||||||
|
|
||||||
|
{% data reusables.identity-and-permissions.vigilant-mode-verification-statuses %}
|
||||||
|
|
||||||
|
{% else %}
|
||||||
|
If a commit or tag has a signature that can't be verified, {% data variables.product.product_name %} marks the commit or tag "Unverified."
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
Repository administrators can enforce required commit signing on a branch to block all commits that are not signed and verified. For more information, see "[About protected branches](/github/administering-a-repository/about-protected-branches#require-signed-commits)."
|
Repository administrators can enforce required commit signing on a branch to block all commits that are not signed and verified. For more information, see "[About protected branches](/github/administering-a-repository/about-protected-branches#require-signed-commits)."
|
||||||
|
|
||||||
You can check the verification status of your signed commits or tags on {% data variables.product.product_name %} and view why your commit signatures might be unverified. For more information, see "[Checking your commit and tag signature verification status](/articles/checking-your-commit-and-tag-signature-verification-status)."
|
{% data reusables.identity-and-permissions.verification-status-check %}
|
||||||
|
|
||||||
{% if currentVersion == "free-pro-team@latest" %}
|
{% if currentVersion == "free-pro-team@latest" %}
|
||||||
{% data variables.product.product_name %} will automatically use GPG to sign commits you make using the {% data variables.product.product_name %} web interface, except for when you squash and merge a pull request that you are not the author of. You can optionally choose to have {% data variables.product.product_name %} sign commits you make in {% data variables.product.prodname_codespaces %}. Commits signed by {% data variables.product.product_name %} will have a verified status on {% data variables.product.product_name %}. You can verify the signature locally using the public key available at https://github.com/web-flow.gpg. For more information about enabling GPG verification for your codespaces, see "[Managing GPG verification for {% data variables.product.prodname_codespaces %}](/github/developing-online-with-codespaces/managing-gpg-verification-for-codespaces)."
|
{% data variables.product.product_name %} will automatically use GPG to sign commits you make using the {% data variables.product.product_name %} web interface, except for when you squash and merge a pull request that you are not the author of. You can optionally choose to have {% data variables.product.product_name %} sign commits you make in {% data variables.product.prodname_codespaces %}. Commits signed by {% data variables.product.product_name %} will have a verified status on {% data variables.product.product_name %}. You can verify the signature locally using the public key available at https://github.com/web-flow.gpg. For more information about enabling GPG verification for your codespaces, see "[Managing GPG verification for {% data variables.product.prodname_codespaces %}](/github/developing-online-with-codespaces/managing-gpg-verification-for-codespaces)."
|
||||||
|
|||||||
@@ -17,23 +17,20 @@ topics:
|
|||||||
|
|
||||||
1. On {% data variables.product.product_name %}, navigate to your pull request.
|
1. On {% data variables.product.product_name %}, navigate to your pull request.
|
||||||
{% data reusables.repositories.review-pr-commits %}
|
{% data reusables.repositories.review-pr-commits %}
|
||||||
3. Next to your commit's abbreviated commit hash, there is a box that shows whether your commit signature is verified or unverified.
|
3. Next to your commit's abbreviated commit hash, there is a box that shows whether your commit signature is verified{% if currentVersion == "free-pro-team@latest" %}, partially verified,{% endif %} or unverified.
|
||||||

|

|
||||||
4. To view more detailed information about the commit signature, click **Verified** or **Unverified**.
|
4. To view more detailed information about the commit signature, click **Verified**{% if currentVersion == "free-pro-team@latest" %}, **Partially verified**,{% endif %} or **Unverified**.
|
||||||

|

|
||||||
|
|
||||||
If your commit signature is unverified, you can learn more about why by clicking the **Unverified** box.
|
|
||||||

|
|
||||||
|
|
||||||
### Checking your tag signature verification status
|
### Checking your tag signature verification status
|
||||||
|
|
||||||
{% data reusables.repositories.navigate-to-repo %}
|
{% data reusables.repositories.navigate-to-repo %}
|
||||||
{% data reusables.repositories.releases %}
|
{% data reusables.repositories.releases %}
|
||||||
2. At the top of the Releases page, click **Tags**.
|
2. At the top of the Releases page, click **Tags**.
|
||||||

|

|
||||||
3. Next to your tag description, there is a box that shows whether your tag signature is verified or unverified.
|
3. Next to your tag description, there is a box that shows whether your tag signature is verified{% if currentVersion == "free-pro-team@latest" %}, partially verified,{% endif %} or unverified.
|
||||||

|

|
||||||
4. To view more detailed information about the tag signature, click **Verified** or **Unverified**. If your tag signature is unverified, you can learn more about why by clicking the **Unverified** box.
|
4. To view more detailed information about the tag signature, click **Verified**{% if currentVersion == "free-pro-team@latest" %}, **Partially verified**,{% endif %} or **Unverified**.
|
||||||

|

|
||||||
|
|
||||||
### Further reading
|
### Further reading
|
||||||
|
|||||||
@@ -0,0 +1,36 @@
|
|||||||
|
---
|
||||||
|
title: Displaying verification statuses for all of your commits
|
||||||
|
shortTitle: Displaying verification for all commits
|
||||||
|
intro: You can enable vigilant mode for commit signature verification to mark all of your commits and tags with a signature verification status.
|
||||||
|
versions:
|
||||||
|
free-pro-team: '*'
|
||||||
|
topics:
|
||||||
|
- identity
|
||||||
|
- access management
|
||||||
|
---
|
||||||
|
|
||||||
|
{% data reusables.identity-and-permissions.vigilant-mode-beta-note %}
|
||||||
|
|
||||||
|
### About vigilant mode
|
||||||
|
|
||||||
|
When you work locally on your computer, Git allows you to set the author of your changes and the identity of the committer. This, potentially, makes it difficult for other people to be confident that commits and tags you create were actually created by you. To help solve this problem you can sign your commits and tags. For more information, see "[Signing commits](/github/authenticating-to-github/signing-commits)" and "[Signing tags](/github/authenticating-to-github/signing-tags)." {% data variables.product.prodname_dotcom %} marks signed commits and tags with a verification status.
|
||||||
|
|
||||||
|
By default commits and tags are marked "Verified" if they are signed with a GPG or S/MIME key that was successfully verified. If a commit or tag has a signature that can't be verified, {% data variables.product.prodname_dotcom %} marks the commit or tag "Unverified." In all other cases no verification status is displayed.
|
||||||
|
|
||||||
|
However, you can give other users increased confidence in the identity attributed to your commits and tags by enabling vigilant mode in your {% data variables.product.prodname_dotcom %} settings. With vigilant mode enabled, all of your commits and tags are marked with one of three verification statuses.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
{% data reusables.identity-and-permissions.vigilant-mode-verification-statuses %}
|
||||||
|
|
||||||
|
You should only enable vigilant mode if you sign all of your commits and tags. After enabling this mode, any unsigned commits or tags that you generate locally and push to {% data variables.product.prodname_dotcom %} will be marked "Unverified."
|
||||||
|
|
||||||
|
{% data reusables.identity-and-permissions.verification-status-check %}
|
||||||
|
|
||||||
|
### Enabling vigilant mode
|
||||||
|
|
||||||
|
{% data reusables.user_settings.access_settings %}
|
||||||
|
{% data reusables.user_settings.ssh %}
|
||||||
|
3. On the SSH Settings page, under "Vigilant mode," select **Flag unsigned commits as unverified**.
|
||||||
|
|
||||||
|

|
||||||
@@ -82,6 +82,7 @@ topics:
|
|||||||
{% link_in_list /error-were-doing-an-ssh-key-audit %}
|
{% link_in_list /error-were-doing-an-ssh-key-audit %}
|
||||||
{% topic_link_in_list /managing-commit-signature-verification %}
|
{% topic_link_in_list /managing-commit-signature-verification %}
|
||||||
{% link_in_list /about-commit-signature-verification %}
|
{% link_in_list /about-commit-signature-verification %}
|
||||||
|
{% link_in_list /displaying-verification-statuses-for-all-of-your-commits %}
|
||||||
{% link_in_list /checking-for-existing-gpg-keys %}
|
{% link_in_list /checking-for-existing-gpg-keys %}
|
||||||
{% link_in_list /generating-a-new-gpg-key %}
|
{% link_in_list /generating-a-new-gpg-key %}
|
||||||
{% link_in_list /adding-a-new-gpg-key-to-your-github-account %}
|
{% link_in_list /adding-a-new-gpg-key-to-your-github-account %}
|
||||||
|
|||||||
@@ -42,9 +42,22 @@ If you put your README file in your repository's root, `docs`, or hidden `.githu
|
|||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
### Auto-generated table of contents for README files
|
||||||
|
|
||||||
|
For the rendered view of any Markdown file in a repository, including README files, {% data variables.product.product_name %} will automatically generate a table of contents based on section headings. You can view the table of contents for a README file by clicking the {% octicon "list-unordered" aria-label="The unordered list icon" %} menu icon at the top left of the rendered page.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
The auto-generated table of contents is enabled by default for all Markdown files in a repository, but you can disable this feature for your repository.
|
||||||
|
|
||||||
|
{% data reusables.repositories.navigate-to-repo %}
|
||||||
|
{% data reusables.repositories.sidebar-settings %}
|
||||||
|
1. Under "Features", deselect **Table of contents**.
|
||||||
|

|
||||||
|
|
||||||
### Section links in README files and blob pages
|
### Section links in README files and blob pages
|
||||||
|
|
||||||
Many projects use a table of contents at the start of a README to direct users to different sections of the file. {% data reusables.repositories.section-links %}
|
{% data reusables.repositories.section-links %}
|
||||||
|
|
||||||
### Relative links and image paths in README files
|
### Relative links and image paths in README files
|
||||||
|
|
||||||
|
|||||||
@@ -12,18 +12,4 @@ topics:
|
|||||||
|
|
||||||
{% data reusables.codespaces.about-billing-for-codespaces %}
|
{% data reusables.codespaces.about-billing-for-codespaces %}
|
||||||
|
|
||||||
Compute costs are incurred only when a codespace is active. When you're using a codespace, the codespace is active. After 30 minutes of inactivity, a codespace becomes suspended automatically.
|
Updates on the billing model for Codespaces will be shared in an upcoming announcement.
|
||||||
|
|
||||||
Compute usage is billed per hour, at a rate that depends on your codespace's instance type. During the beta, {% data variables.product.prodname_codespaces %} offers a single, Linux instance type. At general availability, we'll support three Linux instance types.
|
|
||||||
|
|
||||||
| Instance Type (Linux) | Per-hour rate |
|
|
||||||
| --------------------------------------- | ------------- |
|
|
||||||
| Basic (2 cores, 4GB RAM, 32 GB SSD) | $0.085 |
|
|
||||||
| Standard (4 cores, 8 GB RAM, 32 GB SSD) | $0.169 |
|
|
||||||
| Premium (8 cores, 16 GB RAM, 32 GB SSD) | $0.339 |
|
|
||||||
|
|
||||||
Compute pricing may vary for additional instance types and operating systems supported in the future.
|
|
||||||
|
|
||||||
Each codespace also incurs monthly storage costs until you delete the codespace. Storage costs for all instance types are $0.10/GB-month.
|
|
||||||
|
|
||||||
We'll share more information about any compute and storage usage included in each plan at general availability.
|
|
||||||
@@ -122,7 +122,7 @@ When you participate in certain programs, {% data variables.product.prodname_dot
|
|||||||
|
|
||||||
| Badge | Program | Description |
|
| Badge | Program | Description |
|
||||||
| --- | --- | --- |
|
| --- | --- | --- |
|
||||||
|  | **Mars 2020 Helicopter Contributor** | If you authored any commit(s) on the default branch up to the relevant version of an open source library used in the Mars 2020 Helicopter Mission, you'll get a Mars 2020 Helicopter Contributor badge on your profile. Hovering over the badge shows you several of the repositories you contributed to that were used in the mission. For the full list of repositories that will qualify you for the badge, see "[List of qualifying repositories for Mars 2020 Helicopter Contributor badge](/github/setting-up-and-managing-your-github-profile/personalizing-your-profile#list-of-qualifying-repositories-for-mars-2020-helicopter-contributor-badge)." |
|
|  | **Mars 2020 Helicopter Contributor** | If you authored any commit(s) present in the commit history for the relevant tag of an open source library used in the Mars 2020 Helicopter Mission, you'll get a Mars 2020 Helicopter Contributor badge on your profile. Hovering over the badge shows you several of the repositories you contributed to that were used in the mission. For the full list of repositories that will qualify you for the badge, see "[List of qualifying repositories for Mars 2020 Helicopter Contributor badge](/github/setting-up-and-managing-your-github-profile/personalizing-your-profile#list-of-qualifying-repositories-for-mars-2020-helicopter-contributor-badge)." |
|
||||||
|  | **{% data variables.product.prodname_arctic_vault %} Contributor** | If you authored any commit(s) on the default branch of a repository that was archived in the 2020 Arctic Vault program, you'll get an {% data variables.product.prodname_arctic_vault %} Contributor badge on your profile. Hovering over the badge shows you several of the repositories you contributed to that were part of the program. For more information on the program, see [{% data variables.product.prodname_archive %}](https://archiveprogram.github.com). |
|
|  | **{% data variables.product.prodname_arctic_vault %} Contributor** | If you authored any commit(s) on the default branch of a repository that was archived in the 2020 Arctic Vault program, you'll get an {% data variables.product.prodname_arctic_vault %} Contributor badge on your profile. Hovering over the badge shows you several of the repositories you contributed to that were part of the program. For more information on the program, see [{% data variables.product.prodname_archive %}](https://archiveprogram.github.com). |
|
||||||
|  | **{% data variables.product.prodname_dotcom %} Sponsor** | If you sponsored an open source contributor through {% data variables.product.prodname_sponsors %} you'll get a {% data variables.product.prodname_dotcom %} Sponsor badge on your profile. Clicking the badge takes you to the **Sponsoring** tab of your profile. For more information, see "[Sponsoring open source contributors](/github/supporting-the-open-source-community-with-github-sponsors/sponsoring-open-source-contributors)." |
|
|  | **{% data variables.product.prodname_dotcom %} Sponsor** | If you sponsored an open source contributor through {% data variables.product.prodname_sponsors %} you'll get a {% data variables.product.prodname_dotcom %} Sponsor badge on your profile. Clicking the badge takes you to the **Sponsoring** tab of your profile. For more information, see "[Sponsoring open source contributors](/github/supporting-the-open-source-community-with-github-sponsors/sponsoring-open-source-contributors)." |
|
||||||
| {% octicon "cpu" aria-label="The Developer Program icon" %} | **Developer Program Member** | If you're a registered member of the {% data variables.product.prodname_dotcom %} Developer Program, building an app with the {% data variables.product.prodname_dotcom %} API, you'll get a Developer Program Member badge on your profile. For more information on the {% data variables.product.prodname_dotcom %} Developer Program, see [GitHub Developer](/program/). |
|
| {% octicon "cpu" aria-label="The Developer Program icon" %} | **Developer Program Member** | If you're a registered member of the {% data variables.product.prodname_dotcom %} Developer Program, building an app with the {% data variables.product.prodname_dotcom %} API, you'll get a Developer Program Member badge on your profile. For more information on the {% data variables.product.prodname_dotcom %} Developer Program, see [GitHub Developer](/program/). |
|
||||||
|
|||||||
@@ -158,7 +158,8 @@ You can communicate that a transient environment no longer exists by setting its
|
|||||||
{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.1" or currentVersion == "github-ae@next" %}
|
{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.1" or currentVersion == "github-ae@next" %}
|
||||||
## Environments
|
## Environments
|
||||||
|
|
||||||
The Environments API allows you to create, configure, and delete environments. For more information about environments, see "[Environments](/actions/reference/environments)."
|
The Environments API allows you to create, configure, and delete environments. For more information about environments, see "[Environments](/actions/reference/environments)." To manage environment secrets, see "[Secrets](/rest/reference/actions#secrets)."
|
||||||
|
|
||||||
{% for operation in currentRestOperations %}
|
{% for operation in currentRestOperations %}
|
||||||
{% if operation.subcategory == 'environments' %}{% include rest_operation %}{% endif %}
|
{% if operation.subcategory == 'environments' %}{% include rest_operation %}{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ module.exports = [
|
|||||||
'2fa',
|
'2fa',
|
||||||
'Action development',
|
'Action development',
|
||||||
'Amazon ECS',
|
'Amazon ECS',
|
||||||
|
'Android',
|
||||||
'Ant',
|
'Ant',
|
||||||
'Analytics',
|
'Analytics',
|
||||||
'API',
|
'API',
|
||||||
@@ -31,6 +32,7 @@ module.exports = [
|
|||||||
'Google Kubernetes Engine',
|
'Google Kubernetes Engine',
|
||||||
'Gradle',
|
'Gradle',
|
||||||
'GraphQL',
|
'GraphQL',
|
||||||
|
'iOS',
|
||||||
'Java',
|
'Java',
|
||||||
'JavaScript',
|
'JavaScript',
|
||||||
'Jenkins',
|
'Jenkins',
|
||||||
@@ -92,5 +94,8 @@ module.exports = [
|
|||||||
'teams',
|
'teams',
|
||||||
'usernames',
|
'usernames',
|
||||||
'webhooks', // replace this with Webhooks
|
'webhooks', // replace this with Webhooks
|
||||||
|
'Xamarin',
|
||||||
|
'Xamarin.iOS',
|
||||||
|
'Xamarin.Android',
|
||||||
'Xcode'
|
'Xcode'
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
You can check the verification status of your signed commits or tags on {% data variables.product.product_name %} and view why your commit signatures might be unverified. For more information, see "[Checking your commit and tag signature verification status](/articles/checking-your-commit-and-tag-signature-verification-status)."
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
{% note %}
|
||||||
|
|
||||||
|
**Note:** Vigilant mode is currently in beta and subject to change.
|
||||||
|
|
||||||
|
{% endnote %}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
| Status | Description |
|
||||||
|
| -------------- | ----------- |
|
||||||
|
| **Verified** | The commit is signed, the signature was successfully verified, and the committer is the only author who has enabled vigilant mode.
|
||||||
|
| **Partially verified** | The commit is signed, and the signature was successfully verified, but the commit has an author who: a) is not the committer and b) has enabled vigilant mode. In this case, the commit signature doesn't guarantee the consent of the author, so the commit is only partially verified.
|
||||||
|
| **Unverified** | Any of the following is true:<br>- The commit is signed but the signature could not be verified.<br>- The commit is not signed and the committer has enabled vigilant mode.<br>- The commit is not signed and an author has enabled vigilant mode.<br>
|
||||||
@@ -64,14 +64,6 @@ contribution_cta:
|
|||||||
button: Make a contribution
|
button: Make a contribution
|
||||||
or: Or,
|
or: Or,
|
||||||
to_guidelines: learn how to contribute.
|
to_guidelines: learn how to contribute.
|
||||||
enterprise_releases_list:
|
|
||||||
title: Enterprise Server Releases
|
|
||||||
currently_supported: Currently supported
|
|
||||||
currently_supported_message: See <a href="https://github.com/enterprise">GitHub Enterprise</a> for information about the latest release.
|
|
||||||
deprecated: Deprecated
|
|
||||||
deprecated_message: 'These docs remain available but are no longer maintained:'
|
|
||||||
deprecated_developer: Deprecated on developer.github.com
|
|
||||||
deprecated_developer_message: 'These docs remain available on the legacy <a href="https://developer.github.com">developer site</a> but are no longer maintained:'
|
|
||||||
products:
|
products:
|
||||||
graphql:
|
graphql:
|
||||||
reference:
|
reference:
|
||||||
|
|||||||
1
includes/all-enterprise-releases-link.html
Normal file
1
includes/all-enterprise-releases-link.html
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<a class="f6 no-underline color-text-tertiary pt-1" href="/{{currentLanguage}}/{{enterpriseServerVersions[0]}}/admin/all-releases">See all Enterprise releases</a>
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
>
|
>
|
||||||
{{ allVersions[permalink.pageVersion].versionTitle }}</a>
|
{{ allVersions[permalink.pageVersion].versionTitle }}</a>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
<a class="f6 no-underline color-text-tertiary pt-1" href="/enterprise-server-releases">See all Enterprise releases</a>
|
{% include all-enterprise-releases-link %}
|
||||||
</div>
|
</div>
|
||||||
</details>
|
</details>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
<!-- END ONEOFF EARLY ACCESS NOTICE -->
|
<!-- END ONEOFF EARLY ACCESS NOTICE -->
|
||||||
|
|
||||||
{% if translation_notification_type %}
|
{% if translation_notification_type %}
|
||||||
<div class="header-notifications text-center f5 color-bg-info-inverse color-text-primary py-4 px-6 translation_notice{% if release_notification_type %} border-bottom color-border-tertiary{% endif %}">
|
<div class="header-notifications text-center f5 color-bg-info color-text-primary py-4 px-6 translation_notice{% if release_notification_type %} border-bottom color-border-tertiary{% endif %}">
|
||||||
{{ translation_notification }}
|
{{ translation_notification }}
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -24,6 +24,7 @@
|
|||||||
>{{ allVersions[permalink.pageVersion].versionTitle }}</a>
|
>{{ allVersions[permalink.pageVersion].versionTitle }}</a>
|
||||||
{% endunless %}
|
{% endunless %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
{% include all-enterprise-releases-link %}
|
||||||
</div>
|
</div>
|
||||||
</details>
|
</details>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,67 +0,0 @@
|
|||||||
<!doctype html>
|
|
||||||
<html lang="{{currentLanguage}}">
|
|
||||||
{% include head %}
|
|
||||||
|
|
||||||
<body class="d-lg-flex">
|
|
||||||
{% include sidebar %}
|
|
||||||
|
|
||||||
<main class="width-full">
|
|
||||||
{% include header %}
|
|
||||||
{% include deprecation-banner %}
|
|
||||||
|
|
||||||
<div class="container-xl px-3 px-md-6 my-4 my-lg-4 d-xl-flex">
|
|
||||||
<article class="markdown-body width-full">
|
|
||||||
<div class="d-lg-flex flex-justify-between"></div>
|
|
||||||
|
|
||||||
<div class="mt-2 article-grid-container">
|
|
||||||
|
|
||||||
<div class="article-grid-head">
|
|
||||||
<div class="d-flex flex-items-baseline flex-justify-between mt-3">
|
|
||||||
<h1 class="border-bottom-0">{% data ui.enterprise_releases_list.title %}</h1>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="article-grid-toc border-bottom border-xl-0 pb-4 mb-5 pb-xl-0 mb-xl-0">
|
|
||||||
<div class="article-grid-toc-content">
|
|
||||||
{% if miniTocItems.size > 1 %}
|
|
||||||
<h2 id="in-this-article" class="f5 mb-2"><a class="Link--primary" href="#in-this-article">{% data ui.pages.miniToc %}</a></h2>
|
|
||||||
<ul class="list-style-none pl-0 f5 mb-0">
|
|
||||||
{% for item in miniTocItems %}
|
|
||||||
<li class="ml-{{ item.indentationLevel | times: 3 }} mb-2 lh-condensed">{{ item.contents }}</li>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="article-contents" class="article-grid-body">
|
|
||||||
<h2 id="currently-supported"><a href="#currently-supported">{% data ui.enterprise_releases_list.currently_supported %}</a></h2>
|
|
||||||
<p>{% data ui.enterprise_releases_list.currently_supported_message %}</p>
|
|
||||||
<ul>
|
|
||||||
{% for version in enterpriseServerReleases.supported %}
|
|
||||||
<li><a href="/{{currentLanguage}}/enterprise-server@{{version}}">Enterprise Server {{version}}</a></li>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
<h2 id="deprecated"><a href="#deprecated">{% data ui.enterprise_releases_list.deprecated %}</a></h2>
|
|
||||||
<p>{% data ui.enterprise_releases_list.deprecated_message %}</p>
|
|
||||||
<ul>
|
|
||||||
{% for version in enterpriseServerReleases.deprecatedReleasesWithNewFormat %}
|
|
||||||
<li><a href="/{{currentLanguage}}/enterprise-server@{{version}}">Enterprise Server {{version}}</a></li>
|
|
||||||
{% endfor %}
|
|
||||||
{% for version in enterpriseServerReleases.deprecatedReleasesWithLegacyFormat %}
|
|
||||||
<li><a href="/{{currentLanguage}}/enterprise/{{version}}">Enterprise Server {{version}}</a></li>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
<h2 id="deprecated-on-developer.github.com"><a href="#deprecated-on-developer.github.com">{% data ui.enterprise_releases_list.deprecated_developer %}</a></h2>
|
|
||||||
<p>{% data ui.enterprise_releases_list.deprecated_developer_message %}</p>
|
|
||||||
{% for version in enterpriseServerReleases.deprecatedReleasesOnDeveloperSite %}
|
|
||||||
<li><a href="https://developer.github.com/enterprise/{{version}}">Enterprise Server {{version}}</a></li>
|
|
||||||
{% endfor %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</article>
|
|
||||||
</div>
|
|
||||||
{% include support-section %}
|
|
||||||
{% include small-footer %}
|
|
||||||
{% include scroll-button %}
|
|
||||||
</main>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -99,6 +99,15 @@ module.exports = function getOldPathsFromPath (currentPath, languageCode, curren
|
|||||||
}
|
}
|
||||||
// ------ END MODERN VERSION FORMAT REPLACEMENTS ------//
|
// ------ END MODERN VERSION FORMAT REPLACEMENTS ------//
|
||||||
|
|
||||||
|
// ------ BEGIN ONEOFF REPLACEMENTS ------//
|
||||||
|
|
||||||
|
// create special old path /enterprise-server-releases from current path /enterprise-server@<release>/admin/all-releases
|
||||||
|
if (versionSatisfiesRange(currentVersion, `=${latest}`) && currentPath.endsWith('/admin/all-releases')) {
|
||||||
|
oldPaths.add('/enterprise-server-releases')
|
||||||
|
}
|
||||||
|
|
||||||
|
// ------ END ONEOFF REPLACEMENTS ------//
|
||||||
|
|
||||||
// For each old path added to the set above, do the following...
|
// For each old path added to the set above, do the following...
|
||||||
(new Set(oldPaths)).forEach(oldPath => {
|
(new Set(oldPaths)).forEach(oldPath => {
|
||||||
// for English only, remove language code
|
// for English only, remove language code
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ function getNewHref (node, languageCode, version) {
|
|||||||
// /enterprise-server/rest/reference/oauth-authorizations (this redirects to the latest version)
|
// /enterprise-server/rest/reference/oauth-authorizations (this redirects to the latest version)
|
||||||
// /enterprise-server@latest/rest/reference/oauth-authorizations (this redirects to the latest version)
|
// /enterprise-server@latest/rest/reference/oauth-authorizations (this redirects to the latest version)
|
||||||
const firstLinkSegment = href.split('/')[1]
|
const firstLinkSegment = href.split('/')[1]
|
||||||
if ([...supportedPlans, ...supportedVersions, 'enterprise-server@latest'].includes(firstLinkSegment)) {
|
if ([...supportedPlans, ...supportedVersions, 'enterprise-server@latest'].some(v => firstLinkSegment.startsWith(v))) {
|
||||||
newHref = path.join('/', languageCode, href)
|
newHref = path.join('/', languageCode, href)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
const { liquid } = require('../lib/render-content')
|
|
||||||
const layouts = require('../lib/layouts')
|
|
||||||
const getMiniTocItems = require('../lib/get-mini-toc-items')
|
|
||||||
|
|
||||||
module.exports = async function enterpriseServerReleases (req, res, next) {
|
|
||||||
if (!req.path.endsWith('/enterprise-server-releases')) return next()
|
|
||||||
|
|
||||||
const html = await liquid.parseAndRender(layouts['enterprise-server-releases'], req.context)
|
|
||||||
|
|
||||||
req.context.miniTocItems = getMiniTocItems(html, 3, 'article')
|
|
||||||
|
|
||||||
return res.send(await liquid.parseAndRender(layouts['enterprise-server-releases'], req.context))
|
|
||||||
}
|
|
||||||
@@ -130,7 +130,6 @@ module.exports = function (app) {
|
|||||||
app.use(asyncMiddleware(instrument('./contextualizers/early-access-breadcrumbs')))
|
app.use(asyncMiddleware(instrument('./contextualizers/early-access-breadcrumbs')))
|
||||||
}
|
}
|
||||||
|
|
||||||
app.use(asyncMiddleware(instrument('./enterprise-server-releases')))
|
|
||||||
app.use(asyncMiddleware(instrument('./dev-toc')))
|
app.use(asyncMiddleware(instrument('./dev-toc')))
|
||||||
app.use(asyncMiddleware(instrument('./featured-links')))
|
app.use(asyncMiddleware(instrument('./featured-links')))
|
||||||
app.use(asyncMiddleware(instrument('./learning-track')))
|
app.use(asyncMiddleware(instrument('./learning-track')))
|
||||||
|
|||||||
@@ -399,7 +399,10 @@ describe('lint markdown content', () => {
|
|||||||
|
|
||||||
// Filter out some very specific false positive matches
|
// Filter out some very specific false positive matches
|
||||||
const matches = initialMatches.filter(match => {
|
const matches = initialMatches.filter(match => {
|
||||||
if (markdownRelPath === 'content/admin/enterprise-management/migrating-from-github-enterprise-1110x-to-2123.md') {
|
if (
|
||||||
|
markdownRelPath === 'content/admin/enterprise-management/migrating-from-github-enterprise-1110x-to-2123.md' ||
|
||||||
|
markdownRelPath === 'content/admin/all-releases.md'
|
||||||
|
) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
@@ -410,7 +413,16 @@ describe('lint markdown content', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
test('URLs must not contain a hard-coded domain name', async () => {
|
test('URLs must not contain a hard-coded domain name', async () => {
|
||||||
const matches = (content.match(domainLinkRegex) || [])
|
const initialMatches = (content.match(domainLinkRegex) || [])
|
||||||
|
|
||||||
|
// Filter out some very specific false positive matches
|
||||||
|
const matches = initialMatches.filter(match => {
|
||||||
|
if (markdownRelPath === 'content/admin/all-releases.md') {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
})
|
||||||
|
|
||||||
const errorMessage = formatLinkError(domainLinkErrorText, matches)
|
const errorMessage = formatLinkError(domainLinkErrorText, matches)
|
||||||
expect(matches.length, errorMessage).toBe(0)
|
expect(matches.length, errorMessage).toBe(0)
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user