1
0
mirror of synced 2026-01-04 09:06:46 -05:00

Merge branch 'main' into patch-2

This commit is contained in:
Ramya Parimi
2021-11-30 09:04:43 -06:00
committed by GitHub
158 changed files with 1062 additions and 1686 deletions

74
.github/actions-scripts/staging-deploy.js vendored Executable file
View File

@@ -0,0 +1,74 @@
#!/usr/bin/env node
import parsePrUrl from '../../script/deployment/parse-pr-url.js'
import getOctokit from '../../script/helpers/github.js'
import deployToStaging from '../../script/deployment/deploy-to-staging.js'
const { GITHUB_TOKEN, HEROKU_API_TOKEN } = process.env
// Exit if GitHub Actions PAT is not found
if (!GITHUB_TOKEN) {
throw new Error('You must supply a GITHUB_TOKEN environment variable!')
}
// Exit if Heroku API token is not found
if (!HEROKU_API_TOKEN) {
throw new Error('You must supply a HEROKU_API_TOKEN environment variable!')
}
// This helper uses the `GITHUB_TOKEN` implicitly!
// We're using our usual version of Octokit vs. the provided `github`
// instance to avoid versioning discrepancies.
const octokit = getOctokit()
const { RUN_ID, PR_URL, SOURCE_BLOB_URL, CONTEXT_NAME, ACTIONS_RUN_LOG, HEAD_SHA } = process.env
if (!RUN_ID) {
throw new Error('$RUN_ID not set')
}
if (!PR_URL) {
throw new Error('$PR_URL not set')
}
if (!SOURCE_BLOB_URL) {
throw new Error('$SOURCE_BLOB_URL not set')
}
if (!CONTEXT_NAME) {
throw new Error('$CONTEXT_NAME not set')
}
if (!ACTIONS_RUN_LOG) {
throw new Error('$ACTIONS_RUN_LOG not set')
}
if (!HEAD_SHA) {
throw new Error('$HEAD_SHA not set')
}
const { owner, repo, pullNumber } = parsePrUrl(PR_URL)
if (!owner || !repo || !pullNumber) {
throw new Error(
`'pullRequestUrl' input must match URL format 'https://github.com/github/(docs|docs-internal)/pull/123' but was '${PR_URL}'`
)
}
const { data: pullRequest } = await octokit.pulls.get({
owner,
repo,
pull_number: pullNumber,
})
await deployToStaging({
octokit,
pullRequest,
forceRebuild: false,
// These parameters will ONLY be set by Actions
sourceBlobUrl: SOURCE_BLOB_URL,
runId: RUN_ID,
})
await octokit.repos.createCommitStatus({
owner,
repo,
sha: HEAD_SHA,
context: CONTEXT_NAME,
state: 'success',
description: 'Successfully deployed! See logs.',
target_url: ACTIONS_RUN_LOG,
})

50
.github/actions-scripts/staging-undeploy.js vendored Executable file
View File

@@ -0,0 +1,50 @@
#!/usr/bin/env node
import parsePrUrl from '../../script/deployment/parse-pr-url.js'
import getOctokit from '../../script/helpers/github.js'
import undeployFromStaging from '../../script/deployment/undeploy-from-staging.js'
const { GITHUB_TOKEN, HEROKU_API_TOKEN } = process.env
// Exit if GitHub Actions PAT is not found
if (!GITHUB_TOKEN) {
throw new Error('You must supply a GITHUB_TOKEN environment variable!')
}
// Exit if Heroku API token is not found
if (!HEROKU_API_TOKEN) {
throw new Error('You must supply a HEROKU_API_TOKEN environment variable!')
}
// This helper uses the `GITHUB_TOKEN` implicitly!
// We're using our usual version of Octokit vs. the provided `github`
// instance to avoid versioning discrepancies.
const octokit = getOctokit()
const { RUN_ID, PR_URL } = process.env
if (!RUN_ID) {
throw new Error('$RUN_ID not set')
}
if (!PR_URL) {
throw new Error('$PR_URL not set')
}
const { owner, repo, pullNumber } = parsePrUrl(PR_URL)
if (!owner || !repo || !pullNumber) {
throw new Error(
`'pullRequestUrl' input must match URL format 'https://github.com/github/(docs|docs-internal)/pull/123' but was '${PR_URL}'`
)
}
const { data: pullRequest } = await octokit.pulls.get({
owner,
repo,
pull_number: pullNumber,
})
await undeployFromStaging({
octokit,
pullRequest: pullRequest,
runId: RUN_ID,
})

View File

@@ -27,12 +27,12 @@ jobs:
include:
- language: pt-BR
language_code: pt
# - language: zh-CN
# language_code: cn
# - language: ja-JP
# language_code: ja
# - language: es-ES
# language_code: es
- language: zh-CN
language_code: cn
- language: ja-JP
language_code: ja
- language: es-ES
language_code: es
steps:
- name: Set branch name
id: set-branch
@@ -89,7 +89,7 @@ jobs:
- name: Commit crowdin sync
run: |
git add .
git add translations/${{ matrix.language }}
git commit -m "Add crowdin translations" || echo "Nothing to commit"
- name: 'Setup node'
@@ -102,13 +102,13 @@ jobs:
- name: Reset files with broken liquid tags
run: |
node script/i18n/reset-files-with-broken-liquid-tags.js --language=${{ matrix.language_code }}
git add . && git commit -m "run script/i18n/reset-files-with-broken-liquid-tags.js --language=${{ matrix.language_code }}" || echo "Nothing to commit"
git add translations/${{ matrix.language }} && git commit -m "run script/i18n/reset-files-with-broken-liquid-tags.js --language=${{ matrix.language_code }}" || echo "Nothing to commit"
# step 5 in docs-engineering/crowdin.md using script from docs-internal#22709
- name: Reset known broken files
run: |
node script/i18n/reset-known-broken-translation-files.js
git add . && git commit -m "run script/i18n/reset-known-broken-translation-files.js" || echo "Nothing to commit"
git add translations/${{ matrix.language }} && git commit -m "run script/i18n/reset-known-broken-translation-files.js" || echo "Nothing to commit"
env:
GITHUB_TOKEN: ${{ secrets.DOCUBOT_REPO_PAT }}
@@ -116,25 +116,32 @@ jobs:
- name: Homogenize frontmatter
run: |
node script/i18n/homogenize-frontmatter.js
git add . && git commit -m "Run script/i18n/homogenize-frontmatter.js" || echo "Nothing to commit"
git add translations/${{ matrix.language }} && git commit -m "Run script/i18n/homogenize-frontmatter.js" || echo "Nothing to commit"
# step 7 in docs-engineering/crowdin.md
- name: Fix translation errors
run: |
node script/i18n/fix-translation-errors.js
git add . && git commit -m "Run script/i18n/fix-translation-errors.js" || echo "Nothing to commit"
git add translations/${{ matrix.language }} && git commit -m "Run script/i18n/fix-translation-errors.js" || echo "Nothing to commit"
# step 8a in docs-engineering/crowdin.md
- name: Check parsing
run: |
node script/i18n/lint-translation-files.js --check parsing
git add . && git commit -m "Run script/i18n/lint-translation-files.js --check parsing" || echo "Nothing to commit"
git add translations/${{ matrix.language }} && git commit -m "Run script/i18n/lint-translation-files.js --check parsing" || echo "Nothing to commit"
# step 8b in docs-engineering/crowdin.md
- name: Check rendering
run: |
node script/i18n/lint-translation-files.js --check rendering
git add . && git commit -m "Run script/i18n/lint-translation-files.js --check rendering" || echo "Nothing to commit"
git add translations/${{ matrix.language }} && git commit -m "Run script/i18n/lint-translation-files.js --check rendering" || echo "Nothing to commit"
- name: Check in CSV report
run: |
mkdir -p log
csvFile=log/${{ matrix.language_code }}-resets.csv
script/i18n/report-reset-files.js --report-type=csv --language=${{ matrix.language_code }} --log-file=/tmp/batch.log > $csvFile
git add -f $csvFile && git commit -m "Check in ${{ matrix.language }} CSV report" || echo "Nothing to commit"
- name: Create Pull Request
env:
@@ -142,11 +149,12 @@ jobs:
# We'll try to create the pull request based on the changes we pushed up in the branch.
# If there are actually no differences between the branch and `main`, we'll delete it.
run: |
script/i18n/report-reset-files.js --report-type=pull-request-body --language=${{ matrix.language_code }} --log-file=/tmp/batch.log > /tmp/pr-body.txt
git push origin ${{ steps.set-branch.outputs.BRANCH_NAME }}
gh pr create -t "New translation batch for ${{ matrix.language }}" \
gh pr create --title "New translation batch for ${{ matrix.language }}" \
--base=main \
--head=${{ steps.set-branch.outputs.BRANCH_NAME }} \
-b "New batch for ${{ matrix.language }} created by [this workflow]($GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID)" || git push origin :${{ steps.set-branch.outputs.BRANCH_NAME }}
--body-file /tmp/pr-body.txt || git push origin :${{ steps.set-branch.outputs.BRANCH_NAME }}
# When the maximum execution time is reached for this job, Actions cancels the workflow run.
# This emits a notification for the first responder to triage.

View File

@@ -21,7 +21,7 @@ concurrency:
jobs:
build-and-deploy:
if: ${{ github.repository == 'github/docs-internal'}}
runs-on: ubuntu-latest
runs-on: ${{ fromJSON('["ubuntu-latest", "self-hosted"]')[github.repository == 'github/docs-internal'] }}
timeout-minutes: 15
steps:
- name: Check out repo

View File

@@ -67,6 +67,10 @@ jobs:
BUILD_ACTIONS_RUN_ID: ${{ env.BUILD_ACTIONS_RUN_ID }}
with:
script: |
// Curious about what version of node you get
console.log('Node version:', process.version)
// In order to find out the PR info for a forked repo, we must query
// the API for more info based on the originating workflow run
const { BUILD_ACTIONS_RUN_ID } = process.env
@@ -482,12 +486,8 @@ jobs:
- name: Install dependencies
run: npm ci
- name: Install one-off development-only dependencies
run: npm install --no-save --include=optional esm
- name: Deploy
id: deploy
uses: actions/github-script@2b34a689ec86a68d8ab9478298f91d5401337b7d
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
HEROKU_API_TOKEN: ${{ secrets.HEROKU_API_TOKEN }}
@@ -499,69 +499,8 @@ jobs:
ACTIONS_RUN_LOG: ${{ env.ACTIONS_RUN_LOG }}
HEAD_SHA: ${{ needs.pr-metadata.outputs.head_sha }}
ALLOWED_POLLING_FAILURES_PER_PHASE: '15'
with:
script: |
const { GITHUB_TOKEN, HEROKU_API_TOKEN } = process.env
// Exit if GitHub Actions PAT is not found
if (!GITHUB_TOKEN) {
throw new Error('You must supply a GITHUB_TOKEN environment variable!')
}
// Exit if Heroku API token is not found
if (!HEROKU_API_TOKEN) {
throw new Error('You must supply a HEROKU_API_TOKEN environment variable!')
}
// Workaround to allow us to load ESM files with `require(...)`
const esm = require('esm')
require = esm({})
const { default: parsePrUrl } = require('./script/deployment/parse-pr-url')
const { default: getOctokit } = require('./script/helpers/github')
const { default: deployToStaging } = require('./script/deployment/deploy-to-staging')
// This helper uses the `GITHUB_TOKEN` implicitly!
// We're using our usual version of Octokit vs. the provided `github`
// instance to avoid versioning discrepancies.
const octokit = getOctokit()
try {
const { PR_URL, SOURCE_BLOB_URL, CONTEXT_NAME, ACTIONS_RUN_LOG, HEAD_SHA } = process.env
const { owner, repo, pullNumber } = parsePrUrl(PR_URL)
if (!owner || !repo || !pullNumber) {
throw new Error(`'pullRequestUrl' input must match URL format 'https://github.com/github/(docs|docs-internal)/pull/123' but was '${PR_URL}'`)
}
const { data: pullRequest } = await octokit.pulls.get({
owner,
repo,
pull_number: pullNumber
})
await deployToStaging({
octokit,
pullRequest,
forceRebuild: false,
// These parameters will ONLY be set by Actions
sourceBlobUrl: SOURCE_BLOB_URL,
runId: context.runId
})
await github.repos.createCommitStatus({
owner,
repo,
sha: HEAD_SHA,
context: CONTEXT_NAME,
state: 'success',
description: 'Successfully deployed! See logs.',
target_url: ACTIONS_RUN_LOG
})
} catch (error) {
console.error(`Failed to deploy to staging: ${error.message}`)
console.error(error)
throw error
}
RUN_ID: ${{ github.run_id }}
run: .github/actions-scripts/staging-deploy.js
- name: Mark the deployment as inactive if timed out
uses: actions/github-script@2b34a689ec86a68d8ab9478298f91d5401337b7d

View File

