Merge branch 'main' into githubone-site-policy
@@ -14,6 +14,8 @@ body:
|
|||||||
value: 'Status: YELLOW'
|
value: 'Status: YELLOW'
|
||||||
- label: "RED \U0001F534 (BLOCKED)"
|
- label: "RED \U0001F534 (BLOCKED)"
|
||||||
value: 'Status: RED'
|
value: 'Status: RED'
|
||||||
|
- label: "BLACK ⚫️ (We shipped it \U0001F389)"
|
||||||
|
value: 'Status: BLACK'
|
||||||
- type: textarea
|
- type: textarea
|
||||||
attributes:
|
attributes:
|
||||||
label: Update Summary
|
label: Update Summary
|
||||||
|
|||||||
@@ -34,12 +34,6 @@
|
|||||||
```
|
```
|
||||||
☝️ This will run a workflow **on every push to the PR** that will sync **only** the English index for the new version to Algolia. This will make the GHES content searchable on staging throughout content creation, and will ensure the search updates go live at the same time the content is published. See [`contributing/search.md`](https://github.com/github/docs-internal/blob/main/contributing/search.md) for details.
|
☝️ This will run a workflow **on every push to the PR** that will sync **only** the English index for the new version to Algolia. This will make the GHES content searchable on staging throughout content creation, and will ensure the search updates go live at the same time the content is published. See [`contributing/search.md`](https://github.com/github/docs-internal/blob/main/contributing/search.md) for details.
|
||||||
|
|
||||||
- [ ] Create an OpenAPI topic branch
|
|
||||||
|
|
||||||
This branch is used to avoid propagating the OpenAPI dev mode check CI test failure in all of the branches. All changes that affect the OpenAPI schema should branch off of this topic branch. The tests should all be passing before the OpenAPI topic branch is merged into the megabranch.
|
|
||||||
|
|
||||||
For more information about how OpenAPI changes are published to docs.github.com, see [Publishing REST API changes to docs.github.com](https://github.com/github/docs-content/blob/main/docs-content-docs/docs-content-workflows/publishing-documentation/publishing-REST-api-docs.md#publishing-rest-api-changes-to-docsgithubcom).
|
|
||||||
|
|
||||||
- [ ] In `github/github`, to create a new GHES release follow these steps:
|
- [ ] In `github/github`, to create a new GHES release follow these steps:
|
||||||
- [ ] Copy the previous release's root document to a new root document for this release `cp app/api/description/ghes-<LATEST RELEASE NUMBER>.yaml app/api/description/ghes-<NEXT RELEASE NUMBER>.yaml`.
|
- [ ] Copy the previous release's root document to a new root document for this release `cp app/api/description/ghes-<LATEST RELEASE NUMBER>.yaml app/api/description/ghes-<NEXT RELEASE NUMBER>.yaml`.
|
||||||
- [ ] Update the `externalDocs.url` property in that file to use the new GHES release number.
|
- [ ] Update the `externalDocs.url` property in that file to use the new GHES release number.
|
||||||
@@ -47,6 +41,14 @@
|
|||||||
- [ ] Update the `variables.externalDocsUrl`, `variables.ghesVersion`, and `patch.[].value.url` in that file to use the new GHES release number.
|
- [ ] Update the `variables.externalDocsUrl`, `variables.ghesVersion`, and `patch.[].value.url` in that file to use the new GHES release number.
|
||||||
- [ ] Update `published` in that file to `false`. **Note:** This is important to ensure that 3.1 OpenAPI changes are not made public until 3.1 is released.
|
- [ ] Update `published` in that file to `false`. **Note:** This is important to ensure that 3.1 OpenAPI changes are not made public until 3.1 is released.
|
||||||
|
|
||||||
|
#### Troubleshooting
|
||||||
|
|
||||||
|
If the `OpenAPI dev mode check / check-schema-versions` check fails on the release branch, in your local checkout of the mega branch:
|
||||||
|
|
||||||
|
- run `git checkout origin/main lib/rest/static/*`
|
||||||
|
- run `script/rest/update-files.js --decorate-only`
|
||||||
|
- push the resulting changes
|
||||||
|
|
||||||
### Before shipping the release branch
|
### Before shipping the release branch
|
||||||
|
|
||||||
- [ ] Add the GHES release notes to `data/release-notes/` and update the versioning frontmatter in `content/admin/release-notes.md` to `enterprise-server: '<=<RELEASE>'`
|
- [ ] Add the GHES release notes to `data/release-notes/` and update the versioning frontmatter in `content/admin/release-notes.md` to `enterprise-server: '<=<RELEASE>'`
|
||||||
|
|||||||
18
.github/allowed-actions.js
vendored
@@ -4,13 +4,13 @@
|
|||||||
// can be added it this list.
|
// can be added it this list.
|
||||||
|
|
||||||
module.exports = [
|
module.exports = [
|
||||||
"actions/cache@0781355a23dac32fd3bac414512f4b903437991a", //actions/cache@v2.1.3
|
"actions/cache@0781355a23dac32fd3bac414512f4b903437991a", // v2.1.3
|
||||||
"actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f", //actions/checkout@v2.3.4
|
"actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f", // v2.3.4
|
||||||
"actions/github-script@626af12fe9a53dc2972b48385e7fe7dec79145c9", //actions/script@v3.0.0
|
"actions/github-script@626af12fe9a53dc2972b48385e7fe7dec79145c9", // v3.0.0
|
||||||
"actions/labeler@5f867a63be70efff62b767459b009290364495eb", //actions/labeler@v2.2.0
|
"actions/labeler@5f867a63be70efff62b767459b009290364495eb", // v2.2.0
|
||||||
"actions/setup-node@c46424eee26de4078d34105d3de3cc4992202b1e", //actions/setup-node@v2.1.4
|
"actions/setup-node@c46424eee26de4078d34105d3de3cc4992202b1e", // v2.1.4
|
||||||
"ruby/setup-ruby@fdcfbcf14ec9672f6f615cb9589a1bc5dd69d262", //ruby/setup-ruby@vv1.64.1
|
"ruby/setup-ruby@fdcfbcf14ec9672f6f615cb9589a1bc5dd69d262", // v1.64.1
|
||||||
"actions/stale@9d6f46564a515a9ea11e7762ab3957ee58ca50da", //actions/stale@v3.0.16
|
"actions/stale@9d6f46564a515a9ea11e7762ab3957ee58ca50da", // v3.0.16
|
||||||
"alex-page/github-project-automation-plus@fdb7991b72040d611e1123d2b75ff10eda9372c9",
|
"alex-page/github-project-automation-plus@fdb7991b72040d611e1123d2b75ff10eda9372c9",
|
||||||
"andymckay/labeler@22d5392de2b725cea4b284df5824125054049d84",
|
"andymckay/labeler@22d5392de2b725cea4b284df5824125054049d84",
|
||||||
"archive/github-actions-slack@d368c5a4ad757515a9344918f84c490b05777d94",
|
"archive/github-actions-slack@d368c5a4ad757515a9344918f84c490b05777d94",
|
||||||
@@ -23,11 +23,11 @@ module.exports = [
|
|||||||
"github/codeql-action/analyze@v1",
|
"github/codeql-action/analyze@v1",
|
||||||
"github/codeql-action/init@v1",
|
"github/codeql-action/init@v1",
|
||||||
"juliangruber/approve-pull-request-action@c530832d4d346c597332e20e03605aa94fa150a8",
|
"juliangruber/approve-pull-request-action@c530832d4d346c597332e20e03605aa94fa150a8",
|
||||||
"juliangruber/find-pull-request-action@2fc55e82a6d5d36fe1e7f1848f7e64fd02d99de9",
|
"juliangruber/find-pull-request-action@db875662766249c049b2dcd85293892d61cb0b51", // v1.5.0
|
||||||
"juliangruber/read-file-action@e0a316da496006ffd19142f0fd594a1783f3b512",
|
"juliangruber/read-file-action@e0a316da496006ffd19142f0fd594a1783f3b512",
|
||||||
"lee-dohm/close-matching-issues@22002609b2555fe18f52b8e2e7c07cbf5529e8a8",
|
"lee-dohm/close-matching-issues@22002609b2555fe18f52b8e2e7c07cbf5529e8a8",
|
||||||
"lee-dohm/no-response@9bb0a4b5e6a45046f00353d5de7d90fb8bd773bb",
|
"lee-dohm/no-response@9bb0a4b5e6a45046f00353d5de7d90fb8bd773bb",
|
||||||
"pascalgn/automerge-action@c9bd1823770819dc8fb8a5db2d11a3a95fbe9b07", //pascalgn/automerge@0.12.0
|
"pascalgn/automerge-action@c9bd1823770819dc8fb8a5db2d11a3a95fbe9b07", // v0.12.0
|
||||||
"peter-evans/create-issue-from-file@a04ce672e3acedb1f8e416b46716ddfd09905326",
|
"peter-evans/create-issue-from-file@a04ce672e3acedb1f8e416b46716ddfd09905326",
|
||||||
"peter-evans/create-or-update-comment@5221bf4aa615e5c6e95bb142f9673a9c791be2cd",
|
"peter-evans/create-or-update-comment@5221bf4aa615e5c6e95bb142f9673a9c791be2cd",
|
||||||
"peter-evans/create-pull-request@8c603dbb04b917a9fc2dd991dc54fef54b640b43",
|
"peter-evans/create-pull-request@8c603dbb04b917a9fc2dd991dc54fef54b640b43",
|
||||||
|
|||||||
4
.github/workflows/open-enterprise-issue.yml
vendored
@@ -1,5 +1,9 @@
|
|||||||
name: Open Enterprise release or deprecation issue
|
name: Open Enterprise release or deprecation issue
|
||||||
|
|
||||||
|
# **What it does**: Checks if there is an Enterprise release or deprecation upcoming, and if so, opens an issue with the tasks to be completed.
|
||||||
|
# **Why we have it**: GHES releases and deprecations run on a predictable schedule, so we can automate some of the project management aspects.
|
||||||
|
# **Who does it impact**: Docs engineering, docs content.
|
||||||
|
|
||||||
on:
|
on:
|
||||||
schedule:
|
schedule:
|
||||||
- cron: '49 14 * * *' # At 14:49 UTC daily
|
- cron: '49 14 * * *' # At 14:49 UTC daily
|
||||||
|
|||||||
49
.github/workflows/repo-sync.yml
vendored
@@ -27,18 +27,19 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Find pull request
|
- name: Find pull request
|
||||||
if: ${{ github.repository == 'github/docs' }}
|
if: ${{ github.repository == 'github/docs' }}
|
||||||
uses: juliangruber/find-pull-request-action@2fc55e82a6d5d36fe1e7f1848f7e64fd02d99de9
|
uses: juliangruber/find-pull-request-action@db875662766249c049b2dcd85293892d61cb0b51
|
||||||
id: find-pull-request
|
id: find-pull-request
|
||||||
with:
|
with:
|
||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
github-token: ${{ secrets.DOCS_BOT_SPAM_VISION }}
|
||||||
branch: repo-sync
|
branch: repo-sync
|
||||||
base: main
|
base: main
|
||||||
|
state: open
|
||||||
|
|
||||||
- name: Close pull request if unwanted
|
- name: Close pull request if unwanted
|
||||||
if: ${{ github.repository == 'github/docs' && steps.find-pull-request.outputs.number }}
|
if: ${{ github.repository == 'github/docs' && steps.find-pull-request.outputs.number }}
|
||||||
uses: actions/github-script@626af12fe9a53dc2972b48385e7fe7dec79145c9
|
uses: actions/github-script@626af12fe9a53dc2972b48385e7fe7dec79145c9
|
||||||
with:
|
with:
|
||||||
github-token: ${{ secrets.DOCUBOT_FR_PROJECT_BOARD_WORKFLOWS_REPO_ORG_READ_SCOPES }}
|
github-token: ${{ secrets.DOCS_BOT_SPAM_VISION }}
|
||||||
script: |
|
script: |
|
||||||
const { owner, repo } = context.repo
|
const { owner, repo } = context.repo
|
||||||
|
|
||||||
@@ -115,17 +116,18 @@ jobs:
|
|||||||
destination_branch: main
|
destination_branch: main
|
||||||
pr_title: 'repo sync'
|
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_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,automated-reposync-pr
|
pr_label: autoupdate,automated-reposync-pr
|
||||||
github_token: ${{ secrets.OCTOMERGER_PAT_WITH_REPO_AND_WORKFLOW_SCOPE }}
|
github_token: ${{ secrets.OCTOMERGER_PAT_WITH_REPO_AND_WORKFLOW_SCOPE }}
|
||||||
|
|
||||||
- name: Find pull request
|
- name: Find pull request
|
||||||
uses: juliangruber/find-pull-request-action@2fc55e82a6d5d36fe1e7f1848f7e64fd02d99de9
|
uses: juliangruber/find-pull-request-action@db875662766249c049b2dcd85293892d61cb0b51
|
||||||
id: find-pull-request
|
id: find-pull-request
|
||||||
with:
|
with:
|
||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
branch: repo-sync
|
branch: repo-sync
|
||||||
base: main
|
base: main
|
||||||
author: Octomerger
|
author: Octomerger
|
||||||
|
state: open
|
||||||
|
|
||||||
- name: Approve pull request
|
- name: Approve pull request
|
||||||
if: ${{ steps.find-pull-request.outputs.number }}
|
if: ${{ steps.find-pull-request.outputs.number }}
|
||||||
@@ -139,7 +141,7 @@ jobs:
|
|||||||
if: ${{ steps.find-pull-request.outputs.number }}
|
if: ${{ steps.find-pull-request.outputs.number }}
|
||||||
uses: actions/github-script@626af12fe9a53dc2972b48385e7fe7dec79145c9
|
uses: actions/github-script@626af12fe9a53dc2972b48385e7fe7dec79145c9
|
||||||
with:
|
with:
|
||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
github-token: ${{ secrets.OCTOMERGER_PAT_WITH_REPO_AND_WORKFLOW_SCOPE }}
|
||||||
script: |
|
script: |
|
||||||
const mainHeadSha = await github.git.getRef({
|
const mainHeadSha = await github.git.getRef({
|
||||||
...context.repo,
|
...context.repo,
|
||||||
@@ -163,6 +165,41 @@ jobs:
|
|||||||
console.log(`Branch is already up-to-date`)
|
console.log(`Branch is already up-to-date`)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- name: Enable GitHub auto-merge
|
||||||
|
if: ${{ steps.find-pull-request.outputs.number }}
|
||||||
|
uses: actions/github-script@626af12fe9a53dc2972b48385e7fe7dec79145c9
|
||||||
|
with:
|
||||||
|
github-token: ${{ secrets.OCTOMERGER_PAT_WITH_REPO_AND_WORKFLOW_SCOPE }}
|
||||||
|
script: |
|
||||||
|
const pull = await github.pulls.get({
|
||||||
|
...context.repo,
|
||||||
|
pull_number: parseInt(${{ steps.find-pull-request.outputs.number }})
|
||||||
|
})
|
||||||
|
|
||||||
|
const pullNodeId = pull.data.node_id
|
||||||
|
console.log(`Pull request GraphQL Node ID: ${pullNodeId}`)
|
||||||
|
|
||||||
|
const mutation = `mutation ($id: ID!) {
|
||||||
|
enablePullRequestAutoMerge(input: {
|
||||||
|
pullRequestId: $id,
|
||||||
|
mergeMethod: MERGE
|
||||||
|
}) {
|
||||||
|
clientMutationId
|
||||||
|
}
|
||||||
|
}`
|
||||||
|
const variables = {
|
||||||
|
id: pullNodeId
|
||||||
|
}
|
||||||
|
|
||||||
|
const graph = await github.graphql(mutation, variables)
|
||||||
|
console.log('GraphQL mutation result:\n' + JSON.stringify(graph))
|
||||||
|
|
||||||
|
if (graph.errors && graph.errors.length > 0) {
|
||||||
|
console.error('ERROR! Failed to enable auto-merge:\n - ' + graph.errors.map(error => error.message).join('\n - '))
|
||||||
|
} else {
|
||||||
|
console.log('Auto-merge enabled!')
|
||||||
|
}
|
||||||
|
|
||||||
- name: Send Slack notification if workflow fails
|
- name: Send Slack notification if workflow fails
|
||||||
uses: someimportantcompany/github-actions-slack-message@0b470c14b39da4260ed9e3f9a4f1298a74ccdefd
|
uses: someimportantcompany/github-actions-slack-message@0b470c14b39da4260ed9e3f9a4f1298a74ccdefd
|
||||||
if: failure()
|
if: failure()
|
||||||
|
|||||||
17
.github/workflows/send-crowdin-prs-to-boards.yml
vendored
@@ -1,5 +1,9 @@
|
|||||||
name: Send Crowdin PRs to boards
|
name: Send Crowdin PRs to boards
|
||||||
|
|
||||||
|
# **What it does**: Sends PRs opened on the crowdin branch to the ready for work column in this board: https://github.com/orgs/github/projects/1269#column-13447153
|
||||||
|
# **Why we have it**: To make sure the first responder sees crowdin translations that need to be merged as they review the Task board.
|
||||||
|
# **Who does it impact**: Docs localization and Docs Engineering
|
||||||
|
|
||||||
on:
|
on:
|
||||||
pull_request:
|
pull_request:
|
||||||
types:
|
types:
|
||||||
@@ -14,7 +18,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
github-token: ${{ secrets.DOCUBOT_READORG_REPO_WORKFLOW_SCOPES }}
|
github-token: ${{ secrets.DOCUBOT_READORG_REPO_WORKFLOW_SCOPES }}
|
||||||
script: |
|
script: |
|
||||||
var squadBoardColumnId = 13447153; // Add to the team backlog/squad board
|
var squadBoardColumnId = 13447153; // Add to the team task board
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await github.projects.createCard({
|
await github.projects.createCard({
|
||||||
@@ -25,14 +29,3 @@ jobs:
|
|||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(error);
|
console.log(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
var prBoardColumnId = 10095775; // Add to the pull requests board
|
|
||||||
try {
|
|
||||||
await github.projects.createCard({
|
|
||||||
column_id: prBoardColumnId,
|
|
||||||
content_id: context.payload.pull_request.id,
|
|
||||||
content_type: "PullRequest"
|
|
||||||
});
|
|
||||||
} catch (error) {
|
|
||||||
console.log(error);
|
|
||||||
}
|
|
||||||
|
|||||||
3
.github/workflows/translations.yml
vendored
@@ -21,13 +21,14 @@ jobs:
|
|||||||
echo 'The repo is currently frozen! Exiting this workflow.'
|
echo 'The repo is currently frozen! Exiting this workflow.'
|
||||||
exit 1 # prevents further steps from running
|
exit 1 # prevents further steps from running
|
||||||
- name: Find original Pull Request
|
- name: Find original Pull Request
|
||||||
uses: juliangruber/find-pull-request-action@2fc55e82a6d5d36fe1e7f1848f7e64fd02d99de9
|
uses: juliangruber/find-pull-request-action@db875662766249c049b2dcd85293892d61cb0b51
|
||||||
id: pr
|
id: pr
|
||||||
with:
|
with:
|
||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
branch: translations
|
branch: translations
|
||||||
base: main
|
base: main
|
||||||
author: octoglot
|
author: octoglot
|
||||||
|
state: open
|
||||||
- if: ${{ steps.pr.outputs.number }}
|
- if: ${{ steps.pr.outputs.number }}
|
||||||
name: Check if already labeled
|
name: Check if already labeled
|
||||||
uses: actions/github-script@626af12fe9a53dc2972b48385e7fe7dec79145c9
|
uses: actions/github-script@626af12fe9a53dc2972b48385e7fe7dec79145c9
|
||||||
|
|||||||
@@ -19,6 +19,8 @@ Before you make your changes, check to see if an [issue exists](https://github.c
|
|||||||
|
|
||||||
If you spot something new, open an issue using a [template](https://github.com/github/docs/issues/new/choose). We'll use the issue to have a conversation about the problem you want to fix.
|
If you spot something new, open an issue using a [template](https://github.com/github/docs/issues/new/choose). We'll use the issue to have a conversation about the problem you want to fix.
|
||||||
|
|
||||||
|
**Note:** We cannot accept contributions to the [REST API reference documentation](https://docs.github.com/en/rest/reference). If you spot an inaccuracy in the REST API reference documentation, open an issue in the [github/rest-api-description](https://github.com/github/rest-api-description/issues/new?template=schema-inaccuracy.md) repository.
|
||||||
|
|
||||||
### Ready to make a change? Fork the repo
|
### Ready to make a change? Fork the repo
|
||||||
|
|
||||||
Fork using GitHub Desktop:
|
Fork using GitHub Desktop:
|
||||||
|
|||||||
2
Procfile
@@ -1,3 +1,3 @@
|
|||||||
web: NODE_ENV=production node server.js
|
web: NODE_ENV=production node server.js
|
||||||
|
|
||||||
release: NODE_ENV=production node script/purge-redis-pages.js
|
release: NODE_ENV=production script/release-heroku
|
||||||
|
|||||||
BIN
assets/images/enterprise/3.0/dependabot-alert-dismiss.png
Normal file
|
After Width: | Height: | Size: 124 KiB |
BIN
assets/images/enterprise/3.0/dependabot-alert-info.png
Normal file
|
After Width: | Height: | Size: 140 KiB |
BIN
assets/images/enterprise/graphs/click-alert-in-alerts-list.png
Normal file
|
After Width: | Height: | Size: 44 KiB |
|
After Width: | Height: | Size: 78 KiB |
BIN
assets/images/enterprise/repository/dependabot-alerts-tab.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
@@ -1 +1 @@
|
|||||||
<svg width="18" height="24" viewBox="0 0 18 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M17.115 13.5H.885C0 13.5 0 12.885 0 12s0-1.5.885-1.5H17.1c.885 0 .885.615.885 1.5s0 1.5-.885 1.5h.015zm0-6H.885C0 7.5 0 6.885 0 6s0-1.5.885-1.5H17.1c.885 0 .885.615.885 1.5s0 1.5-.885 1.5h.015zm-16.23 9H17.1c.885 0 .885.615.885 1.5s0 1.5-.885 1.5H.885C0 19.5 0 18.885 0 18s0-1.5.885-1.5z" fill="#1B1F23"/></svg>
|
<svg width="18" height="24" viewBox="0 0 18 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M17.115 13.5H.885C0 13.5 0 12.885 0 12s0-1.5.885-1.5H17.1c.885 0 .885.615.885 1.5s0 1.5-.885 1.5h.015zm0-6H.885C0 7.5 0 6.885 0 6s0-1.5.885-1.5H17.1c.885 0 .885.615.885 1.5s0 1.5-.885 1.5h.015zm-16.23 9H17.1c.885 0 .885.615.885 1.5s0 1.5-.885 1.5H.885C0 19.5 0 18.885 0 18s0-1.5.885-1.5z" fill="#6a737d"/></svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 455 B After Width: | Height: | Size: 456 B |
@@ -1 +1 @@
|
|||||||
<svg fill="none" height="16" viewBox="0 0 17 16" width="17" xmlns="http://www.w3.org/2000/svg"><path clip-rule="evenodd" d="m16.5089 13.3-3.7792-3.83c.6943-.98 1.101-2.17 1.101-3.47 0-3.31-2.6683-6-5.9516-6s-5.95161 2.69-5.95161 6 2.66831 6 5.95161 6c1.28952 0 2.46-.41 3.442-1.11l3.7991 3.81c.1885.2.4464.3.6944.3s.5158-.09.6943-.3c.3869-.39.3869-1.02 0-1.41zm-8.6298-2.6c-2.56911 0-4.66209-2.11-4.66209-4.7s2.09298-4.7 4.66209-4.7c2.5691 0 4.6621 2.11 4.6621 4.7s-2.093 4.7-4.6621 4.7z" fill="#1074e7" fill-rule="evenodd"/></svg>
|
<svg fill="none" height="16" viewBox="0 0 17 16" width="17" xmlns="http://www.w3.org/2000/svg"><path clip-rule="evenodd" d="m16.5089 13.3-3.7792-3.83c.6943-.98 1.101-2.17 1.101-3.47 0-3.31-2.6683-6-5.9516-6s-5.95161 2.69-5.95161 6 2.66831 6 5.95161 6c1.28952 0 2.46-.41 3.442-1.11l3.7991 3.81c.1885.2.4464.3.6944.3s.5158-.09.6943-.3c.3869-.39.3869-1.02 0-1.41zm-8.6298-2.6c-2.56911 0-4.66209-2.11-4.66209-4.7s2.09298-4.7 4.66209-4.7c2.5691 0 4.6621 2.11 4.6621 4.7s-2.093 4.7-4.6621 4.7z" fill="#6a737d" fill-rule="evenodd"/></svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 531 B After Width: | Height: | Size: 532 B |
@@ -1 +1 @@
|
|||||||
<svg width="16" height="22" viewBox="0 0 16 22" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M9.974 10.667l5 5L13 17.64l-5-5-5 5-1.973-1.973 5-5-5-5L3 3.693l5 5 5-5 1.973 1.974-5 5z" fill="#1B1F23"/></svg>
|
<svg width="16" height="22" viewBox="0 0 16 22" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M9.974 10.667l5 5L13 17.64l-5-5-5 5-1.973-1.973 5-5-5-5L3 3.693l5 5 5-5 1.973 1.974-5 5z" fill="#6a737d"/></svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 256 B After Width: | Height: | Size: 257 B |
@@ -45,7 +45,7 @@ In addition to uploading packaging artifacts for testing in a continuous integra
|
|||||||
* **Publish packages to {% data variables.product.prodname_registry %}**
|
* **Publish packages to {% data variables.product.prodname_registry %}**
|
||||||
{% data variables.product.prodname_registry %} can act as a package hosting service for many types of packages. You can choose to share your packages with all of {% data variables.product.prodname_dotcom %}, or private packages to share with collaborators or an organization. For more information, see "[About {% data variables.product.prodname_registry %}](/github/managing-packages-with-github-packages/about-github-packages)."
|
{% data variables.product.prodname_registry %} can act as a package hosting service for many types of packages. You can choose to share your packages with all of {% data variables.product.prodname_dotcom %}, or private packages to share with collaborators or an organization. For more information, see "[About {% data variables.product.prodname_registry %}](/github/managing-packages-with-github-packages/about-github-packages)."
|
||||||
|
|
||||||
You may want to publish packages to {% data variables.product.prodname_registry %} on every push into the default branch. This will allow developers on your project to always be able to run and test the latest build out of master easily, by installing it from {% data variables.product.prodname_registry %}.
|
You may want to publish packages to {% data variables.product.prodname_registry %} on every push into the default branch. This will allow developers on your project to always be able to run and test the latest build out of the main branch easily, by installing it from {% data variables.product.prodname_registry %}.
|
||||||
|
|
||||||
* **Publish packages to a package registry**
|
* **Publish packages to a package registry**
|
||||||
For many projects, publishing to a package registry is performed whenever a new version of a project is released. For example, a project that produces a JAR file may upload new releases to the Maven Central repository. Or, a .NET project may produce a nuget package and upload it to the NuGet Gallery.
|
For many projects, publishing to a package registry is performed whenever a new version of a project is released. For example, a project that produces a JAR file may upload new releases to the Maven Central repository. Or, a .NET project may produce a nuget package and upload it to the NuGet Gallery.
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ We recommend that you have a basic understanding of Node.js, YAML, workflow conf
|
|||||||
|
|
||||||
{% data variables.product.prodname_dotcom %} provides a Node.js workflow template that will work for most Node.js projects. This guide includes npm and Yarn examples that you can use to customize the template. For more information, see the [Node.js workflow template](https://github.com/actions/starter-workflows/blob/main/ci/node.js.yml).
|
{% data variables.product.prodname_dotcom %} provides a Node.js workflow template that will work for most Node.js projects. This guide includes npm and Yarn examples that you can use to customize the template. For more information, see the [Node.js workflow template](https://github.com/actions/starter-workflows/blob/main/ci/node.js.yml).
|
||||||
|
|
||||||
To get started quickly, add the template to the `.github/workflows` directory of your repository.
|
To get started quickly, add the template to the `.github/workflows` directory of your repository. The workflow shown below assumes that the default branch for your repository is `main`.
|
||||||
|
|
||||||
{% raw %}
|
{% raw %}
|
||||||
```yaml{:copy}
|
```yaml{:copy}
|
||||||
@@ -45,9 +45,9 @@ name: Node.js CI
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [ $default-branch ]
|
branches: [ main ]
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: [ $default-branch ]
|
branches: [ main ]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ We recommend that you have a basic understanding of Ruby, YAML, workflow configu
|
|||||||
|
|
||||||
{% data variables.product.prodname_dotcom %} provides a Ruby workflow template that will work for most Ruby projects. For more information, see the [Ruby workflow template](https://github.com/actions/starter-workflows/blob/master/ci/ruby.yml).
|
{% data variables.product.prodname_dotcom %} provides a Ruby workflow template that will work for most Ruby projects. For more information, see the [Ruby workflow template](https://github.com/actions/starter-workflows/blob/master/ci/ruby.yml).
|
||||||
|
|
||||||
To get started quickly, add the template to the `.github/workflows` directory of your repository.
|
To get started quickly, add the template to the `.github/workflows` directory of your repository. The workflow shown below assumes that the default branch for your repository is `main`.
|
||||||
|
|
||||||
{% raw %}
|
{% raw %}
|
||||||
```yaml
|
```yaml
|
||||||
@@ -39,9 +39,9 @@ name: Ruby
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [ $default-branch ]
|
branches: [ main ]
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: [ $default-branch ]
|
branches: [ main ]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
test:
|
test:
|
||||||
@@ -105,9 +105,9 @@ name: Ruby CI
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [ $default-branch ]
|
branches: [ main ]
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: [ $default-branch ]
|
branches: [ main ]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
test:
|
test:
|
||||||
@@ -211,9 +211,9 @@ name: Matrix Testing
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [ $default-branch ]
|
branches: [ main ]
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: [ $default-branch ]
|
branches: [ main ]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
test:
|
test:
|
||||||
@@ -272,11 +272,11 @@ name: Ruby Gem
|
|||||||
on:
|
on:
|
||||||
# Manually publish
|
# Manually publish
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
# Alternatively, publish whenever changes are merged to the default branch.
|
# Alternatively, publish whenever changes are merged to the `main` branch.
|
||||||
push:
|
push:
|
||||||
branches: [ $default-branch ]
|
branches: [ main ]
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: [ $default-branch ]
|
branches: [ main ]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
|||||||
@@ -70,6 +70,7 @@ includeGuides:
|
|||||||
- /actions/guides/commenting-on-an-issue-when-a-label-is-added
|
- /actions/guides/commenting-on-an-issue-when-a-label-is-added
|
||||||
- /actions/guides/moving-assigned-issues-on-project-boards
|
- /actions/guides/moving-assigned-issues-on-project-boards
|
||||||
- /actions/guides/removing-a-label-when-a-card-is-added-to-a-project-board-column
|
- /actions/guides/removing-a-label-when-a-card-is-added-to-a-project-board-column
|
||||||
|
- /actions/guides/managing-github-actions-with-github-cli
|
||||||
|
|
||||||
---
|
---
|
||||||
<!-- {% link_in_list /about-continuous-integration %} -->
|
<!-- {% link_in_list /about-continuous-integration %} -->
|
||||||
@@ -104,3 +105,4 @@ includeGuides:
|
|||||||
<!-- {% link_in_list /commenting-on-an-issue-when-a-label-is-added %} -->
|
<!-- {% link_in_list /commenting-on-an-issue-when-a-label-is-added %} -->
|
||||||
<!-- {% link_in_list /moving-assigned-issues-on-project-boards %} -->
|
<!-- {% link_in_list /moving-assigned-issues-on-project-boards %} -->
|
||||||
<!-- {% link_in_list /removing-a-label-when-a-card-is-added-to-a-project-board-column %} -->
|
<!-- {% link_in_list /removing-a-label-when-a-card-is-added-to-a-project-board-column %} -->
|
||||||
|
<!-- {% link_in_list /managing-github-actions-with-github-cli %} -->
|
||||||
|
|||||||
@@ -0,0 +1,37 @@
|
|||||||
|
---
|
||||||
|
title: Managing GitHub Actions with GitHub CLI
|
||||||
|
intro: 'You can use {% data variables.product.prodname_cli %} to interact with {% data variables.product.prodname_actions %}.'
|
||||||
|
product: '{% data reusables.gated-features.actions %}'
|
||||||
|
versions:
|
||||||
|
free-pro-team: '*'
|
||||||
|
enterprise-server: '>=2.22'
|
||||||
|
github-ae: '*'
|
||||||
|
type: 'overview'
|
||||||
|
topics:
|
||||||
|
- 'Workflows'
|
||||||
|
---
|
||||||
|
|
||||||
|
{% data reusables.actions.enterprise-beta %}
|
||||||
|
{% data reusables.actions.enterprise-github-hosted-runners %}
|
||||||
|
{% data reusables.actions.ae-beta %}
|
||||||
|
|
||||||
|
### Setting up {% data variables.product.prodname_cli %}
|
||||||
|
|
||||||
|
{% data reusables.cli.download-update-cli %} {% data reusables.cli.actions-cli-version %} {% data reusables.cli.cli-manual %}
|
||||||
|
|
||||||
|
{% data reusables.cli.cli-auth %}
|
||||||
|
|
||||||
|
{% data reusables.cli.cli-repo %}
|
||||||
|
|
||||||
|
### Managing {% data variables.product.prodname_actions %} with {% data variables.product.prodname_cli %}
|
||||||
|
|
||||||
|
To view all available commands related to {% data variables.product.prodname_actions %}, run `gh actions`.
|
||||||
|
|
||||||
|
For more information on using commands in specific scenarios, see the following procedures:
|
||||||
|
|
||||||
|
- "[Re-running a workflow](/actions/managing-workflow-runs/re-running-a-workflow#re-run-a-workflow-through-github-cli)"
|
||||||
|
- "[Manually running a workflow](/actions/managing-workflow-runs/manually-running-a-workflow#running-a-workflow-using-github-cli)"
|
||||||
|
- "[Downloading workflow artifacts](/actions/managing-workflow-runs/downloading-workflow-artifacts#download-artifacts-through-github-cli)"
|
||||||
|
- "[Using workflow run logs](/actions/managing-workflow-runs/using-workflow-run-logs#viewing-logs-through-github-cli)"
|
||||||
|
- "[Viewing workflow run history](/actions/managing-workflow-runs/viewing-workflow-run-history#viewing-workflow-run-history-with-github-cli)"
|
||||||
|
- "[Disabling and enabling a workflow](/actions/managing-workflow-runs/disabling-and-enabling-a-workflow#disabling-and-enabling-workflows-through-github-cli)"
|
||||||
@@ -64,7 +64,7 @@ versions:
|
|||||||
|
|
||||||
<button class="js-filter-card-show-more btn btn-outline float-right" data-js-filter-card-max="6">Show more {% octicon "arrow-right" %}</button>
|
<button class="js-filter-card-show-more btn btn-outline float-right" data-js-filter-card-max="6">Show more {% octicon "arrow-right" %}</button>
|
||||||
|
|
||||||
<div class="js-filter-card-no-results d-none py-4 text-center text-gray font-mktg">
|
<div class="js-filter-card-no-results d-none py-4 text-center color-text-secondary font-mktg">
|
||||||
<div class="mb-3">{% octicon "search" width="24" %}</div>
|
<div class="mb-3">{% octicon "search" width="24" %}</div>
|
||||||
<h3 class="text-normal">Sorry, there is no result for <strong class="js-filter-card-value"></strong></h3>
|
<h3 class="text-normal">Sorry, there is no result for <strong class="js-filter-card-value"></strong></h3>
|
||||||
<p class="my-3 f4">It looks like we don't have an example that fits your filter.<br>Try another filter or add your code example</p>
|
<p class="my-3 f4">It looks like we don't have an example that fits your filter.<br>Try another filter or add your code example</p>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: Disabling and enabling a workflow
|
title: Disabling and enabling a workflow
|
||||||
intro: 'You can disable and re-enable a workflow using {% data variables.product.prodname_dotcom %} or the REST API.'
|
intro: 'You can disable and re-enable a workflow using the {% data variables.product.prodname_dotcom %} UI, the REST API, or {% data variables.product.prodname_cli %}.'
|
||||||
product: '{% data reusables.gated-features.actions %}'
|
product: '{% data reusables.gated-features.actions %}'
|
||||||
versions:
|
versions:
|
||||||
free-pro-team: '*'
|
free-pro-team: '*'
|
||||||
@@ -12,7 +12,7 @@ versions:
|
|||||||
{% data reusables.actions.enterprise-github-hosted-runners %}
|
{% data reusables.actions.enterprise-github-hosted-runners %}
|
||||||
{% data reusables.actions.ae-beta %}
|
{% data reusables.actions.ae-beta %}
|
||||||
|
|
||||||
Disabling a workflow allows you to stop a workflow from being triggered without having to delete the file from the repo. You can easily re-enable the workflow again on {% data variables.product.prodname_dotcom %}. You can also disable and enable a workflow using the REST API. For more information, see the "[Actions REST API](/rest/reference/actions#workflows)."
|
Disabling a workflow allows you to stop a workflow from being triggered without having to delete the file from the repo. You can easily re-enable the workflow again on {% data variables.product.prodname_dotcom %}.
|
||||||
|
|
||||||
Temporarily disabling a workflow can be useful in many scenarios. These are a few examples where disabling a workflow might be helpful:
|
Temporarily disabling a workflow can be useful in many scenarios. These are a few examples where disabling a workflow might be helpful:
|
||||||
|
|
||||||
@@ -27,7 +27,9 @@ Temporarily disabling a workflow can be useful in many scenarios. These are a fe
|
|||||||
|
|
||||||
{% endwarning %}
|
{% endwarning %}
|
||||||
|
|
||||||
### Disabling a workflow
|
### Disabling and enabling workflows with the {% data variables.product.prodname_dotcom %} UI
|
||||||
|
|
||||||
|
#### Disabling a workflow
|
||||||
|
|
||||||
You can manually disable a workflow so that it won't execute any workflow runs. A disabled workflow is not deleted, and can be re-enabled.
|
You can manually disable a workflow so that it won't execute any workflow runs. A disabled workflow is not deleted, and can be re-enabled.
|
||||||
|
|
||||||
@@ -42,7 +44,7 @@ You can manually disable a workflow so that it won't execute any workflow runs.
|
|||||||
The disabled workflow is marked {% octicon "stop" aria-label="The stop icon" %} to indicate its status.
|
The disabled workflow is marked {% octicon "stop" aria-label="The stop icon" %} to indicate its status.
|
||||||

|

|
||||||
|
|
||||||
### Enabling a workflow
|
#### Enabling a workflow
|
||||||
|
|
||||||
You can re-enable a workflow that was previously disabled.
|
You can re-enable a workflow that was previously disabled.
|
||||||
|
|
||||||
@@ -52,3 +54,23 @@ You can re-enable a workflow that was previously disabled.
|
|||||||

|

|
||||||
1. Click **Enable workflow**.
|
1. Click **Enable workflow**.
|
||||||

|

|
||||||
|
|
||||||
|
### Disabling and enabling workflows with {% data variables.product.prodname_cli %}
|
||||||
|
|
||||||
|
{% data reusables.actions.actions-cli %}
|
||||||
|
|
||||||
|
To disable a workflow, use the `workflow disable` subcommand. Replace `workflow` with either the name, ID, or file name of the workflow you want to disable. For example, `"Link Checker"`, `1234567`, or `"link-check-test.yml"`. If you don't specify a workflow, {% data variables.product.prodname_cli %} returns an interactive menu for you to choose a workflow.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
gh workflow disable <em>workflow</em>
|
||||||
|
```
|
||||||
|
|
||||||
|
To enable a workflow, use the `workflow enable` subcommand. Replace `workflow` with either the name, ID, or file name of the workflow you want to enable. For example, `"Link Checker"`, `1234567`, or `"link-check-test.yml"`. If you don't specify a workflow, {% data variables.product.prodname_cli %} returns an interactive menu for you to choose a workflow.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
gh workflow enable <em>workflow</em>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Disabling and enabling workflows through the REST API
|
||||||
|
|
||||||
|
You can also disable and enable a workflow using the REST API. For more information, see the "[Actions REST API](/rest/reference/actions#workflows)."
|
||||||
|
|||||||
@@ -15,6 +15,8 @@ versions:
|
|||||||
{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.22" or currentVersion == "github-ae@latest" %} By default, {% data variables.product.product_name %} stores build logs and artifacts for 90 days, and you can customize this retention period, depending on the type of repository. For more information, see "[Configuring the retention period for GitHub Actions artifacts and logs in your repository](/github/administering-a-repository/configuring-the-retention-period-for-github-actions-artifacts-and-logs-in-your-repository)."{% endif %}
|
{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.22" or currentVersion == "github-ae@latest" %} By default, {% data variables.product.product_name %} stores build logs and artifacts for 90 days, and you can customize this retention period, depending on the type of repository. For more information, see "[Configuring the retention period for GitHub Actions artifacts and logs in your repository](/github/administering-a-repository/configuring-the-retention-period-for-github-actions-artifacts-and-logs-in-your-repository)."{% endif %}
|
||||||
{% if currentVersion == "enterprise-server@2.22" %} {% data variables.product.product_name %} stores full build logs and artifacts for 90 days.{% endif %}
|
{% if currentVersion == "enterprise-server@2.22" %} {% data variables.product.product_name %} stores full build logs and artifacts for 90 days.{% endif %}
|
||||||
|
|
||||||
|
### Download artifacts with the {% data variables.product.prodname_dotcom %} UI
|
||||||
|
|
||||||
{% data reusables.repositories.permissions-statement-read %}
|
{% data reusables.repositories.permissions-statement-read %}
|
||||||
|
|
||||||
{% data reusables.repositories.navigate-to-repo %}
|
{% data reusables.repositories.navigate-to-repo %}
|
||||||
@@ -27,3 +29,33 @@ versions:
|
|||||||
{% else %}
|
{% else %}
|
||||||

|

|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
### Download artifacts with {% data variables.product.prodname_cli %}
|
||||||
|
|
||||||
|
{% data reusables.actions.actions-cli %}
|
||||||
|
|
||||||
|
{% data variables.product.prodname_cli %} will download each artifact into separate directories based on the artifact name. If only a single artifact is specified, it will be extracted into the current directory.
|
||||||
|
|
||||||
|
To download all artifacts generated by a workflow run, use the `run download` subcommand. Replace `run-id` with the ID of the run that you want to download artifacts from. If you don't specify a `run-id`, {% data variables.product.prodname_cli %} returns an interactive menu for you to choose a recent run.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
gh run download <em>run-id</em>
|
||||||
|
```
|
||||||
|
|
||||||
|
To download a specific artifact from a run, use the `run download` subcommand. Replace `run-id` with the ID of the run that you want to download artifacts from. Replace `artifact-name` with the name of the artifact that you want to download.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
gh run download <em>run-id</em> -n <em>artifact-name</em>
|
||||||
|
```
|
||||||
|
|
||||||
|
You can specify more than one artifact.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
gh run download <em>run-id</em> -n <em>artifact-name-1</em> -n <em>artifact-name-2</em>
|
||||||
|
```
|
||||||
|
|
||||||
|
To download specific artifacts across all runs in a repository, use the `run download` subcommand.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
gh run download -n <em>artifact-name-1</em> -n <em>artifact-name-2</em>
|
||||||
|
```
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: Manually running a workflow
|
title: Manually running a workflow
|
||||||
intro: 'When a workflow is configured to run on the `workflow_dispatch` event, you can run the workflow using the REST API or from the Actions tab on {% data variables.product.prodname_dotcom %}.'
|
intro: 'When a workflow is configured to run on the `workflow_dispatch` event, you can run the workflow using the Actions tab on {% data variables.product.prodname_dotcom %}, {% data variables.product.prodname_cli %}, or the REST API.'
|
||||||
product: '{% data reusables.gated-features.actions %}'
|
product: '{% data reusables.gated-features.actions %}'
|
||||||
versions:
|
versions:
|
||||||
free-pro-team: '*'
|
free-pro-team: '*'
|
||||||
@@ -31,6 +31,40 @@ To trigger the `workflow_dispatch` event on {% data variables.product.prodname_d
|
|||||||
1. Select the branch where the workflow will run and type the input parameters used by the workflow. Click **Run workflow**.
|
1. Select the branch where the workflow will run and type the input parameters used by the workflow. Click **Run workflow**.
|
||||||

|

|
||||||
|
|
||||||
|
### Running a workflow using {% data variables.product.prodname_cli %}
|
||||||
|
|
||||||
|
{% data reusables.actions.actions-cli %}
|
||||||
|
|
||||||
|
To run a workflow, use the `workflow run` subcommand. Replace the `workflow` parameter with either the name, ID, or file name of the workflow you want to run. For example, `"Link Checker"`, `1234567`, or `"link-check-test.yml"`. If you don't specify a workflow, {% data variables.product.prodname_cli %} returns an interactive menu for you to choose a workflow.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
gh workflow run <em>workflow</em>
|
||||||
|
```
|
||||||
|
|
||||||
|
If your workflow accepts inputs, {% data variables.product.prodname_cli %} will prompt you to enter them. Alternatively, you can use `-f` or `-F` to add an input in `key=value` format. Use `-F` to read from a file.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
gh workflow run greet.yml -f name=mona -f greeting=hello -F data=@myfile.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
You can also pass inputs as JSON by using standard input.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
echo '{"name":"mona", "greeting":"hello"}' | gh workflow run greet.yml --json
|
||||||
|
```
|
||||||
|
|
||||||
|
To run a workflow on a branch other than the repository's default branch, use the `--ref` flag.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
gh workflow run <em>workflow</em> --ref <em>branch-name</em>
|
||||||
|
```
|
||||||
|
|
||||||
|
To view the progress of the workflow run, use the `run watch` subcommand and select the run from the interactive list.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
gh run watch
|
||||||
|
```
|
||||||
|
|
||||||
### Running a workflow using the REST API
|
### Running a workflow using the REST API
|
||||||
|
|
||||||
When using the REST API, you configure the `inputs` and `ref` as request body parameters. If the inputs are omitted, the default values defined in the workflow file are used.
|
When using the REST API, you configure the `inputs` and `ref` as request body parameters. If the inputs are omitted, the default values defined in the workflow file are used.
|
||||||
|
|||||||
@@ -12,6 +12,8 @@ versions:
|
|||||||
{% data reusables.actions.enterprise-github-hosted-runners %}
|
{% data reusables.actions.enterprise-github-hosted-runners %}
|
||||||
{% data reusables.actions.ae-beta %}
|
{% data reusables.actions.ae-beta %}
|
||||||
|
|
||||||
|
### Re-run a workflow using the {% data variables.product.prodname_dotcom %} UI
|
||||||
|
|
||||||
{% data reusables.repositories.permissions-statement-write %}
|
{% data reusables.repositories.permissions-statement-write %}
|
||||||
|
|
||||||
{% data reusables.repositories.navigate-to-repo %}
|
{% data reusables.repositories.navigate-to-repo %}
|
||||||
@@ -19,3 +21,19 @@ versions:
|
|||||||
{% data reusables.repositories.navigate-to-workflow %}
|
{% data reusables.repositories.navigate-to-workflow %}
|
||||||
{% data reusables.repositories.view-run %}
|
{% data reusables.repositories.view-run %}
|
||||||
1. In the upper-right corner of the workflow, use the **Re-run jobs** drop-down menu, and select **Re-run all jobs**.{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.0" or currentVersion == "github-ae@latest" %}{% else %}{% endif %}
|
1. In the upper-right corner of the workflow, use the **Re-run jobs** drop-down menu, and select **Re-run all jobs**.{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.0" or currentVersion == "github-ae@latest" %}{% else %}{% endif %}
|
||||||
|
|
||||||
|
### Re-run a workflow using {% data variables.product.prodname_cli %}
|
||||||
|
|
||||||
|
{% data reusables.actions.actions-cli %}
|
||||||
|
|
||||||
|
To re-run a failed workflow run, use the `run rerun` subcommand. Replace `run-id` with the ID of the failed run that you want to re-run. If you don't specify a `run-id`, {% data variables.product.prodname_cli %} returns an interactive menu for you to choose a recent failed run.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
gh run rerun <em>run-id</em>
|
||||||
|
```
|
||||||
|
|
||||||
|
To view the progress of the workflow run, use the `run watch` subcommand and select the run from the interactive list.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
gh run watch
|
||||||
|
```
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ versions:
|
|||||||
{% data reusables.repositories.actions-tab %}
|
{% data reusables.repositories.actions-tab %}
|
||||||
{% data reusables.repositories.navigate-to-workflow %}
|
{% data reusables.repositories.navigate-to-workflow %}
|
||||||
{% data reusables.repositories.view-run %}
|
{% data reusables.repositories.view-run %}
|
||||||
1. Under **Artifacts**, click {% octicon "trashcan" aria-label="The trashcan icon" %} next to the artifact you want to remove.
|
1. Under **Artifacts**, click {% octicon "trash" aria-label="The trash icon" %} next to the artifact you want to remove.
|
||||||
{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.0" or currentVersion == "github-ae@latest" %}
|
{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.0" or currentVersion == "github-ae@latest" %}
|
||||||

|

|
||||||
{% else %}
|
{% else %}
|
||||||
|
|||||||
@@ -109,3 +109,31 @@ After deleting logs, the **Delete all logs** button is removed to indicate that
|
|||||||

|

|
||||||
After the logs have been deleted, the **Delete all logs** button is removed to indicate that no log files remain in the workflow run.
|
After the logs have been deleted, the **Delete all logs** button is removed to indicate that no log files remain in the workflow run.
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
### Viewing logs with {% data variables.product.prodname_cli %}
|
||||||
|
|
||||||
|
{% data reusables.actions.actions-cli %}
|
||||||
|
|
||||||
|
To view the log for a specific job, use the `run view` subcommand. Replace `run-id` with the ID of run that you want to view logs for. {% data variables.product.prodname_cli %} returns an interactive menu for you to choose a job from the run. If you don't specify `run-id`, {% data variables.product.prodname_cli %} returns an interactive menu for you to choose a recent run, and then returns another interactive menu for you to choose a job from the run.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
gh run view <em>run-id</em> --log
|
||||||
|
```
|
||||||
|
|
||||||
|
You can also use the `--job` flag to specify a job ID. Replace `job-id` with the ID of the job that you want to view logs for.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
gh run view --job <em>job-id</em> --log
|
||||||
|
```
|
||||||
|
|
||||||
|
You can use `grep` to search the log. For example, this command will return all log entries that contain the word `error`.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
gh run view --job <em>job-id</em> --log | grep error
|
||||||
|
```
|
||||||
|
|
||||||
|
To filter the logs for any failed steps, use `--log-failed` instead of `--log`.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
gh run view --job <em>job-id</em> --log-failed
|
||||||
|
```
|
||||||
|
|||||||
@@ -12,9 +12,67 @@ versions:
|
|||||||
{% data reusables.actions.enterprise-github-hosted-runners %}
|
{% data reusables.actions.enterprise-github-hosted-runners %}
|
||||||
{% data reusables.actions.ae-beta %}
|
{% data reusables.actions.ae-beta %}
|
||||||
|
|
||||||
|
### Viewing workflow run history on {% data variables.product.prodname_dotcom %}
|
||||||
|
|
||||||
{% data reusables.repositories.permissions-statement-read %}
|
{% data reusables.repositories.permissions-statement-read %}
|
||||||
|
|
||||||
{% data reusables.repositories.navigate-to-repo %}
|
{% data reusables.repositories.navigate-to-repo %}
|
||||||
{% data reusables.repositories.actions-tab %}
|
{% data reusables.repositories.actions-tab %}
|
||||||
{% data reusables.repositories.navigate-to-workflow %}
|
{% data reusables.repositories.navigate-to-workflow %}
|
||||||
{% data reusables.repositories.view-run %}
|
{% data reusables.repositories.view-run %}
|
||||||
|
|
||||||
|
### Viewing workflow run history with {% data variables.product.prodname_cli %}
|
||||||
|
|
||||||
|
{% data reusables.actions.actions-cli %}
|
||||||
|
|
||||||
|
#### Viewing recent workflow runs
|
||||||
|
|
||||||
|
To list the recent workflow runs, use the `run list` subcommand.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
gh run list
|
||||||
|
```
|
||||||
|
|
||||||
|
To specify the maximum number of runs to return, you can use the `-L` or `--limit` flag . The default is `10`.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
gh run list --limit 5
|
||||||
|
```
|
||||||
|
|
||||||
|
To only return runs for the specified workflow, you can use the `-w` or `--workflow` flag. Replace `workflow` with either the workflow name, workflow ID, or workflow file name. For example, `"Link Checker"`, `1234567`, or `"link-check-test.yml"`.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
gh run list --workflow <em>workflow</em>
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Viewing details for a specific workflow run
|
||||||
|
|
||||||
|
To display details for a specific workflow run, use the `run view` subcommand. Replace `run-id` with the ID of the run that you want to view. If you don't specify a `run-id`, {% data variables.product.prodname_cli %} returns an interactive menu for you to choose a recent run.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
gh run view <em>run-id</em>
|
||||||
|
```
|
||||||
|
|
||||||
|
To include job steps in the output, use the `-v` or `--verbose` flag.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
gh run view <em>run-id</em> --verbose
|
||||||
|
```
|
||||||
|
|
||||||
|
To view details for a specific job in the run, use the `-j` or `--job` flag. Replace `job-id` with the ID of the job that you want to view.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
gh run view --job <em>job-id</em>
|
||||||
|
```
|
||||||
|
|
||||||
|
To view the full log for a job, use the `--log` flag.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
gh run view --job <em>job-id</em> --log
|
||||||
|
```
|
||||||
|
|
||||||
|
Use the `--exit-status` flag to exit with a non-zero status if the run failed. For example:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
gh run view 0451 --exit-status && echo "run pending or passed"
|
||||||
|
```
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ Deleting an environment will delete all secrets and protection rules associated
|
|||||||
{% data reusables.repositories.navigate-to-repo %}
|
{% data reusables.repositories.navigate-to-repo %}
|
||||||
{% data reusables.repositories.sidebar-settings %}
|
{% data reusables.repositories.sidebar-settings %}
|
||||||
{% data reusables.github-actions.sidebar-environment %}
|
{% data reusables.github-actions.sidebar-environment %}
|
||||||
1. Next the the environment that you want to delete, click {% octicon "trashcan" aria-label="The trashcan icon" %}.
|
1. Next the the environment that you want to delete, click {% octicon "trash" aria-label="The trash icon" %}.
|
||||||
2. Click **I understand, delete this environment**.
|
2. Click **I understand, delete this environment**.
|
||||||
|
|
||||||
{% if currentVersion == "free-pro-team@latest" or currentVersion == "github-ae@next" or currentVersion ver_gt "enterprise-server@3.1" %}You can also delete environments through the REST API. For more information, see "[Environments](/rest/reference/repos#environments)."{% endif %}
|
{% if currentVersion == "free-pro-team@latest" or currentVersion == "github-ae@next" or currentVersion ver_gt "enterprise-server@3.1" %}You can also delete environments through the REST API. For more information, see "[Environments](/rest/reference/repos#environments)."{% endif %}
|
||||||
|
|||||||
@@ -899,7 +899,7 @@ The order that you define a `matrix` matters. The first option you define will b
|
|||||||
|
|
||||||
#### Example running with more than one version of Node.js
|
#### Example running with more than one version of Node.js
|
||||||
|
|
||||||
You can specify a matrix by supplying an array for the configuration options. For example, if the runner supports Node.js versions 6, 8, and 10, you could specify an array of those versions in the `matrix`.
|
You can specify a matrix by supplying an array for the configuration options. For example, if the runner supports Node.js versions 10, 12, and 14, you could specify an array of those versions in the `matrix`.
|
||||||
|
|
||||||
This example creates a matrix of three jobs by setting the `node` key to an array of three Node.js versions. To use the matrix, the example sets the `matrix.node` context property as the value of the `setup-node` action's input parameter `node-version`. As a result, three jobs will run, each using a different Node.js version.
|
This example creates a matrix of three jobs by setting the `node` key to an array of three Node.js versions. To use the matrix, the example sets the `matrix.node` context property as the value of the `setup-node` action's input parameter `node-version`. As a result, three jobs will run, each using a different Node.js version.
|
||||||
|
|
||||||
@@ -907,10 +907,10 @@ This example creates a matrix of three jobs by setting the `node` key to an arra
|
|||||||
```yaml
|
```yaml
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
node: [6, 8, 10]
|
node: [10, 12, 14]
|
||||||
steps:
|
steps:
|
||||||
# Configures the node version used on GitHub-hosted runners
|
# Configures the node version used on GitHub-hosted runners
|
||||||
- uses: actions/setup-node@v1
|
- uses: actions/setup-node@v2
|
||||||
with:
|
with:
|
||||||
# The Node.js version to configure
|
# The Node.js version to configure
|
||||||
node-version: ${{ matrix.node }}
|
node-version: ${{ matrix.node }}
|
||||||
@@ -934,9 +934,9 @@ runs-on: ${{ matrix.os }}
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-16.04, ubuntu-18.04]
|
os: [ubuntu-16.04, ubuntu-18.04]
|
||||||
node: [6, 8, 10]
|
node: [10, 12, 14]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/setup-node@v1
|
- uses: actions/setup-node@v2
|
||||||
with:
|
with:
|
||||||
node-version: ${{ matrix.node }}
|
node-version: ${{ matrix.node }}
|
||||||
```
|
```
|
||||||
@@ -948,7 +948,7 @@ steps:
|
|||||||
|
|
||||||
#### Example including additional values into combinations
|
#### Example including additional values into combinations
|
||||||
|
|
||||||
You can add additional configuration options to a build matrix job that already exists. For example, if you want to use a specific version of `npm` when the job that uses `windows-latest` and version 4 of `node` runs, you can use `include` to specify that additional option.
|
You can add additional configuration options to a build matrix job that already exists. For example, if you want to use a specific version of `npm` when the job that uses `windows-latest` and version 8 of `node` runs, you can use `include` to specify that additional option.
|
||||||
|
|
||||||
{% raw %}
|
{% raw %}
|
||||||
```yaml
|
```yaml
|
||||||
@@ -956,29 +956,29 @@ runs-on: ${{ matrix.os }}
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: [macos-latest, windows-latest, ubuntu-18.04]
|
os: [macos-latest, windows-latest, ubuntu-18.04]
|
||||||
node: [4, 6, 8, 10]
|
node: [8, 10, 12, 14]
|
||||||
include:
|
include:
|
||||||
# includes a new variable of npm with a value of 2
|
# includes a new variable of npm with a value of 6
|
||||||
# for the matrix leg matching the os and version
|
# for the matrix leg matching the os and version
|
||||||
- os: windows-latest
|
- os: windows-latest
|
||||||
node: 4
|
node: 8
|
||||||
npm: 2
|
npm: 6
|
||||||
```
|
```
|
||||||
{% endraw %}
|
{% endraw %}
|
||||||
|
|
||||||
#### Example including new combinations
|
#### Example including new combinations
|
||||||
|
|
||||||
You can use `include` to add new jobs to a build matrix. Any unmatched include configurations are added to the matrix. For example, if you want to use `node` version 12 to build on multiple operating systems, but wanted one extra experimental job using node version 13 on Ubuntu, you can use `include` to specify that additional job.
|
You can use `include` to add new jobs to a build matrix. Any unmatched include configurations are added to the matrix. For example, if you want to use `node` version 14 to build on multiple operating systems, but wanted one extra experimental job using node version 15 on Ubuntu, you can use `include` to specify that additional job.
|
||||||
|
|
||||||
{% raw %}
|
{% raw %}
|
||||||
```yaml
|
```yaml
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
node: [12]
|
node: [14]
|
||||||
os: [macos-latest, windows-latest, ubuntu-18.04]
|
os: [macos-latest, windows-latest, ubuntu-18.04]
|
||||||
include:
|
include:
|
||||||
- node: 13
|
- node: 15
|
||||||
os: ubuntu-18.04
|
os: ubuntu-18.04
|
||||||
experimental: true
|
experimental: true
|
||||||
```
|
```
|
||||||
@@ -994,11 +994,11 @@ runs-on: ${{ matrix.os }}
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: [macos-latest, windows-latest, ubuntu-18.04]
|
os: [macos-latest, windows-latest, ubuntu-18.04]
|
||||||
node: [4, 6, 8, 10]
|
node: [8, 10, 12, 14]
|
||||||
exclude:
|
exclude:
|
||||||
# excludes node 4 on macOS
|
# excludes node 8 on macOS
|
||||||
- os: macos-latest
|
- os: macos-latest
|
||||||
node: 4
|
node: 8
|
||||||
```
|
```
|
||||||
{% endraw %}
|
{% endraw %}
|
||||||
|
|
||||||
@@ -1033,7 +1033,7 @@ Prevents a workflow run from failing when a job fails. Set to `true` to allow a
|
|||||||
|
|
||||||
#### Example preventing a specific failing matrix job from failing a workflow run
|
#### Example preventing a specific failing matrix job from failing a workflow run
|
||||||
|
|
||||||
You can allow specific jobs in a job matrix to fail without failing the workflow run. For example, if you wanted to only allow an experimental job with `node` set to `13` to fail without failing the workflow run.
|
You can allow specific jobs in a job matrix to fail without failing the workflow run. For example, if you wanted to only allow an experimental job with `node` set to `15` to fail without failing the workflow run.
|
||||||
|
|
||||||
{% raw %}
|
{% raw %}
|
||||||
```yaml
|
```yaml
|
||||||
@@ -1042,11 +1042,11 @@ continue-on-error: ${{ matrix.experimental }}
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
node: [11, 12]
|
node: [13, 14]
|
||||||
os: [macos-latest, ubuntu-18.04]
|
os: [macos-latest, ubuntu-18.04]
|
||||||
experimental: [false]
|
experimental: [false]
|
||||||
include:
|
include:
|
||||||
- node: 13
|
- node: 15
|
||||||
os: ubuntu-18.04
|
os: ubuntu-18.04
|
||||||
experimental: true
|
experimental: true
|
||||||
```
|
```
|
||||||
@@ -1064,7 +1064,7 @@ If you do not set a `container`, all steps will run directly on the host specifi
|
|||||||
jobs:
|
jobs:
|
||||||
my_job:
|
my_job:
|
||||||
container:
|
container:
|
||||||
image: node:10.16-jessie
|
image: node:14.16
|
||||||
env:
|
env:
|
||||||
NODE_ENV: development
|
NODE_ENV: development
|
||||||
ports:
|
ports:
|
||||||
@@ -1079,7 +1079,7 @@ When you only specify a container image, you can omit the `image` keyword.
|
|||||||
```yaml
|
```yaml
|
||||||
jobs:
|
jobs:
|
||||||
my_job:
|
my_job:
|
||||||
container: node:10.16-jessie
|
container: node:14.16
|
||||||
```
|
```
|
||||||
|
|
||||||
### `jobs.<job_id>.container.image`
|
### `jobs.<job_id>.container.image`
|
||||||
|
|||||||
@@ -14,10 +14,6 @@ Your {% data variables.product.prodname_ghe_server %} instance includes a number
|
|||||||
|
|
||||||
These bundled actions are a point-in-time snapshot of the official actions found at https://github.com/actions; as a result, these actions may be older versions that can be updated. To update these actions, you can use `actions-sync` to retrieve updated versions from {% data variables.product.prodname_dotcom_the_website %}.
|
These bundled actions are a point-in-time snapshot of the official actions found at https://github.com/actions; as a result, these actions may be older versions that can be updated. To update these actions, you can use `actions-sync` to retrieve updated versions from {% data variables.product.prodname_dotcom_the_website %}.
|
||||||
|
|
||||||
Alternatively, if your {% data variables.product.prodname_ghe_server %} instance has {% data variables.product.prodname_github_connect %} enabled, then you have additional options for using the latest actions from {% data variables.product.prodname_dotcom_the_website %}:
|
|
||||||
|
|
||||||
- Your workflow file can directly reference a specific tag that only exists on {% data variables.product.prodname_dotcom_the_website %}.
|
|
||||||
- To force the workflow file to use the actions on {% data variables.product.prodname_dotcom_the_website %}, you can edit the tag assigned to the bundled actions.
|
|
||||||
|
|
||||||
These options are described in more detail in the following sections.
|
These options are described in more detail in the following sections.
|
||||||
|
|
||||||
@@ -30,16 +26,3 @@ To update the bundled actions, you can use the `actions-sync` tool to synchroniz
|
|||||||
{% data reusables.github-actions.actions-github-connect-requirement %}
|
{% data reusables.github-actions.actions-github-connect-requirement %}
|
||||||
|
|
||||||
Once configured, you can use a new version of an action from {% data variables.product.prodname_dotcom_the_website %} by manually specifying the required version in the workflow file. For example, to use version `v2.2.1` of `actions/setup-python` from {% data variables.product.prodname_dotcom_the_website %}, you can specify the tag `actions/setup-python@v2.2.1` in your workflow file.
|
Once configured, you can use a new version of an action from {% data variables.product.prodname_dotcom_the_website %} by manually specifying the required version in the workflow file. For example, to use version `v2.2.1` of `actions/setup-python` from {% data variables.product.prodname_dotcom_the_website %}, you can specify the tag `actions/setup-python@v2.2.1` in your workflow file.
|
||||||
|
|
||||||
### Using the latest version by removing the specific action's tag
|
|
||||||
|
|
||||||
{% data reusables.github-actions.actions-github-connect-requirement %}
|
|
||||||
|
|
||||||
If you remove the version tag that was previously assigned to an action, {% data variables.product.prodname_ghe_server %} will check {% data variables.product.prodname_dotcom_the_website %} for the required tag. For more information on working with tags, see "[Viewing tags](/github/administering-a-repository/viewing-your-repositorys-releases-and-tags#viewing-tags)."
|
|
||||||
|
|
||||||
For example, to use version `v2.2.1` of `actions/setup-python` from {% data variables.product.prodname_dotcom_the_website %}:
|
|
||||||
|
|
||||||
1. In {% data variables.product.prodname_ghe_server %}, delete the `v2` tag from the `actions/setup-python` repository.
|
|
||||||
1. Create a workflow that uses `actions/setup-python` with the `v2` tag.
|
|
||||||
|
|
||||||
When the workflow is unable to find the specified `v2` tag on {% data variables.product.prodname_ghe_server %}, it checks {% data variables.product.prodname_dotcom_the_website %} for the required tag. If it finds a tagged version of that action, {% data variables.product.prodname_ghe_server %} uses the version from {% data variables.product.prodname_dotcom_the_website %}.
|
|
||||||
|
|||||||
@@ -24,9 +24,9 @@ When your code depends on a package that has a security vulnerability, this vuln
|
|||||||
{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.21" %}{% data variables.product.prodname_dependabot %} detects vulnerable dependencies and sends {% data variables.product.prodname_dependabot_alerts %}{% else %}{% data variables.product.product_name %} detects vulnerable dependencies and sends security alerts{% endif %} when:
|
{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.21" %}{% data variables.product.prodname_dependabot %} detects vulnerable dependencies and sends {% data variables.product.prodname_dependabot_alerts %}{% else %}{% data variables.product.product_name %} detects vulnerable dependencies and sends security alerts{% endif %} when:
|
||||||
|
|
||||||
{% if currentVersion == "free-pro-team@latest" %}
|
{% if currentVersion == "free-pro-team@latest" %}
|
||||||
- A new vulnerability is added to the {% data variables.product.prodname_advisory_database %}. For more information, see "[Browsing security vulnerabilities in the {% data variables.product.prodname_advisory_database %}](/github/managing-security-vulnerabilities/browsing-security-vulnerabilities-in-the-github-advisory-database)."{% else %}
|
- A new vulnerability is added to the {% data variables.product.prodname_advisory_database %}. For more information, see "[Browsing security vulnerabilities in the {% data variables.product.prodname_advisory_database %}](/github/managing-security-vulnerabilities/browsing-security-vulnerabilities-in-the-github-advisory-database)" and "[About {% data variables.product.prodname_security_advisories %}](/code-security/security-advisories/about-github-security-advisories)."{% else %}
|
||||||
- New advisory data is synchronized to {% data variables.product.prodname_ghe_server %} each hour from {% data variables.product.prodname_dotcom_the_website %}. For more information about advisory data, see "<a href="/github/managing-security-vulnerabilities/browsing-security-vulnerabilities-in-the-github-advisory-database" class="dotcom-only">Browsing security vulnerabilities in the {% data variables.product.prodname_advisory_database %}</a>."{% endif %}
|
- New advisory data is synchronized to {% data variables.product.prodname_ghe_server %} each hour from {% data variables.product.prodname_dotcom_the_website %}. {% data reusables.security-advisory.link-browsing-advisory-db %}{% endif %}
|
||||||
- The dependency graph for a repository changes. For example, when a contributor pushes a commit to change the packages or versions it depends on{% if currentVersion == "free-pro-team@latest" %}, or when the code of one of the dependencies changes{% endif %}. For more information, see "[About the dependency graph](/github/visualizing-repository-data-with-graphs/about-the-dependency-graph)."
|
- The dependency graph for a repository changes. For example, when a contributor pushes a commit to change the packages or versions it depends on{% if currentVersion == "free-pro-team@latest" %}, or when the code of one of the dependencies changes{% endif %}. For more information, see "[About the dependency graph](/code-security/supply-chain-security/about-the-dependency-graph)."
|
||||||
|
|
||||||
{% data reusables.repositories.dependency-review %}
|
{% data reusables.repositories.dependency-review %}
|
||||||
|
|
||||||
@@ -38,7 +38,7 @@ For a list of the ecosystems that {% data variables.product.product_name %} can
|
|||||||
|
|
||||||
{% endnote %}
|
{% endnote %}
|
||||||
|
|
||||||
{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.21" % %}
|
{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.21" %}
|
||||||
### {% data variables.product.prodname_dependabot %} alerts for vulnerable dependencies
|
### {% data variables.product.prodname_dependabot %} alerts for vulnerable dependencies
|
||||||
{% else %}
|
{% else %}
|
||||||
### Security alerts for vulnerable dependencies
|
### Security alerts for vulnerable dependencies
|
||||||
@@ -75,7 +75,7 @@ When {% data variables.product.product_name %} identifies a vulnerable dependenc
|
|||||||
|
|
||||||
### Access to {% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.21" %}{% data variables.product.prodname_dependabot %}{% else %}security{% endif %} alerts
|
### Access to {% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.21" %}{% data variables.product.prodname_dependabot %}{% else %}security{% endif %} alerts
|
||||||
|
|
||||||
You can see all of the alerts that affect a particular project{% if currentVersion == "free-pro-team@latest" %} on the repository's Security tab or{% endif %} in the repository's dependency graph.{% if currentVersion == "free-pro-team@latest" %} For more information, see "[Viewing and updating vulnerable dependencies in your repository](/github/managing-security-vulnerabilities/viewing-and-updating-vulnerable-dependencies-in-your-repository)."{% endif %}
|
You can see all of the alerts that affect a particular project{% if currentVersion == "free-pro-team@latest" %} on the repository's Security tab or{% endif %} in the repository's dependency graph. For more information, see "[Viewing and updating vulnerable dependencies in your repository](/github/managing-security-vulnerabilities/viewing-and-updating-vulnerable-dependencies-in-your-repository)."
|
||||||
|
|
||||||
{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.21" %}
|
{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.21" %}
|
||||||
By default, we notify people with admin permissions in the affected repositories about new {% data variables.product.prodname_dependabot_alerts %}.{% endif %} {% if currentVersion == "free-pro-team@latest" %}{% data variables.product.product_name %} never publicly discloses identified vulnerabilities for any repository. You can also make {% data variables.product.prodname_dependabot_alerts %} visible to additional people or teams working repositories that you own or have admin permissions for. For more information, see "[Managing security and analysis settings for your repository](/github/administering-a-repository/managing-security-and-analysis-settings-for-your-repository#granting-access-to-security-alerts)."
|
By default, we notify people with admin permissions in the affected repositories about new {% data variables.product.prodname_dependabot_alerts %}.{% endif %} {% if currentVersion == "free-pro-team@latest" %}{% data variables.product.product_name %} never publicly discloses identified vulnerabilities for any repository. You can also make {% data variables.product.prodname_dependabot_alerts %} visible to additional people or teams working repositories that you own or have admin permissions for. For more information, see "[Managing security and analysis settings for your repository](/github/administering-a-repository/managing-security-and-analysis-settings-for-your-repository#granting-access-to-security-alerts)."
|
||||||
@@ -87,9 +87,7 @@ We send security alerts to people with admin permissions in the affected reposit
|
|||||||
|
|
||||||
{% data reusables.notifications.vulnerable-dependency-notification-delivery-method-customization %}{% if enterpriseServerVersions contains currentVersion and currentVersion ver_lt "enterprise-server@2.21" %} For more information, see "[Choosing the delivery method for your notifications](/github/receiving-notifications-about-activity-on-github/choosing-the-delivery-method-for-your-notifications)."{% endif %}{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.20" %} For more information, see "[Configuring notifications for vulnerable dependencies](/code-security/supply-chain-security/configuring-notifications-for-vulnerable-dependencies)."{% endif %}
|
{% data reusables.notifications.vulnerable-dependency-notification-delivery-method-customization %}{% if enterpriseServerVersions contains currentVersion and currentVersion ver_lt "enterprise-server@2.21" %} For more information, see "[Choosing the delivery method for your notifications](/github/receiving-notifications-about-activity-on-github/choosing-the-delivery-method-for-your-notifications)."{% endif %}{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.20" %} For more information, see "[Configuring notifications for vulnerable dependencies](/code-security/supply-chain-security/configuring-notifications-for-vulnerable-dependencies)."{% endif %}
|
||||||
|
|
||||||
{% if currentVersion == "free-pro-team@latest" %}
|
You can also see all the {% data variables.product.prodname_dependabot_alerts %} that correspond to a particular vulnerability in the {% data variables.product.prodname_advisory_database %}. {% data reusables.security-advisory.link-browsing-advisory-db %}
|
||||||
You can also see all the {% data variables.product.prodname_dependabot_alerts %} that correspond to a particular vulnerability in the {% data variables.product.prodname_advisory_database %}. For more information, see "[Browsing security vulnerabilities in the {% data variables.product.prodname_advisory_database %}](/github/managing-security-vulnerabilities/browsing-security-vulnerabilities-in-the-github-advisory-database#viewing-your-vulnerable-repositories)."
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if currentVersion == "free-pro-team@latest" %}
|
{% if currentVersion == "free-pro-team@latest" %}
|
||||||
### Further reading
|
### Further reading
|
||||||
|
|||||||
@@ -767,6 +767,19 @@ registries:
|
|||||||
```
|
```
|
||||||
{% endraw %}
|
{% endraw %}
|
||||||
|
|
||||||
|
The `docker-registry` type can also be used to pull from Amazon ECR using static AWS credentials.
|
||||||
|
|
||||||
|
{% raw %}
|
||||||
|
```yaml
|
||||||
|
registries:
|
||||||
|
ecr-docker:
|
||||||
|
type: docker-registry
|
||||||
|
url: https://1234567890.dkr.ecr.us-east-1.amazonaws.com
|
||||||
|
username: ${{secrets.ECR_AWS_ACCESS_KEY_ID}}
|
||||||
|
password: ${{secrets.ECR_AWS_SECRET_ACCESS_KEY}}
|
||||||
|
```
|
||||||
|
{% endraw %}
|
||||||
|
|
||||||
#### `git`
|
#### `git`
|
||||||
|
|
||||||
The `git` type supports username and password.
|
The `git` type supports username and password.
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ redirect_from:
|
|||||||
- /github/managing-security-vulnerabilities/troubleshooting-the-detection-of-vulnerable-dependencies
|
- /github/managing-security-vulnerabilities/troubleshooting-the-detection-of-vulnerable-dependencies
|
||||||
versions:
|
versions:
|
||||||
free-pro-team: '*'
|
free-pro-team: '*'
|
||||||
|
enterprise-server: '>=3.0'
|
||||||
topics:
|
topics:
|
||||||
- security
|
- security
|
||||||
---
|
---
|
||||||
@@ -16,18 +17,18 @@ The results of dependency detection reported by {% data variables.product.produc
|
|||||||
|
|
||||||
{% data variables.product.prodname_dotcom %} generates and displays dependency data differently than other tools. Consequently, if you've been using another tool to identify dependencies you will almost certainly see different results. Consider the following:
|
{% data variables.product.prodname_dotcom %} generates and displays dependency data differently than other tools. Consequently, if you've been using another tool to identify dependencies you will almost certainly see different results. Consider the following:
|
||||||
|
|
||||||
* {% data variables.product.prodname_advisory_database %} is one of the data sources that {% data variables.product.prodname_dotcom %} uses to identify vulnerable dependencies. It's a free, curated database of vulnerability information for common package ecosystems on {% data variables.product.prodname_dotcom %}. It includes both data reported directly to {% data variables.product.prodname_dotcom %} from {% data variables.product.prodname_security_advisories %}, as well as official feeds and community sources. This data is reviewed and curated by {% data variables.product.prodname_dotcom %} to ensure that false or unactionable information is not shared with the development community. For more information, see "[Browsing security vulnerabilities in the {% data variables.product.prodname_advisory_database %}](/github/managing-security-vulnerabilities/browsing-security-vulnerabilities-in-the-github-advisory-database)" and "[About {% data variables.product.prodname_security_advisories %}](/github/managing-security-vulnerabilities/about-github-security-advisories)."
|
* {% data variables.product.prodname_advisory_database %} is one of the data sources that {% data variables.product.prodname_dotcom %} uses to identify vulnerable dependencies. It's a free, curated database of vulnerability information for common package ecosystems on {% data variables.product.prodname_dotcom %}. It includes both data reported directly to {% data variables.product.prodname_dotcom %} from {% data variables.product.prodname_security_advisories %}, as well as official feeds and community sources. This data is reviewed and curated by {% data variables.product.prodname_dotcom %} to ensure that false or unactionable information is not shared with the development community. {% data reusables.security-advisory.link-browsing-advisory-db %}
|
||||||
* The dependency graph parses all known package manifest files in a user’s repository. For example, for npm it will parse the _package-lock.json_ file. It constructs a graph of all of the repository’s dependencies and public dependents. This happens when you enable the dependency graph and when anyone pushes to the default branch, and it includes commits that makes changes to a supported manifest format. For more information, see "[About the dependency graph](/github/visualizing-repository-data-with-graphs/about-the-dependency-graph)."
|
* The dependency graph parses all known package manifest files in a user’s repository. For example, for npm it will parse the _package-lock.json_ file. It constructs a graph of all of the repository’s dependencies and public dependents. This happens when you enable the dependency graph and when anyone pushes to the default branch, and it includes commits that makes changes to a supported manifest format. For more information, see "[About the dependency graph](/github/visualizing-repository-data-with-graphs/about-the-dependency-graph)."
|
||||||
* {% data variables.product.prodname_dependabot %} scans any push, to the default branch, that contains a manifest file. When a new vulnerability record is added, it scans all existing repositories and generates an alert for each vulnerable repository. {% data variables.product.prodname_dependabot_alerts %} are aggregated at the repository level, rather than creating one alert per vulnerability. For more information, see "[About alerts for vulnerable dependencies](/code-security/supply-chain-security/about-alerts-for-vulnerable-dependencies)."
|
* {% data variables.product.prodname_dependabot %} scans any push, to the default branch, that contains a manifest file. When a new vulnerability record is added, it scans all existing repositories and generates an alert for each vulnerable repository. {% data variables.product.prodname_dependabot_alerts %} are aggregated at the repository level, rather than creating one alert per vulnerability. For more information, see "[About alerts for vulnerable dependencies](/code-security/supply-chain-security/about-alerts-for-vulnerable-dependencies)."
|
||||||
* {% data variables.product.prodname_dependabot_security_updates %} are triggered when you receive an alert about a vulnerable dependency in your repository. Where possible, {% data variables.product.prodname_dependabot %} creates a pull request in your repository to upgrade the vulnerable dependency to the minimum possible secure version needed to avoid the vulnerability. For more information, see "[About {% data variables.product.prodname_dependabot_security_updates %}](/github/managing-security-vulnerabilities/about-dependabot-security-updates)" and "[Troubleshooting {% data variables.product.prodname_dependabot %} errors](/github/managing-security-vulnerabilities/troubleshooting-dependabot-errors)."
|
* {% if currentVersion == "free-pro-team@latest" %}{% data variables.product.prodname_dependabot_security_updates %} are triggered when you receive an alert about a vulnerable dependency in your repository. Where possible, {% data variables.product.prodname_dependabot %} creates a pull request in your repository to upgrade the vulnerable dependency to the minimum possible secure version needed to avoid the vulnerability. For more information, see "[About {% data variables.product.prodname_dependabot_security_updates %}](/github/managing-security-vulnerabilities/about-dependabot-security-updates)" and "[Troubleshooting {% data variables.product.prodname_dependabot %} errors](/github/managing-security-vulnerabilities/troubleshooting-dependabot-errors)."
|
||||||
|
|
||||||
{% data variables.product.prodname_dependabot %} doesn't scan repositories for vulnerable dependencies on a schedule, but rather when something changes. For example, a scan is triggered when a new dependency is added ({% data variables.product.prodname_dotcom %} checks for this on every push), or when a new vulnerability is discovered and added to the advisory database.
|
{% endif %}{% data variables.product.prodname_dependabot %} doesn't scan repositories for vulnerable dependencies on a schedule, but rather when something changes. For example, a scan is triggered when a new dependency is added ({% data variables.product.prodname_dotcom %} checks for this on every push), or when a new vulnerability is added to the advisory database{% if currentVersion ver_gt "enterprise-server@2.22" %} and synchronized to {% data variables.product.prodname_ghe_server %}{% endif %}. For more information, see "[About alerts for vulnerable dependencies](/code-security/supply-chain-security/about-alerts-for-vulnerable-dependencies#detection-of-vulnerable-dependencies)."
|
||||||
|
|
||||||
### Why don't I get vulnerability alerts for some ecosystems?
|
### Why don't I get vulnerability alerts for some ecosystems?
|
||||||
|
|
||||||
{% data variables.product.prodname_dotcom %} limits its support for vulnerability alerts to a set of ecosystems where we can provide high-quality, actionable data. Curated vulnerabilities in the {% data variables.product.prodname_advisory_database %}, the dependency graph, {% data variables.product.prodname_dependabot_alerts %}, and {% data variables.product.prodname_dependabot %} security updates are provided for several ecosystems, including Java’s Maven, JavaScript’s npm and Yarn, .NET’s NuGet, Python’s pip, Ruby's RubyGems, and PHP’s Composer. We'll continue to add support for more ecosystems over time. For an overview of the package ecosystems that we support, see "[About the dependency graph](/github/visualizing-repository-data-with-graphs/about-the-dependency-graph#supported-package-ecosystems)."
|
{% data variables.product.prodname_dotcom %} limits its support for vulnerability alerts to a set of ecosystems where we can provide high-quality, actionable data. Curated vulnerabilities in the {% data variables.product.prodname_advisory_database %}, the dependency graph, {% if currentVersion == "free-pro-team@latest" %}{% data variables.product.prodname_dependabot %} security updates, {% endif %}and {% data variables.product.prodname_dependabot %} alerts are provided for several ecosystems, including Java’s Maven, JavaScript’s npm and Yarn, .NET’s NuGet, Python’s pip, Ruby's RubyGems, and PHP’s Composer. We'll continue to add support for more ecosystems over time. For an overview of the package ecosystems that we support, see "[About the dependency graph](/github/visualizing-repository-data-with-graphs/about-the-dependency-graph#supported-package-ecosystems)."
|
||||||
|
|
||||||
It's worth noting that [{% data variables.product.prodname_dotcom %} Security Advisories](/github/managing-security-vulnerabilities/about-github-security-advisories) may exist for other ecosystems. The information in a security advisory is provided by the maintainers of a particular repository. This data is not curated in the same way as information for the supported ecosystems.
|
It's worth noting that {% data variables.product.prodname_dotcom %} Security Advisories may exist for other ecosystems. The information in a security advisory is provided by the maintainers of a particular repository. This data is not curated in the same way as information for the supported ecosystems. {% if currentVersion == "free-pro-team@latest" %}For more information, see "[About {% data variables.product.prodname_dotcom %} Security Advisories](/github/managing-security-vulnerabilities/about-github-security-advisories)."{% endif %}
|
||||||
|
|
||||||
**Check**: Does the uncaught vulnerability apply to an unsupported ecosystem?
|
**Check**: Does the uncaught vulnerability apply to an unsupported ecosystem?
|
||||||
|
|
||||||
@@ -35,9 +36,9 @@ It's worth noting that [{% data variables.product.prodname_dotcom %} Security Ad
|
|||||||
|
|
||||||
The dependency graph includes information on dependencies that are explicitly declared in your environment. That is, dependencies that are specified in a manifest or a lockfile. The dependency graph generally also includes transitive dependencies, even when they aren't specified in a lockfile, by looking at the dependencies of the dependencies in a manifest file.
|
The dependency graph includes information on dependencies that are explicitly declared in your environment. That is, dependencies that are specified in a manifest or a lockfile. The dependency graph generally also includes transitive dependencies, even when they aren't specified in a lockfile, by looking at the dependencies of the dependencies in a manifest file.
|
||||||
|
|
||||||
{% data variables.product.prodname_dependabot_alerts %} advise you about dependencies you should update, including transitive dependencies, where the version can be determined from a manifest or a lockfile. {% data variables.product.prodname_dependabot %} security updates only suggests a change where it can directly "fix" the dependency, that is, when these are:
|
{% data variables.product.prodname_dependabot_alerts %} advise you about dependencies you should update, including transitive dependencies, where the version can be determined from a manifest or a lockfile. {% if currentVersion == "free-pro-team@latest" %}{% data variables.product.prodname_dependabot_security_updates %} only suggest a change where {% data variables.product.prodname_dependabot %} can directly "fix" the dependency, that is, when these are:
|
||||||
* Direct dependencies explicitly declared in a manifest or lockfile
|
* Direct dependencies explicitly declared in a manifest or lockfile
|
||||||
* Transitive dependencies declared in a lockfile
|
* Transitive dependencies declared in a lockfile{% endif %}
|
||||||
|
|
||||||
The dependency graph doesn't include “loose” dependencies. “Loose” dependencies are individual files that are copied from another source and checked into the repository directly or within an archive (such as a ZIP or JAR file), rather than being referenced by in a package manager’s manifest or lockfile.
|
The dependency graph doesn't include “loose” dependencies. “Loose” dependencies are individual files that are copied from another source and checked into the repository directly or within an archive (such as a ZIP or JAR file), rather than being referenced by in a package manager’s manifest or lockfile.
|
||||||
|
|
||||||
@@ -83,6 +84,7 @@ Some third-party tools use uncurated CVE data that isn't checked or filtered by
|
|||||||
|
|
||||||
Since {% data variables.product.prodname_dependabot %} uses curated data in the {% data variables.product.prodname_advisory_database %}, the volume of alerts may be lower, but the alerts you do receive will be accurate and relevant.
|
Since {% data variables.product.prodname_dependabot %} uses curated data in the {% data variables.product.prodname_advisory_database %}, the volume of alerts may be lower, but the alerts you do receive will be accurate and relevant.
|
||||||
|
|
||||||
|
{% if currentVersion == "free-pro-team@latest" %}
|
||||||
### Does each dependency vulnerability generate a separate alert?
|
### Does each dependency vulnerability generate a separate alert?
|
||||||
|
|
||||||
When a dependency has multiple vulnerabilities, only one aggregated alert is generated for that dependency, instead of one alert per vulnerability.
|
When a dependency has multiple vulnerabilities, only one aggregated alert is generated for that dependency, instead of one alert per vulnerability.
|
||||||
@@ -96,10 +98,11 @@ When you click to display the alert details, you can see how many vulnerabilitie
|
|||||||

|

|
||||||
|
|
||||||
**Check**: If there is a discrepancy in the totals you are seeing, check that you are not comparing alert numbers with vulnerability numbers.
|
**Check**: If there is a discrepancy in the totals you are seeing, check that you are not comparing alert numbers with vulnerability numbers.
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
### Further reading
|
### Further reading
|
||||||
|
|
||||||
- "[About alerts for vulnerable dependencies](/code-security/supply-chain-security/about-alerts-for-vulnerable-dependencies)"
|
- "[About alerts for vulnerable dependencies](/code-security/supply-chain-security/about-alerts-for-vulnerable-dependencies)"
|
||||||
- "[Viewing and updating vulnerable dependencies in your repository](/github/managing-security-vulnerabilities/viewing-and-updating-vulnerable-dependencies-in-your-repository)"
|
- "[Viewing and updating vulnerable dependencies in your repository](/github/managing-security-vulnerabilities/viewing-and-updating-vulnerable-dependencies-in-your-repository)"
|
||||||
- "[Managing security and analysis settings for your repository](/github/administering-a-repository/managing-security-and-analysis-settings-for-your-repository)"
|
- "[Managing security and analysis settings for your repository](/github/administering-a-repository/managing-security-and-analysis-settings-for-your-repository)"{% if currentVersion == "free-pro-team@latest" %}
|
||||||
- "[Troubleshooting {% data variables.product.prodname_dependabot %} errors](/github/managing-security-vulnerabilities/troubleshooting-dependabot-errors)"
|
- "[Troubleshooting {% data variables.product.prodname_dependabot %} errors](/github/managing-security-vulnerabilities/troubleshooting-dependabot-errors)"{% endif %}
|
||||||
|
|||||||
@@ -8,11 +8,13 @@ permissions: Repository administrators and organization owners can view and upda
|
|||||||
shortTitle: Viewing and updating vulnerable dependencies
|
shortTitle: Viewing and updating vulnerable dependencies
|
||||||
versions:
|
versions:
|
||||||
free-pro-team: '*'
|
free-pro-team: '*'
|
||||||
|
enterprise-server: '>=3.0'
|
||||||
topics:
|
topics:
|
||||||
- security
|
- security
|
||||||
---
|
---
|
||||||
Your repository's {% data variables.product.prodname_dependabot %} alerts tab lists all open and closed {% data variables.product.prodname_dependabot_alerts %} and corresponding {% data variables.product.prodname_dependabot_security_updates %}. You can sort the list of alerts using the drop-down menu, and you can click into specific alerts for more details. For more information, see "[About alerts for vulnerable dependencies](/code-security/supply-chain-security/about-alerts-for-vulnerable-dependencies)."
|
Your repository's {% data variables.product.prodname_dependabot %} alerts tab lists all open and closed {% data variables.product.prodname_dependabot_alerts %}{% if currentVersion == "free-pro-team@latest" %} and corresponding {% data variables.product.prodname_dependabot_security_updates %}{% endif %}. You can sort the list of alerts using the drop-down menu, and you can click into specific alerts for more details. For more information, see "[About alerts for vulnerable dependencies](/code-security/supply-chain-security/about-alerts-for-vulnerable-dependencies)."
|
||||||
|
|
||||||
|
{% if currentVersion == "free-pro-team@latest" %}
|
||||||
You can enable automatic security updates for any repository that uses {% data variables.product.prodname_dependabot_alerts %} and the dependency graph. For more information, see "[About {% data variables.product.prodname_dependabot_security_updates %}](/github/managing-security-vulnerabilities/about-dependabot-security-updates)."
|
You can enable automatic security updates for any repository that uses {% data variables.product.prodname_dependabot_alerts %} and the dependency graph. For more information, see "[About {% data variables.product.prodname_dependabot_security_updates %}](/github/managing-security-vulnerabilities/about-dependabot-security-updates)."
|
||||||
|
|
||||||
{% data reusables.repositories.dependency-review %}
|
{% data reusables.repositories.dependency-review %}
|
||||||
@@ -20,9 +22,11 @@ You can enable automatic security updates for any repository that uses {% data v
|
|||||||
### About updates for vulnerable dependencies in your repository
|
### About updates for vulnerable dependencies in your repository
|
||||||
|
|
||||||
{% data variables.product.product_name %} generates {% data variables.product.prodname_dependabot_alerts %} when we detect that your codebase is using dependencies with known vulnerabilities. For repositories where {% data variables.product.prodname_dependabot_security_updates %} are enabled, when {% data variables.product.product_name %} detects a vulnerable dependency in the default branch, {% data variables.product.prodname_dependabot %} creates a pull request to fix it. The pull request will upgrade the dependency to the minimum possible secure version needed to avoid the vulnerability.
|
{% data variables.product.product_name %} generates {% data variables.product.prodname_dependabot_alerts %} when we detect that your codebase is using dependencies with known vulnerabilities. For repositories where {% data variables.product.prodname_dependabot_security_updates %} are enabled, when {% data variables.product.product_name %} detects a vulnerable dependency in the default branch, {% data variables.product.prodname_dependabot %} creates a pull request to fix it. The pull request will upgrade the dependency to the minimum possible secure version needed to avoid the vulnerability.
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
### Viewing and updating vulnerable dependencies
|
### Viewing and updating vulnerable dependencies
|
||||||
|
|
||||||
|
{% if currentVersion == "free-pro-team@latest" %}
|
||||||
{% data reusables.repositories.navigate-to-repo %}
|
{% data reusables.repositories.navigate-to-repo %}
|
||||||
{% data reusables.repositories.sidebar-security %}
|
{% data reusables.repositories.sidebar-security %}
|
||||||
{% data reusables.repositories.sidebar-dependabot-alerts %}
|
{% data reusables.repositories.sidebar-dependabot-alerts %}
|
||||||
@@ -35,10 +39,31 @@ You can enable automatic security updates for any repository that uses {% data v
|
|||||||
1. Optionally, if the alert is being fixed, if it's incorrect, or located in unused code, use the "Dismiss" drop-down, and click a reason for dismissing the alert.
|
1. Optionally, if the alert is being fixed, if it's incorrect, or located in unused code, use the "Dismiss" drop-down, and click a reason for dismissing the alert.
|
||||||

|

|
||||||
|
|
||||||
|
{% elsif currentVersion ver_gt "enterprise-server@3.0" %}
|
||||||
|
{% data reusables.repositories.navigate-to-repo %}
|
||||||
|
{% data reusables.repositories.sidebar-security %}
|
||||||
|
{% data reusables.repositories.sidebar-dependabot-alerts %}
|
||||||
|
1. Click the alert you'd like to view.
|
||||||
|

|
||||||
|
1. Review the details of the vulnerability and determine whether or not you need to update the dependency.
|
||||||
|
1. When you merge a pull request that updates the manifest or lock file to a secure version of the dependency, this will resolve the alert. Alternatively, if you decide not to update the dependency, click the **Dismiss** drop-down, and select a reason for dismissing the alert.
|
||||||
|

|
||||||
|
|
||||||
|
{% else %}
|
||||||
|
{% data reusables.repositories.navigate-to-repo %}
|
||||||
|
{% data reusables.repositories.accessing-repository-graphs %}
|
||||||
|
{% data reusables.repositories.click-dependency-graph %}
|
||||||
|
1. Click the version number of the vulnerable dependency to display detailed information.
|
||||||
|

|
||||||
|
1. Review the details of the vulnerability and determine whether or not you need to update the dependency. When you merge a pull request that updates the manifest or lock file to a secure version of the dependency, this will resolve the alert.
|
||||||
|
1. The banner at the top of the **Dependencies** tab is displayed until all the vulnerable dependencies are resolved or you dismiss it. Click **Dismiss** in the top right corner of the banner and select a reason for dismissing the alert.
|
||||||
|

|
||||||
|
{% endif %}
|
||||||
|
|
||||||
### Further reading
|
### Further reading
|
||||||
|
|
||||||
- "[About alerts for vulnerable dependencies](/code-security/supply-chain-security/about-alerts-for-vulnerable-dependencies)"
|
- "[About alerts for vulnerable dependencies](/code-security/supply-chain-security/about-alerts-for-vulnerable-dependencies)"{% if currentVersion == "free-pro-team@latest" %}
|
||||||
- "[Configuring {% data variables.product.prodname_dependabot_security_updates %}](/github/managing-security-vulnerabilities/configuring-dependabot-security-updates)"
|
- "[Configuring {% data variables.product.prodname_dependabot_security_updates %}](/github/managing-security-vulnerabilities/configuring-dependabot-security-updates)"{% endif %}
|
||||||
- "[Managing security and analysis settings for your repository](/github/administering-a-repository/managing-security-and-analysis-settings-for-your-repository)"
|
- "[Managing security and analysis settings for your repository](/github/administering-a-repository/managing-security-and-analysis-settings-for-your-repository)"
|
||||||
- "[Troubleshooting the detection of vulnerable dependencies](/github/managing-security-vulnerabilities/troubleshooting-the-detection-of-vulnerable-dependencies)"
|
- "[Troubleshooting the detection of vulnerable dependencies](/github/managing-security-vulnerabilities/troubleshooting-the-detection-of-vulnerable-dependencies)"{% if currentVersion == "free-pro-team@latest" %}
|
||||||
- "[Troubleshooting {% data variables.product.prodname_dependabot %} errors](/github/managing-security-vulnerabilities/troubleshooting-dependabot-errors)"
|
- "[Troubleshooting {% data variables.product.prodname_dependabot %} errors](/github/managing-security-vulnerabilities/troubleshooting-dependabot-errors)"{% endif %}
|
||||||
|
|||||||
@@ -179,7 +179,7 @@ You must complete this step of the GitHub App Manifest flow within one hour.
|
|||||||
{% data reusables.pre-release-program.api-preview-warning %}
|
{% data reusables.pre-release-program.api-preview-warning %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
POST /app-manifests/:code/conversions
|
POST /app-manifests/{code}/conversions
|
||||||
|
|
||||||
For more information about the endpoint's response, see [Create a GitHub App from a manifest](/rest/reference/apps#create-a-github-app-from-a-manifest).
|
For more information about the endpoint's response, see [Create a GitHub App from a manifest](/rest/reference/apps#create-a-github-app-from-a-manifest).
|
||||||
|
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ versions:
|
|||||||
{% if discussionsCommunityExamples.length > 6 %}
|
{% if discussionsCommunityExamples.length > 6 %}
|
||||||
<button class="js-filter-card-show-more btn btn-outline float-right" data-js-filter-card-max="6">Show more {% octicon "arrow-right" %}</button>
|
<button class="js-filter-card-show-more btn btn-outline float-right" data-js-filter-card-max="6">Show more {% octicon "arrow-right" %}</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<div class="js-filter-card-no-results d-none py-4 text-center text-gray font-mktg">
|
<div class="js-filter-card-no-results d-none py-4 text-center color-text-secondary font-mktg">
|
||||||
<div class="mb-3">{% octicon "search" width="24" %}</div>
|
<div class="mb-3">{% octicon "search" width="24" %}</div>
|
||||||
<h3 class="text-normal">Sorry, there is no result for <strong class="js-filter-card-value"></strong></h3>
|
<h3 class="text-normal">Sorry, there is no result for <strong class="js-filter-card-value"></strong></h3>
|
||||||
<p class="my-3 f4">It looks like we don't have an example that fits your filter.<br>Try another filter or add your code example</p>
|
<p class="my-3 f4">It looks like we don't have an example that fits your filter.<br>Try another filter or add your code example</p>
|
||||||
|
|||||||
@@ -52,8 +52,8 @@ For more information about repository permission levels, see "[Permission levels
|
|||||||
{% data reusables.repositories.navigate-to-repo %}
|
{% data reusables.repositories.navigate-to-repo %}
|
||||||
{% data reusables.repositories.sidebar-settings %}
|
{% data reusables.repositories.sidebar-settings %}
|
||||||
{% data reusables.repositories.navigate-to-manage-access %}
|
{% data reusables.repositories.navigate-to-manage-access %}
|
||||||
4. Under "Manage access", find the team or person whose access you'd like to remove, then click {% octicon "trashcan" aria-label="The trashcan icon" %}.
|
4. Under "Manage access", find the team or person whose access you'd like to remove, then click {% octicon "trash" aria-label="The trash icon" %}.
|
||||||

|

|
||||||
|
|
||||||
### Further reading
|
### Further reading
|
||||||
|
|
||||||
|
|||||||
@@ -38,4 +38,10 @@ From the local clone of the repository on a computer, run the following commands
|
|||||||
$ git branch -m <em>OLD-BRANCH-NAME</em> <em>NEW-BRANCH-NAME</em>
|
$ git branch -m <em>OLD-BRANCH-NAME</em> <em>NEW-BRANCH-NAME</em>
|
||||||
$ git fetch origin
|
$ git fetch origin
|
||||||
$ git branch -u origin/<em>NEW-BRANCH-NAME</em> <em>NEW-BRANCH-NAME</em>
|
$ git branch -u origin/<em>NEW-BRANCH-NAME</em> <em>NEW-BRANCH-NAME</em>
|
||||||
|
$ git remote set-head origin -a
|
||||||
|
```
|
||||||
|
|
||||||
|
Optionally, run the following command to remove tracking references to the old branch name.
|
||||||
|
```
|
||||||
|
$ git remote prune origin
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -186,6 +186,7 @@ An overview of some of the most common actions that are recorded as events in th
|
|||||||
|
|
||||||
| Action | Description
|
| Action | Description
|
||||||
|------------------|-------------------
|
|------------------|-------------------
|
||||||
|
| `custom_amount_settings_change` | Triggered when you enable or disable custom amounts, or when you change the suggested custom amount (see "[Managing your sponsorship tiers](/github/supporting-the-open-source-community-with-github-sponsors/managing-your-sponsorship-tiers)")
|
||||||
| `repo_funding_links_file_action` | Triggered when you change the FUNDING file in your repository (see "[Displaying a sponsor button in your repository](/articles/displaying-a-sponsor-button-in-your-repository)")
|
| `repo_funding_links_file_action` | Triggered when you change the FUNDING file in your repository (see "[Displaying a sponsor button in your repository](/articles/displaying-a-sponsor-button-in-your-repository)")
|
||||||
| `sponsor_sponsorship_cancel` | Triggered when you cancel a sponsorship (see "[Downgrading a sponsorship](/articles/downgrading-a-sponsorship)")
|
| `sponsor_sponsorship_cancel` | Triggered when you cancel a sponsorship (see "[Downgrading a sponsorship](/articles/downgrading-a-sponsorship)")
|
||||||
| `sponsor_sponsorship_create` | Triggered when you sponsor an account (see "[Sponsoring an open source contributor](/github/supporting-the-open-source-community-with-github-sponsors/sponsoring-an-open-source-contributor)")
|
| `sponsor_sponsorship_create` | Triggered when you sponsor an account (see "[Sponsoring an open source contributor](/github/supporting-the-open-source-community-with-github-sponsors/sponsoring-an-open-source-contributor)")
|
||||||
@@ -265,4 +266,3 @@ An overview of some of the most common actions that are recorded as events in th
|
|||||||
|--------------------|---------------------
|
|--------------------|---------------------
|
||||||
| `update` | Triggered when you set or change the status on your profile. For more information, see "[Setting a status](/articles/personalizing-your-profile/#setting-a-status)."
|
| `update` | Triggered when you set or change the status on your profile. For more information, see "[Setting a status](/articles/personalizing-your-profile/#setting-a-status)."
|
||||||
| `destroy` | Triggered when you clear the status on your profile.
|
| `destroy` | Triggered when you clear the status on your profile.
|
||||||
|
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ If the branch you want to delete is associated with an open pull request, you mu
|
|||||||
|
|
||||||
{% data reusables.repositories.navigate-to-repo %}
|
{% data reusables.repositories.navigate-to-repo %}
|
||||||
{% data reusables.repositories.navigate-to-branches %}
|
{% data reusables.repositories.navigate-to-branches %}
|
||||||
1. Scroll to the branch that you want to delete, then click {% octicon "trashcan" aria-label="The trashcan icon to delete the branch" %}.
|
1. Scroll to the branch that you want to delete, then click {% octicon "trash" aria-label="The trash icon to delete the branch" %}.
|
||||||

|

|
||||||
|
|
||||||
{% if currentVersion == "free-pro-team@latest" or currentVersion == "github-ae@latest" or currentVersion ver_gt "enterprise-server@2.21" %}
|
{% if currentVersion == "free-pro-team@latest" or currentVersion == "github-ae@latest" or currentVersion ver_gt "enterprise-server@2.21" %}
|
||||||
|
|||||||
@@ -68,8 +68,8 @@ You're now connected to the {% data variables.product.product_name %} community.
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
- [Set up Git](/articles/set-up-git)
|
- "[Set up Git](/articles/set-up-git)"
|
||||||
- [Create a repository](/articles/create-a-repo)
|
- "[Create a repository](/articles/create-a-repo)"
|
||||||
- [Fork a repository](/articles/fork-a-repo)
|
- "[Fork a repository](/articles/fork-a-repo)"
|
||||||
- **Be social**
|
- **Be social**
|
||||||
- {% data reusables.support.connect-in-the-forum-bootcamp %}
|
- {% data reusables.support.connect-in-the-forum-bootcamp %}
|
||||||
|
|||||||
@@ -151,5 +151,6 @@ You have now forked a repository, practiced cloning your fork, and configured an
|
|||||||
|
|
||||||
- "[Set up Git](/articles/set-up-git)"
|
- "[Set up Git](/articles/set-up-git)"
|
||||||
- "[Create a repository](/articles/create-a-repo)"
|
- "[Create a repository](/articles/create-a-repo)"
|
||||||
|
- **Fork a repository**
|
||||||
- "[Be social](/articles/be-social)"
|
- "[Be social](/articles/be-social)"
|
||||||
- {% data reusables.support.connect-in-the-forum-bootcamp %}
|
- {% data reusables.support.connect-in-the-forum-bootcamp %}
|
||||||
|
|||||||
@@ -42,6 +42,9 @@ Below is a list of some of the available keyboard shortcuts.
|
|||||||
|
|
||||||
| Keyboard shortcut | Description
|
| Keyboard shortcut | Description
|
||||||
|-----------|------------
|
|-----------|------------
|
||||||
|
| <kbd>control b</kbd> or <kbd>command b</kbd> | Inserts Markdown formatting for bolding text
|
||||||
|
| <kbd>control i</kbd> or <kbd>command i</kbd> | Inserts Markdown formatting for italicizing text
|
||||||
|
| <kbd>control k</kbd> or <kbd>command k</kbd> | Inserts Markdown formatting for creating a link
|
||||||
|<kbd>e</kbd> | Open source code file in the **Edit file** tab
|
|<kbd>e</kbd> | Open source code file in the **Edit file** tab
|
||||||
|<kbd>control f</kbd> or <kbd>command f</kbd> | Start searching in file editor
|
|<kbd>control f</kbd> or <kbd>command f</kbd> | Start searching in file editor
|
||||||
|<kbd>control g</kbd> or <kbd>command g</kbd> | Find next
|
|<kbd>control g</kbd> or <kbd>command g</kbd> | Find next
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ If the file{% if currentVersion == "free-pro-team@latest" or currentVersion ver_
|
|||||||
### Deleting a file
|
### Deleting a file
|
||||||
|
|
||||||
1. Browse to the file in your repository that you want to delete.
|
1. Browse to the file in your repository that you want to delete.
|
||||||
2. At the top of the file, click {% octicon "trashcan" aria-label="The trashcan icon" %}.
|
2. At the top of the file, click {% octicon "trash" aria-label="The trash icon" %}.
|
||||||
{% data reusables.files.write_commit_message %}
|
{% data reusables.files.write_commit_message %}
|
||||||
{% data reusables.files.choose-commit-email %}
|
{% data reusables.files.choose-commit-email %}
|
||||||
{% data reusables.files.choose_commit_branch %}
|
{% data reusables.files.choose_commit_branch %}
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ When your code depends on a package that has a security vulnerability, this vuln
|
|||||||
|
|
||||||
{% if currentVersion == "free-pro-team@latest" %}
|
{% if currentVersion == "free-pro-team@latest" %}
|
||||||
- A new vulnerability is added to the {% data variables.product.prodname_advisory_database %}. For more information, see "[Browsing security vulnerabilities in the {% data variables.product.prodname_advisory_database %}](/github/managing-security-vulnerabilities/browsing-security-vulnerabilities-in-the-github-advisory-database)."{% else %}
|
- A new vulnerability is added to the {% data variables.product.prodname_advisory_database %}. For more information, see "[Browsing security vulnerabilities in the {% data variables.product.prodname_advisory_database %}](/github/managing-security-vulnerabilities/browsing-security-vulnerabilities-in-the-github-advisory-database)."{% else %}
|
||||||
- New advisory data is synchronized to {% data variables.product.prodname_ghe_server %} each hour from {% data variables.product.prodname_dotcom_the_website %}. For more information about advisory data, see "<a href="/github/managing-security-vulnerabilities/browsing-security-vulnerabilities-in-the-github-advisory-database" class="dotcom-only">Browsing security vulnerabilities in the {% data variables.product.prodname_advisory_database %}</a>."{% endif %}
|
- New advisory data is synchronized to {% data variables.product.prodname_ghe_server %} each hour from {% data variables.product.prodname_dotcom_the_website %}. {% data reusables.security-advisory.link-browsing-advisory-db %}{% endif %}
|
||||||
- The dependency graph for a repository changes. For example, when a contributor pushes a commit to change the packages or versions it depends on{% if currentVersion == "free-pro-team@latest" %}, or when the code of one of the dependencies changes{% endif %}. For more information, see "[About the dependency graph](/github/visualizing-repository-data-with-graphs/about-the-dependency-graph)."
|
- The dependency graph for a repository changes. For example, when a contributor pushes a commit to change the packages or versions it depends on{% if currentVersion == "free-pro-team@latest" %}, or when the code of one of the dependencies changes{% endif %}. For more information, see "[About the dependency graph](/github/visualizing-repository-data-with-graphs/about-the-dependency-graph)."
|
||||||
|
|
||||||
{% data reusables.repositories.dependency-review %}
|
{% data reusables.repositories.dependency-review %}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ topics:
|
|||||||

|

|
||||||
- To edit a milestone, next to the milestone you want to edit, click **Edit**.
|
- To edit a milestone, next to the milestone you want to edit, click **Edit**.
|
||||||

|

|
||||||
5. Type the milestone's title, description, or other changes, and click **Create milestone** or **Save changes**.
|
5. Type the milestone's title, description, or other changes, and click **Create milestone** or **Save changes**. Milestones will render Markdown syntax. For more information about Markdown syntax, see "[Basic writing and formatting syntax](/github/writing-on-github/basic-writing-and-formatting-syntax)."
|
||||||
|
|
||||||
### Deleting milestones
|
### Deleting milestones
|
||||||
|
|
||||||
|
|||||||
@@ -35,5 +35,5 @@ After you disconnect your Azure subscription from your enterprise account, your
|
|||||||
{% data reusables.enterprise-accounts.settings-tab %}
|
{% data reusables.enterprise-accounts.settings-tab %}
|
||||||
{% data reusables.enterprise-accounts.billing-tab %}
|
{% data reusables.enterprise-accounts.billing-tab %}
|
||||||
{% data reusables.enterprise-accounts.payment-information-tab %}
|
{% data reusables.enterprise-accounts.payment-information-tab %}
|
||||||
1. Under "Azure subscription", to the right of the subscription ID you want to disconnect, click **{% octicon "trashcan" aria-label="The trashcan icon" %}**.
|
1. Under "Azure subscription", to the right of the subscription ID you want to disconnect, click **{% octicon "trash" aria-label="The trash icon" %}**.
|
||||||
1. Review the prompt, then click **Remove**.
|
1. Review the prompt, then click **Remove**.
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ topics:
|
|||||||

|

|
||||||
4. Under "Primary email address", use the drop-down menu to click the email address you'd like to set as your primary email address, and click **Save**.
|
4. Under "Primary email address", use the drop-down menu to click the email address you'd like to set as your primary email address, and click **Save**.
|
||||||

|

|
||||||
5. To remove the old email address from your account, next to the old email, click {% octicon "trashcan" aria-label="The trashcan symbol" %}.
|
5. To remove the old email address from your account, next to the old email, click {% octicon "trash" aria-label="The trash symbol" %}.
|
||||||
{% if currentVersion == "free-pro-team@latest" %}
|
{% if currentVersion == "free-pro-team@latest" %}
|
||||||
6. Verify your new primary email address. Without a verified email address, you won't be able to use all of {% data variables.product.product_name %}'s features. For more information, see "[Verifying your email address](/articles/verifying-your-email-address)."
|
6. Verify your new primary email address. Without a verified email address, you won't be able to use all of {% data variables.product.product_name %}'s features. For more information, see "[Verifying your email address](/articles/verifying-your-email-address)."
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ While forks of private repositories are deleted when a collaborator is removed,
|
|||||||
{% data reusables.repositories.sidebar-settings %}
|
{% data reusables.repositories.sidebar-settings %}
|
||||||
{% if currentVersion == "free-pro-team@latest" %}
|
{% if currentVersion == "free-pro-team@latest" %}
|
||||||
{% data reusables.repositories.navigate-to-manage-access %}
|
{% data reusables.repositories.navigate-to-manage-access %}
|
||||||
4. To the right of the collaborator you want to remove, click {% octicon "trashcan" aria-label="The trashcan icon" %}.
|
4. To the right of the collaborator you want to remove, click {% octicon "trash" aria-label="The trash icon" %}.
|
||||||

|

|
||||||
{% else %}
|
{% else %}
|
||||||
3. In the left sidebar, click **Collaborators & teams**.
|
3. In the left sidebar, click **Collaborators & teams**.
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ To create a heading, add one to six `#` symbols before your heading text. The nu
|
|||||||
|
|
||||||
### Styling text
|
### Styling text
|
||||||
|
|
||||||
You can indicate emphasis with bold, italic, or strikethrough text.
|
You can indicate emphasis with bold, italic, or strikethrough text in comment fields and `.md` files.
|
||||||
|
|
||||||
| Style | Syntax | Keyboard shortcut | Example | Output |
|
| Style | Syntax | Keyboard shortcut | Example | Output |
|
||||||
| --- | --- | --- | --- | --- |
|
| --- | --- | --- | --- | --- |
|
||||||
@@ -205,6 +205,10 @@ Content attachments will not be displayed for URLs that are part of a markdown l
|
|||||||
|
|
||||||
For more information about building a {% data variables.product.prodname_github_app %} that uses content attachments, see "[Using Content Attachments](/apps/using-content-attachments)."
|
For more information about building a {% data variables.product.prodname_github_app %} that uses content attachments, see "[Using Content Attachments](/apps/using-content-attachments)."
|
||||||
|
|
||||||
|
### Uploading assets
|
||||||
|
|
||||||
|
You can upload assets like images by dragging and dropping, selecting from a file browser, or pasting. You can upload assets to issues, pull requests, comments, and `.md` files in your repository.
|
||||||
|
|
||||||
### Using emoji
|
### Using emoji
|
||||||
|
|
||||||
You can add emoji to your writing by typing `:EMOJICODE:`.
|
You can add emoji to your writing by typing `:EMOJICODE:`.
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ We'll announce upcoming breaking changes at least three months before making cha
|
|||||||
|
|
||||||
{% for change in date[1] %}
|
{% for change in date[1] %}
|
||||||
<ul>
|
<ul>
|
||||||
<li><span class="border rounded-1 m-1 p-1 {% if change.criticality == 'breaking' %}border-red bg-red-light{% else %}border-purple bg-purple-light{% endif %}">{% if change.criticality == 'breaking' %}Breaking{% else %}Dangerous{% endif %}</span> A change will be made to <code>{{ change.location }}</code>.
|
<li><span class="border rounded-1 m-1 p-1 {% if change.criticality == 'breaking' %}color-border-danger color-bg-danger{% else %}color-border-info color-bg-info{% endif %}">{% if change.criticality == 'breaking' %}Breaking{% else %}Dangerous{% endif %}</span> A change will be made to <code>{{ change.location }}</code>.
|
||||||
|
|
||||||
<p><b>Description:</b> {{ change.description }}</p>
|
<p><b>Description:</b> {{ change.description }}</p>
|
||||||
|
|
||||||
|
|||||||
@@ -19,6 +19,5 @@ For example, [`CommitAuthor`](/graphql/reference/input-objects#commitauthor) tak
|
|||||||
|
|
||||||
For more information, see "[About mutations](/graphql/guides/forming-calls-with-graphql#about-mutations)."
|
For more information, see "[About mutations](/graphql/guides/forming-calls-with-graphql#about-mutations)."
|
||||||
|
|
||||||
{% for item in graphql.schemaForCurrentVersion.inputObjects %}
|
<!-- this page is pre-rendered by scripts because it's too big to load dynamically -->
|
||||||
{% include graphql-input-object %}
|
<!-- see lib/graphql/static/prerendered-input-objects.json -->
|
||||||
{% endfor %}
|
|
||||||
|
|||||||
@@ -110,8 +110,8 @@ You can create and manage custom teams in {% data variables.product.prodname_ins
|
|||||||
{% data reusables.github-insights.settings-tab %}
|
{% data reusables.github-insights.settings-tab %}
|
||||||
{% data reusables.github-insights.teams-tab %}
|
{% data reusables.github-insights.teams-tab %}
|
||||||
{% data reusables.github-insights.edit-team %}
|
{% data reusables.github-insights.edit-team %}
|
||||||
3. To the right of the contributor you'd like to remove, click {% octicon "trashcan" aria-label="The trashcan icon" %}.
|
3. To the right of the contributor you'd like to remove, click {% octicon "trash" aria-label="The trash icon" %}.
|
||||||

|

|
||||||
|
|
||||||
#### Renaming a custom team
|
#### Renaming a custom team
|
||||||
|
|
||||||
|
|||||||
@@ -32,6 +32,6 @@ After you create an event in {% data variables.product.prodname_insights %}, any
|
|||||||
|
|
||||||
{% data reusables.github-insights.settings-tab %}
|
{% data reusables.github-insights.settings-tab %}
|
||||||
{% data reusables.github-insights.events-tab %}
|
{% data reusables.github-insights.events-tab %}
|
||||||
3. To the right of the event you want to delete, click **{% octicon "trashcan" aria-label="The trashcan icon" %}**.
|
3. To the right of the event you want to delete, click **{% octicon "trash" aria-label="The trash icon" %}**.
|
||||||

|

|
||||||
4. Click **Confirm**.
|
4. Click **Confirm**.
|
||||||
|
|||||||
@@ -593,6 +593,7 @@ For more information, see "[Managing the publication of {% data variables.produc
|
|||||||
|
|
||||||
| Action | Description
|
| Action | Description
|
||||||
|------------------|-------------------
|
|------------------|-------------------
|
||||||
|
| `custom_amount_settings_change` | Triggered when you enable or disable custom amounts, or when you change the suggested custom amount (see "[Managing your sponsorship tiers](/github/supporting-the-open-source-community-with-github-sponsors/managing-your-sponsorship-tiers)")
|
||||||
| `repo_funding_links_file_action` | Triggered when you change the FUNDING file in your repository (see "[Displaying a sponsor button in your repository](/articles/displaying-a-sponsor-button-in-your-repository)")
|
| `repo_funding_links_file_action` | Triggered when you change the FUNDING file in your repository (see "[Displaying a sponsor button in your repository](/articles/displaying-a-sponsor-button-in-your-repository)")
|
||||||
| `sponsor_sponsorship_cancel` | Triggered when you cancel a sponsorship (see "[Downgrading a sponsorship](/articles/downgrading-a-sponsorship)")
|
| `sponsor_sponsorship_cancel` | Triggered when you cancel a sponsorship (see "[Downgrading a sponsorship](/articles/downgrading-a-sponsorship)")
|
||||||
| `sponsor_sponsorship_create` | Triggered when you sponsor an account (see "[Sponsoring an open source contributor](/github/supporting-the-open-source-community-with-github-sponsors/sponsoring-an-open-source-contributor)")
|
| `sponsor_sponsorship_create` | Triggered when you sponsor an account (see "[Sponsoring an open source contributor](/github/supporting-the-open-source-community-with-github-sponsors/sponsoring-an-open-source-contributor)")
|
||||||
|
|||||||
@@ -52,5 +52,5 @@ If a team's access to a project board is inherited from a parent team, you must
|
|||||||
{% data reusables.organizations.specific_team %}
|
{% data reusables.organizations.specific_team %}
|
||||||
4. Above the team's conversation, click {% octicon "project" aria-label="The Projects icon" %} **Projects**.
|
4. Above the team's conversation, click {% octicon "project" aria-label="The Projects icon" %} **Projects**.
|
||||||

|

|
||||||
5. To change permissions levels, to the right of the project board you want to update, use the drop-down. To remove a project board, click **{% octicon "trashcan" aria-label="The trashcan icon" %}**.
|
5. To change permissions levels, to the right of the project board you want to update, use the drop-down. To remove a project board, click **{% octicon "trash" aria-label="The trash icon" %}**.
|
||||||

|

|
||||||
|
|||||||
@@ -3,7 +3,7 @@ title: Adding outside collaborators to repositories in your organization
|
|||||||
intro: 'An *outside collaborator* is a person who isn''t explicitly a member of your organization, but who has Read, Write, or Admin permissions to one or more repositories in your organization.'
|
intro: 'An *outside collaborator* is a person who isn''t explicitly a member of your organization, but who has Read, Write, or Admin permissions to one or more repositories in your organization.'
|
||||||
redirect_from:
|
redirect_from:
|
||||||
- /articles/adding-outside-collaborators-to-repositories-in-your-organization
|
- /articles/adding-outside-collaborators-to-repositories-in-your-organization
|
||||||
- github/setting-up-and-managing-organizations-and-teams/adding-outside-collaborators-to-repositories-in-your-organization
|
- /github/setting-up-and-managing-organizations-and-teams/adding-outside-collaborators-to-repositories-in-your-organization
|
||||||
versions:
|
versions:
|
||||||
free-pro-team: '*'
|
free-pro-team: '*'
|
||||||
enterprise-server: '*'
|
enterprise-server: '*'
|
||||||
|
|||||||
@@ -140,12 +140,12 @@ In addition to managing organization-level settings, organization owners have ad
|
|||||||
In this section, you can find the repository permission levels required for security features, such as {% data variables.product.prodname_advanced_security %} features.
|
In this section, you can find the repository permission levels required for security features, such as {% data variables.product.prodname_advanced_security %} features.
|
||||||
|
|
||||||
| Repository action | Read | Triage | Write | Maintain | Admin |
|
| Repository action | Read | Triage | Write | Maintain | Admin |
|
||||||
|:---|:---:|:---:|:---:|:---:|:---:|{% if currentVersion == "free-pro-team@latest" %}
|
|:---|:---:|:---:|:---:|:---:|:---:|{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.22" %}
|
||||||
| Receive [{% data variables.product.prodname_dependabot_alerts %} for vulnerable dependencies](/github/managing-security-vulnerabilities/about-alerts-for-vulnerable-dependencies) in a repository | | | | | **X** |
|
| Receive [{% data variables.product.prodname_dependabot_alerts %} for vulnerable dependencies](/code-security/supply-chain-security/about-alerts-for-vulnerable-dependencies) in a repository | | | | | **X** |
|
||||||
| [Dismiss {% data variables.product.prodname_dependabot_alerts %}](/github/managing-security-vulnerabilities/viewing-and-updating-vulnerable-dependencies-in-your-repository) | | | | | **X** |
|
| [Dismiss {% data variables.product.prodname_dependabot_alerts %}](/code-security/supply-chain-security/viewing-and-updating-vulnerable-dependencies-in-your-repository) | | | | | **X** |
|
||||||
| [Designate additional people or teams to receive {% data variables.product.prodname_dependabot_alerts %}](/github/administering-a-repository/managing-security-and-analysis-settings-for-your-repository#granting-access-to-security-alerts) for vulnerable dependencies | | | | | **X** |
|
| [Designate additional people or teams to receive {% data variables.product.prodname_dependabot_alerts %}](/github/administering-a-repository/managing-security-and-analysis-settings-for-your-repository#granting-access-to-security-alerts) for vulnerable dependencies | | | | | **X** |{% endif %}{% if currentVersion == "free-pro-team@latest" %}
|
||||||
| Create [security advisories](/github/managing-security-vulnerabilities/about-github-security-advisories) | | | | | **X** |{% endif %}{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.22" or currentVersion == "github-ae@latest" %}
|
| Create [security advisories](/code-security/security-advisories/about-github-security-advisories) | | | | | **X** |{% endif %}{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.22" or currentVersion == "github-ae@latest" %}
|
||||||
| Manage access to {% data variables.product.prodname_GH_advanced_security %} features (see "[Managing security and analysis settings for your organization](/organizations/keeping-your-organization-secure/managing-security-and-analysis-settings-for-your-organization)") | | | | | **X** |{% endif %}{% if currentVersion == "free-pro-team@latest" %}
|
| Manage access to {% data variables.product.prodname_GH_advanced_security %} features (see "[Managing security and analysis settings for your organization](/organizations/keeping-your-organization-secure/managing-security-and-analysis-settings-for-your-organization)") | | | | | **X** |{% endif %}{% if currentVersion == "free-pro-team@latest" %}<!--Set at site-level for GHES-->
|
||||||
| [Enable the dependency graph](/code-security/supply-chain-security/exploring-the-dependencies-of-a-repository) for a private repository | | | | | **X** |
|
| [Enable the dependency graph](/code-security/supply-chain-security/exploring-the-dependencies-of-a-repository) for a private repository | | | | | **X** |
|
||||||
| [View dependency reviews](/code-security/supply-chain-security/about-dependency-review) | **X** | **X** | **X** | **X** | **X** |{% endif %}{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.21" or currentVersion == "github-ae@latest" %}
|
| [View dependency reviews](/code-security/supply-chain-security/about-dependency-review) | **X** | **X** | **X** | **X** | **X** |{% endif %}{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.21" or currentVersion == "github-ae@latest" %}
|
||||||
| [View {% data variables.product.prodname_code_scanning %} alerts on pull requests](/github/finding-security-vulnerabilities-and-errors-in-your-code/triaging-code-scanning-alerts-in-pull-requests) | **X** | **X** | **X** | **X** | **X** |
|
| [View {% data variables.product.prodname_code_scanning %} alerts on pull requests](/github/finding-security-vulnerabilities-and-errors-in-your-code/triaging-code-scanning-alerts-in-pull-requests) | **X** | **X** | **X** | **X** | **X** |
|
||||||
|
|||||||
@@ -23,6 +23,12 @@ topics:
|
|||||||
|
|
||||||
Organization owners have full administrative access to the organization. {% data reusables.organizations.new-org-permissions-more-info %}
|
Organization owners have full administrative access to the organization. {% data reusables.organizations.new-org-permissions-more-info %}
|
||||||
|
|
||||||
|
{% note %}
|
||||||
|
|
||||||
|
**Note**: As an organization owner, you can change the role of other organization members and owners. You can't change your own role.
|
||||||
|
|
||||||
|
{% endnote %}
|
||||||
|
|
||||||
### Appointing an organization owner
|
### Appointing an organization owner
|
||||||
|
|
||||||
{% data reusables.profile.access_profile %}
|
{% data reusables.profile.access_profile %}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ The Git Database API gives you access to read and write raw Git objects to your
|
|||||||
## Blobs
|
## Blobs
|
||||||
|
|
||||||
A Git blob (binary large object) is the object type used to store the contents of each file in a repository. The file's SHA-1 hash is computed and stored in the blob object. These endpoints allow you to read and write [blob objects](https://git-scm.com/book/en/v1/Git-Internals-Git-Objects)
|
A Git blob (binary large object) is the object type used to store the contents of each file in a repository. The file's SHA-1 hash is computed and stored in the blob object. These endpoints allow you to read and write [blob objects](https://git-scm.com/book/en/v1/Git-Internals-Git-Objects)
|
||||||
to your Git database on {% data variables.product.product_name %}. Blobs leverage [these custom media types](#custom-media-types). You can read more about the use of media types in the API [here](/rest/overview/media-types).
|
to your Git database on {% data variables.product.product_name %}. Blobs leverage [these custom media types](#custom-media-types-for-blobs). You can read more about the use of media types in the API [here](/rest/overview/media-types).
|
||||||
|
|
||||||
### Custom media types for blobs
|
### Custom media types for blobs
|
||||||
|
|
||||||
|
|||||||
17
data/release-notes/2-21/19.yml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
date: '2021-04-14'
|
||||||
|
sections:
|
||||||
|
security_fixes:
|
||||||
|
- Packages have been updated to the latest security versions.
|
||||||
|
bugs:
|
||||||
|
- 'A warning message `jq: error (at <stdin>:0): Cannot index number with string "settings"` could occur during replica promotion.'
|
||||||
|
- Visiting the `/settings/emails page` would store state that could cause improper redirects when logging out and logging back in.
|
||||||
|
- Dependency graph alerts weren''t shown for some components whose advisories have upper case package names in `vulnerable_version_ranges`.
|
||||||
|
- User saw 500 error when executing git operations on an instance configured with LDAP authentication.
|
||||||
|
- When ghe-migrator encountered import errors, it would sometimes abort the entire process, and the logs did not include enough context.
|
||||||
|
known_issues:
|
||||||
|
- On a freshly set up GitHub Enterprise Server without any users, an attacker could create the first admin user.
|
||||||
|
- Custom firewall rules are not maintained during an upgrade.
|
||||||
|
- 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.
|
||||||
|
- 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.
|
||||||
|
- 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.
|
||||||
|
- Security alerts are not reported when pushing to a repository on the command line.
|
||||||
18
data/release-notes/2-22/11.yml
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
date: '2021-04-14'
|
||||||
|
sections:
|
||||||
|
security_fixes:
|
||||||
|
- Packages have been updated to the latest security versions.
|
||||||
|
bugs:
|
||||||
|
- 'A warning message `jq: error (at <stdin>:0): Cannot index number with string "settings"` could occur during replica promotion.'
|
||||||
|
- Continuously restoring backups to a cluster could fail due to MySQL replicas failing to connect to the primary.
|
||||||
|
- Syntax highlighting could fail due to the Treelights container running out of memory.
|
||||||
|
- Visiting the `/settings/emails page` would store state that could cause improper redirects when logging out and logging back in.
|
||||||
|
- Dependency graph alerts weren''t shown for some components whose advisories have upper case package names in `vulnerable_version_ranges`.
|
||||||
|
- GitHub integration apps were not able to notify teams when mentioned directly via an at-mention in an issue comment.
|
||||||
|
- When ghe-migrator encountered import errors, it would sometimes abort the entire process, and the logs did not include enough context.
|
||||||
|
known_issues:
|
||||||
|
- On a freshly set up GitHub Enterprise Server without any users, an attacker could create the first admin user.
|
||||||
|
- Custom firewall rules are not maintained during an upgrade.
|
||||||
|
- 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.
|
||||||
|
- 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.
|
||||||
|
- 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.
|
||||||
24
data/release-notes/3-0/5.yml
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
date: '2021-04-14'
|
||||||
|
sections:
|
||||||
|
security_fixes:
|
||||||
|
- Packages have been updated to the latest security versions.
|
||||||
|
bugs:
|
||||||
|
- Some logs were not included in the log forwarding configuration.
|
||||||
|
- 'A warning message `jq: error (at <stdin>:0): Cannot index number with string "settings"` could occur during replica promotion.'
|
||||||
|
- Continuously restoring backups to a cluster could fail due to MySQL replicas failing to connect to the primary.
|
||||||
|
- Pages were not getting published when using custom CA certificate.
|
||||||
|
- Packages related subdomains were not showing up in the "Test domain settings" prompt for subdomain isolation.
|
||||||
|
- The `X-GitHub-Enterprise-Host` header sent with webhooks included a random string, rather than the hostname of the GitHub Enterprise Server instance that sent the HTTP POST payload.
|
||||||
|
- Upgrading from 2.22.x to 3.0.x would fail if GitHub Actions had previously been enabled, but disabled before the upgrade.
|
||||||
|
- Visiting the `/settings/emails page` would store state that could cause improper redirects when logging out and logging back in.
|
||||||
|
- GitHub integration apps were not able to notify teams when mentioned directly via an at-mention in an issue comment.
|
||||||
|
- reStructuredText (RST) rendering in the web UI would fail and instead displayed raw RST markup text.
|
||||||
|
- Email notifications for Secret Scanning alerts were not sent to authorized users when the Dependency Graph was not fully enabled.
|
||||||
|
- When ghe-migrator encountered import errors, it would sometimes abort the entire process, and the logs did not include enough context.
|
||||||
|
- Jupyter notebooks with non-ASCII characters could fail to render.
|
||||||
|
known_issues:
|
||||||
|
- On a freshly set up GitHub Enterprise Server without any users, an attacker could create the first admin user.
|
||||||
|
- Custom firewall rules are not maintained during an upgrade.
|
||||||
|
- 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.
|
||||||
|
- 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.
|
||||||
|
- 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.
|
||||||
1
data/reusables/actions/actions-cli.md
Normal file
@@ -0,0 +1 @@
|
|||||||
|
For information on setting up {% data variables.product.prodname_cli %}, see "[Managing GitHub Actions with GitHub CLI](/actions/guides/managing-github-actions-with-github-cli#setting-up-github-cli)."
|
||||||
1
data/reusables/cli/actions-cli-version.md
Normal file
@@ -0,0 +1 @@
|
|||||||
|
To access all of the {% data variables.product.prodname_actions %}-related commands, you must use version 1.9.0 or greater.
|
||||||
1
data/reusables/cli/cli-auth.md
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{% data variables.product.prodname_cli %} can authenticate using your {% data variables.product.prodname_dotcom %} account. Before running {% data variables.product.prodname_cli %} commands, you will need to authenticate by running `gh auth login`. For more information on command line authentication, see "[`gh auth login`](https://cli.github.com/manual/gh_auth_login)."
|
||||||
1
data/reusables/cli/cli-manual.md
Normal file
@@ -0,0 +1 @@
|
|||||||
|
For more information about {% data variables.product.prodname_cli %}, see [the {% data variables.product.prodname_cli %} manual](https://cli.github.com/manual/).
|
||||||
1
data/reusables/cli/cli-repo.md
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{% data variables.product.prodname_cli %} commands must be run within the repository that you want to interact with, so you must first navigate to the directory containing the local copy of your repository. Alternatively, you can specify a repository by passing {% if enterpriseServerVersions contains currentVersion or currentVersion == "github-ae@latest" %}`-R HOSTNAME/OWNER/REPOSITORY` or `--repo HOSTNAME/OWNER/REPOSITORY`{% else %}`-R OWNER/REPOSITORY` or `--repo OWNER/REPOSITORY`{% endif %}. {% if enterpriseServerVersions contains currentVersion or currentVersion == "github-ae@latest" %}Replace `HOSTNAME` with the name of {% data variables.product.product_location %}. {% endif %}Replace `OWNER` with owner of the repository. Replace `REPOSITORY` with the name of the repository.
|
||||||
1
data/reusables/cli/download-update-cli.md
Normal file
@@ -0,0 +1 @@
|
|||||||
|
To download or upgrade {% data variables.product.prodname_cli %}, follow the instructions in the [{% data variables.product.prodname_cli %} README](https://github.com/cli/cli#installation).
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
1. In the security sidebar, click **{% data variables.product.prodname_dependabot_alerts %}**.
|
1. In the security sidebar, click **{% data variables.product.prodname_dependabot_alerts %}**.{% if currentVersion == "free-pro-team@latest" %}
|
||||||

|
{% elsif %}{% endif %}
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
{% if currentVersion == "free-pro-team@latest" %}
|
||||||
|
For more information, see "[Browsing security vulnerabilities in the {% data variables.product.prodname_advisory_database %}](/code-security/supply-chain-security/browsing-security-vulnerabilities-in-the-github-advisory-database)" and "[About {% data variables.product.prodname_security_advisories %}](/code-security/security-advisories/about-github-security-advisories)."
|
||||||
|
{% else %}
|
||||||
|
For more information about advisory data, see "<a href="/github/managing-security-vulnerabilities/browsing-security-vulnerabilities-in-the-github-advisory-database" class="dotcom-only">Browsing security vulnerabilities in the {% data variables.product.prodname_advisory_database %}</a>."
|
||||||
|
{% endif %}
|
||||||
@@ -143,12 +143,12 @@ product_landing:
|
|||||||
product_sublanding:
|
product_sublanding:
|
||||||
start: Start
|
start: Start
|
||||||
start_path: Start path
|
start_path: Start path
|
||||||
learning_paths: '{{ allProducts[currentProduct].name }} learning paths'
|
learning_paths: '{{ productMap[currentProduct].name }} learning paths'
|
||||||
learning_paths_desc: Learning paths are a collection of guides that help you master a particular subject.
|
learning_paths_desc: Learning paths are a collection of guides that help you master a particular subject.
|
||||||
guides: '{{ allProducts[currentProduct].name }} guides'
|
guides: '{{ productMap[currentProduct].name }} guides'
|
||||||
more_guides: more guides
|
more_guides: more guides
|
||||||
load_more: Load more guides
|
load_more: Load more guides
|
||||||
all_guides: 'All {{ allProducts[currentProduct].name }} guides'
|
all_guides: 'All {{ productMap[currentProduct].name }} guides'
|
||||||
no_result: Sorry, there is no guide that match your filter.
|
no_result: Sorry, there is no guide that match your filter.
|
||||||
filters:
|
filters:
|
||||||
type: Type
|
type: Type
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% assign numArticles = maptopic.childArticles | obj_size %}
|
{% assign numArticles = maptopic.childArticles | obj_size %}
|
||||||
{% if numArticles > maxArticles %}
|
{% if numArticles > maxArticles %}
|
||||||
<button class="js-all-articles-show-more btn-link link-gray">Show {{ numArticles | minus: maxArticles }} more {% octicon "chevron-up" class="v-align-text-bottom" %}</button>
|
<button class="js-all-articles-show-more btn-link Link--secondary">Show {{ numArticles | minus: maxArticles }} more {% octicon "chevron-up" class="v-align-text-bottom" %}</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
{% if numArticles > maxArticles %}
|
{% if numArticles > maxArticles %}
|
||||||
<button class="js-all-articles-show-more btn-link link-gray">Show {{ numArticles | minus: maxArticles }} more {% octicon "chevron-up" class="v-align-text-bottom" %}</button>
|
<button class="js-all-articles-show-more btn-link Link--secondary">Show {{ numArticles | minus: maxArticles }} more {% octicon "chevron-up" class="v-align-text-bottom" %}</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endunless %}
|
{% endunless %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
{% if numArticles > maxArticles %}
|
{% if numArticles > maxArticles %}
|
||||||
<button class="js-all-articles-show-more btn-link link-gray">Show {{ numArticles | minus: maxArticles }} more {% octicon "chevron-up" class="v-align-text-bottom" %}</button>
|
<button class="js-all-articles-show-more btn-link Link--secondary">Show {{ numArticles | minus: maxArticles }} more {% octicon "chevron-up" class="v-align-text-bottom" %}</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
<form class="mt-2 mb-5 d-flex d-flex">
|
<form class="mt-2 mb-5 d-flex d-flex">
|
||||||
<div>
|
<div>
|
||||||
<label for="type" class="text-uppercase f6 text-gray d-block">{% data ui.product_sublanding.filters.type %}</label>
|
<label for="type" class="text-uppercase f6 color-text-secondary d-block">{% data ui.product_sublanding.filters.type %}</label>
|
||||||
<select class="form-select js-filter-card-filter-dropdown f4 text-bold border-0 rounded-0 border-top box-shadow-none pl-0 js-filter-card-filter-dropdown" name="type" aria-label="guide types">
|
<select class="form-select js-filter-card-filter-dropdown f4 text-bold border-0 rounded-0 border-top box-shadow-none pl-0 js-filter-card-filter-dropdown" name="type" aria-label="guide types">
|
||||||
<option value="">{% data ui.product_sublanding.filters.all %}</option>
|
<option value="">{% data ui.product_sublanding.filters.all %}</option>
|
||||||
{% for type in site.data.ui.product_sublanding.guide_types %}
|
{% for type in site.data.ui.product_sublanding.guide_types %}
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="mx-4">
|
<div class="mx-4">
|
||||||
<label for="topic" class="text-uppercase f6 text-gray d-block">{% data ui.product_sublanding.filters.topic %}</label>
|
<label for="topic" class="text-uppercase f6 color-text-secondary d-block">{% data ui.product_sublanding.filters.topic %}</label>
|
||||||
<select class="form-select js-filter-card-filter-dropdown f4 text-bold border-0 rounded-0 border-top box-shadow-none pl-0 js-filter-card-filter-dropdown" name="topics" aria-label="guide topics">
|
<select class="form-select js-filter-card-filter-dropdown f4 text-bold border-0 rounded-0 border-top box-shadow-none pl-0 js-filter-card-filter-dropdown" name="topics" aria-label="guide topics">
|
||||||
<option value="">{% data ui.product_sublanding.filters.all %}</option>
|
<option value="">{% data ui.product_sublanding.filters.all %}</option>
|
||||||
{% for topic in page.allTopics %}
|
{% for topic in page.allTopics %}
|
||||||
@@ -39,11 +39,11 @@
|
|||||||
{{ link_card | replace: "<display condition>", card_display_class }}
|
{{ link_card | replace: "<display condition>", card_display_class }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
<button class="col-12 mt-5 text-center text-bold text-blue btn-link js-filter-card-show-more" data-js-filter-card-max="{{ maxArticles }}">
|
<button class="col-12 mt-5 text-center text-bold color-text-link btn-link js-filter-card-show-more" data-js-filter-card-max="{{ maxArticles }}">
|
||||||
{% data ui.product_sublanding.load_more %}
|
{% data ui.product_sublanding.load_more %}
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<div class="js-filter-card-no-results d-none py-4 text-center text-gray">
|
<div class="js-filter-card-no-results d-none py-4 text-center color-text-secondary">
|
||||||
<h4 class="text-normal">{% data ui.product_sublanding.no_result %}</h4>
|
<h4 class="text-normal">{% data ui.product_sublanding.no_result %}</h4>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -3,18 +3,18 @@
|
|||||||
<summary class="f4 h5-mktg btn-outline-mktg btn-mktg p-2">
|
<summary class="f4 h5-mktg btn-outline-mktg btn-mktg p-2">
|
||||||
<!-- GitHub.com, Enterprise Server 2.16, etc -->
|
<!-- GitHub.com, Enterprise Server 2.16, etc -->
|
||||||
<span class="d-md-none d-xl-inline-block">{% data ui.pages.article_version %}</span> {{ allVersions[currentVersion].versionTitle }}
|
<span class="d-md-none d-xl-inline-block">{% data ui.pages.article_version %}</span> {{ allVersions[currentVersion].versionTitle }}
|
||||||
<svg class="arrow ml-1" width="14px" height="8px" viewBox="0 0 14 8" xml:space="preserve" fill="none" stroke="#1277eb"><path d="M1,1l6.2,6L13,1"></path></svg>
|
<svg class="arrow ml-1" width="14px" height="8px" viewBox="0 0 14 8" xml:space="preserve" fill="none" stroke="currentColor"><path d="M1,1l6.2,6L13,1"></path></svg>
|
||||||
</summary>
|
</summary>
|
||||||
|
|
||||||
<div class="nav-dropdown position-absolute bg-white rounded-1 px-4 py-3 top-7 box-shadow-large" style="z-index: 6; width: 210px;">
|
<div class="nav-dropdown position-absolute color-bg-primary rounded-1 px-4 py-3 top-7 color-shadow-large" style="z-index: 6; width: 210px;">
|
||||||
{% for permalink in page.permalinks %}
|
{% for permalink in page.permalinks %}
|
||||||
<a
|
<a
|
||||||
href="{{ permalink.href }}"
|
href="{{ permalink.href }}"
|
||||||
class="d-block py-2 {% if currentPath == permalink.href %}link-blue active{% else %}link-gray-dark no-underline{% endif %}"
|
class="d-block py-2 {% if currentPath == permalink.href %}link-blue active{% else %}Link--primary no-underline{% endif %}"
|
||||||
>
|
>
|
||||||
{{ allVersions[permalink.pageVersion].versionTitle }}</a>
|
{{ allVersions[permalink.pageVersion].versionTitle }}</a>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
<a class="f6 no-underline text-gray-light pt-1" href="/enterprise-server-releases">See all Enterprise releases</a>
|
<a class="f6 no-underline color-text-tertiary pt-1" href="/enterprise-server-releases">See all Enterprise releases</a>
|
||||||
</div>
|
</div>
|
||||||
</details>
|
</details>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -14,14 +14,14 @@
|
|||||||
<div class="d-flex flex-items-baseline flex-justify-between mt-3">
|
<div class="d-flex flex-items-baseline flex-justify-between mt-3">
|
||||||
<h1 class="border-bottom-0">{{ page.title }}</h1>
|
<h1 class="border-bottom-0">{{ page.title }}</h1>
|
||||||
<div class="d-none d-lg-block ml-2">
|
<div class="d-none d-lg-block ml-2">
|
||||||
<button class="btn-link link-gray js-print tooltipped tooltipped-n" aria-label="Print this article">
|
<button class="btn-link Link--secondary js-print tooltipped tooltipped-n" aria-label="Print this article">
|
||||||
{% include printer-icon %}
|
{% include printer-icon %}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% if page.contributor %}
|
{% if page.contributor %}
|
||||||
<div class="contributor-callout border rounded-1 mb-4 p-3 border-blue bg-blue-light f5">
|
<div class="contributor-callout border rounded-1 mb-4 p-3 color-border-info color-bg-info f5">
|
||||||
<p><span class="mr-2">{% octicon "info" %}</span>{% data ui.contributor_callout %} <a href="{{ page.contributor.URL }}">{{ page.contributor.name }}</a>.</p>
|
<p><span class="mr-2">{% octicon "info" %}</span>{% data ui.contributor_callout %} <a href="{{ page.contributor.URL }}">{{ page.contributor.name }}</a>.</p>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -46,7 +46,7 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if page.product %}
|
{% if page.product %}
|
||||||
<div class="product-callout border rounded-1 mb-4 p-3 border-purple bg-purple-light">
|
<div class="product-callout border rounded-1 mb-4 p-3 color-border-info color-bg-info">
|
||||||
{{ page.product }}
|
{{ page.product }}
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -54,7 +54,7 @@
|
|||||||
<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 border-bottom border-xl-0 pb-4 mb-5 pb-xl-0 mb-xl-0">
|
||||||
<div class="article-grid-toc-content">
|
<div class="article-grid-toc-content">
|
||||||
{% if miniTocItems.size > 1 %}
|
{% if miniTocItems.size > 1 %}
|
||||||
<h2 id="in-this-article" class="f5 mb-2"><a class="link-gray-dark" href="#in-this-article">{% data ui.pages.miniToc %}</a></h2>
|
<h2 id="in-this-article" class="f5 mb-2"><a class="Link--primary" href="#in-this-article">{% data ui.pages.miniToc %}</a></h2>
|
||||||
<ul class="list-style-none pl-0 f5 mb-0">
|
<ul class="list-style-none pl-0 f5 mb-0">
|
||||||
{% for item in miniTocItems %}
|
{% for item in miniTocItems %}
|
||||||
<li class="ml-{{ item.indentationLevel | times: 3 }} {{ item.platform }} mb-2 lh-condensed">{{ item.contents }}</li>
|
<li class="ml-{{ item.indentationLevel | times: 3 }} {{ item.platform }} mb-2 lh-condensed">{{ item.contents }}</li>
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
{% if breadcrumb[1].href == '' %}
|
{% if breadcrumb[1].href == '' %}
|
||||||
<span>{{ breadcrumb[1].title }}</span>
|
<span>{{ breadcrumb[1].title }}</span>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a title="{{ breadcrumb[0] }}: {{ breadcrumb[1].title }}" href="{{ breadcrumb[1].href }}" class="d-inline-block {% if breadcrumb[1].href == currentPath %}text-gray-light{% endif %}">
|
<a title="{{ breadcrumb[0] }}: {{ breadcrumb[1].title }}" href="{{ breadcrumb[1].href }}" class="d-inline-block {% if breadcrumb[1].href == currentPath %}color-text-tertiary{% endif %}">
|
||||||
{{ breadcrumb[1].title }}
|
{{ breadcrumb[1].title }}
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -1,20 +1,20 @@
|
|||||||
<div class="col-12 col-xl-4 col-lg-6 mb-4 js-filter-card {% if forloop.index0 > 5 %}d-none{% endif %}" data-tags="{{ example.tags | join: ', ' }}" data-title="{{ example.title }}" data-description="{{ example.description }}">
|
<div class="col-12 col-xl-4 col-lg-6 mb-4 js-filter-card {% if forloop.index0 > 5 %}d-none{% endif %}" data-tags="{{ example.tags | join: ', ' }}" data-title="{{ example.title }}" data-description="{{ example.description }}">
|
||||||
<a
|
<a
|
||||||
class="Box d-flex flex-column flex-justify-between height-full box-shadow-medium hover-shadow-large no-underline text-gray-dark"
|
class="Box d-flex flex-column flex-justify-between height-full color-shadow-medium hover-shadow-large no-underline color-text-primary"
|
||||||
href="https://github.com/{{ example.href }}"
|
href="https://github.com/{{ example.href }}"
|
||||||
>
|
>
|
||||||
<div class="p-4">
|
<div class="p-4">
|
||||||
<h4>{{ example.title }}</h4>
|
<h4>{{ example.title }}</h4>
|
||||||
<p class="mt-2 mb-4 text-gray-light">{{ example.description }}</p>
|
<p class="mt-2 mb-4 color-text-tertiary">{{ example.description }}</p>
|
||||||
<div class="d-flex flex-wrap">
|
<div class="d-flex flex-wrap">
|
||||||
{% for tag in example.tags %}
|
{% for tag in example.tags %}
|
||||||
<span class="IssueLabel text-white bg-blue mr-2 mb-1">{{ tag }}</span>
|
<span class="IssueLabel color-text-inverse color-bg-info-inverse mr-2 mb-1">{{ tag }}</span>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<footer class="border-top p-4 text-gray d-flex flex-items-center">
|
<footer class="border-top p-4 color-text-secondary d-flex flex-items-center">
|
||||||
{% octicon "repo" class="flex-shrink-0" %}
|
{% octicon "repo" class="flex-shrink-0" %}
|
||||||
<span class="ml-2 text-mono text-small text-blue">{{ example.href }}</span>
|
<span class="ml-2 text-mono text-small color-text-link">{{ example.href }}</span>
|
||||||
</footer>
|
</footer>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{% unless enterpriseServerReleases.isOldestReleaseDeprecated and currentVersion contains enterpriseServerReleases.oldestSupported %}
|
{% unless enterpriseServerReleases.isOldestReleaseDeprecated and currentVersion contains enterpriseServerReleases.oldestSupported %}
|
||||||
<div class="f5 contribution">
|
<div class="f5 contribution">
|
||||||
<h2 class="f4">{% data ui.contribution_cta.title %}</h2>
|
<h2 class="f4">{% data ui.contribution_cta.title %}</h2>
|
||||||
<p class="text-gray f6">{% data ui.contribution_cta.body %}</p>
|
<p class="color-text-secondary f6">{% data ui.contribution_cta.body %}</p>
|
||||||
{% if page.relativePath %}
|
{% if page.relativePath %}
|
||||||
{% assign contribution_href = "https://github.com/github/docs/edit/main/content/" | append: page.relativePath %}
|
{% assign contribution_href = "https://github.com/github/docs/edit/main/content/" | append: page.relativePath %}
|
||||||
{% else %}
|
{% else %}
|
||||||
@@ -11,6 +11,6 @@
|
|||||||
{% octicon "git-pull-request" height="16" %}
|
{% octicon "git-pull-request" height="16" %}
|
||||||
{% data ui.contribution_cta.button %}
|
{% data ui.contribution_cta.button %}
|
||||||
</a>
|
</a>
|
||||||
<p class="text-gray f6 mt-2">{% data ui.contribution_cta.or %} <a href="https://github.com/github/docs/blob/main/CONTRIBUTING.md" target="_blank">{% data ui.contribution_cta.to_guidelines %}</a></p>
|
<p class="color-text-secondary f6 mt-2">{% data ui.contribution_cta.or %} <a href="https://github.com/github/docs/blob/main/CONTRIBUTING.md" target="_blank">{% data ui.contribution_cta.to_guidelines %}</a></p>
|
||||||
</div>
|
</div>
|
||||||
{% endunless %}
|
{% endunless %}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{% if currentVersion contains enterpriseServerReleases.oldestSupported %}
|
{% if currentVersion contains enterpriseServerReleases.oldestSupported %}
|
||||||
<div class="deprecation-banner border rounded-1 mb-2 bg-yellow-light p-3 border-yellow f5">
|
<div class="deprecation-banner border rounded-1 mb-2 color-bg-warning p-3 color-border-warning f5">
|
||||||
<p>
|
<p>
|
||||||
<b>
|
<b>
|
||||||
<span>
|
<span>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<div class="col-12 col-xl-4 col-lg-6 mb-4 js-filter-card {% if forloop.index0 > 5 %}d-none{% endif %}" data-repo="{{ example.repo }}" data-description="{{ example.description }}">
|
<div class="col-12 col-xl-4 col-lg-6 mb-4 js-filter-card {% if forloop.index0 > 5 %}d-none{% endif %}" data-repo="{{ example.repo }}" data-description="{{ example.description }}">
|
||||||
<a
|
<a
|
||||||
class="Box d-flex height-full box-shadow-medium hover-shadow-large no-underline text-gray-dark p-4"
|
class="Box d-flex height-full color-shadow-medium hover-shadow-large no-underline color-text-primary p-4"
|
||||||
href="https://github.com/{{ example.repo }}/discussions"
|
href="https://github.com/{{ example.repo }}/discussions"
|
||||||
>
|
>
|
||||||
<div class="flex-shrink-0 mr-3">
|
<div class="flex-shrink-0 mr-3">
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="flex-auto">
|
<div class="flex-auto">
|
||||||
<h4>{{ example.repo }}</h4>
|
<h4>{{ example.repo }}</h4>
|
||||||
<p class="mt-1 text-gray-light">{{ example.description }}</p>
|
<p class="mt-1 color-text-tertiary">{{ example.description }}</p>
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{% if enterpriseServerReleases.deprecated contains currentVersion %}
|
{% if enterpriseServerReleases.deprecated contains currentVersion %}
|
||||||
{% assign deprecatedDate = enterpriseServerReleases.dates[currentVersion].deprecationDate %}
|
{% assign deprecatedDate = enterpriseServerReleases.dates[currentVersion].deprecationDate %}
|
||||||
<div class="deprecation-banner border rounded-1 mb-2 bg-yellow-light p-3 border-yellow f5">
|
<div class="deprecation-banner border rounded-1 mb-2 color-bg-warning p-3 color-border-warning f5">
|
||||||
<p>
|
<p>
|
||||||
<b>
|
<b>
|
||||||
{% data reusables.enterprise_deprecation.version_was_deprecated %}
|
{% data reusables.enterprise_deprecation.version_was_deprecated %}
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
<a class="link-with-intro Bump-link--hover no-underline d-block py-2" href="{{ link.href }}">
|
<a class="link-with-intro Bump-link--hover no-underline d-block py-2" href="{{ link.href }}">
|
||||||
<h4 class="link-with-intro-title link-gray-dark">{{ link.title }}<span class="Bump-link-symbol">→</span></h4>
|
<h4 class="link-with-intro-title Link--primary">{{ link.title }}<span class="Bump-link-symbol">→</span></h4>
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<a class="link-with-intro Bump-link--hover no-underline d-block py-2" href="{{ link.href }}">
|
<a class="link-with-intro Bump-link--hover no-underline d-block py-2" href="{{ link.href }}">
|
||||||
<h4 class="link-with-intro-title link-gray-dark">{{ link.title }}<span class="Bump-link-symbol">→</span></h4>
|
<h4 class="link-with-intro-title Link--primary">{{ link.title }}<span class="Bump-link-symbol">→</span></h4>
|
||||||
<p class="link-with-intro-intro color-gray-5">{{ link.intro }}</p>
|
<p class="link-with-intro-intro color-text-secondary">{{ link.intro }}</p>
|
||||||
</a>
|
</a>
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
<!-- Getting Started articles -->
|
<!-- Getting Started articles -->
|
||||||
<div class="col-12 col-lg-6 float-left">
|
<div class="col-12 col-lg-6 float-left">
|
||||||
<div class="featured-links-heading pb-4">
|
<div class="featured-links-heading pb-4">
|
||||||
<h3 class="f5 text-normal text-mono underline-dashed color-gray-5">{% data ui.toc.getting_started %}</h3>
|
<h3 class="f5 text-normal text-mono underline-dashed color-text-secondary">{% data ui.toc.getting_started %}</h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% for link in featuredLinks.gettingStarted %}
|
{% for link in featuredLinks.gettingStarted %}
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
<!-- Popular articles -->
|
<!-- Popular articles -->
|
||||||
<div class="col-12 col-lg-6 float-left">
|
<div class="col-12 col-lg-6 float-left">
|
||||||
<div class="featured-links-heading pb-4">
|
<div class="featured-links-heading pb-4">
|
||||||
<h3 class="f5 text-normal text-mono underline-dashed color-gray-5">{% data ui.toc.popular_articles %}</h3>
|
<h3 class="f5 text-normal text-mono underline-dashed color-text-secondary">{% data ui.toc.popular_articles %}</h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% for link in featuredLinks.popular %}
|
{% for link in featuredLinks.popular %}
|
||||||
|
|||||||
@@ -1,90 +0,0 @@
|
|||||||
<div class="footer mt-6 no-print">
|
|
||||||
<div class="container-xl px-3 px-md-6">
|
|
||||||
<div class="d-flex flex-wrap py-5 mb-5">
|
|
||||||
<div class="col-12 col-lg-4 mb-5">
|
|
||||||
<a href="https://github.com/" class="text-gray-dark" aria-label="Go to GitHub homepage">
|
|
||||||
{% octicon "logo-github" height="30" %}
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<div class="col-6 col-sm-3 col-lg-2 mb-6 mb-md-2 pr-3 pr-lg-0 pl-lg-4">
|
|
||||||
<h4 class="mb-3 text-mono text-gray-light text-normal">{% data ui.footer.product.heading %}</h4>
|
|
||||||
<ul class="list-style-none text-gray f5">
|
|
||||||
<li class="lh-condensed mb-3"><a href="https://github.com/features" class="link-gray">{% data ui.footer.product.links.features %}</a></li>
|
|
||||||
<li class="lh-condensed mb-3"><a href="https://github.com/security" class="link-gray">{% data ui.footer.product.links.security %}</a></li>
|
|
||||||
<li class="lh-condensed mb-3"><a href="https://github.com/enterprise" class="link-gray">{% data ui.footer.product.links.enterprise %}</a></li>
|
|
||||||
<li class="lh-condensed mb-3"><a href="https://github.com/customer-stories?type=enterprise" class="link-gray">{% data ui.footer.product.links.case_studies %}</a></li>
|
|
||||||
<li class="lh-condensed mb-3"><a href="https://github.com/pricing" class="link-gray">{% data ui.footer.product.links.pricing %}</a></li>
|
|
||||||
<li class="lh-condensed mb-3"><a href="https://resources.github.com" class="link-gray">{% data ui.footer.product.links.resources %}</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="col-6 col-sm-3 col-lg-2 mb-6 mb-md-2 pr-3 pr-md-0 pl-md-4">
|
|
||||||
<h4 class="mb-3 text-mono text-gray-light text-normal">{% data ui.footer.platform.heading %}</h4>
|
|
||||||
<ul class="list-style-none f5">
|
|
||||||
<li class="lh-condensed mb-3"><a href="/developers" class="link-gray">{% data ui.footer.platform.links.developer_api %}</a></li>
|
|
||||||
<li class="lh-condensed mb-3"><a href="https://partner.github.com/" class="link-gray">{% data ui.footer.platform.links.partners %}</a></li>
|
|
||||||
<li class="lh-condensed mb-3"><a href="https://atom.io" class="link-gray">{% data ui.footer.platform.links.atom %}</a></li>
|
|
||||||
<li class="lh-condensed mb-3"><a href="https://www.electronjs.org/" class="link-gray">{% data ui.footer.platform.links.electron %}</a></li>
|
|
||||||
<li class="lh-condensed mb-3"><a href="https://desktop.github.com/" class="link-gray">{% data ui.footer.platform.links.github_desktop %}</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="col-6 col-sm-3 col-lg-2 mb-6 mb-md-2 pr-3 pr-md-0 pl-md-4">
|
|
||||||
<h4 class="mb-3 text-mono text-gray-light text-normal">{% data ui.footer.support.heading %}</h4>
|
|
||||||
<ul class="list-style-none f5">
|
|
||||||
<li class="lh-condensed mb-3"><a href="/" class="link-gray">{% data ui.footer.support.links.help %}</a></li>
|
|
||||||
<li class="lh-condensed mb-3"><a href="https://github.community" class="link-gray">{% data ui.footer.support.links.community_forum %}</a></li>
|
|
||||||
<li class="lh-condensed mb-3"><a href="https://services.github.com/" class="link-gray">{% data ui.footer.support.links.training %}</a></li>
|
|
||||||
<li class="lh-condensed mb-3"><a href="https://www.githubstatus.com/" class="link-gray">{% data ui.footer.support.links.status %}</a></li>
|
|
||||||
<li class="lh-condensed mb-3"><a href="https://support.github.com/" class="link-gray">{% data ui.footer.support.links.contact_github %}</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="col-6 col-sm-3 col-lg-2 mb-6 mb-md-2 pr-3 pr-md-0 pl-md-4">
|
|
||||||
<h4 class="mb-3 text-mono text-gray-light text-normal">{% data ui.footer.company.heading %}</h4>
|
|
||||||
<ul class="list-style-none f5">
|
|
||||||
<li class="lh-condensed mb-3"><a href="https://github.com/about" class="link-gray">{% data ui.footer.company.links.about %}</a></li>
|
|
||||||
<li class="lh-condensed mb-3"><a href="https://github.blog/" class="link-gray">{% data ui.footer.company.links.blog %}</a></li>
|
|
||||||
<li class="lh-condensed mb-3"><a href="https://github.com/about/careers" class="link-gray">{% data ui.footer.company.links.careers %}</a></li>
|
|
||||||
<li class="lh-condensed mb-3"><a href="https://github.com/about/press" class="link-gray">{% data ui.footer.company.links.press %}</a></li>
|
|
||||||
<li class="lh-condensed mb-3"><a href="https://shop.github.com" class="link-gray">{% data ui.footer.company.links.shop %}</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="bg-gray-light">
|
|
||||||
<div class="container-xl px-3 px-md-6 f6 py-4 d-sm-flex flex-justify-between flex-row-reverse flex-items-center">
|
|
||||||
<ul class="list-style-none d-flex flex-items-center mb-3 mb-sm-0 lh-condensed-ultra">
|
|
||||||
<li class="mr-3">
|
|
||||||
<a href="https://twitter.com/github" title="GitHub on Twitter" style="color: #959da5;">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 273.5 222.3" class="d-block" height="18"><path d="M273.5 26.3a109.77 109.77 0 0 1-32.2 8.8 56.07 56.07 0 0 0 24.7-31 113.39 113.39 0 0 1-35.7 13.6 56.1 56.1 0 0 0-97 38.4 54 54 0 0 0 1.5 12.8A159.68 159.68 0 0 1 19.1 10.3a56.12 56.12 0 0 0 17.4 74.9 56.06 56.06 0 0 1-25.4-7v.7a56.11 56.11 0 0 0 45 55 55.65 55.65 0 0 1-14.8 2 62.39 62.39 0 0 1-10.6-1 56.24 56.24 0 0 0 52.4 39 112.87 112.87 0 0 1-69.7 24 119 119 0 0 1-13.4-.8 158.83 158.83 0 0 0 86 25.2c103.2 0 159.6-85.5 159.6-159.6 0-2.4-.1-4.9-.2-7.3a114.25 114.25 0 0 0 28.1-29.1" fill="currentColor"></path></svg>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li class="mr-3">
|
|
||||||
<a href="https://www.facebook.com/GitHub" title="GitHub on Facebook" style="color: #959da5;">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15.3 15.4" class="d-block" height="18"><path d="M14.5 0H.8a.88.88 0 0 0-.8.9v13.6a.88.88 0 0 0 .8.9h7.3v-6h-2V7.1h2V5.4a2.87 2.87 0 0 1 2.5-3.1h.5a10.87 10.87 0 0 1 1.8.1v2.1h-1.3c-1 0-1.1.5-1.1 1.1v1.5h2.3l-.3 2.3h-2v5.9h3.9a.88.88 0 0 0 .9-.8V.8a.86.86 0 0 0-.8-.8z" fill="currentColor"></path></svg>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li class="mr-3">
|
|
||||||
<a href="https://www.youtube.com/github" title="GitHub on YouTube" style="color: #959da5;">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 19.17 13.6" class="d-block" height="16"><path d="M18.77 2.13A2.4 2.4 0 0 0 17.09.42C15.59 0 9.58 0 9.58 0a57.55 57.55 0 0 0-7.5.4A2.49 2.49 0 0 0 .39 2.13 26.27 26.27 0 0 0 0 6.8a26.15 26.15 0 0 0 .39 4.67 2.43 2.43 0 0 0 1.69 1.71c1.52.42 7.5.42 7.5.42a57.69 57.69 0 0 0 7.51-.4 2.4 2.4 0 0 0 1.68-1.71 25.63 25.63 0 0 0 .4-4.67 24 24 0 0 0-.4-4.69zM7.67 9.71V3.89l5 2.91z" fill="currentColor"></path></svg>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li class="mr-3 flex-self-start">
|
|
||||||
<a href="https://www.linkedin.com/company/github" title="GitHub on Linkedin" style="color: #959da5;">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 19 18" class="d-block" height="18"><path d="M3.94 2A2 2 0 1 1 2 0a2 2 0 0 1 1.94 2zM4 5.48H0V18h4zm6.32 0H6.34V18h3.94v-6.57c0-3.66 4.77-4 4.77 0V18H19v-7.93c0-6.17-7.06-5.94-8.72-2.91z" fill="currentColor"></path></svg>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="https://github.com/github" title="GitHub's organization" style="color: #959da5;">
|
|
||||||
{% octicon "mark-github" height="20" %}
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<ul class="list-style-none d-flex text-gray">
|
|
||||||
<li class="mr-3">© {{ "now" | date: "%Y" }} GitHub, Inc.</li>
|
|
||||||
<li class="mr-3"><a href="/articles/github-terms-of-service/" class="link-gray">{% data ui.footer.terms %} </a></li>
|
|
||||||
<li><a href="/articles/github-privacy-statement/" class="link-gray">{% data ui.footer.privacy %} </a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{% include scripts %}
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
{% if field.arguments %}
|
{% if field.arguments %}
|
||||||
<div class="border rounded-1 mt-3 mb-3 p-3 bg-gray-light f5">
|
<div class="border rounded-1 mt-3 mb-3 p-3 color-bg-secondary f5">
|
||||||
<p><b>{% data ui.products.graphql.reference.arguments %}</b></p>
|
<p><b>{% data ui.products.graphql.reference.arguments %}</b></p>
|
||||||
{% for arg in arguments %}
|
{% for arg in arguments %}
|
||||||
<div class="border-top mt-2">
|
<div class="border-top mt-2">
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{% if item.isDeprecated %}
|
{% if item.isDeprecated %}
|
||||||
<div class="extended-markdown warning border rounded-1 mt-3 mb-4 p-3 border-red bg-red-light f5">
|
<div class="extended-markdown warning border rounded-1 mt-3 mb-4 p-3 color-border-danger color-bg-danger f5">
|
||||||
<p><b>{% data ui.products.graphql.reference.deprecation_notice %}</b></p>
|
<p><b>{% data ui.products.graphql.reference.deprecation_notice %}</b></p>
|
||||||
<p><code>{{ item.name }}</code> is deprecated. {{ item.deprecationReason }}</p>
|
<p><code>{{ item.name }}</code> is deprecated. {{ item.deprecationReason }}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{% if item.preview %}
|
{% if item.preview %}
|
||||||
<div class="extended-markdown note border rounded-1 mt-3 mb-4 p-3 border-blue bg-blue-light f5">
|
<div class="extended-markdown note border rounded-1 mt-3 mb-4 p-3 color-border-info color-bg-info f5">
|
||||||
<p><b>{% data ui.products.graphql.reference.preview_notice %}</b></p>
|
<p><b>{% data ui.products.graphql.reference.preview_notice %}</b></p>
|
||||||
<p><code>{{ item.name }}</code> is available under the <a href="/{{ currentLanguage }}{{ item.preview.href }}">{{ item.preview.title }}</a>. During the preview period, the API may change without notice.</p>
|
<p><code>{{ item.name }}</code> is available under the <a href="/{{ currentLanguage }}{{ item.preview.href }}">{{ item.preview.title }}</a>. During the preview period, the API may change without notice.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -6,9 +6,9 @@
|
|||||||
{% assign authorsString = authors | join: ", @" %}
|
{% assign authorsString = authors | join: ", @" %}
|
||||||
|
|
||||||
<div class="col-lg-4 col-12 mb-3">
|
<div class="col-lg-4 col-12 mb-3">
|
||||||
<a class="Box box-shadow-medium height-full d-block hover-shadow-large no-underline text-gray-dark p-5" href="{{ guide.href }}">
|
<a class="Box color-shadow-medium height-full d-block hover-shadow-large no-underline color-text-primary p-5" href="{{ guide.href }}">
|
||||||
<h2>{{ guide.title }}</h2>
|
<h2>{{ guide.title }}</h2>
|
||||||
<p class="mt-2 mb-4 text-gray-light">{{ guide.intro }}</p>
|
<p class="mt-2 mb-4 color-text-tertiary">{{ guide.intro }}</p>
|
||||||
|
|
||||||
<footer class="d-flex">
|
<footer class="d-flex">
|
||||||
<div class="mr-1">
|
<div class="mr-1">
|
||||||
|
|||||||
@@ -39,19 +39,19 @@
|
|||||||
<!-- END ONEOFF EARLY ACCESS NOTICE -->
|
<!-- END ONEOFF EARLY ACCESS NOTICE -->
|
||||||
|
|
||||||
{% if translation_notification_type %}
|
{% if translation_notification_type %}
|
||||||
<div class="header-notifications text-center f5 bg-blue-1 text-gray-dark py-4 px-6 translation_notice{% if release_notification_type %} border-bottom border-black-fade{% endif %}">
|
<div class="header-notifications text-center f5 color-bg-info-inverse color-text-primary py-4 px-6 translation_notice{% if release_notification_type %} border-bottom color-border-tertiary{% endif %}">
|
||||||
{{ translation_notification }}
|
{{ translation_notification }}
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if release_notification_type %}
|
{% if release_notification_type %}
|
||||||
<div class="header-notifications text-center f5 bg-blue-1 text-gray-dark py-4 px-6 release_notice{% if early_access_notification_type %} border-bottom border-black-fade{% endif %}">
|
<div class="header-notifications text-center f5 color-bg-info color-text-primary py-4 px-6 release_notice{% if early_access_notification_type %} border-bottom color-border-tertiary{% endif %}">
|
||||||
{{ release_notification }}
|
{{ release_notification }}
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if early_access_notification_type %}
|
{% if early_access_notification_type %}
|
||||||
<div class="header-notifications text-center f5 bg-red-1 text-gray-dark py-4 px-6 early_access">
|
<div class="header-notifications text-center f5 color-bg-danger color-text-primary py-4 px-6 early_access">
|
||||||
{{ early_access_notification }}
|
{{ early_access_notification }}
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -4,14 +4,14 @@
|
|||||||
<div class="d-md-inline-block">
|
<div class="d-md-inline-block">
|
||||||
<div class="border-top border-md-top-0 py-2 py-md-0 d-md-inline-block">
|
<div class="border-top border-md-top-0 py-2 py-md-0 d-md-inline-block">
|
||||||
<details class="dropdown-withArrow position-relative details details-reset mr-md-3 close-when-clicked-outside">
|
<details class="dropdown-withArrow position-relative details details-reset mr-md-3 close-when-clicked-outside">
|
||||||
<summary class="py-2 text-gray-dark" role="button" aria-label="Toggle versions list">
|
<summary class="py-2 color-text-primary" role="button" aria-label="Toggle versions list">
|
||||||
<div class="d-flex flex-items-center flex-justify-between">
|
<div class="d-flex flex-items-center flex-justify-between">
|
||||||
{% if currentVersion == 'homepage' %}
|
{% if currentVersion == 'homepage' %}
|
||||||
{% data ui.homepage.version_picker %}
|
{% data ui.homepage.version_picker %}
|
||||||
{% else %}
|
{% else %}
|
||||||
{{ allVersions[currentVersion].versionTitle }}
|
{{ allVersions[currentVersion].versionTitle }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<svg class="arrow ml-md-1" width="14px" height="8px" viewBox="0 0 14 8" xml:space="preserve" fill="none" stroke="#1B1F23"><path d="M1,1l6.2,6L13,1"></path></svg>
|
<svg class="arrow ml-md-1" width="14px" height="8px" viewBox="0 0 14 8" xml:space="preserve" fill="none" stroke="currentColor"><path d="M1,1l6.2,6L13,1"></path></svg>
|
||||||
</div>
|
</div>
|
||||||
</summary>
|
</summary>
|
||||||
<div id="versions-selector" class="position-md-absolute nav-desktop-langDropdown p-md-4 right-md-n4 top-md-6" style="z-index: 6;">
|
<div id="versions-selector" class="position-md-absolute nav-desktop-langDropdown p-md-4 right-md-n4 top-md-6" style="z-index: 6;">
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
{% unless permalink.pageVersion == 'homepage' %}
|
{% unless permalink.pageVersion == 'homepage' %}
|
||||||
<a
|
<a
|
||||||
href="{{ permalink.href }}"
|
href="{{ permalink.href }}"
|
||||||
class="d-block py-2 no-underline {% if currentPath == permalink.href %}active{% else %}link-gray-dark{% endif %}"
|
class="d-block py-2 no-underline {% if currentPath == permalink.href %}active{% else %}Link--primary{% endif %}"
|
||||||
style="white-space: nowrap"
|
style="white-space: nowrap"
|
||||||
>{{ allVersions[permalink.pageVersion].versionTitle }}</a>
|
>{{ allVersions[permalink.pageVersion].versionTitle }}</a>
|
||||||
{% endunless %}
|
{% endunless %}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<div class="border-bottom border-gray-light no-print">
|
<div class="border-bottom color-border-secondary no-print">
|
||||||
{% unless error == '404' %}
|
{% unless error == '404' %}
|
||||||
{% include header-notification %}
|
{% include header-notification %}
|
||||||
{% endunless %}
|
{% endunless %}
|
||||||
@@ -7,9 +7,9 @@
|
|||||||
|
|
||||||
<div class="d-flex flex-items-center d-lg-none" style="z-index: 3;" id="github-logo-mobile" role="banner">
|
<div class="d-flex flex-items-center d-lg-none" style="z-index: 3;" id="github-logo-mobile" role="banner">
|
||||||
<a href="/{{ currentLanguage }}" aria-hidden="true" tabindex="-1">
|
<a href="/{{ currentLanguage }}" aria-hidden="true" tabindex="-1">
|
||||||
{% octicon "mark-github" height="32" class="text-black" %}
|
{% octicon "mark-github" height="32" class="color-icon-primary" %}
|
||||||
</a>
|
</a>
|
||||||
<a href="/{{ currentLanguage }}" class="h4-mktg text-gray-dark no-underline no-wrap pl-2">{% data ui.header.github_docs %}</a>
|
<a href="/{{ currentLanguage }}" class="h4-mktg color-text-primary no-underline no-wrap pl-2">{% data ui.header.github_docs %}</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="width-full">
|
<div class="width-full">
|
||||||
@@ -20,14 +20,14 @@
|
|||||||
<div style="z-index: 2;" class="nav-mobile-dropdown width-full">
|
<div style="z-index: 2;" class="nav-mobile-dropdown width-full">
|
||||||
<div class="d-md-flex flex-justify-between flex-items-center">
|
<div class="d-md-flex flex-justify-between flex-items-center">
|
||||||
<div class="py-2 py-md-0 d-md-inline-block">
|
<div class="py-2 py-md-0 d-md-inline-block">
|
||||||
<h4 class="text-mono f5 text-normal text-gray d-md-none">{% data ui.homepage.explore_by_product %}</h4>
|
<h4 class="text-mono f5 text-normal color-text-secondary d-md-none">{% data ui.homepage.explore_by_product %}</h4>
|
||||||
<details class="dropdown-withArrow position-relative details details-reset d-md-none close-when-clicked-outside">
|
<details class="dropdown-withArrow position-relative details details-reset d-md-none close-when-clicked-outside">
|
||||||
<summary class="nav-desktop-productDropdownButton text-blue-mktg py-2" role="button" aria-label="Toggle products list">
|
<summary class="nav-desktop-productDropdownButton color-text-link-mktg py-2" role="button" aria-label="Toggle products list">
|
||||||
<div id="current-product" class="d-flex flex-items-center flex-justify-between" style="padding-top: 2px;">
|
<div id="current-product" class="d-flex flex-items-center flex-justify-between" style="padding-top: 2px;">
|
||||||
<!-- Product switcher - GitHub.com, Enterprise Server, etc -->
|
<!-- Product switcher - GitHub.com, Enterprise Server, etc -->
|
||||||
<!-- 404 and 500 error layouts are not real pages so we need to hardcode the name for those -->
|
<!-- 404 and 500 error layouts are not real pages so we need to hardcode the name for those -->
|
||||||
{{ productMap[currentProduct].name }}
|
{{ productMap[currentProduct].name }}
|
||||||
<svg class="arrow ml-md-1" width="14px" height="8px" viewBox="0 0 14 8" xml:space="preserve" fill="none" stroke="#1277eb"><path d="M1,1l6.2,6L13,1"></path></svg>
|
<svg class="arrow ml-md-1" width="14px" height="8px" viewBox="0 0 14 8" xml:space="preserve" fill="none" stroke="currentColor"><path d="M1,1l6.2,6L13,1"></path></svg>
|
||||||
</div>
|
</div>
|
||||||
</summary>
|
</summary>
|
||||||
<!-- Mobile-only product dropdown -->
|
<!-- Mobile-only product dropdown -->
|
||||||
@@ -35,10 +35,10 @@
|
|||||||
{% for product in activeProducts %}
|
{% for product in activeProducts %}
|
||||||
<a href="{% unless product.external %}/{{ currentLanguage }}{% endunless %}{{ product.href }}"
|
<a href="{% unless product.external %}/{{ currentLanguage }}{% endunless %}{{ product.href }}"
|
||||||
class="d-block py-2
|
class="d-block py-2
|
||||||
{% if product.id == currentProduct %}text-blue-mktg text-underline active{% elsif product.id == currentProduct.id %}text-blue-mktg text-underline active{% else %}link-gray-dark no-underline{% endif %}">
|
{% if product.id == currentProduct %}color-text-link-mktg text-underline active{% elsif product.id == currentProduct.id %}color-text-link-mktg text-underline active{% else %}Link--primary no-underline{% endif %}">
|
||||||
{{ product.name }}
|
{{ product.name }}
|
||||||
{% if product.external %}
|
{% if product.external %}
|
||||||
<span class="ml-1"><svg width="9" height="10" viewBox="0 0 9 10" fill="none" xmlns="http://www.w3.org/2000/svg"><path stroke="#24292e" d="M.646 8.789l8-8M8.5 9V1M1 .643h8"/></svg></span>
|
<span class="ml-1"><svg width="9" height="10" viewBox="0 0 9 10" fill="none" xmlns="http://www.w3.org/2000/svg"><path stroke="currentColor" d="M.646 8.789l8-8M8.5 9V1M1 .643h8"/></svg></span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</a>
|
</a>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
@@ -52,17 +52,17 @@
|
|||||||
<div class="d-md-inline-block">
|
<div class="d-md-inline-block">
|
||||||
|
|
||||||
<!-- Language picker - 'English', 'Japanese', etc -->
|
<!-- Language picker - 'English', 'Japanese', etc -->
|
||||||
{% unless error == '404' or !page.hidden %}
|
{% if page.languageVariants.length > 0 and error != '404' and !page.hidden %}
|
||||||
<div class="border-top border-md-top-0 py-2 py-md-0 d-md-inline-block">
|
<div class="border-top border-md-top-0 py-2 py-md-0 d-md-inline-block">
|
||||||
<details class="dropdown-withArrow position-relative details details-reset mr-md-3 close-when-clicked-outside">
|
<details class="dropdown-withArrow position-relative details details-reset mr-md-3 close-when-clicked-outside">
|
||||||
<summary class="py-2 text-gray-dark" role="button" aria-label="Toggle languages list">
|
<summary class="py-2 color-text-primary" role="button" aria-label="Toggle languages list">
|
||||||
<div class="d-flex flex-items-center flex-justify-between">
|
<div class="d-flex flex-items-center flex-justify-between">
|
||||||
{% if languages[page.languageCode].nativeName %}
|
{% if languages[page.languageCode].nativeName %}
|
||||||
{{ languages[page.languageCode].nativeName }} ({{ languages[page.languageCode].name }})
|
{{ languages[page.languageCode].nativeName }} ({{ languages[page.languageCode].name }})
|
||||||
{% else %}
|
{% else %}
|
||||||
{{ languages[page.languageCode].name }}
|
{{ languages[page.languageCode].name }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<svg class="arrow ml-md-1" width="14px" height="8px" viewBox="0 0 14 8" xml:space="preserve" fill="none" stroke="#1B1F23"><path d="M1,1l6.2,6L13,1"></path></svg>
|
<svg class="arrow ml-md-1" width="14px" height="8px" viewBox="0 0 14 8" xml:space="preserve" fill="none" stroke="currentColor"><path d="M1,1l6.2,6L13,1"></path></svg>
|
||||||
</div>
|
</div>
|
||||||
</summary>
|
</summary>
|
||||||
<div id="languages-selector" class="position-md-absolute nav-desktop-langDropdown p-md-4 right-md-n4 top-md-6" style="z-index: 6;">
|
<div id="languages-selector" class="position-md-absolute nav-desktop-langDropdown p-md-4 right-md-n4 top-md-6" style="z-index: 6;">
|
||||||
@@ -70,7 +70,7 @@
|
|||||||
{% unless languages[languageVariant.code].wip %}
|
{% unless languages[languageVariant.code].wip %}
|
||||||
<a
|
<a
|
||||||
href="{{ languageVariant.href }}"
|
href="{{ languageVariant.href }}"
|
||||||
class="d-block py-2 no-underline {% if currentPath == languageVariant.href %}active link-gray{% else %}link-gray-dark{% endif %}"
|
class="d-block py-2 no-underline {% if currentPath == languageVariant.href %}active Link--secondary{% else %}Link--primary{% endif %}"
|
||||||
style="white-space: nowrap"
|
style="white-space: nowrap"
|
||||||
>
|
>
|
||||||
{% if languages[languageVariant.code].nativeName %}
|
{% if languages[languageVariant.code].nativeName %}
|
||||||
@@ -84,7 +84,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</details>
|
</details>
|
||||||
</div>
|
</div>
|
||||||
{% endunless %}
|
{% endif %}
|
||||||
|
|
||||||
<!-- GitHub.com homepage and 404 page has a stylized search; Enterprise homepages do not -->
|
<!-- GitHub.com homepage and 404 page has a stylized search; Enterprise homepages do not -->
|
||||||
{% if page.relativePath != 'index.md' and error != '404' %}
|
{% if page.relativePath != 'index.md' and error != '404' %}
|
||||||
|
|||||||
@@ -40,10 +40,10 @@
|
|||||||
{% octicon "thumbsdown" height="24" %}
|
{% octicon "thumbsdown" height="24" %}
|
||||||
</label>
|
</label>
|
||||||
</p>
|
</p>
|
||||||
<p class="text-gray f6" hidden data-help-yes>
|
<p class="color-text-secondary f6" hidden data-help-yes>
|
||||||
{% data ui.helpfulness.yes_feedback %}
|
{% data ui.helpfulness.yes_feedback %}
|
||||||
</p>
|
</p>
|
||||||
<p class="text-gray f6" hidden data-help-no>
|
<p class="color-text-secondary f6" hidden data-help-no>
|
||||||
{% data ui.helpfulness.no_feedback %}
|
{% data ui.helpfulness.no_feedback %}
|
||||||
</p>
|
</p>
|
||||||
<input
|
<input
|
||||||
@@ -58,7 +58,7 @@
|
|||||||
for="helpfulness-comment"
|
for="helpfulness-comment"
|
||||||
>
|
>
|
||||||
<span>{% data ui.helpfulness.comment_label %}</span>
|
<span>{% data ui.helpfulness.comment_label %}</span>
|
||||||
<span class="text-normal text-gray-light float-right ml-1">
|
<span class="text-normal color-text-tertiary float-right ml-1">
|
||||||
{% data ui.helpfulness.optional %}
|
{% data ui.helpfulness.optional %}
|
||||||
</span>
|
</span>
|
||||||
</label>
|
</label>
|
||||||
@@ -76,7 +76,7 @@
|
|||||||
data-help-no
|
data-help-no
|
||||||
>
|
>
|
||||||
{% data ui.helpfulness.email_label %}
|
{% data ui.helpfulness.email_label %}
|
||||||
<span class="text-normal text-gray-light float-right ml-1">
|
<span class="text-normal color-text-tertiary float-right ml-1">
|
||||||
{% data ui.helpfulness.optional %}
|
{% data ui.helpfulness.optional %}
|
||||||
</span>
|
</span>
|
||||||
</label>
|
</label>
|
||||||
@@ -97,11 +97,11 @@
|
|||||||
data-help-yes
|
data-help-yes
|
||||||
data-help-no
|
data-help-no
|
||||||
>
|
>
|
||||||
<button type="submit" class="btn btn-blue btn-sm">
|
<button type="submit" class="btn btn-sm">
|
||||||
{% data ui.helpfulness.send %}
|
{% data ui.helpfulness.send %}
|
||||||
</button>
|
</button>
|
||||||
</p>
|
</p>
|
||||||
<p class="text-gray f6" hidden data-help-end>
|
<p class="color-text-secondary f6" hidden data-help-end>
|
||||||
{% data ui.helpfulness.feedback %}
|
{% data ui.helpfulness.feedback %}
|
||||||
</p>
|
</p>
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<!-- Hero -->
|
<!-- Hero -->
|
||||||
<section id="landing" style="background-color: #fafbfc;">
|
<section id="landing" class="color-bg-tertiary">
|
||||||
<div class="container-xl px-3 px-md-6 pb-6 pb-lg-9">
|
<div class="container-xl px-3 px-md-6 pb-6 pb-lg-9">
|
||||||
<div class="gutter gutter-xl-spacious pt-6 pt-lg-0 d-lg-flex flex-row-reverse flex-items-center">
|
<div class="gutter gutter-xl-spacious pt-6 pt-lg-0 d-lg-flex flex-row-reverse flex-items-center">
|
||||||
<div class="col-lg-7">
|
<div class="col-lg-7">
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
<!-- Explore by product -->
|
<!-- Explore by product -->
|
||||||
<section class="container-xl pb-lg-4 my-8 px-3 px-md-6">
|
<section class="container-xl pb-lg-4 my-8 px-3 px-md-6">
|
||||||
<div class="">
|
<div class="">
|
||||||
<h2 class="text-mono f5 text-normal text-gray text-md-center mb-4">{% data ui.homepage.explore_by_product %}</h2>
|
<h2 class="text-mono f5 text-normal color-text-secondary text-md-center mb-4">{% data ui.homepage.explore_by_product %}</h2>
|
||||||
<div class="d-flex flex-wrap gutter gutter-xl-spacious">
|
<div class="d-flex flex-wrap gutter gutter-xl-spacious">
|
||||||
{% for product in activeProducts %}
|
{% for product in activeProducts %}
|
||||||
{% if product.versions contains currentVersion or currentVersion == 'homepage' %}
|
{% if product.versions contains currentVersion or currentVersion == 'homepage' %}
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
<div class="py-3 px-4 rounded bg-white border-gradient--purple-pink d-flex flex-justify-between learning-track-nav">
|
<div class="py-3 px-4 rounded color-bg-primary border-gradient--purple-pink d-flex flex-justify-between learning-track-nav">
|
||||||
{% assign track = currentLearningTrack %}
|
{% assign track = currentLearningTrack %}
|
||||||
|
|
||||||
<span class="d-flex flex-column">
|
<span class="d-flex flex-column">
|
||||||
{% if track.prevGuide %}
|
{% if track.prevGuide %}
|
||||||
<span class="f6 text-gray">{% data ui.learning_track_nav.prevGuide %}</span>
|
<span class="f6 color-text-secondary">{% data ui.learning_track_nav.prevGuide %}</span>
|
||||||
<a href="{{track.prevGuide.href}}?learn={{track.trackName}}" class="text-bold text-gray">{{track.prevGuide.title}}</a>
|
<a href="{{track.prevGuide.href}}?learn={{track.trackName}}" class="text-bold color-text-secondary">{{track.prevGuide.title}}</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<span class="d-flex flex-column flex-items-end">
|
<span class="d-flex flex-column flex-items-end">
|
||||||
{% if track.nextGuide %}
|
{% if track.nextGuide %}
|
||||||
<span class="f6 text-gray">{% data ui.learning_track_nav.nextGuide %}</span>
|
<span class="f6 color-text-secondary">{% data ui.learning_track_nav.nextGuide %}</span>
|
||||||
<a href="{{track.nextGuide.href}}?learn={{track.trackName}}" class="text-bold text-gray text-right">{{track.nextGuide.title}}</a>
|
<a href="{{track.nextGuide.href}}?learn={{track.trackName}}" class="text-bold color-text-secondary text-right">{{track.nextGuide.title}}</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
|
|||||||