@@ -1,6 +1,6 @@
|
||||
---
|
||||
title: Setting a backup email address
|
||||
intro: 'Use a backup email address as an additional destination for security-relevant account notifications{% ifversion not ghae %} and to securely reset your password if you can no longer access your primary email address{% endif %}.'
|
||||
intro: 'Use a backup email address as an additional destination for security-relevant account notifications and to securely reset your password if you can no longer access your primary email address.'
|
||||
redirect_from:
|
||||
- /articles/setting-a-backup-email-address
|
||||
- /github/setting-up-and-managing-your-github-user-account/setting-a-backup-email-address
|
||||
@@ -9,7 +9,6 @@ redirect_from:
|
||||
versions:
|
||||
fpt: '*'
|
||||
ghes: '*'
|
||||
ghae: '*'
|
||||
ghec: '*'
|
||||
topics:
|
||||
- Accounts
|
||||
|
||||
@@ -208,12 +208,9 @@ You can help mitigate this risk by following these good practices:
|
||||
|
||||
The same principles described above for using third-party actions also apply to using third-party workflows. You can help mitigate the risks associated with reusing workflows by following the same good practices outlined above. For more information, see "[AUTOTITLE](/actions/using-workflows/reusing-workflows)."
|
||||
|
||||
{% ifversion not ghae %}
|
||||
|
||||
## Using {% data variables.product.prodname_dependabot_version_updates %} to keep actions up to date
|
||||
|
||||
You can use {% data variables.product.prodname_dependabot_version_updates %} to ensure that references to actions{% ifversion dependabot-updates-actions-reusable-workflows %} and reusable workflows{% endif %} used in your repository are kept up to date. Actions are often updated with bug fixes and new features to make automated processes more reliable, faster, and safer. {% data variables.product.prodname_dependabot_version_updates %} take the effort out of maintaining your dependencies as {% data variables.product.prodname_dependabot %} does this automatically for you. For more information, see "[AUTOTITLE](/code-security/dependabot/working-with-dependabot/keeping-your-actions-up-to-date-with-dependabot)."
|
||||
{% endif %}
|
||||
|
||||
{% ifversion internal-actions %}
|
||||
|
||||
|
||||
@@ -5,7 +5,6 @@ intro: 'Get a high-level overview of {% data variables.product.prodname_actions
|
||||
versions:
|
||||
fpt: '*'
|
||||
ghes: '*'
|
||||
ghae: '*'
|
||||
ghec: '*'
|
||||
type: overview
|
||||
redirect_from:
|
||||
@@ -179,7 +178,7 @@ For more information, see "[AUTOTITLE](/actions/using-containerized-services)."
|
||||
|
||||
### Using labels to route workflows
|
||||
|
||||
If you want to be sure that a particular type of runner will process your job, you can use labels to control where jobs are executed. You can assign labels to a self-hosted runner in addition to their default label of `self-hosted`. Then, you can refer to these labels in your YAML workflow, ensuring that the job is routed in a predictable way.{% ifversion not ghae %} {% data variables.product.prodname_dotcom %}-hosted runners have predefined labels assigned.{% endif %}
|
||||
If you want to be sure that a particular type of runner will process your job, you can use labels to control where jobs are executed. You can assign labels to a self-hosted runner in addition to their default label of `self-hosted`. Then, you can refer to these labels in your YAML workflow, ensuring that the job is routed in a predictable way. {% data variables.product.prodname_dotcom %}-hosted runners have predefined labels assigned.
|
||||
|
||||
This example shows how a workflow can use labels to specify the required runner:
|
||||
|
||||
|
||||
@@ -201,10 +201,6 @@ To ensure seamless use of the OIDC CAP while still applying the policy to OAuth
|
||||
|
||||
{% data reusables.actions.ip-allow-list-self-hosted-runners %}
|
||||
|
||||
{% ifversion not ghae %}
|
||||
|
||||
## Using {% data variables.product.prodname_pages %} with an IP allow list
|
||||
|
||||
{% data reusables.pages.ip-allow-list-pages %}
|
||||
|
||||
{% endif %}
|
||||
|
||||
@@ -11,7 +11,6 @@ redirect_from:
|
||||
versions:
|
||||
ghec: '*'
|
||||
ghes: '*'
|
||||
ghae: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
shortTitle: View people in your enterprise
|
||||
@@ -46,9 +45,7 @@ You can view all the current enterprise owners{% ifversion ghec %} and billing m
|
||||
Enterprise owners whose accounts are suspended are included in the list of enterprise administrators, and are identified as suspended. You should consider demoting any suspended owners you see. For more information, see "[AUTOTITLE](/admin/user-management/managing-users-in-your-enterprise/promoting-or-demoting-a-site-administrator#demoting-a-site-administrator-from-the-enterprise-settings)."
|
||||
{% endif %}
|
||||
|
||||
{% ifversion not ghae %}
|
||||
You can also remove an administrator. For more information. see "[AUTOTITLE](/admin/user-management/managing-users-in-your-enterprise/inviting-people-to-manage-your-enterprise#removing-an-enterprise-administrator-from-your-enterprise-account)."
|
||||
{% endif %}
|
||||
|
||||
{% data reusables.enterprise-accounts.access-enterprise %}
|
||||
{% data reusables.enterprise-accounts.people-tab %}
|
||||
|
||||
@@ -10,7 +10,6 @@ redirect_from:
|
||||
versions:
|
||||
fpt: '*'
|
||||
ghes: '*'
|
||||
ghae: '*'
|
||||
ghec: '*'
|
||||
topics:
|
||||
- OAuth apps
|
||||
@@ -47,18 +46,18 @@ X-Accepted-OAuth-Scopes: user
|
||||
## Available scopes
|
||||
|
||||
Name | Description
|
||||
-----|-----------|{% ifversion not ghae %}
|
||||
**`(no scope)`** | Grants read-only access to public information (including user profile info, repository info, and gists){% endif %}{% ifversion ghes %}
|
||||
-----|-----------|
|
||||
**`(no scope)`** | Grants read-only access to public information (including user profile info, repository info, and gists){% ifversion ghes %}
|
||||
**`site_admin`** | Grants site administrators access to [{% data variables.product.prodname_ghe_server %} Administration API endpoints](/rest/enterprise-admin).{% endif %}
|
||||
**`repo`** | Grants full access to public{% ifversion ghec or ghes %}, internal,{% endif %} and private repositories including read and write access to code, commit statuses, repository invitations, collaborators, deployment statuses, and repository webhooks. **Note**: In addition to repository related resources, the `repo` scope also grants access to manage organization-owned resources including projects, invitations, team memberships and webhooks. This scope also grants the ability to manage projects owned by users.
|
||||
 `repo:status`| Grants read/write access to commit statuses in {% ifversion fpt %}public and private{% elsif ghec or ghes %}public, private, and internal{% elsif ghae %}private and internal{% endif %} repositories. This scope is only necessary to grant other users or services access to private repository commit statuses _without_ granting access to the code.
