diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index d19f215e62..8f1fdb3f04 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,5 +1,6 @@ // For format details, see https://aka.ms/devcontainer.json. For config options, see the README at: // https://github.com/microsoft/vscode-dev-containers/tree/v0.177.0/containers/javascript-node +// - { "name": "docs.github.com", "build": { diff --git a/.github/actions-scripts/content-changes-table-comment.js b/.github/actions-scripts/content-changes-table-comment.js index 91a62cb95f..bb7258b957 100755 --- a/.github/actions-scripts/content-changes-table-comment.js +++ b/.github/actions-scripts/content-changes-table-comment.js @@ -36,7 +36,7 @@ for (const file of articleFiles) { const sourceUrl = file.blob_url const fileName = file.filename.slice(pathPrefix.length) const fileUrl = fileName.slice(0, fileName.lastIndexOf('.')) - const previewLink = `https://${APP_URL}/${fileUrl}` + const previewLink = `${APP_URL}/${fileUrl}` const productionLink = `https://docs.github.com/${fileUrl}` let markdownLine = '' diff --git a/.github/actions-scripts/get-preview-app-info.sh b/.github/actions-scripts/get-preview-app-info.sh index e7f9f87366..f48c25ff10 100755 --- a/.github/actions-scripts/get-preview-app-info.sh +++ b/.github/actions-scripts/get-preview-app-info.sh @@ -10,9 +10,10 @@ [[ -z $GITHUB_REPOSITORY ]] && { echo "Missing GITHUB_REPOSITORY. Exiting."; exit 1; } [[ -z $PR_NUMBER ]] && { echo "Missing PR_NUMBER. Exiting."; exit 1; } [[ -z $GITHUB_ENV ]] && { echo "Missing GITHUB_ENV. Exiting."; exit 1; } +[[ -z $APP_NAME_SEED ]] && { echo "Missing APP_NAME_SEED. Exiting."; exit 1; } -# Number of resource groups that we use to split preview envs across -PREVIEW_ENV_RESOURCE_GROUPS=4 +PREVIEW_ENV_LOCATION="eastus" +echo "PREVIEW_ENV_LOCATION=${PREVIEW_ENV_LOCATION}" >> $GITHUB_ENV REPO_NAME="${GITHUB_REPOSITORY#*\/}" echo "REPO_NAME=${REPO_NAME}" >> $GITHUB_ENV @@ -20,22 +21,17 @@ echo "REPO_NAME=${REPO_NAME}" >> $GITHUB_ENV DEPLOYMENT_NAME="${REPO_NAME}-pr-${PR_NUMBER}" echo "DEPLOYMENT_NAME=${DEPLOYMENT_NAME}" >> $GITHUB_ENV -RESOURCE_GROUP="preview-env-${REPO_NAME}-$((${PR_NUMBER} % ${PREVIEW_ENV_RESOURCE_GROUPS}))" -echo "RESOURCE_GROUP=${RESOURCE_GROUP}" >> $GITHUB_ENV +APP_NAME_BASE="${REPO_NAME}-preview-${PR_NUMBER}" +echo "APP_NAME_BASE=${APP_NAME_BASE}" >> $GITHUB_ENV -APP_NAME_SHORT="${REPO_NAME}-preview-${PR_NUMBER}" -echo "APP_NAME_SHORT=${APP_NAME_SHORT}" >> $GITHUB_ENV +# pseudo random string so guessing a preview env URL is more difficult +APP_SHA=$(echo -n "${APP_NAME_SEED}-${APP_NAME_BASE}" | sha1sum | cut -c1-6) + +APP_NAME="${APP_NAME_BASE}-${APP_SHA}" +echo "APP_NAME=${APP_NAME}" >> $GITHUB_ENV + +APP_URL="https://${APP_NAME}.${PREVIEW_ENV_LOCATION}.azurecontainer.io" +echo "APP_URL=${APP_URL}" >> $GITHUB_ENV IMAGE_REPO="${GITHUB_REPOSITORY}/pr-${PR_NUMBER}" echo "IMAGE_REPO=${IMAGE_REPO}" >> $GITHUB_ENV - -# Since this incurs a network request and can be slow, we make it optional -if [ $FULL_APP_INFO ]; then - APP_INFO=$(az webapp list -g ${RESOURCE_GROUP} --query "[?tags.DocsAppName == '${APP_NAME_SHORT}'].{defaultHostName:defaultHostName, name:name} | [0]") - - APP_URL=$(echo $APP_INFO | jq '.defaultHostName' | tr -d '"') - echo "APP_URL=${APP_URL}" >> $GITHUB_ENV - - APP_NAME_FULL=$(echo $APP_INFO | jq '.name' | tr -d '"') - echo "APP_NAME_FULL=${APP_NAME_FULL}" >> $GITHUB_ENV -fi diff --git a/.github/workflows/azure-preview-env-deploy.yml b/.github/workflows/azure-preview-env-deploy.yml index 2a54474359..a102730e06 100644 --- a/.github/workflows/azure-preview-env-deploy.yml +++ b/.github/workflows/azure-preview-env-deploy.yml @@ -40,11 +40,13 @@ jobs: timeout-minutes: 15 environment: name: preview-env-${{ github.event.number }} - url: ${{ steps.deploy.outputs.defaultHostName }} + # The environment variable is computer later in this job in + # the "Get preview app info" step. + # That script sets environment variables which is used by Actions + # to link a PR to a list of environments later. + url: ${{ env.APP_URL }} env: PR_NUMBER: ${{ github.event.number || github.event.inputs.PR_NUMBER }} - NONPROD_REGISTRY_USERNAME: ghdocs - APP_LOCATION: eastus ENABLE_EARLY_ACCESS: ${{ github.repository == 'github/docs-internal' }} steps: @@ -57,7 +59,7 @@ jobs: uses: azure/docker-login@81744f9799e7eaa418697cb168452a2882ae844a with: login-server: ${{ secrets.NONPROD_REGISTRY_SERVER }} - username: ${{ env.NONPROD_REGISTRY_USERNAME }} + username: ${{ secrets.NONPROD_REGISTRY_USERNAME }} password: ${{ secrets.NONPROD_REGISTRY_PASSWORD }} - name: Set up Docker Buildx @@ -75,6 +77,8 @@ jobs: run: git lfs checkout - name: Get preview app info + env: + APP_NAME_SEED: ${{ secrets.PREVIEW_ENV_NAME_SEED }} run: .github/actions-scripts/get-preview-app-info.sh - name: 'Set env vars' @@ -144,7 +148,7 @@ jobs: # Succeed despite any non-zero exit code (e.g. if there is no deployment to cancel) - name: 'Cancel any existing deployments for this PR' run: | - az deployment group cancel --name ${{ env.DEPLOYMENT_NAME }} -g ${{ env.RESOURCE_GROUP }} || true + az deployment group cancel --name ${{ env.DEPLOYMENT_NAME }} -g ${{ secrets.PREVIEW_ENV_RESOURCE_GROUP }} || true # Deploy ARM template is idempotent # Note: once the resources exist the image tag must change for a new deployment to occur (the image tag includes workflow run number, run attempt, as well as sha) @@ -152,15 +156,16 @@ jobs: id: deploy uses: azure/arm-deploy@841b12551939c88af8f6df767c24c38a5620fd0d with: - resourceGroupName: ${{ env.RESOURCE_GROUP }} + resourceGroupName: ${{ secrets.PREVIEW_ENV_RESOURCE_GROUP }} subscriptionId: ${{ secrets.NONPROD_SUBSCRIPTION_ID }} template: ./azure-preview-env-template.json deploymentName: ${{ env.DEPLOYMENT_NAME }} - parameters: appName="${{ env.APP_NAME_SHORT }}" - location="${{ env.APP_LOCATION }}" - linuxFxVersion="DOCKER|${{ env.DOCKER_IMAGE }}" - dockerRegistryUrl="https://${{ secrets.NONPROD_REGISTRY_SERVER }}" - dockerRegistryUsername="${{ env.NONPROD_REGISTRY_USERNAME }}" + parameters: appName="${{ env.APP_NAME }}" + location="${{ env.PREVIEW_ENV_LOCATION }}" + containerImage="${{ env.DOCKER_IMAGE }}" + dockerRegistryUrl="${{ secrets.NONPROD_REGISTRY_SERVER }}" + dockerRegistryUsername="${{ secrets.NONPROD_REGISTRY_USERNAME }}" dockerRegistryPassword="${{ secrets.NONPROD_REGISTRY_PASSWORD }}" - - - run: echo ${{ steps.deploy.outputs.defaultHostName }} + # this shows warnings in the github actions console, because the flag is passed through a validation run, + # but it *is* functional during the actual execution + additionalArguments: --no-wait diff --git a/.github/workflows/azure-preview-env-destroy.yml b/.github/workflows/azure-preview-env-destroy.yml index d9fe2c5a5a..f26a4be14d 100644 --- a/.github/workflows/azure-preview-env-destroy.yml +++ b/.github/workflows/azure-preview-env-destroy.yml @@ -24,7 +24,6 @@ jobs: timeout-minutes: 5 env: PR_NUMBER: ${{ github.event.number || github.event.inputs.PR_NUMBER }} - NONPROD_REGISTRY_NAME: ghdocs steps: - name: 'Az CLI login' @@ -37,25 +36,25 @@ jobs: - name: Get preview app info env: - FULL_APP_INFO: 1 + APP_NAME_SEED: ${{ secrets.PREVIEW_ENV_NAME_SEED }} run: .github/actions-scripts/get-preview-app-info.sh # Succeed despite any non-zero exit code (e.g. if there is no deployment to cancel) - name: 'Cancel any in progress deployments' run: | - az deployment group cancel --name ${{ env.DEPLOYMENT_NAME }} -g ${{ env.RESOURCE_GROUP }} || true + az deployment group cancel --name ${{ env.DEPLOYMENT_NAME }} -g ${{ secrets.PREVIEW_ENV_RESOURCE_GROUP }} || true # Delete web app (which will also delete the App Service plan) # This will succeed even if the app doesn't exist / has already been deleted - name: 'Delete App Service App (which will also delete the App Service plan)' run: | - az webapp delete -n ${{ env.APP_NAME_FULL }} -g ${{ env.RESOURCE_GROUP }} + az container delete -n ${{ env.APP_NAME }} -g ${{ secrets.PREVIEW_ENV_RESOURCE_GROUP }} -y # Untag all images under this PR's container registry repo - the container registry will automatically remove untagged images. # This will fail if the IMAGE_REPO doesn't exist, but we don't care - name: 'Untag all docker images for this PR' run: | - az acr repository delete -n ${{ env.NONPROD_REGISTRY_NAME }} --repository ${{ env.IMAGE_REPO }} -y || true + az acr repository delete -n ${{ secrets.NONPROD_REGISTRY_NAME }} --repository ${{ env.IMAGE_REPO }} -y || true # Remove all GitHub deployments from this environment and remove the environment - uses: strumwolf/delete-deployment-environment@45c821e46baa405e25410700fe2e9643929706a0 diff --git a/.github/workflows/content-changes-table-comment.yml b/.github/workflows/content-changes-table-comment.yml index 8b9127dec9..798fe8a0da 100644 --- a/.github/workflows/content-changes-table-comment.yml +++ b/.github/workflows/content-changes-table-comment.yml @@ -48,17 +48,12 @@ jobs: env: PR_NUMBER: ${{ github.event.pull_request.number }} steps: - - name: 'Az CLI login' - uses: azure/login@1f63701bf3e6892515f1b7ce2d2bf1708b46beaf - with: - creds: ${{ secrets.NONPROD_AZURE_CREDENTIALS }} - - name: check out repo content uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 - name: Get preview app info env: - FULL_APP_INFO: 1 + APP_NAME_SEED: ${{ secrets.PREVIEW_ENV_NAME_SEED }} run: .github/actions-scripts/get-preview-app-info.sh - name: Setup Node diff --git a/.github/workflows/prod-build-deploy-azure.yml b/.github/workflows/prod-build-deploy-azure.yml index 805cb6a6e6..eb53eb61bd 100644 --- a/.github/workflows/prod-build-deploy-azure.yml +++ b/.github/workflows/prod-build-deploy-azure.yml @@ -90,12 +90,12 @@ jobs: run: | sed 's|#{IMAGE}#|${{ env.DOCKER_IMAGE }}|g' docker-compose.prod.tmpl.yaml > docker-compose.prod.yaml - - name: 'Apply updated docker-compose.prod.yaml config to preview slot' + - name: 'Apply updated docker-compose.prod.yaml config to staging slot' run: | - az webapp config container set --multicontainer-config-type COMPOSE --multicontainer-config-file docker-compose.prod.yaml --slot preview -n ghdocs-prod -g docs-prod + az webapp config container set --multicontainer-config-type COMPOSE --multicontainer-config-file docker-compose.prod.yaml --slot staging -n ghdocs-prod -g docs-prod - # Watch preview slot instances to see when all the instances are ready - - name: Check that preview slot is ready + # Watch staging slot instances to see when all the instances are ready + - name: Check that staging slot is ready uses: actions/github-script@2b34a689ec86a68d8ab9478298f91d5401337b7d env: CHECK_INTERVAL: 10000 @@ -115,7 +115,7 @@ jobs: let hasStopped = false const waitDuration = parseInt(process.env.CHECK_INTERVAL, 10) || 10000 async function doCheck() { - const states = getStatesForSlot('preview') + const states = getStatesForSlot('staging') console.log(`Instance states:`, states) // We must wait until at-least 1 instance has STOPPED to know we're looking at the "next" deployment and not the "previous" one @@ -136,10 +136,10 @@ jobs: doCheck() - # TODO - make a request to verify the preview app version aligns with *this* github action workflow commit sha - - name: 'Swap preview slot to production' + # TODO - make a request to verify the staging app version aligns with *this* github action workflow commit sha + - name: 'Swap staging slot to production' run: | - az webapp deployment slot swap --slot preview --target-slot production -n ghdocs-prod -g docs-prod + az webapp deployment slot swap --slot staging --target-slot production -n ghdocs-prod -g docs-prod - name: Purge Fastly edge cache env: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 87a8347b79..b080e73df7 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -51,6 +51,53 @@ jobs: # Enables cloning the Early Access repo later with the relevant PAT persist-credentials: 'false' + - name: Figure out which docs-early-access branch to checkout, if internal repo + if: ${{ github.repository == 'github/docs-internal' }} + id: check-early-access + uses: actions/github-script@2b34a689ec86a68d8ab9478298f91d5401337b7d + env: + BRANCH_NAME: ${{ github.head_ref || github.ref_name }} + with: + github-token: ${{ secrets.DOCUBOT_REPO_PAT }} + result-encoding: string + script: | + // If being run from a PR, this becomes 'my-cool-branch'. + // If run on main, with the `workflow_dispatch` action for + // example, the value becomes 'main'. + const { BRANCH_NAME } = process.env + try { + const response = await github.repos.getBranch({ + owner: 'github', + repo: 'docs-early-access', + BRANCH_NAME, + }) + console.log(`Using docs-early-access branch called '${BRANCH_NAME}'.`) + return BRANCH_NAME + } catch (err) { + if (err.status === 404) { + console.log(`There is no docs-early-access branch called '${BRANCH_NAME}' so checking out 'main' instead.`) + return 'main' + } + throw err + } + + - name: Check out docs-early-access too, if internal repo + if: ${{ github.repository == 'github/docs-internal' }} + uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 + with: + repository: github/docs-early-access + token: ${{ secrets.DOCUBOT_REPO_PAT }} + path: docs-early-access + ref: ${{ steps.check-early-access.outputs.result }} + + - name: Merge docs-early-access repo's folders + if: ${{ github.repository == 'github/docs-internal' }} + run: | + mv docs-early-access/assets assets/images/early-access + mv docs-early-access/content content/early-access + mv docs-early-access/data data/early-access + rm -r docs-early-access + - name: Checkout LFS objects run: git lfs checkout @@ -78,13 +125,6 @@ jobs: - name: Install dependencies run: npm ci - - name: Clone early access - if: ${{ github.repository == 'github/docs-internal' }} - run: script/early-access/clone-for-build.js - env: - DOCUBOT_REPO_PAT: ${{ secrets.DOCUBOT_REPO_PAT }} - GIT_BRANCH: ${{ github.head_ref || github.ref }} - - name: Cache nextjs build uses: actions/cache@937d24475381cd9c75ae6db12cb4e79714b926ed with: diff --git a/README.md b/README.md index fadb39c8de..715c2d4fda 100644 --- a/README.md +++ b/README.md @@ -60,4 +60,4 @@ When using the GitHub logos, be sure to follow the [GitHub logo guidelines](http ## Thanks :purple_heart: -Thanks for all your contributions and efforts towards improving the GitHub documentation. We thank you being part of our :sparkles: community :sparkles: ! +Thanks for all your contributions and efforts towards improving the GitHub documentation. We thank you being part of our :sparkles: community :sparkles:! diff --git a/assets/images/help/2fa/2fa-password-reset.png b/assets/images/help/2fa/2fa-password-reset.png index 6cfa78f40d..397fa4e296 100644 Binary files a/assets/images/help/2fa/2fa-password-reset.png and b/assets/images/help/2fa/2fa-password-reset.png differ diff --git a/assets/images/help/dependabot/dependabot-alert-pr-link.png b/assets/images/help/dependabot/dependabot-alert-pr-link.png index 9028b6cf8e..4e1f857b0d 100644 Binary files a/assets/images/help/dependabot/dependabot-alert-pr-link.png and b/assets/images/help/dependabot/dependabot-alert-pr-link.png differ diff --git a/assets/images/help/dependabot/dependabot-security-update-error.png b/assets/images/help/dependabot/dependabot-security-update-error.png deleted file mode 100644 index 09b33196ba..0000000000 Binary files a/assets/images/help/dependabot/dependabot-security-update-error.png and /dev/null differ diff --git a/assets/images/help/graphs/click-alert-in-alerts-list-ungrouped.png b/assets/images/help/graphs/click-alert-in-alerts-list-ungrouped.png new file mode 100644 index 0000000000..078dab35da Binary files /dev/null and b/assets/images/help/graphs/click-alert-in-alerts-list-ungrouped.png differ diff --git a/assets/images/help/graphs/dependabot-alerts-filters.png b/assets/images/help/graphs/dependabot-alerts-filters.png new file mode 100644 index 0000000000..876b494e06 Binary files /dev/null and b/assets/images/help/graphs/dependabot-alerts-filters.png differ diff --git a/assets/images/help/organizations/repo-creation-perms-radio-buttons-fpt.png b/assets/images/help/organizations/repo-creation-perms-radio-buttons-fpt.png index 4d1a369f23..4147d54d16 100644 Binary files a/assets/images/help/organizations/repo-creation-perms-radio-buttons-fpt.png and b/assets/images/help/organizations/repo-creation-perms-radio-buttons-fpt.png differ diff --git a/assets/images/help/repository/create-dependabot-security-update-button-ungrouped.png b/assets/images/help/repository/create-dependabot-security-update-button-ungrouped.png new file mode 100644 index 0000000000..be29a07ae9 Binary files /dev/null and b/assets/images/help/repository/create-dependabot-security-update-button-ungrouped.png differ diff --git a/assets/images/help/repository/dependabot-alert-dismiss-drop-down-ungrouped.png b/assets/images/help/repository/dependabot-alert-dismiss-drop-down-ungrouped.png new file mode 100644 index 0000000000..de77c4b109 Binary files /dev/null and b/assets/images/help/repository/dependabot-alert-dismiss-drop-down-ungrouped.png differ diff --git a/assets/images/help/repository/dependabot-alerts-view.png b/assets/images/help/repository/dependabot-alerts-view.png index 5392ee6c2c..b8c20c500e 100644 Binary files a/assets/images/help/repository/dependabot-alerts-view.png and b/assets/images/help/repository/dependabot-alerts-view.png differ diff --git a/assets/images/help/repository/dependabot-vulnerabilities-number.png b/assets/images/help/repository/dependabot-vulnerabilities-number.png deleted file mode 100644 index 7b5b0a4a7b..0000000000 Binary files a/assets/images/help/repository/dependabot-vulnerabilities-number.png and /dev/null differ diff --git a/assets/images/help/repository/legacy-dependabot-alerts-view.png b/assets/images/help/repository/legacy-dependabot-alerts-view.png new file mode 100644 index 0000000000..110991e20d Binary files /dev/null and b/assets/images/help/repository/legacy-dependabot-alerts-view.png differ diff --git a/assets/images/help/settings/theme-choose-a-day-and-night-theme-to-sync-highcontrast.png b/assets/images/help/settings/theme-choose-a-day-and-night-theme-to-sync-highcontrast.png index b996e80656..88817f8a6d 100644 Binary files a/assets/images/help/settings/theme-choose-a-day-and-night-theme-to-sync-highcontrast.png and b/assets/images/help/settings/theme-choose-a-day-and-night-theme-to-sync-highcontrast.png differ diff --git a/assets/images/help/settings/theme-choose-a-single-theme-highcontrast.png b/assets/images/help/settings/theme-choose-a-single-theme-highcontrast.png index 6ebd1ebb82..ce39e05a05 100644 Binary files a/assets/images/help/settings/theme-choose-a-single-theme-highcontrast.png and b/assets/images/help/settings/theme-choose-a-single-theme-highcontrast.png differ diff --git a/azure-preview-env-template.json b/azure-preview-env-template.json index 911a103d15..ca9eb90a56 100644 --- a/azure-preview-env-template.json +++ b/azure-preview-env-template.json @@ -2,109 +2,168 @@ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { - "appName": { - "type": "String" - }, - "location": { - "type": "String" - }, - "linuxFxVersion": { - "type": "String" - }, - "dockerRegistryUrl": { - "type": "String" - }, - "dockerRegistryUsername": { - "type": "String" - }, - "dockerRegistryPassword": { - "type": "SecureString" + "appName": { + "defaultValue": null, + "type": "string", + "minLength": 5, + "maxLength": 63, + "metadata": { + "description": "A unique name for the app" } - }, - "variables": { - "appServicePlanName": "[concat('ASP-', parameters('appName'))]", - "dnsName": "[concat(parameters('appName'), '-', take(uniqueString(subscription().subscriptionId, resourceGroup().id, deployment().name), 6))]" + }, + "location": { + "type": "String" + }, + "containerImage": { + "type": "string", + "defaultValue": null, + "metadata": { + "description": "Container image to deploy" + } + }, + "dockerRegistryUrl": { + "type": "String", + "metadata": { + "description": "Should be a valid host name without protocol" + } + }, + "dockerRegistryUsername": { + "type": "String" + }, + "dockerRegistryPassword": { + "type": "SecureString" + } }, "resources": [ - { - - "type": "Microsoft.Web/serverfarms", - "apiVersion": "2021-02-01", - "name": "[variables('appServicePlanName')]", - "location": "[parameters('location')]", - "sku": { - "name": "B2" + { + "type": "Microsoft.ContainerInstance/containerGroups", + "name": "[parameters('appName')]", + "apiVersion": "2021-07-01", + "location": "[resourceGroup().location]", + "properties": { + "containers": [ + { + "name": "app", + "properties": { + "image": "[parameters('containerImage')]", + "ports": [ + { + "protocol": "TCP", + "port": 4000 + } + ], + "environmentVariables": [ + { + "name": "PORT", + "value": "4000" + }, + { + "name": "NODE_ENV", + "value": "production" + }, + { + "name": "WEB_CONCURRENCY", + "value": "1" + }, + { + "name": "ENABLED_LANGUAGES", + "value": "en" + } + ], + "resources": { + "requests": { + "memoryInGB": 4, + "cpu": 1 + } + } + } }, - "kind": "linux", - "properties": { - "reserved": true - } - }, - { - "type": "Microsoft.Web/sites", - "apiVersion": "2018-11-01", - "name": "[variables('dnsName')]", - "location": "[parameters('location')]", - "dependsOn": [ - "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanName'))]" - ], - "tags": { - "DocsAppName": "[parameters('appName')]" - }, - "properties": { - "name": "[variables('dnsName')]", - "siteConfig": { - "appSettings": [ - { - "name": "DOCKER_REGISTRY_SERVER_URL", - "value": "[parameters('dockerRegistryUrl')]" - }, - { - "name": "DOCKER_REGISTRY_SERVER_USERNAME", - "value": "[parameters('dockerRegistryUsername')]" - }, - { - "name": "DOCKER_REGISTRY_SERVER_PASSWORD", - "value": "[parameters('dockerRegistryPassword')]" - }, - { - "name": "WEBSITES_ENABLE_APP_SERVICE_STORAGE", - "value": "false" - }, - { - "name": "NODE_ENV", - "value": "production" - }, - { - "name": "PORT", - "value": "4000" - }, - { - "name": "DEPLOYMENT_ENV", - "value": "azure" - }, - { - "name": "ENABLED_LANGUAGES", - "value": "en" - } - ], - "linuxFxVersion": "[parameters('linuxFxVersion')]", - "appCommandLine": "", - "alwaysOn": false, - "numberOfWorkers": 1, - "healthCheckPath": "/healthz", - "httpLoggingEnabled": true, - "logsDirectorySizeLimit": 35 + { + "name": "caddy-ssl-server", + "properties": { + "image": "caddy:2.4.6", + "command": [ + "caddy", + "reverse-proxy", + "--from", + "[concat(parameters('appName'), '.', parameters('location'), '.azurecontainer.io')]", + "--to", + "localhost:4000" + ], + "ports": [ + { + "protocol": "TCP", + "port": 443 + }, + { + "protocol": "TCP", + "port": 80 + } + ], + "environmentVariables": [], + "resources": { + "requests": { + "memoryInGB": 1, + "cpu": 1 + } }, - "serverFarmId": "[concat('/subscriptions/', subscription().id, '/resourcegroups/', resourceGroup().name, '/providers/Microsoft.Web/serverfarms/', variables('appServicePlanName'))]", - "clientAffinityEnabled": false + "volumeMounts": [ + { + "name": "data", + "mountPath": "/data" + }, + { + "name": "config", + "mountPath": "/config" + } + ] + } } + ], + "volumes": [ + { + "name": "data", + "emptyDir": {} + }, + { + "name": "config", + "emptyDir": {} + } + ], + "imageRegistryCredentials": [ + { + "server": "[parameters('dockerRegistryUrl')]", + "username": "[parameters('dockerRegistryUsername')]", + "password": "[parameters('dockerRegistryPassword')]" + } + ], + "restartPolicy": "Always", + "ipAddress": { + "ports": [ + { + "protocol": "TCP", + "port": 443 + }, + { + "protocol": "TCP", + "port": 4000 + }, + { + "protocol": "TCP", + "port": 80 + } + ], + "type": "Public", + "dnsNameLabel": "[parameters('appName')]" + }, + "osType": "Linux" } + } ], "outputs": { - "defaultHostName": { - "type": "string", - "value": "[concat('https://', variables('dnsName'), '.azurewebsites.net')]" - } + "defaultHostName": { + "value": "[reference(resourceId('Microsoft.ContainerInstance/containerGroups', parameters('appName'))).ipAddress.fqdn]", + "type": "string" + } } } diff --git a/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-access-to-your-personal-repositories/inviting-collaborators-to-a-personal-repository.md b/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-access-to-your-personal-repositories/inviting-collaborators-to-a-personal-repository.md index 6b8b438787..e529d774e8 100644 --- a/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-access-to-your-personal-repositories/inviting-collaborators-to-a-personal-repository.md +++ b/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-access-to-your-personal-repositories/inviting-collaborators-to-a-personal-repository.md @@ -37,7 +37,7 @@ If you're a member of an {% data variables.product.prodname_emu_enterprise %}, y 1. Ask for the username of the person you're inviting as a collaborator.{% ifversion fpt or ghec %} If they don't have a username yet, they can sign up for {% data variables.product.prodname_dotcom %} For more information, see "[Signing up for a new {% data variables.product.prodname_dotcom %} account](/articles/signing-up-for-a-new-github-account)".{% endif %} {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-settings %} -{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5658%} +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5658%} {% data reusables.repositories.click-collaborators-teams %} 1. Click **Invite a collaborator**.  diff --git a/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-access-to-your-personal-repositories/removing-a-collaborator-from-a-personal-repository.md b/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-access-to-your-personal-repositories/removing-a-collaborator-from-a-personal-repository.md index 423f53ac6b..46a1815b00 100644 --- a/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-access-to-your-personal-repositories/removing-a-collaborator-from-a-personal-repository.md +++ b/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-access-to-your-personal-repositories/removing-a-collaborator-from-a-personal-repository.md @@ -29,7 +29,7 @@ While forks of private repositories are deleted when a collaborator is removed, {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-settings %} -{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5658 %} +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5658 %} {% data reusables.repositories.click-collaborators-teams %} 4. To the right of the collaborator you want to remove, click {% octicon "trash" aria-label="The trash icon" %}.  diff --git a/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-access-to-your-personal-repositories/removing-yourself-from-a-collaborators-repository.md b/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-access-to-your-personal-repositories/removing-yourself-from-a-collaborators-repository.md index d0aef51457..9083c088b7 100644 --- a/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-access-to-your-personal-repositories/removing-yourself-from-a-collaborators-repository.md +++ b/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-access-to-your-personal-repositories/removing-yourself-from-a-collaborators-repository.md @@ -20,7 +20,7 @@ topics: shortTitle: Remove yourself --- {% data reusables.user_settings.access_settings %} -{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5658 %} +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5658 %} 2. In the "Code, planning, and automation" section of the sidebar, click **{% octicon "repo" aria-label="The repo icon" %} Repositories**. {% else %} 2. In the left sidebar, click **Repositories**. diff --git a/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-user-account-settings/managing-your-theme-settings.md b/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-user-account-settings/managing-your-theme-settings.md index d8335fc89f..5c314444e4 100644 --- a/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-user-account-settings/managing-your-theme-settings.md +++ b/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-user-account-settings/managing-your-theme-settings.md @@ -22,7 +22,7 @@ You may want to use a dark theme to reduce power consumption on certain devices, {% note %} -**Note:** The colorblind themes and light high contrast theme are currently in public beta. For more information on enabling features in public beta, see "[Exploring early access releases with feature preview](/get-started/using-github/exploring-early-access-releases-with-feature-preview)." +**Note:** The colorblind themes are currently in public beta. For more information on enabling features in public beta, see "[Exploring early access releases with feature preview](/get-started/using-github/exploring-early-access-releases-with-feature-preview)." {% endnote %} diff --git a/content/actions/hosting-your-own-runners/adding-self-hosted-runners.md b/content/actions/hosting-your-own-runners/adding-self-hosted-runners.md index b1bd8075ff..52cc87e50c 100644 --- a/content/actions/hosting-your-own-runners/adding-self-hosted-runners.md +++ b/content/actions/hosting-your-own-runners/adding-self-hosted-runners.md @@ -37,19 +37,18 @@ For more information, see "[About self-hosted runners](/github/automating-your-w You can add self-hosted runners to a single repository. To add a self-hosted runner to a user repository, you must be the repository owner. For an organization repository, you must be an organization owner or have admin access to the repository. For information about how to add a self-hosted runner with the REST API, see "[Self-hosted runners](/rest/reference/actions#self-hosted-runners)." -{% ifversion fpt or ghec %} +{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5091 %} {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-settings %} {% data reusables.github-actions.settings-sidebar-actions %} {% data reusables.github-actions.settings-sidebar-actions-runners-updated %} 1. Click **New self-hosted runner**. {% data reusables.github-actions.self-hosted-runner-configure %} -{% endif %} -{% ifversion ghae or ghes %} +{% elsif ghae or ghes < 3.4 %} {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-settings %} {% data reusables.github-actions.settings-sidebar-actions-runners %} -1. Under {% ifversion fpt or ghes > 3.1 or ghae or ghec %}"Runners"{% else %}"Self-hosted runners"{% endif %}, click **Add runner**. +1. Under {% ifversion ghes > 3.1 or ghae or ghec %}"Runners"{% else %}"Self-hosted runners"{% endif %}, click **Add runner**. {% data reusables.github-actions.self-hosted-runner-configure %} {% endif %} {% data reusables.github-actions.self-hosted-runner-check-installation-success %} @@ -58,19 +57,18 @@ You can add self-hosted runners to a single repository. To add a self-hosted run You can add self-hosted runners at the organization level, where they can be used to process jobs for multiple repositories in an organization. To add a self-hosted runner to an organization, you must be an organization owner. For information about how to add a self-hosted runner with the REST API, see "[Self-hosted runners](/rest/reference/actions#self-hosted-runners)." -{% ifversion fpt or ghec %} +{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5091 %} {% data reusables.organizations.navigate-to-org %} {% data reusables.organizations.org_settings %} {% data reusables.github-actions.settings-sidebar-actions %} {% data reusables.github-actions.settings-sidebar-actions-runners-updated %} 1. Click **New runner**. {% data reusables.github-actions.self-hosted-runner-configure %} -{% endif %} -{% ifversion ghae or ghes %} +{% elsif ghae or ghes < 3.4 %} {% data reusables.organizations.navigate-to-org %} {% data reusables.organizations.org_settings %} {% data reusables.github-actions.settings-sidebar-actions-runners %} -1. Under {% ifversion fpt or ghes > 3.1 or ghae or ghec %}"Runners"{% else %}"Self-hosted runners"{% endif %}, click **Add runner**. +1. Under {% ifversion ghes > 3.1 or ghae %}"Runners", click **Add new**, then click **New runner**.{% elsif ghes < 3.2 %}"Self-hosted runners", click **Add runner**."{% endif %} {% data reusables.github-actions.self-hosted-runner-configure %} {% endif %} @@ -86,7 +84,7 @@ You can add self-hosted runners at the organization level, where they can be use New runners are assigned to the default group. You can modify the runner's group after you've registered the runner. For more information, see "[Managing access to self-hosted runners](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups#moving-a-self-hosted-runner-to-a-group)." -{% ifversion ghec %} +{% ifversion ghec or ghes > 3.3 or ghae-issue-5091 %} To add a self-hosted runner to an enterprise account, you must be an enterprise owner. For information about how to add a self-hosted runner with the REST API, see the [Enterprise Administration GitHub Actions APIs](/rest/reference/enterprise-admin#github-actions). {% data reusables.enterprise-accounts.access-enterprise %} @@ -95,8 +93,7 @@ To add a self-hosted runner to an enterprise account, you must be an enterprise {% data reusables.enterprise-accounts.actions-runners-tab %} 1. Click **New runner**. {% data reusables.github-actions.self-hosted-runner-configure %} -{% endif %} -{% ifversion ghae or ghes %} +{% elsif ghae or ghes < 3.4 %} To add a self-hosted runner at the enterprise level of {% data variables.product.product_location %}, you must be a site administrator. {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.policies-tab %} @@ -105,11 +102,9 @@ To add a self-hosted runner at the enterprise level of {% data variables.product 1. Click **Add new**, then click **New runner**. {% data reusables.github-actions.self-hosted-runner-configure %} {% endif %} -{% ifversion ghec or ghae or ghes %} {% data reusables.github-actions.self-hosted-runner-check-installation-success %} {% data reusables.github-actions.self-hosted-runner-public-repo-access %} -{% endif %} ### Making enterprise runners available to repositories diff --git a/content/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups.md b/content/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups.md index a0afa6e963..a77a01a315 100644 --- a/content/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups.md +++ b/content/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups.md @@ -45,7 +45,7 @@ Self-hosted runners are automatically assigned to the default group when created When creating a group, you must choose a policy that defines which repositories have access to the runner group. -{% ifversion ghec %} +{% ifversion ghec or ghes > 3.3 or ghae-issue-5091 %} {% data reusables.organizations.navigate-to-org %} {% data reusables.organizations.org_settings %} {% data reusables.github-actions.settings-sidebar-actions-runner-groups %} @@ -60,12 +60,11 @@ When creating a group, you must choose a policy that defines which repositories {% endwarning %} {% data reusables.github-actions.self-hosted-runner-create-group %} -{% endif %} -{% ifversion ghae or ghes %} +{% elsif ghae or ghes < 3.4 %} {% data reusables.organizations.navigate-to-org %} {% data reusables.organizations.org_settings %} {% data reusables.github-actions.settings-sidebar-actions-runners %} -1. In the "Self-hosted runners" section, click **Add new**, and then **New group**. +1. Under {% ifversion ghes > 3.1 or ghae %}"Runners"{% elsif ghes < 3.2 %}"Self-hosted runners"{% endif %}, click **Add new**, and then **New group**.  1. Enter a name for your runner group, and assign a policy for repository access. @@ -94,7 +93,7 @@ Self-hosted runners are automatically assigned to the default group when created When creating a group, you must choose a policy that defines which organizations have access to the runner group. -{% ifversion ghec %} +{% ifversion ghec or ghes > 3.3 or ghae-issue-5091 %} {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.policies-tab %} {% data reusables.enterprise-accounts.actions-tab %} @@ -112,8 +111,7 @@ When creating a group, you must choose a policy that defines which organizations {% endwarning %} {% data reusables.github-actions.self-hosted-runner-create-group %} -{% endif %} -{% ifversion ghae or ghes %} +{% elsif ghae or ghes < 3.4 %} {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.policies-tab %} {% data reusables.enterprise-accounts.actions-tab %} @@ -143,7 +141,7 @@ When creating a group, you must choose a policy that defines which organizations ## Changing the access policy of a self-hosted runner group You can update the access policy of a runner group, or rename a runner group. -{% ifversion fpt or ghec %} +{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5091 %} {% data reusables.github-actions.self-hosted-runner-groups-navigate-to-repo-org-enterprise %} {% data reusables.github-actions.settings-sidebar-actions-runner-groups-selection %} 1. Modify the access options, or change the runner group name. @@ -157,8 +155,7 @@ You can update the access policy of a runner group, or rename a runner group. For more information, see "[About self-hosted runners](/actions/hosting-your-own-runners/about-self-hosted-runners#self-hosted-runner-security-with-public-repositories)." {% endwarning %} -{% endif %} -{% ifversion ghae or ghes %} +{% elsif ghae or ghes < 3.4 %} {% data reusables.github-actions.self-hosted-runner-configure-runner-group-access %} {% endif %} @@ -180,20 +177,21 @@ Could not find any self-hosted runner group named "rg-runnergroup". ## Moving a self-hosted runner to a group If you don't specify a runner group during the registration process, your new self-hosted runners are automatically assigned to the default group, and can then be moved to another group. -{% ifversion ghec or ghes > 3.1 or ghae %} + {% data reusables.github-actions.self-hosted-runner-navigate-to-org-enterprise %} +{% ifversion ghec or ghes > 3.3 or ghae-issue-5091 %} 1. In the "Runners" list, click the runner that you want to configure. 2. Select the Runner group dropdown menu. 3. In "Move runner to group", choose a destination group for the runner. -{% endif %} -{% ifversion ghes < 3.2 or ghae %} -1. In the "Self-hosted runners" section of the settings page, locate the current group of the runner you want to move and expand the list of group members. +{% elsif ghae or ghes < 3.4 %} +1. In the {% ifversion ghes > 3.1 or ghae %}"Runner groups"{% elsif ghes < 3.2 %}"Self-hosted runners"{% endif %} section of the settings page, locate the current group of the runner you want to move and expand the list of group members.  2. Select the checkbox next to the self-hosted runner, and then click **Move to group** to see the available destinations.  3. To move the runner, click on the destination group.  {% endif %} + ## Removing a self-hosted runner group Self-hosted runners are automatically returned to the default group when their group is removed. @@ -203,8 +201,7 @@ Self-hosted runners are automatically returned to the default group when their g 1. In the list of groups, to the right of the group you want to delete, click {% octicon "kebab-horizontal" aria-label="The horizontal kebab icon" %}. 2. To remove the group, click **Remove group**. 3. Review the confirmation prompts, and click **Remove this runner group**. -{% endif %} -{% ifversion ghes < 3.2 or ghae %} +{% elsif ghes < 3.2 %} 1. In the "Self-hosted runners" section of the settings page, locate the group you want to delete, and click the {% octicon "kebab-horizontal" aria-label="The horizontal kebab icon" %} button.  diff --git a/content/actions/hosting-your-own-runners/removing-self-hosted-runners.md b/content/actions/hosting-your-own-runners/removing-self-hosted-runners.md index 49a1a6d3d0..759f3c3332 100644 --- a/content/actions/hosting-your-own-runners/removing-self-hosted-runners.md +++ b/content/actions/hosting-your-own-runners/removing-self-hosted-runners.md @@ -30,20 +30,20 @@ shortTitle: Remove self-hosted runners To remove a self-hosted runner from a user repository you must be the repository owner. For an organization repository, you must be an organization owner or have admin access to the repository. We recommend that you also have access to the self-hosted runner machine. For information about how to remove a self-hosted runner with the REST API, see "[Self-hosted runners](/rest/reference/actions#self-hosted-runners)." {% data reusables.github-actions.self-hosted-runner-reusing %} -{% ifversion fpt or ghec %} +{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5091 %} {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-settings %} {% data reusables.github-actions.settings-sidebar-actions %} {% data reusables.github-actions.settings-sidebar-actions-runners-updated %} {% data reusables.github-actions.settings-sidebar-actions-runner-selection %} {% data reusables.github-actions.self-hosted-runner-removing-a-runner-updated %} -{% endif %} -{% ifversion ghae or ghes %} +{% elsif ghae or ghes < 3.4 %} {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-settings %} {% data reusables.github-actions.settings-sidebar-actions-runners %} {% data reusables.github-actions.self-hosted-runner-removing-a-runner %} {% endif %} + ## Removing a runner from an organization {% note %} @@ -57,19 +57,20 @@ To remove a self-hosted runner from a user repository you must be the repository To remove a self-hosted runner from an organization, you must be an organization owner. We recommend that you also have access to the self-hosted runner machine. For information about how to remove a self-hosted runner with the REST API, see "[Self-hosted runners](/rest/reference/actions#self-hosted-runners)." {% data reusables.github-actions.self-hosted-runner-reusing %} -{% ifversion fpt or ghes > 3.1 or ghae or ghec %} +{% ifversion fpt or ghes > 3.3 or ghec %} {% data reusables.organizations.navigate-to-org %} {% data reusables.organizations.org_settings %} {% data reusables.github-actions.settings-sidebar-actions %} {% data reusables.github-actions.settings-sidebar-actions-runners-updated %} {% data reusables.github-actions.settings-sidebar-actions-runner-selection %} {% data reusables.github-actions.self-hosted-runner-removing-a-runner-updated %} -{% else %} +{% elsif ghes < 3.4 or ghae %} {% data reusables.organizations.navigate-to-org %} {% data reusables.organizations.org_settings %} {% data reusables.github-actions.settings-sidebar-actions-runners %} {% data reusables.github-actions.self-hosted-runner-removing-a-runner %} {% endif %} + ## Removing a runner from an enterprise {% ifversion fpt %} @@ -84,18 +85,17 @@ If you use {% data variables.product.prodname_ghe_cloud %}, you can also remove {% endnote %} -{% data reusables.github-actions.self-hosted-runner-reusing %} +To remove a self-hosted runner from an enterprise, you must be an enterprise owner. We recommend that you also have access to the self-hosted runner machine. For information about how to remove a self-hosted runner with the REST API, see the [Enterprise Administration GitHub Actions APIs](/rest/reference/enterprise-admin#github-actions). -{% ifversion ghec %} -To remove a self-hosted runner from an enterprise account, you must be an enterprise owner. We recommend that you also have access to the self-hosted runner machine. For information about how to add a self-hosted runner with the REST API, see the [Enterprise Administration GitHub Actions APIs](/rest/reference/enterprise-admin#github-actions). +{% data reusables.github-actions.self-hosted-runner-reusing %} +{% ifversion ghec or ghes > 3.3 or ghae-issue-5091 %} {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.policies-tab %} {% data reusables.enterprise-accounts.actions-tab %} {% data reusables.enterprise-accounts.actions-runners-tab %} {% data reusables.github-actions.settings-sidebar-actions-runner-selection %} {% data reusables.github-actions.self-hosted-runner-removing-a-runner-updated %} -{% elsif ghae or ghes %} -To remove a self-hosted runner at the enterprise level of {% data variables.product.product_location %}, you must be an enterprise owner. We recommend that you also have access to the self-hosted runner machine. +{% elsif ghae or ghes < 3.4 %} {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.policies-tab %} {% data reusables.enterprise-accounts.actions-tab %} diff --git a/content/actions/hosting-your-own-runners/using-labels-with-self-hosted-runners.md b/content/actions/hosting-your-own-runners/using-labels-with-self-hosted-runners.md index 42ac880513..4b4b6edb5b 100644 --- a/content/actions/hosting-your-own-runners/using-labels-with-self-hosted-runners.md +++ b/content/actions/hosting-your-own-runners/using-labels-with-self-hosted-runners.md @@ -19,14 +19,14 @@ For information on how to use labels to route jobs to specific types of self-hos {% data reusables.github-actions.self-hosted-runner-management-permissions-required %} ## Creating a custom label -{% ifversion fpt or ghec %} + +{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5091 %} {% data reusables.github-actions.self-hosted-runner-navigate-to-repo-org-enterprise %} {% data reusables.github-actions.settings-sidebar-actions-runner-selection %} 1. In the "Labels" section, click {% octicon "gear" aria-label="The Gear icon" %}. 1. In the "Find or create a label" field, type the name of your new label and click **Create new label**. The custom label is created and assigned to the self-hosted runner. Custom labels can be removed from self-hosted runners, but they currently can't be manually deleted. {% data reusables.github-actions.actions-unused-labels %} -{% endif %} -{% ifversion ghae or ghes %} +{% elsif ghae or ghes < 3.4 %} {% data reusables.github-actions.self-hosted-runner-navigate-to-repo-org-enterprise %} {% data reusables.github-actions.self-hosted-runner-list %} {% data reusables.github-actions.self-hosted-runner-list-group %} @@ -36,34 +36,37 @@ For information on how to use labels to route jobs to specific types of self-hos The custom label is created and assigned to the self-hosted runner. Custom labels can be removed from self-hosted runners, but they currently can't be manually deleted. {% data reusables.github-actions.actions-unused-labels %} {% endif %} + ## Assigning a label to a self-hosted runner -{% ifversion fpt or ghec %} + +{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5091 %} {% data reusables.github-actions.self-hosted-runner-navigate-to-repo-org-enterprise %} {% data reusables.github-actions.settings-sidebar-actions-runner-selection %} {% data reusables.github-actions.runner-label-settings %} 1. To assign a label to your self-hosted runner, in the "Find or create a label" field, click the label. -{% endif %} -{% ifversion ghae or ghes %} +{% elsif ghae or ghes < 3.4 %} {% data reusables.github-actions.self-hosted-runner-navigate-to-repo-org-enterprise %} {% data reusables.github-actions.self-hosted-runner-list %} {% data reusables.github-actions.self-hosted-runner-list-group %} {% data reusables.github-actions.self-hosted-runner-labels-view-assigned-labels %} 1. Click on a label to assign it to your self-hosted runner. {% endif %} + ## Removing a custom label from a self-hosted runner -{% ifversion fpt or ghec %} + +{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5091 %} {% data reusables.github-actions.self-hosted-runner-navigate-to-repo-org-enterprise %} {% data reusables.github-actions.settings-sidebar-actions-runner-selection %} {% data reusables.github-actions.runner-label-settings %} 1. In the "Find or create a label" field, assigned labels are marked with the {% octicon "check" aria-label="The Check icon" %} icon. Click on a marked label to unassign it from your self-hosted runner. -{% endif %} -{% ifversion ghae or ghes %} +{% elsif ghae or ghes < 3.4 %} {% data reusables.github-actions.self-hosted-runner-navigate-to-repo-org-enterprise %} {% data reusables.github-actions.self-hosted-runner-list %} {% data reusables.github-actions.self-hosted-runner-list-group %} {% data reusables.github-actions.self-hosted-runner-labels-view-assigned-labels %} 1. Click on the assigned label to remove it from your self-hosted runner. {% data reusables.github-actions.actions-unused-labels %} {% endif %} + ## Using the configuration script to create and assign labels You can use the configuration script on the self-hosted runner to create and assign custom labels. For example, this command assigns a label named `gpu` to the self-hosted runner. diff --git a/content/authentication/keeping-your-account-and-data-secure/reviewing-your-deploy-keys.md b/content/authentication/keeping-your-account-and-data-secure/reviewing-your-deploy-keys.md index 7fef226524..ebba929003 100644 --- a/content/authentication/keeping-your-account-and-data-secure/reviewing-your-deploy-keys.md +++ b/content/authentication/keeping-your-account-and-data-secure/reviewing-your-deploy-keys.md @@ -17,7 +17,7 @@ shortTitle: Deploy keys --- {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-settings %} -{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5658 %} +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5658 %} 3. In the "Security" section of the sidebar, click **{% octicon "key" aria-label="The key icon" %} Deploy keys**. {% else %} 3. In the left sidebar, click **Deploy keys**. diff --git a/content/authentication/keeping-your-account-and-data-secure/reviewing-your-security-log.md b/content/authentication/keeping-your-account-and-data-secure/reviewing-your-security-log.md index 7c4aa867d4..03a5ca35b7 100644 --- a/content/authentication/keeping-your-account-and-data-secure/reviewing-your-security-log.md +++ b/content/authentication/keeping-your-account-and-data-secure/reviewing-your-security-log.md @@ -21,7 +21,7 @@ shortTitle: Security log The security log lists all actions performed within the last 90 days. {% data reusables.user_settings.access_settings %} -{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5658 %} +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5658 %} 1. In the "Archives" section of the sidebar, click **{% octicon "log" aria-label="The log icon" %} Security log**. {% else %} 1. In the user settings sidebar, click **Security log**. diff --git a/content/authentication/keeping-your-account-and-data-secure/updating-your-github-access-credentials.md b/content/authentication/keeping-your-account-and-data-secure/updating-your-github-access-credentials.md index 8ca974ea4b..fe97513d90 100644 --- a/content/authentication/keeping-your-account-and-data-secure/updating-your-github-access-credentials.md +++ b/content/authentication/keeping-your-account-and-data-secure/updating-your-github-access-credentials.md @@ -24,7 +24,7 @@ shortTitle: Update access credentials 2. Enter the email address associated with your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}, then click **Send password reset email.** The email will be sent to the backup email address if you have one configured.  3. We'll email you a link that will allow you to reset your password. You must click on this link within 3 hours of receiving the email. If you didn't receive an email from us, make sure to check your spam folder. -4. If you have enabled two-factor authentication, you will be prompted for your 2FA credentials. Type your 2FA credentials or one of your 2FA recovery codes and click **Verify**. +4. If you have enabled two-factor authentication, you will be prompted for your 2FA credentials. Type your authentication code or one of your recovery codes and click **Verify**. If you have added a security key to your account, you can insert the key and click **Use security key** instead of typing an authentication code.  5. Type a new password, confirm your new password, and click **Change password**. For help creating a strong password, see "[Creating a strong password](/articles/creating-a-strong-password)." {% ifversion fpt or ghec %}{% else %} diff --git a/content/code-security/getting-started/securing-your-organization.md b/content/code-security/getting-started/securing-your-organization.md index 25412c70df..d27d4e08ce 100644 --- a/content/code-security/getting-started/securing-your-organization.md +++ b/content/code-security/getting-started/securing-your-organization.md @@ -36,7 +36,7 @@ You can create a default security policy that will display in any of your organi {% ifversion fpt or ghes > 2.22 or ghae-issue-4864 or ghec %} ## Managing {% data variables.product.prodname_dependabot_alerts %} and the dependency graph -{% ifversion fpt or ghec %}By default, {% data variables.product.prodname_dotcom %} detects vulnerabilities in public repositories and generates {% data variables.product.prodname_dependabot_alerts %} and a dependency graph. You can enable or disable {% data variables.product.prodname_dependabot_alerts %} and the dependency graph for all private repositories owned by your organization. +{% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom %} detects vulnerabilities in public repositories and displays the dependency graph. You can enable or disable {% data variables.product.prodname_dependabot_alerts %} for all public repositories owned by your organization. You can enable or disable {% data variables.product.prodname_dependabot_alerts %} and the dependency graph for all private repositories owned by your organization. 1. Click your profile photo, then click **Organizations**. 2. Click **Settings** next to your organization. diff --git a/content/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/automating-dependabot-with-github-actions.md b/content/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/automating-dependabot-with-github-actions.md index a4c299c3dd..9b97e577a9 100644 --- a/content/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/automating-dependabot-with-github-actions.md +++ b/content/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/automating-dependabot-with-github-actions.md @@ -30,11 +30,17 @@ shortTitle: Use Dependabot with Actions {% data variables.product.prodname_dependabot %} is able to trigger {% data variables.product.prodname_actions %} workflows on its pull requests and comments; however, certain events are treated differently. -For workflows initiated by {% data variables.product.prodname_dependabot %} (`github.actor == "dependabot[bot]"`) using the `pull_request`, `pull_request_review`, `pull_request_review_comment`, and `push` events, the following restrictions apply: +{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5792 %} +For workflows initiated by {% data variables.product.prodname_dependabot %} (`github.actor == "dependabot[bot]"`) using the `pull_request`, `pull_request_review`, `pull_request_review_comment`, `push`, `create`, `deployment`, and `deployment_status` events, the following restrictions apply: +{% endif %} - {% ifversion ghes = 3.3 %}`GITHUB_TOKEN` has read-only permissions, unless your administrator has removed restrictions.{% else %}`GITHUB_TOKEN` has read-only permissions by default.{% endif %} - {% ifversion ghes = 3.3 %}Secrets are inaccessible, unless your administrator has removed restrictions.{% else %}Secrets are populated from {% data variables.product.prodname_dependabot %} secrets. {% data variables.product.prodname_actions %} secrets are not available.{% endif %} +{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5792 %} +For workflows initiated by {% data variables.product.prodname_dependabot %} (`github.actor == "dependabot[bot]"`) using the `pull_request_target` event, if the base ref of the pull request was created by {% data variables.product.prodname_dependabot %} (`github.actor == "dependabot[bot]"`), the `GITHUB_TOKEN` will be read-only and secrets are not available. +{% endif %} + For more information, see ["Keeping your GitHub Actions and workflows secure: Preventing pwn requests"](https://securitylab.github.com/research/github-actions-preventing-pwn-requests/). {% ifversion fpt or ghec or ghes > 3.3 %} diff --git a/content/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/about-alerts-for-vulnerable-dependencies.md b/content/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/about-alerts-for-vulnerable-dependencies.md index 8b835ed644..9a41ccbd2a 100644 --- a/content/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/about-alerts-for-vulnerable-dependencies.md +++ b/content/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/about-alerts-for-vulnerable-dependencies.md @@ -58,7 +58,7 @@ For a list of the ecosystems that {% data variables.product.product_name %} can {% data reusables.repositories.enable-security-alerts %} -{% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom %} detects vulnerable dependencies in _public_ repositories and generates {% data variables.product.prodname_dependabot_alerts %} by default. Owners of private repositories, or people with admin access, can enable {% data variables.product.prodname_dependabot_alerts %} by enabling the dependency graph and {% data variables.product.prodname_dependabot_alerts %} for their repositories. +{% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom %} detects vulnerable dependencies in _public_ repositories and displays the dependency graph, but does not generate {% data variables.product.prodname_dependabot_alerts %} by default. Repository owners or people with admin access can enable {% data variables.product.prodname_dependabot_alerts %} for public repositories. Owners of private repositories, or people with admin access, can enable {% data variables.product.prodname_dependabot_alerts %} by enabling the dependency graph and {% data variables.product.prodname_dependabot_alerts %} for their repositories. You can also enable or disable {% data variables.product.prodname_dependabot_alerts %} for all repositories owned by your user account or organization. For more information, see "[Managing security and analysis settings for your user account](/github/setting-up-and-managing-your-github-user-account/managing-security-and-analysis-settings-for-your-user-account)" or "[Managing security and analysis settings for your organization](/organizations/keeping-your-organization-secure/managing-security-and-analysis-settings-for-your-organization)." diff --git a/content/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/troubleshooting-dependabot-errors.md b/content/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/troubleshooting-dependabot-errors.md index 6d2de3a534..f0e5dc57aa 100644 --- a/content/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/troubleshooting-dependabot-errors.md +++ b/content/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/troubleshooting-dependabot-errors.md @@ -46,8 +46,6 @@ There are three reasons why an alert may have no pull request link: If an error blocked {% data variables.product.prodname_dependabot %} from creating a pull request, you can display details of the error by clicking the alert. - - ## Investigating errors with {% data variables.product.prodname_dependabot_version_updates %} When {% data variables.product.prodname_dependabot %} is blocked from creating a pull request to update a dependency in an ecosystem, it posts the error icon on the manifest file. The manifest files that are managed by {% data variables.product.prodname_dependabot %} are listed on the {% data variables.product.prodname_dependabot %} tab. To access this tab, on the **Insights** tab for the repository click **Dependency graph**, and then click the **{% data variables.product.prodname_dependabot %}** tab. diff --git a/content/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/troubleshooting-the-detection-of-vulnerable-dependencies.md b/content/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/troubleshooting-the-detection-of-vulnerable-dependencies.md index 2e0ad140d1..4a967cf2fb 100644 --- a/content/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/troubleshooting-the-detection-of-vulnerable-dependencies.md +++ b/content/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/troubleshooting-the-detection-of-vulnerable-dependencies.md @@ -103,17 +103,17 @@ Since {% data variables.product.prodname_dependabot %} uses curated data in the {% ifversion fpt or ghec %} ## Does each dependency vulnerability generate a separate alert? -When a dependency has multiple vulnerabilities, only one aggregated alert is generated for that dependency, instead of one alert per vulnerability. +When a dependency has multiple vulnerabilities, an alert is generated for each vulnerability at the level of advisory plus manifest. -The {% data variables.product.prodname_dependabot_alerts %} count in {% data variables.product.prodname_dotcom %} shows a total for the number of alerts, that is, the number of dependencies with vulnerabilities, not the number of vulnerabilities. + - +Legacy {% data variables.product.prodname_dependabot_alerts %} were grouped into a single aggregated alert with all the vulnerabilities for the same dependency. If you navigate to a link to a legacy {% data variables.product.prodname_dependabot %} alert, you will be redirected to the {% data variables.product.prodname_dependabot_alerts %} tab filtered to display vulnerabilities for that dependent package and manifest. -When you click to display the alert details, you can see how many vulnerabilities are included in the alert. + - +The {% data variables.product.prodname_dependabot_alerts %} count in {% data variables.product.prodname_dotcom %} shows a total for the number of alerts, which is the number of vulnerabilities, not the number of dependencies. -**Check**: If there is a discrepancy in the totals you are seeing, check that you are not comparing alert numbers with vulnerability numbers. +**Check**: If there is a discrepancy in the totals you are seeing, check that you are not comparing alert numbers with dependency numbers. Also check that you are viewing all alerts and not a subset of filtered alerts. {% endif %} ## Further reading diff --git a/content/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/viewing-and-updating-vulnerable-dependencies-in-your-repository.md b/content/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/viewing-and-updating-vulnerable-dependencies-in-your-repository.md index c2a6b0c128..4029faa7f6 100644 --- a/content/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/viewing-and-updating-vulnerable-dependencies-in-your-repository.md +++ b/content/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/viewing-and-updating-vulnerable-dependencies-in-your-repository.md @@ -25,7 +25,7 @@ topics: {% data reusables.dependabot.beta-security-and-version-updates %} {% data reusables.dependabot.enterprise-enable-dependabot %} -Your repository's {% data variables.product.prodname_dependabot_alerts %} tab lists all open and closed {% data variables.product.prodname_dependabot_alerts %}{% ifversion fpt or ghec or ghes > 3.2 %} and corresponding {% data variables.product.prodname_dependabot_security_updates %}{% endif %}. You can sort the list of alerts by selecting the drop-down menu, and you can click into specific alerts for more details. For more information, see "[About alerts for vulnerable dependencies](/code-security/supply-chain-security/about-alerts-for-vulnerable-dependencies)." +Your repository's {% data variables.product.prodname_dependabot_alerts %} tab lists all open and closed {% data variables.product.prodname_dependabot_alerts %}{% ifversion fpt or ghec or ghes > 3.2 %} and corresponding {% data variables.product.prodname_dependabot_security_updates %}{% endif %}. You can{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5638 %} filter alerts by package, ecosystem, or manifest. You can also{% endif %} sort the list of alerts, and you can click into specific alerts for more details. For more information, see "[About alerts for vulnerable dependencies](/code-security/supply-chain-security/about-alerts-for-vulnerable-dependencies)." {% ifversion fpt or ghec or ghes > 3.2 %} You can enable automatic security updates for any repository that uses {% data variables.product.prodname_dependabot_alerts %} and the dependency graph. For more information, see "[About {% data variables.product.prodname_dependabot_security_updates %}](/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/about-dependabot-security-updates)." @@ -37,11 +37,30 @@ You can enable automatic security updates for any repository that uses {% data v ## About updates for vulnerable dependencies in your repository {% data variables.product.product_name %} generates {% data variables.product.prodname_dependabot_alerts %} when we detect that your codebase is using dependencies with known vulnerabilities. For repositories where {% data variables.product.prodname_dependabot_security_updates %} are enabled, when {% data variables.product.product_name %} detects a vulnerable dependency in the default branch, {% data variables.product.prodname_dependabot %} creates a pull request to fix it. The pull request will upgrade the dependency to the minimum possible secure version needed to avoid the vulnerability. + +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5638 %}You can sort and filter {% data variables.product.prodname_dependabot_alerts %} with the dropdown menus in the {% data variables.product.prodname_dependabot_alerts %} tab or by typing filters as `key:value` pairs into the search bar. The available filters are repository (for example, `repo:my-repository`), package (for example, `package:django`), ecosystem (for example, `ecosystem:npm`), manifest (for example, `manifest:webwolf/pom.xml`), state (for example, `is:open`), and whether an advisory has a patch (for example, `has: patch`). + +Each {% data variables.product.prodname_dependabot %} alert has a unique numeric identifier and the {% data variables.product.prodname_dependabot_alerts %} tab lists an alert for every detected vulnerability. Legacy {% data variables.product.prodname_dependabot_alerts %} grouped vulnerabilities by dependency and generated a single alert per dependency. If you navigate to a legacy {% data variables.product.prodname_dependabot %} alert, you will be redirected to a {% data variables.product.prodname_dependabot_alerts %} tab filtered for that package. {% endif %} {% endif %} ## Viewing and updating vulnerable dependencies -{% ifversion fpt or ghec or ghes > 3.2 %} +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5638 %} +{% data reusables.repositories.navigate-to-repo %} +{% data reusables.repositories.sidebar-security %} +{% data reusables.repositories.sidebar-dependabot-alerts %} +1. Optionally, to filter alerts, select the **Repository**, **Package**, **Ecosystem**, or **Manifest** dropdown menu then click the filter that you would like to apply. You can also type filters into the search bar. For example, `ecosystem:npm` or `has:patch`. To sort alerts, select the **Sort** dropdown menu then click the option that you would like to sort by. +  +1. Click the alert that you would like to view. +  +1. Review the details of the vulnerability and, if available, the pull request containing the automated security update. +1. Optionally, if there isn't already a {% data variables.product.prodname_dependabot_security_updates %} update for the alert, to create a pull request to resolve the vulnerability, click **Create {% data variables.product.prodname_dependabot %} security update**. +  +1. When you're ready to update your dependency and resolve the vulnerability, merge the pull request. Each pull request raised by {% data variables.product.prodname_dependabot %} includes information on commands you can use to control {% data variables.product.prodname_dependabot %}. For more information, see "[Managing pull requests for dependency updates](/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/managing-pull-requests-for-dependency-updates#managing-dependabot-pull-requests-with-comment-commands)." +1. Optionally, if the alert is being fixed, if it's incorrect, or located in unused code, select the "Dismiss" drop-down, and click a reason for dismissing the alert. +  + +{% elsif ghes = 3.3 %} {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-security %} {% data reusables.repositories.sidebar-dependabot-alerts %} @@ -54,7 +73,7 @@ You can enable automatic security updates for any repository that uses {% data v 1. Optionally, if the alert is being fixed, if it's incorrect, or located in unused code, select the "Dismiss" drop-down, and click a reason for dismissing the alert.  -{% elsif ghes > 3.0 or ghae-issue-4864 %} +{% elsif ghes = 3.1 or ghes = 3.2 or ghae-issue-4864 %} {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-security %} {% data reusables.repositories.sidebar-dependabot-alerts %} diff --git a/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph.md b/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph.md index 9dfc90486b..0956aede41 100644 --- a/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph.md +++ b/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph.md @@ -88,7 +88,7 @@ The recommended formats explicitly define which versions are used for all direct | Maven | Java, Scala | `pom.xml` | `pom.xml` | | npm | JavaScript | `package-lock.json` | `package-lock.json`, `package.json`| | Python PIP | Python | `requirements.txt`, `pipfile.lock` | `requirements.txt`, `pipfile`, `pipfile.lock`, `setup.py`{% if github-actions-in-dependency-graph %}[2]{% else %}[1]{% endif %} | -{%- ifversion fpt or ghes > 3.3 %} +{%- ifversion fpt or ghec or ghes > 3.3 or ghae-issue-4752 %} | Python Poetry | Python | `poetry.lock` | `poetry.lock`, `pyproject.toml` |{% endif %} | RubyGems | Ruby | `Gemfile.lock` | `Gemfile.lock`, `Gemfile`, `*.gemspec` | | Yarn | JavaScript | `yarn.lock` | `package.json`, `yarn.lock` | diff --git a/content/get-started/customizing-your-github-workflow/exploring-integrations/github-extensions-and-integrations.md b/content/get-started/customizing-your-github-workflow/exploring-integrations/github-extensions-and-integrations.md index 086fc51c68..e477a3f6a3 100644 --- a/content/get-started/customizing-your-github-workflow/exploring-integrations/github-extensions-and-integrations.md +++ b/content/get-started/customizing-your-github-workflow/exploring-integrations/github-extensions-and-integrations.md @@ -45,10 +45,10 @@ You can integrate your personal or organization account on {% data variables.pro ### Slack and {% data variables.product.product_name %} integration -You can subscribe to your repositories or organizations and get realtime updates about issues, pull requests, commits, releases, deployment reviews and deployment statuses. You can also perform activities like close or open issues, and provide rich references to issues and pull requests without leaving Slack. +You can subscribe to your repositories or organizations and get realtime updates about issues, pull requests, commits, discussions, releases, deployment reviews and deployment statuses. You can also perform activities like close or open issues, and provide rich references to issues and pull requests without leaving Slack. The {% data variables.product.prodname_dotcom %} app is also compatible with [Slack Enterprise Grid](https://slack.com/intl/en-in/help/articles/360000281563-Manage-apps-on-Enterprise-Grid). For more information, visit the [Slack integration app](https://github.com/marketplace/slack-github) in the marketplace. ### Microsoft Teams and {% data variables.product.product_name %} integration -You can subscribe to your repositories or organizations and get realtime updates about issues, pull requests, commits, deployment reviews and deployment statuses. You can also perform activities like close or open issues, comment on your issues and pull requests, and provide rich references to issues and pull requests without leaving Microsoft Teams. For more information, visit the [Microsoft Teams integration app](https://appsource.microsoft.com/en-us/product/office/WA200002077) in Microsoft AppSource. +You can subscribe to your repositories or organizations and get realtime updates about issues, pull requests, commits, discussions, releases, deployment reviews and deployment statuses. You can also perform activities like close or open issues, comment on your issues and pull requests, and provide rich references to issues and pull requests without leaving Microsoft Teams. For more information, visit the [Microsoft Teams integration app](https://appsource.microsoft.com/en-us/product/office/WA200002077) in Microsoft AppSource. diff --git a/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/reviewing-your-organizations-installed-integrations.md b/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/reviewing-your-organizations-installed-integrations.md index ad7be37a60..72722f6626 100644 --- a/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/reviewing-your-organizations-installed-integrations.md +++ b/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/reviewing-your-organizations-installed-integrations.md @@ -19,9 +19,9 @@ shortTitle: Review installed integrations {% data reusables.profile.access_org %} {% data reusables.profile.org_settings %} -{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5658 %} +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5658 %} 1. In the "Integrations" section of the sidebar, click **{% octicon "apps" aria-label="The apps icon" %} {% data variables.product.prodname_github_apps %}**. -{% elsif ghae or ghes < 3.4 %} +{% else %} 1. In the left sidebar, click **Installed {% data variables.product.prodname_github_apps %}**.  {% endif %} diff --git a/content/organizations/managing-access-to-your-organizations-repositories/adding-outside-collaborators-to-repositories-in-your-organization.md b/content/organizations/managing-access-to-your-organizations-repositories/adding-outside-collaborators-to-repositories-in-your-organization.md index 172b741d51..e08fcb498f 100644 --- a/content/organizations/managing-access-to-your-organizations-repositories/adding-outside-collaborators-to-repositories-in-your-organization.md +++ b/content/organizations/managing-access-to-your-organizations-repositories/adding-outside-collaborators-to-repositories-in-your-organization.md @@ -40,7 +40,7 @@ To further support your team's collaboration abilities, you can upgrade to {% da {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-settings %} -{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5658 %} +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5658 %} {% data reusables.repositories.click-collaborators-teams %} {% data reusables.organizations.invite-teams-or-people %} 5. In the search field, start typing the name of person you want to invite, then click a name in the list of matches. diff --git a/content/organizations/managing-access-to-your-organizations-repositories/managing-an-individuals-access-to-an-organization-repository.md b/content/organizations/managing-access-to-your-organizations-repositories/managing-an-individuals-access-to-an-organization-repository.md index dca2061c91..175582a2d2 100644 --- a/content/organizations/managing-access-to-your-organizations-repositories/managing-an-individuals-access-to-an-organization-repository.md +++ b/content/organizations/managing-access-to-your-organizations-repositories/managing-an-individuals-access-to-an-organization-repository.md @@ -28,9 +28,9 @@ When you remove a collaborator from a repository in your organization, the colla {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-settings %} -{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5658 %} +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5658 %} {% data reusables.repositories.click-collaborators-teams %} -{% elsif ghes < 3.4 or ghae %} +{% else %} {% data reusables.repositories.navigate-to-manage-access %} {% endif %} {% data reusables.organizations.invite-teams-or-people %} diff --git a/content/organizations/managing-organization-settings/disabling-project-boards-in-your-organization.md b/content/organizations/managing-organization-settings/disabling-project-boards-in-your-organization.md index 69be8ae11c..c83355b58f 100644 --- a/content/organizations/managing-organization-settings/disabling-project-boards-in-your-organization.md +++ b/content/organizations/managing-organization-settings/disabling-project-boards-in-your-organization.md @@ -23,7 +23,7 @@ When you disable project boards, you will no longer see project board informatio {% data reusables.profile.access_org %} {% data reusables.profile.org_settings %} -{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5658 %} +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5658 %} 1. In the "Code planning, and automation" section of the sidebar, click **{% octicon "table" aria-label="The table icon" %} Projects**. {% endif %} 1. Decide whether to disable organization-wide project boards, disable repository project boards in the organization, or both. Then, under "Projects": diff --git a/content/organizations/managing-organization-settings/integrating-jira-with-your-organization-project-board.md b/content/organizations/managing-organization-settings/integrating-jira-with-your-organization-project-board.md index 4d62131020..9a7937c0b6 100644 --- a/content/organizations/managing-organization-settings/integrating-jira-with-your-organization-project-board.md +++ b/content/organizations/managing-organization-settings/integrating-jira-with-your-organization-project-board.md @@ -9,13 +9,13 @@ versions: ghae: '*' shortTitle: Integrate Jira --- -{% ifversion ghes > 3.3 or ghae-issue-5658 %} +{% ifversion ghes > 3.4 or ghae-issue-5658 %} {% data reusables.profile.access_org %} {% data reusables.profile.org_settings %} 1. In the left sidebar, select **{% octicon "code" aria-label="The code icon" %} Developer settings**, then click **OAuth Apps**.  1. Click **New OAuth App**. -{% elsif ghes < 3.4 or ghae %} +{% else %} {% data reusables.user_settings.access_settings %} 1. In the left sidebar under **Organization settings**, click the name of your organization.  diff --git a/content/organizations/managing-organization-settings/restricting-repository-creation-in-your-organization.md b/content/organizations/managing-organization-settings/restricting-repository-creation-in-your-organization.md index 7f1c181bd9..e64b4978fc 100644 --- a/content/organizations/managing-organization-settings/restricting-repository-creation-in-your-organization.md +++ b/content/organizations/managing-organization-settings/restricting-repository-creation-in-your-organization.md @@ -15,11 +15,15 @@ topics: shortTitle: Restrict repository creation --- -You can choose whether members can create repositories in your organization. If you allow members to create repositories, you can choose which types of repositories members can create.{% ifversion fpt or ghec %} To allow members to create private repositories only, your organization must use {% data variables.product.prodname_ghe_cloud %}.{% endif %}{% ifversion fpt %} For more information, see "[About repositories](/enterprise-cloud@latest/repositories/creating-and-managing-repositories/about-repositories)" in the {% data variables.product.prodname_ghe_cloud %} documentation{% endif %}. +You can choose whether members can create repositories in your organization. {% ifversion ghec or ghes or ghae %}If you allow members to create repositories, you can choose which types of repositories members can create.{% elsif fpt %}If you allow members to create repositories, you can choose whether members can create both public and private repositories or public repositories only.{% endif %} Organization owners can always create any type of repository. + +{% ifversion fpt %} +Organizations using {% data variables.product.prodname_ghe_cloud %} can also restrict members to creating private repositories only. For more information, see [the {% data variables.product.prodname_ghe_cloud %} documentation](/enterprise-cloud@latest/organizations/managing-organization-settings/restricting-repository-creation-in-your-organization). +{% endif %} -Organization owners can always create any type of repository. {% ifversion ghec or ghae or ghes %} -{% ifversion ghec or ghae %}Enterprise owners{% elsif ghes %}Site administrators{% endif %} can restrict the options you have available for your organization's repository creation policy.{% ifversion ghec or ghes or ghae %} For more information, see "[Restricting repository creation in your enterprise](/admin/policies/enforcing-repository-management-policies-in-your-enterprise#setting-a-policy-for-repository-creation)."{% endif %}{% endif %} +Enterprise owners can restrict the options you have available for your organization's repository creation policy. For more information, see "[Enforcing repository management policies in your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#enforcing-a-policy-for-repository-creation)." +{% endif %} {% warning %} @@ -36,5 +40,12 @@ Organization owners can always create any type of repository.  {%- elsif fpt %}  + + {% note %} + + **Note:** To restrict members to creating private repositories only, your organization must use {% data variables.product.prodname_ghe_cloud %}. + + {% endnote %} {%- endif %} + 6. Click **Save**. diff --git a/content/organizations/organizing-members-into-teams/managing-code-review-settings-for-your-team.md b/content/organizations/organizing-members-into-teams/managing-code-review-settings-for-your-team.md index 8cb00329e2..4e14267508 100644 --- a/content/organizations/organizing-members-into-teams/managing-code-review-settings-for-your-team.md +++ b/content/organizations/organizing-members-into-teams/managing-code-review-settings-for-your-team.md @@ -57,7 +57,7 @@ Any team members that have set their status to "Busy" will not be selected for r {% data reusables.user_settings.access_org %} {% data reusables.organizations.specific_team %} {% data reusables.organizations.team_settings %} -{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5658 %} +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5658 %} 1. In the left sidebar, click **{% octicon "code-review" aria-label="The code-review icon" %} Code review**. {% else %} 1. In the left sidebar, click **Code review** @@ -73,7 +73,7 @@ Any team members that have set their status to "Busy" will not be selected for r {% data reusables.user_settings.access_org %} {% data reusables.organizations.specific_team %} {% data reusables.organizations.team_settings %} -{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5658 %} +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5658 %} 1. In the left sidebar, click **{% octicon "code-review" aria-label="The code-review icon" %} Code review**. {% else %} 1. In the left sidebar, click **Code review** diff --git a/content/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/configuring-autolinks-to-reference-external-resources.md b/content/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/configuring-autolinks-to-reference-external-resources.md index 374e9a889b..1ba761c11c 100644 --- a/content/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/configuring-autolinks-to-reference-external-resources.md +++ b/content/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/configuring-autolinks-to-reference-external-resources.md @@ -21,7 +21,7 @@ If you use Zendesk to track user-reported tickets, for example, you can referenc {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-settings %} -{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5658 %} +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5658 %} 1. In the "Integrations" section of the sidebar, click **{% octicon "cross-reference" aria-label="The cross-reference icon" %} Autolink references**. {% else %} 1. In the left sidebar, click **Autolink references**. diff --git a/content/rest/reference/billing.md b/content/rest/reference/billing.md index 8876b25d3f..fe0cf42be4 100644 --- a/content/rest/reference/billing.md +++ b/content/rest/reference/billing.md @@ -4,6 +4,7 @@ intro: 'With the Billing API, you can monitor the charges and usage {% data vari versions: fpt: '*' ghec: '*' + ghes: '>=3.4' topics: - API miniTocMaxHeadingLevel: 3 diff --git a/content/rest/reference/enterprise-admin.md b/content/rest/reference/enterprise-admin.md index 006d78ee79..230e3f76b5 100644 --- a/content/rest/reference/enterprise-admin.md +++ b/content/rest/reference/enterprise-admin.md @@ -78,7 +78,7 @@ You can also read the current version by calling the [meta endpoint](/rest/refer {% endif %} -{% ifversion fpt or ghec %} +{% ifversion fpt or ghec or ghes > 3.3 %} ## Billing {% for operation in currentRestOperations %} diff --git a/data/reusables/audit_log/audit_log_sidebar_for_org_admins.md b/data/reusables/audit_log/audit_log_sidebar_for_org_admins.md index d8ec9ca1bb..6cc2c183fd 100644 --- a/data/reusables/audit_log/audit_log_sidebar_for_org_admins.md +++ b/data/reusables/audit_log/audit_log_sidebar_for_org_admins.md @@ -1,4 +1,4 @@ -{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5658 %} +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5658 %} 1. In the "Archives" section of the sidebar, click **{% octicon "log" aria-label="The log icon" %} Security log**. {% else %} 1. In the Settings sidebar, click **Audit log**. diff --git a/data/reusables/audit_log/audit_log_sidebar_for_site_admins.md b/data/reusables/audit_log/audit_log_sidebar_for_site_admins.md index a717da6991..a6e00e1dc8 100644 --- a/data/reusables/audit_log/audit_log_sidebar_for_site_admins.md +++ b/data/reusables/audit_log/audit_log_sidebar_for_site_admins.md @@ -1,4 +1,4 @@ -{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5658 %} +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5658 %} 3. In the "Archives" section of the sidebar, click **{% octicon "log" aria-label="The log icon" %} Security log**. {% else %} 3. In the left sidebar, click **Audit log**. diff --git a/data/reusables/dependabot/dependabot-secrets-button.md b/data/reusables/dependabot/dependabot-secrets-button.md index 72625bc19f..cb57bb6485 100644 --- a/data/reusables/dependabot/dependabot-secrets-button.md +++ b/data/reusables/dependabot/dependabot-secrets-button.md @@ -1,6 +1,6 @@ -{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5658 %} +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5658 %} 1. In the "Security" section of the sidebar, select **{% octicon "key-asterisk" aria-label="The key-asterisk icon" %} Secrets**, then click **{% data variables.product.prodname_dependabot %}**. -{% elsif ghes > 3.2%} +{% else %} 1. In the sidebar, click **{% data variables.product.prodname_dependabot %}**.  {% endif %} diff --git a/data/reusables/github-actions/self-hosted-runner-groups-navigate-to-repo-org-enterprise.md b/data/reusables/github-actions/self-hosted-runner-groups-navigate-to-repo-org-enterprise.md index 2efea4d2c3..39720ea972 100644 --- a/data/reusables/github-actions/self-hosted-runner-groups-navigate-to-repo-org-enterprise.md +++ b/data/reusables/github-actions/self-hosted-runner-groups-navigate-to-repo-org-enterprise.md @@ -12,6 +12,6 @@ 2. In the left sidebar, click **Enterprise overview**. 3. In the enterprise sidebar, click {% octicon "law" aria-label="The law icon" %} **Policies**.{% endif %} 2. Navigate to the "Runner groups" settings: - * **In an organization**: Click **Actions** in the left sidebar{% ifversion fpt or ghec %}, then click **Runner groups** below it{% endif %}.{% ifversion ghec or ghes or ghae %} - * {% ifversion ghec %}**If using an enterprise account**:{% elsif ghes or ghae %}**If using an enterprise-level runner**:{% endif %} Click **Actions** under "{% octicon "law" aria-label="The law icon" %} Policies"{% ifversion ghec %}, then click the **Runners groups** tab{% endif %}.{% endif %} + * **In an organization**: Click **Actions** in the left sidebar, then click {% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5091 %}**Runner groups**{% elsif ghae or ghes < 3.4 %}**Runners**{% endif %} below it.{% ifversion ghec or ghes or ghae %} + * {% ifversion ghec %}**If using an enterprise account**:{% elsif ghes or ghae %}**If using an enterprise-level runner**:{% endif %} Click **Actions** under "{% octicon "law" aria-label="The law icon" %} Policies", then click the {% ifversion ghec or ghes > 3.3 or ghae-issue-5091 %}**Runners groups**{% elsif ghae or ghes < 3.4 %}**Runners**{% endif %} tab.{% endif %} {% endif %} diff --git a/data/reusables/github-actions/sidebar-secret.md b/data/reusables/github-actions/sidebar-secret.md index f5c22b01b3..896d920ff4 100644 --- a/data/reusables/github-actions/sidebar-secret.md +++ b/data/reusables/github-actions/sidebar-secret.md @@ -1,5 +1,5 @@ -{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5658 %} +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5658 %} 1. In the left sidebar, click **{% octicon "key-asterisk" aria-label="The key-asterisk icon" %} Secrets**. -{% elsif ghes < 3.4 or ghae %} +{% else %} 1. In the left sidebar, click **Secrets**. {% endif %} diff --git a/data/reusables/organizations/billing_plans.md b/data/reusables/organizations/billing_plans.md index 0d48d771db..35dc04461a 100644 --- a/data/reusables/organizations/billing_plans.md +++ b/data/reusables/organizations/billing_plans.md @@ -1,6 +1,6 @@ -{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5658 %} +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5658 %} 1. In the "Access" section of the sidebar, click **{% octicon "credit-card" aria-label="The credit card icon" %} Billing and plans**. -{% elsif ghes < 3.4 or ghae %} +{% else %} 1. In your organization's Settings sidebar, click **Billing & plans**.  {% endif %} diff --git a/data/reusables/organizations/github-apps-settings-sidebar.md b/data/reusables/organizations/github-apps-settings-sidebar.md index e130e6b624..1e835a9141 100644 --- a/data/reusables/organizations/github-apps-settings-sidebar.md +++ b/data/reusables/organizations/github-apps-settings-sidebar.md @@ -1,6 +1,6 @@ -{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5658 %} +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5658 %} 1. In the left sidebar, select **{% octicon "code" aria-label="The code icon" %} Developer settings** then click **{% data variables.product.prodname_github_apps %}**. -{% elsif ghes < 3.4 or ghae %} +{% else %} 1. In the left sidebar, click **{% data variables.product.prodname_github_apps %}**.  {% endif %} diff --git a/data/reusables/organizations/member-privileges.md b/data/reusables/organizations/member-privileges.md index 96da580be3..66589d5bad 100644 --- a/data/reusables/organizations/member-privileges.md +++ b/data/reusables/organizations/member-privileges.md @@ -1,6 +1,6 @@ -{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5658 %} +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5658 %} 1. In the "Access" section of the sidebar, click **{% octicon "people" aria-label="The people icon" %} Member privileges**. -{% elsif ghae or ghes < 3.4 %} +{% else %} 4. In the left sidebar, click **Member privileges**.  {% endif %} diff --git a/data/reusables/organizations/repository-defaults.md b/data/reusables/organizations/repository-defaults.md index 05d921fb76..0356b367d1 100644 --- a/data/reusables/organizations/repository-defaults.md +++ b/data/reusables/organizations/repository-defaults.md @@ -1,6 +1,6 @@ -{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5658 %} +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5658 %} 1. In the "Code, planning, and automation" section of the sidebar, select **{% octicon "repo" aria-label="The repo icon" %} Repository**, then click **Repository defaults**. -{% elsif ghes < 3.4 or ghae %} +{% else %} 1. In the left sidebar, click **Repository defaults**.  {% endif %} diff --git a/data/reusables/organizations/security-and-analysis.md b/data/reusables/organizations/security-and-analysis.md index 9ab6f7bfe5..a641b5b0fd 100644 --- a/data/reusables/organizations/security-and-analysis.md +++ b/data/reusables/organizations/security-and-analysis.md @@ -1,6 +1,6 @@ -{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5658 %} +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5658 %} 1. In the "Security" section of the sidebar, click **{% octicon "codescan" aria-label="The codescan icon" %} Code security and analysis**. -{% elsif ghes < 3.4 or ghae %} +{% else %} 1. In the left sidebar, click **Security & analysis**.  {% endif %} diff --git a/data/reusables/organizations/security.md b/data/reusables/organizations/security.md index 049c20a7b9..31ea8e9ce9 100644 --- a/data/reusables/organizations/security.md +++ b/data/reusables/organizations/security.md @@ -1,4 +1,4 @@ -{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5658 %} +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5658 %} 1. In the "Security" section of the sidebar, click **{% octicon "shield-lock" aria-label="The shield-lock icon" %} Authentication security**. {% else %} 1. In the left sidebar, click **Organization security**. diff --git a/data/reusables/organizations/teams_sidebar.md b/data/reusables/organizations/teams_sidebar.md index 338fe6bc8e..812304b4bc 100644 --- a/data/reusables/organizations/teams_sidebar.md +++ b/data/reusables/organizations/teams_sidebar.md @@ -1,4 +1,4 @@ -{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5658 %} +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5658 %} 1. In the "Access" section of the sidebar, click **{% octicon "comment-discussion" aria-label="The comment-discussion icon" %} Team discussions**. {% else %} 1. In the Settings sidebar, click **Teams**. diff --git a/data/reusables/organizations/verified-domains.md b/data/reusables/organizations/verified-domains.md index 83b44b4715..079ac23d2d 100644 --- a/data/reusables/organizations/verified-domains.md +++ b/data/reusables/organizations/verified-domains.md @@ -1,6 +1,6 @@ -{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5658 %} +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5658 %} 1. In the "Security" section of the sidebar, click **{% octicon "verified" aria-label="The verified icon" %} Verified and approved domains**. -{% elsif ghes < 3.4 or ghae %} +{% else %} 1. In the left sidebar, click **Verified & approved domains**.  {% endif %} diff --git a/data/reusables/pages/sidebar-pages.md b/data/reusables/pages/sidebar-pages.md index 03ae79d84f..61e7afdbb2 100644 --- a/data/reusables/pages/sidebar-pages.md +++ b/data/reusables/pages/sidebar-pages.md @@ -1,4 +1,4 @@ -{% ifversion fpt or ghes > 3.3 or ghec or ghae-issue-5658 %} +{% ifversion fpt or ghes > 3.4 or ghec or ghae-issue-5658 %} 1. In the "Code & operations" section of the sidebar, click **{% octicon "browser" aria-label="The browser icon" %} Pages**. {% else %} 1. In the left sidebar, click **Pages**. diff --git a/data/reusables/repositories/navigate-to-security-and-analysis.md b/data/reusables/repositories/navigate-to-security-and-analysis.md index 2407a1cd4f..79b226c3b5 100644 --- a/data/reusables/repositories/navigate-to-security-and-analysis.md +++ b/data/reusables/repositories/navigate-to-security-and-analysis.md @@ -1,6 +1,6 @@ -{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5658 %} +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5658 %} 1. In the "Security" section of the sidebar, click **{% octicon "shield-lock" aria-label="The shield-lock icon" %} Security & analysis**. -{% elsif ghes < 3.4 or ghae %} +{% else %} 1. In the left sidebar, click **Security & analysis**.  {% endif %} diff --git a/data/reusables/repositories/repository-branches.md b/data/reusables/repositories/repository-branches.md index a004e202d0..c51576f4ff 100644 --- a/data/reusables/repositories/repository-branches.md +++ b/data/reusables/repositories/repository-branches.md @@ -1,6 +1,6 @@ -{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5658 %} +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5658 %} 1. In the "Code & operations" section of the sidebar, click **{% octicon "git-branch" aria-label="The git-branch icon" %} Branches**. -{% elsif ghes < 3.4 or ghae %} +{% else %} 1. In the left menu, click **Branches**.  {% endif %} diff --git a/data/reusables/repositories/sidebar-notifications.md b/data/reusables/repositories/sidebar-notifications.md index 1a5edf0d3d..ab2fd8d2be 100644 --- a/data/reusables/repositories/sidebar-notifications.md +++ b/data/reusables/repositories/sidebar-notifications.md @@ -1,4 +1,4 @@ -{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5658 %} +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5658 %} 1. In the "Integrations" section of the sidebar, click **{% octicon "mail" aria-label="The mail icon" %} Email notifications**. {% else %} 1. Click **Notifications**. diff --git a/data/reusables/user_settings/access_applications.md b/data/reusables/user_settings/access_applications.md index efc6abe024..812666b807 100644 --- a/data/reusables/user_settings/access_applications.md +++ b/data/reusables/user_settings/access_applications.md @@ -1,4 +1,4 @@ -{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5658 %} +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5658 %} 1. In the "Integrations" section of the sidebar, click **{% octicon "apps" aria-label="The apps icon" %} Applications**. {% else %} 1. In the left sidebar, click **Applications**. diff --git a/data/reusables/user_settings/account_settings.md b/data/reusables/user_settings/account_settings.md index 7edd6e2f14..10074924fe 100644 --- a/data/reusables/user_settings/account_settings.md +++ b/data/reusables/user_settings/account_settings.md @@ -1,4 +1,4 @@ -{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-next %} +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-next %} 1. In the left sidebar, click **{% octicon "gear" aria-label="The gear icon" %} Account**. {% else %} 1. In the left sidebar, click **Account**. diff --git a/data/reusables/user_settings/appearance-settings.md b/data/reusables/user_settings/appearance-settings.md index d201a2de59..f7f2c3d0c8 100644 --- a/data/reusables/user_settings/appearance-settings.md +++ b/data/reusables/user_settings/appearance-settings.md @@ -1,4 +1,4 @@ -{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5658 %} +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5658 %} 1. In the left sidebar, click **{% octicon "paintbrush" aria-label="The paintbrush icon" %} Appearance**. {% else %} 1. In the user settings sidebar, click **Appearance**. diff --git a/data/reusables/user_settings/developer_settings.md b/data/reusables/user_settings/developer_settings.md index f8fc22316f..8b13c1d91d 100644 --- a/data/reusables/user_settings/developer_settings.md +++ b/data/reusables/user_settings/developer_settings.md @@ -1,4 +1,4 @@ -{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5658 %} +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5658 %} 1. In the left sidebar, click **{% octicon "code" aria-label="The code icon" %} Developer settings**. {% else %} 1. In the left sidebar, click **Developer settings**. diff --git a/data/reusables/user_settings/emails.md b/data/reusables/user_settings/emails.md index dd47cf76a9..e19a8634fd 100644 --- a/data/reusables/user_settings/emails.md +++ b/data/reusables/user_settings/emails.md @@ -1,4 +1,4 @@ -{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5658 %} +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5658 %} 1. In the "Access" section of the sidebar, click **{% octicon "mail" aria-label="The mail icon" %} Emails**. {% else %} 1. In the left sidebar, click **Emails**. diff --git a/data/reusables/user_settings/organizations.md b/data/reusables/user_settings/organizations.md index cf4c3cf6c5..519e8f0a96 100644 --- a/data/reusables/user_settings/organizations.md +++ b/data/reusables/user_settings/organizations.md @@ -1,4 +1,4 @@ -{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5658 %} +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5658 %} 1. In the "Access" section of the sidebar, click **{% octicon "organization" aria-label="The organization icon" %} Organizations**. {% else %} 1. In your user settings sidebar, click **Organizations**. diff --git a/data/reusables/user_settings/repo-tab.md b/data/reusables/user_settings/repo-tab.md index be39213129..8a8cd80c04 100644 --- a/data/reusables/user_settings/repo-tab.md +++ b/data/reusables/user_settings/repo-tab.md @@ -1,4 +1,4 @@ -{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5658 %} +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5658 %} 1. In the "Code planning, and automation" section of the sidebar, click **{% octicon "repo" aria-label="The repo icon" %} Repositories**. {% else %} 1. In the left sidebar, click **Repositories**. diff --git a/data/reusables/user_settings/saved_replies.md b/data/reusables/user_settings/saved_replies.md index 0d007727eb..51c59de438 100644 --- a/data/reusables/user_settings/saved_replies.md +++ b/data/reusables/user_settings/saved_replies.md @@ -1,4 +1,4 @@ -{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5658 %} +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5658 %} 1. In the "Code, planning, and automation" section of the sidebar, click **{% octicon "reply" aria-label="The reply icon" %} Saved replies**. {% else %} 1. In the left sidebar, click **Saved replies**. diff --git a/data/reusables/user_settings/security-analysis.md b/data/reusables/user_settings/security-analysis.md index 0f79b730ae..d525a3d6ed 100644 --- a/data/reusables/user_settings/security-analysis.md +++ b/data/reusables/user_settings/security-analysis.md @@ -1,4 +1,4 @@ -{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5658 %} +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5658 %} 1. In the "Security" section of the sidebar, click **{% octicon "shield-lock" aria-label="The shield-lock icon" %} Code security and analysis**. {% else %} 1. In the left sidebar, click **Security & analysis**. diff --git a/data/reusables/user_settings/security.md b/data/reusables/user_settings/security.md index 56cc87e20a..9e83e2c052 100644 --- a/data/reusables/user_settings/security.md +++ b/data/reusables/user_settings/security.md @@ -1,4 +1,4 @@ -{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5658 %} +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5658 %} 1. In the "Access" section of the sidebar, click **{% octicon "shield-lock" aria-label="The shield-lock icon" %} Password and authentication**. {% else %} 1. In the left sidebar, click **Account security**. diff --git a/data/reusables/user_settings/ssh.md b/data/reusables/user_settings/ssh.md index 08e50ade35..b2c942ca79 100644 --- a/data/reusables/user_settings/ssh.md +++ b/data/reusables/user_settings/ssh.md @@ -1,4 +1,4 @@ -{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5658 %} +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5658 %} 1. In the "Access" section of the sidebar, click **{% octicon "key" aria-label="The key icon" %} SSH and GPG keys**. {% else %} 1. In the user settings sidebar, click **SSH and GPG keys**. diff --git a/lib/excluded-links.js b/lib/excluded-links.js index 44ed1073e7..3452045cac 100644 --- a/lib/excluded-links.js +++ b/lib/excluded-links.js @@ -31,4 +31,5 @@ export default [ 'https://www.vmware.com/products/esxi-and-esx.html', 'https://www.ecfr.gov/cgi-bin/text-idx?SID=ad384e1f1e017076f8c0136f322f0a4c&mc=true&node=pt15.2.744&rgn=div5', 'https://wiki.oasis-open.org/security', + 'https://www.techrepublic.com/article/establish-a-patch-management-policy-87756/', ] diff --git a/lib/rest/static/decorated/api.github.com.json b/lib/rest/static/decorated/api.github.com.json index 16403520cd..4d06ffca3a 100644 --- a/lib/rest/static/decorated/api.github.com.json +++ b/lib/rest/static/decorated/api.github.com.json @@ -53541,7 +53541,7 @@ } ], "summary": "List repository collaborators", - "description": "For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.\n\nTeam members will include the members of child teams.\n\nYou must have push access to the repository in order to list collaborators.", + "description": "For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.\n\nTeam members will include the members of child teams.\n\nYou must authenticate using an access token with the `read:org` and `repo` scopes with push access to use this\nendpoint. GitHub Apps must have the `members` organization permission and `metadata` repository permission to use this\nendpoint.", "tags": [ "repos" ], @@ -53561,7 +53561,7 @@ "categoryLabel": "Collaborators", "notes": [], "bodyParameters": [], - "descriptionHTML": "
For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.
\nTeam members will include the members of child teams.
\nYou must have push access to the repository in order to list collaborators.
", + "descriptionHTML": "For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.
\nTeam members will include the members of child teams.
\nYou must authenticate using an access token with the read:org and repo scopes with push access to use this\nendpoint. GitHub Apps must have the members organization permission and metadata repository permission to use this\nendpoint.
For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.
\nTeam members will include the members of child teams.
", + "descriptionHTML": "For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.
\nTeam members will include the members of child teams.
\nYou must authenticate using an access token with the read:org and repo scopes with push access to use this\nendpoint. GitHub Apps must have the members organization permission and metadata repository permission to use this\nendpoint.
For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.
\nTeam members will include the members of child teams.
\nYou must have push access to the repository in order to list collaborators.
", + "descriptionHTML": "For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.
\nTeam members will include the members of child teams.
\nYou must authenticate using an access token with the read:org and repo scopes with push access to use this\nendpoint. GitHub Apps must have the members organization permission and metadata repository permission to use this\nendpoint.
For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.
\nTeam members will include the members of child teams.
", + "descriptionHTML": "For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.
\nTeam members will include the members of child teams.
\nYou must authenticate using an access token with the read:org and repo scopes with push access to use this\nendpoint. GitHub Apps must have the members organization permission and metadata repository permission to use this\nendpoint.
For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.
\nTeam members will include the members of child teams.
\nYou must have push access to the repository in order to list collaborators.
", + "descriptionHTML": "For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.
\nTeam members will include the members of child teams.
\nYou must authenticate using an access token with the read:org and repo scopes with push access to use this\nendpoint. GitHub Apps must have the members organization permission and metadata repository permission to use this\nendpoint.
For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.
\nTeam members will include the members of child teams.
", + "descriptionHTML": "For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.
\nTeam members will include the members of child teams.
\nYou must authenticate using an access token with the read:org and repo scopes with push access to use this\nendpoint. GitHub Apps must have the members organization permission and metadata repository permission to use this\nendpoint.
For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.
\nTeam members will include the members of child teams.
\nYou must have push access to the repository in order to list collaborators.
", + "descriptionHTML": "For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.
\nTeam members will include the members of child teams.
\nYou must authenticate using an access token with the read:org and repo scopes with push access to use this\nendpoint. GitHub Apps must have the members organization permission and metadata repository permission to use this\nendpoint.
For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.
\nTeam members will include the members of child teams.
", + "descriptionHTML": "For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.
\nTeam members will include the members of child teams.
\nYou must authenticate using an access token with the read:org and repo scopes with push access to use this\nendpoint. GitHub Apps must have the members organization permission and metadata repository permission to use this\nendpoint.
For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.
\nTeam members will include the members of child teams.
\nYou must have push access to the repository in order to list collaborators.
", + "descriptionHTML": "For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.
\nTeam members will include the members of child teams.
\nYou must authenticate using an access token with the read:org and repo scopes with push access to use this\nendpoint. GitHub Apps must have the members organization permission and metadata repository permission to use this\nendpoint.
For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.
\nTeam members will include the members of child teams.
", + "descriptionHTML": "For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.
\nTeam members will include the members of child teams.
\nYou must authenticate using an access token with the read:org and repo scopes with push access to use this\nendpoint. GitHub Apps must have the members organization permission and metadata repository permission to use this\nendpoint.
For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.
\nTeam members will include the members of child teams.
\nYou must have push access to the repository in order to list collaborators.
", + "descriptionHTML": "For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.
\nTeam members will include the members of child teams.
\nYou must authenticate using an access token with the read:org and repo scopes with push access to use this\nendpoint. GitHub Apps must have the members organization permission and metadata repository permission to use this\nendpoint.
For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.
\nTeam members will include the members of child teams.
", + "descriptionHTML": "For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.
\nTeam members will include the members of child teams.
\nYou must authenticate using an access token with the read:org and repo scopes with push access to use this\nendpoint. GitHub Apps must have the members organization permission and metadata repository permission to use this\nendpoint.