1
0
mirror of synced 2025-12-22 11:26:57 -05:00

Merge branch 'ivyharriet-jules-p-dev-docset' of github.com:github/docs-internal into ivyharriet-jules-p-dev-docset

This commit is contained in:
Jules Parker
2022-02-01 15:01:16 +01:00
206 changed files with 1622 additions and 616 deletions

View File

@@ -32,6 +32,11 @@ jobs:
- name: Checkout repository code
uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579
with:
# actions/checkout by default will leave you in a detached head state
# so we need to specify the PR head ref explicitly since we're making
# changes that we want to commit to the branch.
ref: ${{ github.event.pull_request.head.ref }}
- name: Setup node
uses: actions/setup-node@1f8c6b94b26d0feae1e387ca63ccbdc44d27b561

View File

@@ -38,7 +38,7 @@ jobs:
url: ${{ steps.deploy.outputs.defaultHostName }}
env:
GITHUB_EVENT_NUMBER: ${{ github.event.number }}
RESOURCE_GROUP: docs-nonprod
STAGING_RESOURCE_GROUPS: 4
NONPROD_REGISTRY_USERNAME: ghdocs
# Image tag is unique to each workflow run so that it always triggers a new deployment
DOCKER_IMAGE: ${{ secrets.NONPROD_REGISTRY_SERVER }}/${{ github.repository }}/pr-${{ github.event.number }}:${{ github.event.pull_request.head.sha }}-${{ github.run_number }}-${{ github.run_attempt }}
@@ -50,6 +50,7 @@ jobs:
REPO_NAME=${GITHUB_REPOSITORY#*\/}
echo "REPO_NAME=${REPO_NAME}" >> $GITHUB_ENV
echo "DEPLOYMENT_NAME=${REPO_NAME}-pr-${GITHUB_EVENT_NUMBER}" >> $GITHUB_ENV
echo "RESOURCE_GROUP=preview-env-${REPO_NAME}-$((${GITHUB_EVENT_NUMBER} % ${STAGING_RESOURCE_GROUPS}))" >> $GITHUB_ENV
echo "APP_NAME=gh${REPO_NAME}-staging-${GITHUB_EVENT_NUMBER}" >> $GITHUB_ENV
- name: 'Az CLI login'

View File

@@ -71,7 +71,7 @@ jobs:
// the API for more info based on the originating workflow run
const { BUILD_ACTIONS_RUN_ID } = process.env
const { owner, repo } = context.repo
const { data: run } = await github.rest.actions.getWorkflowRun({
const { data: run } = await github.actions.getWorkflowRun({
owner,
repo,
run_id: BUILD_ACTIONS_RUN_ID,

View File

@@ -17,7 +17,7 @@ jobs:
timeout-minutes: 5
env:
GITHUB_EVENT_NUMBER: ${{ github.event.number }}
RESOURCE_GROUP: docs-nonprod
STAGING_RESOURCE_GROUPS: 4
NONPROD_REGISTRY_NAME: ghdocs
IMAGE_REPO: ${{ github.repository }}/pr-${{ github.event.number }}
@@ -26,6 +26,7 @@ jobs:
id: vars
run: |
REPO_NAME=${GITHUB_REPOSITORY#*\/}
echo "RESOURCE_GROUP=preview-env-${REPO_NAME}-$((${GITHUB_EVENT_NUMBER} % ${STAGING_RESOURCE_GROUPS}))" >> $GITHUB_ENV
echo "DEPLOYMENT_NAME=${REPO_NAME}-pr-${GITHUB_EVENT_NUMBER}" >> $GITHUB_ENV
echo "APP_NAME=gh${REPO_NAME}-staging-${GITHUB_EVENT_NUMBER}" >> $GITHUB_ENV

View File

@@ -1,73 +0,0 @@
name: Start new engineering PR workflow
# **What it does**:
# **Why we have it**:
# **Who does it impact**:
on:
pull_request_target:
types:
- opened
- reopened
permissions:
contents: none
jobs:
triage:
if: github.repository == 'github/docs-internal' || github.repository == 'github/docs'
runs-on: ubuntu-latest
continue-on-error: true
env:
DRAFT_COLUMN_ID: 10095775
REGULAR_COLUMN_ID: 10095779
steps:
- uses: actions/github-script@2b34a689ec86a68d8ab9478298f91d5401337b7d
continue-on-error: true
with:
github-token: ${{ secrets.DOCUBOT_READORG_REPO_WORKFLOW_SCOPES }}
script: |
// Only assign the engineering folks
try {
await github.teams.getMembershipForUserInOrg({
org: 'github',
team_slug: 'docs-engineering',
username: context.payload.sender.login,
});
} catch(err) {
return
}
// Set column ID
const column_id = context.payload.pull_request.draft
? process.env.DRAFT_COLUMN_ID
: process.env.REGULAR_COLUMN_ID
// Try to create the card on the GitHub Project
try {
await github.projects.createCard({
column_id: column_id,
content_type: 'PullRequest',
content_id: context.payload.pull_request.id
});
} catch(error) {
console.log(error);
}
// Try to set the author as the assignee
const owner = context.payload.repository.owner.login
const repo = context.payload.repository.name
try {
await github.issues.addAssignees({
owner: owner,
repo: repo,
issue_number: context.payload.pull_request.number,
assignees: [
context.payload.sender.login
]
});
} catch(error) {
console.log(error);
}

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -67,6 +67,7 @@ export const GuidesHero = () => {
<div className="f5 my-4">{featuredTrack.description}</div>
{featuredTrack.guides && (
<Link
{...{ 'aria-label': `${featuredTrack.title} - ${t('start_path')}` }}
className="d-inline-flex flex-items-center flex-justify-center btn px-4 py-2 f5 no-underline text-bold"
role="button"
href={`${featuredTrack.guides[0].href}?learn=${featuredTrack.trackName}&learnProduct=${featuredTrack.trackProduct}`}

View File

@@ -38,6 +38,7 @@ export const LearningTrack = ({ track }: Props) => {
</div>
</div>
<a
{...{ 'aria-label': `${track?.title} - ${t('start_path')}` }}
className="d-inline-flex btn no-wrap mt-3 mt-md-0 flex-items-center flex-justify-center"
href={`${track?.guides && track?.guides[0].href}?learn=${
track?.trackName

View File

@@ -1,10 +1,11 @@
import cx from 'classnames'
import dayjs from 'dayjs'
import { ActionList } from '@primer/components'
import { useTranslation } from 'components/hooks/useTranslation'
import { Link } from 'components/Link'
import { ArrowRightIcon } from '@primer/octicons-react'
import { FeaturedLink } from 'components/context/ProductLandingContext'
import { useMainContext } from 'components/context/MainContext'
import { TruncateLines } from 'components/ui/TruncateLines'
import { BumpLink } from 'components/ui/BumpLink'
@@ -21,6 +22,8 @@ export const ArticleList = ({
viewAllTitleText,
articles,
}: ArticleListPropsT) => {
const { t } = useTranslation('product_landing')
const { page } = useMainContext()
return (
<>
{title && (
@@ -30,9 +33,9 @@ export const ArticleList = ({
<Link
href={viewAllHref}
className="ml-4"
{...(viewAllTitleText ? { title: viewAllTitleText } : {})}
{...(viewAllTitleText ? { 'aria-label': `${page.title} - ${viewAllTitleText}` } : {})}
>
View all <ArrowRightIcon size={14} className="v-align-middle" />
{t('view')} <ArrowRightIcon size={14} className="v-align-middle" />
</Link>
)}
</div>

View File

@@ -32,7 +32,7 @@ export const FeaturedArticles = () => {
<ArticleList
title={t('whats_new')}
viewAllHref={changelogUrl}
viewAllTitleText="All ChangeLog posts"
viewAllTitleText={t('all_changelogs')}
articles={(whatsNewChangelog || []).map((link) => {
return {
title: link.title,

View File

@@ -1,5 +1,6 @@
import { LinkIcon } from '@primer/octicons-react'
import cx from 'classnames'
import { useMainContext } from 'components/context/MainContext'
type Props = {
title?: React.ReactNode
@@ -9,12 +10,17 @@ type Props = {
description?: string
}
export const LandingSection = ({ title, children, className, sectionLink, description }: Props) => {
const { page } = useMainContext()
return (
<div className={cx('container-xl px-3 px-md-6 mt-6', className)} id={sectionLink}>
{title && (
<h2 className={cx('h1 color-fg-default', !description ? 'mb-3' : 'mb-4')}>
{sectionLink ? (
<a className="color-unset" href={`#${sectionLink}`}>
<a
className="color-unset"
href={`#${sectionLink}`}
{...{ 'aria-label': `${page.title} - ${title} section` }}
>
<LinkIcon size={24} className="m-1" />
{title}
</a>

View File

@@ -35,7 +35,7 @@ const ProductTreeNodeList = ({ treeNode }: { treeNode: ProductTreeNode }) => {
return (
<div className="col-12 col-lg-4 mb-6 height-full">
<h3 className="mb-3 f4">
<Link className="color-unset" href={treeNode.href}>
<Link className="color-unset text-underline" href={treeNode.href}>
{treeNode.renderedFullTitle}
</Link>
</h3>

View File

@@ -9,7 +9,7 @@ export function ProductReleases() {
const { t } = useTranslation('product_landing')
const router = useRouter()
const { enterpriseServerReleases, allVersions } = useMainContext()
const { releases } = useProductLandingContext()
const { releases, shortTitle } = useProductLandingContext()
const currentPath = router.asPath.split('?')[0]
return (
<div>
@@ -55,7 +55,15 @@ export function ProductReleases() {
</p>
<p className="mt-2 mb-4 color-fg-muted">
<FileIcon />{' '}
<Link className="text-bold" href={`/${router.locale}/${releaseVersion}`}>
<Link
className="text-bold"
{...{
'aria-label': `${shortTitle} - ${t('browse_all')} ${releaseNumber} ${t(
'docs'
)}`,
}}
href={`/${router.locale}/${releaseVersion}`}
>
{t('browse_all_docs')}
</Link>
</p>

View File

@@ -19,15 +19,8 @@ export function GHAEReleaseNotePatch({ patch, didEnterView }: Props) {
const bannerText = t('banner_text')
return (
<div
ref={containerRef}
className="mb-10 color-bg-subtle pb-6 border-bottom border-top"
id={patch.date}
>
<header
style={{ zIndex: 1 }}
className="container-xl color-bg-subtle border-bottom px-3 pt-4 pb-2"
>
<div ref={containerRef} className="mb-10 pb-6 border-bottom border-top" id={patch.date}>
<header style={{ zIndex: 1 }} className="container-xl border-bottom px-3 pt-4 pb-2">
<div className="d-flex flex-items-center">
<h2 className="border-bottom-0 m-0 p-0">{patch.title}</h2>

View File

@@ -33,16 +33,9 @@ export function GHESReleaseNotePatch({
}, [onScreen])
return (
<div
ref={containerRef}
className="mb-10 color-bg-subtle pb-6 border-bottom border-top"
id={patch.version}
>
<header
style={{ zIndex: 1 }}
className="container-xl color-bg-subtle border-bottom px-3 pt-4 pb-2"
>
<div className="d-flex flex-items-center">
<div ref={containerRef} className="mb-10 pb-6 border-bottom border-top" id={patch.version}>
<header style={{ zIndex: 1 }} className="container-xl border-bottom px-3 pt-4 pb-2">
<div className="d-flex flex-justify-between">
<h2 className="border-bottom-0 m-0 p-0">
{currentVersion.versionTitle}.{patch.patchVersion}
</h2>
@@ -59,9 +52,9 @@ export function GHESReleaseNotePatch({
{currentVersion.plan === 'enterprise-server' && (
<Link
href={`https://enterprise.github.com/releases/${patch.downloadVersion}/download`}
className="ml-3 text-small text-bold"
className="btn btn-outline flex-items-end ml-3 text-small text-bold no-underline"
>
Download
Download GitHub Enterprise Server {patch.downloadVersion}
</Link>
)}
</div>

View File

@@ -1,11 +1,6 @@
import { SyntheticEvent, useState } from 'react'
import cx from 'classnames'
import {
ChevronDownIcon,
ChevronLeftIcon,
ChevronRightIcon,
LinkExternalIcon,
} from '@primer/octicons-react'
import { ChevronDownIcon, LinkExternalIcon } from '@primer/octicons-react'
import { useMainContext } from 'components/context/MainContext'
import dayjs from 'dayjs'
import { useRouter } from 'next/router'
@@ -24,45 +19,14 @@ export function GHESReleaseNotes({ context }: Props) {
const router = useRouter()
const { currentProduct } = useMainContext()
const [focusedPatch, setFocusedPatch] = useState('')
const {
prevRelease,
nextRelease,
latestPatch,
latestRelease,
currentVersion,
releaseNotes,
releases,
message,
} = context
const { latestPatch, latestRelease, currentVersion, releaseNotes, releases, message } = context
return (
<div className="d-flex">
<article className="min-width-0 flex-1">
<div className="d-flex flex-items-center flex-justify-between color-bg-default text-bold px-5 py-2">
{prevRelease ? (
<Link
className="btn btn-outline"
href={`/${router.locale}/${currentVersion.plan}@${prevRelease}/${currentProduct?.id}/release-notes`}
>
<ChevronLeftIcon /> {prevRelease}
</Link>
) : (
<div />
)}
<div className="d-flex flex-items-center flex-justify-center color-bg-default text-bold px-5 py-2">
<h1 className="f4 py-3 m-0">
{currentVersion.planTitle} {currentVersion.currentRelease} release notes
</h1>
{nextRelease ? (
<Link
className="btn btn-outline"
href={`/${router.locale}/${currentVersion.plan}@${nextRelease}/${currentProduct?.id}/release-notes`}
>
{nextRelease} <ChevronRightIcon />
</Link>
) : (
<div />
)}
</div>
<MarkdownContent data-search="article-content">
{releaseNotes.map((patch) => {

View File

@@ -16,26 +16,6 @@ const SectionToLabelMap: Record<string, string> = {
backups: 'Backups',
}
const LabelColorMap = {
features: 'color-bg-success-emphasis',
bugs: 'color-bg-attention-emphasis',
known_issues: 'color-bg-accent-emphasis',
security_fixes: 'color-bg-sponsors-emphasis',
changes: 'color-bg-success-emphasis',
deprecations: 'color-bg-done-emphasis',
backups: 'color-bg-severe-emphasis',
}
const HeadingColorMap = {
features: 'color-fg-success',
bugs: 'color-fg-attention',
known_issues: 'color-fg-accent',
security_fixes: 'color-fg-sponsors',
changes: 'color-fg-success',
deprecations: 'color-fg-done',
backups: 'color-fg-severe',
}
type Props = {
patch: ReleaseNotePatch
withReleaseNoteLabel?: boolean
@@ -45,32 +25,17 @@ export function PatchNotes({ patch, withReleaseNoteLabel }: Props) {
<>
{Object.entries(patch.sections).map(([key, sectionItems], i, arr) => {
const isLast = i === arr.length - 1
const primaryLabelColor =
LabelColorMap[key as keyof typeof LabelColorMap] || LabelColorMap.features
const primaryHeadingColor =
HeadingColorMap[key as keyof typeof HeadingColorMap] || HeadingColorMap.features
return (
<div
key={key}
className={cx(
'py-6 d-block d-xl-flex gutter-xl flex-items-baseline',
'py-6 d-block d-xl-flex flex-justify-center',
!withReleaseNoteLabel && 'mx-6',
!isLast && 'border-bottom'
)}
>
{withReleaseNoteLabel && (
<div className="col-12 col-xl-3 mb-5">
<span
className={cx(
'px-3 py-2 color-fg-on-emphasis text-small text-bold text-uppercase',
primaryLabelColor
)}
>
{SectionToLabelMap[key] || 'INVALID SECTION'}
</span>
</div>
)}
<ul className={cx(withReleaseNoteLabel && 'col-xl-9', 'col-12')}>
<h3>{SectionToLabelMap[key] || 'INVALID SECTION'}</h3>
{sectionItems.map((item) => {
if (typeof item === 'string') {
return <li key={item} className="f4" dangerouslySetInnerHTML={{ __html: item }} />
@@ -79,17 +44,8 @@ export function PatchNotes({ patch, withReleaseNoteLabel }: Props) {
const slug = item.heading ? slugger.slug(item.heading) : ''
return (
<Fragment key={slug}>
<h4
id={slug}
className={cx(
styles.sectionHeading,
primaryHeadingColor,
'text-uppercase text-bold f4'
)}
>
<Link href={`#${slug}`} className="color-fg-inherit">
{item.heading}
</Link>
<h4 id={slug} className={cx(styles.sectionHeading, 'text-bold f4')}>
<Link href={`#${slug}`}>{item.heading}</Link>
</h4>
{item.notes.map((note) => {
return (

View File

@@ -19,6 +19,7 @@ export const SidebarNav = () => {
role="banner"
>
<div
tabIndex={-1}
className="d-flex flex-items-center p-4 position-sticky top-0 color-bg-default"
style={{ zIndex: 3 }}
id="github-logo"

View File

@@ -1,7 +1,6 @@
import { useState, useEffect } from 'react'
import cx from 'classnames'
import { ChevronUpIcon } from '@primer/octicons-react'
import { useTranslation } from '../../hooks/useTranslation'
export type ScrollButtonPropsT = {
className?: string
@@ -10,7 +9,6 @@ export type ScrollButtonPropsT = {
export const ScrollButton = ({ className, ariaLabel }: ScrollButtonPropsT) => {
const [show, setShow] = useState(false)
const { t } = useTranslation(['scroll_button'])
useEffect(() => {
// show scroll button only when view is scrolled down
@@ -30,20 +28,21 @@ export const ScrollButton = ({ className, ariaLabel }: ScrollButtonPropsT) => {
}, [])
const onClick = () => {
window.scrollTo({ top: 0, behavior: 'smooth' })
window.scrollTo(0, 0)
const topOfPage = document.getElementById('github-logo')
if (topOfPage) topOfPage.focus()
}
return (
<div className={cx(className, 'transition-200', show ? 'opacity-100' : 'opacity-0')}>
<button
onClick={onClick}
className="color-bg-default color-fg-default border-0 d-inline-block mr-2 f6"
<div
role="tooltip"
className={cx(className, 'transition-200', show ? 'opacity-100' : 'opacity-0')}
>
{t('scroll_to_top')}
</button>
<button
onClick={onClick}
className={cx('color-bg-accent-emphasis color-fg-on-emphasis circle border-0')}
className={cx(
'tooltipped tooltipped-n tooltipped-no-delay color-bg-accent-emphasis color-fg-on-emphasis circle border-0'
)}
style={{ width: 40, height: 40 }}
aria-label={ariaLabel}
>

View File

@@ -37,8 +37,8 @@ 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 %}
{% data reusables.repositories.navigate-to-manage-access %}
{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5658%}
{% data reusables.repositories.click-collaborators-teams %}
1. Click **Invite a collaborator**.
!["Invite a collaborator" button](/assets/images/help/repository/invite-a-collaborator-button.png)
2. In the search field, start typing the name of person you want to invite, then click a name in the list of matches.

View File

@@ -29,8 +29,8 @@ 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 %}
{% data reusables.repositories.navigate-to-manage-access %}
{% ifversion fpt or ghec or ghes > 3.3 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" %}.
![Button to remove collaborator](/assets/images/help/repository/collaborator-remove.png)
{% else %}

View File

@@ -25,8 +25,7 @@ You can set scheduled reminders for personal or team-level review requests for p
{% data reusables.user_settings.access_settings %}
{% data reusables.reminders.scheduled-reminders %}
![Scheduled reminders button](/assets/images/help/profile/scheduled-reminders-profile.png)
3. Next to the organization you'd like to schedule reminders for, click **Edit**.
1. Next to the organization you'd like to schedule reminders for, click **Edit**.
![Scheduled reminders edit button](/assets/images/help/settings/scheduled-reminders-org-choice.png)
{% data reusables.reminders.add-reminder %}
{% data reusables.reminders.authorize-slack %}
@@ -43,8 +42,7 @@ You can set scheduled reminders for personal or team-level review requests for p
## Managing scheduled reminders for your user account
{% data reusables.user_settings.access_settings %}
{% data reusables.reminders.scheduled-reminders %}
![Scheduled reminders button](/assets/images/help/profile/scheduled-reminders-profile.png)
3. Next to the organization you'd like to edit scheduled reminders for, click **Edit**.
1. Next to the organization you'd like to edit scheduled reminders for, click **Edit**.
![Scheduled reminders edit button](/assets/images/help/settings/scheduled-reminders-org-choice.png)
{% data reusables.reminders.edit-page %}
{% data reusables.reminders.update-buttons %}
@@ -52,8 +50,7 @@ You can set scheduled reminders for personal or team-level review requests for p
## Deleting scheduled reminders for your user account
{% data reusables.user_settings.access_settings %}
{% data reusables.reminders.scheduled-reminders %}
![Scheduled reminders button](/assets/images/help/profile/scheduled-reminders-profile.png)
3. Next to the organization you'd like to delete reminders for, click **Edit**.
1. Next to the organization you'd like to delete reminders for, click **Edit**.
![Scheduled reminders edit button](/assets/images/help/settings/scheduled-reminders-org-choice.png)
{% data reusables.reminders.delete %}

View File

@@ -84,7 +84,9 @@ Before you begin, you'll create a repository on {% ifversion ghae %}{% data vari
- id: random-number-generator
run: echo "::set-output name=random-id::$(echo $RANDOM)"
shell: bash
- run: ${{ github.action_path }}/goodbye.sh
- run: echo "${{ github.action_path }}" >> $GITHUB_PATH
shell: bash
- run: goodbye.sh
shell: bash
```
{% endraw %}

View File

@@ -480,6 +480,12 @@ The background color of the badge. Can be one of: `white`, `yellow`, `blue`, `gr
### `branding.icon`
The name of the [Feather](https://feathericons.com/) icon to use.
<!--
This table should match the icon list in `app/models/repository_actions/icons.rb` in the internal github repo.
This table does not match the latest version the feather library.
(Brand icons are omitted, and our supported list is not necessarily up-to-date with the latest version of the feather icon library.)
To support a new icon, update `app/models/repository_actions/icons.rb` and add the svg to `/static/images/icons/feather` in the internal github repo.
-->
<table>
<tr>

View File

@@ -29,7 +29,7 @@ By updating your workflows to use OIDC tokens, you can adopt the following good
- **No cloud secrets**: You won't need to duplicate your cloud credentials as long-lived {% data variables.product.prodname_dotcom %} secrets. Instead, you can configure the OIDC trust on your cloud provider, and then update your workflows to request a short-lived access token from the cloud provider through OIDC.
- **Authentication and authorization management**: You have more granular control over how workflows can use credentials, using your cloud provider's authentication (authN) and authorization (authZ) tools to control access to cloud resources.
- **Rotating credentials**: With OIDC, your cloud provider issues a short-lived access token that is only valid for a single workflow run, and then automatically expires.
- **Rotating credentials**: With OIDC, your cloud provider issues a short-lived access token that is only valid for a single job, and then automatically expires.
### Getting started with OIDC
@@ -38,7 +38,7 @@ The following diagram gives an overview of how {% data variables.product.prodnam
![OIDC diagram](/assets/images/help/images/oidc-architecture.png)
1. In your cloud provider, create an OIDC trust between your cloud role and your {% data variables.product.prodname_dotcom %} workflow(s) that need access to the cloud.
2. Every time your {% data variables.product.prodname_actions %} workflow job runs, {% data variables.product.prodname_dotcom %}'s OIDC Provider auto-generates an OIDC token. This token contains multiple claims to establish a security-hardened and verifiable identity about the specific workflow that is trying to authenticate.
2. Every time your job runs, {% data variables.product.prodname_dotcom %}'s OIDC Provider auto-generates an OIDC token. This token contains multiple claims to establish a security-hardened and verifiable identity about the specific workflow that is trying to authenticate.
3. You could include a step or action in your job to request this token from {% data variables.product.prodname_dotcom %}'s OIDC provider, and present it to the cloud provider.
4. Once the cloud provider successfully validates the claims presented in the token, it then provides a short-lived cloud access token that is available only for the duration of the job.
@@ -51,7 +51,7 @@ When you configure your cloud to trust {% data variables.product.prodname_dotcom
### Understanding the OIDC token
Each workflow run requests an OIDC token from {% data variables.product.prodname_dotcom %}'s OIDC provider, which responds with an automatically generated JSON web token (JWT) that is unique for each workflow job where it is generated. During a workflow run, the OIDC token is presented to the cloud provider. To validate the token, the cloud provider checks if the OIDC token's subject and other claims are a match for the conditions that were preconfigured on the cloud role's OIDC trust definition.
Each job requests an OIDC token from {% data variables.product.prodname_dotcom %}'s OIDC provider, which responds with an automatically generated JSON web token (JWT) that is unique for each workflow job where it is generated. When the job runs, the OIDC token is presented to the cloud provider. To validate the token, the cloud provider checks if the OIDC token's subject and other claims are a match for the conditions that were preconfigured on the cloud role's OIDC trust definition.
The following example OIDC token uses a subject (`sub`) that references a job environment named `prod` in the `octo-org/octo-repo` repository.
@@ -148,7 +148,7 @@ In addition, your cloud provider could allow you to assign a role to the access
### Examples
The following examples demonstrate how to use "Subject" as a condition. The [subject](https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims) uses information from the workflow run's [`job` context](/actions/learn-github-actions/contexts#job-context), and instructs your cloud provider that access token requests may only be granted for requests from workflows running in specific branches, environments. The following sections describe some common subjects you can use.
The following examples demonstrate how to use "Subject" as a condition. The [subject](https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims) uses information from the [`job` context](/actions/learn-github-actions/contexts#job-context), and instructs your cloud provider that access token requests may only be granted for requests from workflows running in specific branches, environments. The following sections describe some common subjects you can use.
#### Filtering for a specific environment

View File

@@ -93,7 +93,7 @@ jobs:
- name: Git clone the repository
uses: actions/checkout@v2
- name: configure aws credentials
uses: aws-actions/configure-aws-credentials@master
uses: aws-actions/configure-aws-credentials@v1
with:
role-to-assume: arn:aws:iam::1234567890:role/example-role
role-session-name: samplerolesession

View File

@@ -49,6 +49,8 @@ You can search and browse actions directly in your repository's workflow editor.
You can add an action to your workflow by referencing the action in your workflow file.
You can view the actions referenced in your {% data variables.product.prodname_actions %} workflows as dependencies in the dependency graph of the repository containing your workflows. For more information, see “[About the dependency graph](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph).”
### Adding an action from {% data variables.product.prodname_marketplace %}
An action's listing page includes the action's version and the workflow syntax required to use the action. To keep your workflow stable even when updates are made to an action, you can reference the version of the action to use by specifying the Git or Docker tag number in your workflow file.

View File

@@ -262,3 +262,8 @@ To understand how billing works for {% data variables.product.prodname_actions %
## Contacting support
{% data reusables.github-actions.contacting-support %}
## Further reading
{% ifversion ghec or ghes or ghae %}
- "[About {% data variables.product.prodname_actions %} for enterprises](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/about-github-actions-for-enterprises)"{% endif %}

View File

@@ -34,6 +34,8 @@ If you reuse a workflow from a different repository, any actions in the called w
When a reusable workflow is triggered by a caller workflow, the `github` context is always associated with the caller workflow. The called workflow is automatically granted access to `github.token` and `secrets.GITHUB_TOKEN`. For more information about the `github` context, see "[Context and expression syntax for GitHub Actions](/actions/reference/context-and-expression-syntax-for-github-actions#github-context)."
You can view the reused workflows referenced in your {% data variables.product.prodname_actions %} workflows as dependencies in the dependency graph of the repository containing your workflows. For more information, see “[About the dependency graph](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph).”
### Reusable workflows and starter workflows
Starter workflows allow everyone in your organization who has permission to create workflows to do so more quickly and easily. When people create a new workflow, they can choose a starter workflow and some or all of the work of writing the workflow will be done for them. Within a starter workflow, you can also reference reusable workflows to make it easy for people to benefit from reusing centrally managed workflow code. If you use a tag or branch name when referencing the reusable workflow, you can ensure that everyone who reuses that workflow will always be using the same YAML code. However, if you reference a reusable workflow by a tag or branch, be sure that you can trust that version of the workflow. For more information, see "[Security hardening for {% data variables.product.prodname_actions %}](/actions/security-guides/security-hardening-for-github-actions#reusing-third-party-workflows)."

View File

@@ -0,0 +1,42 @@
---
title: About GitHub Actions for enterprises
shortTitle: About GitHub Actions
intro: "{% data variables.product.prodname_actions %} can improve developer productivity by automating your enterprise's software development cycle."
versions:
ghec: '*'
ghes: '*'
ghae: '*'
type: overview
topics:
- Actions
- Enterprise
---
With {% data variables.product.prodname_actions %}, you can improve developer productivity by automating every phase of your enterprise's software development workflow.
| Task | More information |
| ---- | ---------------- |
| Automatically test and build your application | "[About continuous integration](/actions/automating-builds-and-tests/about-continuous-integration)" |
| Deploy your application | "[About continuous deployment](/actions/deployment/about-deployments/about-continuous-deployment)" |
| Automatically and securely package code into artifacts and containers | "[About packaging with {% data variables.product.prodname_actions %}](/actions/publishing-packages/about-packaging-with-github-actions)" |
| Automate your project management tasks | "[Using {% data variables.product.prodname_actions %} for project management](/actions/managing-issues-and-pull-requests/using-github-actions-for-project-management)" |
{% data variables.product.prodname_actions %} helps your team work faster at scale. When large repositories start using {% data variables.product.prodname_actions %}, teams merge significantly more pull requests per day, and the pull requests are merged significantly faster. For more information, see "[Writing and shipping code faster](https://octoverse.github.com/writing-code-faster/#scale-through-automation)" in the State of the Octoverse.
{% data variables.product.prodname_actions %} also provides greater control over deployments. For example, you can use environments to require approval for a job to proceed, restrict which branches can trigger a workflow, or limit access to secrets.{% ifversion ghec or ghae-issue-4856 %} If your workflows need to access resources from a cloud provider that supports OpenID Connect (OIDC), you can configure your workflows to authenticate directly to the cloud provider. This will allow you to stop storing credentials as long-lived secrets and provide other security benefits. For more information, see "[About security hardening with OpenID Connect](/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect)."{% endif %}
{% data variables.product.prodname_actions %} is developer friendly, because it's integrated directly into the familiar {% data variables.product.product_name %} experience.
You can create your own unique automations, or you can use and adapt workflows from our ecosystem of over 10,000 actions built by industry leaders and the open source community. For more information, see "[Finding and customizing actions](/actions/learn-github-actions/finding-and-customizing-actions)."
{% ifversion ghec %}You can enjoy the convenience of {% data variables.product.company_short %}-hosted runners, which are maintained and upgraded by {% data variables.product.company_short %}, or you{% else %}You{% endif %} can control your own private CI/CD infrastructure by using self-hosted runners. Self-hosted runners allow you to determine the exact environment and resources that complete your builds, testing, and deployments, without exposing your software development cycle to the internet. For more information, see {% ifversion ghec %}"[About {% data variables.product.company_short %}-hosted runners](/actions/using-github-hosted-runners/about-github-hosted-runners)" and{% endif %} "[About self-hosted runners](/actions/hosting-your-own-runners/about-self-hosted-runners)."
{% data variables.product.prodname_actions %} also includes tools to govern your enterprise's software development cycle and meet compliance obligations. For more information, see "[Enforcing policies for {% data variables.product.prodname_actions %} in your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-github-actions-in-your-enterprise)."
To learn more about how you can successfully adopt {% data variables.product.prodname_actions %} for your enterprise, follow the "[Adopt {% data variables.product.prodname_actions %} for your enterprise](/admin/guides#adopt-github-actions-for-your-enterprise)" learning path.
## Further reading
- "[Understanding {% data variables.product.prodname_actions %}](/actions/learn-github-actions/understanding-github-actions)"{% ifversion ghec %}
- "[About billing for {% data variables.product.prodname_actions %}](/billing/managing-billing-for-github-actions/about-billing-for-github-actions)"{% endif %}

View File

@@ -9,6 +9,7 @@ topics:
- Enterprise
- Actions
children:
- /about-github-actions-for-enterprises
- /introducing-github-actions-to-your-enterprise
- /migrating-your-enterprise-to-github-actions
- /getting-started-with-github-actions-for-github-enterprise-cloud

View File

@@ -14,7 +14,7 @@ topics:
## About {% data variables.product.prodname_actions %} for enterprises
{% data reusables.actions.about-actions %} With {% data variables.product.prodname_actions %}, your enterprise can automate, customize, and execute your software development workflows like testing and deployments. For more information about the basics of {% data variables.product.prodname_actions %}, see "[Understanding {% data variables.product.prodname_actions %}](/actions/learn-github-actions/understanding-github-actions)."
{% data reusables.actions.about-actions %} With {% data variables.product.prodname_actions %}, your enterprise can automate, customize, and execute your software development workflows like testing and deployments. For more information, see "[About {% data variables.product.prodname_actions %} for enterprises](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/about-github-actions-for-enterprises)."
![Diagram of jobs running on self-hosted runners](/assets/images/help/images/actions-enterprise-overview.png)

View File

@@ -180,7 +180,7 @@ You can view the full list of LDAP users who have access to your instance and pr
3. In the left sidebar, click **LDAP users**.
![LDAP users tab](/assets/images/enterprise/site-admin-settings/ldap-users-tab.png)
4. To search for a user, type a full or partial username and click **Search**. Existing users will be displayed in search results. If a user doesnt exist, click **Create** to provision the new user account.
![LDAP search](/assets/images/enterprise/site-admin-settings/ldap-users-search.png)
![LDAP search](/assets/images/enterprise/site-admin-settings/ldap-users-search.jpg)
## Updating LDAP accounts

View File

@@ -46,6 +46,7 @@ IdP | SAML | Team synchronization |
--- | :--: | :-------: |
Active Directory Federation Services (AD FS) | {% octicon "check-circle-fill" aria-label= "The check icon" %} | |
Azure Active Directory (Azure AD) | {% octicon "check-circle-fill" aria-label="The check icon" %} | {% octicon "check-circle-fill" aria-label="The check icon" %} |
Okta | {% octicon "check-circle-fill" aria-label="The check icon" %} | {% octicon "check-circle-fill" aria-label="The check icon" %} |
OneLogin | {% octicon "check-circle-fill" aria-label="The check icon" %} | |
PingOne | {% octicon "check-circle-fill" aria-label="The check icon" %} | |
Shibboleth | {% octicon "check-circle-fill" aria-label="The check icon" %} | |

View File

@@ -21,15 +21,11 @@ shortTitle: Security log
The security log lists all actions performed within the last 90 days.
{% data reusables.user_settings.access_settings %}
{% ifversion fpt or ghae or ghes or ghec %}
2. In the user settings sidebar, click **Security log**.
![Security log tab](/assets/images/help/settings/audit-log-tab.png)
{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5658 %}
1. In the "Archives" section of the sidebar, click **{% octicon "log" aria-label="The log icon" %} Security log**.
{% else %}
{% data reusables.user_settings.security %}
3. Under "Security history," your log is displayed.
![Security log](/assets/images/help/settings/user_security_log.png)
4. Click on an entry to see more information about the event.
![Security log](/assets/images/help/settings/user_security_history_action.png)
1. In the user settings sidebar, click **Security log**.
![Security log tab](/assets/images/help/settings/audit-log-tab.png)
{% endif %}
{% ifversion fpt or ghae or ghes or ghec %}

View File

@@ -37,6 +37,10 @@ If you want to view an overview of your subscription and usage for {% data varia
## Viewing the subscription and usage for your enterprise account
You can view the subscription and usage for your enterprise and download a file with license details.
{% data reusables.billing.license-statuses %}
{% data reusables.enterprise-accounts.access-enterprise %}
{% data reusables.enterprise-accounts.settings-tab %}
{% data reusables.enterprise-accounts.license-tab %}

View File

@@ -37,7 +37,7 @@ If you're an organization or enterprise owner, you can switch between settings f
![Context switcher button](/assets/images/help/settings/context-switcher-button.png)
1. Start typing the name of the account you want to switch to, then click the name of the account.
![Context switcher menu](/assets/images/help/settings/context-switcher-menu.png)
1. In the left sidebar, click **Billing & plans**. ![Billing & plans in the settings sidebar](/assets/images/help/organizations/billing-settings.png)
1. In the left sidebar, click **{% octicon "credit-card" aria-label="The credit card icon" %} Billing and plans**.
## Further reading

View File

@@ -30,6 +30,10 @@ You can view license usage for {% data variables.product.prodname_ghe_server %}
## Viewing license usage on {% ifversion ghec %}{% data variables.product.prodname_dotcom_the_website %}{% elsif ghes %}{% data variables.product.product_location %}{% endif %}
You can view the license usage for your enterprise and download a file with license details.
{% data reusables.billing.license-statuses %}
{% ifversion ghec %}
{% data reusables.enterprise-accounts.access-enterprise-on-dotcom %}

View File

@@ -38,7 +38,7 @@ Dependency review is available when dependency graph is enabled for {% data vari
Sometimes you might just want to update the version of one dependency in a manifest and generate a pull request. However, if the updated version of this direct dependency also has updated dependencies, your pull request may have more changes than you expected. The dependency review for each manifest and lock file provides an easy way to see what has changed, and whether any of the new dependency versions contain known vulnerabilities.
By checking the dependency reviews in a pull request, and changing any dependencies that are flagged as vulnerable, you can avoid vulnerabilities being added to your project. For more information about how dependency review works, see "[Reviewing dependency changes in a pull request](/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/incorporating-feedback-in-your-pull-request)."
By checking the dependency reviews in a pull request, and changing any dependencies that are flagged as vulnerable, you can avoid vulnerabilities being added to your project. For more information about how dependency review works, see "[Reviewing dependency changes in a pull request](/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-dependency-changes-in-a-pull-request)."
{% data variables.product.prodname_dependabot_alerts %} will find vulnerabilities that are already in your dependencies, but it's much better to avoid introducing potential problems than to fix problems at a later date. For more information about {% data variables.product.prodname_dependabot_alerts %}, see "[About alerts for vulnerable dependencies](/github/managing-security-vulnerabilities/about-alerts-for-vulnerable-dependencies#dependabot-alerts-for-vulnerable-dependencies)."

View File

@@ -77,6 +77,9 @@ The recommended formats explicitly define which versions are used for all direct
| --- | --- | --- | ---|
| Composer | PHP | `composer.lock` | `composer.json`, `composer.lock` |
| `dotnet` CLI | .NET languages (C#, C++, F#, VB) | `.csproj`, `.vbproj`, `.nuspec`, `.vcxproj`, `.fsproj` | `.csproj`, `.vbproj`, `.nuspec`, `.vcxproj`, `.fsproj`, `packages.config` |
{%- if github-actions-in-dependency-graph %}
| {% data variables.product.prodname_actions %} workflows<sup>[1]</sup> | YAML | `.yml`, `.yaml` | `.yml`, `.yaml` |
{%- endif %}
{%- ifversion fpt or ghes > 3.2 or ghae %}
| Go modules | Go | `go.sum` | `go.mod`, `go.sum` |
{%- elsif ghes = 3.2 %}
@@ -84,18 +87,28 @@ The recommended formats explicitly define which versions are used for all direct
{%- endif %}
| 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`* |
| Python PIP | Python | `requirements.txt`, `pipfile.lock` | `requirements.txt`, `pipfile`, `pipfile.lock`, `setup.py`{% if github-actions-in-dependency-graph %}<sup>[2]</sup>{% else %}<sup>[1]</sup>{% endif %} |
{%- ifversion fpt or ghes > 3.3 %}
| 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` |
{% if github-actions-in-dependency-graph %}
[1] Please note that {% data variables.product.prodname_actions %} workflows must be located in the `.github/workflows/` directory of a repository to be recognized as manifests. Any actions or workflows referenced using the syntax `jobs[*].steps[*].uses` or `jobs.<job_id>.uses` will be parsed as dependencies. For more information, see "[Workflow syntax for GitHub Actions](/actions/using-workflows/workflow-syntax-for-github-actions)."
[2] If you list your Python dependencies within a `setup.py` file, we may not be able to parse and list every dependency in your project.
{% else %}
[1] If you list your Python dependencies within a `setup.py` file, we may not be able to parse and list every dependency in your project.
{% endif %}
{% if github-actions-in-dependency-graph %}
{% note %}
**Note:** If you list your Python dependencies within a `setup.py` file, we may not be able to parse and list every dependency in your project.
**Note:** {% data variables.product.prodname_actions %} workflow dependencies are displayed in the dependency graph for informational purposes. Dependabot alerts are not currently supported for {% data variables.product.prodname_actions %} workflows.
{% endnote %}
{% endif %}
## Further reading
- "[Dependency graph](https://en.wikipedia.org/wiki/Dependency_graph)" on Wikipedia

View File

@@ -12,7 +12,7 @@ shortTitle: Private image registry
## About private image registries and {% data variables.product.prodname_codespaces %}
A registry is a secure space for storing, managing, and fetching private container images. You may use one to store one or more devcontainers. There are many examples of registries, such as {% data variables.product.prodname_dotcom %} Container Registry, Azure Container Registry, or DockerHub.
A registry is a secure space for storing, managing, and fetching private container images. You may use one to store one or more images. There are many examples of registries, such as {% data variables.product.prodname_dotcom %} Container Registry, Azure Container Registry, or DockerHub.
{% data variables.product.prodname_dotcom %} Container Registry can be configured to pull container images seamlessly, without having to provide any authentication credentials to {% data variables.product.prodname_codespaces %}. For other image registries, you must create secrets in {% data variables.product.prodname_dotcom %} to store the access details, which will allow {% data variables.product.prodname_codespaces %} to access images stored in that registry.
@@ -87,7 +87,7 @@ To access AWS Elastic Container Registry (ECR), you can provide an AWS access k
```
*_CONTAINER_REGISTRY_SERVER = <ECR_URL>
*_CONTAINER_REGISTRY_USER = <AWS_ACCESS_KEY_ID>
*_container_REGISTRY_PASSWORD = <AWS_SECRET_KEY>
*_CONTAINER_REGISTRY_PASSWORD = <AWS_SECRET_KEY>
```
You must also ensure you have the appropriate AWS IAM permissions to perform the credential swap (e.g. `sts:GetServiceBearerToken`) as well as the ECR read operation (either `AmazonEC2ContainerRegistryFullAccess` or `ReadOnlyAccess`).
@@ -97,7 +97,7 @@ Alternatively, if you don't want GitHub to perform the credential swap on your b
```
*_CONTAINER_REGISTRY_SERVER = <ECR_URL>
*_CONTAINER_REGISTRY_USER = AWS
*_container_REGISTRY_PASSWORD = <TOKEN>
*_CONTAINER_REGISTRY_PASSWORD = <TOKEN>
```
Since these tokens are short lived and need to be refreshed periodically, we recommend providing an access key ID and secret.

View File

@@ -41,13 +41,11 @@ To create secrets for an organization repository, you must have administrator ac
{% data reusables.repositories.navigate-to-repo %}
{% data reusables.repositories.sidebar-settings %}
{% data reusables.github-actions.sidebar-secret %}
1. Scroll down the page and under **Secrets**, select **Codespaces**.
![Codespaces option in side bar](/assets/images/help/codespaces/codespaces-option-secrets.png)
1. At the top of the page, click **New repository secret**.
1. Type a name for your secret in the **Name** input box.
1. Enter the value for your secret.
1. Click **Add secret**.
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_codespaces %}**.
2. At the top of the page, click **New repository secret**.
3. Type a name for your secret in the **Name** input box.
4. Enter the value for your secret.
5. Click **Add secret**.
## Adding secrets for an organization
@@ -57,15 +55,13 @@ When creating a secret in an organization, you can use a policy to limit which r
{% data reusables.organizations.navigate-to-org %}
{% data reusables.organizations.org_settings %}
{% data reusables.github-actions.sidebar-secret %}
1. Scroll down the page and under **Secrets**, select **Codespaces**.
![Codespaces option in side bar](/assets/images/help/codespaces/codespaces-option-secrets-org.png)
1. At the top of the page, click **New organization secret**.
1. Type a name for your secret in the **Name** input box.
1. Enter the **Value** for your secret.
1. From the **Repository access** dropdown list, choose an access policy.
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_codespaces %}**.
2. At the top of the page, click **New organization secret**.
3. Type a name for your secret in the **Name** input box.
4. Enter the **Value** for your secret.
5. From the **Repository access** dropdown list, choose an access policy.
![Repository Access list with private repositories selected](/assets/images/help/codespaces/secret-repository-access.png)
1. Click **Add secret**.
6. Click **Add secret**.
## Reviewing access to organization-level secrets

View File

@@ -47,34 +47,30 @@ If you add an organization-wide policy, you should set it to the largest choice
{% data reusables.profile.access_org %}
{% data reusables.profile.org_settings %}
{% data reusables.organizations.click-codespaces %}
1. Under "Codespaces", click **Policy**.
!["Policy" tab in left sidebar](/assets/images/help/organizations/codespaces-policy-sidebar.png)
1. On the "Codespace policies" page, click **Create Policy**.
1. Enter a name for your new policy.
1. Click **Add constraint** and choose **Machine types**.
1. In the "Code, planning, and automation" section of the sidebar, select **{% octicon "codespaces" aria-label="The codespaces icon" %} {% data variables.product.prodname_codespaces %}** then click **Policy**.
2. On the "Codespace policies" page, click **Create Policy**.
3. Enter a name for your new policy.
4. Click **Add constraint** and choose **Machine types**.
![Add a constraint for machine types](/assets/images/help/codespaces/add-constraint-dropdown.png)
1. Click {% octicon "pencil" aria-label="The edit icon" %} to edit the constraint, then clear the selection of any machine types that you don't want to be available.
5. Click {% octicon "pencil" aria-label="The edit icon" %} to edit the constraint, then clear the selection of any machine types that you don't want to be available.
![Edit the machine type constraint](/assets/images/help/codespaces/edit-machine-constraint.png)
1. In the "Change policy target" area, click the dropdown button.
1. Choose either **All repositories** or **Selected repositories** to determine which repositories this policy will apply to.
1. If you chose **Selected repositories**:
6. In the "Change policy target" area, click the dropdown button.
7. Choose either **All repositories** or **Selected repositories** to determine which repositories this policy will apply to.
8. If you chose **Selected repositories**:
1. Click {% octicon "gear" aria-label="The settings icon" %}.
![Edit the settings for the policy](/assets/images/help/codespaces/policy-edit.png)
1. Select the repositories you want this policy to apply to.
1. At the bottom of the repository list, click **Select repositories**.
2. Select the repositories you want this policy to apply to.
3. At the bottom of the repository list, click **Select repositories**.
![Select repositories for this policy](/assets/images/help/codespaces/policy-select-repos.png)
1. Click **Save**.
9. Click **Save**.
## Editing a policy

View File

@@ -34,7 +34,7 @@ If you selected a specific amount of time to block the user, they will be automa
{% data reusables.profile.access_org %}
{% data reusables.profile.org_settings %}
{% data reusables.organizations.moderation-settings %}
{% data reusables.organizations.moderation-settings %}, then click **Blocked users**.
5. Under "Blocked users", next to the user you'd like to unblock, click **Unblock**.
![Unblock user button](/assets/images/help/organizations/org-unblock-user-button.png)

View File

@@ -33,10 +33,7 @@ Organization owners can also block users for a specific amount of time. After th
{% data reusables.profile.access_org %}
{% data reusables.profile.org_settings %}
1. In the organization settings sidebar, click **Moderation settings**.
!["Moderation settings" in the organization settings sidebar](/assets/images/help/organizations/org-settings-moderation-settings.png)
1. Under "Moderation settings", click **Interaction limits**.
!["Interaction limits" in the organization settings sidebar](/assets/images/help/organizations/org-settings-interaction-limits.png)
1. In the "Access" section of the sidebar, select **{% octicon "report" aria-label="The report icon" %} Moderation**, then click **Interaction limits**.
{% data reusables.community.set-interaction-limit %}
![Temporary interaction limit options](/assets/images/help/organizations/organization-temporary-interaction-limits-options.png)

View File

@@ -28,10 +28,7 @@ You can also enable activity limitations on all repositories owned by your user
{% data reusables.repositories.navigate-to-repo %}
{% data reusables.repositories.sidebar-settings %}
1. In the left sidebar, click **Moderation settings**.
!["Moderation settings" in repository settings sidebar](/assets/images/help/repository/repo-settings-moderation-settings.png)
1. Under "Moderation settings", click **Interaction limits**.
![Interaction limits in repository settings ](/assets/images/help/repository/repo-settings-interaction-limits.png)
1. In the "Access" section of the sidebar, select **{% octicon "comment-discussion" aria-label="The comment-discussion icon" %} Moderation options**, then click **Interaction limits**.
{% data reusables.community.set-interaction-limit %}
![Temporary interaction limit options](/assets/images/help/repository/temporary-interaction-limits-options.png)

View File

@@ -0,0 +1,641 @@
---
title: Common validation errors when creating issue forms
intro: 'You may see some of these common validation errors when creating, saving, or viewing issue forms.'
versions:
fpt: '*'
ghec: '*'
topics:
- Community
---
<!--UI-LINK: We link to individual anchors within this file from the issue template editor when the given YAML error is thrown. Links to and anchors within this file should be preserved or should be updated in github/github if they are changed -->
{% data reusables.community.issue-forms-beta %}
## Required top level key `name` is missing
The template does not contain a `name` field, which means it is not clear what to call your issue template when giving users a list of options.
### Example
```yaml
description: "Thank you for reporting a bug!"
...
```
The error can be fixed by adding `name` as a key.
```yaml
name: "Bug report"
description: "Thank you for reporting a bug!"
...
```
## `key` must be a string
This error message means that a permitted key has been provided, but its value cannot be parsed as the data type is not supported.
### Example
The `description` below is being parsed as a Boolean, but it should be a string.
```yaml
name: "Bug report"
description: true
...
```
The error can be fixed by providing a string as the value. Strings may need to be wrapped in double quotes to be successfully parsed. For example, strings that contain `'` must be wrapped in double quotes.
```yaml
name: "Bug report"
description: "true"
...
```
Empty strings, or strings consisting of only whitespaces, are also not permissible when the field expects a string.
```yaml
name: ""
description: "File a bug report"
assignees: " "
...
```
The error can be fixed by correcting the value to be a non-empty string. If the field is not required, you should delete the key-value pair.
```yaml
name: "Bug Report"
description: "File a bug report"
...
```
## `input` is not a permitted key
An unexpected key was supplied at the top level of the template. For more information about which top-level keys are supported, see "[Syntax for issue forms](/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms#top-level-syntax)."
### Example
```yaml
name: "Bug report"
hello: world
...
```
The error can be fixed by removing the unexpected keys.
```yaml
name: "Bug report"
...
```
## Forbidden keys
YAML parses certain strings as `Boolean` values. To avoid this, we have explicitly forbidden the usage of the following keys:
`y`, `Y`, `yes`, `Yes`, `YES`, `n`, `N`, `no`, `No`, `NO`, `true`, `True`, `TRUE`, `false`, `False`, `FALSE`, `on`, `On`, `ON`, `off`, `Off`, `OFF`
The error can be fixed by removing the forbidden keys.
## Body must contain at least one non-markdown field
Issue forms must accept user input, which means that at least one of its fields must contain a user input field. A `markdown` element is static text, so a `body` array cannot contain only `markdown` elements.
### Example
```yaml
name: "Bug report"
body:
- type: markdown
attributes:
value: "Bugs are the worst!"
```
The error can be fixed by adding non-markdown elements that accept user input.
```yaml
name: "Bug report"
body:
- type: markdown
attributes:
value: "Bugs are the worst!"
- type: textarea
attributes:
label: "What's wrong?"
```
## Body must have unique ids
If using `id` attributes to distinguish multiple elements, each `id` attribute must be unique.
### Example
```yaml
name: "Bug report"
body:
- type: input
id: name
attributes:
label: First name
- type: input
id: name
attributes:
label: Last name
```
The error can be fixed by changing the `id` for one of these inputs, so that every `input` field has a unique `id` attribute.
```yaml
name: "Bug report"
body:
- type: input
id: name
attributes:
label: First name
- type: input
id: surname
attributes:
label: Last name
```
## Body must have unique labels
When there are multiple `body` elements that accept user input, the `label` attribute for each user input field must be unique.
### Example
```yaml
name: "Bug report"
body:
- type: textarea
attributes:
label: Name
- type: textarea
attributes:
label: Name
```
The error can be fixed by changing the `label` attribute for one of the input fields to ensure that each `label` is unique.
```yaml
name: "Bug report"
body:
- type: textarea
attributes:
label: Name
- type: textarea
attributes:
label: Operating System
```
Input fields can also be differentiated by their `id` attribute. If duplicate `label` attributes are required, you can supply at least one `id` to differentiate two elements with identical labels.
```yaml
name: "Bug report"
body:
- type: textarea
id: name_1
attributes:
label: Name
- type: textarea
id: name_2
attributes:
label: Name
```
`id` attributes are not visible in the issue body. If you want to distinguish the fields in the resulting issue, you should use distinct `label` attributes.
## Labels are too similar
Similar labels may be processed into identical references. If an `id` attribute is not provided for an `input`, the `label` attribute is used to generate a reference to the `input` field. To do this, we process the `label` by leveraging the Rails [parameterize](https://apidock.com/rails/ActiveSupport/Inflector/parameterize) method. In some cases, two labels that are distinct can be processed into the same parameterized string.
### Example
```yaml
name: "Bug report"
body:
- type: input
attributes:
label: Name?
- type: input
id: name
attributes:
label: Name???????
```
The error can be fixed by adding at least one differentiating alphanumeric character, `-`, or `_` to one of the clashing labels.
```yaml
name: "Bug report"
body:
- type: input
attributes:
label: Name?
- type: input
attributes:
label: Your name
```
The error can also be fixed by giving one of the clashing labels a unique `id`.
```yaml
name: "Bug report"
body:
- type: input
attributes:
label: Name?
- type: input
id: your-name
attributes:
label: Name???????
```
## Checkboxes must have unique labels
When a `checkboxes` element is present, each of its nested labels must be unique among its peers, as well as among other input types.
### Example
```yaml
name: "Bug report"
body:
- type: textarea
attributes:
label: Name
- type: checkboxes
attributes:
options:
- label: Name
```
The error can be fixed by changing the `label` attribute for one of these inputs.
```yaml
name: "Bug report"
body:
- type: textarea
attributes:
label: Name
- type: checkboxes
attributes:
options:
- label: Your name
```
Alternatively, you can supply an `id` to any clashing top-level elements. Nested checkbox elements do not support the `id` attribute.
```yaml
name: "Bug report"
body:
- type: textarea
id: name_1
attributes:
label: Name
- type: checkboxes
attributes:
options:
- label: Name
```
`id` attributes are not visible in the issue body. If you want to distinguish the fields in the resulting issue, you should use distinct `label` attributes.
## Body[i]: required key type is missing
Each body block must contain the key `type`.
Errors with `body` will be prefixed with `body[i]` where `i` represents the zero-indexed index of the body block containing the error. For example, `body[0]` tells us that the error has been caused by the first block in the `body` list.
### Example
```yaml
body:
- attributes:
value: "Thanks for taking the time to fill out this bug! If you need real-time help, join us on Discord."
preview_only: false
```
The error can be fixed by adding the key `type` with a valid input type as the value. For the available `body` input types and their syntaxes, see "[Syntax for {% data variables.product.prodname_dotcom %}'s form schema](/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#keys)."
```yaml
body:
- type: markdown
attributes:
value: "Thanks for taking the time to fill out this bug! If you need real-time help, join us on Discord."
preview_only: false
```
## Body[i]: `x` is not a valid input type
One of the body blocks contains a type value that is not one of the [permitted types](/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#keys).
Errors with `body` will be prefixed with `body[i]` where `i` represents the index of the body block containing the error. For example, `body[0]` tells us that the error has been caused by the first block in the `body` list.
### Example
```yaml
body:
- type: x
attributes:
value: "Thanks for taking the time to fill out this bug! If you need real-time help, join us on Discord."
preview_only: false
```
The error can be fixed by changing `x` to one of the valid types.
```yaml
body:
- type: markdown
attributes:
value: "Thanks for taking the time to fill out this bug! If you need real-time help, join us on Discord."
preview_only: false
```
## Body[i]: required attribute key `value` is missing
One of the required `value` attributes has not been provided. The error occurs when a block does not have an `attributes` key or does not have a `value` key under the `attributes` key.
Errors with `body` will be prefixed with `body[i]` where `i` represents the index of the body block containing the error. For example, `body[0]` tells us that the error has been caused by the first block in the `body` list.
### Example
```yaml
body:
- type: markdown
attributes:
value: "Thanks for taking the time to fill out this bug! If you need real-time help, join us on Discord."
preview_only: false
- type: markdown
```
The error in this example can be fixed by adding `value` as a key under `attributes` in the second list element of `body`.
```yaml
body:
- type: markdown
attributes:
value: "Thanks for taking the time to fill out this bug! If you need real-time help, join us on Discord."
preview_only: false
- type: markdown
attributes:
value: "This is working now!"
```
## Body[i]: label must be a string
Within its `attributes` block, a value has the wrong data type.
Errors with `body` will be prefixed with `body[i]` where `i` represents the index of the body block containing the error. For example, `body[0]` tells us that the error has been caused by the first block in the `body` list.
### Example
The `label` below is being parsed as a Boolean, but it should be a string.
```yaml
body:
- type: markdown
attributes:
value: "Thanks for taking the time to fill out this bug! If you need real-time help, join us on Discord."
- type: textarea
attributes:
label: Bug Description
- type: textarea
attributes:
label: true
```
The error can be fixed by supplying a string value for `label`. If you want to use a `label` value that may be parsed as a Boolean, integer, or decimal, you should wrap the value in quotes. For example, `"true"` or `"1.3"` instead of `true` or `1.3`.
```yaml
- type: markdown
attributes:
value: "Thanks for taking the time to fill out this bug! If you need real-time help, join us on Discord."
- type: textarea
attributes:
label: Bug Description
- type: textarea
attributes:
label: Environment Details
```
Empty strings, or strings consisting of only whitespaces, are not permissible when an attribute expects a string. For example, `""` or `" "` are not allowed.
If the attribute is required, the value must be a non-empty string. If the field is not required, you should delete the key-value pair.
```yaml
body:
- type: input
attributes:
label: "Name"
```
## Body[i]: `id` can only contain numbers, letters, -, _
`id` attributes can only contain alphanumeric characters, `-`, and `_`. Your template may include non-permitted characters, such as whitespace, in an `id`.
Errors with `body` will be prefixed with `body[i]` where `i` represents the index of the body block containing the error. For example, `body[0]` tells us that the error has been caused by the first block in the `body` list.
### Example
```yaml
name: "Bug report"
body:
- type: input
id: first name
attributes:
label: First name
```
The error can be fixed by ensuring that whitespaces and other non-permitted characters are removed from `id` values.
```yaml
name: "Bug report"
body:
- type: input
id: first-name
attributes:
label: First name
```
## Body[i]: `x` is not a permitted key
An unexpected key, `x`, was provided at the same indentation level as `type` and `attributes`.
Errors with `body` will be prefixed with `body[i]` where `i` represents the index of the body block containing the error. For example, `body[0]` tells us that the error has been caused by the first block in the `body` list.
### Example
```yaml
body:
- type: markdown
x: woof
attributes:
value: "Thanks for taking the time to fill out this bug! If you need real-time help, join us on Discord."
```
The error can be fixed by removing extra keys and only using `type`, `attributes`, and `id`.
```yaml
body:
- type: markdown
attributes:
value: "Thanks for taking the time to fill out this bug! If you need real-time help, join us on Discord."
```
## Body[i]: `label` contains forbidden word
To minimize the risk of private information and credentials being posted publicly in GitHub Issues, some words commonly used by attackers are not permitted in the `label` of input or textarea elements.
Errors with `body` will be prefixed with `body[i]` where `i` represents the index of the body block containing the error. For example, `body[0]` tells us that the error has been caused by the first block in the `body` list.
### Example
```yaml
body:
- type: markdown
attributes:
value: Hello world!
- type: input
attributes:
label: Password
```
The error can be fixed by removing terms like "password" from any `label` fields.
```yaml
body:
- type: markdown
attributes:
value: Hello world!
- type: input
attributes:
label: Username
```
## Body[i]: `x` is not a permitted attribute
An invalid key has been supplied in an `attributes` block.
Errors with `body` will be prefixed with `body[i]` where `i` represents the index of the body block containing the error. For example, `body[0]` tells us that the error has been caused by the first block in the `body` list.
### Example
```yaml
body:
- type: markdown
attributes:
x: "a random key!"
value: "Thanks for taking the time to fill out this bug!"
```
The error can be fixed by removing extra keys and only using permitted attributes.
```yaml
body:
- type: markdown
attributes:
value: "Thanks for taking the time to fill out this bug!"
```
## Body[i]: `options` must be unique
For checkboxes and dropdown input types, the choices defined in the `options` array must be unique.
Errors with `body` will be prefixed with `body[i]` where `i` represents the index of the body block containing the error. For example, `body[0]` tells us that the error has been caused by the first block in the `body` list.
### Example
```
body:
- type: dropdown
attributes:
label: Favorite dessert
options:
- ice cream
- ice cream
- pie
```
The error can be fixed by ensuring that no duplicate choices exist in the `options` array.
```
body:
- type: dropdown
attributes:
label: Favorite dessert
options:
- ice cream
- pie
```
## Body[i]: `options` must not include the reserved word, none
"None" is a reserved word in an `options` set because it is used to indicate non-choice when a `dropdown` is not required.
Errors with `body` will be prefixed with `body[i]` where `i` represents the index of the body block containing the error. For example, `body[0]` tells us that the error has been caused by the first block in the `body` list.
### Example
```
body:
- type: dropdown
attributes:
label: What types of pie do you like?
options:
- Steak & Ale
- Chicken & Leek
- None
validations:
required: true
```
The error can be fixed by removing "None" as an option. If you want a contributor to be able to indicate that they like none of those types of pies, you can additionally remove the `required` validation.
```
body:
- type: dropdown
attributes:
label: What types of pie do you like?
options:
- Steak & Ale
- Chicken & Leek
```
In this example, "None" will be auto-populated as a selectable option.
## Body[i]: `options` must not include booleans. Please wrap values such as 'yes', and 'true' in quotes
There are a number of English words that become processed into Boolean values by the YAML parser unless they are wrapped in quotes. For dropdown `options`, all items must be strings rather than Booleans.
Errors with `body` will be prefixed with `body[i]` where `i` represents the index of the body block containing the error. For example, `body[0]` tells us that the error has been caused by the first block in the `body` list.
### Example
```
body:
- type: dropdown
attributes:
label: Do you like pie?
options:
- Yes
- No
- Maybe
```
The error can be fixed by wrapping each offending option in quotes, to prevent them from being processed as Boolean values.
```
body:
- type: dropdown
attributes:
label: Do you like pie?
options:
- "Yes"
- "No"
- Maybe
```
## Further reading
- [YAML](https://yaml.org/)
- [Syntax for issue forms](/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms)

View File

@@ -21,5 +21,6 @@ children:
- /syntax-for-githubs-form-schema
- /creating-a-pull-request-template-for-your-repository
- /manually-creating-a-single-issue-template-for-your-repository
- /common-validation-errors-when-creating-issue-forms
---

View File

@@ -238,7 +238,7 @@ You can use the `checkboxes` element to add a set of checkboxes to your form.
| Key | Description | Required | Type | Default | Valid values |
| --- | ----------- | -------- | ---- | ------- | ------- |
| `label` | A brief description of the expected user input, which is displayed in the form. | Optional | String | {% octicon "dash" aria-label="The dash icon" %} | {% octicon "dash" aria-label="The dash icon" %} |
| `label` | A brief description of the expected user input, which is displayed in the form. | Required | String | {% octicon "dash" aria-label="The dash icon" %} | {% octicon "dash" aria-label="The dash icon" %} |
| `description` | A description of the set of checkboxes, which is displayed in the form. Supports Markdown formatting. | Optional | String | Empty String | {% octicon "dash" aria-label="The dash icon" %} |
| `options` | An array of checkboxes that the user can select. For syntax, see below. | Required | Array | {% octicon "dash" aria-label="The dash icon" %} | {% octicon "dash" aria-label="The dash icon" %} |

View File

@@ -165,3 +165,4 @@ body:
## Further reading
- [YAML](https://yaml.org/)
- [Common validation errors when creating issue forms](/communities/using-templates-to-encourage-useful-issues-and-pull-requests/common-validation-errors-when-creating-issue-forms)

View File

@@ -52,7 +52,7 @@ The best way to explain subtree merges is to show by example. We will:
1. Add a new remote URL pointing to the separate project that we're interested in.
```shell
$ git remote add -f spoon-knife git@github.com:octocat/Spoon-Knife.git
$ git remote add -f spoon-knife https://github.com/octocat/Spoon-Knife.git
> Updating spoon-knife
> warning: no common commits
> remote: Counting objects: 1732, done.
@@ -60,7 +60,7 @@ The best way to explain subtree merges is to show by example. We will:
> remote: Total 1732 (delta 1086), reused 1558 (delta 967)
> Receiving objects: 100% (1732/1732), 528.19 KiB | 621 KiB/s, done.
> Resolving deltas: 100% (1086/1086), done.
> From git://github.com/octocat/Spoon-Knife
> From https://github.com/octocat/Spoon-Knife
> * [new branch] main -> Spoon-Knife/main
```
2. Merge the `Spoon-Knife` project into the local Git project. This doesn't change any of your files locally, but it does prepare Git for the next step.

View File

@@ -29,45 +29,45 @@ The {% data variables.product.prodname_command_palette %} also gives you quick a
| Keyboard shortcut | Description
|-----------|------------
|<kbd>s</kbd> or <kbd>/</kbd> | Focus the search bar. For more information, see "[About searching on {% data variables.product.company_short %}](/search-github/getting-started-with-searching-on-github/about-searching-on-github)."
|<kbd>g</kbd> <kbd>n</kbd> | Go to your notifications. For more information, see {% ifversion fpt or ghes or ghae or ghec %}"[About notifications](/github/managing-subscriptions-and-notifications-on-github/about-notifications){% else %}"[About notifications](/github/receiving-notifications-about-activity-on-github/about-notifications){% endif %}."
|<kbd>esc</kbd> | When focused on a user, issue, or pull request hovercard, closes the hovercard and refocuses on the element the hovercard is in
{% if command-palette %}|<kbd>control</kbd><kbd>k</kbd> or <kbd>command</kbd><kbd>k</kbd> | Opens the {% data variables.product.prodname_command_palette %}. If you are editing Markdown text, open the command palette with <kbd>Ctl</kbd><kbd>alt</kbd><kbd>k</kbd> or <kbd></kbd><kbd>option</kbd><kbd>k</kbd>. For more information, see "[{% data variables.product.prodname_command_palette %}](/get-started/using-github/github-command-palette)."{% endif %}
|<kbd>S</kbd> or <kbd>/</kbd> | Focus the search bar. For more information, see "[About searching on {% data variables.product.company_short %}](/search-github/getting-started-with-searching-on-github/about-searching-on-github)."
|<kbd>G</kbd> <kbd>N</kbd> | Go to your notifications. For more information, see {% ifversion fpt or ghes or ghae or ghec %}"[About notifications](/github/managing-subscriptions-and-notifications-on-github/about-notifications){% else %}"[About notifications](/github/receiving-notifications-about-activity-on-github/about-notifications){% endif %}."
|<kbd>Esc</kbd> | When focused on a user, issue, or pull request hovercard, closes the hovercard and refocuses on the element the hovercard is in
{% if command-palette %}|<kbd>Command</kbd>+<kbd>K</kbd> (Mac) or </br> <kbd>Ctrl</kbd>+<kbd>K</kbd> (Windows/Linux) | Opens the {% data variables.product.prodname_command_palette %}. If you are editing Markdown text, open the command palette with <kbd>Command</kbd>+<kbd>Option</kbd>+<kbd>K</kbd> or <kbd>Ctrl</kbd>+<kbd>Alt</kbd>+<kbd>K</kbd>. For more information, see "[{% data variables.product.prodname_command_palette %}](/get-started/using-github/github-command-palette)."{% endif %}
## Repositories
| Keyboard shortcut | Description
|-----------|------------
|<kbd>g</kbd> <kbd>c</kbd> | Go to the **Code** tab
|<kbd>g</kbd> <kbd>i</kbd> | Go to the **Issues** tab. For more information, see "[About issues](/articles/about-issues)."
|<kbd>g</kbd> <kbd>p</kbd> | Go to the **Pull requests** tab. For more information, see "[About pull requests](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)."{% ifversion fpt or ghes or ghec %}
|<kbd>g</kbd> <kbd>a</kbd> | Go to the **Actions** tab. For more information, see "[About Actions](/actions/getting-started-with-github-actions/about-github-actions)."{% endif %}
|<kbd>g</kbd> <kbd>b</kbd> | Go to the **Projects** tab. For more information, see "[About project boards](/articles/about-project-boards)."
|<kbd>g</kbd> <kbd>w</kbd> | Go to the **Wiki** tab. For more information, see "[About wikis](/communities/documenting-your-project-with-wikis/about-wikis)."{% ifversion fpt or ghec %}
|<kbd>g</kbd> <kbd>g</kbd> | Go to the **Discussions** tab. For more information, see "[About discussions](/discussions/collaborating-with-your-community-using-discussions/about-discussions)."{% endif %}
|<kbd>G</kbd> <kbd>C</kbd> | Go to the **Code** tab
|<kbd>G</kbd> <kbd>I</kbd> | Go to the **Issues** tab. For more information, see "[About issues](/articles/about-issues)."
|<kbd>G</kbd> <kbd>P</kbd> | Go to the **Pull requests** tab. For more information, see "[About pull requests](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)."{% ifversion fpt or ghes or ghec %}
|<kbd>G</kbd> <kbd>A</kbd> | Go to the **Actions** tab. For more information, see "[About Actions](/actions/getting-started-with-github-actions/about-github-actions)."{% endif %}
|<kbd>G</kbd> <kbd>B</kbd> | Go to the **Projects** tab. For more information, see "[About project boards](/articles/about-project-boards)."
|<kbd>G</kbd> <kbd>W</kbd> | Go to the **Wiki** tab. For more information, see "[About wikis](/communities/documenting-your-project-with-wikis/about-wikis)."{% ifversion fpt or ghec %}
|<kbd>G</kbd> <kbd>G</kbd> | Go to the **Discussions** tab. For more information, see "[About discussions](/discussions/collaborating-with-your-community-using-discussions/about-discussions)."{% endif %}
## Source code editing
| Keyboard shortcut | Description
|-----------|------------{% ifversion fpt or ghec %}
|<kbd>.</kbd> | Opens a repository or pull request in the web-based editor. For more information, see "[Web-based editor](/codespaces/developing-in-codespaces/web-based-editor)."{% endif %}
| <kbd>control b</kbd> or <kbd>command b</kbd> | Inserts Markdown formatting for bolding text
| <kbd>control i</kbd> or <kbd>command i</kbd> | Inserts Markdown formatting for italicizing text
| <kbd>control k</kbd> or <kbd>command k</kbd> | Inserts Markdown formatting for creating a link{% ifversion fpt or ghec or ghae or ghes > 3.3 %}
| <kbd>control shift 7</kbd> or <kbd>command shift 7</kbd> | Inserts Markdown formatting for an ordered list
| <kbd>control shift 8</kbd> or <kbd>command shift 8</kbd> | Inserts Markdown formatting for an unordered list
| <kbd>control shift .</kbd> or <kbd>command shift.</kbd> | Inserts Markdown formatting for a quote{% endif %}
|<kbd>e</kbd> | Open source code file in the **Edit file** tab
|<kbd>control f</kbd> or <kbd>command f</kbd> | Start searching in file editor
|<kbd>control g</kbd> or <kbd>command g</kbd> | Find next
|<kbd>control shift g</kbd> or <kbd>command shift g</kbd> | Find previous
|<kbd>control shift f</kbd> or <kbd>command option f</kbd> | Replace
|<kbd>control shift r</kbd> or <kbd>command shift option f</kbd> | Replace all
|<kbd>alt g</kbd> | Jump to line
|<kbd>control z</kbd> or <kbd>command z</kbd> | Undo
|<kbd>control y</kbd> or <kbd>command y</kbd> | Redo
|<kbd>command shift p</kbd> | Toggles between the **Edit file** and **Preview changes** tabs
|<kbd>control s</kbd> or <kbd>command s</kbd> | Write a commit message
|<kbd>Command</kbd>+<kbd>B</kbd> (Mac) or </br> <kbd>Ctrl</kbd>+<kbd>B</kbd> (Windows/Linux) | Inserts Markdown formatting for bolding text
|<kbd>Command</kbd>+<kbd>I</kbd> (Mac) or </br> <kbd>Ctrl</kbd>+<kbd>I</kbd> (Windows/Linux) | Inserts Markdown formatting for italicizing text
|<kbd>Command</kbd>+<kbd>K</kbd> (Mac) or </br> <kbd>Ctrl</kbd>+<kbd>K</kbd> (Windows/Linux) | Inserts Markdown formatting for creating a link{% ifversion fpt or ghec or ghae or ghes > 3.3 %}
|<kbd>Command</kbd>+<kbd>Shift</kbd>+<kbd>7</kbd> (Mac) or </br> <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>7</kbd> (Windows/Linux) | Inserts Markdown formatting for an ordered list
|<kbd>Command</kbd>+<kbd>Shift</kbd>+<kbd>8</kbd> (Mac) or </br> <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>8</kbd> (Windows/Linux) | Inserts Markdown formatting for an unordered list
|<kbd>Command</kbd>+<kbd>Shift</kbd>+<kbd>.</kbd> (Mac) or </br> <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>.</kbd> (Windows/Linux) | Inserts Markdown formatting for a quote{% endif %}
|<kbd>E</kbd> | Open source code file in the **Edit file** tab
|<kbd>Command</kbd>+<kbd>F</kbd> (Mac) or </br> <kbd>Ctrl</kbd>+<kbd>F</kbd> (Windows/Linux) | Start searching in file editor
|<kbd>Command</kbd>+<kbd>G</kbd> (Mac) or </br> <kbd>Ctrl</kbd>+<kbd>G</kbd> (Windows/Linux) | Find next
|<kbd>Command</kbd>+<kbd>Shift</kbd>+<kbd>G</kbd> (Mac) or </br> <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>G</kbd> (Windows/Linux) | Find previous
|<kbd>Command</kbd>+<kbd>Option</kbd>+<kbd>F</kbd> (Mac) or </br> <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>F</kbd> (Windows/Linux) | Replace
|<kbd>Command</kbd>+<kbd>Shift</kbd>+<kbd>Option</kbd>+<kbd>F</kbd> (Mac) or </br> <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>R</kbd> (Windows/Linux) | Replace all
|<kbd>Alt</kbd>+<kbd>G</kbd> | Jump to line
|<kbd>Command</kbd>+<kbd>Z</kbd> (Mac) or </br> <kbd>Ctrl</kbd>+<kbd>Z</kbd> (Windows/Linux) | Undo
|<kbd>Command</kbd>+<kbd>Y</kbd> (Mac) or </br> <kbd>Ctrl</kbd>+<kbd>Y</kbd> (Windows/Linux) | Redo
|<kbd>Command</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd> | Toggles between the **Edit file** and **Preview changes** tabs
|<kbd>Command</kbd>+<kbd>S</kbd> (Mac) or </br> <kbd>Ctrl</kbd>+<kbd>S</kbd> (Windows/Linux) | Write a commit message
For more keyboard shortcuts, see the [CodeMirror documentation](https://codemirror.net/doc/manual.html#commands).
@@ -75,67 +75,67 @@ For more keyboard shortcuts, see the [CodeMirror documentation](https://codemirr
| Keyboard shortcut | Description
|-----------|------------
|<kbd>t</kbd> | Activates the file finder
|<kbd>l</kbd> | Jump to a line in your code
|<kbd>w</kbd> | Switch to a new branch or tag
|<kbd>y</kbd> | Expand a URL to its canonical form. For more information, see "[Getting permanent links to files](/articles/getting-permanent-links-to-files)."
|<kbd>i</kbd> | Show or hide comments on diffs. For more information, see "[Commenting on the diff of a pull request](/articles/commenting-on-the-diff-of-a-pull-request)."
|<kbd>a</kbd> | Show or hide annotations on diffs
|<kbd>b</kbd> | Open blame view. For more information, see "[Tracing changes in a file](/articles/tracing-changes-in-a-file)."
|<kbd>T</kbd> | Activates the file finder
|<kbd>L</kbd> | Jump to a line in your code
|<kbd>W</kbd> | Switch to a new branch or tag
|<kbd>Y</kbd> | Expand a URL to its canonical form. For more information, see "[Getting permanent links to files](/articles/getting-permanent-links-to-files)."
|<kbd>I</kbd> | Show or hide comments on diffs. For more information, see "[Commenting on the diff of a pull request](/articles/commenting-on-the-diff-of-a-pull-request)."
|<kbd>A</kbd> | Show or hide annotations on diffs
|<kbd>B</kbd> | Open blame view. For more information, see "[Tracing changes in a file](/articles/tracing-changes-in-a-file)."
## Comments
| Keyboard shortcut | Description
|-----------|------------
| <kbd>control b</kbd> or <kbd>command b</kbd> | Inserts Markdown formatting for bolding text
| <kbd>control i</kbd> or <kbd>command i</kbd> | Inserts Markdown formatting for italicizing text{% ifversion fpt or ghae or ghes > 3.1 or ghec %}
| <kbd>control e</kbd> or <kbd>command e</kbd> | Inserts Markdown formatting for code or a command within a line{% endif %}
| <kbd>control k</kbd> or <kbd>command k</kbd> | Inserts Markdown formatting for creating a link
| <kbd>control shift p</kbd> or <kbd>command shift p</kbd>| Toggles between the **Write** and **Preview** comment tabs{% ifversion fpt or ghae or ghes > 3.2 or ghec %}
| <kbd>control shift 7</kbd> or <kbd>command shift 7</kbd> | Inserts Markdown formatting for an ordered list
| <kbd>control shift 8</kbd> or <kbd>command shift 8</kbd> | Inserts Markdown formatting for an unordered list{% endif %}
| <kbd>control enter</kbd> or <kbd>command enter</kbd> | Submits a comment
| <kbd>control .</kbd> and then <kbd>control [saved reply number]</kbd> | Opens saved replies menu and then autofills comment field with a saved reply. For more information, see "[About saved replies](/articles/about-saved-replies)."{% ifversion fpt or ghae or ghes > 3.2 or ghec %}
| <kbd>control shift .</kbd> or <kbd>command shift.</kbd> | Inserts Markdown formatting for a quote{% endif %}{% ifversion fpt or ghec %}
|<kbd>control g</kbd> or <kbd>command g</kbd> | Insert a suggestion. For more information, see "[Reviewing proposed changes in a pull request](/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-proposed-changes-in-a-pull-request)." |{% endif %}
| <kbd>r</kbd> | Quote the selected text in your reply. For more information, see "[Basic writing and formatting syntax](/articles/basic-writing-and-formatting-syntax#quoting-text)." |
|<kbd>Command</kbd>+<kbd>B</kbd> (Mac) or </br> <kbd>Ctrl</kbd>+<kbd>B</kbd> (Windows/Linux) | Inserts Markdown formatting for bolding text
|<kbd>Command</kbd>+<kbd>I</kbd> (Mac) or </br> <kbd>Ctrl</kbd>+<kbd>I</kbd> (Windows/Linux) | Inserts Markdown formatting for italicizing text{% ifversion fpt or ghae or ghes > 3.1 or ghec %}
|<kbd>Command</kbd>+<kbd>E</kbd> (Mac) or </br> <kbd>Ctrl</kbd>+<kbd>E</kbd> (Windows/Linux) | Inserts Markdown formatting for code or a command within a line{% endif %}
|<kbd>Command</kbd>+<kbd>K</kbd> (Mac) or </br> <kbd>Ctrl</kbd>+<kbd>K</kbd> (Windows/Linux) | Inserts Markdown formatting for creating a link
|<kbd>Command</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd> (Mac) or </br> <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd> (Windows/Linux) | Toggles between the **Write** and **Preview** comment tabs{% ifversion fpt or ghae or ghes > 3.2 or ghec %}
|<kbd>Command</kbd>+<kbd>Shift</kbd>+<kbd>7</kbd> (Mac) or </br> <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>7</kbd> (Windows/Linux) | Inserts Markdown formatting for an ordered list
|<kbd>Command</kbd>+<kbd>Shift</kbd>+<kbd>8</kbd> (Mac) or </br> <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>8</kbd> (Windows/Linux) | Inserts Markdown formatting for an unordered list{% endif %}
|<kbd>Command</kbd>+<kbd>Enter</kbd> (Mac) or </br> <kbd>Ctrl</kbd>+<kbd>Enter</kbd> (Windows/Linux) | Submits a comment
|<kbd>Ctrl</kbd>+<kbd>.</kbd> and then <kbd>Ctrl</kbd>+<kbd>[saved reply number]</kbd> | Opens saved replies menu and then autofills comment field with a saved reply. For more information, see "[About saved replies](/articles/about-saved-replies)."{% ifversion fpt or ghae or ghes > 3.2 or ghec %}
|<kbd>Command</kbd>+<kbd>Shift</kbd>+<kbd>.</kbd> (Mac) or </br> <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>.</kbd> (Windows/Linux) | Inserts Markdown formatting for a quote{% endif %}{% ifversion fpt or ghec %}
|<kbd>Command</kbd>+<kbd>G</kbd> (Mac) or </br> <kbd>Ctrl</kbd>+<kbd>G</kbd> (Windows/Linux) | Insert a suggestion. For more information, see "[Reviewing proposed changes in a pull request](/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-proposed-changes-in-a-pull-request)." |{% endif %}
|<kbd>R</kbd> | Quote the selected text in your reply. For more information, see "[Basic writing and formatting syntax](/articles/basic-writing-and-formatting-syntax#quoting-text)." |
## Issue and pull request lists
| Keyboard shortcut | Description
|-----------|------------
|<kbd>c</kbd> | Create an issue
| <kbd>control /</kbd> or <kbd>command /</kbd> | Focus your cursor on the issues or pull requests search bar. For more information, see "[Filtering and searching issues and pull requests](/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests)."||
|<kbd>u</kbd> | Filter by author
|<kbd>l</kbd> | Filter by or edit labels. For more information, see "[Filtering issues and pull requests by labels](/articles/filtering-issues-and-pull-requests-by-labels)."
| <kbd>alt</kbd> and click | While filtering by labels, exclude labels. For more information, see "[Filtering issues and pull requests by labels](/articles/filtering-issues-and-pull-requests-by-labels)."
|<kbd>m</kbd> | Filter by or edit milestones. For more information, see "[Filtering issues and pull requests by milestone](/articles/filtering-issues-and-pull-requests-by-milestone)."
|<kbd>a</kbd> | Filter by or edit assignee. For more information, see "[Filtering issues and pull requests by assignees](/articles/filtering-issues-and-pull-requests-by-assignees)."
|<kbd>o</kbd> or <kbd>enter</kbd> | Open issue
|<kbd>C</kbd> | Create an issue
|<kbd>Command</kbd>+<kbd>/</kbd> (Mac) or </br> <kbd>Ctrl</kbd>+<kbd>/</kbd> (Windows/Linux) | Focus your cursor on the issues or pull requests search bar. For more information, see "[Filtering and searching issues and pull requests](/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests)."||
|<kbd>U</kbd> | Filter by author
|<kbd>L</kbd> | Filter by or edit labels. For more information, see "[Filtering issues and pull requests by labels](/articles/filtering-issues-and-pull-requests-by-labels)."
|<kbd>Alt</kbd> and click | While filtering by labels, exclude labels. For more information, see "[Filtering issues and pull requests by labels](/articles/filtering-issues-and-pull-requests-by-labels)."
|<kbd>M</kbd> | Filter by or edit milestones. For more information, see "[Filtering issues and pull requests by milestone](/articles/filtering-issues-and-pull-requests-by-milestone)."
|<kbd>A</kbd> | Filter by or edit assignee. For more information, see "[Filtering issues and pull requests by assignees](/articles/filtering-issues-and-pull-requests-by-assignees)."
|<kbd>O</kbd> or <kbd>Enter</kbd> | Open issue
## Issues and pull requests
| Keyboard shortcut | Description
|-----------|------------
|<kbd>q</kbd> | Request a reviewer. For more information, see "[Requesting a pull request review](/articles/requesting-a-pull-request-review/)."
|<kbd>m</kbd> | Set a milestone. For more information, see "[Associating milestones with issues and pull requests](/articles/associating-milestones-with-issues-and-pull-requests/)."
|<kbd>l</kbd> | Apply a label. For more information, see "[Applying labels to issues and pull requests](/articles/applying-labels-to-issues-and-pull-requests/)."
|<kbd>a</kbd> | Set an assignee. For more information, see "[Assigning issues and pull requests to other {% data variables.product.company_short %} users](/articles/assigning-issues-and-pull-requests-to-other-github-users/)."
|<kbd>cmd + shift + p</kbd> or <kbd>control + shift + p</kbd> | Toggles between the **Write** and **Preview** tabs{% ifversion fpt or ghec %}
|<kbd>alt</kbd> and click | When creating an issue from a task list, open the new issue form in the current tab by holding <kbd>alt</kbd> and clicking the {% octicon "issue-opened" aria-label="The issue opened icon" %} in the upper-right corner of the task. For more information, see "[About task lists](/issues/tracking-your-work-with-issues/creating-issues/about-task-lists)."
|<kbd>shift</kbd> and click | When creating an issue from a task list, open the new issue form in a new tab by holding <kbd>shift</kbd> and clicking the {% octicon "issue-opened" aria-label="The issue opened icon" %} in the upper-right corner of the task. For more information, see "[About task lists](/issues/tracking-your-work-with-issues/creating-issues/about-task-lists)."
|<kbd>command</kbd> or <kbd>control + shift</kbd> and click | When creating an issue from a task list, open the new issue form in the new window by holding <kbd>command</kbd> or <kbd>control + shift</kbd> and clicking the {% octicon "issue-opened" aria-label="The issue opened icon" %} in the upper-right corner of the task. For more information, see "[About task lists](/issues/tracking-your-work-with-issues/creating-issues/about-task-lists)."{% endif %}
|<kbd>Q</kbd> | Request a reviewer. For more information, see "[Requesting a pull request review](/articles/requesting-a-pull-request-review/)."
|<kbd>M</kbd> | Set a milestone. For more information, see "[Associating milestones with issues and pull requests](/articles/associating-milestones-with-issues-and-pull-requests/)."
|<kbd>L</kbd> | Apply a label. For more information, see "[Applying labels to issues and pull requests](/articles/applying-labels-to-issues-and-pull-requests/)."
|<kbd>A</kbd> | Set an assignee. For more information, see "[Assigning issues and pull requests to other {% data variables.product.company_short %} users](/articles/assigning-issues-and-pull-requests-to-other-github-users/)."
|<kbd>Command</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd> (Mac) or </br> <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd> (Windows/Linux) | Toggles between the **Write** and **Preview** tabs{% ifversion fpt or ghec %}
|<kbd>Alt</kbd> and click | When creating an issue from a task list, open the new issue form in the current tab by holding <kbd>Alt</kbd> and clicking the {% octicon "issue-opened" aria-label="The issue opened icon" %} in the upper-right corner of the task. For more information, see "[About task lists](/issues/tracking-your-work-with-issues/creating-issues/about-task-lists)."
|<kbd>Shift</kbd> and click | When creating an issue from a task list, open the new issue form in a new tab by holding <kbd>Shift</kbd> and clicking the {% octicon "issue-opened" aria-label="The issue opened icon" %} in the upper-right corner of the task. For more information, see "[About task lists](/issues/tracking-your-work-with-issues/creating-issues/about-task-lists)."
|<kbd>Command</kbd> and click (Mac) or </br> <kbd>Ctrl</kbd>+<kbd>Shift</kbd> and click (Windows/Linux) | When creating an issue from a task list, open the new issue form in the new window by holding <kbd>Command</kbd> or <kbd>Ctrl</kbd>+<kbd>Shift</kbd> and clicking the {% octicon "issue-opened" aria-label="The issue opened icon" %} in the upper-right corner of the task. For more information, see "[About task lists](/issues/tracking-your-work-with-issues/creating-issues/about-task-lists)."{% endif %}
## Changes in pull requests
| Keyboard shortcut | Description
|-----------|------------
|<kbd>c</kbd> | Open the list of commits in the pull request
|<kbd>t</kbd> | Open the list of changed files in the pull request
|<kbd>j</kbd> | Move selection down in the list
|<kbd>k</kbd> | Move selection up in the list
| <kbd>cmd + shift + enter </kbd> | Add a single comment on a pull request diff |
| <kbd>alt</kbd> and click | Toggle between collapsing and expanding all outdated review comments in a pull request by holding down `alt` and clicking **Show outdated** or **Hide outdated**.|{% ifversion fpt or ghes or ghae or ghec %}
| Click, then <kbd>shift</kbd> and click | Comment on multiple lines of a pull request by clicking a line number, holding <kbd>shift</kbd>, then clicking another line number. For more information, see "[Commenting on a pull request](/github/collaborating-with-issues-and-pull-requests/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)."|{% endif %}
|<kbd>C</kbd> | Open the list of commits in the pull request
|<kbd>T</kbd> | Open the list of changed files in the pull request
|<kbd>J</kbd> | Move selection down in the list
|<kbd>K</kbd> | Move selection up in the list
|<kbd>Command</kbd>+<kbd>Shift</kbd>+<kbd>Enter</kbd> | Add a single comment on a pull request diff |
|<kbd>Alt</kbd> and click | Toggle between collapsing and expanding all outdated review comments in a pull request by holding down <kbd>Alt</kbd> and clicking **Show outdated** or **Hide outdated**.|{% ifversion fpt or ghes or ghae or ghec %}
|Click, then <kbd>Shift</kbd> and click | Comment on multiple lines of a pull request by clicking a line number, holding <kbd>Shift</kbd>, then clicking another line number. For more information, see "[Commenting on a pull request](/github/collaborating-with-issues-and-pull-requests/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)."|{% endif %}
## Project boards
@@ -143,50 +143,50 @@ For more keyboard shortcuts, see the [CodeMirror documentation](https://codemirr
| Keyboard shortcut | Description
|-----------|------------
|<kbd>enter</kbd> or <kbd>space</kbd> | Start moving the focused column
|<kbd>escape</kbd> | Cancel the move in progress
|<kbd>enter</kbd> | Complete the move in progress
|<kbd>←</kbd> or <kbd>h</kbd> | Move column to the left
|<kbd>command + ←</kbd> or <kbd>command + h</kbd> or <kbd>control + ←</kbd> or <kbd>control + h</kbd> | Move column to the leftmost position
|<kbd>→</kbd> or <kbd>l</kbd> | Move column to the right
|<kbd>command + →</kbd> or <kbd>command + l</kbd> or <kbd>control + →</kbd> or <kbd>control + l</kbd> | Move column to the rightmost position
|<kbd>Enter</kbd> or <kbd>Space</kbd> | Start moving the focused column
|<kbd>Esc</kbd> | Cancel the move in progress
|<kbd>Enter</kbd> | Complete the move in progress
|<kbd>←</kbd> or <kbd>H</kbd> | Move column to the left
|<kbd>Command</kbd>+<kbd>←</kbd> or <kbd>Command</kbd>+<kbd>H</kbd> (Mac) or </br> <kbd>Ctrl</kbd>+<kbd>←</kbd> or <kbd>Ctrl</kbd>+<kbd>H</kbd> (Windows/Linux) | Move column to the leftmost position
|<kbd>→</kbd> or <kbd>L</kbd> | Move column to the right
|<kbd>Command</kbd>+<kbd>→</kbd> or <kbd>Command</kbd>+<kbd>L</kbd> (Mac) or </br> <kbd>Ctrl</kbd>+<kbd>→</kbd> or <kbd>Ctrl</kbd>+<kbd>L</kbd> (Windows/Linux) | Move column to the rightmost position
### Moving a card
| Keyboard shortcut | Description
|-----------|------------
|<kbd>enter</kbd> or <kbd>space</kbd> | Start moving the focused card
|<kbd>escape</kbd> | Cancel the move in progress
|<kbd>enter</kbd> | Complete the move in progress
|<kbd>↓</kbd> or <kbd>j</kbd> | Move card down
|<kbd>command + ↓</kbd> or <kbd>command + j</kbd> or <kbd>control + ↓</kbd> or <kbd>control + j</kbd> | Move card to the bottom of the column
|<kbd>↑</kbd> or <kbd>k</kbd> | Move card up
|<kbd>command + ↑</kbd> or <kbd>command + k</kbd> or <kbd>control + ↑</kbd> or <kbd>control + k</kbd> | Move card to the top of the column
|<kbd>←</kbd> or <kbd>h</kbd> | Move card to the bottom of the column on the left
|<kbd>shift + ←</kbd> or <kbd>shift + h</kbd> | Move card to the top of the column on the left
|<kbd>command + ←</kbd> or <kbd>command + h</kbd> or <kbd>control + ←</kbd> or <kbd>control + h</kbd> | Move card to the bottom of the leftmost column
|<kbd>command + shift + ←</kbd> or <kbd>command + shift + h</kbd> or <kbd>control + shift + ←</kbd> or <kbd>control + shift + h</kbd> | Move card to the top of the leftmost column
|<kbd>Enter</kbd> or <kbd>Space</kbd> | Start moving the focused card
|<kbd>Esc</kbd> | Cancel the move in progress
|<kbd>Enter</kbd> | Complete the move in progress
|<kbd>↓</kbd> or <kbd>J</kbd> | Move card down
|<kbd>Command</kbd>+<kbd>↓</kbd> or <kbd>Command</kbd>+<kbd>J</kbd> (Mac) or </br> <kbd>Ctrl</kbd>+<kbd>↓</kbd> or <kbd>Ctrl</kbd>+<kbd>J</kbd> (Windows/Linux) | Move card to the bottom of the column
|<kbd>↑</kbd> or <kbd>K</kbd> | Move card up
|<kbd>Command</kbd>+<kbd>↑</kbd> or <kbd>Command</kbd>+<kbd>K</kbd> (Mac) or </br> <kbd>Ctrl</kbd>+<kbd>↑</kbd> or <kbd>Ctrl</kbd>+<kbd>K</kbd> (Windows/Linux) | Move card to the top of the column
|<kbd>←</kbd> or <kbd>H</kbd> | Move card to the bottom of the column on the left
|<kbd>Shift</kbd>+<kbd>←</kbd> or <kbd>Shift</kbd>+<kbd>H</kbd> | Move card to the top of the column on the left
|<kbd>Command</kbd>+<kbd>←</kbd> or <kbd>Command</kbd>+<kbd>H</kbd> (Mac) or </br> <kbd>Ctrl</kbd>+<kbd>←</kbd> or <kbd>Ctrl</kbd>+<kbd>H</kbd> (Windows/Linux) | Move card to the bottom of the leftmost column
|<kbd>Command</kbd>+<kbd>Shift</kbd>+<kbd>←</kbd> or <kbd>Command</kbd>+<kbd>Shift</kbd>+<kbd>H</kbd> (Mac) or </br> <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>←</kbd> or <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>H</kbd> (Windows/Linux) | Move card to the top of the leftmost column
|<kbd>→</kbd> | Move card to the bottom of the column on the right
|<kbd>shift + →</kbd> or <kbd>shift + l</kbd> | Move card to the top of the column on the right
|<kbd>command + →</kbd> or <kbd>command + l</kbd> or <kbd>control + →</kbd> or <kbd>control + l</kbd> | Move card to the bottom of the rightmost column
|<kbd>command + shift + →</kbd> or <kbd>command + shift + l</kbd> or <kbd>control + shift + →</kbd> or <kbd>control + shift + l</kbd> | Move card to the bottom of the rightmost column
|<kbd>Shift</kbd>+<kbd>→</kbd> or <kbd>Shift</kbd>+<kbd>L</kbd> | Move card to the top of the column on the right
|<kbd>Command</kbd>+<kbd>→</kbd> or <kbd>Command</kbd>+<kbd>L</kbd> (Mac) or </br> <kbd>Ctrl</kbd>+<kbd>→</kbd> or <kbd>Ctrl</kbd>+<kbd>L</kbd> (Windows/Linux) | Move card to the bottom of the rightmost column
|<kbd>Command</kbd>+<kbd>Shift</kbd>+<kbd>→</kbd> or <kbd>Command</kbd>+<kbd>Shift</kbd>+<kbd>L</kbd> (Mac) or </br> <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>→</kbd> or <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>L</kbd> (Windows/Linux) | Move card to the bottom of the rightmost column
### Previewing a card
| Keyboard shortcut | Description
|-----------|------------
|<kbd>esc</kbd> | Close the card preview pane
|<kbd>Esc</kbd> | Close the card preview pane
{% ifversion fpt or ghec %}
## {% data variables.product.prodname_actions %}
| Keyboard shortcut | Description
|-----------|------------
|<kbd>command + space </kbd> or <kbd>control + space</kbd> | In the workflow editor, get suggestions for your workflow file.
|<kbd>g</kbd> <kbd>f</kbd> | Go to the workflow file
|<kbd>shift + t</kbd> or <kbd>T</kbd> | Toggle timestamps in logs
|<kbd>shift + f</kbd> or <kbd>F</kbd> | Toggle full-screen logs
|<kbd>esc</kbd> | Exit full-screen logs
|<kbd>Command</kbd>+<kbd>Space </kbd> (Mac) or </br> <kbd>Ctrl</kbd>+<kbd>Space</kbd> (Windows/Linux) | In the workflow editor, get suggestions for your workflow file.
|<kbd>G</kbd> <kbd>F</kbd> | Go to the workflow file
|<kbd>Shift</kbd>+<kbd>T</kbd> or <kbd>T</kbd> | Toggle timestamps in logs
|<kbd>Shift</kbd>+<kbd>F</kbd> or <kbd>F</kbd> | Toggle full-screen logs
|<kbd>Esc</kbd> | Exit full-screen logs
{% endif %}
@@ -195,28 +195,28 @@ For more keyboard shortcuts, see the [CodeMirror documentation](https://codemirr
{% ifversion fpt or ghes or ghae or ghec %}
| Keyboard shortcut | Description
|-----------|------------
|<kbd>e</kbd> | Mark as done
| <kbd>shift + u</kbd>| Mark as unread
| <kbd>shift + i</kbd>| Mark as read
| <kbd>shift + m</kbd> | Unsubscribe
|<kbd>E</kbd> | Mark as done
|<kbd>Shift</kbd>+<kbd>U</kbd>| Mark as unread
|<kbd>Shift</kbd>+<kbd>I</kbd>| Mark as read
|<kbd>Shift</kbd>+<kbd>M</kbd> | Unsubscribe
{% else %}
| Keyboard shortcut | Description
|-----------|------------
|<kbd>e</kbd> or <kbd>I</kbd> or <kbd>y</kbd> | Mark as read
|<kbd>shift + m</kbd> | Mute thread
|<kbd>E</kbd> or <kbd>I</kbd> or <kbd>Y</kbd> | Mark as read
|<kbd>Shift</kbd>+<kbd>M</kbd> | Mute thread
{% endif %}
## Network graph
| Keyboard shortcut | Description
|-----------|------------
|<kbd>←</kbd> or <kbd>h</kbd> | Scroll left
|<kbd>→</kbd> or <kbd>l</kbd> | Scroll right
|<kbd>↑</kbd> or <kbd>k</kbd> | Scroll up
|<kbd>↓</kbd> or <kbd>j</kbd> | Scroll down
|<kbd>shift + ←</kbd> or <kbd>shift + h</kbd> | Scroll all the way left
|<kbd>shift + →</kbd> or <kbd>shift + l</kbd> | Scroll all the way right
|<kbd>shift + ↑</kbd> or <kbd>shift + k</kbd> | Scroll all the way up
|<kbd>shift + ↓</kbd> or <kbd>shift + j</kbd> | Scroll all the way down
|<kbd>←</kbd> or <kbd>H</kbd> | Scroll left
|<kbd>→</kbd> or <kbd>L</kbd> | Scroll right
|<kbd>↑</kbd> or <kbd>K</kbd> | Scroll up
|<kbd>↓</kbd> or <kbd>J</kbd> | Scroll down
|<kbd>Shift</kbd>+<kbd>←</kbd> (Mac) or </br> <kbd>Shift</kbd>+<kbd>H</kbd> (Windows/Linux) | Scroll all the way left
|<kbd>Shift</kbd>+<kbd>→</kbd> (Mac) or </br> <kbd>Shift</kbd>+<kbd>L</kbd> (Windows/Linux) | Scroll all the way right
|<kbd>Shift</kbd>+<kbd>↑</kbd> (Mac) or </br> <kbd>Shift</kbd>+<kbd>K</kbd> (Windows/Linux) | Scroll all the way up
|<kbd>Shift</kbd>+<kbd>↓</kbd> (Mac) or </br> <kbd>Shift</kbd>+<kbd>J</kbd> (Windows/Linux) | Scroll all the way down

View File

@@ -30,5 +30,8 @@ We are concerned about Internet censorship, and believe that transparency on a s
## What does it mean if we post a notice in our gov-takedowns repository?
It means that we received the notice on the indicated date. It does *not* mean that the content was unlawful or wrong. It does *not* mean that the user identified in the notice has done anything wrong. We don't make or imply any judgment about the merit of the claims they make. We post these notices and requests only for informational purposes.
## Government takedowns based on violations of GitHub's Terms of Service
In some cases, GitHub receives reports from government officials of violations of GitHub's Terms of Service. We process those violations as we would process a Terms-of-Service violation reported by anyone else. However, we notify the affected users that the report came from a government and, as with any other case, allow them the opportunity to appeal.
## Transparency reporting
In addition to posting government takedown notices in our gov-takedowns repository, we report on them in our transparency report. We also track and report in our transparency report on government takedowns based on violations of GitHub's Terms of Service. We process those violations as we would process a Terms of Service violation reported by anyone else.
In addition to posting government takedown notices in our `github/gov-takedowns` repository, we report on them in our transparency report. We also track and report in our transparency report on government takedowns based on violations of GitHub's Terms of Service.

View File

@@ -18,9 +18,13 @@ shortTitle: Review installed integrations
{% data reusables.profile.access_org %}
{% data reusables.profile.org_settings %}
4. In the left sidebar, click **Installed {% data variables.product.prodname_github_apps %}**.
{% ifversion fpt or ghec or ghes > 3.3 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 %}
1. In the left sidebar, click **Installed {% data variables.product.prodname_github_apps %}**.
![Installed {% data variables.product.prodname_github_apps %} tab in the organization settings sidebar](/assets/images/help/organizations/org-settings-installed-github-apps.png)
5. Next to the {% data variables.product.prodname_github_app %} you'd like to review, click **Configure**.
{% endif %}
2. Next to the {% data variables.product.prodname_github_app %} you'd like to review, click **Configure**.
![Configure button](/assets/images/help/organizations/configure-installed-integration-button.png)
6. Review the {% data variables.product.prodname_github_app %}'s permissions and repository access.
![Option to give the {% data variables.product.prodname_github_app %} access to all repositories or specific repositories](/assets/images/help/organizations/toggle-integration-repo-access.png)

View File

@@ -40,8 +40,8 @@ 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 %}
{% data reusables.repositories.navigate-to-manage-access %}
{% ifversion fpt or ghec or ghes > 3.3 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.
![Search field for typing the name of a person to invite to the repository](/assets/images/help/repository/manage-access-invite-search-field.png)

View File

@@ -28,9 +28,13 @@ 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 %}
{% data reusables.repositories.click-collaborators-teams %}
{% elsif ghes < 3.4 or ghae %}
{% data reusables.repositories.navigate-to-manage-access %}
{% endif %}
{% data reusables.organizations.invite-teams-or-people %}
5. In the search field, start typing the name of the person to invite, then click a name in the list of matches.
1. In the search field, start typing the name of the person to invite, then click a name in the list of matches.
![Search field for typing the name of a team or person to invite to the repository](/assets/images/help/repository/manage-access-invite-search-field.png)
6. Under "Choose a role", select the repository role to assign the person, then click **Add NAME to REPOSITORY**.
![Selecting permissions for the team or person](/assets/images/help/repository/manage-access-invite-choose-role-add.png)

View File

@@ -23,11 +23,14 @@ When you disable project boards, you will no longer see project board informatio
{% data reusables.profile.access_org %}
{% data reusables.profile.org_settings %}
4. Decide whether to disable organization-wide project boards, disable repository project boards in the organization, or both. Then, under "Projects":
{% ifversion fpt or ghec or ghes > 3.3 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":
- To disable organization-wide project boards, unselect **Enable projects for the organization**.
- To disable repository project boards in the organization, unselect **Enable projects for all repositories**.
![Checkboxes to disable projects for an organization or for all of an organization's repositories](/assets/images/help/projects/disable-org-projects-checkbox.png)
5. Click **Save**.
1. Click **Save**.
{% data reusables.organizations.disable_project_board_results %}

View File

@@ -9,16 +9,24 @@ versions:
ghae: '*'
shortTitle: Integrate Jira
---
{% data reusables.user_settings.access_settings %}
2. In the left sidebar under **Organization settings**, click the name of your organization.
![Sidebar organization name](/assets/images/help/settings/organization-settings-from-sidebar.png)
3. In the left sidebar under **Developer settings**, click **OAuth applications**.
{% ifversion ghes > 3.3 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**.
![OAuth applications tab in the left sidebar](/assets/images/help/organizations/org-oauth-applications-ghe.png)
4. Click **Register a new application**.
5. Under **Application name**, type "Jira".
6. Under **Homepage URL**, type the full URL to your Jira instance.
7. Under **Authorization callback URL**, type the full URL to your Jira instance.
8. Click **Register application**.
1. Click **New OAuth App**.
{% elsif ghes < 3.4 or ghae %}
{% data reusables.user_settings.access_settings %}
1. In the left sidebar under **Organization settings**, click the name of your organization.
![Sidebar organization name](/assets/images/help/settings/organization-settings-from-sidebar.png)
1. In the left sidebar under **Developer settings**, click **OAuth applications**.
![OAuth applications tab in the left sidebar](/assets/images/help/organizations/org-oauth-applications-ghe.png)
1. Click **Register a new application**.
{% endif %}
1. Under **Application name**, type "Jira".
2. Under **Homepage URL**, type the full URL to your Jira instance.
3. Under **Authorization callback URL**, type the full URL to your Jira instance.
4. Click **Register application**.
![Register application button](/assets/images/help/oauth/register-application-button.png)
9. Under **Organization owned applications**, note the "Client ID" and "Client Secret" values.
![Client ID and Client Secret](/assets/images/help/oauth/client-id-and-secret.png)

View File

@@ -24,14 +24,13 @@ Organization owners can schedule a reminder for one or more teams in their organ
{% data reusables.profile.access_org %}
{% data reusables.profile.org_settings %}
{% data reusables.reminders.scheduled-reminders %}
![Scheduled reminders button](/assets/images/help/organizations/scheduled-reminders-org.png)
{% data reusables.reminders.add-reminder %}
{% data reusables.reminders.authorize-slack %}
{% data reusables.reminders.slack-channel %}
{% data reusables.reminders.days-dropdown %}
{% data reusables.reminders.times-dropdowns %}
{% data reusables.reminders.tracked-repos %}
11. Under "Filter by team assigned to review code", click the **Add a team** dropdown and choose one or more teams. You can add up to 100 teams. If the team you select doesn't have access to the "Tracked repositories" selected above, you won't be able to create the scheduled reminder.
1. Under "Filter by team assigned to review code", click the **Add a team** dropdown and choose one or more teams. You can add up to 100 teams. If the team you select doesn't have access to the "Tracked repositories" selected above, you won't be able to create the scheduled reminder.
![Add a team dropdown](/assets/images/help/organizations/scheduled-reminders-add-teams.png)
{% data reusables.reminders.ignore-drafts %}
{% data reusables.reminders.no-review-requests %}
@@ -48,7 +47,6 @@ Organization owners can schedule a reminder for one or more teams in their organ
{% data reusables.profile.access_org %}
{% data reusables.profile.org_settings %}
{% data reusables.reminders.scheduled-reminders %}
![Scheduled reminders button](/assets/images/help/organizations/scheduled-reminders-org.png)
{% data reusables.reminders.edit-existing %}
{% data reusables.reminders.edit-page %}
{% data reusables.reminders.update-buttons %}
@@ -57,7 +55,6 @@ Organization owners can schedule a reminder for one or more teams in their organ
{% data reusables.profile.access_org %}
{% data reusables.profile.org_settings %}
{% data reusables.reminders.scheduled-reminders %}
![Scheduled reminders button](/assets/images/help/organizations/scheduled-reminders-org.png)
{% data reusables.reminders.delete %}
## Further reading

View File

@@ -65,3 +65,7 @@ The invited person will receive an invitation email asking them to become a bill
![Invite billing manager](/assets/images/help/billing/settings_billing_managers_list.png)
6. Type the username or email address of the person you want to add and click **Send invitation**.
![Invite billing manager page](/assets/images/help/billing/billing_manager_invite.png)
## Further reading
- "[Inviting people to manage your enterprise](/enterprise-cloud@latest/admin/user-management/managing-users-in-your-enterprise/inviting-people-to-manage-your-enterprise)"{% ifversion fpt %} in the {% data variables.product.prodname_ghe_cloud %} documentation{% endif %}

View File

@@ -57,8 +57,12 @@ 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 %}
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**
![Code review button](/assets/images/help/teams/review-button.png)
{% endif %}
1. Select **Only notify requested team members.**
![Code review team notifications](/assets/images/help/teams/review-assignment-notifications.png)
1. Click **Save changes**.
@@ -69,8 +73,12 @@ 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 %}
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**
![Code review button](/assets/images/help/teams/review-button.png)
{% endif %}
1. Select **Enable auto assignment**.
![Auto-assignment button](/assets/images/help/teams/review-assignment-enable.png)
1. Under "How many team members should be assigned to review?", use the drop-down menu and choose a number of reviewers to be assigned to each pull request.

View File

@@ -27,7 +27,6 @@ Team maintainers and organization owners can set scheduled reminders for any pul
{% data reusables.organizations.specific_team %}
{% data reusables.organizations.team_settings %}
{% data reusables.reminders.scheduled-reminders %}
![Scheduled reminders button](/assets/images/help/teams/scheduled-reminders-teams.png)
{% data reusables.reminders.add-reminder %}
{% data reusables.reminders.authorize-slack %}
{% data reusables.reminders.slack-channel %}
@@ -51,7 +50,6 @@ Team maintainers and organization owners can set scheduled reminders for any pul
{% data reusables.organizations.specific_team %}
{% data reusables.organizations.team_settings %}
{% data reusables.reminders.scheduled-reminders %}
![Scheduled reminders button](/assets/images/help/teams/scheduled-reminders-teams.png)
{% data reusables.reminders.edit-existing %}
{% data reusables.reminders.edit-page %}
{% data reusables.reminders.update-buttons %}
@@ -62,7 +60,6 @@ Team maintainers and organization owners can set scheduled reminders for any pul
{% data reusables.organizations.specific_team %}
{% data reusables.organizations.team_settings %}
{% data reusables.reminders.scheduled-reminders %}
![Scheduled reminders button](/assets/images/help/teams/scheduled-reminders-teams.png)
{% data reusables.reminders.delete %}
## Further reading

View File

@@ -26,15 +26,14 @@ This guide will lead you through creating a user site at `username.github.io`.
1. Enter `username.github.io` as the repository name. Replace `username` with your {% data variables.product.prodname_dotcom %} username. For example, if your username is `octocat`, the repository name should be `octocat.github.io`.
![Repository name field](/assets/images/help/pages/create-repository-name-pages.png)
{% data reusables.repositories.sidebar-settings %}
1. In the left sidebar, click **Pages**.
![Page tab in the left-hand sidebar](/assets/images/help/pages/pages-tab.png)
{% data reusables.pages.sidebar-pages %}
1. Click **Choose a theme**.
![Choose a theme button](/assets/images/help/pages/choose-theme.png)
1. The Theme Chooser will open. Browse the available themes, then click **Select theme** to select a theme. It's easy to change your theme later, so if you're not sure, just choose one for now.
2. The Theme Chooser will open. Browse the available themes, then click **Select theme** to select a theme. It's easy to change your theme later, so if you're not sure, just choose one for now.
![Theme options and Select theme button](/assets/images/help/pages/select-theme.png)
1. After you select a theme, your repository's `README.md` file will open in the file editor. The `README.md` file is where you will write the content for your site. You can edit the file or keep the default content for now.
1. When you are done editing the file, click **Commit changes**.
1. Visit `username.github.io` to view your new website. **Note:** It can take up to 20 minutes for changes to your site to publish after you push the changes to {% data variables.product.product_name %}.
3. After you select a theme, your repository's `README.md` file will open in the file editor. The `README.md` file is where you will write the content for your site. You can edit the file or keep the default content for now.
4. When you are done editing the file, click **Commit changes**.
5. Visit `username.github.io` to view your new website. **Note:** It can take up to 20 minutes for changes to your site to publish after you push the changes to {% data variables.product.product_name %}.
## Changing the title and description

View File

@@ -21,9 +21,13 @@ 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 %}
3. In the left sidebar, click **Autolink references**.
{% ifversion fpt or ghec or ghes > 3.3 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**.
![Autolink references tab in the left sidebar](/assets/images/help/repository/autolink-references-tab.png)
4. Click **Add autolink reference**.
{% endif %}
1. Click **Add autolink reference**.
![Button to fill out autolink reference information](/assets/images/help/repository/add-autolink-reference-details.png)
5. Under "Reference prefix", type a short, meaningful prefix you want collaborators to use to generate autolinks for the external resource.
![Field to type abbreviation for external system](/assets/images/help/repository/add-reference-prefix-field.png)

View File

@@ -28,7 +28,7 @@ For more information about repository roles, see "[Permission levels for a user
{% data reusables.repositories.navigate-to-repo %}
{% data reusables.repositories.sidebar-settings %}
{% data reusables.repositories.navigate-to-manage-access %}
{% data reusables.repositories.click-collaborators-teams %}
4. Under "Manage access", in the search field, start typing the name of the team or person you'd like to find.
![Search field for filtering list of teams or people with access](/assets/images/help/repository/manage-access-filter.png)
@@ -44,7 +44,7 @@ For more information about repository roles, see "[Permission levels for a user
{% data reusables.repositories.navigate-to-repo %}
{% data reusables.repositories.sidebar-settings %}
{% data reusables.repositories.navigate-to-manage-access %}
{% data reusables.repositories.click-collaborators-teams %}
{% data reusables.organizations.invite-teams-or-people %}
5. In the search field, start typing the name of the team or person to invite, then click a name in the list of matches.
![Search field for typing the name of a team or person to invite to the repository](/assets/images/help/repository/manage-access-invite-search-field.png)
@@ -55,7 +55,7 @@ For more information about repository roles, see "[Permission levels for a user
{% data reusables.repositories.navigate-to-repo %}
{% data reusables.repositories.sidebar-settings %}
{% data reusables.repositories.navigate-to-manage-access %}
{% data reusables.repositories.click-collaborators-teams %}
4. Under "Manage access", find the team or person whose access you'd like to remove, then click {% octicon "trash" aria-label="The trash icon" %}.
![trash icon for removing access](/assets/images/help/repository/manage-access-remove.png)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

After

Width:  |  Height:  |  Size: 527 KiB

View File

@@ -0,0 +1,6 @@
# Reference: #5813.
# Documentation for GitHub Actions workflow dependencies appearing in the dependency graph
versions:
fpt: '*'
ghae: 'issue-5813'
ghec: '*'

View File

@@ -40,6 +40,7 @@ adopting_github_actions_for_your_enterprise:
title: 'Adopt GitHub Actions for your enterprise'
description: 'Learn how to plan and implement a roll out of {% data variables.product.prodname_actions %} in your enterprise.'
guides:
- /admin/github-actions/getting-started-with-github-actions-for-your-enterprise/about-github-actions-for-enterprises
- /actions/learn-github-actions/understanding-github-actions
- /admin/github-actions/getting-started-with-github-actions-for-your-enterprise/introducing-github-actions-to-your-enterprise
- /admin/github-actions/getting-started-with-github-actions-for-your-enterprise/migrating-your-enterprise-to-github-actions

View File

@@ -42,6 +42,7 @@ adopting_github_actions_for_your_enterprise:
title: 'Adopt GitHub Actions for your enterprise'
description: 'Learn how to plan and implement a roll out of {% data variables.product.prodname_actions %} in your enterprise.'
guides:
- /admin/github-actions/getting-started-with-github-actions-for-your-enterprise/about-github-actions-for-enterprises
- /actions/learn-github-actions/understanding-github-actions
- /admin/github-actions/getting-started-with-github-actions-for-your-enterprise/introducing-github-actions-to-your-enterprise
- /admin/github-actions/getting-started-with-github-actions-for-your-enterprise/migrating-your-enterprise-to-github-actions

View File

@@ -1,8 +1,8 @@
date: '2020-08-11'
sections:
security_fixes:
- '**CRITICAL:** A remote code execution vulnerability was identified in GitHub Pages that could allow an attacker to execute commands as part building a GitHub Pages site. This issue was due to an outdated and vulnerable dependency used in the Pages build process. To exploit this vulnerability, an attacker would need permission to create and build a GitHub Pages site on the GitHub Enterprise Server instance. This vulnerability affected all versions of GitHub Enterprise Server. To mitigate this vulnerability, Kramdown has been updated to address CVE-2020-14001. {% comment %} https://github.com/github/pages/pull/2836, https://github.com/github/pages/pull/2827 {% endcomment %}'
- '**HIGH:** An attacker could inject a malicious argument into a Git sub-command when executed on GitHub Enterprise Server. This could allow an attacker to overwrite arbitrary files with partially user-controlled content and potentially execute arbitrary commands on the GitHub Enterprise Server instance. To exploit this vulnerability, an attacker would need permission to access repositories within the GitHub Enterprise Server instance. However, due to other protections in place, we could not identify a way to actively exploit this vulnerability. This vulnerability was reported through the GitHub Security Bug Bounty program. {% comment %} https://github.com/github/github/pull/151097 {% endcomment %}'
- '{% octicon "alert" aria-label="The alert icon" %} **Critical:** A remote code execution vulnerability was identified in GitHub Pages that could allow an attacker to execute commands as part building a GitHub Pages site. This issue was due to an outdated and vulnerable dependency used in the Pages build process. To exploit this vulnerability, an attacker would need permission to create and build a GitHub Pages site on the GitHub Enterprise Server instance. This vulnerability affected all versions of GitHub Enterprise Server. To mitigate this vulnerability, Kramdown has been updated to address CVE-2020-14001. {% comment %} https://github.com/github/pages/pull/2836, https://github.com/github/pages/pull/2827 {% endcomment %}'
- '**High:** An attacker could inject a malicious argument into a Git sub-command when executed on GitHub Enterprise Server. This could allow an attacker to overwrite arbitrary files with partially user-controlled content and potentially execute arbitrary commands on the GitHub Enterprise Server instance. To exploit this vulnerability, an attacker would need permission to access repositories within the GitHub Enterprise Server instance. However, due to other protections in place, we could not identify a way to actively exploit this vulnerability. This vulnerability was reported through the GitHub Security Bug Bounty program. {% comment %} https://github.com/github/github/pull/151097 {% endcomment %}'
- 'Packages have been updated to the latest security versions. {% comment %} https://github.com/github/enterprise2/pull/21811, https://github.com/github/enterprise2/pull/21700 {% endcomment %}'
bugs:
- 'A Consul configuration error prevented some background jobs from being processed on standalone instances. {% comment %} https://github.com/github/enterprise2/pull/21464 {% endcomment %}'

View File

@@ -2,7 +2,7 @@ date: '2020-08-26'
sections:
security_fixes:
- >-
**CRITICAL:** A remote code execution vulnerability was identified in GitHub Pages that could be exploited when building a GitHub Pages site. User-controlled configuration of the underlying parsers used by GitHub Pages were not sufficiently restricted and made it possible to execute commands on the GitHub Enterprise Server instance. To exploit this vulnerability, an attacker would need permission to create and build a GitHub Pages site on the GitHub Enterprise Server instance. This vulnerability affected all versions of GitHub Enterprise Server. The underlying issues contributing to this vulnerability were identified both internally and through the GitHub Security Bug Bounty program. We have issued CVE-2020-10518. {% comment %} https://github.com/github/pages/pull/2883, https://github.com/github/pages/pull/2902, https://github.com/github/pages/pull/2894, https://github.com/github/pages/pull/2877, https://github.com/github/pages-gem/pull/700,
{% octicon "alert" aria-label="The alert icon" %} **Critical:** A remote code execution vulnerability was identified in GitHub Pages that could be exploited when building a GitHub Pages site. User-controlled configuration of the underlying parsers used by GitHub Pages were not sufficiently restricted and made it possible to execute commands on the GitHub Enterprise Server instance. To exploit this vulnerability, an attacker would need permission to create and build a GitHub Pages site on the GitHub Enterprise Server instance. This vulnerability affected all versions of GitHub Enterprise Server. The underlying issues contributing to this vulnerability were identified both internally and through the GitHub Security Bug Bounty program. We have issued CVE-2020-10518. {% comment %} https://github.com/github/pages/pull/2883, https://github.com/github/pages/pull/2902, https://github.com/github/pages/pull/2894, https://github.com/github/pages/pull/2877, https://github.com/github/pages-gem/pull/700,
https://github.com/github/pages/pull/2890, https://github.com/github/pages/pull/2898, https://github.com/github/pages/pull/2909, https://github.com/github/pages/pull/2891, https://github.com/github/pages/pull/2884, https://github.com/github/pages/pull/2889 {% endcomment %}
- '**MEDIUM:** An improper access control vulnerability was identified that allowed authenticated users of the instance to determine the names of unauthorized private repositories given their numerical IDs. This vulnerability did not allow unauthorized access to any repository content besides the name. This vulnerability affected all versions of GitHub Enterprise Server prior to 2.22 and has been assigned [CVE-2020-10517](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-10517). The vulnerability was reported via the [GitHub Bug Bounty program](https://bounty.github.com). {% comment %} https://github.com/github/github/pull/151987, https://github.com/github/github/pull/151713 {% endcomment %}'
- 'Packages have been updated to the latest security versions. {% comment %} https://github.com/github/enterprise2/pull/21852, https://github.com/github/enterprise2/pull/21828, https://github.com/github/enterprise2/pull/22153, https://github.com/github/enterprise2/pull/21920, https://github.com/github/enterprise2/pull/22215, https://github.com/github/enterprise2/pull/22190 {% endcomment %}'

View File

@@ -1,8 +1,8 @@
date: '2020-08-11'
sections:
security_fixes:
- '**CRITICAL:** A remote code execution vulnerability was identified in GitHub Pages that could allow an attacker to execute commands as part building a GitHub Pages site. This issue was due to an outdated and vulnerable dependency used in the Pages build process. To exploit this vulnerability, an attacker would need permission to create and build a GitHub Pages site on the GitHub Enterprise Server instance. This vulnerability affected all versions of GitHub Enterprise Server. To mitigate this vulnerability, Kramdown has been updated to address CVE-2020-14001. {% comment %} https://github.com/github/pages/pull/2835, https://github.com/github/pages/pull/2827 {% endcomment %}'
- '**HIGH:** High: An attacker could inject a malicious argument into a Git sub-command when executed on GitHub Enterprise Server. This could allow an attacker to overwrite arbitrary files with partially user-controlled content and potentially execute arbitrary commands on the GitHub Enterprise Server instance. To exploit this vulnerability, an attacker would need permission to access repositories within the GHES instance. However, due to other protections in place, we could not identify a way to actively exploit this vulnerability. This vulnerability was reported through the GitHub Security Bug Bounty program. {% comment %} https://github.com/github/github/pull/150936, https://github.com/github/github/pull/150634 {% endcomment %}'
- '{% octicon "alert" aria-label="The alert icon" %} **Critical:** A remote code execution vulnerability was identified in GitHub Pages that could allow an attacker to execute commands as part building a GitHub Pages site. This issue was due to an outdated and vulnerable dependency used in the Pages build process. To exploit this vulnerability, an attacker would need permission to create and build a GitHub Pages site on the GitHub Enterprise Server instance. This vulnerability affected all versions of GitHub Enterprise Server. To mitigate this vulnerability, Kramdown has been updated to address CVE-2020-14001. {% comment %} https://github.com/github/pages/pull/2835, https://github.com/github/pages/pull/2827 {% endcomment %}'
- '**High:** High: An attacker could inject a malicious argument into a Git sub-command when executed on GitHub Enterprise Server. This could allow an attacker to overwrite arbitrary files with partially user-controlled content and potentially execute arbitrary commands on the GitHub Enterprise Server instance. To exploit this vulnerability, an attacker would need permission to access repositories within the GHES instance. However, due to other protections in place, we could not identify a way to actively exploit this vulnerability. This vulnerability was reported through the GitHub Security Bug Bounty program. {% comment %} https://github.com/github/github/pull/150936, https://github.com/github/github/pull/150634 {% endcomment %}'
- 'Packages have been updated to the latest security versions. {% comment %} https://github.com/github/enterprise2/pull/21679, https://github.com/github/enterprise2/pull/21542, https://github.com/github/enterprise2/pull/21812, https://github.com/github/enterprise2/pull/21700 {% endcomment %}'
bugs:
- 'A Consul configuration error prevented some background jobs from being processed on standalone instances. {% comment %} https://github.com/github/enterprise2/pull/21463 {% endcomment %}'

View File

@@ -2,9 +2,9 @@ date: '2020-08-26'
sections:
security_fixes:
- >-
**CRITICAL:** A remote code execution vulnerability was identified in GitHub Pages that could be exploited when building a GitHub Pages site. User-controlled configuration of the underlying parsers used by GitHub Pages were not sufficiently restricted and made it possible to execute commands on the GitHub Enterprise Server instance. To exploit this vulnerability, an attacker would need permission to create and build a GitHub Pages site on the GitHub Enterprise Server instance. This vulnerability affected all versions of GitHub Enterprise Server. The underlying issues contributing to this vulnerability were identified both internally and through the GitHub Security Bug Bounty program. We have issued CVE-2020-10518. {% comment %} https://github.com/github/pages/pull/2882, https://github.com/github/pages/pull/2902, https://github.com/github/pages/pull/2894, https://github.com/github/pages/pull/2877, https://github.com/github/pages-gem/pull/700,
{% octicon "alert" aria-label="The alert icon" %} **Critical:** A remote code execution vulnerability was identified in GitHub Pages that could be exploited when building a GitHub Pages site. User-controlled configuration of the underlying parsers used by GitHub Pages were not sufficiently restricted and made it possible to execute commands on the GitHub Enterprise Server instance. To exploit this vulnerability, an attacker would need permission to create and build a GitHub Pages site on the GitHub Enterprise Server instance. This vulnerability affected all versions of GitHub Enterprise Server. The underlying issues contributing to this vulnerability were identified both internally and through the GitHub Security Bug Bounty program. We have issued CVE-2020-10518. {% comment %} https://github.com/github/pages/pull/2882, https://github.com/github/pages/pull/2902, https://github.com/github/pages/pull/2894, https://github.com/github/pages/pull/2877, https://github.com/github/pages-gem/pull/700,
https://github.com/github/pages/pull/2889, https://github.com/github/pages/pull/2899, https://github.com/github/pages/pull/2903, https://github.com/github/pages/pull/2890, https://github.com/github/pages/pull/2891, https://github.com/github/pages/pull/2884 {% endcomment %}
- '**MEDIUM:** An improper access control vulnerability was identified that allowed authenticated users of the instance to determine the names of unauthorized private repositories given their numerical IDs. This vulnerability did not allow unauthorized access to any repository content besides the name. This vulnerability affected all versions of GitHub Enterprise Server prior to 2.22 and has been assigned [CVE-2020-10517](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-10517). The vulnerability was reported via the [GitHub Bug Bounty program](https://bounty.github.com). {% comment %} https://github.com/github/github/pull/151986, https://github.com/github/github/pull/151713 {% endcomment %}'
- '**Medium:** An improper access control vulnerability was identified that allowed authenticated users of the instance to determine the names of unauthorized private repositories given their numerical IDs. This vulnerability did not allow unauthorized access to any repository content besides the name. This vulnerability affected all versions of GitHub Enterprise Server prior to 2.22 and has been assigned [CVE-2020-10517](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-10517). The vulnerability was reported via the [GitHub Bug Bounty program](https://bounty.github.com). {% comment %} https://github.com/github/github/pull/151986, https://github.com/github/github/pull/151713 {% endcomment %}'
- 'Packages have been updated to the latest security versions. {% comment %} https://github.com/github/enterprise2/pull/21853, https://github.com/github/enterprise2/pull/21828, https://github.com/github/enterprise2/pull/22154, https://github.com/github/enterprise2/pull/21920, https://github.com/github/enterprise2/pull/22216, https://github.com/github/enterprise2/pull/22190 {% endcomment %}'
bugs:
- 'A message was not logged when the ghe-config-apply process had finished running ghe-es-auto-expand. {% comment %} https://github.com/github/enterprise2/pull/22178, https://github.com/github/enterprise2/pull/22171 {% endcomment %}'

View File

@@ -1,7 +1,7 @@
date: '2021-12-13'
sections:
security_fixes:
- '**CRITICAL:** A remote code execution vulnerability in the Log4j library, identified as [CVE-2021-44228](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228), affected all versions of {% data variables.product.prodname_ghe_server %} prior to 3.3.1. The Log4j library is used in an open source service running on the {% data variables.product.prodname_ghe_server %} instance. This vulnerability was fixed in {% data variables.product.prodname_ghe_server %} versions 3.0.22, 3.1.14, 3.2.6, and 3.3.1. For more information, please see [this post](https://github.blog/2021-12-13-githubs-response-to-log4j-vulnerability-cve-2021-44228/) on the GitHub Blog.'
- '{% octicon "alert" aria-label="The alert icon" %} **Critical:** A remote code execution vulnerability in the Log4j library, identified as [CVE-2021-44228](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228), affected all versions of {% data variables.product.prodname_ghe_server %} prior to 3.3.1. The Log4j library is used in an open source service running on the {% data variables.product.prodname_ghe_server %} instance. This vulnerability was fixed in {% data variables.product.prodname_ghe_server %} versions 3.0.22, 3.1.14, 3.2.6, and 3.3.1. For more information, please see [this post](https://github.blog/2021-12-13-githubs-response-to-log4j-vulnerability-cve-2021-44228/) on the GitHub Blog.'
- '**December 17, 2021 update**: The fixes in place for this release also mitigate [CVE-2021-45046](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-45046), which was published after this release. No additional upgrade for {% data variables.product.prodname_ghe_server %} is required to mitigate both CVE-2021-44228 and CVE-2021-45046.'
known_issues:
- On a freshly set up {% data variables.product.prodname_ghe_server %} without any users, an attacker could create the first admin user.

View File

@@ -1,7 +1,7 @@
date: '2021-12-13'
sections:
security_fixes:
- '**CRITICAL:** A remote code execution vulnerability in the Log4j library, identified as [CVE-2021-44228](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228), affected all versions of {% data variables.product.prodname_ghe_server %} prior to 3.3.1. The Log4j library is used in an open source service running on the {% data variables.product.prodname_ghe_server %} instance. This vulnerability was fixed in {% data variables.product.prodname_ghe_server %} versions 3.0.22, 3.1.14, 3.2.6, and 3.3.1. For more information, please see [this post](https://github.blog/2021-12-13-githubs-response-to-log4j-vulnerability-cve-2021-44228/) on the GitHub Blog.'
- '{% octicon "alert" aria-label="The alert icon" %} **Critical:** A remote code execution vulnerability in the Log4j library, identified as [CVE-2021-44228](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228), affected all versions of {% data variables.product.prodname_ghe_server %} prior to 3.3.1. The Log4j library is used in an open source service running on the {% data variables.product.prodname_ghe_server %} instance. This vulnerability was fixed in {% data variables.product.prodname_ghe_server %} versions 3.0.22, 3.1.14, 3.2.6, and 3.3.1. For more information, please see [this post](https://github.blog/2021-12-13-githubs-response-to-log4j-vulnerability-cve-2021-44228/) on the GitHub Blog.'
- '**December 17, 2021 update**: The fixes in place for this release also mitigate [CVE-2021-45046](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-45046), which was published after this release. No additional upgrade for {% data variables.product.prodname_ghe_server %} is required to mitigate both CVE-2021-44228 and CVE-2021-45046.'
known_issues:
- The {% data variables.product.prodname_registry %} npm registry no longer returns a time value in metadata responses. This was done to allow for substantial performance improvements. We continue to have all the data necessary to return a time value as part of the metadata response and will resume returning this value in the future once we have solved the existing performance issues.

View File

@@ -1,7 +1,7 @@
date: '2021-12-13'
sections:
security_fixes:
- '**CRITICAL:** A remote code execution vulnerability in the Log4j library, identified as [CVE-2021-44228](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228), affected all versions of {% data variables.product.prodname_ghe_server %} prior to 3.3.1. The Log4j library is used in an open source service running on the {% data variables.product.prodname_ghe_server %} instance. This vulnerability was fixed in {% data variables.product.prodname_ghe_server %} versions 3.0.22, 3.1.14, 3.2.6, and 3.3.1. For more information, please see [this post](https://github.blog/2021-12-13-githubs-response-to-log4j-vulnerability-cve-2021-44228/) on the GitHub Blog.'
- '{% octicon "alert" aria-label="The alert icon" %} **Critical:** A remote code execution vulnerability in the Log4j library, identified as [CVE-2021-44228](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228), affected all versions of {% data variables.product.prodname_ghe_server %} prior to 3.3.1. The Log4j library is used in an open source service running on the {% data variables.product.prodname_ghe_server %} instance. This vulnerability was fixed in {% data variables.product.prodname_ghe_server %} versions 3.0.22, 3.1.14, 3.2.6, and 3.3.1. For more information, please see [this post](https://github.blog/2021-12-13-githubs-response-to-log4j-vulnerability-cve-2021-44228/) on the GitHub Blog.'
- '**December 17, 2021 update**: The fixes in place for this release also mitigate [CVE-2021-45046](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-45046), which was published after this release. No additional upgrade for {% data variables.product.prodname_ghe_server %} is required to mitigate both CVE-2021-44228 and CVE-2021-45046.'
known_issues:
- On a freshly set up {% data variables.product.prodname_ghe_server %} without any users, an attacker could create the first admin user.

View File

@@ -1,7 +1,7 @@
date: '2021-12-13'
sections:
security_fixes:
- '**CRITICAL:** A remote code execution vulnerability in the Log4j library, identified as [CVE-2021-44228](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228), affected all versions of {% data variables.product.prodname_ghe_server %} prior to 3.3.1. The Log4j library is used in an open source service running on the {% data variables.product.prodname_ghe_server %} instance. This vulnerability was fixed in {% data variables.product.prodname_ghe_server %} versions 3.0.22, 3.1.14, 3.2.6, and 3.3.1. For more information, please see [this post](https://github.blog/2021-12-13-githubs-response-to-log4j-vulnerability-cve-2021-44228/) on the GitHub Blog.'
- '{% octicon "alert" aria-label="The alert icon" %} **Critical:** A remote code execution vulnerability in the Log4j library, identified as [CVE-2021-44228](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228), affected all versions of {% data variables.product.prodname_ghe_server %} prior to 3.3.1. The Log4j library is used in an open source service running on the {% data variables.product.prodname_ghe_server %} instance. This vulnerability was fixed in {% data variables.product.prodname_ghe_server %} versions 3.0.22, 3.1.14, 3.2.6, and 3.3.1. For more information, please see [this post](https://github.blog/2021-12-13-githubs-response-to-log4j-vulnerability-cve-2021-44228/) on the GitHub Blog.'
- '**December 17, 2021 update**: The fixes in place for this release also mitigate [CVE-2021-45046](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-45046), which was published after this release. No additional upgrade for {% data variables.product.prodname_ghe_server %} is required to mitigate both CVE-2021-44228 and CVE-2021-45046.'
known_issues:
- After upgrading to {% data variables.product.prodname_ghe_server %} 3.3, {% data variables.product.prodname_actions %} may fail to start automatically. To resolve this issue, connect to the appliance via SSH and run the `ghe-actions-start` command.

View File

@@ -1,2 +1,6 @@
{% ifversion fpt or ghec or ghes > 3.3 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**.
![Org audit log settings in sidebar](/assets/images/help/organizations/org-settings-audit-log.png)
{% endif %}

View File

@@ -1,2 +1,6 @@
{% ifversion fpt or ghec or ghes > 3.3 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**.
![Audit log tab](/assets/images/enterprise/site-admin-settings/audit-log-tab.png)
{% endif %}

View File

@@ -0,0 +1,6 @@
{% ifversion ghec %}
If your license includes {% data variables.product.prodname_vss_ghe %}, you can identify whether a user account on {% data variables.product.prodname_dotcom_the_website %} has successfully matched with a {% data variables.product.prodname_vs %} subscriber by downloading the CSV file that contains additional license details. The license status will be one of the following.
- "Matched": The user account on {% data variables.product.prodname_dotcom_the_website %} is linked with a {% data variables.product.prodname_vs %} subscriber.
- "Pending Invitation": An invitation was sent to a {% data variables.product.prodname_vs %} subscriber, but the subscriber has not accepted the invitation.
- Blank: There is no {% data variables.product.prodname_vs %} association to consider for the user account on {% data variables.product.prodname_dotcom_the_website %}.
{% endif %}

Some files were not shown because too many files have changed in this diff Show More