|
||||
 `repo_deployment`| Grants access to [deployment statuses](/rest/repos#deployments) for {% ifversion not ghae %}public{% else %}internal{% endif %} and private repositories. This scope is only necessary to grant other users or services access to deployment statuses, _without_ granting access to the code.{% ifversion not ghae %}
|
||||
 `public_repo`| Limits access to public repositories. That includes read/write access to code, commit statuses, repository projects, collaborators, and deployment statuses for public repositories and organizations. Also required for starring public repositories.{% endif %}
|
||||
 `repo:status`| Grants read/write access to commit statuses in {% ifversion fpt %}public and private{% elsif ghec or ghes %}public, private, and internal{% endif %} repositories. This scope is only necessary to grant other users or services access to private repository commit statuses _without_ granting access to the code.
|
||||
 `repo_deployment`| Grants access to [deployment statuses](/rest/repos#deployments) for public and private repositories. This scope is only necessary to grant other users or services access to deployment statuses, _without_ granting access to the code.
|
||||
 `public_repo`| Limits access to public repositories. That includes read/write access to code, commit statuses, repository projects, collaborators, and deployment statuses for public repositories and organizations. Also required for starring public repositories.
|
||||
 `repo:invite` | Grants accept/decline abilities for invitations to collaborate on a repository. This scope is only necessary to grant other users or services access to invites _without_ granting access to the code.{% ifversion fpt or ghes or ghec %}
|
||||
 `security_events` | Grants: <br/> read and write access to security events in the [{% data variables.product.prodname_code_scanning %} API](/rest/code-scanning) {%- ifversion ghec %}<br/> read and write access to security events in the [{% data variables.product.prodname_secret_scanning %} API](/rest/secret-scanning){%- endif %} <br/> This scope is only necessary to grant other users or services access to security events _without_ granting access to the code.{% endif %}
|
||||
**`admin:repo_hook`** | Grants read, write, ping, and delete access to repository hooks in {% ifversion fpt %}public or private{% elsif ghec or ghes %}public, private, or internal{% elsif ghae %}private or internal{% endif %} repositories. The `repo` {% ifversion fpt or ghec or ghes %}and `public_repo` scopes grant{% else %}scope grants{% endif %} full access to repositories, including repository hooks. Use the `admin:repo_hook` scope to limit access to only repository hooks.
|
||||
 `write:repo_hook` | Grants read, write, and ping access to hooks in {% ifversion fpt %}public or private{% elsif ghec or ghes %}public, private, or internal{% elsif ghae %}private or internal{% endif %} repositories.
|
||||
 `read:repo_hook`| Grants read and ping access to hooks in {% ifversion fpt %}public or private{% elsif ghec or ghes %}public, private, or internal{% elsif ghae %}private or internal{% endif %} repositories.
|
||||
**`admin:repo_hook`** | Grants read, write, ping, and delete access to repository hooks in {% ifversion fpt %}public or private{% elsif ghec or ghes %}public, private, or internal{% endif %} repositories. The `repo` {% ifversion fpt or ghec or ghes %}and `public_repo` scopes grant{% else %}scope grants{% endif %} full access to repositories, including repository hooks. Use the `admin:repo_hook` scope to limit access to only repository hooks.
|
||||
 `write:repo_hook` | Grants read, write, and ping access to hooks in {% ifversion fpt %}public or private{% elsif ghec or ghes %}public, private, or internal{% endif %} repositories.
|
||||
 `read:repo_hook`| Grants read and ping access to hooks in {% ifversion fpt %}public or private{% elsif ghec or ghes %}public, private, or internal{% endif %} repositories.
|
||||
**`admin:org`** | Fully manage the organization and its teams, projects, and memberships.
|
||||
 `write:org`| Read and write access to organization membership, organization projects, and team membership.
|
||||
 `read:org`| Read-only access to organization membership, organization projects, and team membership.
|
||||
|
||||
@@ -10,7 +10,6 @@ redirect_from:
|
||||
versions:
|
||||
fpt: '*'
|
||||
ghes: '*'
|
||||
ghae: '*'
|
||||
ghec: '*'
|
||||
topics:
|
||||
- Identity
|
||||
@@ -58,7 +57,7 @@ There are several types of data that applications can request.
|
||||
| --- | --- |
|
||||
| Commit status | You can grant access for a third-party application to report your commit status. Commit status access allows applications to determine if a build is a successful against a specific commit. Applications won't have access to your code, but they <em>can</em> read and write status information against a specific commit. |
|
||||
| Deployments | Deployment status access allows applications to determine if a deployment is successful against a specific commit for a repository. Applications won't have access to your code. |
|
||||
| Gists | [Gist](https://gist.github.com) access allows applications to read or write to {% ifversion not ghae %}both your public and{% else %}both your internal and{% endif %} secret Gists. |
|
||||
| Gists | [Gist](https://gist.github.com) access allows applications to read or write to both your public and secret Gists. |
|
||||
| Hooks | [Webhooks](/webhooks-and-events/webhooks/about-webhooks) access allows applications to read or write hook configurations on repositories you manage. |
|
||||
| Notifications | Notification access allows applications to read your {% data variables.product.product_name %} notifications, such as comments on issues and pull requests. However, applications remain unable to access anything in your repositories. |
|
||||
| Organizations and teams | Organization and teams access allows apps to access and manage organization and team membership. |
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
title: Authentication documentation
|
||||
shortTitle: Authentication
|
||||
intro: 'Keep your account and data secure with features like {% ifversion not ghae %}two-factor authentication, {% endif %}SSH{% ifversion not ghae %},{% endif %} and commit signature verification.'
|
||||
intro: 'Keep your account and data secure with features like two-factor authentication, SSH, and commit signature verification.'
|
||||
redirect_from:
|
||||
- /categories/56/articles
|
||||
- /categories/ssh
|
||||
|
||||
@@ -4,7 +4,6 @@ intro: 'You can securely access your account''s resources by authenticating to {
|
||||
versions:
|
||||
fpt: '*'
|
||||
ghes: '*'
|
||||
ghae: '*'
|
||||
ghec: '*'
|
||||
topics:
|
||||
- Identity
|
||||
@@ -16,23 +15,17 @@ shortTitle: Authentication to GitHub
|
||||
---
|
||||
## About authentication to {% data variables.product.prodname_dotcom %}
|
||||
|
||||
To keep your account secure, you must authenticate before you can access{% ifversion not ghae %} certain{% endif %} resources on {% data variables.product.product_name %}. When you authenticate to {% data variables.product.product_name %}, you supply or confirm credentials that are unique to you to prove that you are exactly who you declare to be.
|
||||
To keep your account secure, you must authenticate before you can access certain resources on {% data variables.product.product_name %}. When you authenticate to {% data variables.product.product_name %}, you supply or confirm credentials that are unique to you to prove that you are exactly who you declare to be.
|
||||
|
||||
You can access your resources in {% data variables.product.product_name %} in a variety of ways: in the browser, via {% data variables.product.prodname_desktop %} or another desktop application, with the API, or via the command line. Each way of accessing {% data variables.product.product_name %} supports different modes of authentication.
|
||||
{%- ifversion not fpt %}
|
||||
- Your identity provider (IdP){% endif %}{% ifversion not ghae %}
|
||||
- Username and password with two-factor authentication{% ifversion passkeys %}, or a passkey{% endif %}{% endif %}
|
||||
- Your identity provider (IdP){% endif %}
|
||||
- Username and password with two-factor authentication{% ifversion passkeys %}, or a passkey{% endif %}
|
||||
- {% data variables.product.pat_generic_caps %}
|
||||
- SSH key
|
||||
|
||||
## Authenticating in your browser
|
||||
|
||||
{% ifversion ghae %}
|
||||
|
||||
You can authenticate to {% data variables.product.product_name %} in your browser using your IdP. For more information, see "[AUTOTITLE](/authentication/authenticating-with-saml-single-sign-on/about-authentication-with-saml-single-sign-on)."
|
||||
|
||||
{% else %}
|
||||
|
||||
{% ifversion fpt or ghec %}
|
||||
|
||||
If you're a member of an {% data variables.enterprise.prodname_emu_enterprise %}, you will authenticate to {% data variables.product.product_name %} in your browser using your IdP. For more information, see "[AUTOTITLE](/enterprise-cloud@latest/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-enterprise-managed-users#authenticating-as-a-managed-user){% ifversion fpt %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% else %}."{% endif %}
|
||||
@@ -82,8 +75,6 @@ If you need to use multiple accounts on {% data variables.location.product_locat
|
||||
- **SAML single sign-on**
|
||||
- Before you can access resources owned by an organization or enterprise account that uses SAML single sign-on, you may need to also authenticate through an IdP. For more information, see "[AUTOTITLE](/authentication/authenticating-with-saml-single-sign-on/about-authentication-with-saml-single-sign-on){% ifversion fpt %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% else %}."{% endif %}{% endif %}
|
||||
|
||||
{% endif %}
|
||||
|
||||
### Session cookies
|
||||
|
||||
{% data variables.product.company_short %} uses cookies to provide services and secure {% data variables.location.product_location %}. {% ifversion fpt or ghec %}You can review details about {% data variables.product.company_short %}'s cookies in the [privacy/cookies repository](https://github.com/privacy/cookies).{% endif %}
|
||||
|
||||
@@ -38,7 +38,6 @@ import categoriesForSupport from './categories-for-support.js'
|
||||
import triggerError from '#src/observability/middleware/trigger-error.js'
|
||||
import secretScanning from '#src/secret-scanning/middleware/secret-scanning.js'
|
||||
import ghesReleaseNotes from '#src/release-notes/middleware/ghes-release-notes.js'
|
||||
import ghaeReleaseNotes from '#src/release-notes/middleware/ghae-release-notes.js'
|
||||
import whatsNewChangelog from './context/whats-new-changelog.js'
|
||||
import layout from './context/layout.js'
|
||||
import currentProductTree from './context/current-product-tree.js'
|
||||
@@ -265,7 +264,6 @@ export default function (app) {
|
||||
// *** Preparation for render-page: contextualizers ***
|
||||
app.use(asyncMiddleware(secretScanning))
|
||||
app.use(asyncMiddleware(ghesReleaseNotes))
|
||||
app.use(asyncMiddleware(ghaeReleaseNotes))
|
||||
app.use(asyncMiddleware(whatsNewChangelog))
|
||||
app.use(layout)
|
||||
app.use(features) // needs to come before product tree
|
||||
|
||||
@@ -1,46 +0,0 @@
|
||||
import { useRef } from 'react'
|
||||
import dayjs from 'dayjs'
|
||||
|
||||
import { useTranslation } from 'src/languages/components/useTranslation'
|
||||
import { PatchNotes } from './PatchNotes'
|
||||
import { CurrentVersion, ReleaseNotePatch } from './types'
|
||||
|
||||
type Props = { patch: ReleaseNotePatch; currentVersion: CurrentVersion }
|
||||
export function GHAEReleaseNotePatch({ patch, currentVersion }: Props) {
|
||||
const { t } = useTranslation('release_notes')
|
||||
const containerRef = useRef<HTMLDivElement>(null)
|
||||
const bannerText = t('banner_text')
|
||||
|
||||
return (
|
||||
<div ref={containerRef} className="mb-10 pb-6" id={patch.release}>
|
||||
<header
|
||||
style={{ zIndex: 1, marginTop: -1 }}
|
||||
className="container-md border-top border-bottom px-3 pt-4 pb-2"
|
||||
>
|
||||
<div className="d-flex flex-items-center">
|
||||
<h2 className="border-bottom-0 m-0 p-0">
|
||||
{currentVersion.versionTitle} {patch.release}
|
||||
</h2>
|
||||
|
||||
{patch.release_candidate && (
|
||||
<span
|
||||
className="IssueLabel color-bg-attention-emphasis color-fg-on-emphasis ml-3"
|
||||
style={{ whiteSpace: 'pre' }}
|
||||
>
|
||||
Release Candidate
|
||||
</span>
|
||||
)}
|
||||
</div>
|
||||
<p className="color-fg-muted mt-1">
|
||||
{bannerText} {dayjs(patch.date).format('MMMM DD, YYYY')}.
|
||||
</p>
|
||||
</header>
|
||||
|
||||
<div className="container-md px-3">
|
||||
<div className="mt-3" dangerouslySetInnerHTML={{ __html: patch.intro }} />
|
||||
|
||||
<PatchNotes patch={patch} />
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
import cx from 'classnames'
|
||||
|
||||
import { MarkdownContent } from 'src/frame/components/ui/MarkdownContent'
|
||||
import { GHAEReleaseNotesContextT } from './types'
|
||||
import { GHAEReleaseNotePatch } from './GHAEReleaseNotePatch'
|
||||
|
||||
import styles from './PatchNotes.module.scss'
|
||||
|
||||
type Props = {
|
||||
context: GHAEReleaseNotesContextT
|
||||
}
|
||||
|
||||
export function GHAEReleaseNotes({ context }: Props) {
|
||||
const { currentVersion, releaseNotes, releases } = context
|
||||
|
||||
return (
|
||||
<>
|
||||
<h1 id="title-h1" className="f4 p-3 m-0 border-bottom">
|
||||
{currentVersion.planTitle} release notes
|
||||
</h1>
|
||||
|
||||
<div className="d-md-flex flex-md-row-reverse">
|
||||
{releases && (
|
||||
<aside
|
||||
className={cx('position-sticky border-md-left no-print flex-shrink-0', styles.aside)}
|
||||
>
|
||||
<nav className="height-full overflow-auto">
|
||||
<ul className="list-style-none py-2 px-0 my-0">
|
||||
{releases.map((release) => {
|
||||
return (
|
||||
<li key={release.version} className="my-2 px-3 f4 d-inline-block d-md-block">
|
||||
<a href={`#${release.version}`} className="text-underline">
|
||||
{release.version}
|
||||
</a>
|
||||
</li>
|
||||
)
|
||||
})}
|
||||
</ul>
|
||||
</nav>
|
||||
</aside>
|
||||
)}
|
||||
|
||||
<article className="flex-1 flex-shrink-0">
|
||||
<MarkdownContent data-search="article-body">
|
||||
{releaseNotes.map((patch) => {
|
||||
return (
|
||||
<GHAEReleaseNotePatch
|
||||
key={patch.version}
|
||||
patch={patch}
|
||||
currentVersion={currentVersion}
|
||||
/>
|
||||
)
|
||||
})}
|
||||
</MarkdownContent>
|
||||
</article>
|
||||
</div>
|
||||
</>
|
||||
)
|
||||
}
|
||||
@@ -9,26 +9,25 @@ import {
|
||||
addUINamespaces,
|
||||
} from 'src/frame/components/context/MainContext'
|
||||
import { DefaultLayout } from 'src/frame/components/DefaultLayout'
|
||||
import { GHAEReleaseNotes } from 'src/release-notes/components/GHAEReleaseNotes'
|
||||
import { GHESReleaseNotes } from 'src/release-notes/components/GHESReleaseNotes'
|
||||
import {
|
||||
GHAEReleaseNotesContextT,
|
||||
GHESReleaseNotesContextT,
|
||||
} from 'src/release-notes/components/types'
|
||||
import { GHESReleaseNotesContextT } from 'src/release-notes/components/types'
|
||||
|
||||
const liquid = new Liquid()
|
||||
type Props = {
|
||||
mainContext: MainContextT
|
||||
ghaeContext: GHAEReleaseNotesContextT | null
|
||||
ghesContext: GHESReleaseNotesContextT | null
|
||||
}
|
||||
export default function ReleaseNotes({ mainContext, ghesContext, ghaeContext }: Props) {
|
||||
export default function ReleaseNotes({ mainContext, ghesContext }: Props) {
|
||||
if (!ghesContext) {
|
||||
// (Jan 2024) If we some day have more types of release notes, we'll
|
||||
// need to make this more forgiving.
|
||||
// This component used to cater for GHAE too when that existed.
|
||||
throw new Error('GHES is the only option')
|
||||
}
|
||||
return (
|
||||
<MainContext.Provider value={mainContext}>
|
||||
<DefaultLayout>
|
||||
{ghesContext && <GHESReleaseNotes context={ghesContext} />}
|
||||
|
||||
{ghaeContext && <GHAEReleaseNotes context={ghaeContext} />}
|
||||
<GHESReleaseNotes context={ghesContext} />
|
||||
</DefaultLayout>
|
||||
</MainContext.Provider>
|
||||
)
|
||||
@@ -82,14 +81,6 @@ export const getServerSideProps: GetServerSideProps<Props> = async (context) =>
|
||||
},
|
||||
}
|
||||
: null,
|
||||
ghaeContext:
|
||||
currentVersion.plan === 'github-ae'
|
||||
? {
|
||||
currentVersion,
|
||||
releaseNotes: req.context.ghaeReleaseNotes,
|
||||
releases: req.context.ghaeReleases,
|
||||
}
|
||||
: null,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user