@@ -69,51 +69,13 @@ jobs:
- name: Install dependencies
run: npm ci
- name: Install one-off development-only dependencies
run: npm install --no-save --include=optional esm
- name: Undeploy
uses: actions/github-script@2b34a689ec86a68d8ab9478298f91d5401337b7d
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
HEROKU_API_TOKEN: ${{ secrets.HEROKU_API_TOKEN }}
with:
script: |
const { GITHUB_TOKEN, HEROKU_API_TOKEN } = process.env
// Exit if GitHub Actions PAT is not found
if (!GITHUB_TOKEN) {
throw new Error('You must supply a GITHUB_TOKEN environment variable!')
}
// Exit if Heroku API token is not found
if (!HEROKU_API_TOKEN) {
throw new Error('You must supply a HEROKU_API_TOKEN environment variable!')
}
// Workaround to allow us to load ESM files with `require(...)`
const esm = require('esm')
require = esm({})
const { default: getOctokit } = require('./script/helpers/github')
const { default: undeployFromStaging } = require('./script/deployment/undeploy-from-staging')
// This helper uses the `GITHUB_TOKEN` implicitly!
// We're using our usual version of Octokit vs. the provided `github`
// instance to avoid versioning discrepancies.
const octokit = getOctokit()
try {
await undeployFromStaging({
octokit,
pullRequest: context.payload.pull_request,
runId: context.runId
})
} catch (error) {
console.error(`Failed to undeploy from staging: ${error.message}`)
console.error(error)
throw error
}
RUN_ID: ${{ github.run_id }}
PR_URL: ${{ github.event.pull_request.html_url }}
run: .github/actions-scripts/staging-undeploy.js
- if: ${{ always() }}
name: Remove the label from the PR to unblock deployment

View File

