Merge branch 'main' into patch-2
2
.babelrc
@@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"presets": ["next/babel"],
|
"presets": ["next/babel"],
|
||||||
"plugins": [["styled-components", { "ssr": true }]]
|
"plugins": [["styled-components", { "ssr": true }], "@babel/plugin-syntax-top-level-await"]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ module.exports = {
|
|||||||
ecmaVersion: 11,
|
ecmaVersion: 11,
|
||||||
requireConfigFile: 'false',
|
requireConfigFile: 'false',
|
||||||
babelOptions: { configFile: './.babelrc' },
|
babelOptions: { configFile: './.babelrc' },
|
||||||
|
sourceType: 'module',
|
||||||
},
|
},
|
||||||
rules: {
|
rules: {
|
||||||
'import/no-extraneous-dependencies': ['error', { packageDir: '.' }],
|
'import/no-extraneous-dependencies': ['error', { packageDir: '.' }],
|
||||||
|
|||||||
1
.github/allowed-actions.js
vendored
@@ -23,7 +23,6 @@ export default [
|
|||||||
'juliangruber/approve-pull-request-action@c530832d4d346c597332e20e03605aa94fa150a8',
|
'juliangruber/approve-pull-request-action@c530832d4d346c597332e20e03605aa94fa150a8',
|
||||||
'juliangruber/find-pull-request-action@db875662766249c049b2dcd85293892d61cb0b51', // v1.5.0
|
'juliangruber/find-pull-request-action@db875662766249c049b2dcd85293892d61cb0b51', // v1.5.0
|
||||||
'juliangruber/read-file-action@e0a316da496006ffd19142f0fd594a1783f3b512',
|
'juliangruber/read-file-action@e0a316da496006ffd19142f0fd594a1783f3b512',
|
||||||
'lee-dohm/close-matching-issues@22002609b2555fe18f52b8e2e7c07cbf5529e8a8',
|
|
||||||
'lee-dohm/no-response@9bb0a4b5e6a45046f00353d5de7d90fb8bd773bb',
|
'lee-dohm/no-response@9bb0a4b5e6a45046f00353d5de7d90fb8bd773bb',
|
||||||
'pascalgn/automerge-action@c9bd1823770819dc8fb8a5db2d11a3a95fbe9b07', // v0.12.0
|
'pascalgn/automerge-action@c9bd1823770819dc8fb8a5db2d11a3a95fbe9b07', // v0.12.0
|
||||||
'peter-evans/create-issue-from-file@b4f9ee0a9d4abbfc6986601d9b1a4f8f8e74c77e',
|
'peter-evans/create-issue-from-file@b4f9ee0a9d4abbfc6986601d9b1a4f8f8e74c77e',
|
||||||
|
|||||||
68
.github/workflows/check-all-english-links.yml
vendored
@@ -14,6 +14,11 @@ jobs:
|
|||||||
name: Check all links
|
name: Check all links
|
||||||
if: github.repository == 'github/docs-internal'
|
if: github.repository == 'github/docs-internal'
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.DOCUBOT_FR_PROJECT_BOARD_WORKFLOWS_REPO_ORG_READ_SCOPES }}
|
||||||
|
REPORT_AUTHOR: docubot
|
||||||
|
REPORT_LABEL: broken link report
|
||||||
|
REPORT_REPOSITORY: github/docs-content
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
|
- uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
|
||||||
- name: npm ci
|
- name: npm ci
|
||||||
@@ -27,27 +32,58 @@ jobs:
|
|||||||
name: Get title for issue
|
name: Get title for issue
|
||||||
id: check
|
id: check
|
||||||
run: echo "::set-output name=title::$(head -1 broken_links.md)"
|
run: echo "::set-output name=title::$(head -1 broken_links.md)"
|
||||||
- if: ${{ failure() }}
|
|
||||||
name: Close previous report
|
|
||||||
uses: lee-dohm/close-matching-issues@22002609b2555fe18f52b8e2e7c07cbf5529e8a8
|
|
||||||
with:
|
|
||||||
query: 'label:"broken link report"'
|
|
||||||
token: ${{ secrets.DOCUBOT_FR_PROJECT_BOARD_WORKFLOWS_REPO_ORG_READ_SCOPES }}
|
|
||||||
- if: ${{ failure() }}
|
- if: ${{ failure() }}
|
||||||
name: Create issue from file
|
name: Create issue from file
|
||||||
id: broken-link-report
|
id: broken-link-report
|
||||||
uses: peter-evans/create-issue-from-file@b4f9ee0a9d4abbfc6986601d9b1a4f8f8e74c77e
|
uses: peter-evans/create-issue-from-file@b4f9ee0a9d4abbfc6986601d9b1a4f8f8e74c77e
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.DOCUBOT_FR_PROJECT_BOARD_WORKFLOWS_REPO_ORG_READ_SCOPES }}
|
token: ${{ env.GITHUB_TOKEN }}
|
||||||
|
|
||||||
title: ${{ steps.check.outputs.title }}
|
title: ${{ steps.check.outputs.title }}
|
||||||
content-filepath: ./broken_links.md
|
content-filepath: ./broken_links.md
|
||||||
repository: github/docs-content
|
repository: ${{ env.REPORT_REPOSITORY }}
|
||||||
labels: broken link report
|
labels: ${{ env.REPORT_LABEL }}
|
||||||
- if: ${{ failure() }}
|
- if: ${{ failure() }}
|
||||||
name: Add comment to issue
|
name: Close and/or comment on old issues
|
||||||
uses: peter-evans/create-or-update-comment@5221bf4aa615e5c6e95bb142f9673a9c791be2cd
|
env:
|
||||||
with:
|
NEW_REPORT_URL: 'https://github.com/${{ env.REPORT_REPOSITORY }}/issues/${{ steps.broken-link-report.outputs.issue-number }}'
|
||||||
body: |
|
run: |
|
||||||
cc @github/docs-content
|
gh alias set list-reports "issue list \
|
||||||
issue-number: ${{ steps.broken-link-report.outputs.issue-number }}
|
--repo ${{ env.REPORT_REPOSITORY }} \
|
||||||
token: ${{ secrets.DOCUBOT_FR_PROJECT_BOARD_WORKFLOWS_REPO_ORG_READ_SCOPES }}
|
--author ${{ env.REPORT_AUTHOR }} \
|
||||||
|
--label '${{ env.REPORT_LABEL }}'"
|
||||||
|
|
||||||
|
# Link to the previous report from the new report that triggered this
|
||||||
|
# workflow run.
|
||||||
|
|
||||||
|
for issue_url in $(gh list-reports \
|
||||||
|
--state all \
|
||||||
|
--limit 2 \
|
||||||
|
--json url \
|
||||||
|
--jq '.[].url' | grep -v ${{ env.NEW_REPORT_URL }}); do
|
||||||
|
gh issue comment ${{ env.NEW_REPORT_URL }} --body "⬅️ [Previous report]($issue_url)"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Link to the newer report from any older report that is still open,
|
||||||
|
# then close the older report.
|
||||||
|
|
||||||
|
for issue_url in $(gh list-reports \
|
||||||
|
--search 'no:assignee' \
|
||||||
|
--json url \
|
||||||
|
--jq '.[].url'); do
|
||||||
|
if [ "$issue_url" != "${{ env.NEW_REPORT_URL }}" ]; then
|
||||||
|
gh issue comment $issue_url --body "➡️ [Newer report](${{ env.NEW_REPORT_URL }})"
|
||||||
|
gh issue close $issue_url
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# If an old report is open and assigned to someone, link to the newer
|
||||||
|
# report without closing the old report.
|
||||||
|
|
||||||
|
for issue_url in $(gh list-reports \
|
||||||
|
--json assignees,url \
|
||||||
|
--jq '.[] | select (.assignees != []) | .url'); do
|
||||||
|
if [ "$issue_url" != "${{ env.NEW_REPORT_URL }}" ]; then
|
||||||
|
gh issue comment $issue_url --body "➡️ [Newer report](${{ env.NEW_REPORT_URL }})"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|||||||
8
.github/workflows/openapi-schema-check.yml
vendored
@@ -14,11 +14,17 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
check-schema-versions:
|
check-schema-versions:
|
||||||
if: ${{ github.repository == 'github/docs-internal' }}
|
if: ${{ github.repository == 'github/docs-internal' }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ${{ fromJson('["ubuntu-latest", "self-hosted"]')[github.repository == 'github/docs-internal'] }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository code
|
- name: Checkout repository code
|
||||||
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
|
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
|
||||||
|
|
||||||
|
- name: Setup node
|
||||||
|
uses: actions/setup-node@38d90ce44d5275ad62cc48384b3d8a58c500bb5f
|
||||||
|
with:
|
||||||
|
node-version: 16.x
|
||||||
|
cache: npm
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: npm ci
|
run: npm ci
|
||||||
|
|
||||||
|
|||||||
BIN
assets/images/help/apps/github-apps-new-issue.png
Normal file
|
After Width: | Height: | Size: 101 KiB |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 116 KiB |
BIN
assets/images/help/codespaces/codespaces-diagram.png
Normal file
|
After Width: | Height: | Size: 99 KiB |
BIN
assets/images/help/codespaces/git-status.png
Normal file
|
After Width: | Height: | Size: 129 KiB |
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 37 KiB |
BIN
assets/images/help/codespaces/port-forwarding.png
Normal file
|
After Width: | Height: | Size: 78 KiB |
BIN
assets/images/help/codespaces/quickstart-forward-port.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 74 KiB |
|
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 146 KiB |
@@ -11,14 +11,14 @@ import { useTranslation } from './hooks/useTranslation'
|
|||||||
|
|
||||||
type Props = { children?: React.ReactNode }
|
type Props = { children?: React.ReactNode }
|
||||||
export const DefaultLayout = (props: Props) => {
|
export const DefaultLayout = (props: Props) => {
|
||||||
const { page, error, isHomepageVersion } = useMainContext()
|
const { page, error, isHomepageVersion, currentPathWithoutLanguage } = useMainContext()
|
||||||
const { t } = useTranslation('errors')
|
const { t } = useTranslation('errors')
|
||||||
return (
|
return (
|
||||||
<div className="d-lg-flex">
|
<div className="d-lg-flex">
|
||||||
<Head>
|
<Head>
|
||||||
{error === '404' ? (
|
{error === '404' ? (
|
||||||
<title>{t('oops')}</title>
|
<title>{t('oops')}</title>
|
||||||
) : !isHomepageVersion && page.fullTitle ? (
|
) : (!isHomepageVersion && page.fullTitle) || (currentPathWithoutLanguage.includes('enterprise-server') && page.fullTitle) ? (
|
||||||
<title>{page.fullTitle}</title>
|
<title>{page.fullTitle}</title>
|
||||||
) : null}
|
) : null}
|
||||||
|
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ export const HeaderNotifications = () => {
|
|||||||
if (userLanguage && userLanguage !== 'en' && languages[userLanguage]?.wip === false) {
|
if (userLanguage && userLanguage !== 'en' && languages[userLanguage]?.wip === false) {
|
||||||
translationNotices.push({
|
translationNotices.push({
|
||||||
type: NotificationType.TRANSLATION,
|
type: NotificationType.TRANSLATION,
|
||||||
content: `This article is also available in your language of choice. Click <a href="/${userLanguage}${currentPathWithoutLanguage}">here</a>`,
|
content: `This article is also available in <a href="/${userLanguage}${currentPathWithoutLanguage}">${languages[userLanguage].name}</a>.`,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,6 +63,7 @@ export const LanguagePicker = ({ variant }: Props) => {
|
|||||||
width: unset;
|
width: unset;
|
||||||
}
|
}
|
||||||
`}
|
`}
|
||||||
|
data-testid="language-picker"
|
||||||
>
|
>
|
||||||
<summary>
|
<summary>
|
||||||
{selectedLang.nativeName || selectedLang.name}
|
{selectedLang.nativeName || selectedLang.name}
|
||||||
|
|||||||
@@ -55,9 +55,10 @@ export const ArticlePage = () => {
|
|||||||
)}
|
)}
|
||||||
|
|
||||||
{intro && (
|
{intro && (
|
||||||
<div className="lead-mktg">
|
<div
|
||||||
<p>{intro}</p>
|
className="lead-mktg"
|
||||||
</div>
|
dangerouslySetInnerHTML={{ __html: intro }}
|
||||||
|
/>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{permissions && (
|
{permissions && (
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ export const ArticleVersionPicker = () => {
|
|||||||
width: unset;
|
width: unset;
|
||||||
}
|
}
|
||||||
`}
|
`}
|
||||||
|
data-testid="article-version-picker"
|
||||||
>
|
>
|
||||||
<summary className="f4 h5-mktg btn-outline-mktg btn-mktg p-2">
|
<summary className="f4 h5-mktg btn-outline-mktg btn-mktg p-2">
|
||||||
<span className="d-md-none d-xl-inline-block">{t('article_version')}</span>{' '}
|
<span className="d-md-none d-xl-inline-block">{t('article_version')}</span>{' '}
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ export const getArticleContextFromRequest = (req: any): ArticleContextT => {
|
|||||||
const page = req.context.page
|
const page = req.context.page
|
||||||
return {
|
return {
|
||||||
title: page.titlePlainText,
|
title: page.titlePlainText,
|
||||||
intro: page.introPlainText,
|
intro: page.intro,
|
||||||
renderedPage: req.context.renderedPage || '',
|
renderedPage: req.context.renderedPage || '',
|
||||||
miniTocItems:
|
miniTocItems:
|
||||||
(req.context.miniTocItems || []).map((item: any) => {
|
(req.context.miniTocItems || []).map((item: any) => {
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import pick from 'lodash/pick'
|
|||||||
|
|
||||||
import type { BreadcrumbT } from 'components/Breadcrumbs'
|
import type { BreadcrumbT } from 'components/Breadcrumbs'
|
||||||
import type { FeatureFlags } from 'components/hooks/useFeatureFlags'
|
import type { FeatureFlags } from 'components/hooks/useFeatureFlags'
|
||||||
|
import { ExcludesNull } from 'components/lib/ExcludesNull'
|
||||||
|
|
||||||
type ProductT = {
|
type ProductT = {
|
||||||
external: boolean
|
external: boolean
|
||||||
@@ -186,7 +187,11 @@ export const getMainContextFromRequest = (req: any): MainContextT => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// only pull things we need from the product tree, and make sure there are default values instead of `undefined`
|
// only pull things we need from the product tree, and make sure there are default values instead of `undefined`
|
||||||
const getCurrentProductTree = (input: any): ProductTreeNode => {
|
const getCurrentProductTree = (input: any): ProductTreeNode | null => {
|
||||||
|
if (input.page.hidden) {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
href: input.href,
|
href: input.href,
|
||||||
renderedShortTitle: input.renderedShortTitle || '',
|
renderedShortTitle: input.renderedShortTitle || '',
|
||||||
@@ -197,7 +202,7 @@ const getCurrentProductTree = (input: any): ProductTreeNode => {
|
|||||||
title: input.page.title,
|
title: input.page.title,
|
||||||
shortTitle: input.page.shortTitle || '',
|
shortTitle: input.page.shortTitle || '',
|
||||||
},
|
},
|
||||||
childPages: (input.childPages || []).map(getCurrentProductTree),
|
childPages: (input.childPages || []).map(getCurrentProductTree).filter(ExcludesNull),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,10 @@ export type TocItem = {
|
|||||||
fullPath: string
|
fullPath: string
|
||||||
title: string
|
title: string
|
||||||
intro?: string
|
intro?: string
|
||||||
|
childTocItems?: Array<{
|
||||||
|
fullPath: string;
|
||||||
|
title: string;
|
||||||
|
}>
|
||||||
}
|
}
|
||||||
export type FeaturedLink = {
|
export type FeaturedLink = {
|
||||||
title: string
|
title: string
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ export const getTocLandingContextFromRequest = (req: any): TocLandingContextT =>
|
|||||||
introPlainText: req.context.page.introPlainText,
|
introPlainText: req.context.page.introPlainText,
|
||||||
isEarlyAccess: req.context.page?.documentType === 'early-access',
|
isEarlyAccess: req.context.page?.documentType === 'early-access',
|
||||||
tocItems: (req.context.genericTocFlat || req.context.genericTocNested || []).map((obj: any) =>
|
tocItems: (req.context.genericTocFlat || req.context.genericTocNested || []).map((obj: any) =>
|
||||||
pick(obj, ['fullPath', 'title', 'intro'])
|
pick(obj, ['fullPath', 'title', 'intro', 'childTocItems'])
|
||||||
),
|
),
|
||||||
variant: req.context.genericTocFlat ? 'expanded' : 'compact',
|
variant: req.context.genericTocFlat ? 'expanded' : 'compact',
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ export const GuideCard = ({ guide }: Props) => {
|
|||||||
className="Box color-shadow-medium height-full d-block hover-shadow-large no-underline color-text-primary p-5"
|
className="Box color-shadow-medium height-full d-block hover-shadow-large no-underline color-text-primary p-5"
|
||||||
href={guide.href}
|
href={guide.href}
|
||||||
>
|
>
|
||||||
<h2>{guide.title}</h2>
|
<h2 dangerouslySetInnerHTML={{__html: guide.title}} />
|
||||||
<p className="mt-2 mb-4 color-text-tertiary">{guide.intro}</p>
|
<p className="mt-2 mb-4 color-text-tertiary">{guide.intro}</p>
|
||||||
|
|
||||||
<footer className="d-flex">
|
<footer className="d-flex">
|
||||||
|
|||||||
@@ -19,11 +19,28 @@ export const TableOfContents = (props: Props) => {
|
|||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
const { fullPath: href, title, intro } = item
|
const { fullPath: href, title, intro, childTocItems } = item
|
||||||
const isActive = router.pathname === href
|
const isActive = router.pathname === href
|
||||||
return variant === 'compact' ? (
|
return variant === 'compact' ? (
|
||||||
<li key={href} className="f4 my-1">
|
<li key={href} className="f4 my-1">
|
||||||
<Link href={href}>{title}</Link>
|
<Link href={href}>{title}</Link>
|
||||||
|
<ul className={cx(variant === 'compact' ? 'list-style-circle pl-5 my-3' : 'list-style-none')}>
|
||||||
|
{(childTocItems || []).map((childItem) => {
|
||||||
|
if (!childItem) {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
return (
|
||||||
|
<li key={childItem.fullPath} className="f4 mt-1">
|
||||||
|
<Link
|
||||||
|
href={childItem.fullPath}
|
||||||
|
className="Bump-link--hover no-underline py-1 color-border-primary"
|
||||||
|
>
|
||||||
|
{childItem.title}
|
||||||
|
</Link>
|
||||||
|
</li>
|
||||||
|
)
|
||||||
|
})}
|
||||||
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
) : (
|
) : (
|
||||||
<li key={href} className={cx('mb-5', isActive && 'color-auto-gray-4')}>
|
<li key={href} className={cx('mb-5', isActive && 'color-auto-gray-4')}>
|
||||||
@@ -31,10 +48,10 @@ export const TableOfContents = (props: Props) => {
|
|||||||
href={href}
|
href={href}
|
||||||
className="Bump-link--hover no-underline d-block py-1 border-bottom color-border-primary"
|
className="Bump-link--hover no-underline d-block py-1 border-bottom color-border-primary"
|
||||||
>
|
>
|
||||||
<h4>
|
<h2 className="h4">
|
||||||
{title}
|
{title}
|
||||||
<span className="Bump-link-symbol">→</span>
|
<span className="Bump-link-symbol">→</span>
|
||||||
</h4>
|
</h2>
|
||||||
</Link>
|
</Link>
|
||||||
{intro && <p className="f4 mt-3" dangerouslySetInnerHTML={{ __html: intro }} />}
|
{intro && <p className="f4 mt-3" dangerouslySetInnerHTML={{ __html: intro }} />}
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@@ -151,7 +151,7 @@ We recommend creating a README file to help people learn how to use your action.
|
|||||||
|
|
||||||
### Strengths of GitHub Actions and GitHub Apps
|
### Strengths of GitHub Actions and GitHub Apps
|
||||||
|
|
||||||
While both {% data variables.product.prodname_actions %} and {% data variables.product.prodname_github_app %}s provide ways to build automation and workflow tools, they each have strengths that make them useful in different ways.
|
While both {% data variables.product.prodname_actions %} and {% data variables.product.prodname_github_apps %} provide ways to build automation and workflow tools, they each have strengths that make them useful in different ways.
|
||||||
|
|
||||||
{% data variables.product.prodname_github_apps %}:
|
{% data variables.product.prodname_github_apps %}:
|
||||||
* Run persistently and can react to events quickly.
|
* Run persistently and can react to events quickly.
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ versions:
|
|||||||
fpt: '*'
|
fpt: '*'
|
||||||
ghes: '>=2.22'
|
ghes: '>=2.22'
|
||||||
ghae: '*'
|
ghae: '*'
|
||||||
|
shortTitle: Build & test .NET
|
||||||
---
|
---
|
||||||
|
|
||||||
{% data reusables.actions.enterprise-beta %}
|
{% data reusables.actions.enterprise-beta %}
|
||||||
@@ -64,7 +65,7 @@ jobs:
|
|||||||
## Specifying a .NET version
|
## Specifying a .NET version
|
||||||
|
|
||||||
To use a preinstalled version of the .NET Core SDK on a {% data variables.product.prodname_dotcom %}-hosted runner, use the `setup-dotnet` action. This action finds a specific version of .NET from the tools cache on each runner, and adds the necessary binaries to `PATH`. These changes will persist for the remainder of the job.
|
To use a preinstalled version of the .NET Core SDK on a {% data variables.product.prodname_dotcom %}-hosted runner, use the `setup-dotnet` action. This action finds a specific version of .NET from the tools cache on each runner, and adds the necessary binaries to `PATH`. These changes will persist for the remainder of the job.
|
||||||
|
|
||||||
The `setup-dotnet` action is the recommended way of using .NET with {% data variables.product.prodname_actions %}, because it ensures consistent behavior across different runners and different versions of .NET. If you are using a self-hosted runner, you must install .NET and add it to `PATH`. For more information, see the [`setup-dotnet`](https://github.com/marketplace/actions/setup-net-core-sdk) action.
|
The `setup-dotnet` action is the recommended way of using .NET with {% data variables.product.prodname_actions %}, because it ensures consistent behavior across different runners and different versions of .NET. If you are using a self-hosted runner, you must install .NET and add it to `PATH`. For more information, see the [`setup-dotnet`](https://github.com/marketplace/actions/setup-net-core-sdk) action.
|
||||||
|
|
||||||
### Using multiple .NET versions
|
### Using multiple .NET versions
|
||||||
@@ -105,7 +106,7 @@ You can configure your job to use a specific version of .NET, such as `3.1.3`. A
|
|||||||
uses: actions/setup-dotnet@v1
|
uses: actions/setup-dotnet@v1
|
||||||
with:
|
with:
|
||||||
# Semantic version range syntax or exact version of a dotnet version
|
# Semantic version range syntax or exact version of a dotnet version
|
||||||
dotnet-version: '3.x'
|
dotnet-version: '3.x'
|
||||||
```
|
```
|
||||||
{% endraw %}
|
{% endraw %}
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ type: tutorial
|
|||||||
topics:
|
topics:
|
||||||
- CI
|
- CI
|
||||||
- Ruby
|
- Ruby
|
||||||
|
shortTitle: Build & test Ruby
|
||||||
---
|
---
|
||||||
|
|
||||||
{% data reusables.actions.enterprise-beta %}
|
{% data reusables.actions.enterprise-beta %}
|
||||||
|
|||||||
@@ -343,6 +343,8 @@ test_async:
|
|||||||
```yaml
|
```yaml
|
||||||
jobs:
|
jobs:
|
||||||
test_async:
|
test_async:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
- name: Cache node modules
|
- name: Cache node modules
|
||||||
uses: actions/cache@v2
|
uses: actions/cache@v2
|
||||||
with:
|
with:
|
||||||
|
|||||||
@@ -990,6 +990,8 @@ The maximum number of minutes to run the step before killing the process.
|
|||||||
|
|
||||||
The maximum number of minutes to let a job run before {% data variables.product.prodname_dotcom %} automatically cancels it. Default: 360
|
The maximum number of minutes to let a job run before {% data variables.product.prodname_dotcom %} automatically cancels it. Default: 360
|
||||||
|
|
||||||
|
If the timeout exceeds the job execution time limit for the runner, the job will be canceled when the execution time limit is met instead. For more information about job execution time limits, see "[Usage limits, billing, and administration](/actions/reference/usage-limits-billing-and-administration#usage-limits)."
|
||||||
|
|
||||||
## `jobs.<job_id>.strategy`
|
## `jobs.<job_id>.strategy`
|
||||||
|
|
||||||
A strategy creates a build matrix for your jobs. You can define different variations to run each job in.
|
A strategy creates a build matrix for your jobs. You can define different variations to run each job in.
|
||||||
|
|||||||
@@ -83,15 +83,19 @@ For more information about the `pull_request` event, see "[Workflow syntax for {
|
|||||||
If you scan pull requests, then the results appear as alerts in a pull request check. For more information, see "[Triaging code scanning alerts in pull requests](/code-security/secure-coding/triaging-code-scanning-alerts-in-pull-requests)."
|
If you scan pull requests, then the results appear as alerts in a pull request check. For more information, see "[Triaging code scanning alerts in pull requests](/code-security/secure-coding/triaging-code-scanning-alerts-in-pull-requests)."
|
||||||
|
|
||||||
{% ifversion fpt or ghes > 3.1 or ghae-next %}
|
{% ifversion fpt or ghes > 3.1 or ghae-next %}
|
||||||
### Defining the alert severities causing pull request check failure
|
### Defining the severities causing pull request check failure
|
||||||
|
|
||||||
By default, only alerts with the severity level of `error` will cause a pull request check failure, and a check will still succeed with alerts of lower severities. You can change the levels of alert severities that will cause a pull request check failure in your repository settings.
|
By default, only alerts with the severity level of `Error`{% ifversion fpt or ghes > 3.1 or ghae-issue-4697 %} or security severity level of `Critical` or `High`{% endif %} will cause a pull request check failure, and a check will still succeed with alerts of lower severities. You can change the levels of alert severities{% ifversion fpt or ghes > 3.1 or ghae-issue-4697 %} and of security severities{% endif %} that will cause a pull request check failure in your repository settings. For more information about severity levels, see "[Managing code scanning alerts for your repository](/code-security/secure-coding/automatically-scanning-your-code-for-vulnerabilities-and-errors/managing-code-scanning-alerts-for-your-repository#about-alerts-details)."
|
||||||
|
|
||||||
{% data reusables.repositories.navigate-to-repo %}
|
{% data reusables.repositories.navigate-to-repo %}
|
||||||
{% data reusables.repositories.sidebar-settings %}
|
{% data reusables.repositories.sidebar-settings %}
|
||||||
{% data reusables.repositories.navigate-to-security-and-analysis %}
|
{% data reusables.repositories.navigate-to-security-and-analysis %}
|
||||||
1. Under "Code scanning", to the right of "Check Failure", use the drop-down menu to select the level of severity you would like to cause a pull request check failure.
|
1. Under "Code scanning", to the right of "Check Failure", use the drop-down menu to select the level of severity you would like to cause a pull request check failure.
|
||||||
|
{% ifversion fpt or ghes > 3.1 or ghae-issue-4697 %}
|
||||||

|

|
||||||
|
{% else %}
|
||||||
|

|
||||||
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
### Avoiding unnecessary scans of pull requests
|
### Avoiding unnecessary scans of pull requests
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ By default, {% data variables.product.prodname_code_scanning %} analyzes your co
|
|||||||
|
|
||||||
## About alerts details
|
## About alerts details
|
||||||
|
|
||||||
Each alert highlights a problem with the code and the name of the tool that identified it. You can see the line of code that triggered the alert, as well as properties of the alert, such as the severity and the nature of the problem. Alerts also tell you when the issue was first introduced. For alerts identified by {% data variables.product.prodname_codeql %} analysis, you will also see information on how to fix the problem.
|
Each alert highlights a problem with the code and the name of the tool that identified it. You can see the line of code that triggered the alert, as well as properties of the alert, such as the severity{% ifversion fpt or ghes > 3.1 or ghae-issue-4697 %}, security severity,{% endif %} and the nature of the problem. Alerts also tell you when the issue was first introduced. For alerts identified by {% data variables.product.prodname_codeql %} analysis, you will also see information on how to fix the problem.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@@ -42,6 +42,21 @@ If you set up {% data variables.product.prodname_code_scanning %} using {% data
|
|||||||
|
|
||||||
When {% data variables.product.prodname_code_scanning %} reports data-flow alerts, {% data variables.product.prodname_dotcom %} shows you how data moves through the code. {% data variables.product.prodname_code_scanning_capc %} allows you to identify the areas of your code that leak sensitive information, and that could be the entry point for attacks by malicious users.
|
When {% data variables.product.prodname_code_scanning %} reports data-flow alerts, {% data variables.product.prodname_dotcom %} shows you how data moves through the code. {% data variables.product.prodname_code_scanning_capc %} allows you to identify the areas of your code that leak sensitive information, and that could be the entry point for attacks by malicious users.
|
||||||
|
|
||||||
|
### About severity levels
|
||||||
|
|
||||||
|
Alert severity levels may be `Error`, `Warning`, or `Note`.
|
||||||
|
|
||||||
|
By default, any code scanning results with a severity of `error` will cause check failure. {% ifversion fpt or ghes > 3.1 or ghae-next %}You can specify the severity level at which pull requests that trigger code scanning alerts should fail. For more information, see "[Defining the severities causing pull request check failure](/code-security/secure-coding/configuring-code-scanning#defining-the-severities-causing-pull-request-check-failure)."{% endif %}
|
||||||
|
|
||||||
|
{% ifversion fpt or ghes > 3.1 or ghae-issue-4697 %}
|
||||||
|
### About security severity levels
|
||||||
|
|
||||||
|
{% data variables.product.prodname_code_scanning_capc %} displays security severity levels for alerts that are generated by security queries. Security severity levels can be `Critical`, `High`, `Medium`, or `Low`.
|
||||||
|
|
||||||
|
To calculate the security severity of an alert, we use Common Vulnerability Scoring System (CVSS) data. CVSS is an open framework for communicating the characteristics and severity of software vulnerabilities, and is commonly used by other security products to score alerts. For more information about how severity levels are calculated, see [the blog post](https://github.blog/changelog/2021-07-19-codeql-code-scanning-new-severity-levels-for-security-alerts/).
|
||||||
|
|
||||||
|
By default, any code scanning results with a security severity of `Critical` or `High` will cause a check failure. You can specify which security severity level for code scanning results should cause a check failure. For more information, see "[Defining the severities causing pull request check failure](/code-security/secure-coding/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#defining-the-severities-causing-pull-request-check-failure)."{% endif %}
|
||||||
|
|
||||||
## Viewing the alerts for a repository
|
## Viewing the alerts for a repository
|
||||||
|
|
||||||
Anyone with read permission for a repository can see {% data variables.product.prodname_code_scanning %} annotations on pull requests. For more information, see "[Triaging {% data variables.product.prodname_code_scanning %} alerts in pull requests](/code-security/secure-coding/triaging-code-scanning-alerts-in-pull-requests)."
|
Anyone with read permission for a repository can see {% data variables.product.prodname_code_scanning %} annotations on pull requests. For more information, see "[Triaging {% data variables.product.prodname_code_scanning %} alerts in pull requests](/code-security/secure-coding/triaging-code-scanning-alerts-in-pull-requests)."
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ In repositories where {% data variables.product.prodname_code_scanning %} is con
|
|||||||
|
|
||||||
If {% data variables.product.prodname_code_scanning %} has any results with a severity of `error`, the check fails and the error is reported in the check results. If all the results found by {% data variables.product.prodname_code_scanning %} have lower severities, the alerts are treated as warnings or notices and the check succeeds.
|
If {% data variables.product.prodname_code_scanning %} has any results with a severity of `error`, the check fails and the error is reported in the check results. If all the results found by {% data variables.product.prodname_code_scanning %} have lower severities, the alerts are treated as warnings or notices and the check succeeds.
|
||||||
|
|
||||||
{% ifversion fpt or ghes > 3.1 or ghae-next %}You can override the default behavior in your repository settings, by specifying the level of severities that will cause a pull request check failure. For more information, see "[Defining the alert severities causing pull request check failure](/code-security/secure-coding/configuring-code-scanning#defining-the-alert-severities-causing-pull-request-check-failure)".
|
{% ifversion fpt or ghes > 3.1 or ghae-next %}You can override the default behavior in your repository settings, by specifying the level of severities {% ifversion fpt or ghes > 3.1 or ghae-issue-4697 %}and security severities {% endif %}that will cause a pull request check failure. For more information, see "[Defining the severities causing pull request check failure](/code-security/secure-coding/configuring-code-scanning#defining-the-severities-causing-pull-request-check-failure)".
|
||||||
|
|
||||||
{% endif %}If your pull request targets a protected branch that uses {% data variables.product.prodname_code_scanning %}, and the repository owner has configured required status checks, then you must either fix or dismiss all error alerts before the pull request can be merged. For more information, see "[About protected branches](/github/administering-a-repository/about-protected-branches#require-status-checks-before-merging)."
|
{% endif %}If your pull request targets a protected branch that uses {% data variables.product.prodname_code_scanning %}, and the repository owner has configured required status checks, then you must either fix or dismiss all error alerts before the pull request can be merged. For more information, see "[About protected branches](/github/administering-a-repository/about-protected-branches#require-status-checks-before-merging)."
|
||||||
|
|
||||||
@@ -43,7 +43,7 @@ If the repository uses the {% data variables.product.prodname_codeql_workflow %}
|
|||||||
|
|
||||||
## Triaging an alert on your pull request
|
## Triaging an alert on your pull request
|
||||||
|
|
||||||
When you look at the **Files changed** tab for a pull request, you see annotations for any lines of code that triggered the alert.
|
When you look at the **Files changed** tab for a pull request, you see annotations for any lines of code that triggered the alert. The severity of the alert is displayed in the annotation.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ If you use a third-party static analysis tool that can produce results as Static
|
|||||||
|
|
||||||
## Integrations with webhooks
|
## Integrations with webhooks
|
||||||
|
|
||||||
You can use {% data variables.product.prodname_code_scanning %} webhooks to build or set up integrations, such as [{% data variables.product.prodname_github_app %}s](/apps/building-github-apps/) or [{% data variables.product.prodname_oauth_app %}s](/apps/building-oauth-apps/), that subscribe to {% data variables.product.prodname_code_scanning %} events in your repository. For example, you could build an integration that creates an issue on {% data variables.product.product_name %} or sends you a Slack notification when a new {% data variables.product.prodname_code_scanning %} alert is added in your repository. For more information, see "[Creating webhooks](/developers/webhooks-and-events/creating-webhooks)" and "[Webhook events and payloads](/developers/webhooks-and-events/webhook-events-and-payloads#code_scanning_alert)."
|
You can use {% data variables.product.prodname_code_scanning %} webhooks to build or set up integrations, such as [{% data variables.product.prodname_github_apps %}](/apps/building-github-apps/) or [{% data variables.product.prodname_oauth_apps %}](/apps/building-oauth-apps/), that subscribe to {% data variables.product.prodname_code_scanning %} events in your repository. For example, you could build an integration that creates an issue on {% data variables.product.product_name %} or sends you a Slack notification when a new {% data variables.product.prodname_code_scanning %} alert is added in your repository. For more information, see "[Creating webhooks](/developers/webhooks-and-events/creating-webhooks)" and "[Webhook events and payloads](/developers/webhooks-and-events/webhook-events-and-payloads#code_scanning_alert)."
|
||||||
|
|
||||||
## Further reading
|
## Further reading
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ redirect_from:
|
|||||||
- /github/developing-online-with-github-codespaces/about-github-codespaces
|
- /github/developing-online-with-github-codespaces/about-github-codespaces
|
||||||
- /github/developing-online-with-codespaces/about-codespaces
|
- /github/developing-online-with-codespaces/about-codespaces
|
||||||
- /codespaces/getting-started-with-codespaces/about-codespaces
|
- /codespaces/getting-started-with-codespaces/about-codespaces
|
||||||
|
- /codespaces/about-codespaces
|
||||||
versions:
|
versions:
|
||||||
fpt: '*'
|
fpt: '*'
|
||||||
type: overview
|
type: overview
|
||||||
@@ -23,7 +23,7 @@ The following guidance provides options on how to handle service disruption to t
|
|||||||
|
|
||||||
In this case, no action on your part is required. Know that we are working diligently to restore service availability.
|
In this case, no action on your part is required. Know that we are working diligently to restore service availability.
|
||||||
|
|
||||||
Check our [Discussions page](https://github.com/github/feedback/discussions/categories/codespaces-feedback) for any updates on service interruptions. Soon, you'll be able to see the current service status on the [Status Dashboard](https://www.githubstatus.com/).
|
Check our [{% data variables.product.prodname_discussions %} page](https://github.com/github/feedback/discussions/categories/codespaces-feedback) for any updates on service interruptions. Soon, you'll be able to see the current service status on the [Status Dashboard](https://www.githubstatus.com/).
|
||||||
|
|
||||||
## Option 2: Clone the repository locally or edit in the browser
|
## Option 2: Clone the repository locally or edit in the browser
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ intro: 'This section contains references that will allow you to be successful wi
|
|||||||
versions:
|
versions:
|
||||||
fpt: '*'
|
fpt: '*'
|
||||||
children:
|
children:
|
||||||
|
- /about-codespaces
|
||||||
- /about-billing-for-codespaces
|
- /about-billing-for-codespaces
|
||||||
- /troubleshooting-your-codespace
|
- /troubleshooting-your-codespace
|
||||||
- /allowing-your-codespace-to-access-a-private-image-registry
|
- /allowing-your-codespace-to-access-a-private-image-registry
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ intro: 'You can use a `devcontainer.json` file to define a {% data variables.pro
|
|||||||
permissions: People with write permissions to a repository can create or edit the codespace configuration.
|
permissions: People with write permissions to a repository can create or edit the codespace configuration.
|
||||||
redirect_from:
|
redirect_from:
|
||||||
- /github/developing-online-with-github-codespaces/configuring-github-codespaces-for-your-project
|
- /github/developing-online-with-github-codespaces/configuring-github-codespaces-for-your-project
|
||||||
|
- /codespaces/setting-up-your-codespace/configuring-codespaces-for-your-project
|
||||||
- /github/developing-online-with-codespaces/configuring-codespaces-for-your-project
|
- /github/developing-online-with-codespaces/configuring-codespaces-for-your-project
|
||||||
versions:
|
versions:
|
||||||
fpt: '*'
|
fpt: '*'
|
||||||
@@ -67,7 +68,7 @@ For more information on using a Dockerfile in a dev container, see [Create a dev
|
|||||||
|
|
||||||
If you don't define a configuration in your repository, {% data variables.product.prodname_dotcom %} creates a codespace with a base Linux image. The base Linux image includes languages and runtimes like Python, Node.js, JavaScript, TypeScript, C++, Java, .NET, PHP, PowerShell, Go, Ruby, and Rust. It also includes other developer tools and utilities like git, GitHub CLI, yarn, openssh, and vim. To see all the languages, runtimes, and tools that are included use the `devcontainer-info content-url` command inside your codespace terminal and follow the url that the command outputs.
|
If you don't define a configuration in your repository, {% data variables.product.prodname_dotcom %} creates a codespace with a base Linux image. The base Linux image includes languages and runtimes like Python, Node.js, JavaScript, TypeScript, C++, Java, .NET, PHP, PowerShell, Go, Ruby, and Rust. It also includes other developer tools and utilities like git, GitHub CLI, yarn, openssh, and vim. To see all the languages, runtimes, and tools that are included use the `devcontainer-info content-url` command inside your codespace terminal and follow the url that the command outputs.
|
||||||
|
|
||||||
Alternatively, for more information about everything that is included in the base Linux image, see the latest file in the [`microsoft/vscode-dev-containers`](https://github.com/microsoft/vscode-dev-containers) repository.
|
Alternatively, for more information about everything that is included in the base Linux image, see the latest file in the [`microsoft/vscode-dev-containers`](https://github.com/microsoft/vscode-dev-containers/tree/main/containers/codespaces-linux) repository.
|
||||||
|
|
||||||
The default configuration is a good option if you're working on a small project that uses the languages and tools that {% data variables.product.prodname_codespaces %} provides.
|
The default configuration is a good option if you're working on a small project that uses the languages and tools that {% data variables.product.prodname_codespaces %} provides.
|
||||||
|
|
||||||
@@ -1,8 +1,10 @@
|
|||||||
---
|
---
|
||||||
title: Setting up your codespace
|
title: Customizing your codespace
|
||||||
intro: '{% data variables.product.prodname_codespaces %} is a dedicated environment for you. You can configure your repositories with a dev container to shape their default {% data variables.product.prodname_codespaces %} environment, and personalize your development experience across all of your codespaces with dotfiles and Settings Sync.'
|
intro: '{% data variables.product.prodname_codespaces %} is a dedicated environment for you. You can configure your repositories with a dev container to define their default Codespaces environment, and personalize your development experience across all of your codespaces with dotfiles and Settings Sync.'
|
||||||
versions:
|
versions:
|
||||||
fpt: '*'
|
free-pro-team: '*'
|
||||||
|
redirect_from:
|
||||||
|
- /codespaces/setting-up-your-codespace
|
||||||
topics:
|
topics:
|
||||||
- Codespaces
|
- Codespaces
|
||||||
children:
|
children:
|
||||||
@@ -5,6 +5,7 @@ permissions: 'Anyone can personalize {% data variables.product.prodname_codespac
|
|||||||
redirect_from:
|
redirect_from:
|
||||||
- /github/developing-online-with-github-codespaces/personalizing-github-codespaces-for-your-account
|
- /github/developing-online-with-github-codespaces/personalizing-github-codespaces-for-your-account
|
||||||
- /github/developing-online-with-codespaces/personalizing-codespaces-for-your-account
|
- /github/developing-online-with-codespaces/personalizing-codespaces-for-your-account
|
||||||
|
- /codespaces/setting-up-your-codespace/personalizing-codespaces-for-your-account
|
||||||
versions:
|
versions:
|
||||||
fpt: '*'
|
fpt: '*'
|
||||||
type: how_to
|
type: how_to
|
||||||
97
content/codespaces/getting-started/deep-dive.md
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
---
|
||||||
|
title: Deep dive into Codespaces
|
||||||
|
intro: 'Understand how {% data variables.product.prodname_codespaces %} works.'
|
||||||
|
allowTitleToDifferFromFilename: true
|
||||||
|
versions:
|
||||||
|
free-pro-team: '*'
|
||||||
|
type: quick_start
|
||||||
|
topics:
|
||||||
|
- Codespaces
|
||||||
|
---
|
||||||
|
|
||||||
|
{% data variables.product.prodname_codespaces %} is an instant, cloud-based development environment that uses a container to provide you with common languages, tools, and utilities for development. {% data variables.product.prodname_codespaces %} is also configurable, allowing you to create a customized development environment for your project. By configuring a custom development environment for your project, you can have a repeatable codespace configuration for all users of your project.
|
||||||
|
|
||||||
|
## Creating your codespace
|
||||||
|
|
||||||
|
There are a number of entry points to create a codespace.
|
||||||
|
|
||||||
|
- From your repository for new feature work.
|
||||||
|
- From an open pull request to explore work-in-progress.
|
||||||
|
- From a commit in the repository's history to investigate a bug at a specific point in time.
|
||||||
|
- From {% data variables.product.prodname_vscode %}.
|
||||||
|
|
||||||
|
Your codespace can be ephemeral if you need to test something or you can return to the same codespace to work on long-running feature work. For more information, see "[Creating a codespace](/codespaces/developing-in-codespaces/creating-a-codespace)."
|
||||||
|
|
||||||
|
Once you've selected the option to create a new codespace, some steps happen in the background before the codespace is available to you.
|
||||||
|
|
||||||
|

|
||||||
|
### Step 1: VM and storage are assigned to your codespace
|
||||||
|
|
||||||
|
When you create a codespace, a [shallow clone](https://github.blog/2020-12-21-get-up-to-speed-with-partial-clone-and-shallow-clone/) of your repository is made on a Linux virtual machine that is both dedicated and private to you. Having a dedicated VM ensures that you have the entire set of compute resources from that machine available to you. If necessary, this also allows you to have full root access to your container.
|
||||||
|
|
||||||
|
### Step 2: Container is created
|
||||||
|
|
||||||
|
{% data variables.product.prodname_codespaces %} uses a container as the development environment. This container is created based on the configurations that you can define in a `devcontainer.json` file and/or Dockerfile in your repository. If you don't [configure a container](/codespaces/customizing-your-codespace/configuring-codespaces-for-your-project), {% data variables.product.prodname_codespaces %} uses a [default image](/codespaces/customizing-your-codespace/configuring-codespaces-for-your-project#using-the-default-configuration), which has many languages and runtimes available. For information on what the default image contains, see the [`vscode-dev-containers`](https://github.com/microsoft/vscode-dev-containers/tree/main/containers/codespaces-linux) repository.
|
||||||
|
|
||||||
|
### Step 3: Connecting to the codespace
|
||||||
|
|
||||||
|
When your container has been created and any other initialization has run, you'll be connected to your codespace. You can connect to it through the web or via [Visual Studio Code](/codespaces/developing-in-codespaces/using-codespaces-in-visual-studio-code), or both, if needed.
|
||||||
|
|
||||||
|
### Step 4: Post-creation setup
|
||||||
|
|
||||||
|
Once you're connected to your codespace, automated setup that you specified in your `devcontainer.json` file, such as running the `postCreateCommand` and `postAttachCommand`, may continue. If you have a public dotfiles repository {% data variables.product.prodname_codespaces %}, you can enable it for use with new codespaces. When enabled, your dotfiles will be cloned to the container and look for an install file. For more information, see "[Personalizing {% data variables.product.prodname_codespaces %} for your account](/github/developing-online-with-codespaces/personalizing-codespaces-for-your-account#dotfiles)."
|
||||||
|
|
||||||
|
Finally, the entire history of the repository is copied down with a full clone.
|
||||||
|
|
||||||
|
During post-creation setup you'll still be able to use the integrated terminal and make edits to your files, but take care to avoid any race conditions between your work and the commands that are running.
|
||||||
|
## {% data variables.product.prodname_codespaces %} lifecycle
|
||||||
|
|
||||||
|
### Saving files in your codespace
|
||||||
|
|
||||||
|
As you develop in your codespace, it will save any changes to your files every few seconds. Your codespace will keep running for 30 minutes after the last activity. After that time it will stop running but you can restart it from either from the existing browser tab or the list of existing codespaces. File changes from the editor and terminal output are counted as activity and so your codespace will not stop if terminal output is continuing.
|
||||||
|
|
||||||
|
{% note %}
|
||||||
|
|
||||||
|
**Note:** Changes in a codespace in {% data variables.product.prodname_vscode %} are not saved automatically, unless you have enabled [Auto Save](https://code.visualstudio.com/docs/editor/codebasics#_save-auto-save).
|
||||||
|
{% endnote %}
|
||||||
|
|
||||||
|
### Closing or stopping your codespace
|
||||||
|
|
||||||
|
To stop your codespace you can [use the command palette](/codespaces/codespaces-reference/using-the-command-palette-in-codespaces#suspending-or-stopping-a-codespace) (`Shift + Command + P` (Mac) / `Ctrl + Shift + P` (Windows)). If you exit your codespace without running the stop command, such as closing the browser tab, running processes will continue until a window of inactivity occurs.
|
||||||
|
|
||||||
|
When you close or stop your codespace, all uncommitted changes are preserved until you connect to the codespace again.
|
||||||
|
|
||||||
|
|
||||||
|
## Running your application
|
||||||
|
|
||||||
|
Port forwarding gives you access to TCP ports running within your codespace. For example, if you're running a web application on port 4000 within your codespace, you can automatically forward that port to make the application accessible from your browser.
|
||||||
|
|
||||||
|
Port forwarding determines which ports are made accessible to you from the remote machine. Even if you do not forward a port, that port is still accessible to other processes running inside the codespace itself.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
When an application running inside {% data variables.product.prodname_codespaces %} outputs a port to the console, {% data variables.product.prodname_codespaces %} detects the localhost URL pattern and automatically forwards the port. You can click on the URL in the terminal or in the toast message to open the port in a browser. For more information on port forwarding, see "[Forwarding ports in your codespace](/codespaces/developing-in-codespaces/forwarding-ports-in-your-codespace)."
|
||||||
|
|
||||||
|
While ports can be forwarded automatically, they are not are publicly accessible to the internet. By default, all ports are private, but you can [manually make a port public](/codespaces/developing-in-codespaces/forwarding-ports-in-your-codespace#sharing-a-port) to share access through a URL.
|
||||||
|
|
||||||
|
Running your application when you first land in your codespace can make for a fast inner dev loop. As you edit, your changes are automatically saved and available on your forwarded port. To view changes, go back to the running application tab in your browser and refresh it.
|
||||||
|
|
||||||
|
## Committing and pushing your changes
|
||||||
|
|
||||||
|
Git is available by default in your codespace and so you can rely on your existing Git workflow. You can work with Git in your codespace either via the Terminal or by using [Visual Studio Code](https://code.visualstudio.com/docs/editor/versioncontrol)'s source control UI. For more information, see "[Using source control in your codespace](/codespaces/developing-in-codespaces/using-source-control-in-your-codespace)"
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
You can create a codespace from any branch, commit, or pull request in your project. Because {% data variables.product.prodname_codespaces %} is designed to be ephemeral, you can use it as an isolated environment to experiment, check a teammate's pull request, or fix merge conflicts. While you can only create one codespace for each branch, you can switch to a new or existing branch within your codespace.
|
||||||
|
|
||||||
|
{% note %}
|
||||||
|
|
||||||
|
**Note:** Commits from your codespace will be attributed to the name and public email configured at https://github.com/settings/profile. A token scoped to the repository, included in the environment as `GITHUB_TOKEN`, and your GitHub credentials will be used to authenticate.
|
||||||
|
|
||||||
|
{% endnote %}
|
||||||
|
|
||||||
|
## Personalizing your codespace with extensions
|
||||||
|
|
||||||
|
Using {% data variables.product.prodname_vscode %} in your codespace gives you access to the {% data variables.product.prodname_vscode %} Marketplace so that you can add any extensions you need. For information on how extensions run in {% data variables.product.prodname_codespaces %}, see [Supporting Remote Development and GitHub Codespaces](https://code.visualstudio.com/api/advanced-topics/remote-extensions) in the {% data variables.product.prodname_vscode %} docs.
|
||||||
|
|
||||||
|
If you already use {% data variables.product.prodname_vscode %}, you can use [Settings Sync](https://code.visualstudio.com/docs/editor/settings-sync) to automatically sync extensions, settings, themes, and keyboard shortcuts between your local instance and any {% data variables.product.prodname_codespaces %} you create.
|
||||||
@@ -4,10 +4,9 @@ intro: 'Learn how to get started with {% data variables.product.prodname_codespa
|
|||||||
versions:
|
versions:
|
||||||
fpt: '*'
|
fpt: '*'
|
||||||
children:
|
children:
|
||||||
- /getting-started-with-your-nodejs-project-in-codespaces
|
- /quickstart
|
||||||
- /getting-started-with-your-dotnet-project
|
- /deep-dive
|
||||||
- /getting-started-with-your-java-project-in-codespaces
|
|
||||||
- /getting-started-with-your-python-project-in-codespaces
|
|
||||||
shortTitle: Get started
|
|
||||||
---
|
---
|
||||||
{% data reusables.codespaces.release-stage %}
|
{% data reusables.codespaces.release-stage %}
|
||||||
|
|
||||||
|
|
||||||
102
content/codespaces/getting-started/quickstart.md
Normal file
@@ -0,0 +1,102 @@
|
|||||||
|
---
|
||||||
|
title: Quickstart for Codespaces
|
||||||
|
intro: 'Try out {% data variables.product.prodname_codespaces %} in 5 minutes.'
|
||||||
|
allowTitleToDifferFromFilename: true
|
||||||
|
versions:
|
||||||
|
free-pro-team: '*'
|
||||||
|
type: quick_start
|
||||||
|
topics:
|
||||||
|
- Codespaces
|
||||||
|
redirect_from:
|
||||||
|
- /codespaces/codespaces-quickstart
|
||||||
|
---
|
||||||
|
|
||||||
|
{% data reusables.codespaces.release-stage %}
|
||||||
|
|
||||||
|
## Introduction
|
||||||
|
|
||||||
|
In this guide, you'll create a codespace from a [template repository](https://github.com/2percentsilk/haikus-for-codespaces) and explore some of the essential features available to you within the codespace.
|
||||||
|
|
||||||
|
From this quickstart, you will learn how to create a codespace, connect to a forwarded port to view your running application, use version control in a codespace, and personalize your setup with extensions.
|
||||||
|
|
||||||
|
For more information on exactly how {% data variables.product.prodname_codespaces %} works, see the companion guide "[Deep dive into {% data variables.product.prodname_codespaces %}](/codespaces/getting-started/deep-dive)."
|
||||||
|
|
||||||
|
## Creating your codespace
|
||||||
|
|
||||||
|
1. Navigate to the [template repository](https://github.com/2percentsilk/haikus-for-codespaces) and select **Use this template**.
|
||||||
|
|
||||||
|
2. Name your repository, select your preferred privacy setting, and click **Create repository from this template**.
|
||||||
|
|
||||||
|
3. Navigate to the main page of the newly created repository. Under the repository name, use the {% octicon "download" aria-label="The download icon" %} **Code** drop-down menu, and select **Open with Codespaces**.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
4. To create a codespace, click {% octicon "plus" aria-label="The plus icon" %} **New codespace**.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Running the application
|
||||||
|
|
||||||
|
Once your codespace is created, your repository will be automatically cloned into it. Now you can run the application and launch it in a browser.
|
||||||
|
|
||||||
|
1. Since this example uses a Node.js project, start the application by entering `npm run dev` in the terminal. This command executes the `dev` script in the package.json file and starts up the web application defined in the sample repository.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
If you're following along with a different application type, enter the corresponding start command for that project.
|
||||||
|
|
||||||
|
2. When your application starts, the codespace recognizes the port the application is running on and displays a prompt to forward that port so you can connect to it.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
3. Click **Open in Browser** to view your running application in a new tab.
|
||||||
|
|
||||||
|
## Edit the application and view changes
|
||||||
|
|
||||||
|
1. Switch back to your codespace and open the `haikus.json` file by double-clicking it in the File Explorer.
|
||||||
|
|
||||||
|
2. Edit the `text` field of the first haiku to personalize the application with your own haiku.
|
||||||
|
|
||||||
|
3. Go back to the running application tab in your browser and refresh to see your changes.
|
||||||
|
|
||||||
|
{% octicon "light-bulb" aria-label="The lightbulb icon" %} If you've closed the tab, open the Ports panel and click the **Open in browser** icon for the running port.
|
||||||
|

|
||||||
|
|
||||||
|
## Committing and pushing your changes
|
||||||
|
|
||||||
|
Now that you've made a few changes, you can use the integrated terminal or the source view to commit and push the changes back to the remote.
|
||||||
|
|
||||||
|
{% data reusables.codespaces.source-control-display-dark %}
|
||||||
|
1. To stage your changes, click **+** next to the file you've changed, or next to **Changes** if you've changed multiple files and you want to stage them all.
|
||||||
|

|
||||||
|
1. Type a commit message describing the change you've made.
|
||||||
|

|
||||||
|
1. To commit your staged changes, click the check mark at the top the source control side bar.
|
||||||
|

|
||||||
|
You can push the changes you've made. This applies those changes to the upstream branch on the remote repository. You might want to do this if you're not yet ready to create a pull request, or if you prefer to create a pull request on {% data variables.product.prodname_dotcom %}.
|
||||||
|
1. At the top of the side bar, click the ellipsis (**...**).
|
||||||
|

|
||||||
|
1. In the drop-down menu, click **Push**.
|
||||||
|
|
||||||
|
## Personalizing with an extension
|
||||||
|
|
||||||
|
Within a codespace, you have access to the Visual Studio Code Marketplace. For this example, you'll install an extension that alters the theme, but you can install any extension that is useful for your workflow.
|
||||||
|
|
||||||
|
1. In the left sidebar, click the Extensions icon.
|
||||||
|
|
||||||
|
2. In the search bar, enter `fairyfloss` and install the fairyfloss extension.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
3. Select the `fairyfloss` theme by selecting it from the list.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
4. Changes you make to your editor setup in the current codespace, such as theme and keyboard bindings, are synced automatically via [Settings Sync](https://code.visualstudio.com/docs/editor/settings-sync) to any other codespaces you open and any instances of Visual Studio Code that are signed into your GitHub account.
|
||||||
|
|
||||||
|
## Next Steps
|
||||||
|
|
||||||
|
You've successfully created, personalized, and run your first application within a codespace but there's so much more to explore! Here are some helpful resources for taking your next steps with {% data variables.product.prodname_codespaces %}.
|
||||||
|
- [Deep dive](/codespaces/getting-started/deep-dive): This quickstart presented some of the features of {% data variables.product.prodname_codespaces %}. The deep dive looks at these areas from a technical standpoint.
|
||||||
|
- [Setting up your project for {% data variables.product.prodname_codespaces %}](/codespaces/getting-started-with-codespaces). These guides provide information on setting up your project to use {% data variables.product.prodname_codespaces %} with specific languages
|
||||||
|
- [Configuring {% data variables.product.prodname_codespaces %} for your project](/codespaces/setting-up-your-codespace/configuring-codespaces-for-your-project): This guide provides details on creating a custom configuration for {% data variables.product.prodname_codespaces %} for your project.
|
||||||
@@ -4,8 +4,8 @@ beta_product: true
|
|||||||
shortTitle: GitHub Codespaces
|
shortTitle: GitHub Codespaces
|
||||||
intro: 'Create a codespace to start developing in a secure, configurable, and dedicated development environment that works how and where you want it to.'
|
intro: 'Create a codespace to start developing in a secure, configurable, and dedicated development environment that works how and where you want it to.'
|
||||||
introLinks:
|
introLinks:
|
||||||
quickstart: /codespaces/quickstart
|
overview: /codespaces/overview
|
||||||
overview: /codespaces/about-codespaces
|
quickstart: /codespaces/getting-started/quickstart
|
||||||
featuredLinks:
|
featuredLinks:
|
||||||
guides:
|
guides:
|
||||||
- /codespaces/getting-started-with-codespaces/getting-started-with-your-nodejs-project-in-codespaces
|
- /codespaces/getting-started-with-codespaces/getting-started-with-your-nodejs-project-in-codespaces
|
||||||
@@ -32,10 +32,10 @@ examples_source: data/product-examples/codespaces/code-examples.yml
|
|||||||
versions:
|
versions:
|
||||||
fpt: '*'
|
fpt: '*'
|
||||||
children:
|
children:
|
||||||
- /about-codespaces
|
- /overview
|
||||||
- /quickstart
|
- /getting-started
|
||||||
- /getting-started-with-codespaces
|
- /setting-up-your-project-for-codespaces
|
||||||
- /setting-up-your-codespace
|
- /customizing-your-codespace
|
||||||
- /developing-in-codespaces
|
- /developing-in-codespaces
|
||||||
- /managing-your-codespaces
|
- /managing-your-codespaces
|
||||||
- /managing-codespaces-for-your-organization
|
- /managing-codespaces-for-your-organization
|
||||||
|
|||||||
39
content/codespaces/overview.md
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
---
|
||||||
|
title: GitHub Codespaces overview
|
||||||
|
shortTitle: Overview
|
||||||
|
intro: 'This guide introduces {% data variables.product.prodname_codespaces %} and provides details on how it works and how to use it.'
|
||||||
|
allowTitleToDifferFromFilename: true
|
||||||
|
redirect_from:
|
||||||
|
- /codespaces/codespaces-reference/about-codespaces
|
||||||
|
versions:
|
||||||
|
free-pro-team: '*'
|
||||||
|
type: quick_start
|
||||||
|
topics:
|
||||||
|
- Codespaces
|
||||||
|
---
|
||||||
|
|
||||||
|
## What is a codespace?
|
||||||
|
|
||||||
|
A codespace is a development environment that's hosted in the cloud. You can customize your project for {% data variables.product.prodname_codespaces %} by committing [configuration files](/codespaces/customizing-your-codespace/configuring-codespaces-for-your-project) to your repository (often known as Configuration-as-Code), which creates a repeatable codespace configuration for all users of your project.
|
||||||
|
|
||||||
|
{% data variables.product.prodname_codespaces %} run on a variety of VM-based compute options hosted by {% data variables.product.product_location %}, that you can configure from 2 core machines up to 32 core machines. You can connect to your codespaces from the browser or locally using {% data variables.product.prodname_vscode %}.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Using Codespaces
|
||||||
|
|
||||||
|
You can create a codespace from any branch or commit in your repository and begin developing using cloud-based compute resources.
|
||||||
|
|
||||||
|
To customize the runtimes and tools in your codespace, you can create a custom configuration to define an environment (or _dev container_) that is specific for your repository. Using a dev container allows you to specify a Docker environment for development with a well-defined tool and runtime stack that can reference an image, Dockerfile, or docker-compose. This means that anyone using the repository will have the same tools available to them when they create a codespace.
|
||||||
|
|
||||||
|
If you don't do any custom configuration, {% data variables.product.prodname_codespaces %} will clone your repository into an environment with the default codespace image that includes many tools, languages, and runtime environments. For more information, see "[Configuring Codespaces for your project](/codespaces/setting-up-your-codespace/configuring-codespaces-for-your-project)".
|
||||||
|
|
||||||
|
You can also personalize aspects of your codespace environment by using a public [dotfiles](https://dotfiles.github.io/tutorials/) repository and [Settings Sync](https://code.visualstudio.com/docs/editor/settings-sync). Personalization can include shell preferences, additional tools, editor settings, and VS Code extensions. For more information, see "[Customizing your codespace](/codespaces/customizing-your-codespace)".
|
||||||
|
|
||||||
|
## About billing for {% data variables.product.prodname_codespaces %}
|
||||||
|
|
||||||
|
{% data reusables.codespaces.about-billing-for-codespaces %} For more information, see "[About billing for {% data variables.product.prodname_codespaces %}](/github/developing-online-with-codespaces/about-billing-for-codespaces)."
|
||||||
|
|
||||||
|
## Joining the beta
|
||||||
|
|
||||||
|
A limited number of people will be invited to join the beta. To join the waitlist, see [Sign up for the Codespaces beta](https://github.com/features/codespaces/signup).
|
||||||
@@ -1,85 +0,0 @@
|
|||||||
---
|
|
||||||
title: Quickstart for GitHub Codespaces
|
|
||||||
intro: 'Try out {% data variables.product.prodname_codespaces %} in 5 minutes or less.'
|
|
||||||
allowTitleToDifferFromFilename: true
|
|
||||||
versions:
|
|
||||||
fpt: '*'
|
|
||||||
type: quick_start
|
|
||||||
topics:
|
|
||||||
- Codespaces
|
|
||||||
redirect_from:
|
|
||||||
- /codespaces/codespaces-quickstart
|
|
||||||
shortTitle: Quickstart
|
|
||||||
---
|
|
||||||
|
|
||||||
{% data reusables.codespaces.release-stage %}
|
|
||||||
|
|
||||||
## Introduction
|
|
||||||
|
|
||||||
In this guide, you'll create a codespace from the [sample repository](https://github.com/2percentsilk/haikus-for-codespaces) and explore some of the essential features available to you within the codespace.
|
|
||||||
|
|
||||||
The following example shows you how to create a codespace, connect to a forwarded port to view your running application, and personalize your setup with additional extensions and dotfiles.
|
|
||||||
|
|
||||||
## Creating your codespace
|
|
||||||
|
|
||||||
1. Navigate to the main page of the [sample repository](https://github.com/2percentsilk/haikus-for-codespaces).
|
|
||||||
|
|
||||||
2. Under the repository name, use the {% octicon "download" aria-label="The download icon" %} **Code** drop-down menu, and select **Open with Codespaces**.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
3. To create a codespace, click {% octicon "plus" aria-label="The plus icon" %} **New codespace**.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## Run the application
|
|
||||||
|
|
||||||
With your project open in a codespace, you can now run the application and launch it in a browser.
|
|
||||||
|
|
||||||
1. Start the application by entering `npm run dev` in the terminal. This command executes the `dev` script in the package.json file and starts up the web application defined in the sample repository.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
2. When your project starts, you should see a toast in the bottom right corner with a prompt to connect to the port your project uses.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
3. Click **Open in Browser** to view your running application in a new tab.
|
|
||||||
|
|
||||||
## Personalize with a theme extension
|
|
||||||
|
|
||||||
Within a codespace, you have access to the Visual Studio Code Marketplace. For this example, you'll install an extension that alters the theme but you can install any extension that is useful for your workflow.
|
|
||||||
|
|
||||||
1. In the left sidebar, click the Extensions icon.
|
|
||||||
|
|
||||||
2. In the search bar, enter `fairyfloss` and install the fairyfloss extension.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
3. Select the `fairyfloss` theme by selecting it from the list.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
4. Changes you make to your editor setup in the current codespace, such as theme and keyboard bindings, are synced automatically to other codespaces via [Settings Sync](https://code.visualstudio.com/docs/editor/settings-sync).
|
|
||||||
|
|
||||||
## Personalize with dotfiles
|
|
||||||
|
|
||||||
If your user account on GitHub owns a public repository named dotfiles, GitHub automatically uses this repository to personalize your codespace environment during codespace creation.
|
|
||||||
|
|
||||||
This example guides you through creating a dotfiles repository for your codespaces.
|
|
||||||
|
|
||||||
1. Navigate to the sample [dotfiles repository](https://github.com/aw-test-93/dotfiles/).
|
|
||||||
|
|
||||||
2. Fork the repository to your account and ensure it's public.
|
|
||||||
|
|
||||||
Verify the repository created under your account is named dotfiles, for example `yourname/dotfiles`. Any other name will cause {% data variables.product.prodname_codespaces %} to ignore the repository for personalization.
|
|
||||||
|
|
||||||
3. Create a new codespace from the [sample application repository](https://github.com/2percentsilk/haikus-for-codespaces) as dotfile updates are only applied at creation time. The sample dotfiles will change the command prompt to bold purple and blue text.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## Next Steps
|
|
||||||
|
|
||||||
You've successfully created, personalized, and run your first application within a codespace but there's so much more to explore! Here are some helpful resources for taking your next steps with {% data variables.product.prodname_codespaces %}.
|
|
||||||
- "[Getting Started guides](/codespaces/getting-started-with-codespaces)" for using {% data variables.product.prodname_codespaces %} with specific languages
|
|
||||||
- [Create a custom configuration](/codespaces/setting-up-your-codespace/configuring-codespaces-for-your-project) to configure {% data variables.product.prodname_codespaces %} for your project.
|
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
title: 'Setting up your project for {% data variables.product.prodname_codespaces %}'
|
||||||
|
intro: 'Learn how to get started with {% data variables.product.prodname_codespaces %}, including set up and configuration for specific languages.'
|
||||||
|
versions:
|
||||||
|
free-pro-team: '*'
|
||||||
|
redirect_from:
|
||||||
|
- /codespaces/getting-started-with-codespaces
|
||||||
|
children:
|
||||||
|
- /setting-up-your-nodejs-project-for-codespaces
|
||||||
|
- /setting-up-your-dotnet-project-for-codespaces
|
||||||
|
- /setting-up-your-java-project-for-codespaces
|
||||||
|
- /setting-up-your-python-project-for-codespaces
|
||||||
|
---
|
||||||
|
{% data reusables.codespaces.release-stage %}
|
||||||
@@ -1,8 +1,10 @@
|
|||||||
---
|
---
|
||||||
title: Getting started with your C# (.NET) project in Codespaces
|
title: Setting up your C# (.NET) project for Codespaces
|
||||||
shortTitle: Getting started with your C# (.NET) project
|
shortTitle: Setting up your C# (.NET) project
|
||||||
allowTitleToDifferFromFilename: true
|
allowTitleToDifferFromFilename: true
|
||||||
intro: 'Get started with your C# (.NET) project in {% data variables.product.prodname_codespaces %} by creating a custom dev container.'
|
intro: 'Get started with your C# (.NET) project in {% data variables.product.prodname_codespaces %} by creating a custom dev container.'
|
||||||
|
redirect_from:
|
||||||
|
- /codespaces/getting-started-with-codespaces/getting-started-with-your-dotnet-project
|
||||||
versions:
|
versions:
|
||||||
fpt: '*'
|
fpt: '*'
|
||||||
topics:
|
topics:
|
||||||
@@ -1,7 +1,9 @@
|
|||||||
---
|
---
|
||||||
title: Getting started with your Java project in Codespaces
|
title: Setting up your Java project for Codespaces
|
||||||
shortTitle: Getting started with your Java project
|
shortTitle: Setting up with your Java project
|
||||||
intro: 'Get started with your Java project in {% data variables.product.prodname_codespaces %} by creating a custom dev container.'
|
intro: 'Get started with your Java project in {% data variables.product.prodname_codespaces %} by creating a custom dev container.'
|
||||||
|
redirect_from:
|
||||||
|
- /codespaces/getting-started-with-codespaces/getting-started-with-your-java-project-in-codespaces
|
||||||
versions:
|
versions:
|
||||||
fpt: '*'
|
fpt: '*'
|
||||||
topics:
|
topics:
|
||||||
@@ -1,9 +1,11 @@
|
|||||||
---
|
---
|
||||||
title: Getting started with your Node.js project in Codespaces
|
title: Setting up your Node.js project for Codespaces
|
||||||
shortTitle: Getting started with your Node.js project
|
shortTitle: Setting up your Node.js project
|
||||||
intro: 'Get started with your JavaScript, Node.js, or TypeScript project in {% data variables.product.prodname_codespaces %} by creating a custom dev container.'
|
intro: 'Get started with your JavaScript, Node.js, or TypeScript project in {% data variables.product.prodname_codespaces %} by creating a custom dev container.'
|
||||||
versions:
|
versions:
|
||||||
fpt: '*'
|
fpt: '*'
|
||||||
|
redirect_from:
|
||||||
|
- /codespaces/getting-started-with-codespaces/getting-started-with-your-nodejs-project-in-codespaces
|
||||||
type: tutorial
|
type: tutorial
|
||||||
topics:
|
topics:
|
||||||
- Codespaces
|
- Codespaces
|
||||||
@@ -1,9 +1,12 @@
|
|||||||
---
|
---
|
||||||
title: Getting started with your Python project in Codespaces
|
title: Setting up your Python project for Codespaces
|
||||||
shortTitle: Getting started with your Python project
|
shortTitle: Setting up your Python project
|
||||||
intro: 'Get started with your Python project in {% data variables.product.prodname_codespaces %} by creating a custom dev container.'
|
intro: 'Get started with your Python project in {% data variables.product.prodname_codespaces %} by creating a custom dev container.'
|
||||||
versions:
|
versions:
|
||||||
fpt: '*'
|
fpt: '*'
|
||||||
|
redirect_from:
|
||||||
|
- /codespaces/getting-started-with-codespaces/getting-started-with-your-python-project-in-codespaces
|
||||||
|
|
||||||
type: tutorial
|
type: tutorial
|
||||||
topics:
|
topics:
|
||||||
- Codespaces
|
- Codespaces
|
||||||
@@ -127,7 +127,7 @@ For a list of REST API endpoints you can use to get high-level information about
|
|||||||
|
|
||||||
## Authenticating as an installation
|
## Authenticating as an installation
|
||||||
|
|
||||||
Authenticating as an installation lets you perform actions in the API for that installation. Before authenticating as an installation, you must create an installation access token. Ensure that you have already installed your GitHub App to at least one repository; it is impossible to create an installation token without a single installation. These installation access tokens are used by {% data variables.product.prodname_github_app %}s to authenticate. For more information, see "[Installing GitHub Apps](/developers/apps/managing-github-apps/installing-github-apps)."
|
Authenticating as an installation lets you perform actions in the API for that installation. Before authenticating as an installation, you must create an installation access token. Ensure that you have already installed your GitHub App to at least one repository; it is impossible to create an installation token without a single installation. These installation access tokens are used by {% data variables.product.prodname_github_apps %} to authenticate. For more information, see "[Installing GitHub Apps](/developers/apps/managing-github-apps/installing-github-apps)."
|
||||||
|
|
||||||
By default, installation access tokens are scoped to all the repositories that an installation can access. You can limit the scope of the installation access token to specific repositories by using the `repository_ids` parameter. See the [Create an installation access token for an app](/rest/reference/apps#create-an-installation-access-token-for-an-app) endpoint for more details. Installation access tokens have the permissions configured by the {% data variables.product.prodname_github_app %} and expire after one hour.
|
By default, installation access tokens are scoped to all the repositories that an installation can access. You can limit the scope of the installation access token to specific repositories by using the `repository_ids` parameter. See the [Create an installation access token for an app](/rest/reference/apps#create-an-installation-access-token-for-an-app) endpoint for more details. Installation access tokens have the permissions configured by the {% data variables.product.prodname_github_app %} and expire after one hour.
|
||||||
|
|
||||||
@@ -193,7 +193,7 @@ $ curl -i \
|
|||||||
|
|
||||||
## Accessing API endpoints as an installation
|
## Accessing API endpoints as an installation
|
||||||
|
|
||||||
For a list of REST API endpoints that are available for use by {% data variables.product.prodname_github_app %}s using an installation access token, see "[Available Endpoints](/rest/overview/endpoints-available-for-github-apps)."
|
For a list of REST API endpoints that are available for use by {% data variables.product.prodname_github_apps %} using an installation access token, see "[Available Endpoints](/rest/overview/endpoints-available-for-github-apps)."
|
||||||
|
|
||||||
For a list of endpoints related to installations, see "[Installations](/rest/reference/apps#installations)."
|
For a list of endpoints related to installations, see "[Installations](/rest/reference/apps#installations)."
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ shortTitle: Rate limits
|
|||||||
|
|
||||||
{% ifversion fpt %}
|
{% ifversion fpt %}
|
||||||
|
|
||||||
Different server-to-server request rate limits apply to {% data variables.product.prodname_github_app %}s if the app is installed on organizations or repositories owned by a {% data variables.product.prodname_ghe_cloud %} account.
|
Different server-to-server request rate limits apply to {% data variables.product.prodname_github_apps %} if the app is installed on organizations or repositories owned by a {% data variables.product.prodname_ghe_cloud %} account.
|
||||||
|
|
||||||
### Normal server-to-server rate limits
|
### Normal server-to-server rate limits
|
||||||
|
|
||||||
@@ -31,17 +31,17 @@ Different server-to-server request rate limits apply to {% data variables.produc
|
|||||||
|
|
||||||
### {% data variables.product.prodname_ghe_cloud %} server-to-server rate limits
|
### {% data variables.product.prodname_ghe_cloud %} server-to-server rate limits
|
||||||
|
|
||||||
{% data variables.product.prodname_github_app %}s that are installed on an organization or repository owned by a {% data variables.product.prodname_ghe_cloud %} account and make server-to-server requests have a rate limit of 15,000 requests per hour.
|
{% data variables.product.prodname_github_apps %} that are installed on an organization or repository owned by a {% data variables.product.prodname_ghe_cloud %} account and make server-to-server requests have a rate limit of 15,000 requests per hour.
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
## User-to-server requests
|
## User-to-server requests
|
||||||
|
|
||||||
{% data variables.product.prodname_github_app %}s can also act [on behalf of a user](/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-and-authorizing-users-for-github-apps), making user-to-server requests.
|
{% data variables.product.prodname_github_apps %} can also act [on behalf of a user](/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-and-authorizing-users-for-github-apps), making user-to-server requests.
|
||||||
|
|
||||||
{% ifversion fpt %}
|
{% ifversion fpt %}
|
||||||
|
|
||||||
Different user-to-server request rate limits apply to {% data variables.product.prodname_github_app %}s if the app is installed on organizations or repositories owned by a {% data variables.product.prodname_ghe_cloud %} account and the authenticated user also belongs to the same {% data variables.product.prodname_ghe_cloud %} account.
|
Different user-to-server request rate limits apply to {% data variables.product.prodname_github_apps %} if the app is installed on organizations or repositories owned by a {% data variables.product.prodname_ghe_cloud %} account and the authenticated user also belongs to the same {% data variables.product.prodname_ghe_cloud %} account.
|
||||||
|
|
||||||
### Normal user-to-server rate limits
|
### Normal user-to-server rate limits
|
||||||
|
|
||||||
|
|||||||
@@ -71,9 +71,9 @@ If you want your app to use non-expiring user-to-server access tokens, you can d
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
Existing {% data variables.product.prodname_github_app %}s using user-to-server authorization tokens are only affected by this new flow when the app owner enables expiring user tokens for their app.
|
Existing {% data variables.product.prodname_github_apps %} using user-to-server authorization tokens are only affected by this new flow when the app owner enables expiring user tokens for their app.
|
||||||
|
|
||||||
Enabling expiring user tokens for existing {% data variables.product.prodname_github_app %}s requires sending users through the OAuth flow to re-issue new user tokens that will expire in 8 hours and making a request with the refresh token to get a new access token and refresh token. For more information, see "[Identifying and authorizing users for GitHub Apps](/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/)."
|
Enabling expiring user tokens for existing {% data variables.product.prodname_github_apps %} requires sending users through the OAuth flow to re-issue new user tokens that will expire in 8 hours and making a request with the refresh token to get a new access token and refresh token. For more information, see "[Identifying and authorizing users for GitHub Apps](/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/)."
|
||||||
|
|
||||||
{% ifversion fpt or ghes > 3.1 or ghae-next %}
|
{% ifversion fpt or ghes > 3.1 or ghae-next %}
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ topics:
|
|||||||
---
|
---
|
||||||
Apps on {% data variables.product.prodname_dotcom %} allow you to automate and improve your workflow. You can build apps to improve your workflow.{% ifversion fpt %} You can also share or sell apps in [{% data variables.product.prodname_marketplace %}](https://github.com/marketplace). To learn how to list an app on {% data variables.product.prodname_marketplace %}, see "[Getting started with GitHub Marketplace](/marketplace/getting-started/)."{% endif %}
|
Apps on {% data variables.product.prodname_dotcom %} allow you to automate and improve your workflow. You can build apps to improve your workflow.{% ifversion fpt %} You can also share or sell apps in [{% data variables.product.prodname_marketplace %}](https://github.com/marketplace). To learn how to list an app on {% data variables.product.prodname_marketplace %}, see "[Getting started with GitHub Marketplace](/marketplace/getting-started/)."{% endif %}
|
||||||
|
|
||||||
{% data reusables.marketplace.github_apps_preferred %}, but GitHub supports both {% data variables.product.prodname_oauth_app %}s and {% data variables.product.prodname_github_apps %}. For information on choosing a type of app, see "[Differences between GitHub Apps and OAuth Apps](/developers/apps/differences-between-github-apps-and-oauth-apps)."
|
{% data reusables.marketplace.github_apps_preferred %}, but GitHub supports both {% data variables.product.prodname_oauth_apps %} and {% data variables.product.prodname_github_apps %}. For information on choosing a type of app, see "[Differences between GitHub Apps and OAuth Apps](/developers/apps/differences-between-github-apps-and-oauth-apps)."
|
||||||
|
|
||||||
{% data reusables.apps.general-apps-restrictions %}
|
{% data reusables.apps.general-apps-restrictions %}
|
||||||
|
|
||||||
@@ -49,7 +49,7 @@ Keep these ideas in mind when creating {% data variables.product.prodname_github
|
|||||||
|
|
||||||
To begin developing {% data variables.product.prodname_github_apps %}, start with "[Creating a {% data variables.product.prodname_github_app %}](/apps/building-github-apps/creating-a-github-app/)."{% ifversion fpt %} To learn how to use {% data variables.product.prodname_github_app %} Manifests, which allow people to create preconfigured {% data variables.product.prodname_github_apps %}, see "[Creating {% data variables.product.prodname_github_apps %} from a manifest](/apps/building-github-apps/creating-github-apps-from-a-manifest/)."{% endif %}
|
To begin developing {% data variables.product.prodname_github_apps %}, start with "[Creating a {% data variables.product.prodname_github_app %}](/apps/building-github-apps/creating-a-github-app/)."{% ifversion fpt %} To learn how to use {% data variables.product.prodname_github_app %} Manifests, which allow people to create preconfigured {% data variables.product.prodname_github_apps %}, see "[Creating {% data variables.product.prodname_github_apps %} from a manifest](/apps/building-github-apps/creating-github-apps-from-a-manifest/)."{% endif %}
|
||||||
|
|
||||||
## About {% data variables.product.prodname_oauth_app %}s
|
## About {% data variables.product.prodname_oauth_apps %}
|
||||||
|
|
||||||
OAuth2 is a protocol that lets external applications request authorization to private details in a user's {% data variables.product.prodname_dotcom %} account without accessing their password. This is preferred over Basic Authentication because tokens can be limited to specific types of data and can be revoked by users at any time.
|
OAuth2 is a protocol that lets external applications request authorization to private details in a user's {% data variables.product.prodname_dotcom %} account without accessing their password. This is preferred over Basic Authentication because tokens can be limited to specific types of data and can be revoked by users at any time.
|
||||||
|
|
||||||
@@ -57,19 +57,19 @@ OAuth2 is a protocol that lets external applications request authorization to pr
|
|||||||
|
|
||||||
An {% data variables.product.prodname_oauth_app %} uses {% data variables.product.prodname_dotcom %} as an identity provider to authenticate as the user who grants access to the app. This means when a user grants an {% data variables.product.prodname_oauth_app %} access, they grant permissions to _all_ repositories they have access to in their account, and also to any organizations they belong to that haven't blocked third-party access.
|
An {% data variables.product.prodname_oauth_app %} uses {% data variables.product.prodname_dotcom %} as an identity provider to authenticate as the user who grants access to the app. This means when a user grants an {% data variables.product.prodname_oauth_app %} access, they grant permissions to _all_ repositories they have access to in their account, and also to any organizations they belong to that haven't blocked third-party access.
|
||||||
|
|
||||||
Building an {% data variables.product.prodname_oauth_app %} is a good option if you are creating more complex processes than a simple script can handle. Note that {% data variables.product.prodname_oauth_app %}s are applications that need to be hosted somewhere.
|
Building an {% data variables.product.prodname_oauth_app %} is a good option if you are creating more complex processes than a simple script can handle. Note that {% data variables.product.prodname_oauth_apps %} are applications that need to be hosted somewhere.
|
||||||
|
|
||||||
Keep these ideas in mind when creating {% data variables.product.prodname_oauth_app %}s:
|
Keep these ideas in mind when creating {% data variables.product.prodname_oauth_apps %}:
|
||||||
|
|
||||||
{% ifversion fpt %}
|
{% ifversion fpt %}
|
||||||
* {% data reusables.apps.maximum-oauth-apps-allowed %} {% endif %}
|
* {% data reusables.apps.maximum-oauth-apps-allowed %} {% endif %}
|
||||||
* An {% data variables.product.prodname_oauth_app %} should always act as the authenticated {% data variables.product.prodname_dotcom %} user across all of {% data variables.product.prodname_dotcom %} (for example, when providing user notifications).
|
* An {% data variables.product.prodname_oauth_app %} should always act as the authenticated {% data variables.product.prodname_dotcom %} user across all of {% data variables.product.prodname_dotcom %} (for example, when providing user notifications).
|
||||||
* An {% data variables.product.prodname_oauth_app %} can be used as an identity provider by enabling a "Login with {% data variables.product.prodname_dotcom %}" for the authenticated user.
|
* An {% data variables.product.prodname_oauth_app %} can be used as an identity provider by enabling a "Login with {% data variables.product.prodname_dotcom %}" for the authenticated user.
|
||||||
* Don't build an {% data variables.product.prodname_oauth_app %} if you want your application to act on a single repository. With the `repo` OAuth scope, {% data variables.product.prodname_oauth_app %}s can act on _all_ of the authenticated user's repositories.
|
* Don't build an {% data variables.product.prodname_oauth_app %} if you want your application to act on a single repository. With the `repo` OAuth scope, {% data variables.product.prodname_oauth_apps %} can act on _all_ of the authenticated user's repositories.
|
||||||
* Don't build an {% data variables.product.prodname_oauth_app %} to act as an application for your team or company. {% data variables.product.prodname_oauth_app %}s authenticate as a single user, so if one person creates an {% data variables.product.prodname_oauth_app %} for a company to use, and then they leave the company, no one else will have access to it.{% ifversion fpt %}
|
* Don't build an {% data variables.product.prodname_oauth_app %} to act as an application for your team or company. {% data variables.product.prodname_oauth_apps %} authenticate as a single user, so if one person creates an {% data variables.product.prodname_oauth_app %} for a company to use, and then they leave the company, no one else will have access to it.{% ifversion fpt %}
|
||||||
* {% data reusables.apps.oauth-apps-restrictions %}{% endif %}
|
* {% data reusables.apps.oauth-apps-restrictions %}{% endif %}
|
||||||
|
|
||||||
For more on {% data variables.product.prodname_oauth_app %}s, see "[Creating an {% data variables.product.prodname_oauth_app %}](/apps/building-oauth-apps/creating-an-oauth-app/)" and "[Registering your app](/rest/guides/basics-of-authentication#registering-your-app)."
|
For more on {% data variables.product.prodname_oauth_apps %}, see "[Creating an {% data variables.product.prodname_oauth_app %}](/apps/building-oauth-apps/creating-an-oauth-app/)" and "[Registering your app](/rest/guides/basics-of-authentication#registering-your-app)."
|
||||||
|
|
||||||
## Personal access tokens
|
## Personal access tokens
|
||||||
|
|
||||||
@@ -87,7 +87,7 @@ Keep these ideas in mind when using personal access tokens:
|
|||||||
|
|
||||||
## Determining which integration to build
|
## Determining which integration to build
|
||||||
|
|
||||||
Before you get started creating integrations, you need to determine the best way to access, authenticate, and interact with the {% data variables.product.prodname_dotcom %} APIs. The following image offers some questions to ask yourself when deciding whether to use personal access tokens, {% data variables.product.prodname_github_apps %}, or {% data variables.product.prodname_oauth_app %}s for your integration.
|
Before you get started creating integrations, you need to determine the best way to access, authenticate, and interact with the {% data variables.product.prodname_dotcom %} APIs. The following image offers some questions to ask yourself when deciding whether to use personal access tokens, {% data variables.product.prodname_github_apps %}, or {% data variables.product.prodname_oauth_apps %} for your integration.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: Activating optional features for apps
|
title: Activating optional features for apps
|
||||||
intro: 'You can test new optional features for your {% data variables.product.prodname_github_apps %} and {% data variables.product.prodname_oauth_app %}s.'
|
intro: 'You can test new optional features for your {% data variables.product.prodname_github_apps %} and {% data variables.product.prodname_oauth_apps %}.'
|
||||||
redirect_from:
|
redirect_from:
|
||||||
- /developers/apps/activating-beta-features-for-apps
|
- /developers/apps/activating-beta-features-for-apps
|
||||||
- /developers/apps/activating-optional-features-for-apps
|
- /developers/apps/activating-optional-features-for-apps
|
||||||
@@ -25,7 +25,7 @@ shortTitle: Activate optional features
|
|||||||
3. Select the {% data variables.product.prodname_github_app %} you want to enable {% ifversion ghes < 3.1 %} a beta {% else %} an optional {% endif %} feature for.
|
3. Select the {% data variables.product.prodname_github_app %} you want to enable {% ifversion ghes < 3.1 %} a beta {% else %} an optional {% endif %} feature for.
|
||||||
{% data reusables.apps.optional_feature_activation %}
|
{% data reusables.apps.optional_feature_activation %}
|
||||||
|
|
||||||
## Activating {% ifversion ghes < 3.1 %} beta {% else %} optional {% endif %} features for {% data variables.product.prodname_oauth_app %}s
|
## Activating {% ifversion ghes < 3.1 %} beta {% else %} optional {% endif %} features for {% data variables.product.prodname_oauth_apps %}
|
||||||
|
|
||||||
{% data reusables.user-settings.access_settings %}
|
{% data reusables.user-settings.access_settings %}
|
||||||
{% data reusables.user-settings.developer_settings %}
|
{% data reusables.user-settings.developer_settings %}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: Differences between GitHub Apps and OAuth Apps
|
title: Differences between GitHub Apps and OAuth Apps
|
||||||
intro: 'Understanding the differences between {% data variables.product.prodname_github_app %}s and {% data variables.product.prodname_oauth_app %}s will help you decide which app you want to create. An {% data variables.product.prodname_oauth_app %} acts as a GitHub user, whereas a {% data variables.product.prodname_github_app %} uses its own identity when installed on an organization or on repositories within an organization.'
|
intro: 'Understanding the differences between {% data variables.product.prodname_github_apps %} and {% data variables.product.prodname_oauth_apps %} will help you decide which app you want to create. An {% data variables.product.prodname_oauth_app %} acts as a GitHub user, whereas a {% data variables.product.prodname_github_app %} uses its own identity when installed on an organization or on repositories within an organization.'
|
||||||
redirect_from:
|
redirect_from:
|
||||||
- /early-access/integrations/integrations-vs-oauth-applications/
|
- /early-access/integrations/integrations-vs-oauth-applications/
|
||||||
- /apps/building-integrations/setting-up-a-new-integration/about-choosing-an-integration-type/
|
- /apps/building-integrations/setting-up-a-new-integration/about-choosing-an-integration-type/
|
||||||
@@ -62,7 +62,7 @@ An _authorized_ OAuth App has access to all of the user's or organization owner'
|
|||||||
| Installation tokens expire after a predefined amount of time (currently 1 hour). | OAuth tokens remain active until they're revoked by the customer. |
|
| Installation tokens expire after a predefined amount of time (currently 1 hour). | OAuth tokens remain active until they're revoked by the customer. |
|
||||||
| {% data reusables.apps.api-rate-limits-non-ghec %}{% ifversion fpt %} Higher rate limits apply for {% data variables.product.prodname_ghe_cloud %}. For more information, see "[Rate limits for GitHub Apps](/developers/apps/rate-limits-for-github-apps)."{% endif %} | OAuth tokens use the user's rate limit of 5,000 requests per hour. |
|
| {% data reusables.apps.api-rate-limits-non-ghec %}{% ifversion fpt %} Higher rate limits apply for {% data variables.product.prodname_ghe_cloud %}. For more information, see "[Rate limits for GitHub Apps](/developers/apps/rate-limits-for-github-apps)."{% endif %} | OAuth tokens use the user's rate limit of 5,000 requests per hour. |
|
||||||
| Rate limit increases can be granted both at the GitHub Apps level (affecting all installations) and at the individual installation level. | Rate limit increases are granted per OAuth App. Every token granted to that OAuth App gets the increased limit. |{% ifversion fpt or ghes > 2.21 or ghae %}
|
| Rate limit increases can be granted both at the GitHub Apps level (affecting all installations) and at the individual installation level. | Rate limit increases are granted per OAuth App. Every token granted to that OAuth App gets the increased limit. |{% ifversion fpt or ghes > 2.21 or ghae %}
|
||||||
| {% data variables.product.prodname_github_app %}s can authenticate on behalf of the user, which is called user-to-server requests. The flow to authorize is the same as the OAuth App authorization flow. User-to-server tokens can expire and be renewed with a refresh token. For more information, see "[Refreshing user-to-server access tokens](/apps/building-github-apps/refreshing-user-to-server-access-tokens/)" and "[Identifying and authorizing users for GitHub Apps](/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/)." | The OAuth flow used by {% data variables.product.prodname_oauth_app %}s authorizes an {% data variables.product.prodname_oauth_app %} on behalf of the user. This is the same flow used in {% data variables.product.prodname_github_app %} user-to-server authorization. |{% endif %}
|
| {% data variables.product.prodname_github_apps %} can authenticate on behalf of the user, which is called user-to-server requests. The flow to authorize is the same as the OAuth App authorization flow. User-to-server tokens can expire and be renewed with a refresh token. For more information, see "[Refreshing user-to-server access tokens](/apps/building-github-apps/refreshing-user-to-server-access-tokens/)" and "[Identifying and authorizing users for GitHub Apps](/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/)." | The OAuth flow used by {% data variables.product.prodname_oauth_apps %} authorizes an {% data variables.product.prodname_oauth_app %} on behalf of the user. This is the same flow used in {% data variables.product.prodname_github_app %} user-to-server authorization. |{% endif %}
|
||||||
|
|
||||||
## Requesting permission levels for resources
|
## Requesting permission levels for resources
|
||||||
|
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ These guidelines assume that you have a registered OAuth App{% ifversion fpt %}
|
|||||||
|
|
||||||
While the majority of [REST API](/rest) endpoints and [GraphQL](/graphql) queries are available to GitHub Apps today, we are still in the process of enabling some endpoints. Review the [available REST endpoints](/rest/overview/endpoints-available-for-github-apps) to ensure that the endpoints you need are compatible with GitHub Apps. Note that some of the API endpoints enabled for GitHub Apps allow the app to act on behalf of the user. See "[User-to-server requests](/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#user-to-server-requests)" for a list of endpoints that allow a GitHub App to authenticate as a user.
|
While the majority of [REST API](/rest) endpoints and [GraphQL](/graphql) queries are available to GitHub Apps today, we are still in the process of enabling some endpoints. Review the [available REST endpoints](/rest/overview/endpoints-available-for-github-apps) to ensure that the endpoints you need are compatible with GitHub Apps. Note that some of the API endpoints enabled for GitHub Apps allow the app to act on behalf of the user. See "[User-to-server requests](/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#user-to-server-requests)" for a list of endpoints that allow a GitHub App to authenticate as a user.
|
||||||
|
|
||||||
We recommend reviewing the list of API endpoints you need as early as possible. Please let Support know if there is an endpoint you require that is not yet enabled for {% data variables.product.prodname_github_app %}s.
|
We recommend reviewing the list of API endpoints you need as early as possible. Please let Support know if there is an endpoint you require that is not yet enabled for {% data variables.product.prodname_github_apps %}.
|
||||||
|
|
||||||
### Design to stay within API rate limits
|
### Design to stay within API rate limits
|
||||||
|
|
||||||
@@ -100,4 +100,4 @@ Once your GitHub App has been installed on a repository, you should remove any u
|
|||||||
|
|
||||||
### Encourage users to revoke access to your OAuth app
|
### Encourage users to revoke access to your OAuth app
|
||||||
|
|
||||||
As your GitHub App installation base grows, consider encouraging your users to [revoke access](/articles/authorizing-oauth-apps/) to the legacy OAuth integration.
|
As your GitHub App installation base grows, consider encouraging your users to revoke access to the legacy OAuth integration. For more information, see [Authorizing OAuth Apps](/github/authenticating-to-github/keeping-your-account-and-data-secure/authorizing-oauth-apps)
|
||||||
|
|||||||
@@ -57,8 +57,8 @@ If your app is already published and you're a verified publisher, then you can p
|
|||||||
|
|
||||||
To publish a paid app (or an app that offers a paid plan), you must also meet the following requirements:
|
To publish a paid app (or an app that offers a paid plan), you must also meet the following requirements:
|
||||||
|
|
||||||
- {% data variables.product.prodname_github_app %}s should have a minimum of 100 installations.
|
- {% data variables.product.prodname_github_apps %} should have a minimum of 100 installations.
|
||||||
- {% data variables.product.prodname_oauth_app %}s should have a minimum of 200 users.
|
- {% data variables.product.prodname_oauth_apps %} should have a minimum of 200 users.
|
||||||
- All paid apps must handle {% data variables.product.prodname_marketplace %} purchase events for new purchases, upgrades, downgrades, cancellations, and free trials. For more information, see "[Billing requirements for paid apps](#billing-requirements-for-paid-apps)" below.
|
- All paid apps must handle {% data variables.product.prodname_marketplace %} purchase events for new purchases, upgrades, downgrades, cancellations, and free trials. For more information, see "[Billing requirements for paid apps](#billing-requirements-for-paid-apps)" below.
|
||||||
|
|
||||||
When you are ready to publish the app on {% data variables.product.prodname_marketplace %} you must request verification for the app listing.
|
When you are ready to publish the app on {% data variables.product.prodname_marketplace %} you must request verification for the app listing.
|
||||||
|
|||||||
@@ -30,11 +30,11 @@ To publish apps with free plans, you only need to meet the general requirements
|
|||||||
|
|
||||||
### New to apps?
|
### New to apps?
|
||||||
|
|
||||||
If you're interested in creating an app for {% data variables.product.prodname_marketplace %}, but you're new to {% data variables.product.prodname_github_apps %} or {% data variables.product.prodname_oauth_app %}s, see "[Building {% data variables.product.prodname_github_apps %}](/developers/apps/building-github-apps)" or "[Building {% data variables.product.prodname_oauth_app %}s](/developers/apps/building-oauth-apps)."
|
If you're interested in creating an app for {% data variables.product.prodname_marketplace %}, but you're new to {% data variables.product.prodname_github_apps %} or {% data variables.product.prodname_oauth_apps %}, see "[Building {% data variables.product.prodname_github_apps %}](/developers/apps/building-github-apps)" or "[Building {% data variables.product.prodname_oauth_apps %}](/developers/apps/building-oauth-apps)."
|
||||||
|
|
||||||
### GitHub Apps vs. OAuth Apps
|
### {% data variables.product.prodname_github_apps %} vs. {% data variables.product.prodname_oauth_apps %}
|
||||||
|
|
||||||
{% data reusables.marketplace.github_apps_preferred %}, although you can list both OAuth and {% data variables.product.prodname_github_app %}s in {% data variables.product.prodname_marketplace %}. For more information, see "[Differences between {% data variables.product.prodname_github_apps %} and {% data variables.product.prodname_oauth_app %}s](/apps/differences-between-apps/)" and "[Migrating {% data variables.product.prodname_oauth_app %}s to {% data variables.product.prodname_github_apps %}](/apps/migrating-oauth-apps-to-github-apps/)."
|
{% data reusables.marketplace.github_apps_preferred %}, although you can list both OAuth and {% data variables.product.prodname_github_apps %} in {% data variables.product.prodname_marketplace %}. For more information, see "[Differences between {% data variables.product.prodname_github_apps %} and {% data variables.product.prodname_oauth_apps %}](/apps/differences-between-apps/)" and "[Migrating {% data variables.product.prodname_oauth_apps %} to {% data variables.product.prodname_github_apps %}](/apps/migrating-oauth-apps-to-github-apps/)."
|
||||||
|
|
||||||
## Publishing an app to {% data variables.product.prodname_marketplace %} overview
|
## Publishing an app to {% data variables.product.prodname_marketplace %} overview
|
||||||
|
|
||||||
|
|||||||
@@ -70,4 +70,4 @@ Please [contact us](https://github.com/contact?form%5Bsubject%5D=GitHub+Services
|
|||||||
As a high-level overview, the process of migration typically involves:
|
As a high-level overview, the process of migration typically involves:
|
||||||
- Identifying how and where your product is using GitHub Services.
|
- Identifying how and where your product is using GitHub Services.
|
||||||
- Identifying the corresponding webhook events you need to configure in order to move to plain webhooks.
|
- Identifying the corresponding webhook events you need to configure in order to move to plain webhooks.
|
||||||
- Implementing the design using either [{% data variables.product.prodname_oauth_app %}s](/apps/building-oauth-apps/) or [{% data variables.product.prodname_github_app %}s. {% data variables.product.prodname_github_app %}s](/apps/building-github-apps/) are preferred. To learn more about why {% data variables.product.prodname_github_app %}s are preferred, see "[Reasons for switching to {% data variables.product.prodname_github_app %}s](/apps/migrating-oauth-apps-to-github-apps/#reasons-for-switching-to-github-apps)."
|
- Implementing the design using either [{% data variables.product.prodname_oauth_apps %}](/apps/building-oauth-apps/) or [{% data variables.product.prodname_github_apps %}. {% data variables.product.prodname_github_apps %}](/apps/building-github-apps/) are preferred. To learn more about why {% data variables.product.prodname_github_apps %} are preferred, see "[Reasons for switching to {% data variables.product.prodname_github_apps %}](/apps/migrating-oauth-apps-to-github-apps/#reasons-for-switching-to-github-apps)."
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ versions:
|
|||||||
topics:
|
topics:
|
||||||
- Webhooks
|
- Webhooks
|
||||||
---
|
---
|
||||||
Webhooks allow you to build or set up integrations, such as [{% data variables.product.prodname_github_app %}s](/apps/building-github-apps/) or [{% data variables.product.prodname_oauth_app %}s](/apps/building-oauth-apps/), which subscribe to certain events on GitHub.com. When one of those events is triggered, we'll send a HTTP POST payload to the webhook's configured URL. Webhooks can be used to update an external issue tracker, trigger CI builds, update a backup mirror, or even deploy to your production server. You're only limited by your imagination.
|
Webhooks allow you to build or set up integrations, such as [{% data variables.product.prodname_github_apps %}](/apps/building-github-apps/) or [{% data variables.product.prodname_oauth_apps %}](/apps/building-oauth-apps/), which subscribe to certain events on GitHub.com. When one of those events is triggered, we'll send a HTTP POST payload to the webhook's configured URL. Webhooks can be used to update an external issue tracker, trigger CI builds, update a backup mirror, or even deploy to your production server. You're only limited by your imagination.
|
||||||
|
|
||||||
Webhooks can be installed on{% ifversion ghes or ghae %} [{% data variables.product.prodname_enterprise %}](/rest/reference/enterprise-admin#global-webhooks/),{% endif %} an [organization][org-hooks], a specific [repository][repo-hooks], or a {% data variables.product.prodname_github_app %}. Once installed, the webhook will be sent each time one or more subscribed events occurs.
|
Webhooks can be installed on{% ifversion ghes or ghae %} [{% data variables.product.prodname_enterprise %}](/rest/reference/enterprise-admin#global-webhooks/),{% endif %} an [organization][org-hooks], a specific [repository][repo-hooks], or a {% data variables.product.prodname_github_app %}. Once installed, the webhook will be sent each time one or more subscribed events occurs.
|
||||||
|
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ Also, the `User-Agent` for the requests will have the prefix `GitHub-Hookshot/`.
|
|||||||
|
|
||||||
- Repository webhooks only receive payloads for the `created` and `completed` event types in a repository
|
- Repository webhooks only receive payloads for the `created` and `completed` event types in a repository
|
||||||
- Organization webhooks only receive payloads for the `created` and `completed` event types in repositories
|
- Organization webhooks only receive payloads for the `created` and `completed` event types in repositories
|
||||||
- {% data variables.product.prodname_github_app %}s with the `checks:read` permission receive payloads for the `created` and `completed` events that occur in the repository where the app is installed. The app must have the `checks:write` permission to receive the `rerequested` and `requested_action` event types. The `rerequested` and `requested_action` event type payloads are only sent to the {% data variables.product.prodname_github_app %} being requested. {% data variables.product.prodname_github_app %}s with the `checks:write` are automatically subscribed to this webhook event.
|
- {% data variables.product.prodname_github_apps %} with the `checks:read` permission receive payloads for the `created` and `completed` events that occur in the repository where the app is installed. The app must have the `checks:write` permission to receive the `rerequested` and `requested_action` event types. The `rerequested` and `requested_action` event type payloads are only sent to the {% data variables.product.prodname_github_app %} being requested. {% data variables.product.prodname_github_apps %} with the `checks:write` are automatically subscribed to this webhook event.
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -133,7 +133,7 @@ Also, the `User-Agent` for the requests will have the prefix `GitHub-Hookshot/`.
|
|||||||
|
|
||||||
- Repository webhooks only receive payloads for the `completed` event types in a repository
|
- Repository webhooks only receive payloads for the `completed` event types in a repository
|
||||||
- Organization webhooks only receive payloads for the `completed` event types in repositories
|
- Organization webhooks only receive payloads for the `completed` event types in repositories
|
||||||
- {% data variables.product.prodname_github_app %}s with the `checks:read` permission receive payloads for the `created` and `completed` events that occur in the repository where the app is installed. The app must have the `checks:write` permission to receive the `requested` and `rerequested` event types. The `requested` and `rerequested` event type payloads are only sent to the {% data variables.product.prodname_github_app %} being requested. {% data variables.product.prodname_github_app %}s with the `checks:write` are automatically subscribed to this webhook event.
|
- {% data variables.product.prodname_github_apps %} with the `checks:read` permission receive payloads for the `created` and `completed` events that occur in the repository where the app is installed. The app must have the `checks:write` permission to receive the `requested` and `rerequested` event types. The `requested` and `rerequested` event type payloads are only sent to the {% data variables.product.prodname_github_app %} being requested. {% data variables.product.prodname_github_apps %} with the `checks:write` are automatically subscribed to this webhook event.
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -156,7 +156,7 @@ Also, the `User-Agent` for the requests will have the prefix `GitHub-Hookshot/`.
|
|||||||
|
|
||||||
- Repository webhooks
|
- Repository webhooks
|
||||||
- Organization webhooks
|
- Organization webhooks
|
||||||
- {% data variables.product.prodname_github_app %}s with the `security_events :read` permission
|
- {% data variables.product.prodname_github_apps %} with the `security_events :read` permission
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -178,7 +178,7 @@ Also, the `User-Agent` for the requests will have the prefix `GitHub-Hookshot/`.
|
|||||||
|
|
||||||
- Repository webhooks
|
- Repository webhooks
|
||||||
- Organization webhooks
|
- Organization webhooks
|
||||||
- {% data variables.product.prodname_github_app %}s with the `contents` permission
|
- {% data variables.product.prodname_github_apps %} with the `contents` permission
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -201,7 +201,7 @@ Webhook events are triggered based on the specificity of the domain you register
|
|||||||
|
|
||||||
### Availability
|
### Availability
|
||||||
|
|
||||||
- {% data variables.product.prodname_github_app %}s with the `content_references:write` permission
|
- {% data variables.product.prodname_github_apps %} with the `content_references:write` permission
|
||||||
|
|
||||||
### Webhook payload example
|
### Webhook payload example
|
||||||
|
|
||||||
@@ -221,7 +221,7 @@ Webhook events are triggered based on the specificity of the domain you register
|
|||||||
|
|
||||||
- Repository webhooks
|
- Repository webhooks
|
||||||
- Organization webhooks
|
- Organization webhooks
|
||||||
- {% data variables.product.prodname_github_app %}s with the `contents` permission
|
- {% data variables.product.prodname_github_apps %} with the `contents` permission
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -250,7 +250,7 @@ Webhook events are triggered based on the specificity of the domain you register
|
|||||||
|
|
||||||
- Repository webhooks
|
- Repository webhooks
|
||||||
- Organization webhooks
|
- Organization webhooks
|
||||||
- {% data variables.product.prodname_github_app %}s with the `contents` permission
|
- {% data variables.product.prodname_github_apps %} with the `contents` permission
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -293,7 +293,7 @@ Webhook events are triggered based on the specificity of the domain you register
|
|||||||
|
|
||||||
- Repository webhooks
|
- Repository webhooks
|
||||||
- Organization webhooks
|
- Organization webhooks
|
||||||
- {% data variables.product.prodname_github_app %}s with the `deployments` permission
|
- {% data variables.product.prodname_github_apps %} with the `deployments` permission
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -318,7 +318,7 @@ Key | Type | Description
|
|||||||
|
|
||||||
- Repository webhooks
|
- Repository webhooks
|
||||||
- Organization webhooks
|
- Organization webhooks
|
||||||
- {% data variables.product.prodname_github_app %}s with the `deployments` permission
|
- {% data variables.product.prodname_github_apps %} with the `deployments` permission
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -349,7 +349,7 @@ Activity related to a discussion. For more information, see the "[Using the Grap
|
|||||||
|
|
||||||
- Repository webhooks
|
- Repository webhooks
|
||||||
- Organization webhooks
|
- Organization webhooks
|
||||||
- {% data variables.product.prodname_github_app %}s with the `discussions` permission
|
- {% data variables.product.prodname_github_apps %} with the `discussions` permission
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -375,7 +375,7 @@ Activity related to a comment in a discussion. For more information, see "[Using
|
|||||||
|
|
||||||
- Repository webhooks
|
- Repository webhooks
|
||||||
- Organization webhooks
|
- Organization webhooks
|
||||||
- {% data variables.product.prodname_github_app %}s with the `discussions` permission
|
- {% data variables.product.prodname_github_apps %} with the `discussions` permission
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -423,7 +423,7 @@ Key | Type | Description
|
|||||||
|
|
||||||
- Repository webhooks
|
- Repository webhooks
|
||||||
- Organization webhooks
|
- Organization webhooks
|
||||||
- {% data variables.product.prodname_github_app %}s with the `contents` permission
|
- {% data variables.product.prodname_github_apps %} with the `contents` permission
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -441,11 +441,11 @@ Key | Type | Description
|
|||||||
|
|
||||||
When someone revokes their authorization of a {% data variables.product.prodname_github_app %}, this event occurs. A {% data variables.product.prodname_github_app %} receives this webhook by default and cannot unsubscribe from this event.
|
When someone revokes their authorization of a {% data variables.product.prodname_github_app %}, this event occurs. A {% data variables.product.prodname_github_app %} receives this webhook by default and cannot unsubscribe from this event.
|
||||||
|
|
||||||
{% data reusables.webhooks.authorization_event %} For details about user-to-server requests, which require {% data variables.product.prodname_github_app %} authorization, see "[Identifying and authorizing users for {% data variables.product.prodname_github_app %}s](/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/)."
|
{% data reusables.webhooks.authorization_event %} For details about user-to-server requests, which require {% data variables.product.prodname_github_app %} authorization, see "[Identifying and authorizing users for {% data variables.product.prodname_github_apps %}](/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/)."
|
||||||
|
|
||||||
### Availability
|
### Availability
|
||||||
|
|
||||||
- {% data variables.product.prodname_github_app %}s
|
- {% data variables.product.prodname_github_apps %}
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -466,7 +466,7 @@ Key | Type | Description
|
|||||||
|
|
||||||
- Repository webhooks
|
- Repository webhooks
|
||||||
- Organization webhooks
|
- Organization webhooks
|
||||||
- {% data variables.product.prodname_github_app %}s with the `contents` permission
|
- {% data variables.product.prodname_github_apps %} with the `contents` permission
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -492,7 +492,7 @@ Key | Type | Description
|
|||||||
|
|
||||||
### Availability
|
### Availability
|
||||||
|
|
||||||
- {% data variables.product.prodname_github_app %}s
|
- {% data variables.product.prodname_github_apps %}
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -516,7 +516,7 @@ Key | Type | Description
|
|||||||
|
|
||||||
### Availability
|
### Availability
|
||||||
|
|
||||||
- {% data variables.product.prodname_github_app %}s
|
- {% data variables.product.prodname_github_apps %}
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -536,7 +536,7 @@ Key | Type | Description
|
|||||||
|
|
||||||
- Repository webhooks
|
- Repository webhooks
|
||||||
- Organization webhooks
|
- Organization webhooks
|
||||||
- {% data variables.product.prodname_github_app %}s with the `issues` permission
|
- {% data variables.product.prodname_github_apps %} with the `issues` permission
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -559,7 +559,7 @@ Key | Type | Description
|
|||||||
|
|
||||||
- Repository webhooks
|
- Repository webhooks
|
||||||
- Organization webhooks
|
- Organization webhooks
|
||||||
- {% data variables.product.prodname_github_app %}s with the `issues` permission
|
- {% data variables.product.prodname_github_apps %} with the `issues` permission
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -582,7 +582,7 @@ Key | Type | Description
|
|||||||
|
|
||||||
- Repository webhooks
|
- Repository webhooks
|
||||||
- Organization webhooks
|
- Organization webhooks
|
||||||
- {% data variables.product.prodname_github_app %}s with the `metadata` permission
|
- {% data variables.product.prodname_github_apps %} with the `metadata` permission
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -609,7 +609,7 @@ Activity related to a GitHub Marketplace purchase. {% data reusables.webhooks.ac
|
|||||||
|
|
||||||
### Availability
|
### Availability
|
||||||
|
|
||||||
- {% data variables.product.prodname_github_app %}s
|
- {% data variables.product.prodname_github_apps %}
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -633,7 +633,7 @@ For a detailed description of this payload and the payload for each type of `act
|
|||||||
|
|
||||||
- Repository webhooks
|
- Repository webhooks
|
||||||
- Organization webhooks
|
- Organization webhooks
|
||||||
- {% data variables.product.prodname_github_app %}s with the `members` permission
|
- {% data variables.product.prodname_github_apps %} with the `members` permission
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -655,7 +655,7 @@ For a detailed description of this payload and the payload for each type of `act
|
|||||||
### Availability
|
### Availability
|
||||||
|
|
||||||
- Organization webhooks
|
- Organization webhooks
|
||||||
- {% data variables.product.prodname_github_app %}s with the `members` permission
|
- {% data variables.product.prodname_github_apps %} with the `members` permission
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -700,7 +700,7 @@ Key | Type | Description
|
|||||||
|
|
||||||
- Repository webhooks
|
- Repository webhooks
|
||||||
- Organization webhooks
|
- Organization webhooks
|
||||||
- {% data variables.product.prodname_github_app %}s with the `pull_requests` permission
|
- {% data variables.product.prodname_github_apps %} with the `pull_requests` permission
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -723,7 +723,7 @@ Key | Type | Description
|
|||||||
{% ifversion ghes or ghae %}
|
{% ifversion ghes or ghae %}
|
||||||
- GitHub Enterprise webhooks only receive `created` and `deleted` events. For more information, "[Global webhooks](/rest/reference/enterprise-admin#global-webhooks/).{% endif %}
|
- GitHub Enterprise webhooks only receive `created` and `deleted` events. For more information, "[Global webhooks](/rest/reference/enterprise-admin#global-webhooks/).{% endif %}
|
||||||
- Organization webhooks only receive the `deleted`, `added`, `removed`, `renamed`, and `invited` events
|
- Organization webhooks only receive the `deleted`, `added`, `removed`, `renamed`, and `invited` events
|
||||||
- {% data variables.product.prodname_github_app %}s with the `members` permission
|
- {% data variables.product.prodname_github_apps %} with the `members` permission
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -749,7 +749,7 @@ Key | Type | Description
|
|||||||
### Availability
|
### Availability
|
||||||
|
|
||||||
- Organization webhooks
|
- Organization webhooks
|
||||||
- {% data variables.product.prodname_github_app %}s with the `organization_administration` permission
|
- {% data variables.product.prodname_github_apps %} with the `organization_administration` permission
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -798,7 +798,7 @@ Activity related to {% data variables.product.prodname_registry %}. {% data reus
|
|||||||
|
|
||||||
- Repository webhooks
|
- Repository webhooks
|
||||||
- Organization webhooks
|
- Organization webhooks
|
||||||
- {% data variables.product.prodname_github_app %}s with the `pages` permission
|
- {% data variables.product.prodname_github_apps %} with the `pages` permission
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -823,7 +823,7 @@ Key | Type | Description
|
|||||||
|
|
||||||
- Repository webhooks
|
- Repository webhooks
|
||||||
- Organization webhooks
|
- Organization webhooks
|
||||||
- {% data variables.product.prodname_github_app %}s receive a ping event with an `app_id` used to register the app
|
- {% data variables.product.prodname_github_apps %} receive a ping event with an `app_id` used to register the app
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -849,7 +849,7 @@ Key | Type | Description
|
|||||||
|
|
||||||
- Repository webhooks
|
- Repository webhooks
|
||||||
- Organization webhooks
|
- Organization webhooks
|
||||||
- {% data variables.product.prodname_github_app %}s with the `repository_projects` or `organization_projects` permission
|
- {% data variables.product.prodname_github_apps %} with the `repository_projects` or `organization_projects` permission
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -871,7 +871,7 @@ Key | Type | Description
|
|||||||
|
|
||||||
- Repository webhooks
|
- Repository webhooks
|
||||||
- Organization webhooks
|
- Organization webhooks
|
||||||
- {% data variables.product.prodname_github_app %}s with the `repository_projects` or `organization_projects` permission
|
- {% data variables.product.prodname_github_apps %} with the `repository_projects` or `organization_projects` permission
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -893,7 +893,7 @@ Key | Type | Description
|
|||||||
|
|
||||||
- Repository webhooks
|
- Repository webhooks
|
||||||
- Organization webhooks
|
- Organization webhooks
|
||||||
- {% data variables.product.prodname_github_app %}s with the `repository_projects` or `organization_projects` permission
|
- {% data variables.product.prodname_github_apps %} with the `repository_projects` or `organization_projects` permission
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -915,7 +915,7 @@ Key | Type | Description
|
|||||||
|
|
||||||
- Repository webhooks
|
- Repository webhooks
|
||||||
- Organization webhooks
|
- Organization webhooks
|
||||||
- {% data variables.product.prodname_github_app %}s with the `metadata` permission
|
- {% data variables.product.prodname_github_apps %} with the `metadata` permission
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -938,7 +938,7 @@ Key | Type | Description
|
|||||||
|
|
||||||
- Repository webhooks
|
- Repository webhooks
|
||||||
- Organization webhooks
|
- Organization webhooks
|
||||||
- {% data variables.product.prodname_github_app %}s with the `pull_requests` permission
|
- {% data variables.product.prodname_github_apps %} with the `pull_requests` permission
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -963,7 +963,7 @@ Deliveries for `review_requested` and `review_request_removed` events will have
|
|||||||
|
|
||||||
- Repository webhooks
|
- Repository webhooks
|
||||||
- Organization webhooks
|
- Organization webhooks
|
||||||
- {% data variables.product.prodname_github_app %}s with the `pull_requests` permission
|
- {% data variables.product.prodname_github_apps %} with the `pull_requests` permission
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -985,7 +985,7 @@ Deliveries for `review_requested` and `review_request_removed` events will have
|
|||||||
|
|
||||||
- Repository webhooks
|
- Repository webhooks
|
||||||
- Organization webhooks
|
- Organization webhooks
|
||||||
- {% data variables.product.prodname_github_app %}s with the `pull_requests` permission
|
- {% data variables.product.prodname_github_apps %} with the `pull_requests` permission
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -1014,7 +1014,7 @@ Deliveries for `review_requested` and `review_request_removed` events will have
|
|||||||
|
|
||||||
- Repository webhooks
|
- Repository webhooks
|
||||||
- Organization webhooks
|
- Organization webhooks
|
||||||
- {% data variables.product.prodname_github_app %}s with the `contents` permission
|
- {% data variables.product.prodname_github_apps %} with the `contents` permission
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -1053,7 +1053,7 @@ Key | Type | Description
|
|||||||
|
|
||||||
- Repository webhooks
|
- Repository webhooks
|
||||||
- Organization webhooks
|
- Organization webhooks
|
||||||
- {% data variables.product.prodname_github_app %}s with the `contents` permission
|
- {% data variables.product.prodname_github_apps %} with the `contents` permission
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -1075,7 +1075,7 @@ This event occurs when a {% data variables.product.prodname_github_app %} sends
|
|||||||
|
|
||||||
### Availability
|
### Availability
|
||||||
|
|
||||||
- {% data variables.product.prodname_github_app %}s must have the `contents` permission to receive this webhook.
|
- {% data variables.product.prodname_github_apps %} must have the `contents` permission to receive this webhook.
|
||||||
|
|
||||||
### Webhook payload example
|
### Webhook payload example
|
||||||
|
|
||||||
@@ -1090,7 +1090,7 @@ This event occurs when a {% data variables.product.prodname_github_app %} sends
|
|||||||
|
|
||||||
- Repository webhooks receive all event types except `deleted`
|
- Repository webhooks receive all event types except `deleted`
|
||||||
- Organization webhooks
|
- Organization webhooks
|
||||||
- {% data variables.product.prodname_github_app %}s with the `metadata` permission receive all event types except `deleted`
|
- {% data variables.product.prodname_github_apps %} with the `metadata` permission receive all event types except `deleted`
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -1159,7 +1159,7 @@ Key | Type | Description
|
|||||||
|
|
||||||
- Repository webhooks
|
- Repository webhooks
|
||||||
- Organization webhooks
|
- Organization webhooks
|
||||||
- {% data variables.product.prodname_github_app %}s with the `secret_scanning_alerts:read` permission
|
- {% data variables.product.prodname_github_apps %} with the `secret_scanning_alerts:read` permission
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -1182,7 +1182,7 @@ Activity related to a security advisory. A security advisory provides informatio
|
|||||||
|
|
||||||
### Availability
|
### Availability
|
||||||
|
|
||||||
- {% data variables.product.prodname_github_app %}s with the `security_events` permission
|
- {% data variables.product.prodname_github_apps %} with the `security_events` permission
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -1250,7 +1250,7 @@ You can only create a sponsorship webhook on {% data variables.product.prodname_
|
|||||||
|
|
||||||
- Repository webhooks
|
- Repository webhooks
|
||||||
- Organization webhooks
|
- Organization webhooks
|
||||||
- {% data variables.product.prodname_github_app %}s with the `statuses` permission
|
- {% data variables.product.prodname_github_apps %} with the `statuses` permission
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -1278,7 +1278,7 @@ Key | Type | Description
|
|||||||
### Availability
|
### Availability
|
||||||
|
|
||||||
- Organization webhooks
|
- Organization webhooks
|
||||||
- {% data variables.product.prodname_github_app %}s with the `members` permission
|
- {% data variables.product.prodname_github_apps %} with the `members` permission
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -1309,7 +1309,7 @@ Key | Type | Description
|
|||||||
|
|
||||||
- Repository webhooks
|
- Repository webhooks
|
||||||
- Organization webhooks
|
- Organization webhooks
|
||||||
- {% data variables.product.prodname_github_app %}s with the `members` permission
|
- {% data variables.product.prodname_github_apps %} with the `members` permission
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -1350,7 +1350,7 @@ The event’s actor is the [user](/rest/reference/users) who starred a repositor
|
|||||||
|
|
||||||
- Repository webhooks
|
- Repository webhooks
|
||||||
- Organization webhooks
|
- Organization webhooks
|
||||||
- {% data variables.product.prodname_github_app %}s with the `metadata` permission
|
- {% data variables.product.prodname_github_apps %} with the `metadata` permission
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
@@ -1371,7 +1371,7 @@ This event occurs when someone triggers a workflow run on GitHub or sends a `POS
|
|||||||
|
|
||||||
### Availability
|
### Availability
|
||||||
|
|
||||||
- {% data variables.product.prodname_github_app %}s must have the `contents` permission to receive this webhook.
|
- {% data variables.product.prodname_github_apps %} must have the `contents` permission to receive this webhook.
|
||||||
|
|
||||||
### Webhook payload example
|
### Webhook payload example
|
||||||
|
|
||||||
@@ -1385,7 +1385,7 @@ When a {% data variables.product.prodname_actions %} workflow run is requested o
|
|||||||
|
|
||||||
### Availability
|
### Availability
|
||||||
|
|
||||||
- {% data variables.product.prodname_github_app %}s with the `actions` or `contents` permissions.
|
- {% data variables.product.prodname_github_apps %} with the `actions` or `contents` permissions.
|
||||||
|
|
||||||
### Webhook payload object
|
### Webhook payload object
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ versions:
|
|||||||
|
|
||||||
{% data reusables.discussions.beta %}
|
{% data reusables.discussions.beta %}
|
||||||
|
|
||||||
## About discussions
|
## About {% data variables.product.prodname_discussions %}
|
||||||
|
|
||||||
With {% data variables.product.prodname_discussions %}, the community for your project can create and participate in conversations within the project's repository. Discussions empower a project's maintainers, contributors, and visitors to gather and accomplish the following goals in a central location, without third-party tools.
|
With {% data variables.product.prodname_discussions %}, the community for your project can create and participate in conversations within the project's repository. Discussions empower a project's maintainers, contributors, and visitors to gather and accomplish the following goals in a central location, without third-party tools.
|
||||||
|
|
||||||
@@ -19,7 +19,7 @@ With {% data variables.product.prodname_discussions %}, the community for your p
|
|||||||
|
|
||||||
You don't need to close a discussion like you close an issue or a pull request.
|
You don't need to close a discussion like you close an issue or a pull request.
|
||||||
|
|
||||||
If a repository administrator or project maintainer enables discussions for a repository, anyone who visits the repository can create and participate in discussions for the repository. Repository administrators and project maintainers can manage discussions and discussion categories in a repository, and pin discussions to increase the visibility of the discussion. Moderators and collaborators can mark comments as answers, lock discussions, and convert issues to discussions. For more information, see "[Repository permission levels for an organization](/organizations/managing-access-to-your-organizations-repositories/repository-permission-levels-for-an-organization)."
|
If a repository administrator or project maintainer enables {% data variables.product.prodname_discussions %} for a repository, anyone who visits the repository can create and participate in discussions for the repository. Repository administrators and project maintainers can manage discussions and discussion categories in a repository, and pin discussions to increase the visibility of the discussion. Moderators and collaborators can mark comments as answers, lock discussions, and convert issues to discussions. For more information, see "[Repository permission levels for an organization](/organizations/managing-access-to-your-organizations-repositories/repository-permission-levels-for-an-organization)."
|
||||||
|
|
||||||
For more information about management of discussions for your repository, see "[Managing discussions in your repository](/discussions/managing-discussions-for-your-community/managing-discussions-in-your-repository)."
|
For more information about management of discussions for your repository, see "[Managing discussions in your repository](/discussions/managing-discussions-for-your-community/managing-discussions-in-your-repository)."
|
||||||
|
|
||||||
@@ -37,7 +37,7 @@ For more information, see "[Managing categories for discussions in your reposito
|
|||||||
|
|
||||||
{% data reusables.discussions.you-can-label-discussions %}
|
{% data reusables.discussions.you-can-label-discussions %}
|
||||||
|
|
||||||
## Best practices for discussions
|
## Best practices for {% data variables.product.prodname_discussions %}
|
||||||
|
|
||||||
As a community member or maintainer, start a discussion to ask a question or discuss information that affects the community. For more information, see "[Collaborating with maintainers using discussions](/discussions/collaborating-with-your-community-using-discussions/collaborating-with-maintainers-using-discussions)."
|
As a community member or maintainer, start a discussion to ask a question or discuss information that affects the community. For more information, see "[Collaborating with maintainers using discussions](/discussions/collaborating-with-your-community-using-discussions/collaborating-with-maintainers-using-discussions)."
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ versions:
|
|||||||
|
|
||||||
{% data reusables.discussions.beta %}
|
{% data reusables.discussions.beta %}
|
||||||
|
|
||||||
## About collaboration with maintainers using discussions
|
## About collaboration with maintainers using {% data variables.product.prodname_discussions %}
|
||||||
|
|
||||||
{% data reusables.discussions.about-discussions %} If you use or contribute to a project, you can start a discussion to make suggestions and engage with maintainers and community members about your plans, questions, ideas, and feedback. For more information, see "[About discussions](/discussions/collaborating-with-your-community-using-discussions/about-discussions)."
|
{% data reusables.discussions.about-discussions %} If you use or contribute to a project, you can start a discussion to make suggestions and engage with maintainers and community members about your plans, questions, ideas, and feedback. For more information, see "[About discussions](/discussions/collaborating-with-your-community-using-discussions/about-discussions)."
|
||||||
|
|
||||||
@@ -25,7 +25,7 @@ For more information about participation in discussions, see "[Participating in
|
|||||||
|
|
||||||
## Prerequisites
|
## Prerequisites
|
||||||
|
|
||||||
To collaborate with maintainers using discussions, a repository administrator or project maintainer must enable discussions for the repository. For more information, see "[Enabling or disabling discussions for a repository](/github/administering-a-repository/enabling-or-disabling-github-discussions-for-a-repository)."
|
To collaborate with maintainers in discussions, a repository administrator or project maintainer must enable {% data variables.product.prodname_discussions %} for the repository. For more information, see "[Enabling or disabling {% data variables.product.prodname_discussions %} for a repository](/github/administering-a-repository/enabling-or-disabling-github-discussions-for-a-repository)."
|
||||||
|
|
||||||
## Starting a discussion
|
## Starting a discussion
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ You can block users and report disruptive content to maintain a safe and pleasan
|
|||||||
|
|
||||||
## Prerequisites
|
## Prerequisites
|
||||||
|
|
||||||
Discussions must be enabled for the repository for you to participate in a discussion in the repository. For more information, see "[Enabling or disabling discussions for a repository](/github/administering-a-repository/enabling-or-disabling-github-discussions-for-a-repository)."
|
{% data variables.product.prodname_discussions %} must be enabled for the repository for you to participate in a discussion in the repository. For more information, see "[Enabling or disabling {% data variables.product.prodname_discussions %} for a repository](/github/administering-a-repository/enabling-or-disabling-github-discussions-for-a-repository)."
|
||||||
|
|
||||||
## Creating a discussion
|
## Creating a discussion
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ For more information about opening an issue and cross-referencing a discussion,
|
|||||||
|
|
||||||
You can create and participate in discussions, issues, and pull requests, depending on the type of conversation you'd like to have.
|
You can create and participate in discussions, issues, and pull requests, depending on the type of conversation you'd like to have.
|
||||||
|
|
||||||
You can use {% data variables.product.prodname_discussions %} to discuss big picture ideas, brainstorm, and spike out a project's specific details before committing it to an issue, which can then be scoped. Discussions are useful for teams if:
|
You can use {% data variables.product.prodname_discussions %} to discuss big picture ideas, brainstorm, and spike out a project's specific details before committing it to an issue, which can then be scoped. {% data variables.product.prodname_discussions %} is useful for teams if:
|
||||||
- You are in the discovery phase of a project and are still learning which director your team wants to go in
|
- You are in the discovery phase of a project and are still learning which director your team wants to go in
|
||||||
- You want to collect feedback from a wider community about a project
|
- You want to collect feedback from a wider community about a project
|
||||||
- You want to keep bug fixes, feature requests, and general conversations separate
|
- You want to keep bug fixes, feature requests, and general conversations separate
|
||||||
|
|||||||
@@ -12,13 +12,13 @@ shortTitle: Grant higher permissions
|
|||||||
|
|
||||||
The most helpful contributors for the past 30 days are highlighted on the {% data variables.product.prodname_discussions %} dashboard, based on how many comments were marked as answers by other community members. Helpful contributors can help drive a healthy community and moderate and guide the community space in addition to maintainers.
|
The most helpful contributors for the past 30 days are highlighted on the {% data variables.product.prodname_discussions %} dashboard, based on how many comments were marked as answers by other community members. Helpful contributors can help drive a healthy community and moderate and guide the community space in addition to maintainers.
|
||||||
|
|
||||||
## Step 1: Audit your discussions top contributors
|
## Step 1: Audit your {% data variables.product.prodname_discussions %} top contributors
|
||||||
|
|
||||||
{% data reusables.repositories.navigate-to-repo %}
|
{% data reusables.repositories.navigate-to-repo %}
|
||||||
{% data reusables.discussions.discussions-tab %}
|
{% data reusables.discussions.discussions-tab %}
|
||||||
1. Compare the list of contributors with their access permissions to see who qualifies to moderate the discussion.
|
1. Compare the list of contributors with their access permissions to see who qualifies to moderate the discussion.
|
||||||
|
|
||||||
## Step 2: Review permission levels for discussions
|
## Step 2: Review permission levels for {% data variables.product.prodname_discussions %}
|
||||||
|
|
||||||
People with triage permissions for a repository can help moderate a project's discussions by marking comments as answers, locking discussions that are not longer useful or are damaging to the community, and converting issues to discussions when an idea is still in the early stages of development. For more information, see "[Moderating discussions](/discussions/managing-discussions-for-your-community/moderating-discussions)."
|
People with triage permissions for a repository can help moderate a project's discussions by marking comments as answers, locking discussions that are not longer useful or are damaging to the community, and converting issues to discussions when an idea is still in the early stages of development. For more information, see "[Moderating discussions](/discussions/managing-discussions-for-your-community/moderating-discussions)."
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
title: Managing discussions for your community
|
title: Managing discussions for your community
|
||||||
shortTitle: Managing discussions
|
shortTitle: Managing discussions
|
||||||
intro: 'You can enable and configure discussions for your repository, and you can use tools on {% data variables.product.product_name %} to moderate conversations among community members.'
|
intro: 'You can enable and configure {% data variables.product.prodname_discussions %} for your repository, and you can use tools on {% data variables.product.product_name %} to moderate conversations among community members.'
|
||||||
versions:
|
versions:
|
||||||
fpt: '*'
|
fpt: '*'
|
||||||
children:
|
children:
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
title: Managing categories for discussions in your repository
|
title: Managing categories for discussions in your repository
|
||||||
intro: 'You can categorize the discussions in your repository to organize conversations for your community members, and you can choose a format for each category.'
|
intro: 'You can categorize the discussions in your repository to organize conversations for your community members, and you can choose a format for each category.'
|
||||||
permissions: Repository administrators and people with write or greater access to a repository can enable discussions in the repository.
|
permissions: Repository administrators and people with write or greater access to a repository can manage categories for discussions in the repository.
|
||||||
versions:
|
versions:
|
||||||
fpt: '*'
|
fpt: '*'
|
||||||
shortTitle: Manage categories
|
shortTitle: Manage categories
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ For more information on facilitating a healthy discussion, see "[Moderating comm
|
|||||||
|
|
||||||
## Prerequisites
|
## Prerequisites
|
||||||
|
|
||||||
To manage discussions in a repository, discussions must be enabled for the repository. For more information, see "[Enabling or disabling discussions for a repository](/github/administering-a-repository/enabling-or-disabling-github-discussions-for-a-repository)."
|
To manage discussions in a repository, {% data variables.product.prodname_discussions %} must be enabled for the repository. For more information, see "[Enabling or disabling {% data variables.product.prodname_discussions %} for a repository](/github/administering-a-repository/enabling-or-disabling-github-discussions-for-a-repository)."
|
||||||
|
|
||||||
## Changing the category for a discussion
|
## Changing the category for a discussion
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: Moderating discussions
|
title: Moderating discussions
|
||||||
intro: 'You can promote healthy collaboration by marking comments as answers, locking or unlocking discussions, and converting issues to discussions. and editing or deleting comments, discussions, and categories that don''t align with your community''s code of conduct to discussions.'
|
intro: 'You can promote healthy collaboration by marking comments as answers, locking or unlocking discussions, converting issues to discussions, and editing or deleting comments, discussions, and categories that don''t align with your community''s code of conduct.'
|
||||||
permissions: People with triage access to a repository can moderate discussions in the repository.
|
permissions: People with triage access to a repository can moderate discussions in the repository.
|
||||||
versions:
|
versions:
|
||||||
fpt: '*'
|
fpt: '*'
|
||||||
|
|||||||
@@ -19,21 +19,21 @@ Discussions give a space for more collaborative conversations by connecting and
|
|||||||
|
|
||||||
Repository owners and people with write access can enable {% data variables.product.prodname_discussions %} for a community on their public and private repositories.
|
Repository owners and people with write access can enable {% data variables.product.prodname_discussions %} for a community on their public and private repositories.
|
||||||
|
|
||||||
When you first enable a {% data variables.product.prodname_discussions %}, you will be invited to configure a welcome post.
|
When you first enable {% data variables.product.prodname_discussions %}, you will be invited to configure a welcome post.
|
||||||
|
|
||||||
{% data reusables.repositories.navigate-to-repo %}
|
{% data reusables.repositories.navigate-to-repo %}
|
||||||
1. Under your repository name, click {% octicon "gear" aria-label="The gear icon" %}
|
1. Under your repository name, click {% octicon "gear" aria-label="The gear icon" %}
|
||||||
**Settings**.
|
**Settings**.
|
||||||

|

|
||||||
1. Under "Features", click **Set up discussions**.
|
1. Under "Features", click **Set up discussions**.
|
||||||

|

|
||||||
1. Under "Start a new discussion," edit the template to align with the resources and tone you want to set for your community.
|
1. Under "Start a new discussion," edit the template to align with the resources and tone you want to set for your community.
|
||||||
1. Click **Start discussion**.
|
1. Click **Start discussion**.
|
||||||

|

|
||||||
|
|
||||||
## Welcoming contributions to your discussions
|
## Welcoming contributions to your discussions
|
||||||
|
|
||||||
You can welcome your community and introduce a new way to communicate in a repository by creating a welcome post and pin the post to your {% data variables.product.prodname_discussions %} page. Pinning and locking discussions helps people know that a post is meant as an announcement. You can use announcements as a way to link people to more resources and offer guidance for opening discussions in your community. For more information about pinning a discussion, see "[Managing discussions in your repository](/discussions/managing-discussions-for-your-community/managing-discussions-in-your-repository#pinning-a-discussion)."
|
You can welcome your community and introduce a new way to communicate in a repository by creating a welcome post and pinning the post to your {% data variables.product.prodname_discussions %} page. Pinning and locking discussions helps people know that a post is meant as an announcement. You can use announcements as a way to link people to more resources and offer guidance for opening discussions in your community. For more information about pinning a discussion, see "[Managing discussions in your repository](/discussions/managing-discussions-for-your-community/managing-discussions-in-your-repository#pinning-a-discussion)."
|
||||||
|
|
||||||
|
|
||||||
## Setting up community guidelines for contributors
|
## Setting up community guidelines for contributors
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ To re-enable Universal Links, long-press any {% data variables.product.product_n
|
|||||||
|
|
||||||
If you find a bug in {% data variables.product.prodname_mobile %}, you can email us at <a href="mailto:mobilefeedback@github.com">mobilefeedback@github.com</a>.
|
If you find a bug in {% data variables.product.prodname_mobile %}, you can email us at <a href="mailto:mobilefeedback@github.com">mobilefeedback@github.com</a>.
|
||||||
|
|
||||||
You can submit feature requests or other feedback for {% data variables.product.prodname_mobile %} [on GitHub Discussions](https://github.com/github/feedback/discussions?discussions_q=category%3A%22Mobile+Feedback%22).
|
You can submit feature requests or other feedback for {% data variables.product.prodname_mobile %} on [{% data variables.product.prodname_discussions %}](https://github.com/github/feedback/discussions?discussions_q=category%3A%22Mobile+Feedback%22).
|
||||||
|
|
||||||
## Opting out of beta releases for iOS
|
## Opting out of beta releases for iOS
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
---
|
---
|
||||||
title: Enabling or disabling GitHub Discussions for a repository
|
title: Enabling or disabling GitHub Discussions for a repository
|
||||||
intro: 'You can use discussions in a repository as a place for your community to have conversations, ask questions, and post answers without scoping work in an issue.'
|
intro: 'You can use {% data variables.product.prodname_discussions %} in a repository as a place for your community to have conversations, ask questions, and post answers without scoping work in an issue.'
|
||||||
product: '{% data reusables.gated-features.discussions %}'
|
product: '{% data reusables.gated-features.discussions %}'
|
||||||
permissions: People with admin permissions to a repository can enable discussions for the repository.
|
permissions: People with admin permissions to a repository can enable {% data variables.product.prodname_discussions %} for the repository.
|
||||||
versions:
|
versions:
|
||||||
fpt: '*'
|
fpt: '*'
|
||||||
topics:
|
topics:
|
||||||
@@ -13,7 +13,7 @@ shortTitle: Discussions
|
|||||||
---
|
---
|
||||||
{% data reusables.discussions.beta %}
|
{% data reusables.discussions.beta %}
|
||||||
|
|
||||||
## Enabling or disabling discussions for your repository
|
## Enabling or disabling {% data variables.product.prodname_discussions %} for your repository
|
||||||
|
|
||||||
{% data reusables.discussions.enabling-or-disabling-github-discussions-for-your-repository %}
|
{% data reusables.discussions.enabling-or-disabling-github-discussions-for-your-repository %}
|
||||||
1. To disable discussions, under "Features", unselect **Discussions**.
|
1. To disable discussions, under "Features", unselect **Discussions**.
|
||||||
|
|||||||
@@ -0,0 +1,53 @@
|
|||||||
|
---
|
||||||
|
title: Authorizing GitHub Apps
|
||||||
|
intro: 'You can authorize a {% data variables.product.prodname_github_app %} to allow an application to retrieve information about your {% data variables.product.prodname_dotcom %} account and, in some circumstances, to make changes on {% data variables.product.prodname_dotcom %} on your behalf.'
|
||||||
|
versions:
|
||||||
|
fpt: '*'
|
||||||
|
ghes: '*'
|
||||||
|
ghae: '*'
|
||||||
|
topics:
|
||||||
|
- Identity
|
||||||
|
- Access management
|
||||||
|
---
|
||||||
|
|
||||||
|
Third-party applications that need to verify your {% data variables.product.prodname_dotcom %} identity, or interact with the data on {% data variables.product.prodname_dotcom %} on your behalf, can ask you to authorize the {% data variables.product.prodname_github_app %} to do so.
|
||||||
|
|
||||||
|
When authorizing the {% data variables.product.prodname_github_app %}, you should ensure you trust the application, review who it's developed by, and review the kinds of information the application wants to access.
|
||||||
|
|
||||||
|
During authorization, you'll be prompted to grant the {% data variables.product.prodname_github_app %} permission to:
|
||||||
|
* **Verify your {% data variables.product.prodname_dotcom %} identity**<br/>
|
||||||
|
When authorized, the {% data variables.product.prodname_github_app %} will be able to programmatically retrieve your public GitHub profile, as well as some private details (such as your email address), depending on the level of access requested.
|
||||||
|
* **Know which resources you can access**<br/>
|
||||||
|
When authorized, the {% data variables.product.prodname_github_app %} will be able to programmatically read the _private_ {% data variables.product.prodname_dotcom %} resources that you can access (such as private {% data variables.product.prodname_dotcom %} repositories) _where_ an installation of the {% data variables.product.prodname_github_app %} is also present. The application may use this, for example, so that it can show you an appropriate list of repositories.
|
||||||
|
* **Act on your behalf**<br/>
|
||||||
|
The application may need to perform tasks on {% data variables.product.prodname_dotcom %}, as you. This might include creating an issue, or commenting on a pull request. This ability to act on your behalf is limited to the {% data variables.product.prodname_dotcom %} resources where _both_ you and the {% data variables.product.prodname_github_app %} have access. In some cases, however, the application may never make any changes on your behalf.
|
||||||
|
|
||||||
|
## When does a {% data variables.product.prodname_github_app %} act on your behalf?
|
||||||
|
|
||||||
|
The situations in which a {% data variables.product.prodname_github_app %} acts on your behalf vary according to the purpose of the {% data variables.product.prodname_github_app %} and the context in which it is being used.
|
||||||
|
|
||||||
|
For example, an integrated development environment (IDE) may use a {% data variables.product.prodname_github_app %} to interact on your behalf in order to push changes you have authored through the IDE back to repositories on {% data variables.product.prodname_dotcom %}. The {% data variables.product.prodname_github_app %} will achieve this through a [user-to-server request](/get-started/quickstart/github-glossary#user-to-server-request).
|
||||||
|
|
||||||
|
When a {% data variables.product.prodname_github_app %} acts on your behalf in this way, this is identified on GitHub via a special icon that shows a small avatar for the {% data variables.product.prodname_github_app %} overlaid onto your own avatar, similar to the one shown below.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## To what extent can a {% data variables.product.prodname_github_app %} know which resources you can access and act on your behalf?
|
||||||
|
|
||||||
|
The extent to which a {% data variables.product.prodname_github_app %} can know which resources you can access and act on your behalf, after you have authorized it, is limited by:
|
||||||
|
|
||||||
|
* The organizations or repositories on which the app is installed
|
||||||
|
* The permissions the app has requested
|
||||||
|
* Your access to {% data variables.product.prodname_dotcom %} resources
|
||||||
|
|
||||||
|
Let's use an example to explain this.
|
||||||
|
|
||||||
|
{% data variables.product.prodname_dotcom %} user Alice logs into a third-party web application, ExampleApp, using their {% data variables.product.prodname_dotcom %} identity. During this process, Alice authorizes ExampleApp to perform actions on their behalf.
|
||||||
|
|
||||||
|
However, the activity ExampleApp is able to perform on Alice's behalf in {% data variables.product.prodname_dotcom %} is constrained by: the repositories on which ExampleApp is installed, the permissions ExampleApp has requested, and Alice's access to {% data variables.product.prodname_dotcom %} resources.
|
||||||
|
|
||||||
|
This means that, in order for ExampleApp to create an issue on Alice's behalf, in a repository called Repo A, all of the following must be true:
|
||||||
|
|
||||||
|
* ExampleApp's {% data variables.product.prodname_github_app %} requests write access to issues.
|
||||||
|
* A user having admin access for Repo A must have installed ExampleApp's {% data variables.product.prodname_github_app %} on Repo A.
|
||||||
|
* Alice must have read permission for Repo A. For information about which permissions are required to perform various activities, see "[Repository permission levels for an organization](/organizations/managing-access-to-your-organizations-repositories/repository-permission-levels-for-an-organization#repository-access-for-each-permission-level)."
|
||||||
@@ -26,7 +26,7 @@ When an {% data variables.product.prodname_oauth_app %} wants to identify you by
|
|||||||
|
|
||||||
## {% data variables.product.prodname_oauth_app %} access
|
## {% data variables.product.prodname_oauth_app %} access
|
||||||
|
|
||||||
{% data variables.product.prodname_oauth_app %}s can have *read* or *write* access to your {% data variables.product.product_name %} data.
|
{% data variables.product.prodname_oauth_apps %} can have *read* or *write* access to your {% data variables.product.product_name %} data.
|
||||||
|
|
||||||
- **Read access** only allows an app to *look at* your data.
|
- **Read access** only allows an app to *look at* your data.
|
||||||
- **Write access** allows an app to *change* your data.
|
- **Write access** allows an app to *change* your data.
|
||||||
@@ -41,7 +41,7 @@ When an {% data variables.product.prodname_oauth_app %} wants to identify you by
|
|||||||
|
|
||||||
*Scopes* are named groups of permissions that an {% data variables.product.prodname_oauth_app %} can request to access both public and non-public data.
|
*Scopes* are named groups of permissions that an {% data variables.product.prodname_oauth_app %} can request to access both public and non-public data.
|
||||||
|
|
||||||
When you want to use an {% data variables.product.prodname_oauth_app %} that integrates with {% data variables.product.product_name %}, that app lets you know what type of access to your data will be required. If you grant access to the app, then the app will be able to perform actions on your behalf, such as reading or modifying data. For example, if you want to use an app that requests `user:email` scope, the app will have read-only access to your private email addresses. For more information, see "[About scopes for {% data variables.product.prodname_oauth_app %}s](/apps/building-integrations/setting-up-and-registering-oauth-apps/about-scopes-for-oauth-apps)."
|
When you want to use an {% data variables.product.prodname_oauth_app %} that integrates with {% data variables.product.product_name %}, that app lets you know what type of access to your data will be required. If you grant access to the app, then the app will be able to perform actions on your behalf, such as reading or modifying data. For example, if you want to use an app that requests `user:email` scope, the app will have read-only access to your private email addresses. For more information, see "[About scopes for {% data variables.product.prodname_oauth_apps %}](/apps/building-integrations/setting-up-and-registering-oauth-apps/about-scopes-for-oauth-apps)."
|
||||||
|
|
||||||
{% tip %}
|
{% tip %}
|
||||||
|
|
||||||
@@ -53,7 +53,7 @@ When you want to use an {% data variables.product.prodname_oauth_app %} that int
|
|||||||
|
|
||||||
### Types of requested data
|
### Types of requested data
|
||||||
|
|
||||||
{% data variables.product.prodname_oauth_app %}s can request several types of data.
|
{% data variables.product.prodname_oauth_apps %} can request several types of data.
|
||||||
|
|
||||||
| Type of data | Description |
|
| Type of data | Description |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
@@ -69,23 +69,24 @@ When you want to use an {% data variables.product.prodname_oauth_app %} that int
|
|||||||
|
|
||||||
## Requesting updated permissions
|
## Requesting updated permissions
|
||||||
|
|
||||||
When {% data variables.product.prodname_oauth_app %}s request new access permissions, they will notify you of the differences between their current permissions and the new permissions.
|
When {% data variables.product.prodname_oauth_apps %} request new access permissions, they will notify you of the differences between their current permissions and the new permissions.
|
||||||
|
|
||||||
{% ifversion fpt %}
|
{% ifversion fpt %}
|
||||||
|
|
||||||
## {% data variables.product.prodname_oauth_app %}s and organizations
|
## {% data variables.product.prodname_oauth_apps %} and organizations
|
||||||
|
|
||||||
When you authorize an {% data variables.product.prodname_oauth_app %} for your personal user account, you'll also see how the authorization will affect each organization you're a member of.
|
When you authorize an {% data variables.product.prodname_oauth_app %} for your personal user account, you'll also see how the authorization will affect each organization you're a member of.
|
||||||
|
|
||||||
- **For organizations *with* {% data variables.product.prodname_oauth_app %} access restrictions, you can request that organization admins approve the application for use in that organization.** If the organization does not approve the application, then the application will only be able to access the organization's public resources. If you're an organization admin, you can [approve the application](/articles/approving-oauth-apps-for-your-organization) yourself.
|
- **For organizations *with* {% data variables.product.prodname_oauth_app %} access restrictions, you can request that organization admins approve the application for use in that organization.** If the organization does not approve the application, then the application will only be able to access the organization's public resources. If you're an organization admin, you can [approve the application](/articles/approving-oauth-apps-for-your-organization) yourself.
|
||||||
|
|
||||||
- **For organizations *without* {% data variables.product.prodname_oauth_app %} access restrictions, the application will automatically be authorized for access to that organization's resources.** For this reason, you should be careful about which {% data variables.product.prodname_oauth_app %}s you approve for access to your personal account resources as well as any organization resources.
|
- **For organizations *without* {% data variables.product.prodname_oauth_app %} access restrictions, the application will automatically be authorized for access to that organization's resources.** For this reason, you should be careful about which {% data variables.product.prodname_oauth_apps %} you approve for access to your personal account resources as well as any organization resources.
|
||||||
|
|
||||||
If you belong to any organizations that enforce SAML single sign-on, you must have an active SAML session for each organization each time you authorize an {% data variables.product.prodname_oauth_app %}.
|
If you belong to any organizations that enforce SAML single sign-on, you must have an active SAML session for each organization each time you authorize an {% data variables.product.prodname_oauth_app %}.
|
||||||
|
|
||||||
## Further reading
|
## Further reading
|
||||||
|
|
||||||
- "[About {% data variables.product.prodname_oauth_app %} access restrictions](/articles/about-oauth-app-access-restrictions)"
|
- "[About {% data variables.product.prodname_oauth_app %} access restrictions](/articles/about-oauth-app-access-restrictions)"
|
||||||
|
- "[Authorizing GitHub Apps](/github/authenticating-to-github/keeping-your-account-and-data-secure/authorizing-github-apps)"
|
||||||
- "[{% data variables.product.prodname_marketplace %} support](/articles/github-marketplace-support)"
|
- "[{% data variables.product.prodname_marketplace %} support](/articles/github-marketplace-support)"
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ Applications can have *read* or *write* access to your {% data variables.product
|
|||||||
|
|
||||||
*Scopes* are named groups of permissions that an application can request to access both public and non-public data.
|
*Scopes* are named groups of permissions that an application can request to access both public and non-public data.
|
||||||
|
|
||||||
When you want to use a third-party application that integrates with {% data variables.product.product_name %}, that application lets you know what type of access to your data will be required. If you grant access to the application, then the application will be able to perform actions on your behalf, such as reading or modifying data. For example, if you want to use an app that requests `user:email` scope, the app will have read-only access to your private email addresses. For more information, see "[About scopes for {% data variables.product.prodname_oauth_app %}s](/apps/building-integrations/setting-up-and-registering-oauth-apps/about-scopes-for-oauth-apps)."
|
When you want to use a third-party application that integrates with {% data variables.product.product_name %}, that application lets you know what type of access to your data will be required. If you grant access to the application, then the application will be able to perform actions on your behalf, such as reading or modifying data. For example, if you want to use an app that requests `user:email` scope, the app will have read-only access to your private email addresses. For more information, see "[About scopes for {% data variables.product.prodname_oauth_apps %}](/apps/building-integrations/setting-up-and-registering-oauth-apps/about-scopes-for-oauth-apps)."
|
||||||
|
|
||||||
{% tip %}
|
{% tip %}
|
||||||
|
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ children:
|
|||||||
- /reviewing-your-ssh-keys
|
- /reviewing-your-ssh-keys
|
||||||
- /reviewing-your-deploy-keys
|
- /reviewing-your-deploy-keys
|
||||||
- /authorizing-oauth-apps
|
- /authorizing-oauth-apps
|
||||||
|
- /authorizing-github-apps
|
||||||
- /reviewing-your-authorized-integrations
|
- /reviewing-your-authorized-integrations
|
||||||
- /connecting-with-third-party-applications
|
- /connecting-with-third-party-applications
|
||||||
- /reviewing-your-authorized-applications-oauth
|
- /reviewing-your-authorized-applications-oauth
|
||||||
|
|||||||
@@ -13,20 +13,20 @@ topics:
|
|||||||
- Access management
|
- Access management
|
||||||
shortTitle: Authorized integrations
|
shortTitle: Authorized integrations
|
||||||
---
|
---
|
||||||
## Reviewing your authorized {% data variables.product.prodname_oauth_app %}s
|
## Reviewing your authorized {% data variables.product.prodname_oauth_apps %}
|
||||||
|
|
||||||
{% data reusables.user_settings.access_settings %}
|
{% data reusables.user_settings.access_settings %}
|
||||||
{% data reusables.user_settings.access_applications %}
|
{% data reusables.user_settings.access_applications %}
|
||||||
{% data reusables.user_settings.access_authorized_oauth_apps %}
|
{% data reusables.user_settings.access_authorized_oauth_apps %}
|
||||||
{% data reusables.user_settings.review-oauth-apps %}
|
{% data reusables.user_settings.review-oauth-apps %}
|
||||||
|
|
||||||
## Reviewing your authorized {% data variables.product.prodname_github_app %}s
|
## Reviewing your authorized {% data variables.product.prodname_github_apps %}
|
||||||
|
|
||||||
{% data reusables.user_settings.access_settings %}
|
{% data reusables.user_settings.access_settings %}
|
||||||
{% data reusables.user_settings.access_applications %}
|
{% data reusables.user_settings.access_applications %}
|
||||||
3. Click the **Authorized {% data variables.product.prodname_github_app %}s** tab.
|
3. Click the **Authorized {% data variables.product.prodname_github_apps %}** tab.
|
||||||

|

|
||||||
3. Review the {% data variables.product.prodname_github_app %}s that have access to your account. For those that you don't recognize or that are out of date, click **Revoke**. To revoke all {% data variables.product.prodname_github_app %}s, click **Revoke all**.
|
3. Review the {% data variables.product.prodname_github_apps %} that have access to your account. For those that you don't recognize or that are out of date, click **Revoke**. To revoke all {% data variables.product.prodname_github_apps %}, click **Revoke all**.
|
||||||

|

|
||||||
|
|
||||||
## Further reading
|
## Further reading
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ The events listed in your security log are triggered by your actions. Actions ar
|
|||||||
| [`codespaces`](#codespaces-category-actions) | Contains all activities related to {% data variables.product.prodname_codespaces %}. For more information, see "[About {% data variables.product.prodname_codespaces %}](/github/developing-online-with-codespaces/about-codespaces)."
|
| [`codespaces`](#codespaces-category-actions) | Contains all activities related to {% data variables.product.prodname_codespaces %}. For more information, see "[About {% data variables.product.prodname_codespaces %}](/github/developing-online-with-codespaces/about-codespaces)."
|
||||||
| [`marketplace_agreement_signature`](#marketplace_agreement_signature-category-actions) | Contains all activities related to signing the {% data variables.product.prodname_marketplace %} Developer Agreement.
|
| [`marketplace_agreement_signature`](#marketplace_agreement_signature-category-actions) | Contains all activities related to signing the {% data variables.product.prodname_marketplace %} Developer Agreement.
|
||||||
| [`marketplace_listing`](#marketplace_listing-category-actions) | Contains all activities related to listing apps in {% data variables.product.prodname_marketplace %}.{% endif %}
|
| [`marketplace_listing`](#marketplace_listing-category-actions) | Contains all activities related to listing apps in {% data variables.product.prodname_marketplace %}.{% endif %}
|
||||||
| [`oauth_access`](#oauth_access-category-actions) | Contains all activities related to [{% data variables.product.prodname_oauth_app %}s](/articles/authorizing-oauth-apps) you've connected with.{% ifversion fpt %}
|
| [`oauth_access`](#oauth_access-category-actions) | Contains all activities related to [{% data variables.product.prodname_oauth_apps %}](/github/authenticating-to-github/keeping-your-account-and-data-secure/authorizing-oauth-apps) you've connected with.{% ifversion fpt %}
|
||||||
| [`payment_method`](#payment_method-category-actions) | Contains all activities related to paying for your {% data variables.product.prodname_dotcom %} subscription.{% endif %}
|
| [`payment_method`](#payment_method-category-actions) | Contains all activities related to paying for your {% data variables.product.prodname_dotcom %} subscription.{% endif %}
|
||||||
| [`profile_picture`](#profile_picture-category-actions) | Contains all activities related to your profile picture.
|
| [`profile_picture`](#profile_picture-category-actions) | Contains all activities related to your profile picture.
|
||||||
| [`project`](#project-category-actions) | Contains all activities related to project boards.
|
| [`project`](#project-category-actions) | Contains all activities related to project boards.
|
||||||
@@ -122,7 +122,7 @@ An overview of some of the most common actions that are recorded as events in th
|
|||||||
|
|
||||||
| Action | Description
|
| Action | Description
|
||||||
|------------------|-------------------
|
|------------------|-------------------
|
||||||
| `create` | Triggered when you [grant access to an {% data variables.product.prodname_oauth_app %}](/articles/authorizing-oauth-apps).
|
| `create` | Triggered when you [grant access to an {% data variables.product.prodname_oauth_app %}](/github/authenticating-to-github/keeping-your-account-and-data-secure/authorizing-oauth-apps).
|
||||||
| `destroy` | Triggered when you [revoke an {% data variables.product.prodname_oauth_app %}'s access to your account](/articles/reviewing-your-authorized-integrations).
|
| `destroy` | Triggered when you [revoke an {% data variables.product.prodname_oauth_app %}'s access to your account](/articles/reviewing-your-authorized-integrations).
|
||||||
|
|
||||||
{% ifversion fpt %}
|
{% ifversion fpt %}
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ You don't need to upload your public key to {% data variables.product.product_na
|
|||||||
{% ifversion fpt %}
|
{% ifversion fpt %}
|
||||||
## Signature verification for bots
|
## Signature verification for bots
|
||||||
|
|
||||||
Organizations and {% data variables.product.prodname_github_app %}s that require commit signing can use bots to sign commits. If a commit or tag has a bot signature that is cryptographically verifiable, {% data variables.product.product_name %} marks the commit or tag as verified.
|
Organizations and {% data variables.product.prodname_github_apps %} that require commit signing can use bots to sign commits. If a commit or tag has a bot signature that is cryptographically verifiable, {% data variables.product.product_name %} marks the commit or tag as verified.
|
||||||
|
|
||||||
Signature verification for bots will only work if the request is verified and authenticated as the {% data variables.product.prodname_github_app %} or bot and contains no custom author information, custom committer information, and no custom signature information, such as Commits API.
|
Signature verification for bots will only work if the request is verified and authenticated as the {% data variables.product.prodname_github_app %} or bot and contains no custom author information, custom committer information, and no custom signature information, such as Commits API.
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ There are two types of status checks on {% data variables.product.product_name %
|
|||||||
- Checks
|
- Checks
|
||||||
- Statuses
|
- Statuses
|
||||||
|
|
||||||
_Checks_ are different from _statuses_ in that they provide line annotations, more detailed messaging, and are only available for use with {% data variables.product.prodname_github_app %}s.
|
_Checks_ are different from _statuses_ in that they provide line annotations, more detailed messaging, and are only available for use with {% data variables.product.prodname_github_apps %}.
|
||||||
|
|
||||||
Organization owners and users with push access to a repository can create checks and statuses with {% data variables.product.product_name %}'s API. For more information, see "[Checks](/rest/reference/checks)" and "[Statuses](/rest/reference/repos#statuses)."
|
Organization owners and users with push access to a repository can create checks and statuses with {% data variables.product.product_name %}'s API. For more information, see "[Checks](/rest/reference/checks)" and "[Statuses](/rest/reference/repos#statuses)."
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ redirect_from:
|
|||||||
versions:
|
versions:
|
||||||
fpt: '*'
|
fpt: '*'
|
||||||
---
|
---
|
||||||
You can discover, browse, and install free and paid tools, including {% data variables.product.prodname_github_app %}s, {% data variables.product.prodname_oauth_app %}s, and {% data variables.product.prodname_actions %}, in [{% data variables.product.prodname_marketplace %}](https://github.com/marketplace).
|
You can discover, browse, and install free and paid tools, including {% data variables.product.prodname_github_apps %}, {% data variables.product.prodname_oauth_apps %}, and {% data variables.product.prodname_actions %}, in [{% data variables.product.prodname_marketplace %}](https://github.com/marketplace).
|
||||||
|
|
||||||
If you purchase a paid tool, you'll pay for your tool subscription with the same billing information you use to pay for your {% data variables.product.product_name %} subscription, and receive one bill on your regular billing date. For more information, see "[About billing for {% data variables.product.prodname_marketplace %}](/articles/about-billing-for-github-marketplace)."
|
If you purchase a paid tool, you'll pay for your tool subscription with the same billing information you use to pay for your {% data variables.product.product_name %} subscription, and receive one bill on your regular billing date. For more information, see "[About billing for {% data variables.product.prodname_marketplace %}](/articles/about-billing-for-github-marketplace)."
|
||||||
|
|
||||||
|
|||||||
@@ -7,19 +7,20 @@ redirect_from:
|
|||||||
versions:
|
versions:
|
||||||
fpt: '*'
|
fpt: '*'
|
||||||
---
|
---
|
||||||
You can install integrations in your personal account or organizations you own. You can also install {% data variables.product.prodname_github_app %}s from a third-party in a specific repository where you have admin permissions or which is owned by your organization.
|
You can install integrations in your personal account or organizations you own. You can also install {% data variables.product.prodname_github_apps %} from a third-party in a specific repository where you have admin permissions or which is owned by your organization.
|
||||||
|
|
||||||
## Differences between {% data variables.product.prodname_github_app %}s and {% data variables.product.prodname_oauth_app %}s
|
## Differences between {% data variables.product.prodname_github_apps %} and {% data variables.product.prodname_oauth_apps %}
|
||||||
|
|
||||||
Integrations can be {% data variables.product.prodname_github_app %}s, {% data variables.product.prodname_oauth_app %}s, or anything that utilizes {% data variables.product.product_name %} APIs or webhooks.
|
Integrations can be {% data variables.product.prodname_github_apps %}, {% data variables.product.prodname_oauth_apps %}, or anything that utilizes {% data variables.product.product_name %} APIs or webhooks.
|
||||||
|
|
||||||
{% data variables.product.prodname_github_app %}s offer granular permissions and request access to only what the app needs. {% data variables.product.prodname_github_app %}s also offer specific user-level permissions that each user must authorize individually when an app is installed or when the integrator changes the permissions requested by the app.
|
{% data variables.product.prodname_github_apps %} offer granular permissions and request access to only what the app needs. {% data variables.product.prodname_github_apps %} also offer specific user-level permissions that each user must authorize individually when an app is installed or when the integrator changes the permissions requested by the app.
|
||||||
|
|
||||||
For more information, see:
|
For more information, see:
|
||||||
- "[Differences between {% data variables.product.prodname_github_app %}s and {% data variables.product.prodname_oauth_app %}s](/apps/differences-between-apps/)"
|
- "[Differences between {% data variables.product.prodname_github_apps %} and {% data variables.product.prodname_oauth_apps %}](/apps/differences-between-apps/)"
|
||||||
- "[About apps](/apps/about-apps/)"
|
- "[About apps](/apps/about-apps/)"
|
||||||
- "[User-level permissions](/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#user-level-permissions)"
|
- "[User-level permissions](/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#user-level-permissions)"
|
||||||
- "[Authorizing {% data variables.product.prodname_oauth_app %}s](/articles/authorizing-oauth-apps/)"
|
- "[Authorizing {% data variables.product.prodname_oauth_apps %}](/github/authenticating-to-github/keeping-your-account-and-data-secure/authorizing-oauth-apps)"
|
||||||
|
- "[Authorizing {% data variables.product.prodname_github_apps %}](/github/authenticating-to-github/keeping-your-account-and-data-secure/authorizing-github-apps)"
|
||||||
- "[Reviewing your authorized integrations](/articles/reviewing-your-authorized-integrations/)"
|
- "[Reviewing your authorized integrations](/articles/reviewing-your-authorized-integrations/)"
|
||||||
|
|
||||||
You can install a preconfigured {% data variables.product.prodname_github_app %}, if the integrators or app creators have created their app with the {% data variables.product.prodname_github_app %} manifest flow. For information about how to run your {% data variables.product.prodname_github_app %} with automated configuration, contact the integrator or app creator.
|
You can install a preconfigured {% data variables.product.prodname_github_app %}, if the integrators or app creators have created their app with the {% data variables.product.prodname_github_app %} manifest flow. For information about how to run your {% data variables.product.prodname_github_app %} with automated configuration, contact the integrator or app creator.
|
||||||
@@ -30,10 +31,10 @@ You can create a {% data variables.product.prodname_github_app %} with simplifie
|
|||||||
|
|
||||||
You can find an integration to install or publish your own integration in {% data variables.product.prodname_marketplace %}.
|
You can find an integration to install or publish your own integration in {% data variables.product.prodname_marketplace %}.
|
||||||
|
|
||||||
[{% data variables.product.prodname_marketplace %}](https://github.com/marketplace) contains {% data variables.product.prodname_github_app %}s and {% data variables.product.prodname_oauth_app %}s. For more information on finding an integration or creating your own integration, see "[About {% data variables.product.prodname_marketplace %}](/articles/about-github-marketplace)."
|
[{% data variables.product.prodname_marketplace %}](https://github.com/marketplace) contains {% data variables.product.prodname_github_apps %} and {% data variables.product.prodname_oauth_apps %}. For more information on finding an integration or creating your own integration, see "[About {% data variables.product.prodname_marketplace %}](/articles/about-github-marketplace)."
|
||||||
|
|
||||||
## Integrations purchased directly from integrators
|
## Integrations purchased directly from integrators
|
||||||
|
|
||||||
You can also purchase some integrations directly from integrators. As an organization member, if you find a {% data variables.product.prodname_github_app %} that you'd like to use, you can request that an organization approve and install the app for the organization.
|
You can also purchase some integrations directly from integrators. As an organization member, if you find a {% data variables.product.prodname_github_app %} that you'd like to use, you can request that an organization approve and install the app for the organization.
|
||||||
|
|
||||||
If you have admin permissions for all organization-owned repositories the app is installed on, you can install {% data variables.product.prodname_github_app %}s with repository-level permissions without having to ask an organization owner to approve the app. When an integrator changes an app's permissions, if the permissions are for a repository only, organization owners and people with admin permissions to a repository with that app installed can review and accept the new permissions.
|
If you have admin permissions for all organization-owned repositories the app is installed on, you can install {% data variables.product.prodname_github_apps %} with repository-level permissions without having to ask an organization owner to approve the app. When an integrator changes an app's permissions, if the permissions are for a repository only, organization owners and people with admin permissions to a repository with that app installed can review and accept the new permissions.
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ If you use a third-party static analysis tool that can produce results as Static
|
|||||||
|
|
||||||
## Integrations with webhooks
|
## Integrations with webhooks
|
||||||
|
|
||||||
You can use {% data variables.product.prodname_code_scanning %} webhooks to build or set up integrations, such as [{% data variables.product.prodname_github_app %}s](/apps/building-github-apps/) or [{% data variables.product.prodname_oauth_app %}s](/apps/building-oauth-apps/), that subscribe to {% data variables.product.prodname_code_scanning %} events in your repository. For example, you could build an integration that creates an issue on {% data variables.product.product_name %} or sends you a Slack notification when a new {% data variables.product.prodname_code_scanning %} alert is added in your repository. For more information, see "[Creating webhooks](/developers/webhooks-and-events/creating-webhooks)" and "[Webhook events and payloads](/developers/webhooks-and-events/webhook-events-and-payloads#code_scanning_alert)."
|
You can use {% data variables.product.prodname_code_scanning %} webhooks to build or set up integrations, such as [{% data variables.product.prodname_github_apps %}](/apps/building-github-apps/) or [{% data variables.product.prodname_oauth_apps %}](/apps/building-oauth-apps/), that subscribe to {% data variables.product.prodname_code_scanning %} events in your repository. For example, you could build an integration that creates an issue on {% data variables.product.product_name %} or sends you a Slack notification when a new {% data variables.product.prodname_code_scanning %} alert is added in your repository. For more information, see "[Creating webhooks](/developers/webhooks-and-events/creating-webhooks)" and "[Webhook events and payloads](/developers/webhooks-and-events/webhook-events-and-payloads#code_scanning_alert)."
|
||||||
|
|
||||||
## Further reading
|
## Further reading
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
title: GitHub.com
|
title: GitHub
|
||||||
redirect_from:
|
redirect_from:
|
||||||
- /articles/
|
- /articles/
|
||||||
- /common-issues-and-questions/
|
- /common-issues-and-questions/
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ shortTitle: IAM for your enterprise
|
|||||||
---
|
---
|
||||||
## About identity and access management for your enterprise account
|
## About identity and access management for your enterprise account
|
||||||
|
|
||||||
{% data reusables.saml.dotcom-saml-explanation %} {% data reusables.saml.about-saml-enterprise-accounts %} For more information, see "[Enabling SAML single sign-on for organizations in your enterprise account](/github/setting-up-and-managing-your-enterprise/enabling-saml-single-sign-on-for-organizations-in-your-enterprise-account)."
|
{% data reusables.saml.dotcom-saml-explanation %} {% data reusables.saml.about-saml-enterprise-accounts %} For more information, see "[Enforcing SAML single sign-on for organizations in your enterprise account](/github/setting-up-and-managing-your-enterprise/configuring-identity-and-access-management-for-your-enterprise-account/enforcing-saml-single-sign-on-for-organizations-in-your-enterprise-account)."
|
||||||
|
|
||||||
After you enable SAML SSO, depending on the IdP you use, you may be able to enable additional identity and access management features. {% data reusables.scim.enterprise-account-scim %}
|
After you enable SAML SSO, depending on the IdP you use, you may be able to enable additional identity and access management features. {% data reusables.scim.enterprise-account-scim %}
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ shortTitle: Configure SAML SSO
|
|||||||
|
|
||||||
You can control access to your enterprise account in {% data variables.product.product_name %} and other web applications from one central interface by configuring the enterprise account to use SAML SSO with Okta, an Identity Provider (IdP).
|
You can control access to your enterprise account in {% data variables.product.product_name %} and other web applications from one central interface by configuring the enterprise account to use SAML SSO with Okta, an Identity Provider (IdP).
|
||||||
|
|
||||||
SAML SSO controls and secures access to enterprise account resources like organizations, repositories, issues, and pull requests. For more information, see "[Enabling SAML single sign-on for organizations in your enterprise account](/github/setting-up-and-managing-your-enterprise/configuring-identity-and-access-management-for-your-enterprise-account/enabling-saml-single-sign-on-for-organizations-in-your-enterprise-account)."
|
SAML SSO controls and secures access to enterprise account resources like organizations, repositories, issues, and pull requests. For more information, see "[Enforcing SAML single sign-on for organizations in your enterprise account](/github/setting-up-and-managing-your-enterprise/configuring-identity-and-access-management-for-your-enterprise-account/enforcing-saml-single-sign-on-for-organizations-in-your-enterprise-account)."
|
||||||
|
|
||||||
## Prerequisites
|
## Prerequisites
|
||||||
|
|
||||||
@@ -51,7 +51,7 @@ SAML SSO controls and secures access to enterprise account resources like organi
|
|||||||
1. To the right of the drop-down menu, type `.*.*`.
|
1. To the right of the drop-down menu, type `.*.*`.
|
||||||
1. Click **Save**.
|
1. Click **Save**.
|
||||||
{% data reusables.saml.okta-view-setup-instructions %}
|
{% data reusables.saml.okta-view-setup-instructions %}
|
||||||
1. Enable SAML for your enterprise account using the information in the setup instructions. For more information, see "[Enabling SAML single sign-on for organizations in your enterprise account](/github/setting-up-and-managing-your-enterprise/enabling-saml-single-sign-on-for-organizations-in-your-enterprise-account)."
|
1. Enable SAML for your enterprise account using the information in the setup instructions. For more information, see "[Enforcing SAML single sign-on for organizations in your enterprise account](/github/setting-up-and-managing-your-enterprise/configuring-identity-and-access-management-for-your-enterprise-account/enforcing-saml-single-sign-on-for-organizations-in-your-enterprise-account)."
|
||||||
|
|
||||||
## Creating groups in Okta
|
## Creating groups in Okta
|
||||||
|
|
||||||
|
|||||||
@@ -1,15 +1,16 @@
|
|||||||
---
|
---
|
||||||
title: Enabling SAML single sign-on for organizations in your enterprise account
|
title: Enforcing SAML single sign-on for organizations in your enterprise account
|
||||||
intro: 'You can control and secure access to resources like repositories, issues, and pull requests by enabling SAML single sign-on (SSO) and centralized authentication through an IdP across all organizations owned by an enterprise account.'
|
intro: 'You can control and secure access to resources like repositories, issues, and pull requests by enforcing SAML single sign-on (SSO) and centralized authentication through an IdP across all organizations owned by an enterprise account.'
|
||||||
product: '{% data reusables.gated-features.enterprise-accounts %}'
|
product: '{% data reusables.gated-features.enterprise-accounts %}'
|
||||||
permissions: Enterprise owners can enable SAML single sign-on for organizations in an enterprise account.
|
permissions: Enterprise owners can enforce SAML single sign-on for organizations in an enterprise account.
|
||||||
versions:
|
versions:
|
||||||
fpt: '*'
|
fpt: '*'
|
||||||
topics:
|
topics:
|
||||||
- Enterprise
|
- Enterprise
|
||||||
redirect_from:
|
redirect_from:
|
||||||
|
- /github/setting-up-and-managing-your-enterprise/configuring-identity-and-access-management-for-your-enterprise-account/enabling-saml-single-sign-on-for-organizations-in-your-enterprise-account
|
||||||
- /github/setting-up-and-managing-your-enterprise/enabling-saml-single-sign-on-for-organizations-in-your-enterprise-account
|
- /github/setting-up-and-managing-your-enterprise/enabling-saml-single-sign-on-for-organizations-in-your-enterprise-account
|
||||||
shortTitle: Enable SSO for organizations
|
shortTitle: Enforce SSO for organizations
|
||||||
---
|
---
|
||||||
## About SAML single sign-on for enterprise accounts
|
## About SAML single sign-on for enterprise accounts
|
||||||
|
|
||||||
@@ -23,7 +24,7 @@ shortTitle: Enable SSO for organizations
|
|||||||
|
|
||||||
{% data reusables.scim.enterprise-account-scim %}
|
{% data reusables.scim.enterprise-account-scim %}
|
||||||
|
|
||||||
## Enabling SAML single-sign on for organizations in your enterprise account
|
## Enforcing SAML single-sign on for organizations in your enterprise account
|
||||||
|
|
||||||
{% note %}
|
{% note %}
|
||||||
|
|
||||||
@@ -37,7 +38,7 @@ For more detailed information about how to enable SAML using Okta, see "[Configu
|
|||||||
{% data reusables.enterprise-accounts.settings-tab %}
|
{% data reusables.enterprise-accounts.settings-tab %}
|
||||||
{% data reusables.enterprise-accounts.security-tab %}
|
{% data reusables.enterprise-accounts.security-tab %}
|
||||||
4. {% data reusables.enterprise-accounts.view-current-policy-config-orgs %}
|
4. {% data reusables.enterprise-accounts.view-current-policy-config-orgs %}
|
||||||
5. Under "SAML single sign-on", select **Enable SAML authentication**.
|
5. Under "SAML single sign-on", select **Require SAML authentication**.
|
||||||

|

|
||||||
6. In the **Sign on URL** field, type the HTTPS endpoint of your IdP for single sign-on requests. This value is available in your IdP configuration.
|
6. In the **Sign on URL** field, type the HTTPS endpoint of your IdP for single sign-on requests. This value is available in your IdP configuration.
|
||||||

|

|
||||||
@@ -8,7 +8,7 @@ topics:
|
|||||||
- Enterprise
|
- Enterprise
|
||||||
children:
|
children:
|
||||||
- /about-identity-and-access-management-for-your-enterprise-account
|
- /about-identity-and-access-management-for-your-enterprise-account
|
||||||
- /enabling-saml-single-sign-on-for-organizations-in-your-enterprise-account
|
- /enforcing-saml-single-sign-on-for-organizations-in-your-enterprise-account
|
||||||
- /configuring-saml-single-sign-on-for-your-enterprise-account-using-okta
|
- /configuring-saml-single-sign-on-for-your-enterprise-account-using-okta
|
||||||
- /managing-team-synchronization-for-organizations-in-your-enterprise-account
|
- /managing-team-synchronization-for-organizations-in-your-enterprise-account
|
||||||
shortTitle: Configure IAM
|
shortTitle: Configure IAM
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ You can also configure and manage team synchronization for an individual organiz
|
|||||||
|
|
||||||
You or your Azure AD administrator must be a Global administrator or a Privileged Role administrator in Azure AD.
|
You or your Azure AD administrator must be a Global administrator or a Privileged Role administrator in Azure AD.
|
||||||
|
|
||||||
You must enable SAML single sign-on for organizations in your enterprise account with your supported IdP. For more information, see "[Enabling SAML single sign-on for organizations in your enterprise account](/github/setting-up-and-managing-your-enterprise/enabling-saml-single-sign-on-for-organizations-in-your-enterprise-account)."
|
You must enforce SAML single sign-on for organizations in your enterprise account with your supported IdP. For more information, see "[Enforcing SAML single sign-on for organizations in your enterprise account](/github/setting-up-and-managing-your-enterprise/configuring-identity-and-access-management-for-your-enterprise-account/enforcing-saml-single-sign-on-for-organizations-in-your-enterprise-account)."
|
||||||
|
|
||||||
You must authenticate to your enterprise account using SAML SSO and the supported IdP. For more information, see "[Authenticating with SAML single sign-on](/articles/authenticating-with-saml-single-sign-on)."
|
You must authenticate to your enterprise account using SAML SSO and the supported IdP. For more information, see "[Authenticating with SAML single sign-on](/articles/authenticating-with-saml-single-sign-on)."
|
||||||
|
|
||||||
|
|||||||
@@ -11,8 +11,8 @@ shortTitle: Integrate Jira with projects
|
|||||||
---
|
---
|
||||||
{% data reusables.user_settings.access_settings %}
|
{% data reusables.user_settings.access_settings %}
|
||||||
{% data reusables.user_settings.developer_settings %}
|
{% data reusables.user_settings.developer_settings %}
|
||||||
3. In the left sidebar, click **{% data variables.product.prodname_oauth_app %}s**.
|
3. In the left sidebar, click **{% data variables.product.prodname_oauth_apps %}**.
|
||||||

|

|
||||||
3. Click **Register a new application**.
|
3. Click **Register a new application**.
|
||||||
4. Under **Application name**, type "Jira".
|
4. Under **Application name**, type "Jira".
|
||||||
5. Under **Homepage URL**, type the full URL to your Jira instance.
|
5. Under **Homepage URL**, type the full URL to your Jira instance.
|
||||||
|
|||||||
@@ -196,7 +196,7 @@ For more information, see "[Autolinked references and URLs](/articles/autolinked
|
|||||||
|
|
||||||
## Content attachments
|
## Content attachments
|
||||||
|
|
||||||
Some {% data variables.product.prodname_github_app %}s provide information in {% data variables.product.product_name %} for URLs that link to their registered domains. {% data variables.product.product_name %} renders the information provided by the app under the URL in the body or comment of an issue or pull request.
|
Some {% data variables.product.prodname_github_apps %} provide information in {% data variables.product.product_name %} for URLs that link to their registered domains. {% data variables.product.product_name %} renders the information provided by the app under the URL in the body or comment of an issue or pull request.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: Using the GraphQL API for Discussions
|
title: Using the GraphQL API for Discussions
|
||||||
intro: Learn how to use the GitHub Discussions GraphQL API.
|
intro: 'Learn how to use the {% data variables.product.prodname_discussions %} GraphQL API.'
|
||||||
versions:
|
versions:
|
||||||
fpt: '*'
|
fpt: '*'
|
||||||
shortTitle: Use GraphQL for Discussions
|
shortTitle: Use GraphQL for Discussions
|
||||||
|
|||||||
@@ -22,13 +22,13 @@ children:
|
|||||||
- code-security
|
- code-security
|
||||||
- issues
|
- issues
|
||||||
- actions
|
- actions
|
||||||
|
- codespaces
|
||||||
- packages
|
- packages
|
||||||
- developers
|
- developers
|
||||||
- rest
|
- rest
|
||||||
- graphql
|
- graphql
|
||||||
- insights
|
- insights
|
||||||
- discussions
|
- discussions
|
||||||
- codespaces
|
|
||||||
- sponsors
|
- sponsors
|
||||||
- communities
|
- communities
|
||||||
- pages
|
- pages
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ You can @mention collaborators who have access to your repository in an issue to
|
|||||||
|
|
||||||
## Comparing issues and discussions
|
## Comparing issues and discussions
|
||||||
|
|
||||||
Some conversations are more suitable for discussions. {% data reusables.discussions.you-can-use-discussions %} For guidance on when to use an issue or a discussion, see "[Communicating on GitHub](/github/getting-started-with-github/quickstart/communicating-on-github)."
|
Some conversations are more suitable for {% data variables.product.prodname_discussions %}. {% data reusables.discussions.you-can-use-discussions %} For guidance on when to use an issue or a discussion, see "[Communicating on GitHub](/github/getting-started-with-github/quickstart/communicating-on-github)."
|
||||||
|
|
||||||
When a conversation in an issue is better suited for a discussion, you can convert the issue to a discussion.
|
When a conversation in an issue is better suited for a discussion, you can convert the issue to a discussion.
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -17,8 +17,8 @@ shortTitle: Review installed integrations
|
|||||||
|
|
||||||
{% data reusables.profile.access_org %}
|
{% data reusables.profile.access_org %}
|
||||||
{% data reusables.profile.org_settings %}
|
{% data reusables.profile.org_settings %}
|
||||||
4. In the left sidebar, click **Installed {% data variables.product.prodname_github_app %}s**.
|
4. In the left sidebar, click **Installed {% data variables.product.prodname_github_apps %}**.
|
||||||

|

|
||||||
5. Next to the {% data variables.product.prodname_github_app %} you'd like to review, click **Configure**.
|
5. Next to the {% data variables.product.prodname_github_app %} you'd like to review, click **Configure**.
|
||||||

|

|
||||||
6. Review the {% data variables.product.prodname_github_app %}'s permissions and repository access.
|
6. Review the {% data variables.product.prodname_github_app %}'s permissions and repository access.
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: Adding GitHub App managers in your organization
|
title: Adding GitHub App managers in your organization
|
||||||
intro: 'Organization owners can grant users the ability to manage some or all {% data variables.product.prodname_github_app %}s owned by the organization.'
|
intro: 'Organization owners can grant users the ability to manage some or all {% data variables.product.prodname_github_apps %} owned by the organization.'
|
||||||
redirect_from:
|
redirect_from:
|
||||||
- /articles/adding-github-app-managers-in-your-organization
|
- /articles/adding-github-app-managers-in-your-organization
|
||||||
- /github/setting-up-and-managing-organizations-and-teams/adding-github-app-managers-in-your-organization
|
- /github/setting-up-and-managing-organizations-and-teams/adding-github-app-managers-in-your-organization
|
||||||
@@ -16,7 +16,7 @@ shortTitle: Add GitHub App managers
|
|||||||
|
|
||||||
For more information about {% data variables.product.prodname_github_app %} manager permissions, see "[Permission levels for an organization](/articles/permission-levels-for-an-organization#github-app-managers)."
|
For more information about {% data variables.product.prodname_github_app %} manager permissions, see "[Permission levels for an organization](/articles/permission-levels-for-an-organization#github-app-managers)."
|
||||||
|
|
||||||
## Giving someone the ability to manage all {% data variables.product.prodname_github_app %}s owned by the organization
|
## Giving someone the ability to manage all {% data variables.product.prodname_github_apps %} owned by the organization
|
||||||
|
|
||||||
{% data reusables.profile.access_org %}
|
{% data reusables.profile.access_org %}
|
||||||
{% data reusables.profile.org_settings %}
|
{% data reusables.profile.org_settings %}
|
||||||
@@ -29,7 +29,7 @@ For more information about {% data variables.product.prodname_github_app %} mana
|
|||||||
{% data reusables.profile.access_org %}
|
{% data reusables.profile.access_org %}
|
||||||
{% data reusables.profile.org_settings %}
|
{% data reusables.profile.org_settings %}
|
||||||
{% data reusables.organizations.github-apps-settings-sidebar %}
|
{% data reusables.organizations.github-apps-settings-sidebar %}
|
||||||
1. Under "{% data variables.product.prodname_github_app %}s", click on the avatar of the app you'd like to add a {% data variables.product.prodname_github_app %} manager for.
|
1. Under "{% data variables.product.prodname_github_apps %}", click on the avatar of the app you'd like to add a {% data variables.product.prodname_github_app %} manager for.
|
||||||

|

|
||||||
{% data reusables.organizations.app-managers-settings-sidebar %}
|
{% data reusables.organizations.app-managers-settings-sidebar %}
|
||||||
1. Under "App managers", type the username of the person you want to designate as a GitHub App manager for the app, and click **Grant**.
|
1. Under "App managers", type the username of the person you want to designate as a GitHub App manager for the app, and click **Grant**.
|
||||||
|
|||||||