1
0
mirror of synced 2026-01-08 12:01:53 -05:00

Merge branch 'main' into patch-1

This commit is contained in:
Martin Lopes
2020-12-14 14:27:53 +10:00
committed by GitHub
58 changed files with 1020 additions and 230 deletions

View File

@@ -32,5 +32,6 @@ module.exports = [
'repo-sync/pull-request@33777245b1aace1a58c87a29c90321aa7a74bd7d',
'someimportantcompany/github-actions-slack-message@0b470c14b39da4260ed9e3f9a4f1298a74ccdefd',
'tjenkinson/gh-action-auto-merge-dependency-updates@cee2ac0',
'EndBug/add-and-commit@9358097a71ad9fb9e2f9624c6098c89193d83575'
'EndBug/add-and-commit@9358097a71ad9fb9e2f9624c6098c89193d83575',
'dorny/paths-filter@eb75a1edc117d3756a18ef89958ee59f9500ba58'
]

View File

@@ -1,39 +0,0 @@
name: Close unwanted pull requests
on:
pull_request:
paths:
- '.github/workflows/**'
- '.github/CODEOWNERS'
- 'translations/**'
- 'assets/fonts/**'
- 'data/graphql/**'
- 'lib/graphql/**'
- 'lib/redirects/**'
- 'lib/webhooks/**'
jobs:
close_unwanted_pull_requests:
if: github.repository == 'github/docs' && github.event.pull_request.user.login != 'Octomerger'
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@626af12fe9a53dc2972b48385e7fe7dec79145c9
with:
script: |
await github.issues.createComment({
...context.repo,
issue_number: context.payload.pull_request.number,
body:
`Thanks for contributing! We do not accept community changes to these files at this time.
- '.github/workflows/**'
- '.github/CODEOWNERS'
- 'translations/**'
- 'assets/fonts/**'
- 'data/graphql/**'
- 'lib/graphql/**'
- 'lib/redirects/**'
- 'lib/webhooks/**'`
})
await github.issues.update({
...context.repo,
issue_number: context.payload.pull_request.number,
state: 'closed'
})

View File

@@ -17,7 +17,8 @@ jobs:
continue-on-error: true
if: github.repository == 'github/docs'
steps:
- uses: actions/github-script@626af12fe9a53dc2972b48385e7fe7dec79145c9
- id: membership_check
uses: actions/github-script@626af12fe9a53dc2972b48385e7fe7dec79145c9
with:
github-token: ${{ secrets.DOCUBOT_FR_PROJECT_BOARD_WORKFLOWS_REPO_ORG_READ_SCOPES }}
script: |
@@ -61,10 +62,10 @@ jobs:
body: `@${context.payload.sender.login} opened https://github.com/github/docs/issues/${issueNo} publicly in the github/docs repo, instead of the private github/docs-internal repo.\n\n@${context.payload.sender.login}, please confirm that this belongs in the public repo and that no sensitive information was disclosed by commenting below and closing the issue.\n\nIf this was not intentional and sensitive information was shared, please delete https://github.com/github/docs/issues/${issueNo} and notify us in the \#docs-open-source channel.\n\nThanks! \n\n/cc @github/docs @github/docs-engineering`
});
throw new Error('A Hubber opened an issue on the public github/docs repo');
core.setOutput('did_warn', 'true')
- name: Send Slack notification if a GitHub employee who isn't on the docs team opens an issue in public
if: ${{ failure() && github.repository == 'github/docs' }}
if: ${{ steps.membership_check.outputs.did_warn && github.repository == 'github/docs' }}
uses: someimportantcompany/github-actions-slack-message@0b470c14b39da4260ed9e3f9a4f1298a74ccdefd
with:
channel: ${{ secrets.DOCS_OPEN_SOURCE_SLACK_CHANNEL_ID }}

View File

@@ -2,7 +2,7 @@ name: Repo Sync Stalls
on:
workflow_dispatch:
schedule:
- cron: '*/30 * * * *'
- cron: '0 */2 * * *'
jobs:
check-freezer:
name: Check for deployment freezes

View File

@@ -52,7 +52,7 @@ jobs:
destination_branch: main
pr_title: 'repo sync'
pr_body: "This is an automated pull request to sync changes between the public and private repos.\n\n:robot: This pull request should be merged (not squashed) to preserve continuity across repos, so please let a bot do the merging!"
pr_label: automerge,autoupdate
pr_label: automerge,autoupdate,automated-reposync-pr
github_token: ${{ secrets.OCTOMERGER_PAT_WITH_REPO_AND_WORKFLOW_SCOPE }}
- name: Find pull request

View File

@@ -0,0 +1,117 @@
name: Check unallowed file changes
on:
push:
jobs:
triage:
if: github.repository == 'github/docs' && github.event.pull_request.user.login != 'Octomerger'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
- name: Get pull request number
id: pull-number
uses: actions/github-script@626af12fe9a53dc2972b48385e7fe7dec79145c9
with:
github-token: ${{secrets.GITHUB_TOKEN}}
result-encoding: string
script: |
const pulls = await github.repos.listPullRequestsAssociatedWithCommit({
...context.repo,
commit_sha: context.sha
})
return pulls.data.map(pull => pull.number).shift()
- name: Check for existing requested changes
id: requested-change
uses: actions/github-script@626af12fe9a53dc2972b48385e7fe7dec79145c9
with:
github-token: ${{secrets.GITHUB_TOKEN}}
result-encoding: json
script: |
const pullReviews = await github.pulls.listReviews({
...context.repo,
pull_number: ${{steps.pull-number.outputs.result}}
})
return pullReviews.data
.filter(review => review.user.login === 'github-actions[bot]')
.sort((a, b) => new Date(b.submitted_at) - new Date(a.submitted_at))
.shift()
- name: Get files changed
uses: dorny/paths-filter@eb75a1edc117d3756a18ef89958ee59f9500ba58
id: filter
with:
# Base branch used to get changed files
base: 'main'
# Enables setting an output in the format in `${FILTER_NAME}_files
# with the names of the matching files formatted as JSON array
list-files: json
# Returns list of changed files matching each filter
filters: |
translation:
- 'translations/**'
openapi:
- 'lib/rest/static/**'
notAllowed:
- '.github/workflows/**'
- '.github/CODEOWNERS'
- 'translations/**'
- 'assets/fonts/**'
- 'data/graphql/**'
- 'lib/graphql/**'
- 'lib/redirects/**'
- 'lib/rest/**'
- 'lib/webhooks/**'
# When there are changes to files we can't accept
# and no review exists,leave a REQUEST_CHANGES review
- name: Request pull request changes
# Check for no reviews or reviews that aren't CHANGES_REQUESTED
if: ${{ steps.filter.outputs.notAllowed == 'true' && (!steps.requested-change.outputs.result || fromJson(steps.requested-change.outputs.result).state != 'CHANGES_REQUESTED') }}
uses: actions/github-script@626af12fe9a53dc2972b48385e7fe7dec79145c9
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const changedFiles = ${{steps.filter.outputs.notAllowed_files}}
const restFiles = ${{steps.filter.outputs.openapi_files}}
const translationFiles = ${{steps.filter.outputs.translation_files}}
const markdownFiles = changedFiles.map(file => `- \`${file}\`\n`).join('')
let reviewMessage = `👋 Hey there spelunker. It looks like you've modified some files that we can't accept as contributions.\n${markdownFiles}\n\nYou'll need to revert all of these ☝️ files using [GitHub Desktop](https://docs.github.com/en/free-pro-team@latest/desktop/contributing-and-collaborating-using-github-desktop/reverting-a-commit) or \`git checkout origin/main <file name>\`. Once you get those files reverted, we can continue with the review process. :octocat:`
if (restFiles.length > 0) {
reviewMessage += "\n\nIt looks like you've modified the OpenAPI schema (`lib/rest/static/**`). While we aren't accepting changes to the schema directly, you can open an issue for any updates to the REST API docs. Head on over to the [`github/rest-api-description`](https://github.com/github/rest-api-description/issues/new?assignees=&labels=Inaccuracy&template=schema-inaccuracy.md&title=%5BSchema+Inaccuracy%5D+%3CDescribe+Problem%3E) repository to open an issue. ⚡"
}
if (translationFiles.length > 0) {
await github.issues.addLabels({
...context.repo,
issue_number: ${{steps.pull-number.outputs.result}},
labels: ['localization']
})
reviewMessage += "\n\nIt looks like you've modified translated content. Unfortunately, we are not able to accept pull requests for translated content. Our translation process involves an integration with an external service at crowdin.com, where all translation activity happens. We hope to eventually open up the translation process to the open source community, but we're not there yet. See https://github.com/github/docs/blob/main/CONTRIBUTING.md#earth_asia-translations for more details."
}
await github.pulls.createReview({
...context.repo,
pull_number: ${{steps.pull-number.outputs.result}},
body: reviewMessage,
event: 'REQUEST_CHANGES'
})
# When the most recent review was CHANGES_REQUESTED and the existing
# PR no longer contains unallowed changes, dismiss the previous review
- name: Dismiss pull request review
if: ${{ steps.filter.outputs.notAllowed == 'false' && fromJson(steps.requested-change.outputs.result).state == 'CHANGES_REQUESTED' }}
uses: actions/github-script@626af12fe9a53dc2972b48385e7fe7dec79145c9
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
await github.pulls.dismissReview({
...context.repo,
pull_number: ${{steps.pull-number.outputs.result}},
review_id: ${{fromJson(steps.requested-change.outputs.result).id}},
message: `✨Looks like you reverted all files we don't accept contributions for. 🙌 A member of the docs team will review your PR soon. 🚂`
})

13
.vscode/launch.json vendored Normal file
View File

@@ -0,0 +1,13 @@
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "attach",
"name": "Node: Nodemon",
"processId": "${command:PickProcess}",
"restart": true,
"protocol": "inspector",
},
]
}

View File