@@ -1,4 +1,4 @@
# GitHub Docs <!-- omit in toc -->
# GitHub Docs <!-- omit in toc -->
This repository contains the documentation website code and Markdown source files for [docs.github.com](https://docs.github.com).

View File

@@ -15,6 +15,7 @@ import { MarkdownContent } from 'components/ui/MarkdownContent'
import { Lead } from 'components/ui/Lead'
import { ArticleGridLayout } from './ArticleGridLayout'
import { PlatformPicker } from 'components/article/PlatformPicker'
import { ToolPicker } from 'components/article/ToolPicker'
// Mapping of a "normal" article to it's interactive counterpart
const interactiveAlternatives: Record<string, { href: string }> = {
@@ -52,6 +53,7 @@ export const ArticlePage = () => {
contributor,
permissions,
includesPlatformSpecificContent,
includesToolSpecificContent,
product,
miniTocItems,
currentLearningTrack,
@@ -111,6 +113,7 @@ export const ArticlePage = () => {
)}
{includesPlatformSpecificContent && <PlatformPicker variant="underlinenav" />}
{includesToolSpecificContent && <ToolPicker variant="underlinenav" />}
{product && (
<Callout

View File

@@ -12,9 +12,11 @@ const platforms = [
{ id: 'linux', label: 'Linux' },
]
// Nota bene: platform === os
// Imperatively modify article content to show only the selected platform
// find all platform-specific *block* elements and hide or show as appropriate
// example: {% mac } block content {% mac %}
// example: {% mac %} block content {% endmac %}
function showPlatformSpecificContent(platform: string) {
const markdowns = Array.from(document.querySelectorAll<HTMLElement>('.extended-markdown'))
markdowns

View File

@@ -0,0 +1,117 @@
import { useEffect, useState } from 'react'
import Cookies from 'js-cookie'
import { UnderlineNav } from '@primer/components'
import { sendEvent, EventType } from 'components/lib/events'
import { preserveAnchorNodePosition } from 'scroll-anchoring'
import { useArticleContext } from 'components/context/ArticleContext'
// example: http://localhost:4000/en/codespaces/developing-in-codespaces/creating-a-codespace
// Nota bene: tool === application
// Nota bene: picker === switcher
const supportedTools = ['cli', 'desktop', 'webui', 'curl', 'codespaces', 'vscode']
const toolTitles = {
webui: 'Web browser',
cli: 'GitHub CLI',
curl: 'cURL',
desktop: 'Desktop',
codespaces: 'Codespaces',
vscode: 'Visual Studio Code',
} as Record<string, string>
// Imperatively modify article content to show only the selected tool
// find all platform-specific *block* elements and hide or show as appropriate
// example: {% webui %} block content {% endwebui %}
function showToolSpecificContent(tool: string) {
const markdowns = Array.from(document.querySelectorAll<HTMLElement>('.extended-markdown'))
markdowns
.filter((el) => supportedTools.some((tool) => el.classList.contains(tool)))
.forEach((el) => {
el.style.display = el.classList.contains(tool) ? '' : 'none'
})
// find all tool-specific *inline* elements and hide or show as appropriate
// example: <span class="tool-webui">inline content</span>
const toolEls = Array.from(
document.querySelectorAll<HTMLElement>(supportedTools.map((tool) => `.tool-${tool}`).join(', '))
)
toolEls.forEach((el) => {
el.style.display = el.classList.contains(`tool-${tool}`) ? '' : 'none'
})
}
function getDefaultTool(defaultTool: string | undefined, detectedTools: Array<string>): string {
// If there is a default tool and the tool is present on this page
if (defaultTool && detectedTools.includes(defaultTool)) return defaultTool
// Default to webui if present (this is generally the case where we show UI/CLI/Desktop info)
if (detectedTools.includes('webui')) return 'webui'
// Default to cli if present (this is generally the case where we show curl/CLI info)
if (detectedTools.includes('cli')) return 'cli'
// Otherwise, just choose the first detected tool
return detectedTools[0]
}
type Props = {
variant?: 'subnav' | 'tabnav' | 'underlinenav'
}
export const ToolPicker = ({ variant = 'subnav' }: Props) => {
const { defaultTool, detectedTools } = useArticleContext()
const [currentTool, setCurrentTool] = useState(getDefaultTool(defaultTool, detectedTools))
const sharedContainerProps = {
'data-testid': 'tool-picker',
'aria-label': 'Tool picker',
'data-default-tool': defaultTool,
className: 'mb-4',
}
// Run on mount for client-side only features
useEffect(() => {
// If the user selected a tool preference and the tool is present on this page
// Has to be client-side only for cookie reading
const cookieValue = Cookies.get('toolPreferred')
if (cookieValue && detectedTools.includes(cookieValue)) {
setCurrentTool(cookieValue)
}
}, [])
function onClickTool(tool: string) {
setCurrentTool(tool)
preserveAnchorNodePosition(document, () => {
showToolSpecificContent(tool)
})
sendEvent({
type: EventType.preference,
preference_name: 'application',
preference_value: tool,
})
Cookies.set('toolPreferred', tool, { sameSite: 'strict', secure: true })
}
if (variant === 'underlinenav') {
return (
<UnderlineNav {...sharedContainerProps}>
{detectedTools.map((tool) => (
<UnderlineNav.Link
key={tool}
data-tool={tool}
as="button"
selected={tool === currentTool}
onClick={() => {
onClickTool(tool)
}}
>
{toolTitles[tool]}
</UnderlineNav.Link>
))}
</UnderlineNav>
)
}
return null
}

View File

@@ -22,10 +22,13 @@ export type ArticleContextT = {
contributor: { name: string; URL: string } | null
permissions?: string
includesPlatformSpecificContent: boolean
includesToolSpecificContent: boolean
defaultPlatform?: string
defaultTool?: string
product?: string
currentLearningTrack?: LearningTrack
detectedPlatforms: Array<string>
detectedTools: Array<string>
}
export const ArticleContext = createContext<ArticleContextT | null>(null)
@@ -60,9 +63,12 @@ export const getArticleContextFromRequest = (req: any): ArticleContextT => {
contributor: page.contributor || null,
permissions: page.permissions || '',
includesPlatformSpecificContent: page.includesPlatformSpecificContent || false,
includesToolSpecificContent: page.includesToolSpecificContent || false,
defaultPlatform: page.defaultPlatform || '',
defaultTool: page.defaultTool || '',
product: page.product || '',
currentLearningTrack: req.context.currentLearningTrack,
detectedPlatforms: page.detectedPlatforms || [],
detectedTools: page.detectedTools || [],
}
}

View File

@@ -1,100 +0,0 @@
import Cookies from 'js-cookie'
import { preserveAnchorNodePosition } from 'scroll-anchoring'
import { sendEvent, EventType } from './events'
const supportedTools = ['cli', 'desktop', 'webui', 'curl', 'codespaces', 'vscode']
export default function displayToolSpecificContent() {
const toolElements = Array.from(document.querySelectorAll('.extended-markdown')).filter((el) =>
supportedTools.some((tool) => el.classList.contains(tool))
) as Array<HTMLElement>
if (!toolElements.length) return
const detectedTools = toolElements.flatMap((el) =>
Array.from(el.classList).filter((className) => supportedTools.includes(className))
) as Array<string>
const tool = getDefaultTool(detectedTools)
showToolSpecificContent(tool, toolElements)
hideSwitcherLinks(detectedTools)
highlightTabForTool(tool)
// configure links for switching tool content
switcherLinks().forEach((link) => {
link.addEventListener('click', (event) => {
event.preventDefault()
const target = event.target as HTMLElement
highlightTabForTool(target.dataset.tool || '')
preserveAnchorNodePosition(document, () => {
showToolSpecificContent(target.dataset.tool || '', toolElements)
})
// Save this preference as a cookie.
Cookies.set('toolPreferred', target.dataset.tool || '', { sameSite: 'strict', secure: true })
// Send event data
sendEvent({
type: EventType.preference,
preference_name: 'application',
preference_value: target.dataset.tool,
})
})
})
}
function highlightTabForTool(tool: string) {
// (de)activate switcher link appearances
switcherLinks().forEach((link) => {
link.dataset.tool === tool ? link.classList.add('selected') : link.classList.remove('selected')
})
}
function showToolSpecificContent(tool: string, toolElements: Array<HTMLElement>) {
// show the content only for the highlighted tool
toolElements
.filter((el) => supportedTools.some((tool) => el.classList.contains(tool)))
.forEach((el) => {
el.style.display = el.classList.contains(tool) ? '' : 'none'
})
}
// hide links for any tool-specific sections that are not present
function hideSwitcherLinks(detectedTools: Array<string>) {
const links = Array.from(document.querySelectorAll('a.tool-switcher')) as Array<HTMLAnchorElement>
links.forEach((link) => {
if (detectedTools.includes(link.dataset.tool || '')) return
link.style.display = 'none'
})
}
function getDefaultTool(detectedTools: Array<string>): string {
// If the user selected a tool preference and the tool is present on this page
const cookieValue = Cookies.get('toolPreferred')
if (cookieValue && detectedTools.includes(cookieValue)) return cookieValue
// If there is a default tool and the tool is present on this page
const defaultToolEl = document.querySelector('[data-default-tool]') as HTMLElement
const defaultToolValue = defaultToolEl ? defaultToolEl.dataset.defaultTool : ''
if (defaultToolValue && detectedTools.includes(defaultToolValue)) {
return defaultToolValue
}
// Default to webui if present (this is generally the case where we show UI/CLI/Desktop info)
if (detectedTools.includes('webui')) return 'webui'
// Default to cli if present (this is generally the case where we show curl/CLI info)
if (detectedTools.includes('cli')) return 'cli'
// Otherwise, just choose the first detected tool
return detectedTools[0]
}
function switcherLinks() {
return Array.from(document.querySelectorAll('a.tool-switcher')) as Array<HTMLAnchorElement>
}

View File

@@ -147,7 +147,8 @@ Email notifications from {% data variables.product.product_location %} contain t
- There are updates in repositories or team discussions you're watching or in a conversation you're participating in. For more information, see "[About participating and watching notifications](#about-participating-and-watching-notifications)."
- You gain access to a new repository or you've joined a new team. For more information, see "[Automatic watching](#automatic-watching)."{% ifversion fpt or ghes or ghae-issue-4864 or ghec %}
- There are new {% data variables.product.prodname_dependabot_alerts %} in your repository. For more information, see "[{% data variables.product.prodname_dependabot_alerts %} notification options](#dependabot-alerts-notification-options)." {% endif %} {% ifversion fpt or ghec %}
- There are workflow runs updates on repositories set up with {% data variables.product.prodname_actions %}. For more information, see "[{% data variables.product.prodname_actions %} notification options](#github-actions-notification-options)."{% endif %}
- There are workflow runs updates on repositories set up with {% data variables.product.prodname_actions %}. For more information, see "[{% data variables.product.prodname_actions %} notification options](#github-actions-notification-options)."{% endif %}{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5668 %}
- There are new deploy keys added to repositories that belong to organizations that you're an owner of. For more information, see "[Organization alerts notification options](#organization-alerts-notification-options)."{% endif %}
## Automatic watching
@@ -206,7 +207,7 @@ If you are a member of more than one organization, you can configure each one to
{% data reusables.notifications.vulnerable-dependency-notification-delivery-method-customization2 %}
{% data reusables.notifications.vulnerable-dependency-notification-options %}
For more information about the notification delivery methods available to you, and advice on optimizing your notifications for {% ifversion fpt or ghes or ghec %}{% data variables.product.prodname_dependabot_alerts %}{% else %}security alerts{% endif %}, see "[Configuring notifications for vulnerable dependencies](/github/managing-security-vulnerabilities/configuring-notifications-for-vulnerable-dependencies)."
For more information about the notification delivery methods available to you, and advice on optimizing your notifications for {% data variables.product.prodname_dependabot_alerts %}, see "[Configuring notifications for vulnerable dependencies](/github/managing-security-vulnerabilities/configuring-notifications-for-vulnerable-dependencies)."
{% endif %}
{% ifversion fpt or ghes or ghec %}
@@ -218,6 +219,13 @@ Choose how you want to receive workflow run updates for repositories that you ar
{% endif %}
{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5668 %}
## Organization alerts notification options
If you're an organization owner, you'll receive email notifications by default when organization members add new deploy keys to repositories within the organization. You can unsubscribe from these notifications. On the notification settings page, under "Organization alerts", unselect **Email**.
{% endif %}
{% ifversion fpt or ghes or ghec %}
## Managing your notification settings with {% data variables.product.prodname_mobile %}

View File

@@ -108,7 +108,7 @@ To add a `repo:` filter, you must include the owner of the repository in the que
### Supported `is:` queries
To filter notifications for specific activity on {% data variables.product.product_location %}, you can use the `is` query. For example, to only see repository invitation updates, use `is:repository-invitation`{% ifversion not ghae %}, and to only see {% data variables.product.prodname_dependabot %} alerts, use `is:repository-vulnerability-alert`{% endif %}.
To filter notifications for specific activity on {% data variables.product.product_location %}, you can use the `is` query. For example, to only see repository invitation updates, use `is:repository-invitation`{% ifversion not ghae %}, and to only see {% data variables.product.prodname_dependabot_alerts %}, use `is:repository-vulnerability-alert`{% endif %}.
- `is:check-suite`
- `is:commit`

View File

@@ -45,7 +45,7 @@ The repository owner has full control of the repository. In addition to the acti
| Delete packages | "[Deleting packages](/packages/learn-github-packages/deleting-a-package)" |{% endif %}
| Customize the repository's social media preview | "[Customizing your repository's social media preview](/github/administering-a-repository/customizing-your-repositorys-social-media-preview)" |
| Create a template from the repository | "[Creating a template repository](/github/creating-cloning-and-archiving-repositories/creating-a-template-repository)" |{% ifversion fpt or ghes or ghae-issue-4864 or ghec %}
| Control access to {% data variables.product.prodname_dependabot_alerts %} alerts for vulnerable dependencies | "[Managing security and analysis settings for your repository](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository#granting-access-to-security-alerts)" |{% endif %}{% ifversion fpt or ghec %}
| Control access to {% data variables.product.prodname_dependabot_alerts %} for vulnerable dependencies | "[Managing security and analysis settings for your repository](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository#granting-access-to-security-alerts)" |{% endif %}{% ifversion fpt or ghec %}
| Dismiss {% data variables.product.prodname_dependabot_alerts %} in the repository | "[Viewing and updating vulnerable dependencies in your repository](/github/managing-security-vulnerabilities/viewing-and-updating-vulnerable-dependencies-in-your-repository)" |
| Manage data use for a private repository | "[Managing data use settings for your private repository](/github/understanding-how-github-uses-and-protects-your-data/managing-data-use-settings-for-your-private-repository)"|{% endif %}
| Define code owners for the repository | "[About code owners](/github/creating-cloning-and-archiving-repositories/about-code-owners)" |

View File

@@ -38,12 +38,11 @@ To add the {% data variables.product.prodname_dotcom %} OIDC provider to IAM, se
To configure the role and trust in IAM, see the AWS documentation for ["Assuming a Role"](https://github.com/aws-actions/configure-aws-credentials#assuming-a-role) and ["Creating a role for web identity or OpenID connect federation"](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_oidc.html).
By default, the validation only includes the audience (`aud`) condition, so you must manually add a subject (`sub`) condition. Edit the trust relationship to add the `sub` field to the validation conditions. For example:
Edit the trust relationship to add the `sub` field to the validation conditions. For example:
```json{:copy}
"Condition": {
"StringEquals": {
"token.actions.githubusercontent.com:aud": "https://github.com/octo-org",
"token.actions.githubusercontent.com:sub": "repo:octo-org/octo-repo:ref:refs/heads/octo-branch"
}
}
@@ -86,7 +85,7 @@ env:
# permission can be added at job level or workflow level
permissions:
id-token: write
contents: write # This is required for actions/checkout@v1
contents: read # This is required for actions/checkout@v1
jobs:
S3PackageUpload:
runs-on: ubuntu-latest

View File

@@ -96,6 +96,6 @@ jobs:
name: 'gcloud'
run: |-
gcloud auth login --brief --cred-file="${{ steps.auth.outputs.credentials_file_path }}"
gcloud config list
gcloud services list
```
{% endraw %}

View File

@@ -306,7 +306,7 @@ if: {% raw %}${{ cancelled() }}{% endraw %}
### failure
Returns `true` when any previous step of a job fails.
Returns `true` when any previous step of a job fails. If you have a chain of dependent jobs, `failure()` returns `true` if any ancestor job fails.
#### Example

View File

@@ -27,6 +27,10 @@ You can configure {% data variables.product.prodname_code_scanning %} to run {%
{% data reusables.code-scanning.enabling-options %}
## Checking whether your license includes {% data variables.product.prodname_GH_advanced_security %}
{% data reusables.advanced-security.check-for-ghas-license %}
## Prerequisites for {% data variables.product.prodname_code_scanning %}
- A license for {% data variables.product.prodname_GH_advanced_security %}{% ifversion ghes > 3.0 %} (see "[About billing for {% data variables.product.prodname_GH_advanced_security %}](/billing/managing-billing-for-github-advanced-security/about-billing-for-github-advanced-security)"){% endif %}

View File

@@ -22,6 +22,10 @@ topics:
{% data reusables.secret-scanning.about-secret-scanning %} For more information, see "[About {% data variables.product.prodname_secret_scanning %}](/github/administering-a-repository/about-secret-scanning)."
## Checking whether your license includes {% data variables.product.prodname_GH_advanced_security %}
{% data reusables.advanced-security.check-for-ghas-license %}
## Prerequisites for {% data variables.product.prodname_secret_scanning %}
@@ -31,33 +35,20 @@ topics:
- {% data variables.product.prodname_secret_scanning_caps %} enabled in the management console (see "[Enabling {% data variables.product.prodname_GH_advanced_security %} for your enterprise](/admin/advanced-security/enabling-github-advanced-security-for-your-enterprise)")
## Checking support for the SSSE3 flag on your vCPUs
### Checking support for the SSSE3 flag on your vCPUs
The SSSE3 set of instructions is required because {% data variables.product.prodname_secret_scanning %} leverages hardware accelerated pattern matching to find potential credentials committed to your {% data variables.product.prodname_dotcom %} repositories. SSSE3 is enabled for most modern CPUs. You can check whether SSSE3 is enabled for the vCPUs available to your {% data variables.product.prodname_ghe_server %} instance.
1. Connect to the administrative shell for your {% data variables.product.prodname_ghe_server %} instance. For more information, see "[Accessing the administrative shell (SSH)](/admin/configuration/accessing-the-administrative-shell-ssh)."
2. Enter the following command:
```shell
grep -iE '^flags.*ssse3' /proc/cpuinfo >/dev/null | echo $?
```
```shell
grep -iE '^flags.*ssse3' /proc/cpuinfo >/dev/null | echo $?
```
If this returns the value `0`, it means that the SSSE3 flag is available and enabled. You can now enable {% data variables.product.prodname_secret_scanning %} for {% data variables.product.product_location %}. For more information, see "[Enabling {% data variables.product.prodname_secret_scanning %}](#enabling-secret-scanning)" below.
If this returns the value `0`, it means that the SSSE3 flag is available and enabled. You can now enable {% data variables.product.prodname_secret_scanning %} for {% data variables.product.product_location %}. For more information, see "[Enabling {% data variables.product.prodname_secret_scanning %}](#enabling-secret-scanning)" below.
If this doesn't return `0`, SSSE3 is not enabled on your VM/KVM. You need to refer to the documentation of the hardware/hypervisor on how to enable the flag, or make it available to guest VMs.
### Checking whether you have an {% data variables.product.prodname_advanced_security %} license
{% data reusables.enterprise_site_admin_settings.access-settings %}
{% data reusables.enterprise_site_admin_settings.management-console %}
1. Check if there is {% ifversion ghes < 3.2 %}an **{% data variables.product.prodname_advanced_security %}**{% else %}a **Security**{% endif %} entry in the left sidebar.
{% ifversion ghes < 3.2 %}
![Advanced Security sidebar](/assets/images/enterprise/management-console/sidebar-advanced-security.png)
{% else %}
![Security sidebar](/assets/images/enterprise/3.2/management-console/sidebar-security.png)
{% endif %}
{% data reusables.enterprise_management_console.advanced-security-license %}
If this doesn't return `0`, SSSE3 is not enabled on your VM/KVM. You need to refer to the documentation of the hardware/hypervisor on how to enable the flag, or make it available to guest VMs.
## Enabling {% data variables.product.prodname_secret_scanning %}

View File

@@ -28,17 +28,6 @@ When you enable {% data variables.product.prodname_GH_advanced_security %} for y
For guidance on a phased deployment of GitHub Advanced Security, see "[Deploying GitHub Advanced Security in your enterprise](/admin/advanced-security/deploying-github-advanced-security-in-your-enterprise)."
{% endif %}
## Prerequisites for enabling {% data variables.product.prodname_GH_advanced_security %}
1. Upgrade your license for {% data variables.product.product_name %} to include {% data variables.product.prodname_GH_advanced_security %}.{% ifversion ghes > 3.0 %} For information about licensing, see "[About billing for {% data variables.product.prodname_GH_advanced_security %}](/billing/managing-billing-for-github-advanced-security/about-billing-for-github-advanced-security)."{% endif %}
2. Download the new license file. For more information, see "[Downloading your license for {% data variables.product.prodname_enterprise %}](/billing/managing-your-license-for-github-enterprise/downloading-your-license-for-github-enterprise)."
3. Upload the new license file to {% data variables.product.product_location %}. For more information, see "[Uploading a new license to {% data variables.product.prodname_ghe_server %}](/billing/managing-your-license-for-github-enterprise/uploading-a-new-license-to-github-enterprise-server)."{% ifversion ghes %}
4. Review the prerequisites for the features you plan to enable.
- {% data variables.product.prodname_code_scanning_capc %}, see "[Configuring {% data variables.product.prodname_code_scanning %} for your appliance](/admin/advanced-security/configuring-code-scanning-for-your-appliance#prerequisites-for-code-scanning)."
- {% data variables.product.prodname_secret_scanning_caps %}, see "[Configuring {% data variables.product.prodname_secret_scanning %} for your appliance](/admin/advanced-security/configuring-secret-scanning-for-your-appliance#prerequisites-for-secret-scanning)."{% endif %}
- {% data variables.product.prodname_dependabot %}, see "[Enabling the dependency graph and {% data variables.product.prodname_dependabot_alerts %} on your enterprise account](/admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-the-dependency-graph-and-dependabot-alerts-on-your-enterprise-account)."
## Checking whether your license includes {% data variables.product.prodname_GH_advanced_security %}
{% ifversion ghes > 3.0 %}
@@ -58,6 +47,17 @@ For guidance on a phased deployment of GitHub Advanced Security, see "[Deploying
{% data reusables.enterprise_management_console.advanced-security-license %}
{% endif %}
## Prerequisites for enabling {% data variables.product.prodname_GH_advanced_security %}
1. Upgrade your license for {% data variables.product.product_name %} to include {% data variables.product.prodname_GH_advanced_security %}.{% ifversion ghes > 3.0 %} For information about licensing, see "[About billing for {% data variables.product.prodname_GH_advanced_security %}](/billing/managing-billing-for-github-advanced-security/about-billing-for-github-advanced-security)."{% endif %}
2. Download the new license file. For more information, see "[Downloading your license for {% data variables.product.prodname_enterprise %}](/billing/managing-your-license-for-github-enterprise/downloading-your-license-for-github-enterprise)."
3. Upload the new license file to {% data variables.product.product_location %}. For more information, see "[Uploading a new license to {% data variables.product.prodname_ghe_server %}](/billing/managing-your-license-for-github-enterprise/uploading-a-new-license-to-github-enterprise-server)."{% ifversion ghes %}
4. Review the prerequisites for the features you plan to enable.
- {% data variables.product.prodname_code_scanning_capc %}, see "[Configuring {% data variables.product.prodname_code_scanning %} for your appliance](/admin/advanced-security/configuring-code-scanning-for-your-appliance#prerequisites-for-code-scanning)."
- {% data variables.product.prodname_secret_scanning_caps %}, see "[Configuring {% data variables.product.prodname_secret_scanning %} for your appliance](/admin/advanced-security/configuring-secret-scanning-for-your-appliance#prerequisites-for-secret-scanning)."{% endif %}
- {% data variables.product.prodname_dependabot %}, see "[Enabling the dependency graph and {% data variables.product.prodname_dependabot_alerts %} on your enterprise account](/admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-the-dependency-graph-and-dependabot-alerts-on-your-enterprise-account)."
## Enabling and disabling {% data variables.product.prodname_GH_advanced_security %} features
{% data reusables.enterprise_management_console.enable-disable-security-features %}

View File

@@ -26,8 +26,8 @@ Some administrative ports are required to configure {% data variables.product.pr
|---|---|---|
| 8443 | HTTPS | Secure web-based {% data variables.enterprise.management_console %}. Required for basic installation and configuration. |
| 8080 | HTTP | Plain-text web-based {% data variables.enterprise.management_console %}. Not required unless SSL is disabled manually. |
| 122 | SSH | Shell access for {% data variables.product.product_location %}. Required to be open to incoming connections from all other nodes in a High Availability configuration. The default SSH port (22) is dedicated to Git and SSH application network traffic. |
| 1194/UDP | VPN | Secure replication network tunnel in High Availability configuration. Required to be open to all other nodes in the configuration.|
| 122 | SSH | Shell access for {% data variables.product.product_location %}. Required to be open to incoming connections between all nodes in a high availability configuration. The default SSH port (22) is dedicated to Git and SSH application network traffic. |
| 1194/UDP | VPN | Secure replication network tunnel in high availability configuration. Required to be open for communication between all nodes in the configuration.|
| 123/UDP| NTP | Required for time protocol operation. |
| 161/UDP | SNMP | Required for network monitoring protocol operation. |

View File

@@ -1,6 +1,6 @@
---
title: Enabling the dependency graph and Dependabot alerts on your enterprise account
intro: 'You can connect {% data variables.product.product_location %} to {% data variables.product.prodname_ghe_cloud %} and enable the dependency graph and {% data variables.product.prodname_dependabot %} alerts in repositories in your instance.'
intro: 'You can connect {% data variables.product.product_location %} to {% data variables.product.prodname_ghe_cloud %} and enable the dependency graph and {% data variables.product.prodname_dependabot_alerts %} in repositories in your instance.'
shortTitle: Enable dependency analysis
redirect_from:
- /enterprise/admin/installation/enabling-security-alerts-for-vulnerable-dependencies-on-github-enterprise-server
@@ -9,7 +9,7 @@ redirect_from:
- /admin/configuration/enabling-alerts-for-vulnerable-dependencies-on-github-enterprise-server
- /admin/configuration/managing-connections-between-github-enterprise-server-and-github-enterprise-cloud/enabling-alerts-for-vulnerable-dependencies-on-github-enterprise-server
- /admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-alerts-for-vulnerable-dependencies-on-github-enterprise-server
permissions: 'Enterprise owners who are also owners of the connected {% data variables.product.prodname_ghe_cloud %} organization or enterprise account can enable the dependency graph and {% data variables.product.prodname_dependabot %} alerts on {% data variables.product.product_location %}.'
permissions: 'Enterprise owners who are also owners of the connected {% data variables.product.prodname_ghe_cloud %} organization or enterprise account can enable the dependency graph and {% data variables.product.prodname_dependabot_alerts %} on {% data variables.product.product_location %}.'
versions:
ghes: '*'
ghae: issue-4864

View File

@@ -186,3 +186,4 @@ The `ghe-repl-teardown` command disables replication mode completely, removing t
## Further reading
- "[Creating a high availability replica](/enterprise/{{ currentVersion }}/admin/guides/installation/creating-a-high-availability-replica)"
- "[Network ports](/admin/configuration/configuring-network-settings/network-ports)"

View File

@@ -19,15 +19,16 @@ shortTitle: Create HA replica
## Creating a high availability replica
1. Set up a new {% data variables.product.prodname_ghe_server %} appliance on your desired platform. The replica appliance should mirror the primary appliance's CPU, RAM, and storage settings. We recommend that you install the replica appliance in an independent environment. The underlying hardware, software, and network components should be isolated from those of the primary appliance. If you are a using a cloud provider, use a separate region or zone. For more information, see ["Setting up a {% data variables.product.prodname_ghe_server %} instance"](/enterprise/{{ currentVersion }}/admin/guides/installation/setting-up-a-github-enterprise-server-instance).
2. In a browser, navigate to the new replica appliance's IP address and upload your {% data variables.product.prodname_enterprise %} license.
1. Ensure that both the primary appliance and the new replica appliance can communicate with each other over ports 122/TCP and 1194/UDP. For more information, see "[Network ports](/admin/configuration/configuring-network-settings/network-ports#administrative-ports)."
1. In a browser, navigate to the new replica appliance's IP address and upload your {% data variables.product.prodname_enterprise %} license.
{% data reusables.enterprise_installation.replica-steps %}
6. Connect to the replica appliance's IP address using SSH.
1. Connect to the replica appliance's IP address using SSH.
```shell
$ ssh -p 122 admin@<em>REPLICA IP</em>
```
{% data reusables.enterprise_installation.generate-replication-key-pair %}
{% data reusables.enterprise_installation.add-ssh-key-to-primary %}
9. To verify the connection to the primary and enable replica mode for the new replica, run `ghe-repl-setup` again.
1. To verify the connection to the primary and enable replica mode for the new replica, run `ghe-repl-setup` again.
```shell
$ ghe-repl-setup <em>PRIMARY IP</em>
```

View File

@@ -37,7 +37,7 @@ Both types of {% data variables.product.prodname_dependabot %} update have the f
- Configure {% data variables.product.product_location %} to use {% data variables.product.prodname_actions %}. For more information, see "[Getting started with {% data variables.product.prodname_actions %} for GitHub Enterprise Server](/admin/github-actions/enabling-github-actions-for-github-enterprise-server/getting-started-with-github-actions-for-github-enterprise-server)."
- Set up one or more {% data variables.product.prodname_actions %} self-hosted runners for {% data variables.product.prodname_dependabot %}. For more information, see "[Setting up self-hosted runners for {% data variables.product.prodname_dependabot %} updates](#setting-up-self-hosted-runners-for-dependabot-updates)" below.
Additionally, {% data variables.product.prodname_dependabot_security_updates %} rely on the dependency graph, vulnerability data from {% data variables.product.prodname_github_connect %}, and {% data variables.product.prodname_dependabot_alerts %}. These features must be enabled on {% data variables.product.product_location %}. For more information, see "[Enabling the dependency graph and {% data variables.product.prodname_dependabot %} alerts on your enterprise account](/admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-the-dependency-graph-and-dependabot-alerts-on-your-enterprise-account)."
Additionally, {% data variables.product.prodname_dependabot_security_updates %} rely on the dependency graph, vulnerability data from {% data variables.product.prodname_github_connect %}, and {% data variables.product.prodname_dependabot_alerts %}. These features must be enabled on {% data variables.product.product_location %}. For more information, see "[Enabling the dependency graph and {% data variables.product.prodname_dependabot_alerts %} on your enterprise account](/admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-the-dependency-graph-and-dependabot-alerts-on-your-enterprise-account)."
## Setting up self-hosted runners for {% data variables.product.prodname_dependabot %} updates

View File

@@ -69,8 +69,7 @@ You can choose to disable {% data variables.product.prodname_actions %} for all
{% data reusables.actions.about-artifact-log-retention %}
{% data reusables.enterprise_site_admin_settings.access-settings %}
{% data reusables.enterprise_site_admin_settings.business %}
{% data reusables.enterprise-accounts.access-enterprise %}
{% data reusables.enterprise-accounts.policies-tab %}
{% data reusables.enterprise-accounts.actions-tab %}
{% data reusables.github-actions.change-retention-period-for-artifacts-logs %}

View File

@@ -23,3 +23,6 @@ shortTitle: Deploy keys
![Deploy key list](/assets/images/help/settings/settings-deploy-key-review.png)
For more information, see "[Managing deploy keys](/guides/managing-deploy-keys)."
## Further reading
- [Configuring notifications](/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications#organization-alerts-notification-options)

View File

@@ -72,7 +72,7 @@ For more information about viewing and resolving {% data variables.product.prodn
Repository administrators and organization owners can grant users and teams access to {% data variables.product.prodname_secret_scanning %} alerts. For more information, see "[Managing security and analysis settings for your repository](/github/administering-a-repository/managing-security-and-analysis-settings-for-your-repository#granting-access-to-security-alerts)."
{% ifversion fpt or ghes > 3.0 or ghec %}
To monitor results from {% data variables.product.prodname_secret_scanning %} across your private repositories or your organization, you can use the {% data variables.product.prodname_secret_scanning %} API. For more information about API endpoints, see "[{% data variables.product.prodname_secret_scanning_caps %}](/rest/reference/secret-scanning)."{% endif %}
To monitor results from {% data variables.product.prodname_secret_scanning %} across your {% ifversion fpt or ghec %}private {% endif %}repositories{% ifversion ghes > 3.1 %} or your organization{% endif %}, you can use the {% data variables.product.prodname_secret_scanning %} API. For more information about API endpoints, see "[{% data variables.product.prodname_secret_scanning_caps %}](/rest/reference/secret-scanning)."{% endif %}
{% ifversion ghes or ghae %}
## List of supported secrets{% else %}

View File

@@ -20,7 +20,6 @@ topics:
- Dependencies
shortTitle: Dependabot alerts
---
<!--For this article in earlier GHES versions, see /content/github/managing-security-vulnerabilities-->
<!--Marketing-LINK: From /features/security/software-supply-chain page "About alerts for vulnerable dependencies ".-->
## About vulnerable dependencies
@@ -50,7 +49,7 @@ For a list of the ecosystems that {% data variables.product.product_name %} can
{% endnote %}
## {% data variables.product.prodname_dependabot %} alerts for vulnerable dependencies
## {% data variables.product.prodname_dependabot_alerts %} for vulnerable dependencies
{% data reusables.repositories.enable-security-alerts %}
@@ -75,7 +74,7 @@ For repositories where {% data variables.product.prodname_dependabot_security_up
{% endwarning %}
## Access to {% data variables.product.prodname_dependabot %} alerts
## Access to {% data variables.product.prodname_dependabot_alerts %}
You can see all of the alerts that affect a particular project{% ifversion fpt or ghec %} on the repository's Security tab or{% endif %} in the repository's dependency graph. For more information, see "[Viewing and updating vulnerable dependencies in your repository](/github/managing-security-vulnerabilities/viewing-and-updating-vulnerable-dependencies-in-your-repository)."

View File

@@ -29,7 +29,7 @@ topics:
{% data variables.product.prodname_dependabot_security_updates %} make it easier for you to fix vulnerable dependencies in your repository. If you enable this feature, when a {% data variables.product.prodname_dependabot %} alert is raised for a vulnerable dependency in the dependency graph of your repository, {% data variables.product.prodname_dependabot %} automatically tries to fix it. For more information, see "[About alerts for vulnerable dependencies](/code-security/supply-chain-security/about-alerts-for-vulnerable-dependencies)" and "[Configuring {% data variables.product.prodname_dependabot_security_updates %}](/github/managing-security-vulnerabilities/configuring-dependabot-security-updates)."
{% data variables.product.prodname_dotcom %} may send {% data variables.product.prodname_dependabot %} alerts to repositories affected by a vulnerability disclosed by a recently published {% data variables.product.prodname_dotcom %} security advisory. {% data reusables.security-advisory.link-browsing-advisory-db %}
{% data variables.product.prodname_dotcom %} may send {% data variables.product.prodname_dependabot_alerts %} to repositories affected by a vulnerability disclosed by a recently published {% data variables.product.prodname_dotcom %} security advisory. {% data reusables.security-advisory.link-browsing-advisory-db %}
{% data variables.product.prodname_dependabot %} checks whether it's possible to upgrade the vulnerable dependency to a fixed version without disrupting the dependency graph for the repository. Then {% data variables.product.prodname_dependabot %} raises a pull request to update the dependency to the minimum version that includes the patch and links the pull request to the {% data variables.product.prodname_dependabot %} alert, or reports an error on the alert. For more information, see "[Troubleshooting {% data variables.product.prodname_dependabot %} errors](/github/managing-security-vulnerabilities/troubleshooting-dependabot-errors)."

View File

@@ -1,7 +1,7 @@
---
title: Configuring notifications for vulnerable dependencies
shortTitle: Configuring notifications
intro: 'Optimize how you receive notifications about {% data variables.product.prodname_dependabot %} alerts.'
intro: 'Optimize how you receive notifications about {% data variables.product.prodname_dependabot_alerts %}.'
redirect_from:
- /github/managing-security-vulnerabilities/configuring-notifications-for-vulnerable-dependencies
- /code-security/supply-chain-security/configuring-notifications-for-vulnerable-dependencies
@@ -50,7 +50,7 @@ You can configure notification settings for yourself or your organization from t
{% note %}
**Note:** You can filter your notifications on {% data variables.product.company_short %} to show {% data variables.product.prodname_dependabot %} alerts. For more information, see "[Managing notifications from your inbox](/github/managing-subscriptions-and-notifications-on-github/managing-notifications-from-your-inbox#dependabot-custom-filters)."
**Note:** You can filter your notifications on {% data variables.product.company_short %} to show {% data variables.product.prodname_dependabot_alerts %}. For more information, see "[Managing notifications from your inbox](/github/managing-subscriptions-and-notifications-on-github/managing-notifications-from-your-inbox#dependabot-custom-filters)."
{% endnote %}

View File

@@ -1,6 +1,6 @@
---
title: Managing vulnerabilities in your project's dependencies
intro: 'You can track your repository''s dependencies and receive {% ifversion fpt or ghes %}{% data variables.product.prodname_dependabot_alerts %}{% else %}security alerts{% endif %} when {% data variables.product.product_name %} detects vulnerable dependencies.'
intro: 'You can track your repository''s dependencies and receive {% data variables.product.prodname_dependabot_alerts %} when {% data variables.product.product_name %} detects vulnerable dependencies.'
redirect_from:
- /articles/updating-your-project-s-dependencies/
- /articles/updating-your-projects-dependencies/

View File

@@ -42,7 +42,7 @@ The results of dependency detection reported by {% data variables.product.produc
## Why don't I get vulnerability alerts for some ecosystems?
{% data variables.product.prodname_dotcom %} limits its support for vulnerability alerts to a set of ecosystems where we can provide high-quality, actionable data. Curated vulnerabilities in the {% data variables.product.prodname_advisory_database %}, the dependency graph, {% ifversion fpt or ghec %}{% data variables.product.prodname_dependabot %} security updates, {% endif %}and {% data variables.product.prodname_dependabot %} alerts are provided for several ecosystems, including Javas Maven, JavaScripts npm and Yarn, .NETs NuGet, Pythons pip, Ruby's RubyGems, and PHPs Composer. We'll continue to add support for more ecosystems over time. For an overview of the package ecosystems that we support, see "[About the dependency graph](/github/visualizing-repository-data-with-graphs/about-the-dependency-graph#supported-package-ecosystems)."
{% data variables.product.prodname_dotcom %} limits its support for vulnerability alerts to a set of ecosystems where we can provide high-quality, actionable data. Curated vulnerabilities in the {% data variables.product.prodname_advisory_database %}, the dependency graph, {% ifversion fpt or ghec %}{% data variables.product.prodname_dependabot %} security updates, {% endif %}and {% data variables.product.prodname_dependabot_alerts %} are provided for several ecosystems, including Javas Maven, JavaScripts npm and Yarn, .NETs NuGet, Pythons pip, Ruby's RubyGems, and PHPs Composer. We'll continue to add support for more ecosystems over time. For an overview of the package ecosystems that we support, see "[About the dependency graph](/github/visualizing-repository-data-with-graphs/about-the-dependency-graph#supported-package-ecosystems)."
It's worth noting that {% data variables.product.prodname_dotcom %} Security Advisories may exist for other ecosystems. The information in a security advisory is provided by the maintainers of a particular repository. This data is not curated in the same way as information for the supported ecosystems. {% ifversion fpt or ghec %}For more information, see "[About {% data variables.product.prodname_dotcom %} Security Advisories](/github/managing-security-vulnerabilities/about-github-security-advisories)."{% endif %}

View File

@@ -25,7 +25,7 @@ topics:
{% data reusables.dependabot.beta-security-and-version-updates %}
{% data reusables.dependabot.enterprise-enable-dependabot %}
Your repository's {% data variables.product.prodname_dependabot %} alerts tab lists all open and closed {% data variables.product.prodname_dependabot_alerts %}{% ifversion fpt or ghec or ghes > 3.2 %} and corresponding {% data variables.product.prodname_dependabot_security_updates %}{% endif %}. You can sort the list of alerts by selecting the drop-down menu, and you can click into specific alerts for more details. For more information, see "[About alerts for vulnerable dependencies](/code-security/supply-chain-security/about-alerts-for-vulnerable-dependencies)."
Your repository's {% data variables.product.prodname_dependabot_alerts %} tab lists all open and closed {% data variables.product.prodname_dependabot_alerts %}{% ifversion fpt or ghec or ghes > 3.2 %} and corresponding {% data variables.product.prodname_dependabot_security_updates %}{% endif %}. You can sort the list of alerts by selecting the drop-down menu, and you can click into specific alerts for more details. For more information, see "[About alerts for vulnerable dependencies](/code-security/supply-chain-security/about-alerts-for-vulnerable-dependencies)."
{% ifversion fpt or ghec or ghes > 3.2 %}
You can enable automatic security updates for any repository that uses {% data variables.product.prodname_dependabot_alerts %} and the dependency graph. For more information, see "[About {% data variables.product.prodname_dependabot_security_updates %}](/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/about-dependabot-security-updates)."

View File

@@ -185,3 +185,7 @@ This means that you cannot automate the creation of accounts. But if you want to
[collaborator]: /articles/inviting-collaborators-to-a-personal-repository
[outside-collaborator]: /articles/adding-outside-collaborators-to-repositories-in-your-organization
[team]: /articles/adding-organization-members-to-a-team
## Further reading
- [Configuring notifications](/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications#organization-alerts-notification-options)

View File

@@ -39,8 +39,8 @@ To search for specific events, use the `action` qualifier in your query. Actions
| [`billing`](#billing-category-actions) | Contains all activities related to your organization's billing.
| [`business`](#business-category-actions) | Contains activities related to business settings for an enterprise. |
| [`codespaces`](#codespaces-category-actions) | Contains all activities related to your organization's codespaces. |{% endif %}{% ifversion fpt or ghec or ghes > 3.2 %}
| [`dependabot_alerts`](#dependabot_alerts-category-actions) | Contains organization-level configuration activities for {% data variables.product.prodname_dependabot %} alerts in existing repositories. For more information, see "[About alerts for vulnerable dependencies](/github/managing-security-vulnerabilities/about-alerts-for-vulnerable-dependencies)."
| [`dependabot_alerts_new_repos`](#dependabot_alerts_new_repos-category-actions) | Contains organization-level configuration activities for {% data variables.product.prodname_dependabot %} alerts in new repositories created in the organization.
| [`dependabot_alerts`](#dependabot_alerts-category-actions) | Contains organization-level configuration activities for {% data variables.product.prodname_dependabot_alerts %} in existing repositories. For more information, see "[About alerts for vulnerable dependencies](/github/managing-security-vulnerabilities/about-alerts-for-vulnerable-dependencies)."
| [`dependabot_alerts_new_repos`](#dependabot_alerts_new_repos-category-actions) | Contains organization-level configuration activities for {% data variables.product.prodname_dependabot_alerts %} in new repositories created in the organization.
| [`dependabot_security_updates`](#dependabot_security_updates-category-actions) | Contains organization-level configuration activities for {% data variables.product.prodname_dependabot_security_updates %} in existing repositories. For more information, see "[Configuring {% data variables.product.prodname_dependabot_security_updates %}](/github/managing-security-vulnerabilities/configuring-dependabot-security-updates)."
| [`dependabot_security_updates_new_repos`](#dependabot_security_updates_new_repos-category-actions) | Contains organization-level configuration activities for {% data variables.product.prodname_dependabot_security_updates %} for new repositories created in the organization.{% endif %}{% ifversion fpt or ghec %}
| [`dependency_graph`](#dependency_graph-category-actions) | Contains organization-level configuration activities for dependency graphs for repositories. For more information, see "[About the dependency graph](/github/visualizing-repository-data-with-graphs/about-the-dependency-graph)."
@@ -71,7 +71,7 @@ To search for specific events, use the `action` qualifier in your query. Actions
| [`repository_dependency_graph`](#repository_dependency_graph-category-actions) | Contains repository-level activities related to enabling or disabling the dependency graph for a {% ifversion fpt or ghec %}private {% endif %}repository. For more information, see "[About the dependency graph](/github/visualizing-repository-data-with-graphs/about-the-dependency-graph)."{% endif %}
| [`repository_secret_scanning`](#repository_secret_scanning-category-actions) | Contains repository-level activities related to secret scanning. For more information, see "[About secret scanning](/github/administering-a-repository/about-secret-scanning)." {% ifversion fpt or ghes or ghae-issue-4864 or ghec %}
| [`repository_vulnerability_alert`](#repository_vulnerability_alert-category-actions) | Contains all activities related to [{% data variables.product.prodname_dependabot_alerts %} for vulnerable dependencies](/github/managing-security-vulnerabilities/about-alerts-for-vulnerable-dependencies).{% endif %}{% ifversion fpt or ghec %}
| [`repository_vulnerability_alerts`](#repository_vulnerability_alerts-category-actions) | Contains repository-level configuration activities for {% data variables.product.prodname_dependabot %} alerts.{% endif %}{% ifversion ghec %}
| [`repository_vulnerability_alerts`](#repository_vulnerability_alerts-category-actions) | Contains repository-level configuration activities for {% data variables.product.prodname_dependabot_alerts %}.{% endif %}{% ifversion ghec %}
| [`role`](#role-category-actions) | Contains all activities related to [custom repository roles](/organizations/managing-peoples-access-to-your-organization-with-roles/managing-custom-repository-roles-for-an-organization).{% endif %}
| [`secret_scanning`](#secret_scanning-category-actions) | Contains organization-level configuration activities for secret scanning in existing repositories. For more information, see "[About secret scanning](/github/administering-a-repository/about-secret-scanning)."
| [`secret_scanning_new_repos`](#secret_scanning_new_repos-category-actions) | Contains organization-level configuration activities for secret scanning for new repositories created in the organization. {% ifversion fpt or ghec %}
@@ -661,8 +661,8 @@ For more information, see "[Managing the publication of {% data variables.produc
| Action | Description
|------------------|-------------------
| `create` | Triggered when {% data variables.product.product_name %} creates a {% ifversion fpt or ghes or ghec %}{% data variables.product.prodname_dependabot %}{% else %}security{% endif %} alert for a repository that uses a vulnerable dependency. For more information, see "[About alerts for vulnerable dependencies](/github/managing-security-vulnerabilities/about-alerts-for-vulnerable-dependencies)."
| `dismiss` | Triggered when an organization owner or person with admin access to the repository dismisses a {% ifversion fpt or ghes or ghec %}{% data variables.product.prodname_dependabot %}{% else %}security{% endif %} alert about a vulnerable dependency.
| `create` | Triggered when {% data variables.product.product_name %} creates a {% data variables.product.prodname_dependabot %} alert for a repository that uses a vulnerable dependency. For more information, see "[About alerts for vulnerable dependencies](/github/managing-security-vulnerabilities/about-alerts-for-vulnerable-dependencies)."
| `dismiss` | Triggered when an organization owner or person with admin access to the repository dismisses a {% data variables.product.prodname_dependabot %} alert about a vulnerable dependency.
| `resolve` | Triggered when someone with write access to a repository pushes changes to update and resolve a vulnerability in a project dependency.
{% endif %}{% ifversion fpt or ghec %}

View File

@@ -79,7 +79,7 @@ Any team members that have set their status to "Busy" will not be selected for r
![Routing algorithm dropdown](/assets/images/help/teams/review-assignment-algorithm.png)
9. Optionally, to always skip certain members of the team, select **Never assign certain team members**. Then, select one or more team members you'd like to always skip.
![Never assign certain team members checkbox and dropdown](/assets/images/help/teams/review-assignment-skip-members.png)
{% ifversion fpt or ghec or ghae-next or ghes > 3.2 %}
{% ifversion fpt or ghec or ghae-issue-5108 or ghes > 3.2 %}
11. Optionally, to include members of child teams as potential reviewers when assigning requests, select **Child team members**.
12. Optionally, to count any members whose review has already been requested against the total number of members to assign, select **Count existing requests**.
13. Optionally, to remove the review request from the team when assigning team members, select **Team review request**.

View File

@@ -120,6 +120,12 @@ A MIME type is a header that a server sends to a browser, providing information
While you can't specify custom MIME types on a per-file or per-repository basis, you can add or modify MIME types for use on {% data variables.product.prodname_pages %}. For more information, see [the mime-db contributing guidelines](https://github.com/jshttp/mime-db#adding-custom-media-types).
{% ifversion fpt %}
## Data collection
When a {% data variables.product.prodname_pages %} site is visited, the visitor's IP address is logged and stored for security purposes, regardless of whether the visitor has signed into {% data variables.product.prodname_dotcom %} or not. For more information about {% data variables.product.prodname_dotcom %}'s security practices, see <a href="/articles/github-privacy-statement/" class="dotcom-only">{% data variables.product.prodname_dotcom %} Privacy Statement</a>.
{% endif %}
## Further reading
- [{% data variables.product.prodname_pages %}](https://lab.github.com/githubtraining/github-pages) on {% data variables.product.prodname_learning %}

View File

@@ -42,7 +42,7 @@ By default, the restrictions of a branch protection rule don't apply to people w
For each branch protection rule, you can choose to enable or disable the following settings.
- [Require pull request reviews before merging](#require-pull-request-reviews-before-merging)
- [Require status checks before merging](#require-status-checks-before-merging)
{% ifversion fpt or ghes > 3.1 or ghae-issue-4382 or ghec %}
{% ifversion fpt or ghes > 3.1 or ghae-next or ghec %}
- [Require conversation resolution before merging](#require-conversation-resolution-before-merging){% endif %}
- [Require signed commits](#require-signed-commits)
- [Require linear history](#require-linear-history)
@@ -99,7 +99,7 @@ You can set up required status checks to either be "loose" or "strict." The type
For troubleshooting information, see "[Troubleshooting required status checks](/github/administering-a-repository/troubleshooting-required-status-checks)."
{% ifversion fpt or ghes > 3.1 or ghae-issue-4382 or ghec %}
{% ifversion fpt or ghes > 3.1 or ghae-next or ghec %}
### Require conversation resolution before merging
Requires all comments on the pull request to be resolved before it can be merged to a protected branch. This ensures that all comments are addressed or acknowledged before merge.

View File

@@ -80,7 +80,7 @@ When you create a branch rule, the branch you specify doesn't have to exist yet
![Loose or strict required status checkbox](/assets/images/help/repository/protecting-branch-loose-status.png)
- Search for status checks, selecting the checks you want to require.
![Search interface for available status checks, with list of required checks](/assets/images/help/repository/required-statuses-list.png)
{%- ifversion fpt or ghes > 3.1 or ghae-issue-4382 %}
{%- ifversion fpt or ghes > 3.1 or ghae-next %}
1. Optionally, select **Require conversation resolution before merging**.
![Require conversation resolution before merging option](/assets/images/help/repository/require-conversation-resolution.png)
{%- endif %}

View File

@@ -37,7 +37,7 @@ Each CODEOWNERS file assigns the code owners for a single branch in the reposito
For code owners to receive review requests, the CODEOWNERS file must be on the base branch of the pull request. For example, if you assign `@octocat` as the code owner for *.js* files on the `gh-pages` branch of your repository, `@octocat` will receive review requests when a pull request with changes to *.js* files is opened between the head branch and `gh-pages`.
{% ifversion fpt or ghae or ghes > 3.2 or ghec %}
{% ifversion fpt or ghec or ghes > 3.2 or ghae-issue-9273 %}
## CODEOWNERS file size
CODEOWNERS files must be under 3 MB in size. A CODEOWNERS file over this limit will not be loaded, which means that code owner information is not shown and the appropriate code owners will not be requested to review changes in a pull request.

View File

@@ -21,12 +21,6 @@ miniTocMaxHeadingLevel: 3
{% ifversion fpt or ghec or ghes > 3.2 or ghae-issue-4742 %}
## Autolinks
{% tip %}
**Note:** The Autolinks API is in beta and may change.
{% endtip %}
To help streamline your workflow, you can use the API to add autolinks to external resources like JIRA issues and Zendesk tickets. For more information, see "[Configuring autolinks to reference external resources](/github/administering-a-repository/configuring-autolinks-to-reference-external-resources)."
{% data variables.product.prodname_github_apps %} require repository administration permissions with read or write access to use the Autolinks API.

View File

@@ -0,0 +1 @@
You can identify if your enterprise has a {% data variables.product.prodname_GH_advanced_security %} license by reviewing {% ifversion ghes = 3.0 %}the {% data variables.enterprise.management_console %}{% elsif ghes > 3.0 %}your enterprise settings{% endif %}. For more information, see "[Enabling GitHub Advanced Security for your enterprise](/admin/advanced-security/enabling-github-advanced-security-for-your-enterprise#checking-whether-your-license-includes-github-advanced-security)."

View File

@@ -1 +1 @@
If you can't see {% ifversion ghes < 3.2 %}**{% data variables.product.prodname_advanced_security %}**{% else %}**Security**{% endif %} in the sidebar, it means that your license doesn't include support for {% data variables.product.prodname_advanced_security %} features, including {% data variables.product.prodname_code_scanning %} and {% data variables.product.prodname_secret_scanning %}. The {% data variables.product.prodname_advanced_security %} license gives you and your users access to features that help you make your repositories and code more secure. {% ifversion ghes %}For more information, see "[About GitHub Advanced Security](/github/getting-started-with-github/about-github-advanced-security)" or contact {% data variables.contact.contact_enterprise_sales %}.{% endif %}
If you can't see **{% data variables.product.prodname_advanced_security %}** in the sidebar, it means that your license doesn't include support for {% data variables.product.prodname_advanced_security %} features, including {% data variables.product.prodname_code_scanning %} and {% data variables.product.prodname_secret_scanning %}. The {% data variables.product.prodname_advanced_security %} license gives you and your users access to features that help you make your repositories and code more secure. For more information, see "[About GitHub Advanced Security](/github/getting-started-with-github/about-github-advanced-security)" or contact {% data variables.contact.contact_enterprise_sales %}.

View File

@@ -1,3 +1,3 @@
{% ifversion ghes or ghae-issue-4864 %}
Enterprise owners must enable {% data variables.product.prodname_dependabot %} alerts for vulnerable dependencies for {% data variables.product.product_location %} before you can use this feature. For more information, see "[Enabling the dependency graph and {% data variables.product.prodname_dependabot_alerts %} on your enterprise account](/admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-the-dependency-graph-and-dependabot-alerts-on-your-enterprise-account)."
Enterprise owners must enable {% data variables.product.prodname_dependabot_alerts %} for vulnerable dependencies for {% data variables.product.product_location %} before you can use this feature. For more information, see "[Enabling the dependency graph and {% data variables.product.prodname_dependabot_alerts %} on your enterprise account](/admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-the-dependency-graph-and-dependabot-alerts-on-your-enterprise-account)."
{% endif %}

View File

@@ -1 +1 @@
Email notifications for {% ifversion fpt or ghes or ghec %}{% data variables.product.prodname_dependabot_alerts %}{% else %}security alerts{% endif %} that affect one or more repositories include the `X-GitHub-Severity` header field. You can use the value of the `X-GitHub-Severity` header field to filter email notifications for {% ifversion fpt or ghes or ghec %}{% data variables.product.prodname_dependabot_alerts %}{% else %}security alerts{% endif %}.
Email notifications for {% data variables.product.prodname_dependabot_alerts %} that affect one or more repositories include the `X-GitHub-Severity` header field. You can use the value of the `X-GitHub-Severity` header field to filter email notifications for {% data variables.product.prodname_dependabot_alerts %}.

View File

@@ -100,6 +100,8 @@ Google | Google Cloud Storage Service Account Access Key ID | google_cloud_stora
{%- ifversion fpt or ghec or ghes > 3.2 %}
Google | Google Cloud Storage User Access Key ID | google_cloud_storage_user_access_key_id{% endif %}
{%- ifversion fpt or ghec or ghes > 3.3 %}
Google | Google OAuth Access Token | google_oauth_access_token{% endif %}
{%- ifversion fpt or ghec or ghes > 3.3 %}
Google | Google OAuth Client ID | google_oauth_client_id{% endif %}
{%- ifversion fpt or ghec or ghes > 3.3 %}
Google | Google OAuth Client Secret | google_oauth_client_secret{% endif %}

View File

@@ -15,7 +15,7 @@ contact_dmca: >-
contact_privacy: >-
{% ifversion fpt or ghec %}[Privacy contact form](https://github.com/contact/privacy){% endif %}
contact_enterprise_sales: "[GitHub's Sales team](https://enterprise.github.com/contact)"
contact_enterprise_sales: "[GitHub's Sales team](https://github.com/enterprise/contact)"
contact_feedback_actions: '[Feedback form for GitHub Actions](https://support.github.com/contact/feedback?contact[category]=actions)'

View File

@@ -1,11 +1 @@
<nav class="UnderlineNav my-3" id="tool-switcher"
{%- if page.defaultTool %} data-default-tool="{{ page.defaultTool }}"{% endif %}>
<div class="UnderlineNav-body">
<a href="#" class="UnderlineNav-item tool-switcher" data-tool="webui">Web browser</a>
<a href="#" class="UnderlineNav-item tool-switcher" data-tool="cli">GitHub CLI</a>
<a href="#" class="UnderlineNav-item tool-switcher" data-tool="curl">cURL</a>
<a href="#" class="UnderlineNav-item tool-switcher" data-tool="desktop">Desktop</a>
<a href="#" class="UnderlineNav-item tool-switcher" data-tool="codespaces">Codespaces</a>
<a href="#" class="UnderlineNav-item tool-switcher" data-tool="vscode">Visual Studio Code</a>
</div>
</nav>
<span class="tool-switcher"></span>

View File

@@ -250,16 +250,19 @@ class Page {
})
}
this.detectedPlatforms = [
(html.includes('extended-markdown mac') || html.includes('platform-mac')) && 'mac',
(html.includes('extended-markdown windows') || html.includes('platform-windows')) &&
'windows',
(html.includes('extended-markdown linux') || html.includes('platform-linux')) && 'linux',
].filter(Boolean)
// set a flag so layout knows whether to render a mac/windows/linux switcher element
this.detectedPlatforms = ['mac', 'windows', 'linux'].filter(
(platform) =>
html.includes(`extended-markdown ${platform}`) || html.includes(`platform-${platform}`)
)
this.includesPlatformSpecificContent = this.detectedPlatforms.length > 0
// set flags for webui, cli, etc switcher element
this.detectedTools = ['cli', 'desktop', 'webui', 'curl', 'codespaces', 'vscode'].filter(
(tool) => html.includes(`extended-markdown ${tool}`) || html.includes(`tool-${tool}`)
)
this.includesToolSpecificContent = this.detectedTools.length > 0
return html
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -41482,7 +41482,7 @@
"type": "string"
},
"mode": {
"description": "The rendering mode.",
"description": "The rendering mode. Can be either `markdown` or `gfm`.",
"enum": [
"markdown",
"gfm"
@@ -41492,7 +41492,7 @@
"type": "string"
},
"context": {
"description": "The repository context to use when creating references in `gfm` mode.",
"description": "The repository context to use when creating references in `gfm` mode. For example, setting `context` to `octo-org/octo-repo` will change the text `#42` into an HTML link to issue 42 in the `octo-org/octo-repo` repository.",
"type": "string"
}
},
@@ -110865,9 +110865,11 @@
"created_at": "2011-01-26T19:01:12Z",
"updated_at": "2011-01-26T19:14:43Z",
"permissions": {
"admin": false,
"pull": true,
"triage": false,
"push": false,
"pull": true
"maintain": false,
"admin": false
},
"allow_rebase_merge": true,
"temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O",
@@ -172659,6 +172661,12 @@
},
"check_runs_url": {
"type": "string"
},
"rerequestable": {
"type": "boolean"
},
"runs_rerequestable": {
"type": "boolean"
}
},
"required": [
@@ -175144,6 +175152,12 @@
},
"check_runs_url": {
"type": "string"
},
"rerequestable": {
"type": "boolean"
},
"runs_rerequestable": {
"type": "boolean"
}
},
"required": [
@@ -179715,6 +179729,12 @@
},
"check_runs_url": {
"type": "string"
},
"rerequestable": {
"type": "boolean"
},
"runs_rerequestable": {
"type": "boolean"
}
},
"required": [
@@ -192259,7 +192279,9 @@
"site_admin": false,
"permissions": {
"pull": true,
"triage": true,
"push": true,
"maintain": false,
"admin": false
},
"role_name": "write"
@@ -207539,6 +207561,12 @@
},
"check_runs_url": {
"type": "string"
},
"rerequestable": {
"type": "boolean"
},
"runs_rerequestable": {
"type": "boolean"
}
},
"required": [
@@ -212446,314 +212474,6 @@
}
}
},
"/repos/{owner}/{repo}/content_references/{content_reference_id}/attachments": {
"post": {
"summary": "Create a content attachment",
"description": "Creates an attachment under a content reference URL in the body or comment of an issue or pull request. Use the `id` and `repository` `full_name` of the content reference from the [`content_reference` event](https://docs.github.com/webhooks/event-payloads/#content_reference) to create an attachment.\n\nThe app must create a content attachment within six hours of the content reference URL being posted. See \"[Using content attachments](https://docs.github.com/apps/using-content-attachments/)\" for details about content attachments.\n\nYou must use an [installation access token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation) to access this endpoint.",
"tags": [
"apps"
],
"operationId": "apps/create-content-attachment",
"externalDocs": {
"description": "API method documentation",
"url": "https://docs.github.com/rest/reference/apps#create-a-content-attachment"
},
"parameters": [
{
"name": "owner",
"description": "The owner of the repository. Determined from the `repository` `full_name` of the `content_reference` event.",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "repo",
"description": "The name of the repository. Determined from the `repository` `full_name` of the `content_reference` event.",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "content_reference_id",
"description": "The `id` of the `content_reference` event.",
"in": "path",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"properties": {
"title": {
"description": "The title of the attachment",
"example": "Title of the attachment",
"type": "string",
"maxLength": 1024
},
"body": {
"description": "The body of the attachment",
"example": "Body of the attachment",
"type": "string",
"maxLength": 262144
}
},
"required": [
"title",
"body"
],
"type": "object"
}
}
}
},
"responses": {
"200": {
"description": "Response",
"content": {
"application/json": {
"schema": {
"title": "ContentReferenceAttachment",
"description": "Content Reference attachments allow you to provide context around URLs posted in comments",
"type": "object",
"properties": {
"id": {
"description": "The ID of the attachment",
"example": 21,
"type": "integer"
},
"title": {
"description": "The title of the attachment",
"example": "Title of the attachment",
"type": "string",
"maxLength": 1024
},
"body": {
"description": "The body of the attachment",
"example": "Body of the attachment",
"type": "string",
"maxLength": 262144
},
"node_id": {
"description": "The node_id of the content attachment",
"example": "MDE3OkNvbnRlbnRBdHRhY2htZW50MjE=",
"type": "string"
}
},
"required": [
"id",
"title",
"body"
]
},
"examples": {
"default": {
"value": {
"id": 101,
"title": "[A-1234] Error found in core/models.py file'",
"body": "You have used an email that already exists for the user_email_uniq field.\n ## DETAILS:\n\nThe (email)=(Octocat@github.com) already exists.\n\n The error was found in core/models.py in get_or_create_user at line 62.\n\n self.save()"
}
}
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/json": {
"schema": {
"title": "Validation Error",
"description": "Validation Error",
"type": "object",
"required": [
"message",
"documentation_url"
],
"properties": {
"message": {
"type": "string"
},
"documentation_url": {
"type": "string"
},
"errors": {
"type": "array",
"items": {
"type": "object",
"required": [
"code"
],
"properties": {
"resource": {
"type": "string"
},
"field": {
"type": "string"
},
"message": {
"type": "string"
},
"code": {
"type": "string"
},
"index": {
"type": "integer"
},
"value": {
"oneOf": [
{
"type": "string",
"nullable": true
},
{
"type": "integer",
"nullable": true
},
{
"type": "array",
"nullable": true,
"items": {
"type": "string"
}
}
]
}
}
}
}
}
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/json": {
"schema": {
"title": "Basic Error",
"description": "Basic Error",
"type": "object",
"properties": {
"message": {
"type": "string"
},
"documentation_url": {
"type": "string"
},
"url": {
"type": "string"
},
"status": {
"type": "string"
}
}
}
}
}
},
"410": {
"description": "Gone",
"content": {
"application/json": {
"schema": {
"title": "Basic Error",
"description": "Basic Error",
"type": "object",
"properties": {
"message": {
"type": "string"
},
"documentation_url": {
"type": "string"
},
"url": {
"type": "string"
},
"status": {
"type": "string"
}
}
}
}
}
},
"415": {
"description": "Preview header missing",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"message",
"documentation_url"
],
"properties": {
"message": {
"type": "string"
},
"documentation_url": {
"type": "string"
}
}
}
}
}
},
"304": {
"description": "Not modified"
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"title": "Basic Error",
"description": "Basic Error",
"type": "object",
"properties": {
"message": {
"type": "string"
},
"documentation_url": {
"type": "string"
},
"url": {
"type": "string"
},
"status": {
"type": "string"
}
}
}
}
}
}
},
"x-github": {
"githubCloudOnly": false,
"enabledForGitHubApps": true,
"previews": [
{
"required": true,
"name": "corsair",
"note": "To access the Content Attachments API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.corsair-preview+json\n```"
}
],
"category": "apps",
"subcategory": "installations"
}
}
},
"/repos/{owner}/{repo}/contents/{path}": {
"get": {
"summary": "Get repository content",
@@ -294744,7 +294464,7 @@
},
"description": {
"type": "string",
"description": "A short description of the label."
"description": "A short description of the label. Must be 100 characters or fewer."
}
},
"required": [
@@ -295139,7 +294859,7 @@
},
"description": {
"type": "string",
"description": "A short description of the label."
"description": "A short description of the label. Must be 100 characters or fewer."
}
}
},
@@ -384465,9 +384185,11 @@
"created_at": "2011-01-26T19:01:12Z",
"updated_at": "2011-01-26T19:14:43Z",
"permissions": {
"admin": false,
"pull": true,
"triage": false,
"push": false,
"pull": true
"maintain": false,
"admin": false
},
"allow_rebase_merge": true,
"temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O",

View File

@@ -46921,7 +46921,7 @@
"type": "string"
},
"mode": {
"description": "The rendering mode.",
"description": "The rendering mode. Can be either `markdown` or `gfm`.",
"enum": [
"markdown",
"gfm"
@@ -46931,7 +46931,7 @@
"type": "string"
},
"context": {
"description": "The repository context to use when creating references in `gfm` mode.",
"description": "The repository context to use when creating references in `gfm` mode. For example, setting `context` to `octo-org/octo-repo` will change the text `#42` into an HTML link to issue 42 in the `octo-org/octo-repo` repository.",
"type": "string"
}
},
@@ -94018,9 +94018,11 @@
"created_at": "2011-01-26T19:01:12Z",
"updated_at": "2011-01-26T19:14:43Z",
"permissions": {
"admin": false,
"pull": true,
"triage": false,
"push": false,
"pull": true
"maintain": false,
"admin": false
},
"allow_rebase_merge": true,
"temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O",
@@ -146349,6 +146351,12 @@
},
"check_runs_url": {
"type": "string"
},
"rerequestable": {
"type": "boolean"
},
"runs_rerequestable": {
"type": "boolean"
}
},
"required": [
@@ -148818,6 +148826,12 @@
},
"check_runs_url": {
"type": "string"
},
"rerequestable": {
"type": "boolean"
},
"runs_rerequestable": {
"type": "boolean"
}
},
"required": [
@@ -153357,6 +153371,12 @@
},
"check_runs_url": {
"type": "string"
},
"rerequestable": {
"type": "boolean"
},
"runs_rerequestable": {
"type": "boolean"
}
},
"required": [
@@ -172444,6 +172464,12 @@
},
"check_runs_url": {
"type": "string"
},
"rerequestable": {
"type": "boolean"
},
"runs_rerequestable": {
"type": "boolean"
}
},
"required": [
@@ -254559,7 +254585,7 @@
},
"description": {
"type": "string",
"description": "A short description of the label."
"description": "A short description of the label. Must be 100 characters or fewer."
}
},
"required": [
@@ -254954,7 +254980,7 @@
},
"description": {
"type": "string",
"description": "A short description of the label."
"description": "A short description of the label. Must be 100 characters or fewer."
}
}
},
@@ -331102,9 +331128,11 @@
"created_at": "2011-01-26T19:01:12Z",
"updated_at": "2011-01-26T19:14:43Z",
"permissions": {
"admin": false,
"pull": true,
"triage": false,
"push": false,
"pull": true
"maintain": false,
"admin": false
},
"allow_rebase_merge": true,
"temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O",

View File

@@ -46946,7 +46946,7 @@
"type": "string"
},
"mode": {
"description": "The rendering mode.",
"description": "The rendering mode. Can be either `markdown` or `gfm`.",
"enum": [
"markdown",
"gfm"
@@ -46956,7 +46956,7 @@
"type": "string"
},
"context": {
"description": "The repository context to use when creating references in `gfm` mode.",
"description": "The repository context to use when creating references in `gfm` mode. For example, setting `context` to `octo-org/octo-repo` will change the text `#42` into an HTML link to issue 42 in the `octo-org/octo-repo` repository.",
"type": "string"
}
},
@@ -94333,9 +94333,11 @@
"created_at": "2011-01-26T19:01:12Z",
"updated_at": "2011-01-26T19:14:43Z",
"permissions": {
"admin": false,
"pull": true,
"triage": false,
"push": false,
"pull": true
"maintain": false,
"admin": false
},
"allow_rebase_merge": true,
"temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O",
@@ -148282,6 +148284,12 @@
},
"check_runs_url": {
"type": "string"
},
"rerequestable": {
"type": "boolean"
},
"runs_rerequestable": {
"type": "boolean"
}
},
"required": [
@@ -150751,6 +150759,12 @@
},
"check_runs_url": {
"type": "string"
},
"rerequestable": {
"type": "boolean"
},
"runs_rerequestable": {
"type": "boolean"
}
},
"required": [
@@ -155290,6 +155304,12 @@
},
"check_runs_url": {
"type": "string"
},
"rerequestable": {
"type": "boolean"
},
"runs_rerequestable": {
"type": "boolean"
}
},
"required": [
@@ -175450,6 +175470,12 @@
},
"check_runs_url": {
"type": "string"
},
"rerequestable": {
"type": "boolean"
},
"runs_rerequestable": {
"type": "boolean"
}
},
"required": [
@@ -257565,7 +257591,7 @@
},
"description": {
"type": "string",
"description": "A short description of the label."
"description": "A short description of the label. Must be 100 characters or fewer."
}
},
"required": [
@@ -257960,7 +257986,7 @@
},
"description": {
"type": "string",
"description": "A short description of the label."
"description": "A short description of the label. Must be 100 characters or fewer."
}
}
},
@@ -336009,9 +336035,11 @@
"created_at": "2011-01-26T19:01:12Z",
"updated_at": "2011-01-26T19:14:43Z",
"permissions": {
"admin": false,
"pull": true,
"triage": false,
"push": false,
"pull": true
"maintain": false,
"admin": false
},
"allow_rebase_merge": true,
"temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O",

