diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 38926a7dd8..a10ad565e4 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -32,12 +32,6 @@ "postCreateCommand": "npm ci && npm run build", // Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root. - "remoteUser": "node", - - // Test restricting low-spec machines - "hostRequirements": { - "cpus": 8, - "memory": "8gb", - "storage": "32gb" - } + "remoteUser": "node" + } diff --git a/.github/actions-scripts/fr-add-docs-reviewers-requests.js b/.github/actions-scripts/fr-add-docs-reviewers-requests.js index a095d10628..0772189880 100644 --- a/.github/actions-scripts/fr-add-docs-reviewers-requests.js +++ b/.github/actions-scripts/fr-add-docs-reviewers-requests.js @@ -8,88 +8,83 @@ import { generateUpdateProjectNextItemFieldMutation, } from './projects.js' -async function run() { - // Get info about the docs-content review board project - // and about open github/github PRs - const data = await graphql( - ` - query ($organization: String!, $repo: String!, $projectNumber: Int!, $num_prs: Int!) { - organization(login: $organization) { - projectNext(number: $projectNumber) { - id - items(last: 100) { +async function getAllOpenPRs() { + let prsRemaining = true + let cursor + let prData = [] + while (prsRemaining) { + const data = await graphql( + ` + query ($organization: String!, $repo: String!) { + repository(name: $repo, owner: $organization) { + pullRequests(last: 100, states: OPEN${cursor ? ` before:"${cursor}"` : ''}) { + pageInfo{startCursor, hasPreviousPage}, nodes { id - } - } - fields(first: 20) { - nodes { - id - name - settings - } - } - } - } - repository(name: $repo, owner: $organization) { - pullRequests(last: $num_prs, states: OPEN) { - nodes { - id - isDraft - reviewRequests(first: 10) { - nodes { - requestedReviewer { - ... on Team { - name - } - } - } - } - labels(first: 5) { - nodes { - name - } - } - reviews(first: 10) { - nodes { - onBehalfOf(first: 1) { - nodes { - name - } - } - } - } - author { - login + isDraft + reviewRequests(first: 10) { + nodes { + requestedReviewer { + ... on Team { + name + } + } + } + } + labels(first: 5) { + nodes { + name + } + } + reviews(first: 10) { + nodes { + onBehalfOf(first: 1) { + nodes { + name + } + } + } + } + author { + login + } } } } } + `, + { + organization: process.env.ORGANIZATION, + repo: process.env.REPO, + headers: { + authorization: `token ${process.env.TOKEN}`, + }, } - `, - { - organization: process.env.ORGANIZATION, - repo: process.env.REPO, - projectNumber: parseInt(process.env.PROJECT_NUMBER), - num_prs: parseInt(process.env.NUM_PRS), - headers: { - authorization: `token ${process.env.TOKEN}`, - 'GraphQL-Features': 'projects_next_graphql', - }, - } - ) + ) + + prsRemaining = data.repository.pullRequests.pageInfo.hasPreviousPage + cursor = data.repository.pullRequests.pageInfo.startCursor + prData = [...prData, ...data.repository.pullRequests.nodes] + } + + return prData +} + +async function run() { + // Get info about open github/github PRs + const prData = await getAllOpenPRs() // Get the PRs that are: // - not draft // - not a train // - are requesting a review by docs-reviewers // - have not already been reviewed on behalf of docs-reviewers - const prs = data.repository.pullRequests.nodes.filter( + const prs = prData.filter( (pr) => !pr.isDraft && !pr.labels.nodes.find((label) => label.name === 'Deploy train 🚂') && pr.reviewRequests.nodes.find( - (requestedReviewers) => requestedReviewers.requestedReviewer.name === process.env.REVIEWER + (requestedReviewers) => requestedReviewers.requestedReviewer?.name === process.env.REVIEWER ) && !pr.reviews.nodes .flatMap((review) => review.onBehalfOf.nodes) @@ -104,28 +99,60 @@ async function run() { const prAuthors = prs.map((pr) => pr.author.login) console.log(`PRs found: ${prIDs}`) + // Get info about the docs-content review board project + const projectData = await graphql( + ` + query ($organization: String!, $projectNumber: Int!) { + organization(login: $organization) { + projectNext(number: $projectNumber) { + id + items(last: 100) { + nodes { + id + } + } + fields(first: 100) { + nodes { + id + name + settings + } + } + } + } + } + `, + { + organization: process.env.ORGANIZATION, + projectNumber: parseInt(process.env.PROJECT_NUMBER), + headers: { + authorization: `token ${process.env.TOKEN}`, + }, + } + ) + // Get the project ID - const projectID = data.organization.projectNext.id + const projectID = projectData.organization.projectNext.id // Get the IDs of the last 100 items on the board. // Until we have a way to check from a PR whether the PR is in a project, // this is how we (roughly) avoid overwriting PRs that are already on the board. // If we are overwriting items, query for more items. - const existingItemIDs = data.organization.projectNext.items.nodes.map((node) => node.id) + const existingItemIDs = projectData.organization.projectNext.items.nodes.map((node) => node.id) // Get the ID of the fields that we want to populate - const datePostedID = findFieldID('Date posted', data) - const reviewDueDateID = findFieldID('Review due date', data) - const statusID = findFieldID('Status', data) - const featureID = findFieldID('Feature', data) - const contributorTypeID = findFieldID('Contributor type', data) - const sizeTypeID = findFieldID('Size', data) - const authorID = findFieldID('Contributor', data) + const datePostedID = findFieldID('Date posted', projectData) + const reviewDueDateID = findFieldID('Review due date', projectData) + const statusID = findFieldID('Status', projectData) + const featureID = findFieldID('Feature', projectData) + const contributorTypeID = findFieldID('Contributor type', projectData) + const sizeTypeID = findFieldID('Size', projectData) + const authorID = findFieldID('Contributor', projectData) // Get the ID of the single select values that we want to set - const readyForReviewID = findSingleSelectID('Ready for review', 'Status', data) - const hubberTypeID = findSingleSelectID('Hubber or partner', 'Contributor type', data) - const docsMemberTypeID = findSingleSelectID('Docs team', 'Contributor type', data) + const readyForReviewID = findSingleSelectID('Ready for review', 'Status', projectData) + const hubberTypeID = findSingleSelectID('Hubber or partner', 'Contributor type', projectData) + const docsMemberTypeID = findSingleSelectID('Docs team', 'Contributor type', projectData) // Add the PRs to the project const itemIDs = await addItemsToProject(prIDs, projectID) diff --git a/.github/actions-scripts/projects.js b/.github/actions-scripts/projects.js index bf4b9a0bf6..86480f8bf5 100644 --- a/.github/actions-scripts/projects.js +++ b/.github/actions-scripts/projects.js @@ -114,6 +114,29 @@ export async function isDocsTeamMember(login) { return teamMembers.includes(login) } +// Given a GitHub login, returns a bool indicating +// whether the login is part of the GitHub org +export async function isGitHubOrgMember(login) { + const data = await graphql( + ` + query { + user(login: "${login}") { + organization(login: "github"){ + name + } + } + } + `, + { + headers: { + authorization: `token ${process.env.TOKEN}`, + }, + } + ) + + return Boolean(data.user.organization) +} + // Formats a date object into the required format for projects export function formatDateForProject(date) { return date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() @@ -246,6 +269,7 @@ export default { addItemsToProject, addItemToProject, isDocsTeamMember, + isGitHubOrgMember, findFieldID, findSingleSelectID, formatDateForProject, diff --git a/.github/actions-scripts/ready-for-docs-review.js b/.github/actions-scripts/ready-for-docs-review.js index 3271a60d3c..5158d3ed95 100644 --- a/.github/actions-scripts/ready-for-docs-review.js +++ b/.github/actions-scripts/ready-for-docs-review.js @@ -3,6 +3,7 @@ import { graphql } from '@octokit/graphql' import { addItemToProject, isDocsTeamMember, + isGitHubOrgMember, findFieldID, findSingleSelectID, generateUpdateProjectNextItemFieldMutation, @@ -178,9 +179,12 @@ async function run() { let contributorType if (await isDocsTeamMember(process.env.AUTHOR_LOGIN)) { contributorType = docsMemberTypeID + } else if (await isGitHubOrgMember(process.env.AUTHOR_LOGIN)) { + contributorType = hubberTypeID } else if (process.env.REPO === 'github/docs') { contributorType = osContributorTypeID } else { + // use hubber as the fallback so that the PR doesn't get lost on the board contributorType = hubberTypeID } diff --git a/.github/actions-scripts/staging-undeploy.js b/.github/actions-scripts/staging-undeploy.js deleted file mode 100755 index 5704008da8..0000000000 --- a/.github/actions-scripts/staging-undeploy.js +++ /dev/null @@ -1,50 +0,0 @@ -#!/usr/bin/env node - -import parsePrUrl from '../../script/deployment/parse-pr-url.js' -import getOctokit from '../../script/helpers/github.js' -import undeployFromStaging from '../../script/deployment/undeploy-from-staging.js' - -const { GITHUB_TOKEN, HEROKU_API_TOKEN } = process.env - -// Exit if GitHub Actions PAT is not found -if (!GITHUB_TOKEN) { - throw new Error('You must supply a GITHUB_TOKEN environment variable!') -} - -// Exit if Heroku API token is not found -if (!HEROKU_API_TOKEN) { - throw new Error('You must supply a HEROKU_API_TOKEN environment variable!') -} - -// This helper uses the `GITHUB_TOKEN` implicitly! -// We're using our usual version of Octokit vs. the provided `github` -// instance to avoid versioning discrepancies. -const octokit = getOctokit() - -const { RUN_ID, PR_URL } = process.env - -if (!RUN_ID) { - throw new Error('$RUN_ID not set') -} -if (!PR_URL) { - throw new Error('$PR_URL not set') -} - -const { owner, repo, pullNumber } = parsePrUrl(PR_URL) -if (!owner || !repo || !pullNumber) { - throw new Error( - `'pullRequestUrl' input must match URL format 'https://github.com/github/(docs|docs-internal)/pull/123' but was '${PR_URL}'` - ) -} - -const { data: pullRequest } = await octokit.pulls.get({ - owner, - repo, - pull_number: pullNumber, -}) - -await undeployFromStaging({ - octokit, - pullRequest: pullRequest, - runId: RUN_ID, -}) diff --git a/.github/allowed-actions.js b/.github/allowed-actions.js deleted file mode 100644 index 45c758426e..0000000000 --- a/.github/allowed-actions.js +++ /dev/null @@ -1,38 +0,0 @@ -// This is an AllowList of GitHub Actions that are approved for use in this project. -// If a new or existing workflow file is updated to use an action or action version not listed here, -// CI will fail and the action will need to be audited by the docs engineering team before it -// can be added it this list. - -export default [ - 'actions/cache@c64c572235d810460d0d6876e9c705ad5002b353', // v2.1.6 - 'actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579', // v2.4.0 - 'actions/github-script@2b34a689ec86a68d8ab9478298f91d5401337b7d', // v4.0.2 - 'actions/labeler@5f867a63be70efff62b767459b009290364495eb', // v2.2.0 - 'actions/setup-node@04c56d2f954f1e4c69436aa54cfef261a018f458', // v2.5.0 - 'actions/stale@cdf15f641adb27a71842045a94023bef6945e3aa', // v4.0.0 - 'actions/upload-artifact@27121b0bdffd731efa15d66772be8dc71245d074', // v2.2.4 - 'alex-page/github-project-automation-plus@bb266ff4dde9242060e2d5418e120a133586d488', // v0.8.1 - 'andymckay/labeler@e6c4322d0397f3240f0e7e30a33b5c5df2d39e90', // v1.0.4 - 'cschleiden/actions-linter@caffd707beda4fc6083926a3dff48444bc7c24aa', // uses github-actions-parser v0.23.0 - 'dawidd6/action-delete-branch@47743101a121ad657031e6704086271ca81b1911', // v3.0.2 - 'dawidd6/action-download-artifact@af92a8455a59214b7b932932f2662fdefbd78126', // v2.15.0 - 'dorny/paths-filter@eb75a1edc117d3756a18ef89958ee59f9500ba58', - 'trilom/file-changes-action@a6ca26c14274c33b15e6499323aac178af06ad4b', // v1.2.4 - 'github/codeql-action/analyze@v1', - 'github/codeql-action/init@v1', - 'juliangruber/approve-pull-request-action@c530832d4d346c597332e20e03605aa94fa150a8', - 'juliangruber/find-pull-request-action@db875662766249c049b2dcd85293892d61cb0b51', // v1.5.0 - 'juliangruber/read-file-action@e0a316da496006ffd19142f0fd594a1783f3b512', - 'lee-dohm/no-response@9bb0a4b5e6a45046f00353d5de7d90fb8bd773bb', - 'peter-evans/create-issue-from-file@b4f9ee0a9d4abbfc6986601d9b1a4f8f8e74c77e', - 'peter-evans/create-or-update-comment@5221bf4aa615e5c6e95bb142f9673a9c791be2cd', - 'peter-evans/create-pull-request@7380612b49221684fefa025244f2ef4008ae50ad', // v3.10.1 - 'peter-evans/find-comment@d2dae40ed151c634e4189471272b57e76ec19ba8', // v1.3.0 - 'rachmari/actions-add-new-issue-to-column@1a459ef92308ba7c9c9dc2fcdd72f232495574a9', - 'repo-sync/github-sync@3832fe8e2be32372e1b3970bbae8e7079edeec88', - 'repo-sync/pull-request@65194d8015be7624d231796ddee1cd52a5023cb3', // v2.6 - 'someimportantcompany/github-actions-slack-message@f8d28715e7b8a4717047d23f48c39827cacad340', // v1.2.2 - 'tjenkinson/gh-action-auto-merge-dependency-updates@c47f6255e06f36e84201ee940466e731ffa6e885', // v1.1.1 - 'Bhacaz/checkout-files@c8f01756bfd894ba746d5bf48205e19000b0742b', // v1.0.0 - 'EndBug/add-and-commit@2bdc0a61a03738a1d1bda24d566ad0dbe3083d87', -] diff --git a/.github/workflows/autoupdate-branch.yml b/.github/workflows/autoupdate-branch.yml index ba126fbf25..489c2e5d91 100644 --- a/.github/workflows/autoupdate-branch.yml +++ b/.github/workflows/autoupdate-branch.yml @@ -27,6 +27,12 @@ on: permissions: contents: read +# This allows a subsequently queued workflow run to take priority over +# previously queued runs but NOT interrupt currently executing runs +concurrency: + group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' + cancel-in-progress: false + jobs: autoupdate: if: github.repository == 'github/docs-internal' || github.repository == 'github/docs' diff --git a/.github/workflows/browser-test.yml b/.github/workflows/browser-test.yml index 5f42fbab5d..3a69a28d29 100644 --- a/.github/workflows/browser-test.yml +++ b/.github/workflows/browser-test.yml @@ -22,16 +22,20 @@ on: permissions: contents: read +# This allows a subsequently queued workflow run to interrupt previous runs +concurrency: + group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' + cancel-in-progress: true + jobs: build: runs-on: ubuntu-latest steps: - # Each of these ifs needs to be repeated at each step to make sure the required check still runs - # Even if if doesn't do anything - name: Checkout uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 with: lfs: true + - name: Checkout LFS objects run: git lfs checkout @@ -50,13 +54,13 @@ jobs: run: npm ci --include=optional - name: Cache nextjs build - uses: actions/cache@c64c572235d810460d0d6876e9c705ad5002b353 + uses: actions/cache@937d24475381cd9c75ae6db12cb4e79714b926ed with: path: .next/cache key: ${{ runner.os }}-nextjs-${{ hashFiles('package*.json') }} - name: Cache lib/redirects/.redirects-cache_en_ja.json - uses: actions/cache@c64c572235d810460d0d6876e9c705ad5002b353 + uses: actions/cache@937d24475381cd9c75ae6db12cb4e79714b926ed with: path: lib/redirects/.redirects-cache_en_ja.json key: ${{ runner.os }}-redirects-cache-${{ hashFiles('.github/workflows/browser-test.yml') }} diff --git a/.github/workflows/check-all-english-links.yml b/.github/workflows/check-all-english-links.yml index 5fd19b641c..d57081f53a 100644 --- a/.github/workflows/check-all-english-links.yml +++ b/.github/workflows/check-all-english-links.yml @@ -35,7 +35,7 @@ jobs: - name: npm ci run: npm ci - name: Cache nextjs build - uses: actions/cache@c64c572235d810460d0d6876e9c705ad5002b353 + uses: actions/cache@937d24475381cd9c75ae6db12cb4e79714b926ed with: path: .next/cache key: ${{ runner.os }}-nextjs-${{ hashFiles('package*.json') }} diff --git a/.github/workflows/code-lint.yml b/.github/workflows/code-lint.yml index dffadffb7d..b8a361b411 100644 --- a/.github/workflows/code-lint.yml +++ b/.github/workflows/code-lint.yml @@ -6,9 +6,6 @@ name: Lint code on: workflow_dispatch: - push: - branches: - - main pull_request: paths: - '**.js' @@ -27,6 +24,11 @@ on: permissions: contents: read +# This allows a subsequently queued workflow run to interrupt previous runs +concurrency: + group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' + cancel-in-progress: true + jobs: lint: runs-on: ubuntu-latest diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 8eeaceedbc..2838e9d428 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -20,14 +20,19 @@ permissions: contents: read security-events: write +# This allows a subsequently queued workflow run to interrupt previous runs +concurrency: + group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' + cancel-in-progress: true + jobs: build: if: github.repository == 'github/docs-internal' || github.repository == 'github/docs' runs-on: ubuntu-latest steps: - uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 - - uses: github/codeql-action/init@v1 + - uses: github/codeql-action/init@5f532563584d71fdef14ee64d17bafb34f751ce5 with: languages: javascript # comma separated list of values from {go, python, javascript, java, cpp, csharp} (not YET ruby, sorry!) - - uses: github/codeql-action/analyze@v1 + - uses: github/codeql-action/analyze@5f532563584d71fdef14ee64d17bafb34f751ce5 continue-on-error: true diff --git a/.github/workflows/content-changes-table-comment.yml b/.github/workflows/content-changes-table-comment.yml index 8ca2e3b084..326924bd59 100644 --- a/.github/workflows/content-changes-table-comment.yml +++ b/.github/workflows/content-changes-table-comment.yml @@ -7,12 +7,16 @@ name: Content Changes Table Comment on: workflow_dispatch: pull_request_target: - types: [opened, synchronize, reopened] permissions: contents: read pull-requests: write +# This allows a subsequently queued workflow run to interrupt previous runs +concurrency: + group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' + cancel-in-progress: true + jobs: PR-Preview-Links: if: github.event.pull_request.user.login != 'Octomerger' diff --git a/.github/workflows/create-translation-batch-pr.yml b/.github/workflows/create-translation-batch-pr.yml index 06a5b990e7..b9debd628d 100644 --- a/.github/workflows/create-translation-batch-pr.yml +++ b/.github/workflows/create-translation-batch-pr.yml @@ -166,6 +166,12 @@ jobs: script/i18n/report-reset-files.js --report-type=csv --language=${{ matrix.language }} --log-file=/tmp/batch.log > $csvFile git add -f $csvFile && git commit -m "Check in ${{ matrix.language }} CSV report" || echo "Nothing to commit" + - name: Close existing stale batches + uses: lee-dohm/close-matching-issues@e9e43aad2fa6f06a058cedfd8fb975fd93b56d8f + with: + token: ${{ secrets.OCTOMERGER_PAT_WITH_REPO_AND_WORKFLOW_SCOPE }} + query: 'type:pr label:translation-batch-${{ matrix.language }}' + - name: Create Pull Request env: GITHUB_TOKEN: ${{ secrets.DOCUBOT_REPO_PAT }} diff --git a/.github/workflows/crowdin-cleanup.yml b/.github/workflows/crowdin-cleanup.yml index 7552713ab6..d3752c6068 100644 --- a/.github/workflows/crowdin-cleanup.yml +++ b/.github/workflows/crowdin-cleanup.yml @@ -13,6 +13,11 @@ on: permissions: contents: write +# This allows a subsequently queued workflow run to interrupt previous runs +concurrency: + group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' + cancel-in-progress: true + jobs: homogenize_frontmatter: name: Homogenize frontmatter @@ -36,7 +41,7 @@ jobs: run: script/i18n/homogenize-frontmatter.js - name: Check in homogenized files - uses: EndBug/add-and-commit@2bdc0a61a03738a1d1bda24d566ad0dbe3083d87 + uses: EndBug/add-and-commit@8c12ff729a98cfbcd3fe38b49f55eceb98a5ec02 with: # The arguments for the `git add` command add: 'translations' diff --git a/.github/workflows/docs-review-collect.yml b/.github/workflows/docs-review-collect.yml index bab368fd10..f247247ffd 100644 --- a/.github/workflows/docs-review-collect.yml +++ b/.github/workflows/docs-review-collect.yml @@ -40,6 +40,3 @@ jobs: ORGANIZATION: 'github' REPO: 'github' REVIEWER: 'docs-reviewers' - # This is an educated guess of how many PRs are opened in a day on the github/github repo - # If we are missing PRs, either increase this number or increase the frequency at which this script is run - NUM_PRS: 100 diff --git a/.github/workflows/enterprise-dates.yml b/.github/workflows/enterprise-dates.yml index 158851106d..8b0dd68340 100644 --- a/.github/workflows/enterprise-dates.yml +++ b/.github/workflows/enterprise-dates.yml @@ -55,7 +55,7 @@ jobs: - name: Create pull request id: create-pull-request - uses: peter-evans/create-pull-request@7380612b49221684fefa025244f2ef4008ae50ad + uses: peter-evans/create-pull-request@dcd5fd746d53dd8de555c0f10bca6c35628be47a env: # Disable pre-commit hooks; they don't play nicely here HUSKY: '0' diff --git a/.github/workflows/enterprise-release-sync-search-index.yml b/.github/workflows/enterprise-release-sync-search-index.yml index d426432e41..ea9310b131 100644 --- a/.github/workflows/enterprise-release-sync-search-index.yml +++ b/.github/workflows/enterprise-release-sync-search-index.yml @@ -29,6 +29,11 @@ on: permissions: contents: write +# This allows a subsequently queued workflow run to interrupt previous runs +concurrency: + group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' + cancel-in-progress: true + # This workflow requires a label in the format `sync-english-index-for-` jobs: updateIndices: @@ -58,7 +63,7 @@ jobs: run: $GITHUB_WORKSPACE/.github/actions-scripts/enterprise-search-label.js - name: Cache nextjs build - uses: actions/cache@c64c572235d810460d0d6876e9c705ad5002b353 + uses: actions/cache@937d24475381cd9c75ae6db12cb4e79714b926ed with: path: .next/cache key: ${{ runner.os }}-nextjs-${{ hashFiles('package*.json') }} diff --git a/.github/workflows/hubber-contribution-help.yml b/.github/workflows/hubber-contribution-help.yml index 83a3ca6c1e..8f84d851e8 100644 --- a/.github/workflows/hubber-contribution-help.yml +++ b/.github/workflows/hubber-contribution-help.yml @@ -5,7 +5,7 @@ name: Hubber contribution help # **Who does it impact**: docs-internal contributors on: - pull_request: + pull_request_target: types: - opened paths: diff --git a/.github/workflows/link-check-all.yml b/.github/workflows/link-check-all.yml index 53cdbff046..77ed0c2736 100644 --- a/.github/workflows/link-check-all.yml +++ b/.github/workflows/link-check-all.yml @@ -16,6 +16,11 @@ permissions: # Needed for the 'trilom/file-changes-action' action pull-requests: read +# This allows a subsequently queued workflow run to interrupt previous runs +concurrency: + group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' + cancel-in-progress: true + jobs: build: runs-on: ${{ fromJSON('["ubuntu-latest", "self-hosted"]')[github.repository == 'github/docs-internal'] }} @@ -41,7 +46,7 @@ jobs: output: ' ' - name: Insight into changed files run: | - echo ${{ steps.get_diff_files.outputs.files }} + echo "${{ steps.get_diff_files.outputs.files }}" - name: Link check (warnings, changed files) run: | @@ -51,11 +56,10 @@ jobs: --check-anchors \ --check-images \ --verbose \ - ${{ steps.get_diff_files.outputs.files }} + "${{ steps.get_diff_files.outputs.files }}" - name: Link check (critical, all files) run: | - ./script/rendered-content-link-checker.mjs \ --language en \ --exit \ diff --git a/.github/workflows/link-check-dotcom.yml b/.github/workflows/link-check-dotcom.yml index 09403d7cc1..48abace97f 100644 --- a/.github/workflows/link-check-dotcom.yml +++ b/.github/workflows/link-check-dotcom.yml @@ -11,6 +11,11 @@ on: permissions: contents: read +# This allows a subsequently queued workflow run to interrupt previous runs +concurrency: + group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' + cancel-in-progress: true + jobs: build: runs-on: ${{ fromJSON('["ubuntu-latest", "self-hosted"]')[github.repository == 'github/docs-internal'] }} @@ -30,7 +35,7 @@ jobs: run: npm ci - name: Cache nextjs build - uses: actions/cache@c64c572235d810460d0d6876e9c705ad5002b353 + uses: actions/cache@937d24475381cd9c75ae6db12cb4e79714b926ed with: path: .next/cache key: ${{ runner.os }}-nextjs-${{ hashFiles('package*.json') }} diff --git a/.github/workflows/link-check-ghae.yml b/.github/workflows/link-check-ghae.yml index 384284a4cf..44d93d8471 100644 --- a/.github/workflows/link-check-ghae.yml +++ b/.github/workflows/link-check-ghae.yml @@ -11,6 +11,11 @@ on: permissions: contents: read +# This allows a subsequently queued workflow run to interrupt previous runs +concurrency: + group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' + cancel-in-progress: true + jobs: build: runs-on: ${{ fromJSON('["ubuntu-latest", "self-hosted"]')[github.repository == 'github/docs-internal'] }} @@ -30,7 +35,7 @@ jobs: run: npm ci - name: Cache nextjs build - uses: actions/cache@c64c572235d810460d0d6876e9c705ad5002b353 + uses: actions/cache@937d24475381cd9c75ae6db12cb4e79714b926ed with: path: .next/cache key: ${{ runner.os }}-nextjs-${{ hashFiles('package*.json') }} diff --git a/.github/workflows/link-check-ghec.yml b/.github/workflows/link-check-ghec.yml index 36449f5bea..01a77c398d 100644 --- a/.github/workflows/link-check-ghec.yml +++ b/.github/workflows/link-check-ghec.yml @@ -11,6 +11,11 @@ on: permissions: contents: read +# This allows a subsequently queued workflow run to interrupt previous runs +concurrency: + group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' + cancel-in-progress: true + jobs: build: runs-on: ${{ fromJSON('["ubuntu-latest", "self-hosted"]')[github.repository == 'github/docs-internal'] }} @@ -28,7 +33,7 @@ jobs: run: npm ci - name: Cache nextjs build - uses: actions/cache@c64c572235d810460d0d6876e9c705ad5002b353 + uses: actions/cache@937d24475381cd9c75ae6db12cb4e79714b926ed with: path: .next/cache key: ${{ runner.os }}-nextjs-${{ hashFiles('package*.json') }} diff --git a/.github/workflows/link-check-ghes.yml b/.github/workflows/link-check-ghes.yml index c0893d7275..2e0b46c4b5 100644 --- a/.github/workflows/link-check-ghes.yml +++ b/.github/workflows/link-check-ghes.yml @@ -11,6 +11,11 @@ on: permissions: contents: read +# This allows a subsequently queued workflow run to interrupt previous runs +concurrency: + group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' + cancel-in-progress: true + jobs: build: runs-on: ${{ fromJSON('["ubuntu-latest", "self-hosted"]')[github.repository == 'github/docs-internal'] }} @@ -30,7 +35,7 @@ jobs: run: npm ci - name: Cache nextjs build - uses: actions/cache@c64c572235d810460d0d6876e9c705ad5002b353 + uses: actions/cache@937d24475381cd9c75ae6db12cb4e79714b926ed with: path: .next/cache key: ${{ runner.os }}-nextjs-${{ hashFiles('package*.json') }} diff --git a/.github/workflows/merged-notification.yml b/.github/workflows/merged-notification.yml index 828a864c1d..8604b4223b 100644 --- a/.github/workflows/merged-notification.yml +++ b/.github/workflows/merged-notification.yml @@ -11,6 +11,7 @@ on: permissions: issues: write + pull-requests: write jobs: comment: diff --git a/.github/workflows/openapi-decorate.yml b/.github/workflows/openapi-decorate.yml index bd775277d6..f909e6fbb6 100644 --- a/.github/workflows/openapi-decorate.yml +++ b/.github/workflows/openapi-decorate.yml @@ -11,6 +11,11 @@ permissions: contents: write pull-requests: write +# This allows a subsequently queued workflow run to interrupt previous runs +concurrency: + group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' + cancel-in-progress: true + jobs: generate-decorated-files: if: >- @@ -41,7 +46,7 @@ jobs: run: script/rest/update-files.js --decorate-only - name: Check in the decorated files - uses: EndBug/add-and-commit@2bdc0a61a03738a1d1bda24d566ad0dbe3083d87 + uses: EndBug/add-and-commit@8c12ff729a98cfbcd3fe38b49f55eceb98a5ec02 with: # The arguments for the `git add` command add: 'lib/rest/static/decorated' diff --git a/.github/workflows/openapi-schema-check.yml b/.github/workflows/openapi-schema-check.yml index 01dd710a78..fafc3a74fe 100644 --- a/.github/workflows/openapi-schema-check.yml +++ b/.github/workflows/openapi-schema-check.yml @@ -26,6 +26,11 @@ on: permissions: contents: read +# This allows a subsequently queued workflow run to interrupt previous runs +concurrency: + group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' + cancel-in-progress: true + jobs: check-schema-versions: if: ${{ github.repository == 'github/docs-internal' }} diff --git a/.github/workflows/orphaned-assets-check.yml b/.github/workflows/orphaned-assets-check.yml new file mode 100644 index 0000000000..d47c6da5ad --- /dev/null +++ b/.github/workflows/orphaned-assets-check.yml @@ -0,0 +1,30 @@ +name: 'Orphaned assets check' + +# **What it does**: Checks that there are no files in ./assets/ that aren't mentioned in any source file. +# **Why we have it**: To avoid orphans into the repo. +# **Who does it impact**: Docs content. + +on: + pull_request: + +permissions: + contents: read + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 + + - name: Setup node + uses: actions/setup-node@04c56d2f954f1e4c69436aa54cfef261a018f458 + with: + node-version: 16.13.x + cache: npm + + - name: Install + run: npm ci + + - name: Check for orphaned assets + run: ./script/find-orphaned-assets.mjs --verbose --exit diff --git a/.github/workflows/pa11y.yml b/.github/workflows/pa11y.yml index 5313c7b677..cc2c61ac8c 100644 --- a/.github/workflows/pa11y.yml +++ b/.github/workflows/pa11y.yml @@ -30,7 +30,7 @@ jobs: run: npm ci --include=optional - name: Cache nextjs build - uses: actions/cache@c64c572235d810460d0d6876e9c705ad5002b353 + uses: actions/cache@937d24475381cd9c75ae6db12cb4e79714b926ed with: path: .next/cache key: ${{ runner.os }}-nextjs-${{ hashFiles('package*.json') }} diff --git a/.github/workflows/package-lock-lint.yml b/.github/workflows/package-lock-lint.yml index b5967c2c41..cf800fc55a 100644 --- a/.github/workflows/package-lock-lint.yml +++ b/.github/workflows/package-lock-lint.yml @@ -14,6 +14,11 @@ on: permissions: contents: read +# This allows a subsequently queued workflow run to interrupt previous runs +concurrency: + group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' + cancel-in-progress: true + jobs: lint: runs-on: ubuntu-latest diff --git a/.github/workflows/prod-build-deploy-azure.yml b/.github/workflows/prod-build-deploy-azure.yml new file mode 100644 index 0000000000..d510a37d2f --- /dev/null +++ b/.github/workflows/prod-build-deploy-azure.yml @@ -0,0 +1,90 @@ +name: Production (Azure) - Build and Deploy + +# **What it does**: Builds and deploys the default branch to production +# **Why we have it**: To enable us to deploy the latest to production whenever necessary rather than relying on PR merges. +# **Who does it impact**: All contributors. + +on: + push: + branches: + - main + workflow_dispatch: + +permissions: + contents: read + deployments: write + +# This allows a subsequently queued workflow run to take priority over +# previously queued runs but NOT interrupt currently executing runs +concurrency: + group: '${{ github.workflow }}' + cancel-in-progress: false + +jobs: + build-and-deploy: + if: ${{ github.repository == 'github/docs-internal' }} + runs-on: ubuntu-latest + timeout-minutes: 15 + env: + IMAGE_TAG_BASE: ${{ secrets.PROD_REGISTRY_SERVER }}/${{ github.repository }} + + steps: + - name: 'Docker login' + uses: azure/docker-login@81744f9799e7eaa418697cb168452a2882ae844a + with: + login-server: ${{ secrets.PROD_REGISTRY_SERVER }} + username: ${{ secrets.PROD_REGISTRY_USERNAME }} + password: ${{ secrets.PROD_REGISTRY_PASSWORD }} + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@94ab11c41e45d028884a99163086648e898eed25 + + - name: Check out repo + uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 + with: + ref: ${{ github.sha }} + # To prevent issues with cloning early access content later + persist-credentials: 'false' + lfs: 'true' + + - name: Check out LFS objects + run: git lfs checkout + + - name: Setup node + uses: actions/setup-node@04c56d2f954f1e4c69436aa54cfef261a018f458 + with: + node-version: 16.13.x + cache: npm + + - name: Clone early access + run: npm install dotenv && node script/early-access/clone-for-build.js + env: + DOCUBOT_REPO_PAT: ${{ secrets.DOCUBOT_REPO_PAT }} + GIT_BRANCH: main + + - name: 'Build and push image' + uses: docker/build-push-action@a66e35b9cbcf4ad0ea91ffcaf7bbad63ad9e0229 + with: + context: . + push: true + target: 'production_early_access' + tags: ${{ env.IMAGE_TAG_BASE }}:${{ github.sha }}, ${{ env.IMAGE_TAG_BASE }}:production + cache-from: type=gha + cache-to: type=gha,mode=max + + # TODO - enable this when we disable the other production deploy + # - name: Purge Fastly edge cache + # env: + # FASTLY_TOKEN: ${{ secrets.FASTLY_TOKEN }} + # FASTLY_SERVICE_ID: ${{ secrets.FASTLY_SERVICE_ID }} + # FASTLY_SURROGATE_KEY: 'every-deployment' + # run: npm install got && .github/actions-scripts/purge-fastly-edge-cache.js + + - name: Send Slack notification if workflow failed + uses: someimportantcompany/github-actions-slack-message@f8d28715e7b8a4717047d23f48c39827cacad340 + if: ${{ failure() }} + with: + channel: ${{ secrets.DOCS_ALERTS_SLACK_CHANNEL_ID }} + bot-token: ${{ secrets.SLACK_DOCS_BOT_TOKEN }} + color: failure + text: Production deployment (Azure) failed at commit ${{ github.sha }}. See https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} diff --git a/.github/workflows/prod-build-deploy.yml b/.github/workflows/prod-build-deploy.yml index 98101a18a8..9be3302f8b 100644 --- a/.github/workflows/prod-build-deploy.yml +++ b/.github/workflows/prod-build-deploy.yml @@ -14,9 +14,11 @@ permissions: contents: read deployments: write +# This allows a subsequently queued workflow run to take priority over +# previously queued runs but NOT interrupt currently executing runs concurrency: group: '${{ github.workflow }}' - cancel-in-progress: true + cancel-in-progress: false jobs: build-and-deploy: @@ -53,7 +55,7 @@ jobs: GIT_BRANCH: main - name: Cache nextjs build - uses: actions/cache@c64c572235d810460d0d6876e9c705ad5002b353 + uses: actions/cache@937d24475381cd9c75ae6db12cb4e79714b926ed with: path: .next/cache key: ${{ runner.os }}-nextjs-${{ hashFiles('package*.json') }} diff --git a/.github/workflows/ready-for-doc-review.yml b/.github/workflows/ready-for-doc-review.yml index 782bac10a5..fb8652b997 100644 --- a/.github/workflows/ready-for-doc-review.yml +++ b/.github/workflows/ready-for-doc-review.yml @@ -5,7 +5,7 @@ name: Ready for docs-content review # **Who does it impact**: Writers working in the docs-internal repository on: - pull_request: + pull_request_target: types: [labeled] permissions: diff --git a/.github/workflows/remove-stale-staging-resources.yml b/.github/workflows/remove-stale-staging-resources.yml index 6de4d44c06..180db6c6bb 100644 --- a/.github/workflows/remove-stale-staging-resources.yml +++ b/.github/workflows/remove-stale-staging-resources.yml @@ -4,8 +4,9 @@ name: Remove stale staging resources # This cleans up any rogue staging applications and environments that outlasted # the closure of their corresponding pull requests. # **Why we have it**: -# Staging applications and environments sometimes fail to be destroyed when -# their corresponding pull request is closed or merged. +# Staging applications and environments should be destroyed after their +# corresponding pull request is closed or merged, especially to save money spent +# on Heroku App staging deployments for closed PRs. # **Who does it impact**: # Anyone with a closed, spammy, or deleted pull request in docs or docs-internal. @@ -14,8 +15,10 @@ on: - cron: '15,45 * * * *' # every thirty minutes at :15 and :45 permissions: + actions: read contents: read - pull-requests: read + deployments: write + pull-requests: write jobs: remove_stale_staging_apps: @@ -60,5 +63,7 @@ jobs: - name: Run script run: script/remove-stale-staging-envs.js env: - GITHUB_TOKEN: ${{ secrets.DOCS_BOT_FR }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + ELEVATED_TOKEN: ${{ secrets.DOCS_BOT_FR }} REPO: ${{ github.repository }} + RUN_ID: ${{ github.run_id }} diff --git a/.github/workflows/remove-unused-assets.yml b/.github/workflows/remove-unused-assets.yml index 261d8a6114..39c70ea3a7 100644 --- a/.github/workflows/remove-unused-assets.yml +++ b/.github/workflows/remove-unused-assets.yml @@ -44,7 +44,7 @@ jobs: - name: Remove script results file run: rm ./results.md - name: Create pull request - uses: peter-evans/create-pull-request@7380612b49221684fefa025244f2ef4008ae50ad + uses: peter-evans/create-pull-request@dcd5fd746d53dd8de555c0f10bca6c35628be47a env: # Disable pre-commit hooks; they don't play nicely here HUSKY: '0' diff --git a/.github/workflows/repo-sync.yml b/.github/workflows/repo-sync.yml index 9432ca1eec..1bcda9684a 100644 --- a/.github/workflows/repo-sync.yml +++ b/.github/workflows/repo-sync.yml @@ -113,7 +113,6 @@ jobs: uses: repo-sync/github-sync@3832fe8e2be32372e1b3970bbae8e7079edeec88 env: GITHUB_TOKEN: ${{ secrets.OCTOMERGER_PAT_WITH_REPO_AND_WORKFLOW_SCOPE }} - CI: true with: source_repo: ${{ secrets.SOURCE_REPO }} # https://${access_token}@github.com/github/the-other-repo.git source_branch: main @@ -121,7 +120,6 @@ jobs: github_token: ${{ secrets.OCTOMERGER_PAT_WITH_REPO_AND_WORKFLOW_SCOPE }} - name: Create pull request - id: create-pull uses: repo-sync/pull-request@65194d8015be7624d231796ddee1cd52a5023cb3 env: GITHUB_TOKEN: ${{ secrets.OCTOMERGER_PAT_WITH_REPO_AND_WORKFLOW_SCOPE }} @@ -146,13 +144,6 @@ jobs: author: Octomerger state: open - - name: Approve pull request - if: ${{ steps.find-pull-request.outputs.number }} - uses: juliangruber/approve-pull-request-action@c530832d4d346c597332e20e03605aa94fa150a8 - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - number: ${{ steps.find-pull-request.outputs.number }} - # Because we get far too much spam ;_; - name: Lock conversations if: ${{ github.repository == 'github/docs' && steps.find-pull-request.outputs.number }} @@ -221,8 +212,40 @@ jobs: console.log(`Branch is already up-to-date`) } - - name: Enable GitHub auto-merge + - name: Check pull request file count after updating if: ${{ steps.find-pull-request.outputs.number }} + uses: actions/github-script@2b34a689ec86a68d8ab9478298f91d5401337b7d + id: pr-files + env: + PR_NUMBER: ${{ steps.find-pull-request.outputs.number }} + with: + github-token: ${{ secrets.OCTOMERGER_PAT_WITH_REPO_AND_WORKFLOW_SCOPE }} + result-encoding: string + script: | + const { data: prFiles } = await github.pulls.listFiles({ + ...context.repo, + pull_number: process.env.PR_NUMBER, + }) + core.setOutput('count', (prFiles && prFiles.length || 0).toString()) + + # Sometimes after updating the branch, there aren't any remaining files changed. + # If not, we should close the PR instead of merging it and triggering deployments. + - name: Close the pull request if no files remain + if: ${{ steps.find-pull-request.outputs.number && steps.pr-files.outputs.count == '0' }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + gh pr close ${{ steps.find-pull-request.outputs.number }} --repo $GITHUB_REPOSITORY + + - name: Approve pull request + if: ${{ steps.find-pull-request.outputs.number && steps.pr-files.outputs.count != '0' }} + uses: juliangruber/approve-pull-request-action@c530832d4d346c597332e20e03605aa94fa150a8 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + number: ${{ steps.find-pull-request.outputs.number }} + + - name: Enable GitHub auto-merge + if: ${{ steps.find-pull-request.outputs.number && steps.pr-files.outputs.count != '0' }} env: GITHUB_TOKEN: ${{ secrets.OCTOMERGER_PAT_WITH_REPO_AND_WORKFLOW_SCOPE }} AUTOMERGE_PR_NUMBER: ${{ steps.find-pull-request.outputs.number }} diff --git a/.github/workflows/staging-build-and-deploy-pr.yml b/.github/workflows/staging-build-and-deploy-pr.yml index 1de1fb0503..ed2b58a1e4 100644 --- a/.github/workflows/staging-build-and-deploy-pr.yml +++ b/.github/workflows/staging-build-and-deploy-pr.yml @@ -6,16 +6,16 @@ name: Staging - Build and Deploy PR (fast and private-only) # This whole workflow is only guaranteed to be secure in the *private # repo* and because we repo-sync these files over the to the public one, -# IT'S CRUCIALLY IMPORTANT THAT THIS WORKFLOW IS ONLY ENABLED IN docs-internal! +# IT'S IMPORTANT THAT THIS WORKFLOW IS ONLY ENABLED IN docs-internal! on: - # Ideally, we'd like to use 'pull_request' because we can more easily - # test changes to this workflow without relying on merges to 'main'. - # But this is guaranteed to be safer and won't have the problem of - # necessary secrets not being available. - # Perhaps some day when we're confident this workflow will always - # work in a regular PR, we can switch to that. - pull_request_target: + # The advantage of 'pull_request' over 'pull_request_target' is that we + # can make changes to this file and test them in a pull request, instead + # of relying on landing it in 'main' first. + # From a security point of view, its arguably safer this way because + # unlike 'pull_request_target', these only have secrets if the pull + # request creator has permission to access secrets. + pull_request: permissions: actions: read @@ -24,12 +24,9 @@ permissions: pull-requests: read statuses: write -# This allows one Build workflow run to interrupt another -# These are different from the concurrency in that here it checks if the -# whole workflow runs again. The "inner concurrency" is used for -# undeployments to cleaning up resources. +# This allows a subsequently queued workflow run to interrupt previous runs concurrency: - group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label }}' + group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' cancel-in-progress: true jobs: @@ -44,11 +41,7 @@ jobs: runs-on: self-hosted timeout-minutes: 5 - # This interrupts Build, Deploy, and pre-write Undeploy workflow runs in - # progress for this PR branch. - concurrency: - group: 'PR Staging @ ${{ github.event.pull_request.head.label }}' - cancel-in-progress: true + steps: - name: Check out repo uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 @@ -71,7 +64,7 @@ jobs: run: npm ci - name: Cache nextjs build - uses: actions/cache@c64c572235d810460d0d6876e9c705ad5002b353 + uses: actions/cache@937d24475381cd9c75ae6db12cb4e79714b926ed with: path: .next/cache key: ${{ runner.os }}-nextjs-${{ hashFiles('package*.json') }} @@ -85,15 +78,6 @@ jobs: DOCUBOT_REPO_PAT: ${{ secrets.DOCUBOT_REPO_PAT }} GIT_BRANCH: ${{ github.event.pull_request.head.sha }} - - name: Check that the PR isn't blocking deploys - # We can't use ${{...}} on this if statement because of this bug - # https://github.com/cschleiden/actions-linter/issues/114 - if: github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'automated-block-deploy') - run: | - echo "The PR appears to have the label 'automated-block-deploy'" - echo "Will not proceed to deploy the PR." - exit 2 - - name: Create a Heroku build source id: build-source uses: actions/github-script@2b34a689ec86a68d8ab9478298f91d5401337b7d diff --git a/.github/workflows/staging-build-pr.yml b/.github/workflows/staging-build-pr.yml index 4be4fb1b23..75c9c27844 100644 --- a/.github/workflows/staging-build-pr.yml +++ b/.github/workflows/staging-build-pr.yml @@ -8,17 +8,16 @@ name: Staging - Build PR on: pull_request: - types: - - opened - - reopened - - synchronize permissions: contents: read -# This allows one Build workflow run to interrupt another +# This allows a subsequently queued workflow run to interrupt previous runs +# These are different from the concurrency in that here it checks if the +# whole workflow runs again. The "inner concurrency" is used for +# undeployments to cleaning up resources. concurrency: - group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label }}' + group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' cancel-in-progress: true jobs: @@ -28,10 +27,9 @@ jobs: runs-on: ${{ fromJSON('["ubuntu-latest", "self-hosted"]')[github.repository == 'github/docs-internal'] }} timeout-minutes: 5 - # This interrupts Build, Deploy, and pre-write Undeploy workflow runs in - # progress for this PR branch. + # This interrupts Build and Deploy workflow runs in progress for this PR branch. concurrency: - group: 'PR Staging @ ${{ github.event.pull_request.head.label }}' + group: 'PR Staging @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' cancel-in-progress: true steps: - name: Check out repo @@ -84,7 +82,7 @@ jobs: run: npm ci - name: Cache nextjs build - uses: actions/cache@c64c572235d810460d0d6876e9c705ad5002b353 + uses: actions/cache@937d24475381cd9c75ae6db12cb4e79714b926ed with: path: .next/cache key: ${{ runner.os }}-nextjs-${{ hashFiles('package*.json') }} @@ -131,7 +129,7 @@ jobs: # We are not willing to trust the rest (e.g. script/) for the remainder # of the deployment process. - name: Upload build artifact - uses: actions/upload-artifact@27121b0bdffd731efa15d66772be8dc71245d074 + uses: actions/upload-artifact@82c141cc518b40d92cc801eee768e7aafc9c2fa2 with: name: pr_build path: app.tar diff --git a/.github/workflows/staging-deploy-pr.yml b/.github/workflows/staging-deploy-pr.yml index f4c35296e7..85ba8698ed 100644 --- a/.github/workflows/staging-deploy-pr.yml +++ b/.github/workflows/staging-deploy-pr.yml @@ -198,68 +198,12 @@ jobs: color: failure text: Staging build failed for PR ${{ needs.pr-metadata.outputs.url }} at commit ${{ needs.pr-metadata.outputs.head_sha }}. See ${{ env.BUILD_ACTIONS_RUN_LOG }}. This run was ${{ env.ACTIONS_RUN_LOG }}. - check-pr-before-prepare: - needs: pr-metadata - if: >- - ${{ - needs.pr-metadata.outputs.number != '0' && - github.event.workflow_run.conclusion == 'success' - }} - runs-on: ubuntu-latest - # This timeout should match or exceed the value of the timeout for Undeploy - timeout-minutes: 5 - # This interrupts Build, Deploy, and pre-write Undeploy workflow runs in - # progress for this PR branch. - concurrency: - group: 'PR Staging @ ${{ needs.pr-metadata.outputs.head_label }}' - cancel-in-progress: true - outputs: - pull_request_state: ${{ steps.check-pr.outputs.state }} - steps: - - name: Check pull request state - id: check-pr - uses: actions/github-script@2b34a689ec86a68d8ab9478298f91d5401337b7d - env: - PR_NUMBER: ${{ needs.pr-metadata.outputs.number }} - with: - script: | - // Equivalent of the 'await-sleep' module without the install - const sleep = ms => new Promise(resolve => setTimeout(resolve, ms)) - - const blockingLabel = 'automated-block-deploy' - const { owner, repo } = context.repo - const startTime = Date.now() - - let pullRequest = {} - let blocked = true - - // Keep polling the PR until the blocking label has been removed - while (blocked) { - const { data: pr } = await github.pulls.get({ - owner, - repo, - pull_number: process.env.PR_NUMBER - }) - - blocked = pr.labels.some(({ name }) => name === blockingLabel) - if (blocked) { - console.warn(`WARNING! PR currently has blocking label "${blockingLabel}" (after ${Date.now() - startTime} ms). Will check again soon...`) - await sleep(15000) // Wait 15 seconds and check again - } else { - console.log(`PR was unblocked (after ${Date.now() - startTime} ms)!`) - pullRequest = pr - } - } - - core.setOutput('state', pullRequest.state) - prepare-for-deploy: - needs: [pr-metadata, check-pr-before-prepare] - if: ${{ needs.check-pr-before-prepare.outputs.pull_request_state == 'open' }} + needs: pr-metadata + if: ${{ needs.pr-metadata.outputs.state == 'open' }} runs-on: ubuntu-latest timeout-minutes: 5 - # This interrupts Build, Deploy, and pre-write Undeploy workflow runs in - # progress for this PR branch. + # This interrupts Build and Deploy workflow runs in progress for this PR branch. concurrency: group: 'PR Staging @ ${{ needs.pr-metadata.outputs.head_label }}' cancel-in-progress: true @@ -395,8 +339,7 @@ jobs: needs: [pr-metadata, prepare-for-deploy] runs-on: ubuntu-latest timeout-minutes: 1 - # This interrupts Build, Deploy, and pre-write Undeploy workflow runs in - # progress for this PR branch. + # This interrupts Build and Deploy workflow runs in progress for this PR branch. concurrency: group: 'PR Staging @ ${{ needs.pr-metadata.outputs.head_label }}' cancel-in-progress: true @@ -423,8 +366,7 @@ jobs: if: ${{ needs.check-pr-before-deploy.outputs.pull_request_state == 'open' }} runs-on: ubuntu-latest timeout-minutes: 10 - # This interrupts Build, Deploy, and pre-write Undeploy workflow runs in - # progress for this PR branch. + # This interrupts Build and Deploy workflow runs in progress for this PR branch. concurrency: group: 'PR Staging @ ${{ needs.pr-metadata.outputs.head_label }}' cancel-in-progress: true diff --git a/.github/workflows/staging-undeploy-pr.yml b/.github/workflows/staging-undeploy-pr.yml deleted file mode 100644 index 79be38213c..0000000000 --- a/.github/workflows/staging-undeploy-pr.yml +++ /dev/null @@ -1,93 +0,0 @@ -name: Staging - Undeploy PR - -# **What it does**: To undeploy PRs from a Heroku staging environment, i.e. destroy the Heroku App. -# **Why we have it**: To save money spent on deployments for closed PRs. -# **Who does it impact**: All contributors. - -on: - pull_request_target: - types: - - closed - -permissions: - contents: read - deployments: write - pull-requests: write - -# This prevents one Undeploy workflow run from interrupting another -concurrency: - group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label }}' - cancel-in-progress: false - -jobs: - debug: - runs-on: ubuntu-latest - steps: - - name: Dump full context for debugging - env: - GITHUB_CONTEXT: ${{ toJSON(github) }} - run: echo "$GITHUB_CONTEXT" - - cancel-jobs-before-undeploy: - if: ${{ github.repository == 'github/docs-internal' || github.repository == 'github/docs' }} - runs-on: ubuntu-latest - # This interrupts Build and Deploy workflow runs in progress for this PR - # branch. However, it does so with an intentionally short, independent job - # so that the following `undeploy` job cannot be cancelled once started! - concurrency: - group: 'PR Staging @ ${{ github.event.pull_request.head.label }}' - cancel-in-progress: true - steps: - - name: Cancelling other deployments via concurrency configuration - run: | - echo 'Cancelling other deployment runs (if any)...' - - undeploy: - needs: cancel-jobs-before-undeploy - if: ${{ github.repository == 'github/docs-internal' || github.repository == 'github/docs' }} - runs-on: ubuntu-latest - timeout-minutes: 5 - # IMPORTANT: Intentionally OMIT a `concurrency` configuration from this job! - steps: - - name: Add a label to the PR to block deployment during undeployment - uses: andymckay/labeler@e6c4322d0397f3240f0e7e30a33b5c5df2d39e90 - with: - add-labels: 'automated-block-deploy' - - - name: Check out repo's default branch - uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 - with: - # For enhanced security: https://securitylab.github.com/research/github-actions-preventing-pwn-requests/ - persist-credentials: 'false' - - - name: Setup node - uses: actions/setup-node@04c56d2f954f1e4c69436aa54cfef261a018f458 - with: - node-version: 16.13.x - cache: npm - - - name: Install dependencies - run: npm ci - - - name: Undeploy - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - HEROKU_API_TOKEN: ${{ secrets.HEROKU_API_TOKEN }} - RUN_ID: ${{ github.run_id }} - PR_URL: ${{ github.event.pull_request.html_url }} - run: .github/actions-scripts/staging-undeploy.js - - - if: ${{ always() }} - name: Remove the label from the PR to unblock deployment - uses: andymckay/labeler@e6c4322d0397f3240f0e7e30a33b5c5df2d39e90 - with: - remove-labels: 'automated-block-deploy' - - - name: Send Slack notification if workflow failed - uses: someimportantcompany/github-actions-slack-message@f8d28715e7b8a4717047d23f48c39827cacad340 - if: ${{ failure() }} - with: - channel: ${{ secrets.DOCS_STAGING_DEPLOYMENT_FAILURES_SLACK_CHANNEL_ID }} - bot-token: ${{ secrets.SLACK_DOCS_BOT_TOKEN }} - color: failure - text: Staging undeployment failed for PR ${{ github.event.pull_request.html_url }} at commit ${{ github.head_sha }}. See https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}. diff --git a/.github/workflows/sync-search-indices.yml b/.github/workflows/sync-search-indices.yml index 88c2de8133..b02519c3f6 100644 --- a/.github/workflows/sync-search-indices.yml +++ b/.github/workflows/sync-search-indices.yml @@ -65,7 +65,7 @@ jobs: run: npm ci - name: Cache nextjs build - uses: actions/cache@c64c572235d810460d0d6876e9c705ad5002b353 + uses: actions/cache@937d24475381cd9c75ae6db12cb4e79714b926ed with: path: .next/cache key: ${{ runner.os }}-nextjs-${{ hashFiles('package*.json') }} diff --git a/.github/workflows/sync-search-pr.yml b/.github/workflows/sync-search-pr.yml index 41b2cc0145..346f3e5fce 100644 --- a/.github/workflows/sync-search-pr.yml +++ b/.github/workflows/sync-search-pr.yml @@ -16,6 +16,11 @@ on: permissions: contents: read +# This allows a subsequently queued workflow run to interrupt previous runs +concurrency: + group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' + cancel-in-progress: true + jobs: lint: runs-on: ubuntu-latest @@ -33,7 +38,7 @@ jobs: run: npm ci - name: Cache nextjs build - uses: actions/cache@c64c572235d810460d0d6876e9c705ad5002b353 + uses: actions/cache@937d24475381cd9c75ae6db12cb4e79714b926ed with: path: .next/cache key: ${{ runner.os }}-nextjs-${{ hashFiles('package*.json') }} diff --git a/.github/workflows/test-windows.yml b/.github/workflows/test-windows.yml index 969b0c61e6..db21f22d85 100644 --- a/.github/workflows/test-windows.yml +++ b/.github/workflows/test-windows.yml @@ -15,8 +15,10 @@ on: permissions: contents: read -env: - CI: true +# This allows a subsequently queued workflow run to interrupt previous runs +concurrency: + group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' + cancel-in-progress: true jobs: test: @@ -54,7 +56,7 @@ jobs: run: npm ci - name: Cache nextjs build - uses: actions/cache@c64c572235d810460d0d6876e9c705ad5002b353 + uses: actions/cache@937d24475381cd9c75ae6db12cb4e79714b926ed with: path: .next/cache key: ${{ runner.os }}-nextjs-${{ hashFiles('package*.json') }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c3c3198712..21872d29c0 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -15,8 +15,10 @@ permissions: # Needed for the 'trilom/file-changes-action' action pull-requests: read -env: - CI: true +# This allows a subsequently queued workflow run to interrupt previous runs +concurrency: + group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' + cancel-in-progress: true jobs: test: @@ -80,7 +82,7 @@ jobs: GIT_BRANCH: ${{ github.head_ref || github.ref }} - name: Cache nextjs build - uses: actions/cache@c64c572235d810460d0d6876e9c705ad5002b353 + uses: actions/cache@937d24475381cd9c75ae6db12cb4e79714b926ed with: path: .next/cache key: ${{ runner.os }}-nextjs-${{ hashFiles('package*.json') }} diff --git a/.github/workflows/triage-unallowed-contributions.yml b/.github/workflows/triage-unallowed-contributions.yml index 8d0bc42442..0cb30cdd6f 100644 --- a/.github/workflows/triage-unallowed-contributions.yml +++ b/.github/workflows/triage-unallowed-contributions.yml @@ -21,7 +21,7 @@ on: - 'lib/search/indexes/**' - 'package*.json' - 'Procfile' - - 'scripts/**' + - 'script/**' - 'translations/**' permissions: diff --git a/.github/workflows/triage-unallowed-internal-changes.yml b/.github/workflows/triage-unallowed-internal-changes.yml index f184606f7a..168517fc0f 100644 --- a/.github/workflows/triage-unallowed-internal-changes.yml +++ b/.github/workflows/triage-unallowed-internal-changes.yml @@ -17,6 +17,11 @@ permissions: # This is needed by dorny/paths-filter pull-requests: read +# This allows a subsequently queued workflow run to interrupt previous runs +concurrency: + group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' + cancel-in-progress: true + jobs: check-internal-changes: if: github.repository == 'github/docs-internal' && github.event.pull_request.user.login != 'Octomerger' diff --git a/.github/workflows/update-graphql-files.yml b/.github/workflows/update-graphql-files.yml index 9d984311e1..644a72c345 100644 --- a/.github/workflows/update-graphql-files.yml +++ b/.github/workflows/update-graphql-files.yml @@ -48,7 +48,7 @@ jobs: script/graphql/update-files.js - name: Create pull request id: create-pull-request - uses: peter-evans/create-pull-request@7380612b49221684fefa025244f2ef4008ae50ad + uses: peter-evans/create-pull-request@dcd5fd746d53dd8de555c0f10bca6c35628be47a env: # Disable pre-commit hooks; they don't play nicely here HUSKY: '0' diff --git a/.github/workflows/workflow-lint.yml b/.github/workflows/workflow-lint.yml index d2e55b215c..a62dc5b23e 100644 --- a/.github/workflows/workflow-lint.yml +++ b/.github/workflows/workflow-lint.yml @@ -6,12 +6,6 @@ name: Lint workflows on: workflow_dispatch: - push: - branches: - - main - paths: - - '.github/workflows/*.yml' - - '.github/workflows/*.yaml' pull_request: paths: - '.github/workflows/*.yml' @@ -20,6 +14,11 @@ on: permissions: contents: read +# This allows a subsequently queued workflow run to interrupt previous runs +concurrency: + group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' + cancel-in-progress: true + jobs: lint: if: ${{ github.repository == 'github/docs-internal' }} diff --git a/Dockerfile b/Dockerfile index c23095bf3f..a6a4992160 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,7 +5,7 @@ # -------------------------------------------------------------------------------- # BASE IMAGE # -------------------------------------------------------------------------------- -FROM node:16.2.0-alpine as base +FROM node:16-alpine as base RUN apk add --no-cache make g++ git @@ -17,11 +17,15 @@ WORKDIR /usr/src/docs # --------------- FROM base as all_deps -COPY package*.json ./ COPY .npmrc ./ +COPY package*.json ./ RUN npm ci +# This the appropriate necessary extra for node:16-alpine +# Other options are https://www.npmjs.com/search?q=%40next%2Fswc +RUN npm i @next/swc-linux-x64-musl --no-save + # --------------- # PROD DEPS @@ -36,14 +40,12 @@ RUN npm prune --production # --------------- FROM all_deps as builder -ENV NODE_ENV production - COPY stylesheets ./stylesheets COPY pages ./pages COPY components ./components COPY lib ./lib -# one part of the build relies on this content file to pull all-products +# One part of the build relies on this content file to pull all-products COPY content/index.md ./content/index.md COPY next.config.js ./next.config.js @@ -56,7 +58,7 @@ RUN npm run build # MAIN IMAGE # -------------------------------------------------------------------------------- -FROM node:16.2.0-alpine as production +FROM node:16-alpine as production # Let's make our home WORKDIR /usr/src/docs @@ -76,24 +78,28 @@ COPY --chown=node:node --from=builder /usr/src/docs/.next /usr/src/docs/.next # We should always be running in production mode ENV NODE_ENV production -# Hide iframes, add warnings to external links -ENV AIRGAP true +# Whether to hide iframes, add warnings to external links +ENV AIRGAP false -# Copy only what's needed to run the server -COPY --chown=node:node assets ./assets -COPY --chown=node:node content ./content -COPY --chown=node:node data ./data -COPY --chown=node:node includes ./includes -COPY --chown=node:node lib ./lib -COPY --chown=node:node middleware ./middleware -COPY --chown=node:node translations ./translations -COPY --chown=node:node server.mjs ./server.mjs -COPY --chown=node:node package*.json ./ -COPY --chown=node:node feature-flags.json ./ -COPY --chown=node:node next.config.js ./ +# By default we typically don't want to run in clustered mode +ENV WEB_CONCURRENCY 1 # This makes sure server.mjs always picks up the preferred port -ENV PORT=4000 +ENV PORT 4000 + +# Copy only what's needed to run the server +COPY --chown=node:node package.json ./ +COPY --chown=node:node assets ./assets +COPY --chown=node:node includes ./includes +COPY --chown=node:node translations ./translations +COPY --chown=node:node content ./content +COPY --chown=node:node lib ./lib +COPY --chown=node:node middleware ./middleware +COPY --chown=node:node feature-flags.json ./ +COPY --chown=node:node data ./data +COPY --chown=node:node next.config.js ./ +COPY --chown=node:node server.mjs ./server.mjs + EXPOSE $PORT CMD ["node", "server.mjs"] diff --git a/assets/images/azure/github-ae-azure-portal-add-new.png b/assets/images/azure/github-ae-azure-portal-add-new.png deleted file mode 100644 index dcc5576907..0000000000 Binary files a/assets/images/azure/github-ae-azure-portal-add-new.png and /dev/null differ diff --git a/assets/images/azure/github-ae-azure-portal-all-resources.png b/assets/images/azure/github-ae-azure-portal-all-resources.png deleted file mode 100644 index 0c677584c5..0000000000 Binary files a/assets/images/azure/github-ae-azure-portal-all-resources.png and /dev/null differ diff --git a/assets/images/commit-workflow-file.png b/assets/images/commit-workflow-file.png deleted file mode 100644 index d1b44b69ad..0000000000 Binary files a/assets/images/commit-workflow-file.png and /dev/null differ diff --git a/assets/images/developer/graphql/permissions-for-access-token.png b/assets/images/developer/graphql/permissions-for-access-token.png deleted file mode 100644 index 9a54f5878d..0000000000 Binary files a/assets/images/developer/graphql/permissions-for-access-token.png and /dev/null differ diff --git a/assets/images/enterprise/2.22/pull-request-tabs-changed-files.png b/assets/images/enterprise/2.22/pull-request-tabs-changed-files.png deleted file mode 100644 index a5ca74c433..0000000000 Binary files a/assets/images/enterprise/2.22/pull-request-tabs-changed-files.png and /dev/null differ diff --git a/assets/images/enterprise/3.1/advanced-security-phased-approach-diagram.png b/assets/images/enterprise/3.1/advanced-security-phased-approach-diagram.png deleted file mode 100644 index 2d021469a9..0000000000 Binary files a/assets/images/enterprise/3.1/advanced-security-phased-approach-diagram.png and /dev/null differ diff --git a/assets/images/enterprise/3.1/help/notifications-v2/watch-repository-options-custom2.png b/assets/images/enterprise/3.1/help/notifications-v2/watch-repository-options-custom2.png deleted file mode 100644 index feef68835a..0000000000 Binary files a/assets/images/enterprise/3.1/help/notifications-v2/watch-repository-options-custom2.png and /dev/null differ diff --git a/assets/images/enterprise/3.1/site-admin-settings/ecosystem-toggles.png b/assets/images/enterprise/3.1/site-admin-settings/ecosystem-toggles.png new file mode 100644 index 0000000000..d0ff4e6e92 Binary files /dev/null and b/assets/images/enterprise/3.1/site-admin-settings/ecosystem-toggles.png differ diff --git a/assets/images/enterprise/business-accounts/public-github-pages-checkbox.png b/assets/images/enterprise/business-accounts/public-github-pages-checkbox.png deleted file mode 100644 index f6bb008936..0000000000 Binary files a/assets/images/enterprise/business-accounts/public-github-pages-checkbox.png and /dev/null differ diff --git a/assets/images/enterprise/github-ae/notifications-v2/watch-repository-options-custom2.png b/assets/images/enterprise/github-ae/notifications-v2/watch-repository-options-custom2.png deleted file mode 100644 index 74899ea801..0000000000 Binary files a/assets/images/enterprise/github-ae/notifications-v2/watch-repository-options-custom2.png and /dev/null differ diff --git a/assets/images/enterprise/management-console/code-scanning-disable.png b/assets/images/enterprise/management-console/code-scanning-disable.png deleted file mode 100644 index 446658c0c8..0000000000 Binary files a/assets/images/enterprise/management-console/code-scanning-disable.png and /dev/null differ diff --git a/assets/images/enterprise/site-admin-settings/add-global-webhook-active-checkbox.png b/assets/images/enterprise/site-admin-settings/add-global-webhook-active-checkbox.png deleted file mode 100644 index 53730e0632..0000000000 Binary files a/assets/images/enterprise/site-admin-settings/add-global-webhook-active-checkbox.png and /dev/null differ diff --git a/assets/images/enterprise/site-admin-settings/aws-s3-access-key.png b/assets/images/enterprise/site-admin-settings/aws-s3-access-key.png deleted file mode 100644 index e569df1c3e..0000000000 Binary files a/assets/images/enterprise/site-admin-settings/aws-s3-access-key.png and /dev/null differ diff --git a/assets/images/enterprise/site-admin-settings/aws-s3-bucket.png b/assets/images/enterprise/site-admin-settings/aws-s3-bucket.png deleted file mode 100644 index e629bc4696..0000000000 Binary files a/assets/images/enterprise/site-admin-settings/aws-s3-bucket.png and /dev/null differ diff --git a/assets/images/enterprise/site-admin-settings/aws-s3-region.png b/assets/images/enterprise/site-admin-settings/aws-s3-region.png deleted file mode 100644 index e7d2b7fc77..0000000000 Binary files a/assets/images/enterprise/site-admin-settings/aws-s3-region.png and /dev/null differ diff --git a/assets/images/enterprise/site-admin-settings/aws-s3-secret-key.png b/assets/images/enterprise/site-admin-settings/aws-s3-secret-key.png deleted file mode 100644 index f964989c1d..0000000000 Binary files a/assets/images/enterprise/site-admin-settings/aws-s3-secret-key.png and /dev/null differ diff --git a/assets/images/enterprise/site-admin-settings/ecosystem-toggles.png b/assets/images/enterprise/site-admin-settings/ecosystem-toggles.png index d0ff4e6e92..c396731c01 100644 Binary files a/assets/images/enterprise/site-admin-settings/ecosystem-toggles.png and b/assets/images/enterprise/site-admin-settings/ecosystem-toggles.png differ diff --git a/assets/images/enterprise/site-admin-settings/storage-service-url.png b/assets/images/enterprise/site-admin-settings/storage-service-url.png deleted file mode 100644 index d7b2a7904a..0000000000 Binary files a/assets/images/enterprise/site-admin-settings/storage-service-url.png and /dev/null differ diff --git a/assets/images/enterprise/support/enterprise-support-link.png b/assets/images/enterprise/support/enterprise-support-link.png deleted file mode 100644 index 71f3e17dae..0000000000 Binary files a/assets/images/enterprise/support/enterprise-support-link.png and /dev/null differ diff --git a/assets/images/enterprise/support/submit-ticket-button.png b/assets/images/enterprise/support/submit-ticket-button.png deleted file mode 100644 index 8dbf161761..0000000000 Binary files a/assets/images/enterprise/support/submit-ticket-button.png and /dev/null differ diff --git a/assets/images/enterprise/support/view-past-tickets.png b/assets/images/enterprise/support/view-past-tickets.png deleted file mode 100644 index 12d196b880..0000000000 Binary files a/assets/images/enterprise/support/view-past-tickets.png and /dev/null differ diff --git a/assets/images/github-apps/github_apps_subscribe_to_events.png b/assets/images/github-apps/github_apps_subscribe_to_events.png deleted file mode 100644 index fac31c9ad6..0000000000 Binary files a/assets/images/github-apps/github_apps_subscribe_to_events.png and /dev/null differ diff --git a/assets/images/help/2fa/2fa-sms-code-enable.png b/assets/images/help/2fa/2fa-sms-code-enable.png deleted file mode 100644 index 881ade0fcd..0000000000 Binary files a/assets/images/help/2fa/2fa-sms-code-enable.png and /dev/null differ diff --git a/assets/images/help/2fa/2fa_sms_photo.png b/assets/images/help/2fa/2fa_sms_photo.png deleted file mode 100644 index a7b93f4061..0000000000 Binary files a/assets/images/help/2fa/2fa_sms_photo.png and /dev/null differ diff --git a/assets/images/help/apps/generate-private-key.png b/assets/images/help/apps/generate-private-key.png deleted file mode 100644 index fc5bb9141f..0000000000 Binary files a/assets/images/help/apps/generate-private-key.png and /dev/null differ diff --git a/assets/images/help/apps/github-apps-setup-url.png b/assets/images/help/apps/github-apps-setup-url.png deleted file mode 100644 index 80f220cf1d..0000000000 Binary files a/assets/images/help/apps/github-apps-setup-url.png and /dev/null differ diff --git a/assets/images/help/apps/github_apps_installation_options_any_account.png b/assets/images/help/apps/github_apps_installation_options_any_account.png deleted file mode 100644 index 0fd0ca51ce..0000000000 Binary files a/assets/images/help/apps/github_apps_installation_options_any_account.png and /dev/null differ diff --git a/assets/images/help/apps/github_apps_subscribe_to_events_pr_push_repository.png b/assets/images/help/apps/github_apps_subscribe_to_events_pr_push_repository.png deleted file mode 100644 index b622abd66f..0000000000 Binary files a/assets/images/help/apps/github_apps_subscribe_to_events_pr_push_repository.png and /dev/null differ diff --git a/assets/images/help/billing/settings_billing_upgrade_with_credit_card.png b/assets/images/help/billing/settings_billing_upgrade_with_credit_card.png deleted file mode 100644 index a04f5249f2..0000000000 Binary files a/assets/images/help/billing/settings_billing_upgrade_with_credit_card.png and /dev/null differ diff --git a/assets/images/help/billing/settings_organization_billing_tab.png b/assets/images/help/billing/settings_organization_billing_tab.png deleted file mode 100644 index 385e365a5a..0000000000 Binary files a/assets/images/help/billing/settings_organization_billing_tab.png and /dev/null differ diff --git a/assets/images/help/billing/upgrade-to-product.png b/assets/images/help/billing/upgrade-to-product.png deleted file mode 100644 index 2744bd17a0..0000000000 Binary files a/assets/images/help/billing/upgrade-to-product.png and /dev/null differ diff --git a/assets/images/help/business-accounts/add-webhook-button.png b/assets/images/help/business-accounts/add-webhook-button.png deleted file mode 100644 index 8047b71d6f..0000000000 Binary files a/assets/images/help/business-accounts/add-webhook-button.png and /dev/null differ diff --git a/assets/images/help/business-accounts/authenticate-with-github-button.png b/assets/images/help/business-accounts/authenticate-with-github-button.png deleted file mode 100644 index f8094dad62..0000000000 Binary files a/assets/images/help/business-accounts/authenticate-with-github-button.png and /dev/null differ diff --git a/assets/images/help/business-accounts/github-insights-tab.png b/assets/images/help/business-accounts/github-insights-tab.png deleted file mode 100644 index 7324375730..0000000000 Binary files a/assets/images/help/business-accounts/github-insights-tab.png and /dev/null differ diff --git a/assets/images/help/business-accounts/insights-instance-url.png b/assets/images/help/business-accounts/insights-instance-url.png deleted file mode 100644 index 53c6a711fd..0000000000 Binary files a/assets/images/help/business-accounts/insights-instance-url.png and /dev/null differ diff --git a/assets/images/help/business-accounts/okta-assignments-tab.png b/assets/images/help/business-accounts/okta-assignments-tab.png deleted file mode 100644 index bd5b439b9a..0000000000 Binary files a/assets/images/help/business-accounts/okta-assignments-tab.png and /dev/null differ diff --git a/assets/images/help/business-accounts/okta-push-groups-drop-down.png b/assets/images/help/business-accounts/okta-push-groups-drop-down.png deleted file mode 100644 index 8ff75a1878..0000000000 Binary files a/assets/images/help/business-accounts/okta-push-groups-drop-down.png and /dev/null differ diff --git a/assets/images/help/business-accounts/okta-push-groups-tab.png b/assets/images/help/business-accounts/okta-push-groups-tab.png deleted file mode 100644 index bdb96de1d9..0000000000 Binary files a/assets/images/help/business-accounts/okta-push-groups-tab.png and /dev/null differ diff --git a/assets/images/help/business-accounts/webhook-let-me-select-individual-events.png b/assets/images/help/business-accounts/webhook-let-me-select-individual-events.png deleted file mode 100644 index 3d21eba0a8..0000000000 Binary files a/assets/images/help/business-accounts/webhook-let-me-select-individual-events.png and /dev/null differ diff --git a/assets/images/help/business-accounts/webhook-payload-url-and-customization-options.png b/assets/images/help/business-accounts/webhook-payload-url-and-customization-options.png deleted file mode 100644 index bed721a91d..0000000000 Binary files a/assets/images/help/business-accounts/webhook-payload-url-and-customization-options.png and /dev/null differ diff --git a/assets/images/help/business-accounts/webhook-selected-events.png b/assets/images/help/business-accounts/webhook-selected-events.png deleted file mode 100644 index 8581e0d9f6..0000000000 Binary files a/assets/images/help/business-accounts/webhook-selected-events.png and /dev/null differ diff --git a/assets/images/help/classroom/assignment-ide-go-grant-access-button.png b/assets/images/help/classroom/assignment-ide-go-grant-access-button.png deleted file mode 100644 index 333f47b9cf..0000000000 Binary files a/assets/images/help/classroom/assignment-ide-go-grant-access-button.png and /dev/null differ diff --git a/assets/images/help/classroom/assignment-repository-ide-button-in-readme.png b/assets/images/help/classroom/assignment-repository-ide-button-in-readme.png deleted file mode 100644 index 8262a82ed0..0000000000 Binary files a/assets/images/help/classroom/assignment-repository-ide-button-in-readme.png and /dev/null differ diff --git a/assets/images/help/classroom/ide-replit-version-control-button.png b/assets/images/help/classroom/ide-replit-version-control-button.png deleted file mode 100644 index 12c6b5e76f..0000000000 Binary files a/assets/images/help/classroom/ide-replit-version-control-button.png and /dev/null differ diff --git a/assets/images/help/codespaces/change-machine-type-choice.png b/assets/images/help/codespaces/change-machine-type-choice.png deleted file mode 100644 index 669b662d14..0000000000 Binary files a/assets/images/help/codespaces/change-machine-type-choice.png and /dev/null differ diff --git a/assets/images/help/codespaces/codespace-overview.png b/assets/images/help/codespaces/codespace-overview.png deleted file mode 100644 index 9da58b97d2..0000000000 Binary files a/assets/images/help/codespaces/codespace-overview.png and /dev/null differ diff --git a/assets/images/help/codespaces/codespaces-devcontainers-reload.png b/assets/images/help/codespaces/codespaces-devcontainers-reload.png deleted file mode 100644 index 3ba8738173..0000000000 Binary files a/assets/images/help/codespaces/codespaces-devcontainers-reload.png and /dev/null differ diff --git a/assets/images/help/codespaces/codespaces-manage.png b/assets/images/help/codespaces/codespaces-manage.png deleted file mode 100644 index 7a43ef2129..0000000000 Binary files a/assets/images/help/codespaces/codespaces-manage.png and /dev/null differ diff --git a/assets/images/help/codespaces/codespaces-region-selector-radio-buttons.png b/assets/images/help/codespaces/codespaces-region-selector-radio-buttons.png deleted file mode 100644 index bafd825e7b..0000000000 Binary files a/assets/images/help/codespaces/codespaces-region-selector-radio-buttons.png and /dev/null differ diff --git a/assets/images/help/codespaces/command-palette-port-forwarding.png b/assets/images/help/codespaces/command-palette-port-forwarding.png deleted file mode 100644 index b689236c04..0000000000 Binary files a/assets/images/help/codespaces/command-palette-port-forwarding.png and /dev/null differ diff --git a/assets/images/help/codespaces/connect-to-github-codespaces-preview-feature.png b/assets/images/help/codespaces/connect-to-github-codespaces-preview-feature.png deleted file mode 100644 index 8b25b807d1..0000000000 Binary files a/assets/images/help/codespaces/connect-to-github-codespaces-preview-feature.png and /dev/null differ diff --git a/assets/images/help/codespaces/custom-codespace-button.png b/assets/images/help/codespaces/custom-codespace-button.png deleted file mode 100644 index 7ca654a7a7..0000000000 Binary files a/assets/images/help/codespaces/custom-codespace-button.png and /dev/null differ diff --git a/assets/images/help/codespaces/custom-prompt.png b/assets/images/help/codespaces/custom-prompt.png deleted file mode 100644 index 3ae10f0157..0000000000 Binary files a/assets/images/help/codespaces/custom-prompt.png and /dev/null differ diff --git a/assets/images/help/codespaces/new-codespace-button.JPG b/assets/images/help/codespaces/new-codespace-button.JPG deleted file mode 100644 index 81c274f337..0000000000 Binary files a/assets/images/help/codespaces/new-codespace-button.JPG and /dev/null differ diff --git a/assets/images/help/codespaces/open-with-codespaces-button-smaller.png b/assets/images/help/codespaces/open-with-codespaces-button-smaller.png deleted file mode 100644 index 98bdc7d1f0..0000000000 Binary files a/assets/images/help/codespaces/open-with-codespaces-button-smaller.png and /dev/null differ diff --git a/assets/images/help/codespaces/open-with-codespaces-button.png b/assets/images/help/codespaces/open-with-codespaces-button.png deleted file mode 100644 index 59b46623ff..0000000000 Binary files a/assets/images/help/codespaces/open-with-codespaces-button.png and /dev/null differ diff --git a/assets/images/help/codespaces/rebuild-container-command.png b/assets/images/help/codespaces/rebuild-container-command.png deleted file mode 100644 index d2ba5a8a90..0000000000 Binary files a/assets/images/help/codespaces/rebuild-container-command.png and /dev/null differ diff --git a/assets/images/help/codespaces/remote-explorer-port-forwarding.png b/assets/images/help/codespaces/remote-explorer-port-forwarding.png deleted file mode 100644 index cf7763d845..0000000000 Binary files a/assets/images/help/codespaces/remote-explorer-port-forwarding.png and /dev/null differ diff --git a/assets/images/help/codespaces/usage-report-download.png b/assets/images/help/codespaces/usage-report-download.png new file mode 100644 index 0000000000..3d4460a10c Binary files /dev/null and b/assets/images/help/codespaces/usage-report-download.png differ diff --git a/assets/images/help/codespaces/visual-studio-codespace-details.png b/assets/images/help/codespaces/visual-studio-codespace-details.png deleted file mode 100644 index aa4b7d4809..0000000000 Binary files a/assets/images/help/codespaces/visual-studio-codespace-details.png and /dev/null differ diff --git a/assets/images/help/codespaces/visual-studio-connect-codespace.png b/assets/images/help/codespaces/visual-studio-connect-codespace.png deleted file mode 100644 index 7ca25e45db..0000000000 Binary files a/assets/images/help/codespaces/visual-studio-connect-codespace.png and /dev/null differ diff --git a/assets/images/help/codespaces/visual-studio-eshoponweb-codespace.png b/assets/images/help/codespaces/visual-studio-eshoponweb-codespace.png deleted file mode 100644 index bf7810bc7b..0000000000 Binary files a/assets/images/help/codespaces/visual-studio-eshoponweb-codespace.png and /dev/null differ diff --git a/assets/images/help/codespaces/visual-studio-file-connect-to-codespace.png b/assets/images/help/codespaces/visual-studio-file-connect-to-codespace.png deleted file mode 100644 index ae0ae2861b..0000000000 Binary files a/assets/images/help/codespaces/visual-studio-file-connect-to-codespace.png and /dev/null differ diff --git a/assets/images/help/codespaces/visual-studio-sign-in-to-github.png b/assets/images/help/codespaces/visual-studio-sign-in-to-github.png deleted file mode 100644 index bd0268de00..0000000000 Binary files a/assets/images/help/codespaces/visual-studio-sign-in-to-github.png and /dev/null differ diff --git a/assets/images/help/codespaces/visual-studio-start-window.png b/assets/images/help/codespaces/visual-studio-start-window.png deleted file mode 100644 index ab2859c81b..0000000000 Binary files a/assets/images/help/codespaces/visual-studio-start-window.png and /dev/null differ diff --git a/assets/images/help/codespaces/vscode-change-machine-choose-type.png b/assets/images/help/codespaces/vscode-change-machine-choose-type.png deleted file mode 100644 index ae4884e14e..0000000000 Binary files a/assets/images/help/codespaces/vscode-change-machine-choose-type.png and /dev/null differ diff --git a/assets/images/help/command-palette/command-palette-search-scope.png b/assets/images/help/command-palette/command-palette-search-scope.png deleted file mode 100644 index 30bd31e60c..0000000000 Binary files a/assets/images/help/command-palette/command-palette-search-scope.png and /dev/null differ diff --git a/assets/images/help/commits/gpg-signed-commit-unverified-details.png b/assets/images/help/commits/gpg-signed-commit-unverified-details.png deleted file mode 100644 index 0fc65fa3de..0000000000 Binary files a/assets/images/help/commits/gpg-signed-commit-unverified-details.png and /dev/null differ diff --git a/assets/images/help/desktop/discard-restore-stash-buttons.png b/assets/images/help/desktop/discard-restore-stash-buttons.png deleted file mode 100644 index 466397674c..0000000000 Binary files a/assets/images/help/desktop/discard-restore-stash-buttons.png and /dev/null differ diff --git a/assets/images/help/desktop/gear-diff-select.png b/assets/images/help/desktop/gear-diff-select.png deleted file mode 100644 index 8a0cda5c37..0000000000 Binary files a/assets/images/help/desktop/gear-diff-select.png and /dev/null differ diff --git a/assets/images/help/desktop/open-in-desktop-button.png b/assets/images/help/desktop/open-in-desktop-button.png deleted file mode 100644 index 36ecefc262..0000000000 Binary files a/assets/images/help/desktop/open-in-desktop-button.png and /dev/null differ diff --git a/assets/images/help/desktop/squash-multiple-commits.png b/assets/images/help/desktop/squash-multiple-commits.png deleted file mode 100644 index 2b71ea09c9..0000000000 Binary files a/assets/images/help/desktop/squash-multiple-commits.png and /dev/null differ diff --git a/assets/images/help/docs/header-dotcom.png b/assets/images/help/docs/header-dotcom.png new file mode 100644 index 0000000000..a1bc7e4fbf Binary files /dev/null and b/assets/images/help/docs/header-dotcom.png differ diff --git a/assets/images/help/docs/header-ghae.png b/assets/images/help/docs/header-ghae.png new file mode 100644 index 0000000000..ba71e27507 Binary files /dev/null and b/assets/images/help/docs/header-ghae.png differ diff --git a/assets/images/help/docs/header-ghes.png b/assets/images/help/docs/header-ghes.png new file mode 100644 index 0000000000..57e38e27d5 Binary files /dev/null and b/assets/images/help/docs/header-ghes.png differ diff --git a/assets/images/help/docs/version-picker.png b/assets/images/help/docs/version-picker.png new file mode 100644 index 0000000000..24b0bfb13b Binary files /dev/null and b/assets/images/help/docs/version-picker.png differ diff --git a/assets/images/help/images/actions-policies-overview.png b/assets/images/help/images/actions-policies-overview.png deleted file mode 100644 index a88c69d279..0000000000 Binary files a/assets/images/help/images/actions-policies-overview.png and /dev/null differ diff --git a/assets/images/help/images/overview-actions-design.png b/assets/images/help/images/overview-actions-design.png deleted file mode 100644 index 07a4a14ffa..0000000000 Binary files a/assets/images/help/images/overview-actions-design.png and /dev/null differ diff --git a/assets/images/help/issues/labels-in-sidebar.png b/assets/images/help/issues/labels-in-sidebar.png deleted file mode 100644 index c584b735e8..0000000000 Binary files a/assets/images/help/issues/labels-in-sidebar.png and /dev/null differ diff --git a/assets/images/help/issues/regular_issue_link.png b/assets/images/help/issues/regular_issue_link.png deleted file mode 100644 index 305a33f40b..0000000000 Binary files a/assets/images/help/issues/regular_issue_link.png and /dev/null differ diff --git a/assets/images/help/issues/task-list-summary.png b/assets/images/help/issues/task-list-summary.png deleted file mode 100644 index daf3147add..0000000000 Binary files a/assets/images/help/issues/task-list-summary.png and /dev/null differ diff --git a/assets/images/help/jobs/hot-searches.png b/assets/images/help/jobs/hot-searches.png deleted file mode 100644 index e398d427a5..0000000000 Binary files a/assets/images/help/jobs/hot-searches.png and /dev/null differ diff --git a/assets/images/help/mobile/android-settings-icon.png b/assets/images/help/mobile/android-settings-icon.png deleted file mode 100644 index df4bbdf720..0000000000 Binary files a/assets/images/help/mobile/android-settings-icon.png and /dev/null differ diff --git a/assets/images/help/mobile/ios-settings-icon.png b/assets/images/help/mobile/ios-settings-icon.png deleted file mode 100644 index 00ffc46067..0000000000 Binary files a/assets/images/help/mobile/ios-settings-icon.png and /dev/null differ diff --git a/assets/images/help/notifications-v2/security-alerts-options.png b/assets/images/help/notifications-v2/security-alerts-options.png deleted file mode 100644 index 725fd6a178..0000000000 Binary files a/assets/images/help/notifications-v2/security-alerts-options.png and /dev/null differ diff --git a/assets/images/help/notifications/automatic-team-discussions-watching.png b/assets/images/help/notifications/automatic-team-discussions-watching.png deleted file mode 100644 index 048955b105..0000000000 Binary files a/assets/images/help/notifications/automatic-team-discussions-watching.png and /dev/null differ diff --git a/assets/images/help/notifications/ent-automatically-watch-repos.png b/assets/images/help/notifications/ent-automatically-watch-repos.png deleted file mode 100644 index 95f8719216..0000000000 Binary files a/assets/images/help/notifications/ent-automatically-watch-repos.png and /dev/null differ diff --git a/assets/images/help/notifications/notifications-watching-tab.png b/assets/images/help/notifications/notifications-watching-tab.png deleted file mode 100644 index a98ec06a44..0000000000 Binary files a/assets/images/help/notifications/notifications-watching-tab.png and /dev/null differ diff --git a/assets/images/help/notifications/notifications_mark_all_as_read.png b/assets/images/help/notifications/notifications_mark_all_as_read.png deleted file mode 100644 index 80d79f7f9f..0000000000 Binary files a/assets/images/help/notifications/notifications_mark_all_as_read.png and /dev/null differ diff --git a/assets/images/help/notifications/notifications_mark_individual_as_read.png b/assets/images/help/notifications/notifications_mark_individual_as_read.png deleted file mode 100644 index ab839a409c..0000000000 Binary files a/assets/images/help/notifications/notifications_mark_individual_as_read.png and /dev/null differ diff --git a/assets/images/help/notifications/notifications_mark_individual_as_unread.png b/assets/images/help/notifications/notifications_mark_individual_as_unread.png deleted file mode 100644 index afb3d56e51..0000000000 Binary files a/assets/images/help/notifications/notifications_mark_individual_as_unread.png and /dev/null differ diff --git a/assets/images/help/notifications/notifications_repositories_mark_all_as_read.png b/assets/images/help/notifications/notifications_repositories_mark_all_as_read.png deleted file mode 100644 index 0715d8244f..0000000000 Binary files a/assets/images/help/notifications/notifications_repositories_mark_all_as_read.png and /dev/null differ diff --git a/assets/images/help/notifications/notifications_sidebar_participating.png b/assets/images/help/notifications/notifications_sidebar_participating.png deleted file mode 100644 index 4a286fb114..0000000000 Binary files a/assets/images/help/notifications/notifications_sidebar_participating.png and /dev/null differ diff --git a/assets/images/help/notifications/notifications_sidebar_specific_repos.png b/assets/images/help/notifications/notifications_sidebar_specific_repos.png deleted file mode 100644 index f01f1fd09c..0000000000 Binary files a/assets/images/help/notifications/notifications_sidebar_specific_repos.png and /dev/null differ diff --git a/assets/images/help/notifications/remove-saved-notification.png b/assets/images/help/notifications/remove-saved-notification.png deleted file mode 100644 index fea7d5e97d..0000000000 Binary files a/assets/images/help/notifications/remove-saved-notification.png and /dev/null differ diff --git a/assets/images/help/notifications/save_notification.png b/assets/images/help/notifications/save_notification.png deleted file mode 100644 index 010db399fc..0000000000 Binary files a/assets/images/help/notifications/save_notification.png and /dev/null differ diff --git a/assets/images/help/notifications/sidebar_read_notifications.png b/assets/images/help/notifications/sidebar_read_notifications.png deleted file mode 100644 index 2ebe325376..0000000000 Binary files a/assets/images/help/notifications/sidebar_read_notifications.png and /dev/null differ diff --git a/assets/images/help/notifications/specific-team-unwatch.png b/assets/images/help/notifications/specific-team-unwatch.png deleted file mode 100644 index ac7c33c83b..0000000000 Binary files a/assets/images/help/notifications/specific-team-unwatch.png and /dev/null differ diff --git a/assets/images/help/notifications/specific-team-watch-options.png b/assets/images/help/notifications/specific-team-watch-options.png deleted file mode 100644 index 2874bbd58c..0000000000 Binary files a/assets/images/help/notifications/specific-team-watch-options.png and /dev/null differ diff --git a/assets/images/help/notifications/subscribe_button_with_gear.png b/assets/images/help/notifications/subscribe_button_with_gear.png deleted file mode 100644 index dc1a14fc23..0000000000 Binary files a/assets/images/help/notifications/subscribe_button_with_gear.png and /dev/null differ diff --git a/assets/images/help/notifications/subscribe_button_with_gear_chosen.png b/assets/images/help/notifications/subscribe_button_with_gear_chosen.png deleted file mode 100644 index 04ffcaac6a..0000000000 Binary files a/assets/images/help/notifications/subscribe_button_with_gear_chosen.png and /dev/null differ diff --git a/assets/images/help/notifications/subscribe_options.png b/assets/images/help/notifications/subscribe_options.png deleted file mode 100644 index 469e72c82e..0000000000 Binary files a/assets/images/help/notifications/subscribe_options.png and /dev/null differ diff --git a/assets/images/help/notifications/subscriptions-tab.png b/assets/images/help/notifications/subscriptions-tab.png deleted file mode 100644 index d7186c0a33..0000000000 Binary files a/assets/images/help/notifications/subscriptions-tab.png and /dev/null differ diff --git a/assets/images/help/notifications/team-discussion-subscribe-button.png b/assets/images/help/notifications/team-discussion-subscribe-button.png deleted file mode 100644 index 8411ed4ec4..0000000000 Binary files a/assets/images/help/notifications/team-discussion-subscribe-button.png and /dev/null differ diff --git a/assets/images/help/notifications/team-discussion-unsubscribe-button.png b/assets/images/help/notifications/team-discussion-unsubscribe-button.png deleted file mode 100644 index f1cda85035..0000000000 Binary files a/assets/images/help/notifications/team-discussion-unsubscribe-button.png and /dev/null differ diff --git a/assets/images/help/notifications/unsubscribe-button.png b/assets/images/help/notifications/unsubscribe-button.png deleted file mode 100644 index 98a4de088c..0000000000 Binary files a/assets/images/help/notifications/unsubscribe-button.png and /dev/null differ diff --git a/assets/images/help/notifications/unsubscribe-checkbox.png b/assets/images/help/notifications/unsubscribe-checkbox.png deleted file mode 100644 index 4c36f5b3c2..0000000000 Binary files a/assets/images/help/notifications/unsubscribe-checkbox.png and /dev/null differ diff --git a/assets/images/help/notifications/unwatch-repository.png b/assets/images/help/notifications/unwatch-repository.png deleted file mode 100644 index 981837e672..0000000000 Binary files a/assets/images/help/notifications/unwatch-repository.png and /dev/null differ diff --git a/assets/images/help/notifications/watch-releases.png b/assets/images/help/notifications/watch-releases.png deleted file mode 100644 index 710bd55f14..0000000000 Binary files a/assets/images/help/notifications/watch-releases.png and /dev/null differ diff --git a/assets/images/help/notifications/watch-repository.png b/assets/images/help/notifications/watch-repository.png deleted file mode 100644 index a579f62363..0000000000 Binary files a/assets/images/help/notifications/watch-repository.png and /dev/null differ diff --git a/assets/images/help/organizations/company-name-field.png b/assets/images/help/organizations/company-name-field.png deleted file mode 100644 index 7aed1a74ed..0000000000 Binary files a/assets/images/help/organizations/company-name-field.png and /dev/null differ diff --git a/assets/images/help/organizations/create-dns-txt-record-instructions.png b/assets/images/help/organizations/create-dns-txt-record-instructions.png index fb0cd2e1b7..7e5d51d53c 100644 Binary files a/assets/images/help/organizations/create-dns-txt-record-instructions.png and b/assets/images/help/organizations/create-dns-txt-record-instructions.png differ diff --git a/assets/images/help/organizations/employees-drop-down.png b/assets/images/help/organizations/employees-drop-down.png deleted file mode 100644 index 221dd82bcd..0000000000 Binary files a/assets/images/help/organizations/employees-drop-down.png and /dev/null differ diff --git a/assets/images/help/organizations/enterprise-owners-list-on-org-page.png b/assets/images/help/organizations/enterprise-owners-list-on-org-page.png new file mode 100644 index 0000000000..b5117e8597 Binary files /dev/null and b/assets/images/help/organizations/enterprise-owners-list-on-org-page.png differ diff --git a/assets/images/help/organizations/enterprise-owners-sidebar.png b/assets/images/help/organizations/enterprise-owners-sidebar.png new file mode 100644 index 0000000000..37c1b490a8 Binary files /dev/null and b/assets/images/help/organizations/enterprise-owners-sidebar.png differ diff --git a/assets/images/help/organizations/full-name-field.png b/assets/images/help/organizations/full-name-field.png deleted file mode 100644 index 5266add8b5..0000000000 Binary files a/assets/images/help/organizations/full-name-field.png and /dev/null differ diff --git a/assets/images/help/organizations/industry-drop-down.png b/assets/images/help/organizations/industry-drop-down.png deleted file mode 100644 index 146e3f28fa..0000000000 Binary files a/assets/images/help/organizations/industry-drop-down.png and /dev/null differ diff --git a/assets/images/help/organizations/org_profile_with_overview.png .png b/assets/images/help/organizations/org_profile_with_overview.png .png deleted file mode 100644 index d43f6498f7..0000000000 Binary files a/assets/images/help/organizations/org_profile_with_overview.png .png and /dev/null differ diff --git a/assets/images/help/organizations/repo-invitations-checkbox.png b/assets/images/help/organizations/repo-invitations-checkbox.png deleted file mode 100644 index fc2b68bdfb..0000000000 Binary files a/assets/images/help/organizations/repo-invitations-checkbox.png and /dev/null differ diff --git a/assets/images/help/organizations/security-and-analysis-disable-or-enable-all-ghas-dotcom.png b/assets/images/help/organizations/security-and-analysis-disable-or-enable-all-fpt.png similarity index 100% rename from assets/images/help/organizations/security-and-analysis-disable-or-enable-all-ghas-dotcom.png rename to assets/images/help/organizations/security-and-analysis-disable-or-enable-all-fpt.png diff --git a/assets/images/help/organizations/security-and-analysis-disable-or-enable-all-ghas-ghec.png b/assets/images/help/organizations/security-and-analysis-disable-or-enable-all-ghas-ghec.png new file mode 100644 index 0000000000..508bd4661d Binary files /dev/null and b/assets/images/help/organizations/security-and-analysis-disable-or-enable-all-ghas-ghec.png differ diff --git a/assets/images/help/organizations/security-and-analysis-enable-or-disable-feature-checkbox-dotcom.png b/assets/images/help/organizations/security-and-analysis-enable-or-disable-feature-checkbox-dotcom.png deleted file mode 100644 index e5172aa346..0000000000 Binary files a/assets/images/help/organizations/security-and-analysis-enable-or-disable-feature-checkbox-dotcom.png and /dev/null differ diff --git a/assets/images/help/organizations/security-and-analysis-enable-or-disable-feature-checkbox-fpt.png b/assets/images/help/organizations/security-and-analysis-enable-or-disable-feature-checkbox-fpt.png new file mode 100644 index 0000000000..7bb0428203 Binary files /dev/null and b/assets/images/help/organizations/security-and-analysis-enable-or-disable-feature-checkbox-fpt.png differ diff --git a/assets/images/help/organizations/security-and-analysis-enable-or-disable-feature-checkbox-ghec.png b/assets/images/help/organizations/security-and-analysis-enable-or-disable-feature-checkbox-ghec.png new file mode 100644 index 0000000000..e679608686 Binary files /dev/null and b/assets/images/help/organizations/security-and-analysis-enable-or-disable-feature-checkbox-ghec.png differ diff --git a/assets/images/help/organizations/security-overview-filters.png b/assets/images/help/organizations/security-overview-filters.png deleted file mode 100644 index 84afa05480..0000000000 Binary files a/assets/images/help/organizations/security-overview-filters.png and /dev/null differ diff --git a/assets/images/help/organizations/security-overview-search-repositories.png b/assets/images/help/organizations/security-overview-search-repositories.png deleted file mode 100644 index 522657decb..0000000000 Binary files a/assets/images/help/organizations/security-overview-search-repositories.png and /dev/null differ diff --git a/assets/images/help/organizations/start-trial-button.png b/assets/images/help/organizations/start-trial-button.png deleted file mode 100644 index b9e5df0cff..0000000000 Binary files a/assets/images/help/organizations/start-trial-button.png and /dev/null differ diff --git a/assets/images/help/organizations/verify-domain-final-button.png b/assets/images/help/organizations/verify-domain-final-button.png index 15ba299b26..9b6e15ab12 100644 Binary files a/assets/images/help/organizations/verify-domain-final-button.png and b/assets/images/help/organizations/verify-domain-final-button.png differ diff --git a/assets/images/help/organizations/work-email-field.png b/assets/images/help/organizations/work-email-field.png deleted file mode 100644 index 364e3cbdf3..0000000000 Binary files a/assets/images/help/organizations/work-email-field.png and /dev/null differ diff --git a/assets/images/help/package-registry/enable-improved-container-support-for-orgs.png b/assets/images/help/package-registry/enable-improved-container-support-for-orgs.png deleted file mode 100644 index bcf52a5597..0000000000 Binary files a/assets/images/help/package-registry/enable-improved-container-support-for-orgs.png and /dev/null differ diff --git a/assets/images/help/package-registry/package-creation-org-settings.png b/assets/images/help/package-registry/package-creation-org-settings.png deleted file mode 100644 index b63d02f3b5..0000000000 Binary files a/assets/images/help/package-registry/package-creation-org-settings.png and /dev/null differ diff --git a/assets/images/help/package-registry/packages-overview-diagram.png b/assets/images/help/package-registry/packages-overview-diagram.png deleted file mode 100644 index 1bc7a281ea..0000000000 Binary files a/assets/images/help/package-registry/packages-overview-diagram.png and /dev/null differ diff --git a/assets/images/help/profile/display-pro-badge-checkbox.png b/assets/images/help/profile/display-pro-badge-checkbox.png deleted file mode 100644 index 4775d3cfca..0000000000 Binary files a/assets/images/help/profile/display-pro-badge-checkbox.png and /dev/null differ diff --git a/assets/images/help/profile/org-profile-verified.png b/assets/images/help/profile/org-profile-verified.png deleted file mode 100644 index c1b02e1ba5..0000000000 Binary files a/assets/images/help/profile/org-profile-verified.png and /dev/null differ diff --git a/assets/images/help/profile/org_profile_verified.png b/assets/images/help/profile/org_profile_verified.png deleted file mode 100644 index d5c52620e0..0000000000 Binary files a/assets/images/help/profile/org_profile_verified.png and /dev/null differ diff --git a/assets/images/help/profile/verified_org_profile_with_overview_landing_page.png b/assets/images/help/profile/verified_org_profile_with_overview_landing_page.png deleted file mode 100644 index 00520de73f..0000000000 Binary files a/assets/images/help/profile/verified_org_profile_with_overview_landing_page.png and /dev/null differ diff --git a/assets/images/help/pull_requests/merge-conflict-confirmation.png b/assets/images/help/pull_requests/merge-conflict-confirmation.png deleted file mode 100644 index 21d540b0c7..0000000000 Binary files a/assets/images/help/pull_requests/merge-conflict-confirmation.png and /dev/null differ diff --git a/assets/images/help/releases/release-compare-button.png b/assets/images/help/releases/release-compare-button.png deleted file mode 100644 index ee00cf397c..0000000000 Binary files a/assets/images/help/releases/release-compare-button.png and /dev/null differ diff --git a/assets/images/help/releases/release-compare-menu.png b/assets/images/help/releases/release-compare-menu.png deleted file mode 100644 index 36b0824844..0000000000 Binary files a/assets/images/help/releases/release-compare-menu.png and /dev/null differ diff --git a/assets/images/help/releases/release_tag_name.png b/assets/images/help/releases/release_tag_name.png deleted file mode 100644 index 9606e9dd73..0000000000 Binary files a/assets/images/help/releases/release_tag_name.png and /dev/null differ diff --git a/assets/images/help/releases/return-to-repository-main-page.PNG b/assets/images/help/releases/return-to-repository-main-page.PNG deleted file mode 100644 index ce66ed641d..0000000000 Binary files a/assets/images/help/releases/return-to-repository-main-page.PNG and /dev/null differ diff --git a/assets/images/help/repository/add-topics-done-button.png b/assets/images/help/repository/add-topics-done-button.png deleted file mode 100644 index 6842b81a2e..0000000000 Binary files a/assets/images/help/repository/add-topics-done-button.png and /dev/null differ diff --git a/assets/images/help/repository/add-topics-link.png b/assets/images/help/repository/add-topics-link.png deleted file mode 100644 index a7b6a34439..0000000000 Binary files a/assets/images/help/repository/add-topics-link.png and /dev/null differ diff --git a/assets/images/help/repository/allow-force-pushes-specify-who.png b/assets/images/help/repository/allow-force-pushes-specify-who.png new file mode 100644 index 0000000000..dbe6e02639 Binary files /dev/null and b/assets/images/help/repository/allow-force-pushes-specify-who.png differ diff --git a/assets/images/help/repository/branching.png b/assets/images/help/repository/branching.png index a7c2b6deeb..918bf4c28b 100644 Binary files a/assets/images/help/repository/branching.png and b/assets/images/help/repository/branching.png differ diff --git a/assets/images/help/repository/clone-repo-clone-url-button.png b/assets/images/help/repository/clone-repo-clone-url-button.png deleted file mode 100644 index d73dec5742..0000000000 Binary files a/assets/images/help/repository/clone-repo-clone-url-button.png and /dev/null differ diff --git a/assets/images/help/repository/commit-hello-world-file.png b/assets/images/help/repository/commit-hello-world-file.png deleted file mode 100644 index 052f913a8f..0000000000 Binary files a/assets/images/help/repository/commit-hello-world-file.png and /dev/null differ diff --git a/assets/images/help/repository/delete-all-logs.png b/assets/images/help/repository/delete-all-logs.png deleted file mode 100644 index 75c28a406a..0000000000 Binary files a/assets/images/help/repository/delete-all-logs.png and /dev/null differ diff --git a/assets/images/help/repository/download-logs-drop-down.png b/assets/images/help/repository/download-logs-drop-down.png deleted file mode 100644 index f822f55117..0000000000 Binary files a/assets/images/help/repository/download-logs-drop-down.png and /dev/null differ diff --git a/assets/images/help/repository/enable-ghas-confirmation-dotcom.png b/assets/images/help/repository/enable-ghas-confirmation-dotcom.png deleted file mode 100644 index c8786da283..0000000000 Binary files a/assets/images/help/repository/enable-ghas-confirmation-dotcom.png and /dev/null differ diff --git a/assets/images/help/repository/enable-org-actions.png b/assets/images/help/repository/enable-org-actions.png deleted file mode 100644 index 0c0a16ae98..0000000000 Binary files a/assets/images/help/repository/enable-org-actions.png and /dev/null differ diff --git a/assets/images/help/repository/enable-repo-actions.png b/assets/images/help/repository/enable-repo-actions.png deleted file mode 100644 index 76fdcc6eaf..0000000000 Binary files a/assets/images/help/repository/enable-repo-actions.png and /dev/null differ diff --git a/assets/images/help/repository/environments-top.png b/assets/images/help/repository/environments-top.png deleted file mode 100644 index 90c872ed99..0000000000 Binary files a/assets/images/help/repository/environments-top.png and /dev/null differ diff --git a/assets/images/help/repository/failed-check-step.png b/assets/images/help/repository/failed-check-step.png deleted file mode 100644 index 00c71f7905..0000000000 Binary files a/assets/images/help/repository/failed-check-step.png and /dev/null differ diff --git a/assets/images/help/repository/issue-form-file-content.png b/assets/images/help/repository/issue-form-file-content.png deleted file mode 100644 index ee06b3aa18..0000000000 Binary files a/assets/images/help/repository/issue-form-file-content.png and /dev/null differ diff --git a/assets/images/help/repository/issue-form-file-name.png b/assets/images/help/repository/issue-form-file-name.png deleted file mode 100644 index 7d6e17c0d1..0000000000 Binary files a/assets/images/help/repository/issue-form-file-name.png and /dev/null differ diff --git a/assets/images/help/repository/issue-reactions.png b/assets/images/help/repository/issue-reactions.png deleted file mode 100644 index e6a6d227e8..0000000000 Binary files a/assets/images/help/repository/issue-reactions.png and /dev/null differ diff --git a/assets/images/help/repository/manual-workflow-trigger.png b/assets/images/help/repository/manual-workflow-trigger.png deleted file mode 100644 index 59b07ae6c9..0000000000 Binary files a/assets/images/help/repository/manual-workflow-trigger.png and /dev/null differ diff --git a/assets/images/help/repository/repo-internalconfirm.png b/assets/images/help/repository/repo-internalconfirm.png deleted file mode 100644 index b7d5c970fc..0000000000 Binary files a/assets/images/help/repository/repo-internalconfirm.png and /dev/null differ diff --git a/assets/images/help/repository/repo-makeinternal.png b/assets/images/help/repository/repo-makeinternal.png deleted file mode 100644 index a4b3143494..0000000000 Binary files a/assets/images/help/repository/repo-makeinternal.png and /dev/null differ diff --git a/assets/images/help/repository/repo-makeprivate.png b/assets/images/help/repository/repo-makeprivate.png deleted file mode 100644 index dc7c4ff34c..0000000000 Binary files a/assets/images/help/repository/repo-makeprivate.png and /dev/null differ diff --git a/assets/images/help/repository/repo-makepublic.png b/assets/images/help/repository/repo-makepublic.png deleted file mode 100644 index fe6101ee48..0000000000 Binary files a/assets/images/help/repository/repo-makepublic.png and /dev/null differ diff --git a/assets/images/help/repository/repo-privateconfirm.png b/assets/images/help/repository/repo-privateconfirm.png deleted file mode 100644 index e481393d3d..0000000000 Binary files a/assets/images/help/repository/repo-privateconfirm.png and /dev/null differ diff --git a/assets/images/help/repository/repo-publicconfirm.png b/assets/images/help/repository/repo-publicconfirm.png deleted file mode 100644 index 4e406c8b70..0000000000 Binary files a/assets/images/help/repository/repo-publicconfirm.png and /dev/null differ diff --git a/assets/images/help/repository/repository-options-defaultbranch.png b/assets/images/help/repository/repository-options-defaultbranch.png deleted file mode 100644 index 205a8da997..0000000000 Binary files a/assets/images/help/repository/repository-options-defaultbranch.png and /dev/null differ diff --git a/assets/images/help/repository/say-hello-job.png b/assets/images/help/repository/say-hello-job.png deleted file mode 100644 index 3f00b822bf..0000000000 Binary files a/assets/images/help/repository/say-hello-job.png and /dev/null differ diff --git a/assets/images/help/repository/search-log-box.png b/assets/images/help/repository/search-log-box.png deleted file mode 100644 index 57a7311ca7..0000000000 Binary files a/assets/images/help/repository/search-log-box.png and /dev/null differ diff --git a/assets/images/help/repository/secret-scanning-add-custom-pattern.png b/assets/images/help/repository/secret-scanning-add-custom-pattern.png deleted file mode 100644 index 3e07d3924f..0000000000 Binary files a/assets/images/help/repository/secret-scanning-add-custom-pattern.png and /dev/null differ diff --git a/assets/images/help/repository/security-and-analysis-disable-or-enable-dotcom-private.png b/assets/images/help/repository/security-and-analysis-disable-or-enable-dotcom-private.png deleted file mode 100644 index fc9e48ba54..0000000000 Binary files a/assets/images/help/repository/security-and-analysis-disable-or-enable-dotcom-private.png and /dev/null differ diff --git a/assets/images/help/repository/security-and-analysis-disable-or-enable-fpt-private.png b/assets/images/help/repository/security-and-analysis-disable-or-enable-fpt-private.png new file mode 100644 index 0000000000..0ee92b9aa7 Binary files /dev/null and b/assets/images/help/repository/security-and-analysis-disable-or-enable-fpt-private.png differ diff --git a/assets/images/help/repository/security-and-analysis-disable-or-enable-fpt-public.png b/assets/images/help/repository/security-and-analysis-disable-or-enable-fpt-public.png new file mode 100644 index 0000000000..b950af5eba Binary files /dev/null and b/assets/images/help/repository/security-and-analysis-disable-or-enable-fpt-public.png differ diff --git a/assets/images/help/repository/security-and-analysis-disable-or-enable-ghec-private.png b/assets/images/help/repository/security-and-analysis-disable-or-enable-ghec-private.png new file mode 100644 index 0000000000..51a3427a13 Binary files /dev/null and b/assets/images/help/repository/security-and-analysis-disable-or-enable-ghec-private.png differ diff --git a/assets/images/help/repository/security-and-analysis-disable-or-enable-dotcom-public.png b/assets/images/help/repository/security-and-analysis-disable-or-enable-ghec-public.png similarity index 100% rename from assets/images/help/repository/security-and-analysis-disable-or-enable-dotcom-public.png rename to assets/images/help/repository/security-and-analysis-disable-or-enable-ghec-public.png diff --git a/assets/images/help/repository/security-and-analysis-security-alerts-person-or-team-search-ghe.png b/assets/images/help/repository/security-and-analysis-security-alerts-person-or-team-search-ghe.png deleted file mode 100644 index d4a4313be0..0000000000 Binary files a/assets/images/help/repository/security-and-analysis-security-alerts-person-or-team-search-ghe.png and /dev/null differ diff --git a/assets/images/help/repository/setup-workflow-button.png b/assets/images/help/repository/setup-workflow-button.png deleted file mode 100644 index 3e86bb6505..0000000000 Binary files a/assets/images/help/repository/setup-workflow-button.png and /dev/null differ diff --git a/assets/images/help/repository/start-commit.png b/assets/images/help/repository/start-commit.png deleted file mode 100644 index 9a6ba2f7a8..0000000000 Binary files a/assets/images/help/repository/start-commit.png and /dev/null differ diff --git a/assets/images/help/repository/workflow-job-listing.png b/assets/images/help/repository/workflow-job-listing.png deleted file mode 100644 index 0be6ffdaee..0000000000 Binary files a/assets/images/help/repository/workflow-job-listing.png and /dev/null differ diff --git a/assets/images/help/repository/workflow-log-listing.png b/assets/images/help/repository/workflow-log-listing.png deleted file mode 100644 index 59b164910c..0000000000 Binary files a/assets/images/help/repository/workflow-log-listing.png and /dev/null differ diff --git a/assets/images/help/repository/workflow-run-kebab-horizontal-icon.png b/assets/images/help/repository/workflow-run-kebab-horizontal-icon.png deleted file mode 100644 index 20b2c3436d..0000000000 Binary files a/assets/images/help/repository/workflow-run-kebab-horizontal-icon.png and /dev/null differ diff --git a/assets/images/help/repository/workflow-run-listing.png b/assets/images/help/repository/workflow-run-listing.png deleted file mode 100644 index 83fd13d61f..0000000000 Binary files a/assets/images/help/repository/workflow-run-listing.png and /dev/null differ diff --git a/assets/images/help/saml/create-group-okta.png b/assets/images/help/saml/create-group-okta.png deleted file mode 100644 index 9d34ef73ee..0000000000 Binary files a/assets/images/help/saml/create-group-okta.png and /dev/null differ diff --git a/assets/images/help/security/policy-tab.png b/assets/images/help/security/policy-tab.png deleted file mode 100644 index 03063612a3..0000000000 Binary files a/assets/images/help/security/policy-tab.png and /dev/null differ diff --git a/assets/images/help/settings/actions-enterprise-policies.png b/assets/images/help/settings/actions-enterprise-policies.png deleted file mode 100644 index c7d35ab45f..0000000000 Binary files a/assets/images/help/settings/actions-enterprise-policies.png and /dev/null differ diff --git a/assets/images/help/settings/actions-hosted-runner-add-new-group.png b/assets/images/help/settings/actions-hosted-runner-add-new-group.png deleted file mode 100644 index fb2f1b9c3a..0000000000 Binary files a/assets/images/help/settings/actions-hosted-runner-add-new-group.png and /dev/null differ diff --git a/assets/images/help/settings/actions-hosted-runner-group-kebab.png b/assets/images/help/settings/actions-hosted-runner-group-kebab.png deleted file mode 100644 index aa30fb660d..0000000000 Binary files a/assets/images/help/settings/actions-hosted-runner-group-kebab.png and /dev/null differ diff --git a/assets/images/help/settings/actions-hosted-runner-group-member-move-destination.png b/assets/images/help/settings/actions-hosted-runner-group-member-move-destination.png deleted file mode 100644 index 2c41da6002..0000000000 Binary files a/assets/images/help/settings/actions-hosted-runner-group-member-move-destination.png and /dev/null differ diff --git a/assets/images/help/settings/actions-hosted-runner-group-member-move.png b/assets/images/help/settings/actions-hosted-runner-group-member-move.png deleted file mode 100644 index a1d6d565f5..0000000000 Binary files a/assets/images/help/settings/actions-hosted-runner-group-member-move.png and /dev/null differ diff --git a/assets/images/help/settings/actions-hosted-runner-group-remove.png b/assets/images/help/settings/actions-hosted-runner-group-remove.png deleted file mode 100644 index c5de740ce7..0000000000 Binary files a/assets/images/help/settings/actions-hosted-runner-group-remove.png and /dev/null differ diff --git a/assets/images/help/settings/actions-runner-architecture-os.png b/assets/images/help/settings/actions-runner-architecture-os.png deleted file mode 100644 index 596c3580ac..0000000000 Binary files a/assets/images/help/settings/actions-runner-architecture-os.png and /dev/null differ diff --git a/assets/images/help/settings/actions-runner-list.png b/assets/images/help/settings/actions-runner-list.png deleted file mode 100644 index 9e1b2d67db..0000000000 Binary files a/assets/images/help/settings/actions-runner-list.png and /dev/null differ diff --git a/assets/images/help/settings/connect-recovery-token-with-facebook.png b/assets/images/help/settings/connect-recovery-token-with-facebook.png deleted file mode 100644 index d1acfd646b..0000000000 Binary files a/assets/images/help/settings/connect-recovery-token-with-facebook.png and /dev/null differ diff --git a/assets/images/help/settings/cost-management-tab-enterprise.png b/assets/images/help/settings/cost-management-tab-enterprise.png deleted file mode 100644 index 761b65f710..0000000000 Binary files a/assets/images/help/settings/cost-management-tab-enterprise.png and /dev/null differ diff --git a/assets/images/help/settings/cost-management-tab.png b/assets/images/help/settings/cost-management-tab.png deleted file mode 100644 index d9d2497dd8..0000000000 Binary files a/assets/images/help/settings/cost-management-tab.png and /dev/null differ diff --git a/assets/images/help/settings/creditcard-billing-form.png b/assets/images/help/settings/creditcard-billing-form.png deleted file mode 100644 index c5cd36017e..0000000000 Binary files a/assets/images/help/settings/creditcard-billing-form.png and /dev/null differ diff --git a/assets/images/help/settings/email_notification_settings.png b/assets/images/help/settings/email_notification_settings.png deleted file mode 100644 index c3a5cab574..0000000000 Binary files a/assets/images/help/settings/email_notification_settings.png and /dev/null differ diff --git a/assets/images/help/settings/ent-notifications-settings.png b/assets/images/help/settings/ent-notifications-settings.png deleted file mode 100644 index fd7fb90da0..0000000000 Binary files a/assets/images/help/settings/ent-notifications-settings.png and /dev/null differ diff --git a/assets/images/help/settings/improved-container-support.png b/assets/images/help/settings/improved-container-support.png deleted file mode 100644 index 7b6da354dc..0000000000 Binary files a/assets/images/help/settings/improved-container-support.png and /dev/null differ diff --git a/assets/images/help/settings/org-billing-email.png b/assets/images/help/settings/org-billing-email.png deleted file mode 100644 index 7a08b4daec..0000000000 Binary files a/assets/images/help/settings/org-billing-email.png and /dev/null differ diff --git a/assets/images/help/settings/payment-info-tab.png b/assets/images/help/settings/payment-info-tab.png deleted file mode 100644 index a3f6a4bcdf..0000000000 Binary files a/assets/images/help/settings/payment-info-tab.png and /dev/null differ diff --git a/assets/images/help/settings/security-facebook-security-settings-page.png b/assets/images/help/settings/security-facebook-security-settings-page.png deleted file mode 100644 index 8daad1d023..0000000000 Binary files a/assets/images/help/settings/security-facebook-security-settings-page.png and /dev/null differ diff --git a/assets/images/help/settings/security-github-rae-token-on-facebook.png b/assets/images/help/settings/security-github-rae-token-on-facebook.png deleted file mode 100644 index 08e551c1a0..0000000000 Binary files a/assets/images/help/settings/security-github-rae-token-on-facebook.png and /dev/null differ diff --git a/assets/images/help/settings/security-recover-account-facebook.png b/assets/images/help/settings/security-recover-account-facebook.png deleted file mode 100644 index 5e57ed63f6..0000000000 Binary files a/assets/images/help/settings/security-recover-account-facebook.png and /dev/null differ diff --git a/assets/images/help/settings/security-turn-on-rae-facebook.png b/assets/images/help/settings/security-turn-on-rae-facebook.png deleted file mode 100644 index 51f931fcbb..0000000000 Binary files a/assets/images/help/settings/security-turn-on-rae-facebook.png and /dev/null differ diff --git a/assets/images/help/settings/settings-sidebar-actions.png b/assets/images/help/settings/settings-sidebar-actions.png deleted file mode 100644 index 73ec14adde..0000000000 Binary files a/assets/images/help/settings/settings-sidebar-actions.png and /dev/null differ diff --git a/assets/images/help/settings/settings-sidebar-billing.png b/assets/images/help/settings/settings-sidebar-billing.png deleted file mode 100644 index a4daa87581..0000000000 Binary files a/assets/images/help/settings/settings-sidebar-billing.png and /dev/null differ diff --git a/assets/images/help/settings/settings-sidebar-security.png b/assets/images/help/settings/settings-sidebar-security.png deleted file mode 100644 index 4fd0c8b1f5..0000000000 Binary files a/assets/images/help/settings/settings-sidebar-security.png and /dev/null differ diff --git a/assets/images/help/settings/store-new-recovery-token.png b/assets/images/help/settings/store-new-recovery-token.png deleted file mode 100644 index c93d0dfebf..0000000000 Binary files a/assets/images/help/settings/store-new-recovery-token.png and /dev/null differ diff --git a/assets/images/help/settings/subscriptions-tab.png b/assets/images/help/settings/subscriptions-tab.png deleted file mode 100644 index 49b3dbe746..0000000000 Binary files a/assets/images/help/settings/subscriptions-tab.png and /dev/null differ diff --git a/assets/images/help/settings/update-profile-button.png b/assets/images/help/settings/update-profile-button.png deleted file mode 100644 index bdd7e357aa..0000000000 Binary files a/assets/images/help/settings/update-profile-button.png and /dev/null differ diff --git a/assets/images/help/settings/vulnerability-alerts-options.png b/assets/images/help/settings/vulnerability-alerts-options.png deleted file mode 100644 index ff80af1ab8..0000000000 Binary files a/assets/images/help/settings/vulnerability-alerts-options.png and /dev/null differ diff --git a/assets/images/help/site-policy/docusign-signature.png b/assets/images/help/site-policy/docusign-signature.png deleted file mode 100644 index 6043f76718..0000000000 Binary files a/assets/images/help/site-policy/docusign-signature.png and /dev/null differ diff --git a/assets/images/help/site-policy/github-privacy-statement(07.02.19)(JA).pdf b/assets/images/help/site-policy/github-privacy-statement(07.02.19)(JA).pdf deleted file mode 100644 index 5891ace8fe..0000000000 Binary files a/assets/images/help/site-policy/github-privacy-statement(07.02.19)(JA).pdf and /dev/null differ diff --git a/assets/images/help/site-policy/github-privacy-statement(12.20.19)(FR).pdf b/assets/images/help/site-policy/github-privacy-statement(12.20.19)(FR).pdf deleted file mode 100644 index ca3e413392..0000000000 Binary files a/assets/images/help/site-policy/github-privacy-statement(12.20.19)(FR).pdf and /dev/null differ diff --git a/assets/images/help/sponsors/recommended-rewards.png b/assets/images/help/sponsors/recommended-rewards.png deleted file mode 100644 index 8c23f8e388..0000000000 Binary files a/assets/images/help/sponsors/recommended-rewards.png and /dev/null differ diff --git a/assets/images/help/sponsors/sponsors-earch-options.png b/assets/images/help/sponsors/sponsors-earch-options.png deleted file mode 100644 index 12b053f76a..0000000000 Binary files a/assets/images/help/sponsors/sponsors-earch-options.png and /dev/null differ diff --git a/assets/images/help/stars/stars_jump_to_a_friend.png b/assets/images/help/stars/stars_jump_to_a_friend.png deleted file mode 100644 index 327fc814bc..0000000000 Binary files a/assets/images/help/stars/stars_jump_to_a_friend.png and /dev/null differ diff --git a/assets/images/help/support/email-field.png b/assets/images/help/support/email-field.png deleted file mode 100644 index 3b7d3d3cd1..0000000000 Binary files a/assets/images/help/support/email-field.png and /dev/null differ diff --git a/assets/images/help/support/name-field.png b/assets/images/help/support/name-field.png deleted file mode 100644 index ebb16c512d..0000000000 Binary files a/assets/images/help/support/name-field.png and /dev/null differ diff --git a/assets/images/help/writing/enable-fixed-width.png b/assets/images/help/writing/enable-fixed-width.png new file mode 100644 index 0000000000..da9ca99a3d Binary files /dev/null and b/assets/images/help/writing/enable-fixed-width.png differ diff --git a/assets/images/help/writing/fixed-width-example.png b/assets/images/help/writing/fixed-width-example.png new file mode 100644 index 0000000000..b3dc3e698d Binary files /dev/null and b/assets/images/help/writing/fixed-width-example.png differ diff --git a/assets/images/marketplace/apps-with-verified-publisher-badge.png b/assets/images/marketplace/apps-with-verified-publisher-badge.png deleted file mode 100644 index 1dd687e703..0000000000 Binary files a/assets/images/marketplace/apps-with-verified-publisher-badge.png and /dev/null differ diff --git a/assets/images/marketplace/marketplace_verified_badges.png b/assets/images/marketplace/marketplace_verified_badges.png deleted file mode 100644 index af370209c2..0000000000 Binary files a/assets/images/marketplace/marketplace_verified_badges.png and /dev/null differ diff --git a/assets/images/octicons/image.svg b/assets/images/octicons/image.svg deleted file mode 100644 index 75c4afa885..0000000000 --- a/assets/images/octicons/image.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/images/octicons/kebab-horizontal.svg b/assets/images/octicons/kebab-horizontal.svg deleted file mode 100644 index 86a37d8b5e..0000000000 --- a/assets/images/octicons/kebab-horizontal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/images/octicons/kebab-vertical.svg b/assets/images/octicons/kebab-vertical.svg deleted file mode 100644 index 3539cda52a..0000000000 --- a/assets/images/octicons/kebab-vertical.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/images/octicons/project.svg b/assets/images/octicons/project.svg deleted file mode 100644 index bf7354b0e9..0000000000 --- a/assets/images/octicons/project.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/assets/images/octicons/x.svg b/assets/images/octicons/x.svg deleted file mode 100644 index 002e1e97a6..0000000000 --- a/assets/images/octicons/x.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/images/screenshot-example.png b/assets/images/screenshot-example.png deleted file mode 100644 index cc132379d4..0000000000 Binary files a/assets/images/screenshot-example.png and /dev/null differ diff --git a/assets/images/site/blockquote-arrow.png b/assets/images/site/blockquote-arrow.png deleted file mode 100644 index 9eab6d948b..0000000000 Binary files a/assets/images/site/blockquote-arrow.png and /dev/null differ diff --git a/assets/images/site/create-a-repo.gif b/assets/images/site/create-a-repo.gif deleted file mode 100644 index b0d748bca4..0000000000 Binary files a/assets/images/site/create-a-repo.gif and /dev/null differ diff --git a/assets/images/site/favicon.ico b/assets/images/site/favicon.ico deleted file mode 100644 index cedb6140f4..0000000000 Binary files a/assets/images/site/favicon.ico and /dev/null differ diff --git a/assets/images/site/fork-a-repo.gif b/assets/images/site/fork-a-repo.gif deleted file mode 100644 index 9d6d487eb9..0000000000 Binary files a/assets/images/site/fork-a-repo.gif and /dev/null differ diff --git a/assets/images/site/github-desktop-logo.png b/assets/images/site/github-desktop-logo.png deleted file mode 100644 index d35f8fb979..0000000000 Binary files a/assets/images/site/github-desktop-logo.png and /dev/null differ diff --git a/assets/images/site/github-enterprise-logo.png b/assets/images/site/github-enterprise-logo.png deleted file mode 100644 index 3d063a4b15..0000000000 Binary files a/assets/images/site/github-enterprise-logo.png and /dev/null differ diff --git a/assets/images/site/gradient-sprite.png b/assets/images/site/gradient-sprite.png deleted file mode 100644 index 032f2a2e45..0000000000 Binary files a/assets/images/site/gradient-sprite.png and /dev/null differ diff --git a/assets/images/site/info-icon.png b/assets/images/site/info-icon.png deleted file mode 100644 index c37e3bc02b..0000000000 Binary files a/assets/images/site/info-icon.png and /dev/null differ diff --git a/assets/images/site/invertocat.png b/assets/images/site/invertocat.png deleted file mode 100644 index 8b10f5e516..0000000000 Binary files a/assets/images/site/invertocat.png and /dev/null differ diff --git a/assets/images/site/li-chevron.png b/assets/images/site/li-chevron.png deleted file mode 100644 index d63b358900..0000000000 Binary files a/assets/images/site/li-chevron.png and /dev/null differ diff --git a/assets/images/site/logo@2x.png b/assets/images/site/logo@2x.png deleted file mode 100644 index ac4525fe94..0000000000 Binary files a/assets/images/site/logo@2x.png and /dev/null differ diff --git a/assets/images/site/octocat-spinner-128.gif b/assets/images/site/octocat-spinner-128.gif deleted file mode 100644 index 98cada54ad..0000000000 Binary files a/assets/images/site/octocat-spinner-128.gif and /dev/null differ diff --git a/assets/images/site/set-up-git.gif b/assets/images/site/set-up-git.gif deleted file mode 100644 index c664bac42d..0000000000 Binary files a/assets/images/site/set-up-git.gif and /dev/null differ diff --git a/assets/images/site/under-triangle.gif b/assets/images/site/under-triangle.gif deleted file mode 100644 index 00ef3cc714..0000000000 Binary files a/assets/images/site/under-triangle.gif and /dev/null differ diff --git a/components/Search.module.scss b/components/Search.module.scss index 4ccc25ca94..b88b6c8161 100644 --- a/components/Search.module.scss +++ b/components/Search.module.scss @@ -51,3 +51,7 @@ .selectWording { margin: 0.64rem 0.5rem 0 0; } + +.versionSearchContainer { + overflow: hidden; +} diff --git a/components/Search.tsx b/components/Search.tsx index 5bffca3871..3f6d0adc70 100644 --- a/components/Search.tsx +++ b/components/Search.tsx @@ -206,38 +206,41 @@ export function Search({ ) const SearchInput = ( -