@@ -54,6 +54,8 @@ This means that a compromise of a single action within a workflow can be very si
**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 %}
* **Audit the source code of the action**
Ensure that the action is handling the content of your repository and secrets as expected. For example, check that secrets are not sent to unintended hosts, or are not inadvertently logged.
@@ -92,10 +94,14 @@ This list describes the recommended approaches for accessing repository data wit
As a result, self-hosted runners should almost [never be used for public repositories](/actions/hosting-your-own-runners/about-self-hosted-runners#self-hosted-runner-security-with-public-repositories) on {% data variables.product.product_name %}, because any user can open pull requests against the repository and compromise the environment. Similarly, be cautious when using self-hosted runners on private repositories, as anyone who can fork the repository and open a PR (generally those with read-access to the repository) are able to compromise the self-hosted runner environment, including gaining access to secrets and the more privileged `GITHUB_TOKEN` which grants write-access permissions on the repository.
When a self-hosted runner is defined at the organization or enterprise level, {% data variables.product.product_name %} can schedule workflows from multiple repositories onto the same runner. Consequently, a security compromise of these environments can result in a wide impact. To help reduce the scope of a compromise, you can create boundaries by organizing your self-hosted runners into separate groups. For more information, see "[Managing access to self-hosted runners using groups](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups)."
You should also consider the environment of the self-hosted runner machines:
- What sensitive information resides on the machine configured as a self-hosted runner? For example, private SSH keys, API access tokens, among others.
- Does the machine have network access to sensitive services? For example, Azure or AWS metadata services. The amount of sensitive information in this environment should be kept to a minimum, and you should always be mindful that any user capable of invoking workflows has access to this environment.
Some customers might attempt to partially mitigate these risks by implementing systems that automatically destroy the self-hosted runner after each job execution. However, this approach might not be as effective as intended, as there is no way to guarantee that a self-hosted runner only runs one job.
### Auditing {% data variables.product.prodname_actions %} events
You can use the audit log to monitor administrative tasks in an organization. The audit log records the type of action, when it was run, and which user account performed the action.
@@ -132,5 +138,3 @@ The following tables describe the {% data variables.product.prodname_actions %}
| `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.

View File

@@ -10,7 +10,7 @@ versions:
### Finding discussions
1. Navigate to {% data variables.product.prodname_dotcom_the_website %}.
1. In the top-right corner of {% data variables.product.prodname_dotcom_the_website %}, click your profile photo, then click **Your enterprises**.
1. In the top-right corner of {% data variables.product.prodname_dotcom_the_website %}, click your profile photo, then click **Your discussions**.
!["Your discussions" in drop-down menu for profile photo on {% data variables.product.product_name %}](/assets/images/help/discussions/your-discussions.png)
1. Toggle between **Created** and **Commented** to see the discussions you've created or participated in.

View File

@@ -40,6 +40,12 @@ To replace all text listed in `passwords.txt` wherever it can be found in your r
$ bfg --replace-text passwords.txt
```
After the sensitive data is removed, you must force push your changes to {% data variables.product.product_name %}.
```shell
$ git push --force
```
See the [BFG Repo-Cleaner](http://rtyley.github.io/bfg-repo-cleaner/)'s documentation for full usage and download instructions.
#### Using filter-branch

View File

@@ -39,9 +39,9 @@ For code owners to receive review requests, the CODEOWNERS file must be on the b
### CODEOWNERS syntax
A CODEOWNERS file uses a pattern that follows the same rules used in [gitignore](https://git-scm.com/docs/gitignore#_pattern_format) files. The pattern is followed by one or more {% data variables.product.prodname_dotcom %} usernames or team names using the standard `@username` or `@org/team-name` format. You can also refer to a user by an email address that has been added to their {% data variables.product.product_name %} account, for example `user@example.com`.
A CODEOWNERS file uses a pattern that follows most of the same rules used in [gitignore](https://git-scm.com/docs/gitignore#_pattern_format) files, with [some exceptions](#syntax-exceptions). The pattern is followed by one or more {% data variables.product.prodname_dotcom %} usernames or team names using the standard `@username` or `@org/team-name` format. You can also refer to a user by an email address that has been added to their {% data variables.product.product_name %} account, for example `user@example.com`.
If any line in your CODEOWNERS file contains invalid syntax, the file will not be detected and will not be used to request reviews. Invalid syntax includes inline comments and user or team names that do not exist on {% data variables.product.product_name %}.
If any line in your CODEOWNERS file contains invalid syntax, the file will not be detected and will not be used to request reviews.
#### Example of a CODEOWNERS file
```
# This is a comment.
@@ -83,6 +83,13 @@ apps/ @octocat
# subdirectories.
/docs/ @doctocat
```
#### Syntax exceptions
There are some syntax rules for gitignore files that do not work in CODEOWNERS files:
- Escaping a pattern starting with `#` using `\` so it is treated as a pattern and not a comment
- Using `!` to negate a pattern
- Using `[ ]` to define a character range
### Further reading

View File

@@ -15,7 +15,7 @@ versions:
{% data reusables.codespaces.about-configuration %}
If you don't define a configuration in your repository, {% data variables.product.prodname_dotcom %} creates a codespace with a base Linux image. The base Linux image includes tools for Node.js, JavaScript, TypeScript, Python, C++, Java, C#, .NET Core, PHP, and PowerShell. For more information about the base Linux image, see the [`microsoft/vscode-dev-containers`](https://github.com/microsoft/vscode-dev-containers/tree/master/containers/codespaces-linux) repository.
If you don't define a configuration in your repository, {% data variables.product.prodname_dotcom %} creates a codespace with a base Linux image. The base Linux image includes tools for Python, Node.js, JavaScript, TypeScript, C++, Java, C#, F#, .NET Core, PHP, PowerShell, Go, Ruby, and Rust. For more information about the base Linux image, see the [`microsoft/vscode-dev-containers`](https://github.com/microsoft/vscode-dev-containers/tree/master/containers/codespaces-linux) repository.
{% data reusables.codespaces.about-personalization %} {% data reusables.codespaces.codespace-config-order %} For more information, see "[Personalizing {% data variables.product.prodname_codespaces %} for your account](/github/developing-online-with-codespaces/personalizing-codespaces-for-your-account)."

View File

@@ -7,6 +7,6 @@ versions:
free-pro-team: '*'
enterprise-server: '*'
github-ae: '*'
layout: graphql-explorer
---
You can access GitHub's GraphQL Explorer at https://developer.github.com/v4/explorer.

View File

@@ -32,6 +32,18 @@ As an alternative, you can simply use [GitHub Codespaces](https://github.com/fea
In a matter of minutes, you will be ready to edit, preview and test your changes directly from the comfort of your browser.
### Debugging with VS Code
This repo has configuration for debugging with VS Code's built-in Node Debugger.
1. After running the build steps, start the app by running `npm run debug`.
2. In VS Code, click on the Debugging icon in the Activity Bar to bring up the Debug view.
3. In the Debug View, select the **'Node: Nodemon'** configuration, then press F5 or click the green play button. You should see all of your running node processes.
4. Select the node process that's started with the `--inspect` flag.
5. Debugger has now been attached. Enjoy!
For more detailed instructions, please see this [VS Code recipe](https://github.com/Microsoft/vscode-recipes/tree/master/nodemon). You can also learn more about debugging using VS Code [here](https://code.visualstudio.com/docs/editor/debugging).
### Viewing a top-level table of contents
While running the local server, you can visit [localhost:4000/dev-toc](http://localhost:4000/dev-toc) to view a top-level TOC of all the content in the site. This page is not available on https://docs.github.com. It was created for internal GitHub writers' use.

View File

@@ -0,0 +1,129 @@
intro: GitHub is excited to present GitHub Enterprise Server 2.22.0.
date: '2020-09-23'
sections:
features:
- heading: GitHub Actions Beta
notes:
- |
[GitHub Actions](https://github.com/features/actions) is a powerful, flexible solution for CI/CD and workflow automation. GitHub Actions on Enteprise Server includes tools to help you manage the service, including key metrics in the Management Console, audit logs and access controls to help you control the roll out.
You will need to provide your own [storage](https://docs.github.com/en/enterprise/2.22/admin/github-actions/enabling-github-actions-and-configuring-storage) and runners for GitHub Actions. AWS S3, Azure Blob Storage and MinIO are supported. Please review the [updated minimum requirements for your platform](https://docs.github.com/en/enterprise/2.22/admin/installation/setting-up-a-github-enterprise-server-instance) before you turn on GitHub Actions. To learn more, contact the GitHub Sales team or [sign up for the beta](https://resources.github.com/beta-signup/). {% comment %} https://github.com/github/releases/issues/775 {% endcomment %}
- heading: GitHub Packages Beta
notes:
- |
[GitHub Packages](https://github.com/features/packages) is a package hosting service, natively integrated with GitHub APIs, Actions, and webhooks. Create an [end-to-end DevOps workflow](https://docs.github.com/en/enterprise/2.22/admin/packages/configuring-packages-support-for-your-enterprise) that includes your code, continuous integration, and deployment solutions.
Supported storage back ends include AWS S3 and MinIO with support for Azure blob coming in a future release. Please note that the current Docker support will be replaced by a beta of the new GitHub Container Registry in the next release. Please review the [updated minimum requirements for your platform](https://docs.github.com/en/enterprise/2.22/admin/installation/setting-up-a-github-enterprise-server-instance) before you turn on GitHub Packages. To learn more, contact the GitHub Sales team or [sign up for the beta](https://resources.github.com/beta-signup/). {% comment %} https://github.com/github/releases/issues/773 {% endcomment %}
- heading: Advanced Security Code Scanning Beta
notes:
- |
[GitHub Advanced Security code scanning](https://github.com/features/security) is a developer-first, GitHub-native static application security testing (SAST). Easily find security vulnerabilities before they reach production, all powered by the worlds most powerful code analysis engine: CodeQL.
Administrators using GitHub Advanced Security can [sign up for](https://resources.github.com/beta-signup/) and [enable](https://docs.github.com/en/enterprise/2.22/admin/configuration/configuring-code-scanning-for-your-appliance) GitHub Advanced Security code scanning beta. Please review the [updated minimum requirements for your platform](https://docs.github.com/en/enterprise/2.22/admin/installation/setting-up-a-github-enterprise-server-instance) before you turn on GitHub Advanced Security code scanning. {% comment %} https://github.com/github/releases/issues/768 {% endcomment %}
- heading: Pull Request Retargeting
notes:
- |
When a [pull request's head branch](https://docs.github.com/en/enterprise/2.22/user/github/collaborating-with-issues-and-pull-requests/about-branches#working-with-branches) is merged and deleted, all other open pull requests in the same repository that target this branch are now retargeted to the merged pull request's base branch. Previously these pull requests were closed. {% comment %} https://github.com/github/releases/issues/801 {% endcomment %}
- heading: Suspend and Unsuspend an App Installation
notes:
- |
Administrators and users can [suspend any GitHub Apps access](https://docs.github.com/enterprise/2.22/user/rest/reference/apps#suspend-an-app-installation) for as long as needed, and [unsuspend the app](https://docs.github.com/enterprise/2.22/user/rest/reference/apps#unsuspend-an-app-installation) on command through Settings and the API. Suspended apps cannot access the GitHub API or webhook events. You can use this instead of uninstalling an application, which deauthorises every user. {% comment %} https://github.com/github/github/pull/138316 https://github.com/github/github/pull/150869 {% endcomment %}''
- heading: Improved Large Scale Performance
notes:
- |
We have revised the approach we take to scheduling network maintenance for repositories, ensuring large monorepos are able to avoid failure states. {% comment %} https://github.com/github/github/pull/146789, https://github.com/github/github/pull/147931, https://github.com/github/github/pull/146724, https://github.com/github/git-protocols/issues/94 {% endcomment %}''
Passive replicas are now [supported and configurable on GitHub Enterprise Server cluster deployments](https://docs.github.com/en/enterprise/2.22/admin/enterprise-management/configuring-high-availability-replication-for-a-cluster). These changes will enable faster failover, reducing RTO and RPO. {% comment %} https://github.com/github/releases/issues/905 {% endcomment %}
- heading: View All of Your Users
notes:
- |
For exceptionally large teams, administrators can [adjust the 1,500 default maximum for user lists](https://docs.github.com/en/enterprise/2.22/admin/configuration/command-line-utilities#ghe-config). {% comment %} https://github.com/github/github/pull/146508 {% endcomment %}''
changes:
- heading: Administration Changes
notes:
- Shared workers have been enabled to make live updates more resilient by sharing connections across tabs. {% comment %} https://github.com/github/releases/issues/914 {% endcomment %}
- The "Contact Support" link on `50x` error pages now links to the support email or link configured in the Management Console. {% comment %} https://github.com/github/github/pull/142123 {% endcomment %}
- It's now possible to [manage global announcements and expiration dates through the enterprise account settings](https://docs.github.com/en/enterprise/2.22/admin/installation/command-line-utilities#ghe-announce). {% comment %} https://github.com/github/releases/issues/945, https://github.com/github/github/pull/148475, https://github.com/github/github/pull/148494 {% endcomment %}
- You can now [exempt certain users from the default API rate limits configured in the management console](https://docs.github.com/en/enterprise/2.22/admin/configuration/configuring-rate-limits), if necessary. {% comment %} https://github.com/github/github/pull/148673 {% endcomment %}
- Repository administrators can now [set their repository to any available visibility option](https://docs.github.com/en/enterprise/2.22/user/github/administering-a-repository/setting-repository-visibility) from a single dialog in the repository's settings. Previously, you had to navigate separate sections, buttons, and dialog boxes for changing between public and private and between private and internal. {% comment %} https://github.com/github/releases/issues/882 {% endcomment %}
- A new Enterprise settings link on the user dropdown menu makes it easier to navigate to Enterprise Account Settings. {% comment %} https://github.com/github/releases/issues/946, https://github.com/github/github/pull/150595, https://github.com/github/github/pull/150520, https://github.com/github/github/pull/151121, https://github.com/github/hydro-schemas/pull/1244 {% endcomment %}
- The legacy "Admin Center" link on the /stafftools page has been removed. The "Enterprise" link is now the best way to navigate to the Enterprise Account from the /stafftools page. {% comment %} https://github.com/github/github/pull/147633 {% endcomment %}
- The Options sub-menu item in the Enterprise Account settings has been moved from the Settings section to the Policies section. {% comment %} https://github.com/github/releases/issues/944, https://github.com/github/github/pull/148477 {% endcomment %}
- '[Accessing resources by using a personal access token or SSH key now counts as user activity](https://docs.github.com/en/enterprise/2.22/admin/user-management/managing-dormant-users). This relieves administrators from the burden of filtering out certain users from the user dormancy reports and makes it safer to use the "Suspend all" button without accidentally suspending users who only accessed GitHub in a read-only way over the APIs with a Personal Access Token (PAT) or SSH key. {% comment %} https://github.com/github/github/pull/140433, https://github.com/github/help-docs/pull/14853, https://github.com/github/customer-feedback/issues/174, https://github.com/github/supportability/issues/14 {% endcomment %}'
- heading: Security Changes
notes:
- Two-factor recovery codes can no longer be used during the two-factor sign in process. One-Time-Passwords are the only acceptable values. {% comment %} https://github.com/github/github/pull/145016, https://github.com/github/github/pull/140208 {% endcomment %}
- When a user is signed into GitHub Enterprise Server through single sign-on, the [default repository visibility selection is Private](https://docs.github.com/en/enterprise/2.22/user/github/administering-a-repository/setting-repository-visibility). {% comment %} https://github.com/github/releases/issues/872 {% endcomment %}
- Owners of GitHub Apps can now choose to have their [user-to-server access tokens expire after 8 hours](https://developer.github.com/changes/2020-04-30-expiring-user-to-server-access-tokens-for-github-apps/), to help enforce regular token rotation and reduce the impact of a compromised token. {% comment %} https://github.com/github/releases/issues/966 {% endcomment %}
- heading: Developer Changes
notes:
- '[The GitHub UI has undergone a design refresh](https://github.blog/changelog/2020-06-23-design-updates-to-repositories-and-github-ui/), and the repositories homepage has been redesigned, including a responsive layout and improved mobile web experience. {% comment %} https://github.com/github/releases/issues/886 {% endcomment %}'
- In the "Clone with SSH" repository dropdown menu, users will now be notified if they do not have any keys setup. {% comment %} https://github.com/github/github/pull/149098 {% endcomment %}
- Commits are now ordered chronologically in the pull request timeline and commits tab. This new ordering is also reflected in the ["List commits on a pull request"](https://docs.github.com/en/enterprise/2.22/user/rest/reference/pulls#list-commits-on-a-pull-request) REST API and GraphQL ["PullRequest object"](https://docs.github.com/en/enterprise/2.22/user/graphql/reference/objects#pullrequest) timeline connection. {% comment %} https://github.com/github/releases/issues/867 {% endcomment %}
- Users can now [set a skin tone default for emoji autocomplete results](https://github.blog/changelog/2020-07-17-customizable-skin-tones-in-emoji-autocomplete/) in comment text areas. {% comment %} https://github.com/github/releases/issues/916 {% endcomment %}
- '[Tree-sitter](https://github.com/tree-sitter/tree-sitter) improves syntax highlighting and is now the default library used for language parsing. {% comment %} https://github.com/github/releases/issues/918, https://github.com/github/windrose/issues/44 {% endcomment %}'
- heading: Users and organizations can add Twitter usernames to their GitHub profiles
notes:
- '[Developers and organizations can now add their Twitter username to their profile](https://github.blog/changelog/2020-07-22-users-and-organizations-can-now-add-twitter-usernames-to-their-github-profiles/) {% comment %} https://github.com/github/github/pull/145127 {% endcomment %}'
- heading: API Changes
notes:
- |
#### Graduated Previews
The following previews are now an official part of the API:
* The GitHub Apps API and endpoints that returned the `performed_via_github_app` property no longer require the [`machine-man`](https://developer.github.com/changes/2020-08-20-graduate-machine-man-and-sailor-v-previews/) preview header. {% comment %} https://github.com/github/releases/issues/965 {% endcomment %}
* To add and view a lock reason to an issue, you no longer need to use the [`sailor-v`](https://developer.github.com/changes/2020-08-20-graduate-machine-man-and-sailor-v-previews/) preview header. {% comment %} https://github.com/github/github/pull/143676 {% endcomment %}
- |
#### GraphQL Schema Changes
* [The GraphQL schema changes](https://docs.github.com/enterprise/2.22/user/graphql/overview/changelog) include backwards-compatible changes, schema previews, and upcoming breaking changes.
bugs:
- The stafftools page for viewing pending collaborator showed a `500 Internal Server Error` when there was a pending email invite. {% comment %} https://github.com/github/github/pull/150836 {% endcomment %}
- The Repository Health Check in stafftools could give incorrect results on busy repositories. {% comment %} https://github.com/github/github/pull/151160 {% endcomment %}
- A logged in user trying to accept an email invitation could get a `404 Not Found` error. {% comment %} https://github.com/github/github/pull/150848 {% endcomment %}
- If a user navigated to a repository whose name started with "repositories.", they were redirected to the owner's "Repositories" tab instead of landing on the repository overview page. {% comment %} https://github.com/github/github/pull/149704 {% endcomment %}
- Labels in the dashboard timeline did not have enough contrast. {% comment %} https://github.com/github/github/pull/146749 {% endcomment %}
deprecations:
- heading: Upcoming Deprecation of GitHub Enterprise Server 2.19
notes:
- '**GitHub Enterprise Server 2.19 will be deprecated as of November 12, 2020** That means that no patch releases will be made, even for critical security issues, after this date. For better performance, improved security, and new features, [upgrade to the newest version of GitHub Enterprise Server](https://help.github.com/enterprise/admin/guides/installation/upgrading-github-enterprise/) as soon as possible.'
- heading: Deprecation of Legacy GitHub App Webhook Events
notes:
- Starting with GitHub Enterprise Server 2.21.0 two legacy GitHub Apps-related webhook events have been deprecated and will be removed in GitHub Enterprise Server 2.25.0. The deprecated events `integration_installation` and `integration_installation_repositories` have equivalent events which will be supported. More information is available in the [deprecation announcement blog post](https://developer.github.com/changes/2020-04-15-replacing-the-installation-and-installation-repositories-events/). {% comment %} https://github.com/github/enterprise-web/pull/6419#issuecomment-668303461 {% endcomment %}
- heading: Deprecation of Legacy GitHub Apps Endpoint
notes:
- Starting with GitHub Enterprise Server 2.21.0 the legacy GitHub Apps endpoint for creating installation access tokens was deprecated and will be removed in GitHub Enterprise Server 2.25.0. More information is available in the [deprecation announcement blog post](https://developer.github.com/changes/2020-04-15-replacing-create-installation-access-token-endpoint/). {% comment %} https://github.com/github/enterprise-web/pull/6419#issuecomment-668303461 {% endcomment %}
- heading: Deprecation of OAuth Application API
notes:
- GitHub [no longer supports the OAuth application endpoints](https://developer.github.com/changes/2020-02-14-deprecating-oauth-app-endpoint/) and have replaced them with a version that moves the access token to the request body for improved security. Brownouts will start in March 2021 and all calls to the old version of the OAuth application endpoints will return a status code of 404 starting on May 5, 2021 at 16:00 UTC.
# - type: Backup and Disaster recovery
# note: GitHub Enterprise Server 2.22 requires at least [GitHub Enterprise Backup Utilities](https://github.com/github/backup-utils) 2.22.0 for [Backups and Disaster Recovery](https://help.github.com/enterprise/2.22/admin/guides/installation/backups-and-disaster-recovery/).
known_issues:
- On a freshly set up GitHub Enterprise Server without any users, an attacker could create the first admin user. {% comment %} https://github.com/github/enterprise2/issues/1889 {% endcomment %}
- Custom firewall rules are not maintained during an upgrade. {% comment %} https://github.com/github/enterprise2/issues/2823 {% endcomment %}
- Git LFS tracked files [uploaded through the web interface](https://github.com/blog/2105-upload-files-to-your-repositories) are incorrectly added directly to the repository. {% comment %} https://github.com/github/github/issues/54684 {% endcomment %}
- Issues cannot be closed if they contain a permalink to a blob in the same repository where the file path is longer than 255 characters. {% comment %} https://github.com/github/github/issues/107731 {% endcomment %}
- When "Users can search GitHub.com" is enabled with GitHub Connect, issues in private and internal repositories are not included in GitHub.com search results. {% comment %} https://github.com/github/admin-experience/issues/571 {% endcomment %}
- The Name ID Format dropdown in the Management Console resets to "unspecified" after setting instance to "persistent". {% comment %} https://github.com/github/enterprise2/issues/13446 {% endcomment %}
- The repository Settings page of a repository for a user or organization GitHub Pages sites will fail with a "500 Internal Server Error". {% comment %} https://github.com/github/github/issues/156183 {% endcomment %}
- Users may experience slower Git clone and fetch performance on an instance with high availability replicas due to reads being forwarded to a different node. {% comment %} https://github.com/github/spokesd/issues/746 {% endcomment %}
- '[Creating a GitHub App from a manifest](https://docs.github.com/en/enterprise/2.22/user/developers/apps/creating-a-github-app-from-a-manifest) fails. To work around this issue, users can follow the manual instructions for [creating a GitHub App](https://docs.github.com/en/enterprise/2.22/user/developers/apps/creating-a-github-app). {% comment %} https://github.com/github/enterprise2/issues/22849 {% endcomment %}'
- GitHub usernames may change unintentionally when using SAML authentication, if the GitHub username does not match the value of the attribute mapped to the `username` field in the Management Console. (updated 2020-10-08) {% comment %} https://github.com/github/external-identities/issues/335 {% endcomment %}
- On a freshly set up 2.22.0 instance or after upgrading to 2.22.0, the activity feed on an organization's dashboard will no longer update. (updated 2020-10-27) {% comment %}https://github.com/github/enterprise2/issues/23050{% endcomment %}
- Audit logs may be attributed to 127.0.0.1 instead of the actual source IP address. (updated 2020-11-02) {% comment %} https://github.com/github/enterprise2/issues/21514 {% endcomment %}

View File

@@ -0,0 +1,73 @@
date: '2020-10-09'
sections:
security_fixes:
- '**MEDIUM**: ImageMagick has been updated to address [DSA-4715-1](https://www.debian.org/security/2020/dsa-4715). {% comment %} https://github.com/github/enterprise2/pull/22623, https://github.com/github/enterprise2/pull/22610 {% endcomment %}'
- 'Requests from a GitHub App integration to refresh an OAuth access token would be accepted if sent with a different, valid OAuth client ID and client secret than was used to create the refresh token. {% comment %} https://github.com/github/github/pull/154921, https://github.com/github/github/pull/154423, https://github.com/github/ecosystem-apps/issues/1066 {% endcomment %}'
- 'A user whose LDAP directory username standardizes to an existing GHES account login could authenticate into the existing account. {% comment %} https://github.com/github/github/pull/156513, https://github.com/github/github/pull/155512 {% endcomment %}'
- 'Packages have been updated to the latest security versions. {% comment %} https://github.com/github/enterprise2/pull/22912, https://github.com/github/enterprise2/pull/22878 {% endcomment %}'
bugs:
- |
The NameID Format dropdown in the Management Console would be reset to "unspecified" after setting it to "persistent". {% comment %} https://github.com/github/enterprise2/pull/22376, https://github.com/github/enterprise2/pull/22331, https://github.com/github/enterprise2/issues/13446 {% endcomment %}
- |
Upgrading using a hotpatch could fail with an error: `'libdbi1' was not found` {% comment %} https://github.com/github/enterprise2/pull/22557, https://github.com/github/enterprise2/pull/22552 {% endcomment %}
- |
Saving settings via the [management console](https://docs.github.com/en/enterprise-server@latest/admin/configuration/accessing-the-management-console) would append a newline to the [TLS/SSL certificate and key](https://docs.github.com/en/enterprise-server@latest/admin/configuration/configuring-tls) files which triggered unnecessary reloading of some services. {% comment %} https://github.com/github/enterprise2/pull/22570, https://github.com/github/enterprise2/pull/22540 {% endcomment %}
- |
System logs for Dependency Graph were not rotating, allowing unbounded storage growth. {% comment %} https://github.com/github/enterprise2/pull/22767, https://github.com/github/enterprise2/pull/22733 {% endcomment %}
- |
The MS SQL Server performance graph showed statistics from the primary instance even when a replica was selected. {% comment %} https://github.com/github/enterprise2/pull/22778, https://github.com/github/enterprise2/pull/22750 {% endcomment %}
- |
`ghe-actions-precheck` would silently exit without running the storage checks if Actions was not enabled. {% comment %} https://github.com/github/enterprise2/pull/22787, https://github.com/github/enterprise2/pull/22742 {% endcomment %}
- |
Upgrade could fail if the resqued workers override setting is in use. {% comment %} https://github.com/github/enterprise2/pull/22836, https://github.com/github/enterprise2/pull/22814 {% endcomment %}
- |
Some services running in containers were not sending logs to the journal. {% comment %} https://github.com/github/enterprise2/pull/22994, https://github.com/github/enterprise2/pull/22518 {% endcomment %}
- |
Links to GitHub Security Advisories would use a URL with the hostname of the GitHub Enterprise Server instance instead of GitHub.com, directing the user to a nonexistent URL. {% comment %} https://github.com/github/github/pull/153316, https://github.com/github/github/pull/151301 {% endcomment %}
- |
When importing a repository with `ghe-migrator`, an unexpected exception could occur when inconsistent data is present. {% comment %} https://github.com/github/github/pull/153850, https://github.com/github/github/pull/151552 {% endcomment %}
- |
The enterprise account security settings page showed a "View your organizations' current configurations" link for the "Two-factor authentication" setting when the authentication mode in use does not support built in two-factor authentication. {% comment %} https://github.com/github/github/pull/153860 {% endcomment %}
- |
OAuth refresh tokens would be removed prematurely. {% comment %} https://github.com/github/github/pull/154271, https://github.com/github/github/pull/153694 {% endcomment %}
- |
Search repair tasks would generate exceptions during the migration phase of configuration. {% comment %} https://github.com/github/github/pull/154573, https://github.com/github/github/pull/153392 {% endcomment %}
- |
On the settings page for GitHub Apps, the "Beta Features" tab was not visible in some circumstances. {% comment %} https://github.com/github/github/pull/154612, https://github.com/github/github/pull/154417 {% endcomment %}
- |
When using `ghe-migrator` to import PR review requests, records associated with deleted users would result in extraneous database records. {% comment %} https://github.com/github/github/pull/154960, https://github.com/github/github/pull/153169 {% endcomment %}
- |
When importing users with `ghe-migrator`, an error of "Emails is invalid" would occur if the system-generated email address were longer than 100 characters. {% comment %} https://github.com/github/github/pull/155109, https://github.com/github/github/pull/152418 {% endcomment %}
- |
Logging webhook activity could use large amounts of disk space and cause the root disk to become full. {% comment %} https://github.com/github/github/pull/155657, https://github.com/github/github/pull/154100 {% endcomment %}
- |
Users experienced slower Git clone and fetch performance on an instance with high availability replicas due to reads being forwarded to a different node. {% comment %} https://github.com/github/github/pull/156195, https://github.com/github/github/pull/156016, https://github.com/github/spokesd/issues/746 {% endcomment %}
- |
The repository Settings page of a repository for a user or organization GitHub Pages sites would fail with a "500 Internal Server Error". {% comment %} https://github.com/github/github/pull/156439, https://github.com/github/github/issues/156183 {% endcomment %}
- |
Repository network maintenance operations could become stuck in a `running` state. {% comment %} https://github.com/github/github/pull/156669, https://github.com/github/github/pull/156036 {% endcomment %}
- |
A repository being deleted immediately after uploading a code scanning result could cause a stall in the processing of code scanning results for all repositories. {% comment %} https://github.com/github/github/pull/157063, https://github.com/github/github/pull/156437 {% endcomment %}
- |
When a large number of code scanning results were submitted at the same time, processing of batches could time out resulting in a stall in processing of code scanning results. {% comment %} https://github.com/github/github/pull/157065, https://github.com/github/github/pull/156462 {% endcomment %}
- |
[Creating a GitHub App from a manifest](https://docs.github.com/en/enterprise/2.22/user/developers/apps/creating-a-github-app-from-a-manifest) would fail. {% comment %} https://github.com/github/github/pull/157133, https://github.com/github/github/pull/156904, https://github.com/github/enterprise2/issues/22849 {% endcomment %}
- |
GitHub usernames were changed unintentionally when using SAML authentication, when the GitHub username did not match the value of the attribute mapped to the `username` field in the Management Console. {% comment %} https://github.com/github/github/pull/158131, https://github.com/github/github/pull/157936, https://github.com/github/external-identities/issues/335 {% endcomment %}
changes:
- Support is added for the AWS EC2 instance type `m5.16xlarge`. {% comment %} https://github.com/github/enterprise2/pull/22502, https://github.com/github/enterprise2/pull/22473 {% endcomment %}
- Remove the requirement for SSH fingerprints in `ghe-migrator` archives as it can always be computed. {% comment %} https://github.com/github/github/pull/156946, https://github.com/github/github/pull/155387 {% endcomment %}
- GitHub App Manifests now include the `request_oauth_on_install` field. {% comment %} https://github.com/github/github/pull/156991, https://github.com/github/github/pull/155010, https://github.com/github/ecosystem-apps/issues/1055 {% endcomment %}
known_issues:
- On a freshly set up GitHub Enterprise Server without any users, an attacker could create the first admin user. {% comment %} https://github.com/github/enterprise2/issues/1889 {% endcomment %}
- Custom firewall rules are not maintained during an upgrade. {% comment %} https://github.com/github/enterprise2/issues/2823 {% endcomment %}
- Git LFS tracked files [uploaded through the web interface](https://github.com/blog/2105-upload-files-to-your-repositories) are incorrectly added directly to the repository. {% comment %} https://github.com/github/github/issues/54684 {% endcomment %}
- Issues cannot be closed if they contain a permalink to a blob in the same repository where the file path is longer than 255 characters. {% comment %} https://github.com/github/github/issues/107731 {% endcomment %}
- When "Users can search GitHub.com" is enabled with GitHub Connect, issues in private and internal repositories are not included in GitHub.com search results. {% comment %} https://github.com/github/admin-experience/issues/571 {% endcomment %}
- Configuration updates will fail when restoring data to a GitHub Actions-enabled instance if the original backup source did not have the feature enabled. {% comment %} https://github.com/github/c2c-actions-runtime/issues/915 {% endcomment %}
- GitHub Actions can fail to start up successfully if it was previously enabled on an instance running 2.22.0 and is upgraded to 2.22.1. (updated 2020-10-23) {% comment %} https://github.com/github/c2c-actions/issues/1680 {% endcomment %}
- On a freshly set up 2.22.1 instance or after upgrading to 2.22.1, the activity feed on an organization's dashboard will no longer update. (updated 2020-10-27) {% comment %}https://github.com/github/enterprise2/issues/23050{% endcomment %}
- Audit logs may be attributed to 127.0.0.1 instead of the actual source IP address. (updated 2020-11-02) {% comment %} https://github.com/github/enterprise2/issues/21514 {% endcomment %}

View File

@@ -0,0 +1,30 @@
date: '2020-10-20'
sections:
security_fixes:
- Packages have been updated to the latest security versions. {% comment %} https://github.com/github/enterprise2/pull/23097, https://github.com/github/enterprise2/pull/23081 {% endcomment %}
bugs:
- |
If the storage account settings failed to validate while configuring GitHub Actions, running `ghe-actions-teardown` was required before making a new attempt. {% comment %} https://github.com/github/enterprise2/pull/23057, https://github.com/github/enterprise2/pull/22981 {% endcomment %}
- |
A custom proxy configuration could adversely affect the GitHub Actions environment. {% comment %} https://github.com/github/enterprise2/pull/23121, https://github.com/github/enterprise2/pull/23092, https://github.com/github/c2c-actions-platform/issues/2254 {% endcomment %}
- |
On a change of an address on eth0, Nomad and Consul could get unresponsive. {% comment %} https://github.com/github/enterprise2/pull/23227, https://github.com/github/enterprise2/pull/23153 {% endcomment %}
- |
When using self-signed certificates, GHES could have SSL validation exceptions upon configuring GitHub Actions. {% comment %} https://github.com/github/enterprise2/pull/23381 {% endcomment %}
- |
Using a GitHub Action from a branch name with a `+` or `/` character resulted in an error: `Unable to resolve action`. {% comment %} https://github.com/github/github/pull/157942, https://github.com/github/github/pull/157819, https://github.com/github/launch/pull/3463 {% endcomment %}
- |
The enterprise account "Confirm two-factor requirement policy" messaging was incorrect. {% comment %} https://github.com/github/github/pull/158735 {% endcomment %}
- |
On certain requests above 100MB, Kafka's buffer could be over-allocated. {% comment %} https://github.com/github/kafka-lite/pull/286, https://github.com/github/kafka-lite/pull/285 {% endcomment %}
known_issues:
- On a freshly set up GitHub Enterprise Server without any users, an attacker could create the first admin user. {% comment %} https://github.com/github/enterprise2/issues/1889 {% endcomment %}
- Custom firewall rules are not maintained during an upgrade. {% comment %} https://github.com/github/enterprise2/issues/2823 {% endcomment %}
- Git LFS tracked files [uploaded through the web interface](https://github.com/blog/2105-upload-files-to-your-repositories) are incorrectly added directly to the repository. {% comment %} https://github.com/github/github/issues/54684 {% endcomment %}
- Issues cannot be closed if they contain a permalink to a blob in the same repository where the file path is longer than 255 characters. {% comment %} https://github.com/github/github/issues/107731 {% endcomment %}
- When "Users can search GitHub.com" is enabled with GitHub Connect, issues in private and internal repositories are not included in GitHub.com search results. {% comment %} https://github.com/github/admin-experience/issues/571 {% endcomment %}
- GitHub Actions can fail to start up successfully if it was previously enabled on an instance running 2.22.0 and is upgraded to 2.22.2. (updated 2020-10-23) {% comment %} https://github.com/github/c2c-actions/issues/1680 {% endcomment %}
- On a freshly set up 2.22.2 instance or after upgrading to 2.22.2, the activity feed on an organization's dashboard will no longer update. (updated 2020-10-27) {% comment %}https://github.com/github/enterprise2/issues/23050{% endcomment %}
- Audit logs may be attributed to 127.0.0.1 instead of the actual source IP address. (updated 2020-11-02) {% comment %} https://github.com/github/enterprise2/issues/21514 {% endcomment %}

View File

@@ -0,0 +1,24 @@
date: '2020-11-03'
sections:
security_fixes:
- |
**LOW:** High CPU usage could be triggered by a specially crafted request to the SVN bridge resulting in Denial of Service (DoS) on the SVN bridge service. (updated 2020-11-16) {% comment %} https://github.com/github/slumlord/pull/1005, https://github.com/github/slumlord/pull/1000 {% endcomment %}
- |
**LOW:** Incorrect token validation resulted in a reduced entropy for matching tokens during authentication. Analysis shows that in practice there's no significant security risk here. {% comment %} https://github.com/github/github/pull/159457, https://github.com/github/github/pull/159193 {% endcomment %}
- |
Packages have been updated to the latest security versions. {% comment %} https://github.com/github/enterprise2/pull/23540, https://github.com/github/enterprise2/pull/23171, https://github.com/github/enterprise2/pull/23693, https://github.com/github/enterprise2/pull/23677 {% endcomment %}
bugs:
- GitHub Actions could fail to start up successfully if it was previously enabled on an instance running 2.22.0 and was upgraded to 2.22.1 or 2.22.2. {% comment %} https://github.com/github/enterprise2/pull/23622, https://github.com/github/enterprise2/pull/23490, https://github.com/github/c2c-actions/issues/1680 {% endcomment %}
- Configuration files for GitHub Actions were not copied to the replica when setting up high availability replicas potentially leading to errors during `ghe-repl-promote`. {% comment %} https://github.com/github/enterprise2/pull/23703, https://github.com/github/enterprise2/pull/23683 {% endcomment %}
- On a freshly set up 2.22.1 or 2.22.2 instance or after upgrading to 2.22.1 or 2.22.2, the activity feed on an organization's dashboard would not update. {% comment %} https://github.com/github/github/pull/159376, https://github.com/github/github/pull/159235, https://github.com/github/enterprise2/issues/23050 {% endcomment %}
- Editing issues templates with filenames containing non-ASCII characters would fail with a "500 Internal Server Error". {% comment %} https://github.com/github/github/pull/160588, https://github.com/github/github/pull/159747 {% endcomment %}
- A metric gathering method for background jobs increased CPU utilization. (updated 2020-11-03) {% comment %} https://github.com/github/github/pull/160109 {% endcomment %}
known_issues:
- On a freshly set up GitHub Enterprise Server without any users, an attacker could create the first admin user. {% comment %} https://github.com/github/enterprise2/issues/1889 {% endcomment %}
- Custom firewall rules are not maintained during an upgrade. {% comment %} https://github.com/github/enterprise2/issues/2823 {% endcomment %}
- Git LFS tracked files [uploaded through the web interface](https://github.com/blog/2105-upload-files-to-your-repositories) are incorrectly added directly to the repository. {% comment %} https://github.com/github/github/issues/54684 {% endcomment %}
- Issues cannot be closed if they contain a permalink to a blob in the same repository where the file path is longer than 255 characters. {% comment %} https://github.com/github/github/issues/107731 {% endcomment %}
- When "Users can search GitHub.com" is enabled with GitHub Connect, issues in private and internal repositories are not included in GitHub.com search results. {% comment %} https://github.com/github/admin-experience/issues/571 {% endcomment %}
- Audit logs may be attributed to 127.0.0.1 instead of the actual source IP address. {% comment %} https://github.com/github/enterprise2/issues/21514 {% endcomment %}

View File

@@ -0,0 +1,17 @@
date: '2020-11-17'
sections:
security_fixes:
- Packages have been updated to the latest security versions. {% comment %} https://github.com/github/enterprise2/pull/23845, https://github.com/github/enterprise2/pull/23712 {% endcomment %}
bugs:
- The babeld logs were missing a separator between seconds and microseconds. {% comment %} https://github.com/github/babeld/pull/1006, https://github.com/github/babeld/pull/1002 {% endcomment %}
- After upgrading GHES with a hotpatch, the `ghe-actions-precheck` and `ghe-packages-precheck` commands would fail with the error `"docker load" accepts no arguments`. {% comment %} https://github.com/github/enterprise2/pull/23760, https://github.com/github/enterprise2/pull/23745 {% endcomment %}
- When the enterprise account "Repository visibility change" policy was set to "Enabled", organization owners could not change the visibility of repositories within the organization. {% comment %} https://github.com/github/github/pull/160920, https://github.com/github/github/pull/160773 {% endcomment %}
- Audit logs could be attributed to 127.0.0.1 instead of the actual source IP address. {% comment %} https://github.com/github/github/pull/162438, https://github.com/github/github/pull/161215 {% endcomment %}
known_issues:
- On a freshly set up GitHub Enterprise Server without any users, an attacker could create the first admin user. {% comment %} https://github.com/github/enterprise2/issues/1889 {% endcomment %}
- Custom firewall rules are not maintained during an upgrade. {% comment %} https://github.com/github/enterprise2/issues/2823 {% endcomment %}
- Git LFS tracked files [uploaded through the web interface](https://github.com/blog/2105-upload-files-to-your-repositories) are incorrectly added directly to the repository. {% comment %} https://github.com/github/github/issues/54684 {% endcomment %}
- Issues cannot be closed if they contain a permalink to a blob in the same repository where the file path is longer than 255 characters. {% comment %} https://github.com/github/github/issues/107731 {% endcomment %}
- When "Users can search GitHub.com" is enabled with GitHub Connect, issues in private and internal repositories are not included in GitHub.com search results. {% comment %} https://github.com/github/admin-experience/issues/571 {% endcomment %}

View File

@@ -66,6 +66,14 @@ contribution_cta:
button: Make a contribution
or: Or,
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:
graphql:
reference:

View File

@@ -287,3 +287,9 @@
- monorepo
- copybara
- workflow
- title: Deploy static files to GitHub Pages
description: GitHub Action to publish website to GitHub Pages automatically
languages: 'TypeScript, JavaScript'
href: peaceiris/actions-gh-pages
tags:
- publishing

View File

@@ -2,6 +2,11 @@
version: 1
links:
- name: Observability docs
description: Docs Engineering observability docs
kind: docs
service: docs-internal
url: https://github.com/github/docs-engineering/blob/main/docs/observability/docs.github.com.md
- name: Datadog dashboard
description: Production Datadog dashboard
kind: dashboard

View File

@@ -1,5 +1,5 @@
{% if page.permalinks and page.permalinks.length > 1 %}
<details class="dropdown-withArrow d-inline-block details details-reset mb-4 position-relative close-when-clicked-outside article-versions">
<details class="dropdown-withArrow d-inline-block details details-reset mb-1 position-relative close-when-clicked-outside article-versions">
<summary class="d-flex flex-items-center flex-justify-between f4 h5-mktg btn-outline-mktg btn-mktg p-2">
<!-- GitHub.com, Enterprise Server 2.16, etc -->
<span class="d-md-none d-xl-inline-block mr-1">{% data ui.pages.article_version %}</span> {{ allVersions[currentVersion].versionTitle }}
@@ -14,6 +14,7 @@
>
{{ allVersions[permalink.pageVersion].versionTitle }}</a>
{% endfor %}
<a class="f6 no-underline text-gray-light pt-1" href="/enterprise-server-releases">See all Enterprise releases</a>
</div>
</details>
{% endif %}

View File

@@ -1,6 +1,6 @@
<head>
<meta charset="utf-8" />
<title>{% if error == '404' %}{% data ui.errors.oops %}{% elsif currentVersion == 'homepage' %}GitHub Documentation{% else %}{{ page.fullTitle }}{% endif %}</title>
<title>{% if error == '404' %}{% data ui.errors.oops %}{% elsif currentVersion == 'homepage' %}GitHub Documentation{% elsif page.fullTitle %}{{ page.fullTitle }}{% else %}GitHub Documentation{% endif %}</title>
<meta name="viewport" content="width=device-width, initial-scale=1">{% if page.hidden %}
<meta name="robots" content="noindex" />{% endif %}
<meta name="google-site-verification" content="OgdQc0GZfjDI52wDv1bkMT-SLpBUo_h5nn9mI9L22xQ" />

View File

@@ -1,12 +1,25 @@
{% assign sectionTitle = section.title | default: 'Misc' %}
{% case sectionTitle %}
{% when "New Feature" %}
{% assign colors = "bg-orange text-white" %}
{% when "Bugs" %}
{% assign colors = "bg-purple text-white" %}
{% case section[0] %}
{% when "features" %}
{% assign colors = "bg-gradient-aquamarine-mauve text-white" %}
{% assign text = "Features" %}
{% when "bugs" %}
{% assign colors = "bg-gradient-red-orange text-white" %}
{% assign text = "Bug fixes" %}
{% when "known_issues" %}
{% assign colors = "bg-gradient-dark-mint text-white" %}
{% assign text = "Known issues" %}
{% when "security_fixes" %}
{% assign colors = "bg-gradient-coral-yellow text-white" %}
{% assign text = "Security fixes" %}
{% when "changes" %}
{% assign colors = "bg-gradient-blue-purple text-white" %}
{% assign text = "Changes" %}
{% when "deprecations" %}
{% assign colors = "bg-gradient-mint-blue text-white" %}
{% assign text = "Deprecations" %}
{% else %}
{% assign colors = "bg-blue text-white" %}
{% assign text = "INVALID SECTION" %}
{% endcase %}
<span class="{{ colors }} px-3 py-2 f5 text-uppercase text-mono">{{ sectionTitle }}</span>
<span class="{{ colors }} px-3 py-2 f5 text-uppercase text-mono">{{ text }}</span>

View File

@@ -0,0 +1,18 @@
{% case section[0] %}
{% when "features" %}
{% assign colors = "text-gradient-aquamarine-mauve" %}
{% when "bugs" %}
{% assign colors = "text-gradient-red-orange" %}
{% when "known_issues" %}
{% assign colors = "text-gradient-dark-mint" %}
{% when "security_fixes" %}
{% assign colors = "text-gradient-coral-yellow-dark" %}
{% when "changes" %}
{% assign colors = "text-gradient-blue-purple" %}
{% when "deprecations" %}
{% assign colors = "text-gradient-dark-mint" %}
{% else %}
{% assign colors = "text-gradient-aquamarine-mauve" %}
{% endcase %}
<h4 class="{{ colors }} text-uppercase text-bold">{{ note.heading }}</h4>

View File

@@ -0,0 +1,64 @@
<!doctype html>
<html lang="{{currentLanguage}}">
{% include head %}
<body class="d-lg-flex">
{% include sidebar %}
<main class="width-full">
<main 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 %}
<h3 id="in-this-article" class="f5 mb-2"><a class="link-gray-dark" href="#in-this-article">{% data ui.pages.miniToc %}</a></h3>
<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 %}
{% include support %}
{% include small-footer %}
</div>
</div>
</article>
</main>
</main>
</body>
</html>

View File

@@ -0,0 +1,35 @@
<!doctype html>
<html lang="{{currentLanguage}}">
{% include head %}
<body class="d-lg-flex">
{% include sidebar %}
<main class="width-full">
{% include header %}
<main 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 class="d-flex flex-items-center" style="height: 39px;">
{% include breadcrumbs %}
</div>
</div>
<h1 class="border-bottom-0">{{ page.title }}</h1>
<div class="mt-2">
<div>
<iframe id="graphiql" class="graphql-explorer" scrolling="no" src="{{ graphql.explorerUrl }}">
<p>You must have iframes enabled to use this feature.</p>
</iframe>
</div>
</div>
</article>
</main>
{% include support %}
{% include small-footer %}
</main>
</body>
</html>

View File

@@ -11,83 +11,133 @@
{% include header %}
{% include deprecation-banner %}
<div class="container-xl px-3 px-md-6 my-4 my-lg-4 markdown-body">
<div class="d-lg-flex flex-justify-between">
<div class="d-block d-lg-none">{% include article-version-switcher %}</div>
<div class="d-flex flex-items-center" style="height: 39px;">
{% include breadcrumbs %}
<div class="d-flex flex-items-stretch">
<article class="flex-auto">
<div class="d-flex flex-items-center flex-justify-between bg-white text-bold py-4 px-5">
{% if prevRelease %}
<a
class="btn btn-outline"
href="/{{ currentLanguage }}/{{ allVersions[currentVersion].plan }}@{{ prevRelease }}/{{ currentProduct }}/release-notes">
{% octicon "chevron-left" %} {{ prevRelease }}
</a>
{% else %}
<div></div>
{% endif %}
<h1 class="f4 p-0 m-0">{{ currentVersion | version_num }} Release notes</h1>
{% if nextRelease %}
<a
class="btn btn-outline"
href="/{{ currentLanguage }}/{{ allVersions[currentVersion].plan }}@{{ nextRelease }}/{{ currentProduct }}/release-notes">
{{ nextRelease }} {% octicon "chevron-right" %}
</a>
{% else %}
<div></div>
{% endif %}
</div>
<div class="d-none d-lg-block">{% include article-version-switcher %}</div>
</div>
<article class="mt-2 d-flex gutter">
<div class="col-12 col-md-10">
<header>
<h1>{{ allVersions[currentVersion].versionTitle }}</h1>
</header>
<div class="markdown-body">
{% for patch in releaseNotes %}
<details id="{{ patch.version }}" class="details-reset mb-3" {% if forloop.first %}open{% endif %}>
<summary class="position-sticky top-0 bg-white pb-2 d-flex flex-items-center flex-justify-between border-bottom">
<h2 class="d-flex flex-items-center border-bottom-0">
{{ patch.version }}
<div id="{{ patch.version }}" class="mb-10 bg-gray-light px-3 py-6 border-bottom border-top">
<header class="container-xl position-sticky top-0 bg-gray-light border-bottom pb-2">
<div class="d-flex flex-items-baseline">
<h2 class="d-flex flex-items-center border-bottom-0 mr-3 mb-0">
{{ allVersions[currentVersion].versionTitle }}.{{ patch.patchVersion }}
{% if patch.release_candidate %}
<span class="IssueLabel bg-orange text-white mx-2">Release Candidate</span>
{% endif %}
</h2>
{% if patch.release_candidate %}
<span class="IssueLabel bg-orange text-white mx-2">Release Candidate</span>
{% endif %}
</h2>
<div>
<span class="text-gray-light text-mono text-small" style="margin-left: auto">{{ patch.date | date: "%B %d, %Y" }}</span>
<a href="https://enterprise.github.com/releases/{{ patch.version }}/download" class="f5">
Download
</a>
<div class="mt-1 d-flex flex-items-center f5">
<a href="https://enterprise.github.com/releases/{{ patch.version }}/download">
Download GHES {{ patch.version }}
</a>
<button class="js-print btn-link ml-6">
Print
</button>
</div>
<button class="js-print btn-link ml-3 f5">
Print
</button>
</div>
</summary>
<p>{{ patch.intro }}</p>
<p class="text-gray mt-1">{{ patch.date | date: "%B %d, %Y" }}</p>
</header>
{% for section in patch.sortedNotes %}
<div class="py-6 border-bottom d-block d-md-flex flex-items-baseline">
<div class="mr-2 flex-shrink-0 mb-3">
{% include 'release-notes-category-label' %}
</div>
<div class="container-xl">
<p class="mt-3">{{ patch.intro }}</p>
<ul class="flex-auto container-xl">
{% for note in section.notes %}
{% if note.note and note.note != '<p>n/a</p>' %}
<li>
{{ note.note }}
{% for section in patch.sections %}
<div class="py-6 d-block d-xl-flex flex-items-baseline {% unless forloop.last %}border-bottom{% endunless %}">
<div class="mr-2 flex-shrink-0 mb-5 col-12 col-xl-3">
{% include 'release-notes-category-label' %}
</div>
<ul class="flex-auto pl-3 pl-xl-0 release-notes-list">
{% for note in section[1] %}
<li class="release-notes-list-item {% if note.heading %}list-style-none{% endif %}">
{% if note.heading %}
{% include 'release-notes-heading' %}
<ul class="pl-3 pb-4 mt-2 release-notes-list">
{% for subNote in note.notes %}
<li class="release-notes-list-item">{{ subNote }}</li>
{% endfor %}
</ul>
{% else %}
{{ note }}
{% endif %}
</li>
{% endif %}
{% endfor %}
</ul>
</div>
{% endfor %}
</details>
{% endfor %}
</ul>
</div>
{% endfor %}
</div>
</div>
{% endfor %}
</div>
</article>
<aside class="col-2 d-none d-md-block no-print">
<h3 class="f5">Patch versions</h3>
<ul>
{% for patch in releaseNotes %}
<li><a href="#{{ patch.version }}">{{ patch.version }}</a></li>
<aside class="markdown-body d-none d-md-block border-left no-print bg-white flex-shrink-0" style="width: 300px">
<nav class="position-sticky top-0">
<ul class="list-style-none pl-0 text-bold">
{% for release in releases %}
<li class="border-bottom">
{% if release.patches %}
<details class="my-0 details-reset release-notes-version-picker" aria-current="page" {% if release.version == allVersions[currentVersion].currentRelease %}open{% endif %}>
<summary class="px-3 py-4 my-0 d-flex flex-items-center flex-justify-between">
{{ release.version }}
<div class="d-flex">
<span class="text-gray-light text-mono text-small text-normal mr-1">{{ release.patches | size }} releases</span>
{% octicon "chevron-down" %}
</div>
</summary>
<ul class="bg-gray border-top list-style-none px-3 py-4 my-0">
{% for patch in release.patches %}
<li>
<a
href="/{{ currentLanguage }}/{{ allVersions[currentVersion].plan }}@{{ release.version }}/{{ currentProduct }}/release-notes#{{ patch.version }}"
class="d-flex flex-items-center flex-justify-between">
{{ patch.version }}
<span class="text-gray-light text-mono text-small text-normal">{{ patch.date | date: "%B %d, %Y" }}</span>
</a>
</li>
{% endfor %}
</ul>
</details>
{% else %}
<a href="/{{ currentLanguage }}/{{ allVersions[currentVersion].plan }}@{{ release.version }}/{{ currentProduct }}/release-notes" class="link-gray-dark no-underline px-3 py-4 my-0 d-flex flex-items-center flex-justify-between">
{{ release.version }}
{% octicon "link-external" %}
</a>
{% endif %}
</li>
{% endfor %}
</ul>
</aside>
</article>
</nav>
</aside>
</div>
{% include support %}
{% include small-footer %}
<div class="border-top">
{% include small-footer %}
</div>
</main>
</body>
</html>

View File

@@ -44,6 +44,9 @@ const lastVersionWithoutStubbedRedirectFiles = '2.17'
// last version using paths like /enterprise/<release>/<user>/<product>/<category>/<article>
// instead of /enterprise-server@<release>/<product>/<category>/<article>
const lastReleaseWithLegacyFormat = '2.18'
const deprecatedReleasesWithLegacyFormat = deprecated.filter(version => versionSatisfiesRange(version, '<=2.18'))
const deprecatedReleasesWithNewFormat = deprecated.filter(version => versionSatisfiesRange(version, '>2.18'))
const deprecatedReleasesOnDeveloperSite = deprecated.filter(version => versionSatisfiesRange(version, '<=2.16'))
module.exports = {
supported,
@@ -57,5 +60,8 @@ module.exports = {
dates,
firstVersionDeprecatedOnNewSite,
lastVersionWithoutStubbedRedirectFiles,
lastReleaseWithLegacyFormat
lastReleaseWithLegacyFormat,
deprecatedReleasesWithLegacyFormat,
deprecatedReleasesWithNewFormat,
deprecatedReleasesOnDeveloperSite
}

View File

@@ -1,8 +1,32 @@
const section = {
anyOf: [
{
type: 'array',
items: { type: 'string' },
minItems: 1
},
{
type: 'object',
properties: {
heading: {
type: 'string',
required: true
},
notes: {
type: 'array',
items: { type: 'string' },
required: true,
minItems: 1
}
}
}
]
}
module.exports = {
properties: {
intro: {
type: 'string',
required: true
type: 'string'
},
date: {
type: 'string',
@@ -13,22 +37,18 @@ module.exports = {
type: 'boolean',
default: false
},
notes: {
sections: {
required: true,
type: 'array',
items: {
type: 'object',
properties: {
note: {
type: 'string',
required: true
},
type: {
type: 'string',
required: true
}
}
}
type: 'object',
minProperties: 1,
properties: [
'bugs',
'known_issues',
'features',
'changes',
'deprecations',
'security_fixes'
].reduce((prev, curr) => ({ ...prev, [curr]: section }), {})
}
}
}

View File

@@ -49098,11 +49098,11 @@
},
"base_tree": {
"type": "string",
"description": "<p>The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted.</p>",
"description": "<p>The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by <code>base_tree</code> and entries defined in the <code>tree</code> parameter. Entries defined in the <code>tree</code> parameter will overwrite items from <code>base_tree</code> with the same <code>path</code>. If you're creating new changes on a branch, then normally you'd set <code>base_tree</code> to the SHA1 of the Git tree object of the current latest commit on the branch you're working on.\nIf not provided, GitHub will create a new Git tree object from only the entries defined in the <code>tree</code> parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the <code>tree</code> parameter will be listed as deleted by the new commit.</p>",
"name": "base_tree",
"in": "body",
"rawType": "string",
"rawDescription": "The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted.",
"rawDescription": "The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by `base_tree` and entries defined in the `tree` parameter. Entries defined in the `tree` parameter will overwrite items from `base_tree` with the same `path`. If you're creating new changes on a branch, then normally you'd set `base_tree` to the SHA1 of the Git tree object of the current latest commit on the branch you're working on.\nIf not provided, GitHub will create a new Git tree object from only the entries defined in the `tree` parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the `tree` parameter will be listed as deleted by the new commit.\n",
"childParamsGroups": []
}
},
@@ -49302,11 +49302,11 @@
},
{
"type": "string",
"description": "<p>The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted.</p>",
"description": "<p>The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by <code>base_tree</code> and entries defined in the <code>tree</code> parameter. Entries defined in the <code>tree</code> parameter will overwrite items from <code>base_tree</code> with the same <code>path</code>. If you're creating new changes on a branch, then normally you'd set <code>base_tree</code> to the SHA1 of the Git tree object of the current latest commit on the branch you're working on.\nIf not provided, GitHub will create a new Git tree object from only the entries defined in the <code>tree</code> parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the <code>tree</code> parameter will be listed as deleted by the new commit.</p>",
"name": "base_tree",
"in": "body",
"rawType": "string",
"rawDescription": "The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted.",
"rawDescription": "The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by `base_tree` and entries defined in the `tree` parameter. Entries defined in the `tree` parameter will overwrite items from `base_tree` with the same `path`. If you're creating new changes on a branch, then normally you'd set `base_tree` to the SHA1 of the Git tree object of the current latest commit on the branch you're working on.\nIf not provided, GitHub will create a new Git tree object from only the entries defined in the `tree` parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the `tree` parameter will be listed as deleted by the new commit.\n",
"childParamsGroups": []
}
]
@@ -80855,7 +80855,7 @@
"httpStatusCode": "200",
"httpStatusMessage": "OK",
"description": "Default response",
"payload": "<pre><code class=\"hljs language-json\">[\n {\n <span class=\"hljs-attr\">\"billing_cycle\"</span>: <span class=\"hljs-string\">\"monthly\"</span>,\n <span class=\"hljs-attr\">\"next_billing_date\"</span>: <span class=\"hljs-string\">\"2017-11-11T00:00:00Z\"</span>,\n <span class=\"hljs-attr\">\"unit_count\"</span>: <span class=\"hljs-literal\">null</span>,\n <span class=\"hljs-attr\">\"on_free_trial\"</span>: <span class=\"hljs-literal\">true</span>,\n <span class=\"hljs-attr\">\"free_trial_ends_on\"</span>: <span class=\"hljs-string\">\"2017-11-11T00:00:00Z\"</span>,\n <span class=\"hljs-attr\">\"updated_at\"</span>: <span class=\"hljs-string\">\"2017-11-02T01:12:12Z\"</span>,\n <span class=\"hljs-attr\">\"account\"</span>: {\n <span class=\"hljs-attr\">\"login\"</span>: <span class=\"hljs-string\">\"github\"</span>,\n <span class=\"hljs-attr\">\"id\"</span>: <span class=\"hljs-number\">4</span>,\n <span class=\"hljs-attr\">\"url\"</span>: <span class=\"hljs-string\">\"https://api.github.com/orgs/github\"</span>,\n <span class=\"hljs-attr\">\"email\"</span>: <span class=\"hljs-literal\">null</span>,\n <span class=\"hljs-attr\">\"organization_billing_email\"</span>: <span class=\"hljs-string\">\"billing@github.com\"</span>,\n <span class=\"hljs-attr\">\"type\"</span>: <span class=\"hljs-string\">\"Organization\"</span>\n },\n <span class=\"hljs-attr\">\"plan\"</span>: {\n <span class=\"hljs-attr\">\"url\"</span>: <span class=\"hljs-string\">\"https://api.github.com/marketplace_listing/plans/1313\"</span>,\n <span class=\"hljs-attr\">\"accounts_url\"</span>: <span class=\"hljs-string\">\"https://api.github.com/marketplace_listing/plans/1313/accounts\"</span>,\n <span class=\"hljs-attr\">\"id\"</span>: <span class=\"hljs-number\">1313</span>,\n <span class=\"hljs-attr\">\"number\"</span>: <span class=\"hljs-number\">3</span>,\n <span class=\"hljs-attr\">\"name\"</span>: <span class=\"hljs-string\">\"Pro\"</span>,\n <span class=\"hljs-attr\">\"description\"</span>: <span class=\"hljs-string\">\"A professional-grade CI solution\"</span>,\n <span class=\"hljs-attr\">\"monthly_price_in_cents\"</span>: <span class=\"hljs-number\">1099</span>,\n <span class=\"hljs-attr\">\"yearly_price_in_cents\"</span>: <span class=\"hljs-number\">11870</span>,\n <span class=\"hljs-attr\">\"price_model\"</span>: <span class=\"hljs-string\">\"flat-rate\"</span>,\n <span class=\"hljs-attr\">\"has_free_trial\"</span>: <span class=\"hljs-literal\">true</span>,\n <span class=\"hljs-attr\">\"unit_name\"</span>: <span class=\"hljs-literal\">null</span>,\n <span class=\"hljs-attr\">\"state\"</span>: <span class=\"hljs-string\">\"published\"</span>,\n <span class=\"hljs-attr\">\"bullets\"</span>: [\n <span class=\"hljs-string\">\"Up to 25 private repositories\"</span>,\n <span class=\"hljs-string\">\"11 concurrent builds\"</span>\n ]\n }\n }\n]\n</code></pre>"
"payload": "<pre><code class=\"hljs language-json\">[\n {\n <span class=\"hljs-attr\">\"billing_cycle\"</span>: <span class=\"hljs-string\">\"monthly\"</span>,\n <span class=\"hljs-attr\">\"next_billing_date\"</span>: <span class=\"hljs-string\">\"2017-11-11T00:00:00Z\"</span>,\n <span class=\"hljs-attr\">\"unit_count\"</span>: <span class=\"hljs-literal\">null</span>,\n <span class=\"hljs-attr\">\"on_free_trial\"</span>: <span class=\"hljs-literal\">true</span>,\n <span class=\"hljs-attr\">\"free_trial_ends_on\"</span>: <span class=\"hljs-string\">\"2017-11-11T00:00:00Z\"</span>,\n <span class=\"hljs-attr\">\"updated_at\"</span>: <span class=\"hljs-string\">\"2017-11-02T01:12:12Z\"</span>,\n <span class=\"hljs-attr\">\"account\"</span>: {\n <span class=\"hljs-attr\">\"login\"</span>: <span class=\"hljs-string\">\"github\"</span>,\n <span class=\"hljs-attr\">\"id\"</span>: <span class=\"hljs-number\">4</span>,\n <span class=\"hljs-attr\">\"node_id\"</span>: <span class=\"hljs-string\">\"MDEyOk9yZ2FuaXphdGlvbjE=\"</span>,\n <span class=\"hljs-attr\">\"url\"</span>: <span class=\"hljs-string\">\"https://api.github.com/orgs/github\"</span>,\n <span class=\"hljs-attr\">\"email\"</span>: <span class=\"hljs-literal\">null</span>,\n <span class=\"hljs-attr\">\"organization_billing_email\"</span>: <span class=\"hljs-string\">\"billing@github.com\"</span>,\n <span class=\"hljs-attr\">\"type\"</span>: <span class=\"hljs-string\">\"Organization\"</span>\n },\n <span class=\"hljs-attr\">\"plan\"</span>: {\n <span class=\"hljs-attr\">\"url\"</span>: <span class=\"hljs-string\">\"https://api.github.com/marketplace_listing/plans/1313\"</span>,\n <span class=\"hljs-attr\">\"accounts_url\"</span>: <span class=\"hljs-string\">\"https://api.github.com/marketplace_listing/plans/1313/accounts\"</span>,\n <span class=\"hljs-attr\">\"id\"</span>: <span class=\"hljs-number\">1313</span>,\n <span class=\"hljs-attr\">\"number\"</span>: <span class=\"hljs-number\">3</span>,\n <span class=\"hljs-attr\">\"name\"</span>: <span class=\"hljs-string\">\"Pro\"</span>,\n <span class=\"hljs-attr\">\"description\"</span>: <span class=\"hljs-string\">\"A professional-grade CI solution\"</span>,\n <span class=\"hljs-attr\">\"monthly_price_in_cents\"</span>: <span class=\"hljs-number\">1099</span>,\n <span class=\"hljs-attr\">\"yearly_price_in_cents\"</span>: <span class=\"hljs-number\">11870</span>,\n <span class=\"hljs-attr\">\"price_model\"</span>: <span class=\"hljs-string\">\"flat-rate\"</span>,\n <span class=\"hljs-attr\">\"has_free_trial\"</span>: <span class=\"hljs-literal\">true</span>,\n <span class=\"hljs-attr\">\"unit_name\"</span>: <span class=\"hljs-literal\">null</span>,\n <span class=\"hljs-attr\">\"state\"</span>: <span class=\"hljs-string\">\"published\"</span>,\n <span class=\"hljs-attr\">\"bullets\"</span>: [\n <span class=\"hljs-string\">\"Up to 25 private repositories\"</span>,\n <span class=\"hljs-string\">\"11 concurrent builds\"</span>\n ]\n }\n }\n]\n</code></pre>"
},
{
"httpStatusCode": "304",
@@ -80942,7 +80942,7 @@
"httpStatusCode": "200",
"httpStatusMessage": "OK",
"description": "Default response",
"payload": "<pre><code class=\"hljs language-json\">[\n {\n <span class=\"hljs-attr\">\"billing_cycle\"</span>: <span class=\"hljs-string\">\"monthly\"</span>,\n <span class=\"hljs-attr\">\"next_billing_date\"</span>: <span class=\"hljs-string\">\"2017-11-11T00:00:00Z\"</span>,\n <span class=\"hljs-attr\">\"unit_count\"</span>: <span class=\"hljs-literal\">null</span>,\n <span class=\"hljs-attr\">\"on_free_trial\"</span>: <span class=\"hljs-literal\">true</span>,\n <span class=\"hljs-attr\">\"free_trial_ends_on\"</span>: <span class=\"hljs-string\">\"2017-11-11T00:00:00Z\"</span>,\n <span class=\"hljs-attr\">\"updated_at\"</span>: <span class=\"hljs-string\">\"2017-11-02T01:12:12Z\"</span>,\n <span class=\"hljs-attr\">\"account\"</span>: {\n <span class=\"hljs-attr\">\"login\"</span>: <span class=\"hljs-string\">\"github\"</span>,\n <span class=\"hljs-attr\">\"id\"</span>: <span class=\"hljs-number\">4</span>,\n <span class=\"hljs-attr\">\"url\"</span>: <span class=\"hljs-string\">\"https://api.github.com/orgs/github\"</span>,\n <span class=\"hljs-attr\">\"email\"</span>: <span class=\"hljs-literal\">null</span>,\n <span class=\"hljs-attr\">\"organization_billing_email\"</span>: <span class=\"hljs-string\">\"billing@github.com\"</span>,\n <span class=\"hljs-attr\">\"type\"</span>: <span class=\"hljs-string\">\"Organization\"</span>\n },\n <span class=\"hljs-attr\">\"plan\"</span>: {\n <span class=\"hljs-attr\">\"url\"</span>: <span class=\"hljs-string\">\"https://api.github.com/marketplace_listing/plans/1313\"</span>,\n <span class=\"hljs-attr\">\"accounts_url\"</span>: <span class=\"hljs-string\">\"https://api.github.com/marketplace_listing/plans/1313/accounts\"</span>,\n <span class=\"hljs-attr\">\"id\"</span>: <span class=\"hljs-number\">1313</span>,\n <span class=\"hljs-attr\">\"number\"</span>: <span class=\"hljs-number\">3</span>,\n <span class=\"hljs-attr\">\"name\"</span>: <span class=\"hljs-string\">\"Pro\"</span>,\n <span class=\"hljs-attr\">\"description\"</span>: <span class=\"hljs-string\">\"A professional-grade CI solution\"</span>,\n <span class=\"hljs-attr\">\"monthly_price_in_cents\"</span>: <span class=\"hljs-number\">1099</span>,\n <span class=\"hljs-attr\">\"yearly_price_in_cents\"</span>: <span class=\"hljs-number\">11870</span>,\n <span class=\"hljs-attr\">\"price_model\"</span>: <span class=\"hljs-string\">\"flat-rate\"</span>,\n <span class=\"hljs-attr\">\"has_free_trial\"</span>: <span class=\"hljs-literal\">true</span>,\n <span class=\"hljs-attr\">\"unit_name\"</span>: <span class=\"hljs-literal\">null</span>,\n <span class=\"hljs-attr\">\"state\"</span>: <span class=\"hljs-string\">\"published\"</span>,\n <span class=\"hljs-attr\">\"bullets\"</span>: [\n <span class=\"hljs-string\">\"Up to 25 private repositories\"</span>,\n <span class=\"hljs-string\">\"11 concurrent builds\"</span>\n ]\n }\n }\n]\n</code></pre>"
"payload": "<pre><code class=\"hljs language-json\">[\n {\n <span class=\"hljs-attr\">\"billing_cycle\"</span>: <span class=\"hljs-string\">\"monthly\"</span>,\n <span class=\"hljs-attr\">\"next_billing_date\"</span>: <span class=\"hljs-string\">\"2017-11-11T00:00:00Z\"</span>,\n <span class=\"hljs-attr\">\"unit_count\"</span>: <span class=\"hljs-literal\">null</span>,\n <span class=\"hljs-attr\">\"on_free_trial\"</span>: <span class=\"hljs-literal\">true</span>,\n <span class=\"hljs-attr\">\"free_trial_ends_on\"</span>: <span class=\"hljs-string\">\"2017-11-11T00:00:00Z\"</span>,\n <span class=\"hljs-attr\">\"updated_at\"</span>: <span class=\"hljs-string\">\"2017-11-02T01:12:12Z\"</span>,\n <span class=\"hljs-attr\">\"account\"</span>: {\n <span class=\"hljs-attr\">\"login\"</span>: <span class=\"hljs-string\">\"github\"</span>,\n <span class=\"hljs-attr\">\"id\"</span>: <span class=\"hljs-number\">4</span>,\n <span class=\"hljs-attr\">\"node_id\"</span>: <span class=\"hljs-string\">\"MDEyOk9yZ2FuaXphdGlvbjE=\"</span>,\n <span class=\"hljs-attr\">\"url\"</span>: <span class=\"hljs-string\">\"https://api.github.com/orgs/github\"</span>,\n <span class=\"hljs-attr\">\"email\"</span>: <span class=\"hljs-literal\">null</span>,\n <span class=\"hljs-attr\">\"organization_billing_email\"</span>: <span class=\"hljs-string\">\"billing@github.com\"</span>,\n <span class=\"hljs-attr\">\"type\"</span>: <span class=\"hljs-string\">\"Organization\"</span>\n },\n <span class=\"hljs-attr\">\"plan\"</span>: {\n <span class=\"hljs-attr\">\"url\"</span>: <span class=\"hljs-string\">\"https://api.github.com/marketplace_listing/plans/1313\"</span>,\n <span class=\"hljs-attr\">\"accounts_url\"</span>: <span class=\"hljs-string\">\"https://api.github.com/marketplace_listing/plans/1313/accounts\"</span>,\n <span class=\"hljs-attr\">\"id\"</span>: <span class=\"hljs-number\">1313</span>,\n <span class=\"hljs-attr\">\"number\"</span>: <span class=\"hljs-number\">3</span>,\n <span class=\"hljs-attr\">\"name\"</span>: <span class=\"hljs-string\">\"Pro\"</span>,\n <span class=\"hljs-attr\">\"description\"</span>: <span class=\"hljs-string\">\"A professional-grade CI solution\"</span>,\n <span class=\"hljs-attr\">\"monthly_price_in_cents\"</span>: <span class=\"hljs-number\">1099</span>,\n <span class=\"hljs-attr\">\"yearly_price_in_cents\"</span>: <span class=\"hljs-number\">11870</span>,\n <span class=\"hljs-attr\">\"price_model\"</span>: <span class=\"hljs-string\">\"flat-rate\"</span>,\n <span class=\"hljs-attr\">\"has_free_trial\"</span>: <span class=\"hljs-literal\">true</span>,\n <span class=\"hljs-attr\">\"unit_name\"</span>: <span class=\"hljs-literal\">null</span>,\n <span class=\"hljs-attr\">\"state\"</span>: <span class=\"hljs-string\">\"published\"</span>,\n <span class=\"hljs-attr\">\"bullets\"</span>: [\n <span class=\"hljs-string\">\"Up to 25 private repositories\"</span>,\n <span class=\"hljs-string\">\"11 concurrent builds\"</span>\n ]\n }\n }\n]\n</code></pre>"
},
{
"httpStatusCode": "304",

View File

@@ -34324,11 +34324,11 @@
},
"base_tree": {
"type": "string",
"description": "<p>The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted.</p>",
"description": "<p>The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by <code>base_tree</code> and entries defined in the <code>tree</code> parameter. Entries defined in the <code>tree</code> parameter will overwrite items from <code>base_tree</code> with the same <code>path</code>. If you're creating new changes on a branch, then normally you'd set <code>base_tree</code> to the SHA1 of the Git tree object of the current latest commit on the branch you're working on.\nIf not provided, GitHub will create a new Git tree object from only the entries defined in the <code>tree</code> parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the <code>tree</code> parameter will be listed as deleted by the new commit.</p>",
"name": "base_tree",
"in": "body",
"rawType": "string",
"rawDescription": "The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted.",
"rawDescription": "The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by `base_tree` and entries defined in the `tree` parameter. Entries defined in the `tree` parameter will overwrite items from `base_tree` with the same `path`. If you're creating new changes on a branch, then normally you'd set `base_tree` to the SHA1 of the Git tree object of the current latest commit on the branch you're working on.\nIf not provided, GitHub will create a new Git tree object from only the entries defined in the `tree` parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the `tree` parameter will be listed as deleted by the new commit.\n",
"childParamsGroups": []
}
},
@@ -34528,11 +34528,11 @@
},
{
"type": "string",
"description": "<p>The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted.</p>",
"description": "<p>The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by <code>base_tree</code> and entries defined in the <code>tree</code> parameter. Entries defined in the <code>tree</code> parameter will overwrite items from <code>base_tree</code> with the same <code>path</code>. If you're creating new changes on a branch, then normally you'd set <code>base_tree</code> to the SHA1 of the Git tree object of the current latest commit on the branch you're working on.\nIf not provided, GitHub will create a new Git tree object from only the entries defined in the <code>tree</code> parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the <code>tree</code> parameter will be listed as deleted by the new commit.</p>",
"name": "base_tree",
"in": "body",
"rawType": "string",
"rawDescription": "The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted.",
"rawDescription": "The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by `base_tree` and entries defined in the `tree` parameter. Entries defined in the `tree` parameter will overwrite items from `base_tree` with the same `path`. If you're creating new changes on a branch, then normally you'd set `base_tree` to the SHA1 of the Git tree object of the current latest commit on the branch you're working on.\nIf not provided, GitHub will create a new Git tree object from only the entries defined in the `tree` parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the `tree` parameter will be listed as deleted by the new commit.\n",
"childParamsGroups": []
}
]

View File

@@ -34983,11 +34983,11 @@
},
"base_tree": {
"type": "string",
"description": "<p>The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted.</p>",
"description": "<p>The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by <code>base_tree</code> and entries defined in the <code>tree</code> parameter. Entries defined in the <code>tree</code> parameter will overwrite items from <code>base_tree</code> with the same <code>path</code>. If you're creating new changes on a branch, then normally you'd set <code>base_tree</code> to the SHA1 of the Git tree object of the current latest commit on the branch you're working on.\nIf not provided, GitHub will create a new Git tree object from only the entries defined in the <code>tree</code> parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the <code>tree</code> parameter will be listed as deleted by the new commit.</p>",
"name": "base_tree",
"in": "body",
"rawType": "string",
"rawDescription": "The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted.",
"rawDescription": "The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by `base_tree` and entries defined in the `tree` parameter. Entries defined in the `tree` parameter will overwrite items from `base_tree` with the same `path`. If you're creating new changes on a branch, then normally you'd set `base_tree` to the SHA1 of the Git tree object of the current latest commit on the branch you're working on.\nIf not provided, GitHub will create a new Git tree object from only the entries defined in the `tree` parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the `tree` parameter will be listed as deleted by the new commit.\n",
"childParamsGroups": []
}
},
@@ -35187,11 +35187,11 @@
},
{
"type": "string",
"description": "<p>The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted.</p>",
"description": "<p>The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by <code>base_tree</code> and entries defined in the <code>tree</code> parameter. Entries defined in the <code>tree</code> parameter will overwrite items from <code>base_tree</code> with the same <code>path</code>. If you're creating new changes on a branch, then normally you'd set <code>base_tree</code> to the SHA1 of the Git tree object of the current latest commit on the branch you're working on.\nIf not provided, GitHub will create a new Git tree object from only the entries defined in the <code>tree</code> parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the <code>tree</code> parameter will be listed as deleted by the new commit.</p>",
"name": "base_tree",
"in": "body",
"rawType": "string",
"rawDescription": "The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted.",
"rawDescription": "The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by `base_tree` and entries defined in the `tree` parameter. Entries defined in the `tree` parameter will overwrite items from `base_tree` with the same `path`. If you're creating new changes on a branch, then normally you'd set `base_tree` to the SHA1 of the Git tree object of the current latest commit on the branch you're working on.\nIf not provided, GitHub will create a new Git tree object from only the entries defined in the `tree` parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the `tree` parameter will be listed as deleted by the new commit.\n",
"childParamsGroups": []
}
]

View File

@@ -35450,11 +35450,11 @@
},
"base_tree": {
"type": "string",
"description": "<p>The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted.</p>",
"description": "<p>The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by <code>base_tree</code> and entries defined in the <code>tree</code> parameter. Entries defined in the <code>tree</code> parameter will overwrite items from <code>base_tree</code> with the same <code>path</code>. If you're creating new changes on a branch, then normally you'd set <code>base_tree</code> to the SHA1 of the Git tree object of the current latest commit on the branch you're working on.\nIf not provided, GitHub will create a new Git tree object from only the entries defined in the <code>tree</code> parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the <code>tree</code> parameter will be listed as deleted by the new commit.</p>",
"name": "base_tree",
"in": "body",
"rawType": "string",
"rawDescription": "The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted.",
"rawDescription": "The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by `base_tree` and entries defined in the `tree` parameter. Entries defined in the `tree` parameter will overwrite items from `base_tree` with the same `path`. If you're creating new changes on a branch, then normally you'd set `base_tree` to the SHA1 of the Git tree object of the current latest commit on the branch you're working on.\nIf not provided, GitHub will create a new Git tree object from only the entries defined in the `tree` parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the `tree` parameter will be listed as deleted by the new commit.\n",
"childParamsGroups": []
}
},
@@ -35654,11 +35654,11 @@
},
{
"type": "string",
"description": "<p>The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted.</p>",
"description": "<p>The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by <code>base_tree</code> and entries defined in the <code>tree</code> parameter. Entries defined in the <code>tree</code> parameter will overwrite items from <code>base_tree</code> with the same <code>path</code>. If you're creating new changes on a branch, then normally you'd set <code>base_tree</code> to the SHA1 of the Git tree object of the current latest commit on the branch you're working on.\nIf not provided, GitHub will create a new Git tree object from only the entries defined in the <code>tree</code> parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the <code>tree</code> parameter will be listed as deleted by the new commit.</p>",
"name": "base_tree",
"in": "body",
"rawType": "string",
"rawDescription": "The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted.",
"rawDescription": "The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by `base_tree` and entries defined in the `tree` parameter. Entries defined in the `tree` parameter will overwrite items from `base_tree` with the same `path`. If you're creating new changes on a branch, then normally you'd set `base_tree` to the SHA1 of the Git tree object of the current latest commit on the branch you're working on.\nIf not provided, GitHub will create a new Git tree object from only the entries defined in the `tree` parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the `tree` parameter will be listed as deleted by the new commit.\n",
"childParamsGroups": []
}
]

View File

@@ -39099,11 +39099,11 @@
},
"base_tree": {
"type": "string",
"description": "<p>The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted.</p>",
"description": "<p>The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by <code>base_tree</code> and entries defined in the <code>tree</code> parameter. Entries defined in the <code>tree</code> parameter will overwrite items from <code>base_tree</code> with the same <code>path</code>. If you're creating new changes on a branch, then normally you'd set <code>base_tree</code> to the SHA1 of the Git tree object of the current latest commit on the branch you're working on.\nIf not provided, GitHub will create a new Git tree object from only the entries defined in the <code>tree</code> parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the <code>tree</code> parameter will be listed as deleted by the new commit.</p>",
"name": "base_tree",
"in": "body",
"rawType": "string",
"rawDescription": "The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted.",
"rawDescription": "The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by `base_tree` and entries defined in the `tree` parameter. Entries defined in the `tree` parameter will overwrite items from `base_tree` with the same `path`. If you're creating new changes on a branch, then normally you'd set `base_tree` to the SHA1 of the Git tree object of the current latest commit on the branch you're working on.\nIf not provided, GitHub will create a new Git tree object from only the entries defined in the `tree` parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the `tree` parameter will be listed as deleted by the new commit.\n",
"childParamsGroups": []
}
},
@@ -39303,11 +39303,11 @@
},
{
"type": "string",
"description": "<p>The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted.</p>",
"description": "<p>The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by <code>base_tree</code> and entries defined in the <code>tree</code> parameter. Entries defined in the <code>tree</code> parameter will overwrite items from <code>base_tree</code> with the same <code>path</code>. If you're creating new changes on a branch, then normally you'd set <code>base_tree</code> to the SHA1 of the Git tree object of the current latest commit on the branch you're working on.\nIf not provided, GitHub will create a new Git tree object from only the entries defined in the <code>tree</code> parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the <code>tree</code> parameter will be listed as deleted by the new commit.</p>",
"name": "base_tree",
"in": "body",
"rawType": "string",
"rawDescription": "The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted.",
"rawDescription": "The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by `base_tree` and entries defined in the `tree` parameter. Entries defined in the `tree` parameter will overwrite items from `base_tree` with the same `path`. If you're creating new changes on a branch, then normally you'd set `base_tree` to the SHA1 of the Git tree object of the current latest commit on the branch you're working on.\nIf not provided, GitHub will create a new Git tree object from only the entries defined in the `tree` parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the `tree` parameter will be listed as deleted by the new commit.\n",
"childParamsGroups": []
}
]

View File

@@ -46564,11 +46564,11 @@
},
"base_tree": {
"type": "string",
"description": "<p>The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted.</p>",
"description": "<p>The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by <code>base_tree</code> and entries defined in the <code>tree</code> parameter. Entries defined in the <code>tree</code> parameter will overwrite items from <code>base_tree</code> with the same <code>path</code>. If you're creating new changes on a branch, then normally you'd set <code>base_tree</code> to the SHA1 of the Git tree object of the current latest commit on the branch you're working on.\nIf not provided, GitHub will create a new Git tree object from only the entries defined in the <code>tree</code> parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the <code>tree</code> parameter will be listed as deleted by the new commit.</p>",
"name": "base_tree",
"in": "body",
"rawType": "string",
"rawDescription": "The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted.",
"rawDescription": "The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by `base_tree` and entries defined in the `tree` parameter. Entries defined in the `tree` parameter will overwrite items from `base_tree` with the same `path`. If you're creating new changes on a branch, then normally you'd set `base_tree` to the SHA1 of the Git tree object of the current latest commit on the branch you're working on.\nIf not provided, GitHub will create a new Git tree object from only the entries defined in the `tree` parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the `tree` parameter will be listed as deleted by the new commit.\n",
"childParamsGroups": []
}
},
@@ -46768,11 +46768,11 @@
},
{
"type": "string",
"description": "<p>The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted.</p>",
"description": "<p>The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by <code>base_tree</code> and entries defined in the <code>tree</code> parameter. Entries defined in the <code>tree</code> parameter will overwrite items from <code>base_tree</code> with the same <code>path</code>. If you're creating new changes on a branch, then normally you'd set <code>base_tree</code> to the SHA1 of the Git tree object of the current latest commit on the branch you're working on.\nIf not provided, GitHub will create a new Git tree object from only the entries defined in the <code>tree</code> parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the <code>tree</code> parameter will be listed as deleted by the new commit.</p>",
"name": "base_tree",
"in": "body",
"rawType": "string",
"rawDescription": "The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted.",
"rawDescription": "The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by `base_tree` and entries defined in the `tree` parameter. Entries defined in the `tree` parameter will overwrite items from `base_tree` with the same `path`. If you're creating new changes on a branch, then normally you'd set `base_tree` to the SHA1 of the Git tree object of the current latest commit on the branch you're working on.\nIf not provided, GitHub will create a new Git tree object from only the entries defined in the `tree` parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the `tree` parameter will be listed as deleted by the new commit.\n",
"childParamsGroups": []
}
]

View File

@@ -36969,11 +36969,11 @@
},
"base_tree": {
"type": "string",
"description": "<p>The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted.</p>",
"description": "<p>The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by <code>base_tree</code> and entries defined in the <code>tree</code> parameter. Entries defined in the <code>tree</code> parameter will overwrite items from <code>base_tree</code> with the same <code>path</code>. If you're creating new changes on a branch, then normally you'd set <code>base_tree</code> to the SHA1 of the Git tree object of the current latest commit on the branch you're working on.\nIf not provided, GitHub will create a new Git tree object from only the entries defined in the <code>tree</code> parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the <code>tree</code> parameter will be listed as deleted by the new commit.</p>",
"name": "base_tree",
"in": "body",
"rawType": "string",
"rawDescription": "The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted.",
"rawDescription": "The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by `base_tree` and entries defined in the `tree` parameter. Entries defined in the `tree` parameter will overwrite items from `base_tree` with the same `path`. If you're creating new changes on a branch, then normally you'd set `base_tree` to the SHA1 of the Git tree object of the current latest commit on the branch you're working on.\nIf not provided, GitHub will create a new Git tree object from only the entries defined in the `tree` parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the `tree` parameter will be listed as deleted by the new commit.\n",
"childParamsGroups": []
}
},
@@ -37173,11 +37173,11 @@
},
{
"type": "string",
"description": "<p>The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted.</p>",
"description": "<p>The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by <code>base_tree</code> and entries defined in the <code>tree</code> parameter. Entries defined in the <code>tree</code> parameter will overwrite items from <code>base_tree</code> with the same <code>path</code>. If you're creating new changes on a branch, then normally you'd set <code>base_tree</code> to the SHA1 of the Git tree object of the current latest commit on the branch you're working on.\nIf not provided, GitHub will create a new Git tree object from only the entries defined in the <code>tree</code> parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the <code>tree</code> parameter will be listed as deleted by the new commit.</p>",
"name": "base_tree",
"in": "body",
"rawType": "string",
"rawDescription": "The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted.",
"rawDescription": "The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by `base_tree` and entries defined in the `tree` parameter. Entries defined in the `tree` parameter will overwrite items from `base_tree` with the same `path`. If you're creating new changes on a branch, then normally you'd set `base_tree` to the SHA1 of the Git tree object of the current latest commit on the branch you're working on.\nIf not provided, GitHub will create a new Git tree object from only the entries defined in the `tree` parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the `tree` parameter will be listed as deleted by the new commit.\n",
"childParamsGroups": []
}
]

View File

@@ -155506,7 +155506,7 @@
},
"base_tree": {
"type": "string",
"description": "The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted."
"description": "The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by `base_tree` and entries defined in the `tree` parameter. Entries defined in the `tree` parameter will overwrite items from `base_tree` with the same `path`. If you're creating new changes on a branch, then normally you'd set `base_tree` to the SHA1 of the Git tree object of the current latest commit on the branch you're working on.\nIf not provided, GitHub will create a new Git tree object from only the entries defined in the `tree` parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the `tree` parameter will be listed as deleted by the new commit.\n"
}
},
"required": [
@@ -270539,6 +270539,7 @@
"account": {
"login": "github",
"id": 4,
"node_id": "MDEyOk9yZ2FuaXphdGlvbjE=",
"url": "https://api.github.com/orgs/github",
"email": null,
"organization_billing_email": "billing@github.com",
@@ -270852,6 +270853,7 @@
"account": {
"login": "github",
"id": 4,
"node_id": "MDEyOk9yZ2FuaXphdGlvbjE=",
"url": "https://api.github.com/orgs/github",
"email": null,
"organization_billing_email": "billing@github.com",

View File

@@ -110376,7 +110376,7 @@
},
"base_tree": {
"type": "string",
"description": "The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted."
"description": "The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by `base_tree` and entries defined in the `tree` parameter. Entries defined in the `tree` parameter will overwrite items from `base_tree` with the same `path`. If you're creating new changes on a branch, then normally you'd set `base_tree` to the SHA1 of the Git tree object of the current latest commit on the branch you're working on.\nIf not provided, GitHub will create a new Git tree object from only the entries defined in the `tree` parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the `tree` parameter will be listed as deleted by the new commit.\n"
}
},
"required": [

View File

@@ -113552,7 +113552,7 @@
},
"base_tree": {
"type": "string",
"description": "The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted."
"description": "The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by `base_tree` and entries defined in the `tree` parameter. Entries defined in the `tree` parameter will overwrite items from `base_tree` with the same `path`. If you're creating new changes on a branch, then normally you'd set `base_tree` to the SHA1 of the Git tree object of the current latest commit on the branch you're working on.\nIf not provided, GitHub will create a new Git tree object from only the entries defined in the `tree` parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the `tree` parameter will be listed as deleted by the new commit.\n"
}
},
"required": [

View File

@@ -114769,7 +114769,7 @@
},
"base_tree": {
"type": "string",
"description": "The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted."
"description": "The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by `base_tree` and entries defined in the `tree` parameter. Entries defined in the `tree` parameter will overwrite items from `base_tree` with the same `path`. If you're creating new changes on a branch, then normally you'd set `base_tree` to the SHA1 of the Git tree object of the current latest commit on the branch you're working on.\nIf not provided, GitHub will create a new Git tree object from only the entries defined in the `tree` parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the `tree` parameter will be listed as deleted by the new commit.\n"
}
},
"required": [

View File

@@ -124029,7 +124029,7 @@
},
"base_tree": {
"type": "string",
"description": "The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted."
"description": "The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by `base_tree` and entries defined in the `tree` parameter. Entries defined in the `tree` parameter will overwrite items from `base_tree` with the same `path`. If you're creating new changes on a branch, then normally you'd set `base_tree` to the SHA1 of the Git tree object of the current latest commit on the branch you're working on.\nIf not provided, GitHub will create a new Git tree object from only the entries defined in the `tree` parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the `tree` parameter will be listed as deleted by the new commit.\n"
}
},
"required": [

View File

@@ -145204,7 +145204,7 @@
},
"base_tree": {
"type": "string",
"description": "The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted."
"description": "The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by `base_tree` and entries defined in the `tree` parameter. Entries defined in the `tree` parameter will overwrite items from `base_tree` with the same `path`. If you're creating new changes on a branch, then normally you'd set `base_tree` to the SHA1 of the Git tree object of the current latest commit on the branch you're working on.\nIf not provided, GitHub will create a new Git tree object from only the entries defined in the `tree` parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the `tree` parameter will be listed as deleted by the new commit.\n"
}
},
"required": [

View File

@@ -118183,7 +118183,7 @@
},
"base_tree": {
"type": "string",
"description": "The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted."
"description": "The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by `base_tree` and entries defined in the `tree` parameter. Entries defined in the `tree` parameter will overwrite items from `base_tree` with the same `path`. If you're creating new changes on a branch, then normally you'd set `base_tree` to the SHA1 of the Git tree object of the current latest commit on the branch you're working on.\nIf not provided, GitHub will create a new Git tree object from only the entries defined in the `tree` parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the `tree` parameter will be listed as deleted by the new commit.\n"
}
},
"required": [

View File

@@ -0,0 +1,8 @@
const connectDatadog = require('connect-datadog')
const statsd = require('../lib/statsd')
module.exports = connectDatadog({
dogstatsd: statsd,
method: true, // Track HTTP methods (GET, POST, etc)
response_code: true // Track response codes
})

View File

@@ -1,5 +1,43 @@
const semver = require('semver')
const renderContent = require('../../lib/render-content')
const patterns = require('../../lib/patterns')
const enterpriseReleases = require('../../lib/enterprise-server-releases').supported
/**
* Turn { [key]: { notes, intro, date } }
* into [{ version, notes, intro, date }]
*/
function sortPatchKeys (release, version) {
const keys = Object.keys(release)
.map(key => ({ version: `${version}.${key}`, patchVersion: key, ...release[key] }))
return keys
.sort((a, b) => {
if (semver.gt(a.version, b.version)) return -1
if (semver.lt(a.version, b.version)) return 1
return 0
})
}
/**
* Render each note in the given patch, by looping through the
* sections and rendering either `note` or `note.notes` in the
* case of a sub-section
*/
async function renderPatchNotes (patch, ctx) {
// Run the notes through the markdown rendering pipeline
for (const key in patch.sections) {
await Promise.all(patch.sections[key].map(async (noteOrHeading, index) => {
patch.sections[key][index] = typeof noteOrHeading === 'string'
? await renderContent(noteOrHeading, ctx)
: {
...noteOrHeading,
notes: await Promise.all(noteOrHeading.notes.map(note => renderContent(note, ctx)))
}
}))
}
return patch
}
module.exports = async (req, res, next) => {
// The `/release-notes` sub-path
@@ -22,44 +60,23 @@ module.exports = async (req, res, next) => {
}
const releaseNotes = allReleaseNotes[versionString]
const keys = Object.keys(releaseNotes)
// Turn { [key]: { notes, intro, date } }
// into [{ version, notes, intro, date }]
const patches = keys
.sort((a, b) => {
if (a > b) return -1
if (a < b) return 1
return 0
})
.map(key => ({ version: `${requestedVersion}.${key}`, ...releaseNotes[key] }))
const patches = sortPatchKeys(releaseNotes, requestedVersion)
const renderedPatches = await Promise.all(patches.map(async patch => {
// Render the intro block, it might contain markdown formatting
patch.intro = await renderContent(patch.intro, req.context)
req.context.releaseNotes = await Promise.all(patches.map(async patch => renderPatchNotes(patch, req.context)))
// Run the notes through the markdown rendering pipeline
patch.notes = await Promise.all(patch.notes.map(async note => {
if (note.note) note.note = await renderContent(note.note, req.context)
return note
}))
// Put together information about other releases
req.context.releases = enterpriseReleases.map(version => {
const ret = { version }
if (!req.context.site.data['release-notes']) return ret
const release = req.context.site.data['release-notes'][version.replace(/\./g, '-')]
if (!release) return ret
const patches = sortPatchKeys(release, version)
return { ...ret, patches }
})
// Sort the notes into sections
// Takes an array of notes: Array<{ note, type }>
// Turns it into { [type]: [{ note }] }
patch.sortedNotes = patch.notes.reduce((prev, curr) => {
const existingObj = prev.find(o => o.title === curr.type)
if (!existingObj) {
prev.push({ title: curr.type, notes: [curr] })
} else {
existingObj.notes.push(curr)
}
return prev
}, [])
return patch
}))
req.context.releaseNotes = renderedPatches
const releaseIndex = enterpriseReleases.findIndex(release => release === requestedVersion)
req.context.nextRelease = enterpriseReleases[releaseIndex - 1]
req.context.prevRelease = enterpriseReleases[releaseIndex + 1]
return next()
}

View File

@@ -4,7 +4,6 @@ const changelog = require('../../lib/graphql/static/changelog')
const prerenderedObjects = require('../../lib/graphql/static/prerendered-objects')
const allVersions = require('../../lib/all-versions')
// TODO do we need to support staging? https://graphql-stage.github.com/explorer
const explorerUrl = process.env.NODE_ENV === 'production'
? 'https://graphql.github.com/explorer'
: 'http://localhost:3000'

View File

@@ -38,6 +38,7 @@ module.exports = async (req, res, next) => {
],
frameSrc: [ // exceptions for GraphQL Explorer
'https://graphql-explorer.githubapp.com', // production env
'https://graphql.github.com/',
'http://localhost:3000', // development env
'https://www.youtube-nocookie.com'
],

View File

@@ -0,0 +1,13 @@
const { liquid } = require('../lib/render-content')
const layouts = require('../lib/layouts')
const getMiniTocItems = require('../lib/get-mini-toc-items')
module.exports = async (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)
return res.send(await liquid.parseAndRender(layouts['enterprise-server-releases'], req.context))
}

View File

@@ -14,6 +14,11 @@ module.exports = function (app) {
app.use(require('morgan')('dev', { skip: (req, res) => !isDevelopment }))
if (isDevelopment) app.use(require('./webpack'))
// *** Observability ***
if (process.env.DD_API_KEY) {
app.use(require('./connect-datadog'))
}
// *** Early exits ***
// Don't use the proxy's IP, use the requester's for rate limiting
// See https://expressjs.com/en/guide/behind-proxies.html
@@ -74,6 +79,7 @@ module.exports = function (app) {
app.use(require('./contextualizers/webhooks'))
app.use(require('./breadcrumbs'))
app.use(require('./early-access-breadcrumbs'))
app.use(require('./enterprise-server-releases'))
app.use(require('./dev-toc'))
app.use(require('./featured-links'))

42
package-lock.json generated
View File

@@ -5271,7 +5271,7 @@
},
"agentkeepalive": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-2.2.0.tgz",
"resolved": "http://registry.npmjs.org/agentkeepalive/-/agentkeepalive-2.2.0.tgz",
"integrity": "sha1-xdG9SxKQCPEWPyNvhuX66iAm4u8="
},
"aggregate-error": {
@@ -5417,7 +5417,7 @@
"argparse": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=",
"requires": {
"sprintf-js": "~1.0.2"
}
@@ -6794,7 +6794,7 @@
},
"brfs": {
"version": "1.6.1",
"resolved": "https://registry.npmjs.org/brfs/-/brfs-1.6.1.tgz",
"resolved": "http://registry.npmjs.org/brfs/-/brfs-1.6.1.tgz",
"integrity": "sha512-OfZpABRQQf+Xsmju8XE9bDjs+uU4vLREGolP7bDgcpsI17QREyZ4Bl+2KLxxx1kCgA0fAIhKQBaBYh+PEcCqYQ==",
"requires": {
"quote-stream": "^1.0.1",
@@ -7769,6 +7769,24 @@
"xdg-basedir": "^4.0.0"
}
},
"connect-datadog": {
"version": "0.0.9",
"resolved": "https://registry.npmjs.org/connect-datadog/-/connect-datadog-0.0.9.tgz",
"integrity": "sha512-CThcRgy6AAStdBRsrNdneeJkEuH0/2G1QanYFfl0F+ZkbQaRMMM9/apvZ1R3SMD9iAST/Xa78Q0jC51KCB/4LQ==",
"requires": {
"hot-shots": "^6.3.0"
},
"dependencies": {
"hot-shots": {
"version": "6.8.7",
"resolved": "https://registry.npmjs.org/hot-shots/-/hot-shots-6.8.7.tgz",
"integrity": "sha512-XH8iezBSZgVw2jegu96pUfF1Zv0VZ/iXjb7L5yE3F7mn7/bdhf4qeniXjO0wQWeefe433rhOsazNKLxM+XMI9w==",
"requires": {
"unix-dgram": "2.0.x"
}
}
}
},
"connect-slashes": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/connect-slashes/-/connect-slashes-1.4.0.tgz",
@@ -9403,7 +9421,7 @@
"error-ex": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
"integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
"integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=",
"requires": {
"is-arrayish": "^0.2.1"
}
@@ -11508,12 +11526,6 @@
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
"optional": true
},
"ini": {
"version": "1.3.5",
"resolved": false,
"integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
"optional": true
},
"is-fullwidth-code-point": {
"version": "1.0.0",
"resolved": false,
@@ -12547,7 +12559,7 @@
"dependencies": {
"mkdirp": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz",
"resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz",
"integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4="
},
"nopt": {
@@ -13005,9 +13017,9 @@
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
},
"ini": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
"integrity": "sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc="
"version": "1.3.7",
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz",
"integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ=="
},
"inline-style-parser": {
"version": "0.1.1",
@@ -17673,7 +17685,7 @@
},
"magic-string": {
"version": "0.22.5",
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz",
"resolved": "http://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz",
"integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==",
"requires": {
"vlq": "^0.2.2"

View File

@@ -34,6 +34,7 @@
"cheerio": "^1.0.0-rc.3",
"clipboard": "^2.0.6",
"compression": "^1.7.4",
"connect-datadog": "0.0.9",
"connect-slashes": "^1.4.0",
"cookie-parser": "^1.4.5",
"copy-webpack-plugin": "^6.0.3",
@@ -150,6 +151,7 @@
"scripts": {
"start": "cross-env NODE_ENV=development ENABLED_LANGUAGES='en,ja' nodemon server.js",
"dev": "npm start",
"debug": "cross-env NODE_ENV=development ENABLED_LANGUAGES='en,ja' nodemon --inspect server.js",
"rest-dev": "script/rest/update-files.js && npm run dev",
"build": "cross-env NODE_ENV=production npx webpack --mode production",
"start-all-languages": "cross-env NODE_ENV=development nodemon server.js",

View File

@@ -18,8 +18,14 @@ if (!module.parent) {
if (status === false) {
// If in a deployed environment, warm the server at the start
if (process.env.NODE_ENV === 'production') {
// If in a production environment, wait for the cache to be fully warmed.
await warmServer()
// If in a true production environment, wait for the cache to be fully warmed.
if (process.env.HEROKU_PRODUCTION_APP || process.env.GITHUB_ACTIONS) {
await warmServer()
} else {
// If not in a true production environment, don't wait for the cache to be fully warmed.
// This avoids deployment timeouts in environments with slower servers.
warmServer()
}
}
// workaround for https://github.com/expressjs/express/issues/1101

View File

@@ -0,0 +1,83 @@
// Dark Text Gradients
.text-gradient {
-webkit-background-clip: text !important;
background-clip: text !important;
-webkit-text-fill-color: transparent;
-webkit-box-decoration-break: clone;
&-aquamarine-mauve {
@extend .text-gradient;
background: -webkit-linear-gradient(130deg, #3bf0e4 -6.8%, #bca1f7 70%);
}
&-dark-mint {
@extend .text-gradient;
background: -webkit-linear-gradient(90deg, #05aa82, #1c8df0);
}
&-mint-blue-dark {
@extend .text-gradient;
background: -webkit-linear-gradient(-70deg, #a2facf 0%, #64acff 100%);
}
&-coral-yellow-dark {
@extend .text-gradient;
background: -webkit-linear-gradient(-70deg, #ff7170 0%, #ffe57f 100%);
}
&-purple-coral-dark {
@extend .text-gradient;
background: -webkit-linear-gradient(92deg, #bca1f7 15%, #e577b4 45%, #ff7170 85%);
}
&-turq-purple-dark {
@extend .text-gradient;
background: -webkit-linear-gradient(-70deg, #3bf0e4 0%, #bca1f7 100%);
}
&-pink-blue-dark {
@extend .text-gradient;
background: -webkit-linear-gradient(-70deg, #e577b4 0%, #64acff 100%);
}
// Light Text Gradients
&-blue-green {
@extend .text-gradient;
background: -webkit-linear-gradient(-70deg, #2188ff 0%, #01a49e 100%);
}
&-red-orange {
@extend .text-gradient;
background: -webkit-linear-gradient(-70deg, #ed4e50 0%, #f06f00 100%);
}
&-purple-coral {
@extend .text-gradient;
background: -webkit-linear-gradient(-70deg, #9867f0 0%, #ed4e50 100%);
}
&-blue-purple {
@extend .text-gradient;
background: -webkit-linear-gradient(-70deg, #2188ff 0%, #804eda 100%);
}
&-pink-blue {
@extend .text-gradient;
background: -webkit-linear-gradient(-70deg, #db469f 0%, #2188ff 100%);
}
}
.bg-gradient {
&-red-orange {
background: linear-gradient(-70deg, #ed4e50 0%, #f06f00 100%);
}
&-aquamarine-mauve {
background: linear-gradient(130deg, #3bf0e4 -6.8%, #bca1f7 70%);
}
&-purple-coral {
background: linear-gradient(87.54deg, #9867f0 -6.8%, #ed4e50 84.14%);
}
&-coral-yellow {
background: linear-gradient(267.91deg, #ffe57f 9.35%, #ff7170 96.48%);
}
&-dark-mint {
background: linear-gradient(90deg, #05aa82, #1c8df0);
}
&-mint-blue {
background: linear-gradient(271.72deg, #a2facf 7.09%, #64acff 96.61%);
}
&-blue-purple {
background: linear-gradient(90.91deg, #027bfd -24.67%, #9f51fb 53.55%);
}
}

View File

@@ -56,3 +56,5 @@ $marketing-font-path: "/dist/fonts/";
@import "shadows.scss";
@import "product-landing.scss";
@import "dev-toc.scss";
@import "release-notes.scss";
@import "gradients.scss";

View File

@@ -0,0 +1,17 @@
ul.release-notes-list li.release-notes-list-item {
&::marker {
// `• `
content: '\2022\00a0';
font-size: 1.6em;
margin-right: $spacer-2;
color: $gray-400;
}
&.list-style-none::marker {
content: '';
}
}
details[open].release-notes-version-picker summary .octicon.octicon-chevron-down {
transform: rotate(180deg);
}

View File

@@ -48,7 +48,8 @@ describe('check for repository references', () => {
'docs/index.yaml',
'lib/excluded-links.js',
'content/early-access',
'data/early-access'
'data/early-access',
'data/release-notes' // These include links to internal issues in Liquid comments
]
})