View File

@@ -47902,7 +47902,7 @@
"type": "string"
},
"mode": {
"description": "The rendering mode.",
"description": "The rendering mode. Can be either `markdown` or `gfm`.",
"enum": [
"markdown",
"gfm"
@@ -47912,7 +47912,7 @@
"type": "string"
},
"context": {
"description": "The repository context to use when creating references in `gfm` mode.",
"description": "The repository context to use when creating references in `gfm` mode. For example, setting `context` to `octo-org/octo-repo` will change the text `#42` into an HTML link to issue 42 in the `octo-org/octo-repo` repository.",
"type": "string"
}
},
@@ -96311,9 +96311,11 @@
"created_at": "2011-01-26T19:01:12Z",
"updated_at": "2011-01-26T19:14:43Z",
"permissions": {
"admin": false,
"pull": true,
"triage": false,
"push": false,
"pull": true
"maintain": false,
"admin": false
},
"allow_rebase_merge": true,
"temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O",
@@ -151908,6 +151910,12 @@
},
"check_runs_url": {
"type": "string"
},
"rerequestable": {
"type": "boolean"
},
"runs_rerequestable": {
"type": "boolean"
}
},
"required": [
@@ -154389,6 +154397,12 @@
},
"check_runs_url": {
"type": "string"
},
"rerequestable": {
"type": "boolean"
},
"runs_rerequestable": {
"type": "boolean"
}
},
"required": [
@@ -158952,6 +158966,12 @@
},
"check_runs_url": {
"type": "string"
},
"rerequestable": {
"type": "boolean"
},
"runs_rerequestable": {
"type": "boolean"
}
},
"required": [
@@ -179175,6 +179195,12 @@
},
"check_runs_url": {
"type": "string"
},
"rerequestable": {
"type": "boolean"
},
"runs_rerequestable": {
"type": "boolean"
}
},
"required": [
@@ -264305,7 +264331,7 @@
},
"description": {
"type": "string",
"description": "A short description of the label."
"description": "A short description of the label. Must be 100 characters or fewer."
}
},
"required": [
@@ -264700,7 +264726,7 @@
},
"description": {
"type": "string",
"description": "A short description of the label."
"description": "A short description of the label. Must be 100 characters or fewer."
}
}
},
@@ -343939,9 +343965,11 @@
"created_at": "2011-01-26T19:01:12Z",
"updated_at": "2011-01-26T19:14:43Z",
"permissions": {
"admin": false,
"pull": true,
"triage": false,
"push": false,
"pull": true
"maintain": false,
"admin": false
},
"allow_rebase_merge": true,
"temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O",

View File

@@ -48115,7 +48115,7 @@
"type": "string"
},
"mode": {
"description": "The rendering mode.",
"description": "The rendering mode. Can be either `markdown` or `gfm`.",
"enum": [
"markdown",
"gfm"
@@ -48125,7 +48125,7 @@
"type": "string"
},
"context": {
"description": "The repository context to use when creating references in `gfm` mode.",
"description": "The repository context to use when creating references in `gfm` mode. For example, setting `context` to `octo-org/octo-repo` will change the text `#42` into an HTML link to issue 42 in the `octo-org/octo-repo` repository.",
"type": "string"
}
},
@@ -98944,9 +98944,11 @@
"created_at": "2011-01-26T19:01:12Z",
"updated_at": "2011-01-26T19:14:43Z",
"permissions": {
"admin": false,
"pull": true,
"triage": false,
"push": false,
"pull": true
"maintain": false,
"admin": false
},
"allow_rebase_merge": true,
"temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O",
@@ -158901,6 +158903,12 @@
},
"check_runs_url": {
"type": "string"
},
"rerequestable": {
"type": "boolean"
},
"runs_rerequestable": {
"type": "boolean"
}
},
"required": [
@@ -161382,6 +161390,12 @@
},
"check_runs_url": {
"type": "string"
},
"rerequestable": {
"type": "boolean"
},
"runs_rerequestable": {
"type": "boolean"
}
},
"required": [
@@ -165945,6 +165959,12 @@
},
"check_runs_url": {
"type": "string"
},
"rerequestable": {
"type": "boolean"
},
"runs_rerequestable": {
"type": "boolean"
}
},
"required": [
@@ -186103,6 +186123,12 @@
},
"check_runs_url": {
"type": "string"
},
"rerequestable": {
"type": "boolean"
},
"runs_rerequestable": {
"type": "boolean"
}
},
"required": [
@@ -271059,7 +271085,7 @@
},
"description": {
"type": "string",
"description": "A short description of the label."
"description": "A short description of the label. Must be 100 characters or fewer."
}
},
"required": [
@@ -271454,7 +271480,7 @@
},
"description": {
"type": "string",
"description": "A short description of the label."
"description": "A short description of the label. Must be 100 characters or fewer."
}
}
},
@@ -350708,9 +350734,11 @@
"created_at": "2011-01-26T19:01:12Z",
"updated_at": "2011-01-26T19:14:43Z",
"permissions": {
"admin": false,
"pull": true,
"triage": false,
"push": false,
"pull": true
"maintain": false,
"admin": false
},
"allow_rebase_merge": true,
"temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O",

View File

@@ -31651,7 +31651,7 @@
"type": "string"
},
"mode": {
"description": "The rendering mode.",
"description": "The rendering mode. Can be either `markdown` or `gfm`.",
"enum": [
"markdown",
"gfm"
@@ -31661,7 +31661,7 @@
"type": "string"
},
"context": {
"description": "The repository context to use when creating references in `gfm` mode.",
"description": "The repository context to use when creating references in `gfm` mode. For example, setting `context` to `octo-org/octo-repo` will change the text `#42` into an HTML link to issue 42 in the `octo-org/octo-repo` repository.",
"type": "string"
}
},
@@ -67417,9 +67417,11 @@
"created_at": "2011-01-26T19:01:12Z",
"updated_at": "2011-01-26T19:14:43Z",
"permissions": {
"admin": false,
"pull": true,
"triage": false,
"push": false,
"pull": true
"maintain": false,
"admin": false
},
"allow_rebase_merge": true,
"temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O",
@@ -122062,6 +122064,12 @@
},
"check_runs_url": {
"type": "string"
},
"rerequestable": {
"type": "boolean"
},
"runs_rerequestable": {
"type": "boolean"
}
},
"required": [
@@ -124543,6 +124551,12 @@
},
"check_runs_url": {
"type": "string"
},
"rerequestable": {
"type": "boolean"
},
"runs_rerequestable": {
"type": "boolean"
}
},
"required": [
@@ -129106,6 +129120,12 @@
},
"check_runs_url": {
"type": "string"
},
"rerequestable": {
"type": "boolean"
},
"runs_rerequestable": {
"type": "boolean"
}
},
"required": [
@@ -149044,6 +149064,12 @@
},
"check_runs_url": {
"type": "string"
},
"rerequestable": {
"type": "boolean"
},
"runs_rerequestable": {
"type": "boolean"
}
},
"required": [
@@ -153631,314 +153657,6 @@
}
}
},
"/repos/{owner}/{repo}/content_references/{content_reference_id}/attachments": {
"post": {
"summary": "Create a content attachment",
"description": "Creates an attachment under a content reference URL in the body or comment of an issue or pull request. Use the `id` and `repository` `full_name` of the content reference from the [`content_reference` event](https://docs.github.com/github-ae@latest/webhooks/event-payloads/#content_reference) to create an attachment.\n\nThe app must create a content attachment within six hours of the content reference URL being posted. See \"[Using content attachments](https://docs.github.com/github-ae@latest/apps/using-content-attachments/)\" for details about content attachments.\n\nYou must use an [installation access token](https://docs.github.com/github-ae@latest/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation) to access this endpoint.",
"tags": [
"apps"
],
"operationId": "apps/create-content-attachment",
"externalDocs": {
"description": "API method documentation",
"url": "https://docs.github.com/github-ae@latest/rest/reference/apps#create-a-content-attachment"
},
"parameters": [
{
"name": "owner",
"description": "The owner of the repository. Determined from the `repository` `full_name` of the `content_reference` event.",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "repo",
"description": "The name of the repository. Determined from the `repository` `full_name` of the `content_reference` event.",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "content_reference_id",
"description": "The `id` of the `content_reference` event.",
"in": "path",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"properties": {
"title": {
"description": "The title of the attachment",
"example": "Title of the attachment",
"type": "string",
"maxLength": 1024
},
"body": {
"description": "The body of the attachment",
"example": "Body of the attachment",
"type": "string",
"maxLength": 262144
}
},
"required": [
"title",
"body"
],
"type": "object"
}
}
}
},
"responses": {
"200": {
"description": "Response",
"content": {
"application/json": {
"schema": {
"title": "ContentReferenceAttachment",
"description": "Content Reference attachments allow you to provide context around URLs posted in comments",
"type": "object",
"properties": {
"id": {
"description": "The ID of the attachment",
"example": 21,
"type": "integer"
},
"title": {
"description": "The title of the attachment",
"example": "Title of the attachment",
"type": "string",
"maxLength": 1024
},
"body": {
"description": "The body of the attachment",
"example": "Body of the attachment",
"type": "string",
"maxLength": 262144
},
"node_id": {
"description": "The node_id of the content attachment",
"example": "MDE3OkNvbnRlbnRBdHRhY2htZW50MjE=",
"type": "string"
}
},
"required": [
"id",
"title",
"body"
]
},
"examples": {
"default": {
"value": {
"id": 101,
"title": "[A-1234] Error found in core/models.py file'",
"body": "You have used an email that already exists for the user_email_uniq field.\n ## DETAILS:\n\nThe (email)=(Octocat@github.com) already exists.\n\n The error was found in core/models.py in get_or_create_user at line 62.\n\n self.save()"
}
}
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/json": {
"schema": {
"title": "Validation Error",
"description": "Validation Error",
"type": "object",
"required": [
"message",
"documentation_url"
],
"properties": {
"message": {
"type": "string"
},
"documentation_url": {
"type": "string"
},
"errors": {
"type": "array",
"items": {
"type": "object",
"required": [
"code"
],
"properties": {
"resource": {
"type": "string"
},
"field": {
"type": "string"
},
"message": {
"type": "string"
},
"code": {
"type": "string"
},
"index": {
"type": "integer"
},
"value": {
"oneOf": [
{
"type": "string",
"nullable": true
},
{
"type": "integer",
"nullable": true
},
{
"type": "array",
"nullable": true,
"items": {
"type": "string"
}
}
]
}
}
}
}
}
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/json": {
"schema": {
"title": "Basic Error",
"description": "Basic Error",
"type": "object",
"properties": {
"message": {
"type": "string"
},
"documentation_url": {
"type": "string"
},
"url": {
"type": "string"
},
"status": {
"type": "string"
}
}
}
}
}
},
"410": {
"description": "Gone",
"content": {
"application/json": {
"schema": {
"title": "Basic Error",
"description": "Basic Error",
"type": "object",
"properties": {
"message": {
"type": "string"
},
"documentation_url": {
"type": "string"
},
"url": {
"type": "string"
},
"status": {
"type": "string"
}
}
}
}
}
},
"415": {
"description": "Preview header missing",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"message",
"documentation_url"
],
"properties": {
"message": {
"type": "string"
},
"documentation_url": {
"type": "string"
}
}
}
}
}
},
"304": {
"description": "Not modified"
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"title": "Basic Error",
"description": "Basic Error",
"type": "object",
"properties": {
"message": {
"type": "string"
},
"documentation_url": {
"type": "string"
},
"url": {
"type": "string"
},
"status": {
"type": "string"
}
}
}
}
}
}
},
"x-github": {
"githubCloudOnly": false,
"enabledForGitHubApps": true,
"previews": [
{
"required": true,
"name": "corsair",
"note": "To access the Content Attachments API during the preview period, you must provide a custom [media type](https://docs.github.com/github-ae@latest/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.corsair-preview+json\n```"
}
],
"category": "apps",
"subcategory": "installations"
}
}
},
"/repos/{owner}/{repo}/contents/{path}": {
"get": {
"summary": "Get repository content",
@@ -231953,7 +231671,7 @@
},
"description": {
"type": "string",
"description": "A short description of the label."
"description": "A short description of the label. Must be 100 characters or fewer."
}
},
"required": [
@@ -232348,7 +232066,7 @@
},
"description": {
"type": "string",
"description": "A short description of the label."
"description": "A short description of the label. Must be 100 characters or fewer."
}
}
},
@@ -308497,9 +308215,11 @@
"created_at": "2011-01-26T19:01:12Z",
"updated_at": "2011-01-26T19:14:43Z",
"permissions": {
"admin": false,
"pull": true,
"triage": false,
"push": false,
"pull": true
"maintain": false,
"admin": false
},
"allow_rebase_merge": true,
"temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O",

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4049476895fb239bc51e71ebd336338d41529afc67d2098dce429533dc003237
size 641041
oid sha256:765ec393f48b1da26a6ec01436aff63a8ae0e58e00c229abff36abc768ae815a
size 640925

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b0b2a1a218d1543eb344ae20b572c55b3e95859c5f6418dca4f7738ea730489c
size 1111649
oid sha256:d3af4a355dc9287243762e9fca0e81b368f00323637d47b2d1ae530465506d8f
size 1112102

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7166c39064400d935ff68fd4194d024349115b4015d7584f63a14e571b80f113
size 944974
oid sha256:cb52ad0e124e1ba0ae0d13fbb735bf115a4690ee0615713e900a6a81e7084b79
size 945815

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2ab881358f1b65eafb4780c410dc4cd0252cd02171e3faf47c0d8938e930bbfa
size 3858188
oid sha256:44ea78b2bdcc346b8b969966ddb6408e4e2b1a38e2e450125fb64da66db12e2d
size 3859149

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2f88d199c16319f387dc7befa2247fdf161a1ff43c149ecb1474f68da324a301
size 584420
oid sha256:e5a647e342279eaf5584b7efc8ae882687590309a65ad9ea58bbb41a9bca6381
size 584641

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2034c5b57c8f2fa0e1c49c827a213b0472109bff6cdf11067bf58912b0698e6a
size 2455540
oid sha256:2e1118a4c589e04b76e48b8853df7d4db78d97d766278e38611a7b045f3df4c6
size 2455855

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:995025c3a0e1fdda18833647304d9eae5b457f3858a8dffa41b47424105b94e1
size 666491
oid sha256:b0d040087150c6a6c12b5cde92cf2407c4d712dad54eafebd63a23a9b662faf7
size 666681

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a0a5ee449971aad8ba85fb09e59062fee537eaea68340681c2966fb4f41752df
size 3450524
oid sha256:edac4bc4b93b88b6031bc49f12105dcb3455dffdbf9225d78dd05f385133722f
size 3450530

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ea29db113ce85355e408b98557371bd7a31d53f4762a12a5c21e39fc9f305aca
size 544965
oid sha256:ffe05aee1a3475001951342c6034623b586effa1771512997950a7555b39b029
size 544919

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:84c39d3b1c41752c800066cb8a5edcb17958c47a285c55e4ce04640babb70294
size 2233851
oid sha256:e4b888ff599cd91683af7cb3c2b6b4f7f264324c2735c7ad03bc4eea85bef8b6
size 2233755

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4cb5ad2c1880cfa82c66379bd78ecb662809dd42df225f42c2ef5fa1a56a3932
size 655625
oid sha256:6a0a32e9e01c7a8260399755d053889d512ce023b4bc0b09c0c36149eb9b2d93
size 655749

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:aaaaa5076b294583fae46c0e057558041cb0d804800dc9f18c604f8cabbc02c6
size 1144090
oid sha256:ed84b47b595ddb325b765ae7c948562be5b0069d566334f0107a62a79c3a8e28
size 1144272

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2a8af3d531106d3f834ec517068786b91dd52cb9caf1c2fb8d06acf50c1d4643
size 970024
oid sha256:07d08cdfbc14d71fb44c735380e9c9560d0e77fd72523954204abf997633b509
size 969935

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a52ee2080910250bde000300baf084993d065171a5591f2b369bf867f31f7bae
size 3951668
oid sha256:4509329dd6b077f819e8a83cae92a77afde1e116d621c53c1ccf29fa8ba61c23
size 3951588

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:241912f2b98df27791f1aae857b74571e7ef08fb9b745b10ec8ea61f61dc20dd
size 597228
oid sha256:50ad6cbc376ffeac08e48ccdb2b7acddfb7ea049bc4415540e968afa80aa3d43
size 597236

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:23d4b5c4f3ed1c7ec69d038c5ca55fd5886d9baf932c00699ccfa995d4595e90
size 2514879
oid sha256:ba438c4ff9465333863b1259cdc2a026480618940be5e52ee7db63c6db8e23cd
size 2514233

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e520026797499331e24221d53fd73c24fcf935225aeb4c548613b366748adfc4
size 681223
oid sha256:7f01c489a0c4fd9ecdccef6aced09c78baae77341c167a916d51f7fe4fa572bd
size 681395

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:77a9b49b1b495ffd78c382b9325ad5d58d819577c4ab14533861826f476de0f6
size 3533386
oid sha256:a046dd133aa4f1e2e8522c0e02e32a5c06e1b6208c42a67850f21c385a0be672
size 3533703

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:264928ca75f4ac57c795299d25af5ca67d9240baa9918377831f552c33e3eda7
size 557069
oid sha256:c65fe5c0c685beaa01f8e9985470a07f038ae9c810564d2b748868066971e274
size 557059

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:67aad2a80ed7724c9f58a7daf685a33abbefd97f9f0c2ec21529db1eb1d5a649
size 2289490
oid sha256:aed5e4e922e7395f615ceeb58526617938c26b64ea524e78e4061b63e6cebb65
size 2289478

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4f2aa508681440af8d93fc5b4f10ef5753627be6f80c1c2c08b89c35c40e11b0
size 668718
oid sha256:adc19edd60060198af984af275eaf23093e610ae19414f83ad7e655574a23b26
size 668760

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4d832c1719ed684a7f5b35953d50d7250a5938c021c7829989e5e0393160b908
size 1169094
oid sha256:9adc3df5e1f9149c6a0e85c984f02cdbc7b8cd6ee2fcc1c95f37841c88c92373
size 1168954

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c60fd8d5dce9adf6c582b098427b9509ee3dbf5241d4310ca7fc94ae7fc88483
size 1000821
oid sha256:85111370ff228c4c4bbf7b5062429e913e5df093a3324bd98b164d6d2d5f6335
size 1001021

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ac61b65215de8922fe562b8bd49306d518d11e52c5807b166386716194a67295
size 4070323
oid sha256:9d748b84215b4a694c4a772ef8080bdba553a614ed3ca9b80d262b06adf806b2
size 4071039

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f62f8658e0c0c2b0495a1a39bfd342e9159a5653d3e384942b7af8b9971b7ab5
size 608258
oid sha256:feef9067a613f92b7801a7270671f2cf9a87e1230a3a6bbab445f900edaaa61f
size 608086

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0871545c7f18518daa953bcba6292e5637272ffce62b9bcd681f21688d87fde6
size 2565982
oid sha256:40fedf9b3e1758ba377871a5c276ce3b0becc1ecbcc89db1bbe038062e95bd22
size 2565960

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:522045dfc163bf0c1c07650b75fec174dc9e51f0171e46a07d4b9a06d91192db
size 693703
oid sha256:6dba6850e17175b2ba80625c25c80767e83dafc1141684bef1527dd374fa821f
size 693741

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:fd516842b0faff9a784672ae5e3a6b73401d0322260275f0ccb235065bc17b34
size 3605119
oid sha256:5803bc091bf14bc0cc2501a76fa251ca8c87c780e3b145740190f9924baeb00b
size 3605453

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e59ad385a800b9a365266e860ccdeae0821ee015aa70c556cbbb7d14119b47c1
size 567333
oid sha256:40ea222448b43780b9514cc1017f371f19958bea633494f7cf314288d7b9e9fe
size 567279

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0ef9cf8810cb83d8c70bd329adf8dd6ba7c9524de2a90a1e3390b958b5fa4a37
size 2331617
oid sha256:0051c5a322753b60c9001866dae71c8f1b40ccf4a9c8f6e2b6da2e52844c1bed
size 2332035

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:83d0f55f34c14378cfc55869db81d610e4e82ec44c6e3654a39735f0c69fcef6
size 691539
oid sha256:687f9e046e1c9028751be8268ad80f91506c15fa26dafabb5b880a947617002b
size 691490

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:55918d08e38df87aab5502ae5389233815f720405e90f3d876f7d27fdd47722e
size 1226449
oid sha256:7d289a260c70805c15f16f9af67d4ae50876bc6d68dfe2259bc5428abeefda52
size 1226772

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:14f9c12a3c7ad88c0bf99ac93153af53cb0464b863c78a624064e3c580c4efb2
size 1034557
oid sha256:601214acc7589ef6d583faf3af111093c6fc713655ff4d41bf3121da44f5f869
size 1034999

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:fa363ef21cf719ecef4ba4b13ecf2f6c642fbc4aebdc086640f766c89c5ec171
size 4166266
oid sha256:56969f2c7c81006bf4601c5494cedbed2b7fb1c414e74d81ea46e016b12a0312
size 4167809

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e20a7f3795818920308100b30595796c4c170eba4c62680f4b70d577a3be3765
size 626610
oid sha256:28b830b30b4d03fb666569ab1991e00873ad0c5bf8e544786659e98061df39b1
size 626891

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1f9a60b978506e84f321d83607e682bfb86fcbeaea57d74325fb8b16efa0bb8c
size 2665818
oid sha256:696c8847d1b6fd77f86bd84cd7679ec38b0ec97cf2eece9063de5a7b61aae312
size 2666359

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d307f62694f67f388457f9cd9c9c8b81256dfe1d22c0b7eed1a6a3d5f25030d9
size 716392
oid sha256:508c7effe09399dffbe8c4bdb4fae646861b74c34ca5a913197fb1f8db1259d3
size 716241

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